Skip to content

Commit bd1d0a1

Browse files
authored
Stylish Haskell: CPP parse issues (#3199)
* Stylish Haskell: Parse issues * CPP language extension * Manually fix some files with duplication * Pre-commit: Fix ignored files It looks like `ExactPrint` was ignored before, but since absolute paths are used and weren't adapted it wasn't ignored afterwards.
1 parent 0046919 commit bd1d0a1

File tree

10 files changed

+43
-36
lines changed

10 files changed

+43
-36
lines changed

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"hooks": [
55
{
66
"entry": "stylish-haskell --inplace",
7-
"exclude": "(^Setup.hs$|test/testdata/.*$|test/data/.*$|test/manual/lhs/.*$|^hie-compat/.*$|^plugins/hls-tactics-plugin/.*$|^ghcide/src/Development/IDE/GHC/Compat.hs$|^ghcide/src/Development/IDE/Plugin/CodeAction/ExactPrint.hs$|^ghcide/src/Development/IDE/GHC/Compat/Core.hs$|^ghcide/src/Development/IDE/Spans/Pragmas.hs$|^ghcide/src/Development/IDE/LSP/Outline.hs$|^plugins/hls-splice-plugin/src/Ide/Plugin/Splice.hs$|^ghcide/test/exe/Main.hs$|ghcide/src/Development/IDE/Core/Rules.hs|^hls-test-utils/src/Test/Hls/Util.hs$)",
7+
"exclude": "(^Setup.hs$|test/testdata/.*$|test/data/.*$|test/manual/lhs/.*$|^hie-compat/.*$|^plugins/hls-tactics-plugin/.*$|^ghcide/src/Development/IDE/GHC/Compat.hs$|^plugins/hls-refactor-plugin/src/Development/IDE/GHC/Compat/ExactPrint.hs$|^ghcide/src/Development/IDE/GHC/Compat/Core.hs$|^ghcide/src/Development/IDE/Spans/Pragmas.hs$|^ghcide/src/Development/IDE/LSP/Outline.hs$|^plugins/hls-splice-plugin/src/Ide/Plugin/Splice.hs$|^ghcide/test/exe/Main.hs$|^ghcide/src/Development/IDE/Core/Rules.hs$|^hls-test-utils/src/Test/Hls/Util.hs$|^ghcide/src/Development/IDE/Core/Compile.hs$|^plugins/hls-refactor-plugin/src/Development/IDE/GHC/ExactPrint.hs$|^plugins/hls-refactor-plugin/src/Development/IDE/Plugin/CodeAction/ExactPrint.hs$)",
88
"files": "\\.l?hs$",
99
"id": "stylish-haskell",
1010
"language": "system",

.stylish-haskell.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ newline: lf
5757

5858
language_extensions:
5959
- BangPatterns
60+
- CPP
6061
- DataKinds
6162
- DeriveFunctor
6263
- DeriveGeneric

ghcide/session-loader/Development/IDE/Session.hs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1+
{-# LANGUAGE CPP #-}
12
{-# LANGUAGE ExistentialQuantification #-}
23
{-# LANGUAGE RankNTypes #-}
34
{-# LANGUAGE TypeFamilies #-}
4-
{-# LANGUAGE CPP #-}
55

66
{-|
77
The logic for setting up a ghcide session by tapping into hie-bios.
@@ -67,15 +67,16 @@ import Development.IDE.Types.Location
6767
import Development.IDE.Types.Logger (Pretty (pretty),
6868
Priority (Debug, Error, Info, Warning),
6969
Recorder, WithPriority,
70-
logWith, nest, vcat,
71-
viaShow, (<+>),
72-
toCologActionWithPrio, cmapWithPrio)
70+
cmapWithPrio, logWith,
71+
nest,
72+
toCologActionWithPrio,
73+
vcat, viaShow, (<+>))
7374
import Development.IDE.Types.Options
7475
import GHC.Check
7576
import qualified HIE.Bios as HieBios
76-
import qualified HIE.Bios.Types as HieBios
7777
import HIE.Bios.Environment hiding (getCacheDir)
7878
import HIE.Bios.Types hiding (Log)
79+
import qualified HIE.Bios.Types as HieBios
7980
import Hie.Implicit.Cradle (loadImplicitHieCradle)
8081
import Language.LSP.Server
8182
import Language.LSP.Types
@@ -90,6 +91,8 @@ import Data.Void
9091
import Control.Concurrent.STM.Stats (atomically, modifyTVar',
9192
readTVar, writeTVar)
9293
import Control.Concurrent.STM.TQueue
94+
import Control.DeepSeq
95+
import Control.Exception (evaluate)
9396
import Control.Monad.IO.Unlift (MonadUnliftIO)
9497
import Data.Foldable (for_)
9598
import Data.HashMap.Strict (HashMap)
@@ -103,9 +106,6 @@ import HieDb.Types
103106
import HieDb.Utils
104107
import qualified System.Random as Random
105108
import System.Random (RandomGen)
106-
import Control.Monad.IO.Unlift (MonadUnliftIO)
107-
import Control.Exception (evaluate)
108-
import Control.DeepSeq
109109

110110
data Log
111111
= LogSettingInitialDynFlags

ghcide/src/Development/IDE/GHC/Compat/Iface.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ module Development.IDE.GHC.Compat.Iface (
88

99
import GHC
1010
#if MIN_VERSION_ghc(9,3,0)
11-
import GHC.Driver.Session (targetProfile)
11+
import GHC.Driver.Session (targetProfile)
1212
#endif
1313
#if MIN_VERSION_ghc(9,2,0)
1414
import qualified GHC.Iface.Load as Iface

ghcide/src/Development/IDE/Import/FindImports.hs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import Data.List (isSuffixOf)
2828
import Data.Maybe
2929
import System.FilePath
3030
#if MIN_VERSION_ghc(9,3,0)
31-
import GHC.Types.PkgQual
31+
import GHC.Types.PkgQual
3232
#endif
3333

3434
data Import
@@ -123,11 +123,12 @@ locateModule env comp_info exts targetFor modName mbPkgName isSource = do
123123
#if MIN_VERSION_ghc(9,3,0)
124124
OtherPkg uid
125125
| Just dirs <- lookup uid import_paths
126+
-> lookupLocal uid dirs
126127
#else
127128
Just pkgName
128129
| Just (uid, dirs) <- lookup (PackageName pkgName) import_paths
129-
#endif
130130
-> lookupLocal uid dirs
131+
#endif
131132
| otherwise -> lookupInPackageDB env
132133
#if MIN_VERSION_ghc(9,3,0)
133134
NoPkgQual -> do
@@ -148,7 +149,7 @@ locateModule env comp_info exts targetFor modName mbPkgName isSource = do
148149

149150
mbFile <- locateModuleFile ((homeUnitId_ dflags, importPaths dflags) : import_paths') exts targetFor isSource $ unLoc modName
150151
case mbFile of
151-
Nothing -> lookupInPackageDB env
152+
Nothing -> lookupInPackageDB env
152153
Just (uid, file) -> toModLocation uid file
153154
where
154155
dflags = hsc_dflags env

ghcide/src/Development/IDE/Plugin/Completions/Logic.hs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,8 @@ import GHC.Plugins (Depth (AllTheWay),
5959
#endif
6060
import Ide.PluginUtils (mkLspCommand)
6161
import Ide.Types (CommandId (..),
62-
IdePlugins(..), PluginId)
62+
IdePlugins (..),
63+
PluginId)
6364
import Language.LSP.Types
6465
import Language.LSP.Types.Capabilities
6566
import qualified Language.LSP.VFS as VFS
@@ -516,7 +517,6 @@ findRecordCompl uri pmod mn DataDecl {tcdLName, tcdDataDefn} = result
516517
PrefixCon{} -> Just []
517518
_ -> Nothing
518519

519-
extract ConDeclField{..}
520520
-- NOTE: 'cd_fld_names' is grouped so that the fields
521521
-- sharing the same type declaration to fit in the same group; e.g.
522522
--
@@ -527,8 +527,10 @@ findRecordCompl uri pmod mn DataDecl {tcdLName, tcdDataDefn} = result
527527
-- is encoded as @[[arg1, arg2], [arg3], [arg4]]@
528528
-- Hence, we must concat nested arguments into one to get all the fields.
529529
#if MIN_VERSION_ghc(9,3,0)
530+
extract ConDeclField{..}
530531
= map (foLabel . unLoc) cd_fld_names
531532
#else
533+
extract ConDeclField{..}
532534
= map (rdrNameFieldOcc . unLoc) cd_fld_names
533535
#endif
534536
-- XConDeclField

plugins/hls-haddock-comments-plugin/src/Ide/Plugin/HaddockComments.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ import qualified Data.Map as Map
1515
import qualified Data.Text as T
1616
import Development.IDE hiding (pluginHandlers)
1717
import Development.IDE.GHC.Compat
18-
import Development.IDE.Plugin.CodeAction
1918
import Development.IDE.GHC.Compat.ExactPrint
2019
import Development.IDE.GHC.ExactPrint (GetAnnotatedParsedSource (..))
21-
import qualified Development.IDE.GHC.ExactPrint as E
20+
import qualified Development.IDE.GHC.ExactPrint as E
21+
import Development.IDE.Plugin.CodeAction
2222
import Ide.Types
2323
import Language.Haskell.GHC.ExactPrint
2424
import Language.Haskell.GHC.ExactPrint.Types hiding (GhcPs)

plugins/hls-refactor-plugin/src/Development/IDE/Plugin/CodeAction.hs

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ import Control.Arrow (second,
1919
(&&&),
2020
(>>>))
2121
import Control.Concurrent.STM.Stats (atomically)
22+
import Control.Monad.Extra
2223
import Control.Monad.IO.Class
2324
import Control.Monad.Trans.Maybe
24-
import Control.Monad.Extra
2525
import Data.Aeson
2626
import Data.Char
2727
import qualified Data.DList as DL
@@ -39,50 +39,52 @@ import qualified Data.Set as S
3939
import qualified Data.Text as T
4040
import qualified Data.Text.Utf16.Rope as Rope
4141
import Data.Tuple.Extra (fst3)
42-
import Development.IDE.Types.Logger hiding (group)
4342
import Development.IDE.Core.Rules
4443
import Development.IDE.Core.RuleTypes
4544
import Development.IDE.Core.Service
45+
import Development.IDE.Core.Shake hiding (Log)
4646
import Development.IDE.GHC.Compat
4747
import Development.IDE.GHC.Compat.ExactPrint
4848
import Development.IDE.GHC.Compat.Util
4949
import Development.IDE.GHC.Error
5050
import Development.IDE.GHC.ExactPrint
51-
import qualified Development.IDE.GHC.ExactPrint as E
51+
import qualified Development.IDE.GHC.ExactPrint as E
5252
import Development.IDE.GHC.Util (printOutputable,
5353
printRdrName)
54-
import Development.IDE.Core.Shake hiding (Log)
5554
import Development.IDE.Plugin.CodeAction.Args
5655
import Development.IDE.Plugin.CodeAction.ExactPrint
57-
import Development.IDE.Plugin.CodeAction.Util
5856
import Development.IDE.Plugin.CodeAction.PositionIndexed
57+
import Development.IDE.Plugin.CodeAction.Util
5958
import Development.IDE.Plugin.Completions.Types
6059
import Development.IDE.Plugin.TypeLenses (suggestSignature)
6160
import Development.IDE.Types.Exports
6261
import Development.IDE.Types.Location
62+
import Development.IDE.Types.Logger hiding
63+
(group)
6364
import Development.IDE.Types.Options
65+
import GHC.Exts (fromList)
6466
import qualified GHC.LanguageExtensions as Lang
6567
import Ide.PluginUtils (subRange)
6668
import Ide.Types
6769
import qualified Language.LSP.Server as LSP
68-
import Language.LSP.Types (ApplyWorkspaceEditParams(..), CodeAction (..),
70+
import Language.LSP.Types (ApplyWorkspaceEditParams (..),
71+
CodeAction (..),
6972
CodeActionContext (CodeActionContext, _diagnostics),
7073
CodeActionKind (CodeActionQuickFix, CodeActionUnknown),
7174
CodeActionParams (CodeActionParams),
7275
Command,
7376
Diagnostic (..),
74-
MessageType (..),
75-
ShowMessageParams (..),
7677
List (..),
78+
MessageType (..),
7779
ResponseError,
7880
SMethod (..),
81+
ShowMessageParams (..),
7982
TextDocumentIdentifier (TextDocumentIdentifier),
8083
TextEdit (TextEdit, _range),
8184
UInt,
8285
WorkspaceEdit (WorkspaceEdit, _changeAnnotations, _changes, _documentChanges),
8386
type (|?) (InR),
8487
uriToFilePath)
85-
import GHC.Exts (fromList)
8688
import Language.LSP.VFS (VirtualFile,
8789
_file_text)
8890
import Text.Regex.TDFA (mrAfter,

plugins/hls-refactor-plugin/src/Development/IDE/Plugin/CodeAction/Util.hs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,23 @@
11
module Development.IDE.Plugin.CodeAction.Util where
22

3-
import Data.Data (Data)
4-
import qualified Data.Unique as U
3+
import Data.Data (Data)
4+
import Data.Time.Clock.POSIX (POSIXTime,
5+
getCurrentTime,
6+
utcTimeToPOSIXSeconds)
7+
import qualified Data.Unique as U
58
import Debug.Trace
69
import Development.IDE.GHC.Compat.ExactPrint as GHC
10+
import Development.IDE.GHC.Dump (showAstDataHtml)
711
import GHC.Stack
8-
import System.Environment.Blank (getEnvDefault)
12+
import System.Environment.Blank (getEnvDefault)
913
import System.IO.Unsafe
1014
import Text.Printf
11-
import Development.IDE.GHC.Dump (showAstDataHtml)
12-
import Data.Time.Clock.POSIX (POSIXTime, getCurrentTime,
13-
utcTimeToPOSIXSeconds)
1415
#if MIN_VERSION_ghc(9,2,0)
1516
import GHC.Utils.Outputable
1617
#else
17-
import Development.IDE.GHC.Util
18-
import Development.IDE.GHC.Compat.Util
1918
import Development.IDE.GHC.Compat
19+
import Development.IDE.GHC.Compat.Util
20+
import Development.IDE.GHC.Util
2021
#endif
2122
--------------------------------------------------------------------------------
2223
-- Tracing exactprint terms

plugins/hls-stan-plugin/src/Ide/Plugin/Stan.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ import Control.Monad.Trans.Class (lift)
77
import Control.Monad.Trans.Maybe (MaybeT (MaybeT), runMaybeT)
88
import Data.Default
99
import Data.Foldable (toList)
10-
import qualified Data.HashMap.Strict as HM
1110
import Data.Hashable (Hashable)
11+
import qualified Data.HashMap.Strict as HM
1212
import qualified Data.Map as Map
1313
import Data.Maybe (fromJust, mapMaybe)
1414
import qualified Data.Text as T
1515
import Development.IDE
16-
import Development.IDE.Core.RuleTypes (HieAstResult (..))
1716
import Development.IDE.Core.Rules (getHieFile,
1817
getSourceFileSource)
18+
import Development.IDE.Core.RuleTypes (HieAstResult (..))
1919
import qualified Development.IDE.Core.Shake as Shake
2020
import Development.IDE.GHC.Compat (HieASTs (HieASTs),
2121
RealSrcSpan (..), mkHieFile',

0 commit comments

Comments
 (0)