1- {-# LANGUAGE CPP #-}
1+ {-# LANGUAGE CPP #-}
22{-# LANGUAGE LambdaCase #-}
33{-# LANGUAGE ViewPatterns #-}
44-- | An HLS plugin to provide code actions to change type signatures
@@ -9,53 +9,49 @@ module Ide.Plugin.ChangeTypeSignature (descriptor
99 ) where
1010
1111import Control.Lens
12- import Control.Monad (guard )
13- import Control.Monad.IO.Class (MonadIO )
14- import Control.Monad.Trans.Class (MonadTrans (lift ))
15- import Control.Monad.Trans.Except (ExceptT (.. ))
16- import Control.Monad.Trans.Maybe (MaybeT (.. ), hoistMaybe )
17- import Data.Foldable (asum )
18- import qualified Data.Map as Map
19- import Data.Maybe (catMaybes )
20- import Data.Text (Text )
21- import qualified Data.Text as T
22- import Development.IDE (realSrcSpanToRange ,
23- IdeState (.. ),
24- FileDiagnostic ,
25- fdLspDiagnosticL ,
26- fdStructuredMessageL ,
27- logWith ,
28- Pretty (.. ),
29- Priority (.. ),
30- Recorder ,
31- WithPriority )
12+ import Control.Monad (guard )
13+ import Control.Monad.IO.Class (MonadIO )
14+ import Control.Monad.Trans.Class (MonadTrans (lift ))
15+ import Control.Monad.Trans.Except (ExceptT (.. ))
16+ import Control.Monad.Trans.Maybe (MaybeT (.. ), hoistMaybe )
17+ import Data.Foldable (asum )
18+ import qualified Data.Map as Map
19+ import Data.Maybe (catMaybes )
20+ import Data.Text (Text )
21+ import qualified Data.Text as T
22+ import Development.IDE (FileDiagnostic ,
23+ IdeState (.. ), Pretty (.. ),
24+ Priority (.. ), Recorder ,
25+ WithPriority ,
26+ fdLspDiagnosticL ,
27+ fdStructuredMessageL ,
28+ logWith , realSrcSpanToRange )
3229import Development.IDE.Core.PluginUtils
33- import Development.IDE.Core.RuleTypes (GetParsedModule (GetParsedModule ))
34- import Development.IDE.GHC.Compat hiding (vcat )
35- import Development.IDE.GHC.Util (printOutputable )
30+ import Development.IDE.Core.RuleTypes (GetParsedModule (GetParsedModule ))
31+ import Development.IDE.GHC.Compat hiding (vcat )
32+ import Development.IDE.GHC.Compat.Error (_TcRnMessage ,
33+ msgEnvelopeErrorL )
34+ import Development.IDE.GHC.Util (printOutputable )
3635import Development.IDE.Types.Diagnostics (_SomeStructuredMessage )
37- import Development.IDE.GHC.Compat.Error (msgEnvelopeErrorL , _TcRnMessage )
38- import Generics.SYB (extQ , something )
39- import GHC.Tc.Errors.Types (TcSolverReportMsg (.. ),
40- TcRnMessage (.. ),
41- TcRnMessage (.. ),
42- SolverReportWithCtxt (.. ),
43- TcRnMessageDetailed (.. ),
44- MismatchMsg (.. ),
45- ErrInfo (.. ))
46- import qualified Ide.Logger as Logger
47- import Ide.Plugin.Error (PluginError ,
48- getNormalizedFilePathE )
49- import Ide.Types (PluginDescriptor (.. ),
50- PluginId (PluginId ),
51- PluginMethodHandler ,
52- defaultPluginDescriptor ,
53- mkPluginHandler ,
54- HandlerM ,
55- Config )
36+ import Generics.SYB (extQ , something )
37+ import GHC.Tc.Errors.Types (ErrInfo (.. ),
38+ MismatchMsg (.. ),
39+ SolverReportWithCtxt (.. ),
40+ TcRnMessage (.. ),
41+ TcRnMessageDetailed (.. ),
42+ TcSolverReportMsg (.. ))
43+ import qualified Ide.Logger as Logger
44+ import Ide.Plugin.Error (PluginError ,
45+ getNormalizedFilePathE )
46+ import Ide.Types (Config , HandlerM ,
47+ PluginDescriptor (.. ),
48+ PluginId (PluginId ),
49+ PluginMethodHandler ,
50+ defaultPluginDescriptor ,
51+ mkPluginHandler )
5652import Language.LSP.Protocol.Message
5753import Language.LSP.Protocol.Types
58- import Text.Regex.TDFA ((=~) )
54+ import Text.Regex.TDFA ((=~) )
5955
6056data Log
6157 = LogErrInfoCtxt ErrInfo
@@ -169,7 +165,7 @@ findSolverReport :: TcRnMessage -> Maybe (TcSolverReportMsg, Maybe ErrInfo)
169165findSolverReport (TcRnMessageWithInfo _ (TcRnMessageDetailed errInfo msg)) =
170166 case findSolverReport msg of
171167 Just (mismatch, _) -> Just (mismatch, Just errInfo)
172- _ -> Nothing
168+ _ -> Nothing
173169#if MIN_VERSION_ghc(9,10,0)
174170findSolverReport (TcRnSolverReport (SolverReportWithCtxt _ mismatch) _) =
175171 Just (mismatch, Nothing )
@@ -181,9 +177,9 @@ findSolverReport _ = Nothing
181177
182178-- TODO: Make this a prism?
183179findMismatchMessage :: TcSolverReportMsg -> Maybe MismatchMsg
184- findMismatchMessage (Mismatch m _ _ _) = Just m
180+ findMismatchMessage (Mismatch m _ _ _) = Just m
185181findMismatchMessage (CannotUnifyVariable m _) = Just m
186- findMismatchMessage _ = Nothing
182+ findMismatchMessage _ = Nothing
187183
188184-- TODO: Make this a prism?
189185findTypeEqMismatch :: MismatchMsg -> Maybe (Type , Type )
0 commit comments