@@ -72,17 +72,23 @@ fetchCompletions opts entry store query
72
72
73
73
pragmaCompletions :: MonadIO m => CompletionOptions -> VFS. PosPrefixInfo -> m [J. CompletionItem ]
74
74
pragmaCompletions opts query
75
- | isLanguagePragma = return $ toMatchingCompletions opts query $ Keyword <$> knownExtensions
75
+ | isLanguagePragma = return $ toMatchingCompletions opts query knownExtensions
76
76
| isOptionPragma = return []
77
- | otherwise = return $ toMatchingCompletions opts query $ Keyword <$> pragmaKinds
78
- where line = VFS. fullLine query
79
- languagePragma = " LANGUAGE"
80
- knownTools = T. pack . show <$> ([minBound .. maxBound ] :: [CS. KnownTool ])
81
- optionPragmas = (" OPTIONS_" <> ) <$> knownTools
82
- isLanguagePragma = languagePragma `T.isInfixOf` line
83
- isOptionPragma = any (`T.isInfixOf` line) optionPragmas
84
- pragmaKinds = languagePragma : optionPragmas
85
- knownExtensions = T. pack . show <$> ([minBound .. maxBound ] :: [CS. KnownExtension ])
77
+ | otherwise = return $ toMatchingCompletions opts query pragmaKeywords
78
+ where line = VFS. fullLine query
79
+ languagePragmaName = " LANGUAGE"
80
+ optionPragmaPrefix = " OPTIONS_"
81
+ languagePragma = Tagged [] $ Keyword languagePragmaName
82
+ knownTools = [minBound .. maxBound ] :: [CS. KnownTool ]
83
+ optionPragmas = makeToolOptionKeyword <$> knownTools
84
+ makeToolOptionKeyword tool = Tagged tags $ Keyword $ optionPragmaPrefix <> T. pack (show tool)
85
+ where tags = case tool of
86
+ CS. CYMAKE -> [J. CitDeprecated ]
87
+ _ -> []
88
+ isLanguagePragma = languagePragmaName `T.isInfixOf` line
89
+ isOptionPragma = optionPragmaPrefix `T.isInfixOf` line
90
+ pragmaKeywords = languagePragma : optionPragmas
91
+ knownExtensions = Keyword . T. pack . show <$> ([minBound .. maxBound ] :: [CS. KnownExtension ])
86
92
87
93
importCompletions :: (MonadIO m , MonadLsp c m ) => CompletionOptions -> I. IndexStore -> VFS. PosPrefixInfo -> m [J. CompletionItem ]
88
94
importCompletions opts store query = do
0 commit comments