Skip to content

Commit 48e4cc5

Browse files
committed
Support PackageImports in hiddenPackageSuggestion
Fix: #4479
1 parent 32f7800 commit 48e4cc5

File tree

3 files changed

+22
-2
lines changed

3 files changed

+22
-2
lines changed

plugins/hls-cabal-plugin/src/Ide/Plugin/Cabal/CabalAdd.hs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,12 +204,16 @@ hiddenPackageSuggestion diag = getMatch (msg =~ regex)
204204
msg :: T.Text
205205
msg = _message diag
206206
regex :: T.Text -- TODO: Support multiple packages suggestion
207-
regex = "It is a member of the hidden package [\8216']([a-zA-Z0-9-]*[a-zA-Z0-9])(-([0-9\\.]*))?[\8217']"
207+
regex =
208+
"It is a member of the hidden package [\8216']([a-zA-Z0-9-]*[a-zA-Z0-9])(-([0-9\\.]*))?[\8217']"
209+
<> "|"
210+
<> "needs flag -package-id ([a-zA-Z0-9-]*[a-zA-Z0-9])(-([0-9\\.]*))?"
208211
-- Have to do this matching because `Regex.TDFA` doesn't(?) support
209212
-- not-capturing groups like (?:message)
210213
getMatch :: (T.Text, T.Text, T.Text, [T.Text]) -> [(T.Text, T.Text)]
211214
getMatch (_, _, _, []) = []
212-
getMatch (_, _, _, [dependency, _, cleanVersion]) = [(dependency, cleanVersion)]
215+
getMatch (_, _, _, [dependency, _, cleanVersion, "", "", ""]) = [(dependency, cleanVersion)]
216+
getMatch (_, _, _, ["", "", "", dependency, _, cleanVersion]) = [(dependency, cleanVersion)]
213217
getMatch (_, _, _, _) = error "Impossible pattern matching case"
214218

215219
command :: Recorder (WithPriority Log) -> CommandFunction IdeState CabalAddCommandParams

plugins/hls-cabal-plugin/test/testdata/cabal-add-testdata/cabal-add-tests/cabal-add-tests.cabal

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,11 @@ test-suite cabal-add-tests-test
1616
hs-source-dirs: test
1717
main-is: Main.hs
1818
build-depends: base
19+
20+
test-suite cabal-add-tests-test-package-imports
21+
import: warnings
22+
default-language: Haskell2010
23+
type: exitcode-stdio-1.0
24+
hs-source-dirs: test
25+
main-is: MainPackageImports.hs
26+
build-depends: base
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{-# LANGUAGE PackageImports #-}
2+
3+
module Main (main) where
4+
5+
import "split" Data.List.Split
6+
7+
main :: IO ()
8+
main = putStrLn "Test suite not yet implemented."

0 commit comments

Comments
 (0)