Skip to content

Commit fdbc855

Browse files
committed
Fix hls-pragma-plugin tests
1 parent 78ca59c commit fdbc855

File tree

3 files changed

+16
-9
lines changed

3 files changed

+16
-9
lines changed

ghcide/src/Development/IDE/Types/Diagnostics.hs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ import Control.Lens
3737
import qualified Data.Aeson as JSON
3838
import qualified Data.Aeson.Lens as JSON
3939
import Data.ByteString (ByteString)
40-
import Data.List
40+
import Data.Foldable
4141
import Data.Maybe as Maybe
4242
import qualified Data.Text as T
4343
import Development.IDE.GHC.Compat (GhcMessage, MsgEnvelope,
@@ -146,7 +146,10 @@ attachReason Nothing = id
146146
attachReason (Just wr) = attachedReason .~ fmap JSON.toJSON (showReason wr)
147147
where
148148
showReason = \case
149-
WarningWithFlag flag -> showFlag flag
149+
WarningWithFlag flag -> Just $ catMaybes [showFlag flag]
150+
#if MIN_VERSION_ghc(9,7,0)
151+
WarningWithFlags flags -> Just $ catMaybes (fmap showFlag $ toList flags)
152+
#endif
150153
_ -> Nothing
151154

152155
showFlag :: WarningFlag -> Maybe T.Text

plugins/hls-pragmas-plugin/src/Ide/Plugin/Pragmas.hs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import Control.Lens hiding (List)
1919
import Control.Monad.IO.Class (MonadIO (liftIO))
2020
import qualified Data.Aeson as JSON
2121
import Data.Char (isAlphaNum)
22+
import qualified Data.Foldable as Foldable
2223
import Data.List.Extra (nubOrdOn)
2324
import qualified Data.Map as M
2425
import Data.Maybe (mapMaybe)
@@ -122,10 +123,13 @@ suggest dflags diag =
122123

123124
suggestDisableWarning :: Diagnostic -> [PragmaEdit]
124125
suggestDisableWarning diagnostic
125-
| Just (Just (JSON.String attachedReason)) <- diagnostic ^? attachedReason
126-
, Just w <- T.stripPrefix "-W" attachedReason
127-
, w `notElem` warningBlacklist =
128-
pure ("Disable \"" <> w <> "\" warnings", OptGHC w)
126+
| Just (Just (JSON.Array attachedReasons)) <- diagnostic ^? attachedReason
127+
=
128+
[ ("Disable \"" <> w <> "\" warnings", OptGHC w)
129+
| JSON.String attachedReason <- Foldable.toList attachedReasons
130+
, Just w <- [T.stripPrefix "-W" attachedReason]
131+
, w `notElem` warningBlacklist
132+
]
129133
| otherwise = []
130134

131135
warningBlacklist :: [T.Text]

plugins/hls-pragmas-plugin/test/Main.hs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,10 +73,10 @@ codeActionTests =
7373
, codeActionTestWithPragmasSuggest "adds TypeApplications pragma" "TypeApplications" [("Add \"TypeApplications\"", "Contains TypeApplications code action")]
7474
, codeActionTestWithPragmasSuggest "after shebang" "AfterShebang" [("Add \"NamedFieldPuns\"", "Contains NamedFieldPuns code action")]
7575
, codeActionTestWithPragmasSuggest "append to existing pragmas" "AppendToExisting" [("Add \"NamedFieldPuns\"", "Contains NamedFieldPuns code action")]
76-
, codeActionTestWithPragmasSuggest "before doc comments" "BeforeDocComment" [("Add \"NamedFieldPuns\"", "Contains NamedFieldPuns code action")]
76+
, codeActionTestWithPragmasSuggest "before doc comments NamedFieldPuns" "BeforeDocComment" [("Add \"NamedFieldPuns\"", "Contains NamedFieldPuns code action")]
7777
, codeActionTestWithPragmasSuggest "adds TypeSynonymInstances pragma" "NeedsPragmas" [("Add \"TypeSynonymInstances\"", "Contains TypeSynonymInstances code action"), ("Add \"FlexibleInstances\"", "Contains FlexibleInstances code action")]
78-
, codeActionTestWithDisableWarning "before doc comments" "MissingSignatures" [("Disable \"missing-signatures\" warnings", "Contains missing-signatures code action")]
79-
, codeActionTestWithDisableWarning "before doc comments" "UnusedImports" [("Disable \"unused-imports\" warnings", "Contains unused-imports code action")]
78+
, codeActionTestWithDisableWarning "before doc comments missing-signatures" "MissingSignatures" [("Disable \"missing-signatures\" warnings", "Contains missing-signatures code action")]
79+
, codeActionTestWithDisableWarning "before doc comments unused-imports" "UnusedImports" [("Disable \"unused-imports\" warnings", "Contains unused-imports code action")]
8080
]
8181

8282
codeActionTestWithPragmasSuggest :: String -> FilePath -> [(T.Text, String)] -> TestTree

0 commit comments

Comments
 (0)