@@ -32,42 +32,46 @@ module Development.IDE.GHC.ExactPrint
32
32
)
33
33
where
34
34
35
- import BasicTypes (appPrec )
36
- import Control.Applicative (Alternative )
37
- import Control.Monad
38
- import qualified Control.Monad.Fail as Fail
39
- import Control.Monad.IO.Class (MonadIO )
40
- import Control.Monad.Trans.Class
41
- import Control.Monad.Trans.Except
42
- import Control.Monad.Zip
43
- import qualified Data.DList as DL
44
- import Data.Either.Extra (mapLeft )
45
- import Data.Functor.Classes
46
- import Data.Functor.Contravariant
47
- import qualified Data.Text as T
48
- import Development.IDE.Core.RuleTypes
49
- import Development.IDE.Core.Service (runAction )
50
- import Development.IDE.Core.Shake
51
- import Development.IDE.GHC.Compat hiding (parseExpr )
52
- import Development.IDE.Types.Location
53
- import Development.Shake (RuleResult , Rules )
54
- import Development.Shake.Classes
55
- import qualified GHC.Generics as GHC
56
- import Generics.SYB
57
- import Generics.SYB.GHC
58
- import Ide.PluginUtils
59
- import Language.Haskell.GHC.ExactPrint
60
- import Language.Haskell.GHC.ExactPrint.Parsers
61
- import Language.LSP.Types
62
- import Language.LSP.Types.Capabilities (ClientCapabilities )
63
- import Outputable (Outputable , ppr , showSDoc )
64
- import Retrie.ExactPrint hiding (parseDecl , parseExpr , parsePattern , parseType )
65
- import Parser (parseIdentifier )
66
- import Data.Traversable (for )
67
- import Data.Foldable (Foldable (fold ))
68
- import Data.Bool (bool )
69
- import Data.Monoid (All (All ), getAll )
70
- import Control.Arrow
35
+ import BasicTypes (appPrec )
36
+ import Control.Applicative (Alternative )
37
+ import Control.Arrow
38
+ import Control.Monad
39
+ import qualified Control.Monad.Fail as Fail
40
+ import Control.Monad.IO.Class (MonadIO )
41
+ import Control.Monad.Trans.Class
42
+ import Control.Monad.Trans.Except
43
+ import Control.Monad.Zip
44
+ import Data.Bool (bool )
45
+ import qualified Data.DList as DL
46
+ import Data.Either.Extra (mapLeft )
47
+ import Data.Foldable (Foldable (fold ))
48
+ import Data.Functor.Classes
49
+ import Data.Functor.Contravariant
50
+ import Data.Monoid (All (All ), getAll )
51
+ import qualified Data.Text as T
52
+ import Data.Traversable (for )
53
+ import Development.IDE.Core.RuleTypes
54
+ import Development.IDE.Core.Service (runAction )
55
+ import Development.IDE.Core.Shake
56
+ import Development.IDE.GHC.Compat hiding (parseExpr )
57
+ import Development.IDE.Types.Location
58
+ import Development.Shake (RuleResult , Rules )
59
+ import Development.Shake.Classes
60
+ import qualified GHC.Generics as GHC
61
+ import Generics.SYB
62
+ import Generics.SYB.GHC
63
+ import Ide.PluginUtils
64
+ import Language.Haskell.GHC.ExactPrint
65
+ import Language.Haskell.GHC.ExactPrint.Parsers
66
+ import Language.LSP.Types
67
+ import Language.LSP.Types.Capabilities (ClientCapabilities )
68
+ import Outputable (Outputable , ppr ,
69
+ showSDoc )
70
+ import Parser (parseIdentifier )
71
+ import Retrie.ExactPrint hiding (parseDecl ,
72
+ parseExpr ,
73
+ parsePattern ,
74
+ parseType )
71
75
72
76
73
77
------------------------------------------------------------------------------
@@ -230,7 +234,7 @@ graft' needs_space dst val = Graft $ \dflags a -> do
230
234
( mkT $
231
235
\ case
232
236
(L src _ :: Located ast ) | src == dst -> val'
233
- l -> l
237
+ l -> l
234
238
)
235
239
a
236
240
@@ -292,8 +296,8 @@ graftExprWithM dst trans = Graft $ \dflags a -> do
292
296
case mval of
293
297
Just val' -> do
294
298
(anns, val'') <-
295
- hoistTransform (either Fail. fail pure ) $
296
- annotate dflags needs_space $ mk_parens val'
299
+ hoistTransform (either Fail. fail pure )
300
+ ( annotate @ ( HsExpr GhcPs ) dflags needs_space ( mk_parens val'))
297
301
modifyAnnsT $ mappend anns
298
302
pure val''
299
303
Nothing -> pure val
0 commit comments