Skip to content

Commit a671a0e

Browse files
committed
Extract dflags from ModSummary
1 parent 9c74869 commit a671a0e

File tree

1 file changed

+17
-12
lines changed
  • plugins/hls-hlint-plugin/src/Ide/Plugin

1 file changed

+17
-12
lines changed

plugins/hls-hlint-plugin/src/Ide/Plugin/Hlint.hs

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ module Ide.Plugin.Hlint
2020
import Refact.Apply
2121
import Control.Arrow ((&&&))
2222
import Control.DeepSeq
23-
import Control.Exception
2423
import Control.Lens ((^.))
2524
import Control.Monad
2625
import Control.Monad.IO.Class
@@ -38,18 +37,21 @@ import Development.IDE.Core.Rules (defineNoFile)
3837
import Development.IDE.Core.Shake (getDiagnostics)
3938

4039
#ifdef HLINT_ON_GHC_LIB
40+
import Control.Exception
4141
import Data.List (nub)
42-
import "ghc-lib" GHC hiding (DynFlags(..))
42+
import "ghc-lib" GHC hiding (DynFlags(..), ModSummary)
4343
import "ghc-lib-parser" GHC.LanguageExtensions (Extension)
44-
import "ghc" GHC as RealGHC (DynFlags(..))
44+
import "ghc" GHC as RealGHC (DynFlags(..), ModSummary)
4545
import "ghc" HscTypes as RealGHC.HscTypes (hsc_dflags)
4646
import qualified "ghc" EnumSet as EnumSet
4747
import Language.Haskell.GhclibParserEx.GHC.Driver.Session as GhclibParserEx (readExtension)
48+
import System.FilePath (takeFileName)
49+
import System.IO (hPutStr, noNewlineTranslation, hSetNewlineMode, utf8, hSetEncoding, IOMode(WriteMode), withFile, hClose)
50+
import System.IO.Temp
4851
#else
4952
import Development.IDE.GHC.Compat hiding (DynFlags(..))
50-
import HscTypes (hsc_dflags)
5153
import Language.Haskell.GHC.ExactPrint.Parsers (postParseTransform)
52-
import Language.Haskell.GHC.ExactPrint.Delta (normalLayout)
54+
import Language.Haskell.GHC.ExactPrint.Delta (rigidLayout)
5355
#endif
5456

5557
import Ide.Logger
@@ -59,12 +61,12 @@ import Ide.Plugin.Config
5961
import Ide.PluginUtils
6062
import Language.Haskell.HLint as Hlint
6163
import Language.Haskell.LSP.Core
64+
( LspFuncs(withIndefiniteProgress),
65+
ProgressCancellable(Cancellable) )
6266
import Language.Haskell.LSP.Types
6367
import qualified Language.Haskell.LSP.Types as LSP
6468
import qualified Language.Haskell.LSP.Types.Lens as LSP
65-
import System.FilePath (takeFileName)
66-
import System.IO (hPutStr, noNewlineTranslation, hSetNewlineMode, utf8, hSetEncoding, IOMode(WriteMode), withFile, hClose)
67-
import System.IO.Temp
69+
6870
import Text.Regex.TDFA.Text()
6971
import GHC.Generics (Generic)
7072

@@ -207,12 +209,15 @@ getIdeas nfp = do
207209

208210
getExtensions :: ParseFlags -> NormalizedFilePath -> Action [Extension]
209211
getExtensions pflags nfp = do
210-
hsc <- hscEnv <$> use_ GhcSession nfp
211-
let dflags = hsc_dflags hsc
212+
dflags <- getFlags
212213
let hscExts = EnumSet.toList (extensionFlags dflags)
213214
let hscExts' = mapMaybe (GhclibParserEx.readExtension . show) hscExts
214215
let hlintExts = nub $ enabledExtensions pflags ++ hscExts'
215216
return hlintExts
217+
where getFlags :: Action DynFlags
218+
getFlags = do
219+
(modsum, _) <- use_ GetModSummary nfp
220+
return $ _ms_hspp_opts modsum
216221
#endif
217222

218223
-- ---------------------------------------------------------------------
@@ -394,8 +399,8 @@ applyHint ide nfp mhint =
394399
Just pm -> do
395400
let anns = pm_annotations pm
396401
let modu = pm_parsed_source pm
397-
hsc <- liftIO $ runAction' $ hscEnv <$> use_ GhcSession nfp
398-
let dflags = hsc_dflags hsc
402+
(modsum, _) <- liftIO $ runAction' $ use_ GetModSummary nfp
403+
let dflags = ms_hspp_opts modsum
399404
(anns', modu') <-
400405
ExceptT $ return $ postParseTransform (Right (anns, [], dflags, modu)) normalLayout
401406
liftIO (Right <$> applyRefactorings' Nothing commands anns' modu')

0 commit comments

Comments
 (0)