Skip to content

Commit d5a8750

Browse files
authored
Custom-setups completion in cabal files (#4848)
* Custom-setups completion in cabal files * Common completer
1 parent 52cba13 commit d5a8750

1 file changed

Lines changed: 17 additions & 2 deletions

File tree

  • plugins/hls-cabal-plugin/src/Ide/Plugin/Cabal/Completion

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

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,8 @@ stanzaKeywordMap =
8888
("common", libExecTestBenchCommons Library),
8989
("common", libExecTestBenchCommons Common),
9090
("flag", flagFields),
91-
("source-repository", sourceRepositoryFields)
91+
("source-repository", sourceRepositoryFields),
92+
("custom-setup", customSetupFields)
9293
]
9394

9495
libraryFields :: Map KeyWordName Completer
@@ -180,7 +181,7 @@ libExecTestBenchCommons st =
180181
("hs-source-dirs:", directoryCompleter),
181182
("default-extensions:", constantCompleter $ map (T.pack . prettyShow) allExtensions),
182183
("other-extensions:", constantCompleter $ map (T.pack . prettyShow) allExtensions),
183-
("default-language:", constantCompleter ["GHC2021", "Haskell2010", "Haskell98"]),
184+
("default-language:", defaultLanguageCompleter),
184185
("other-languages:", noopCompleter),
185186
("build-tool-depends:", noopCompleter),
186187
("buildable:", constantCompleter ["True", "False"]),
@@ -236,6 +237,15 @@ libExecTestBenchCommons st =
236237
-- but not have erased the "common" stanza.
237238
noopCompleter
238239

240+
customSetupFields :: Map KeyWordName Completer
241+
customSetupFields =
242+
Map.fromList
243+
[ ("setup-depends:", noopCompleter)
244+
, ("build-depends:", noopCompleter)
245+
, ("build-tools:", noopCompleter)
246+
, ("default-language:", defaultLanguageCompleter)
247+
]
248+
239249
-- | Returns all possible language extensions including disabled ones.
240250
allExtensions :: [Extension]
241251
allExtensions =
@@ -249,6 +259,10 @@ allExtensions =
249259
)
250260
knownExtensions
251261

262+
-- | Returns all possible default languages
263+
defaultLanguageCompleter :: Completer
264+
defaultLanguageCompleter = constantCompleter $ map (T.pack . prettyShow) knownLanguages
265+
252266
-- | Contains a map of the most commonly used licenses, weighted by their popularity.
253267
--
254268
-- The data was extracted by Kleidukos from the alternative hackage frontend flora.pm.
@@ -309,3 +323,4 @@ weightedLicenseNames =
309323

310324
ghcOptions :: [T.Text]
311325
ghcOptions = map T.pack $ flagsForCompletion False
326+

0 commit comments

Comments
 (0)