aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/lua/vim')
-rw-r--r--runtime/lua/vim/lsp/completion.lua8
-rw-r--r--runtime/lua/vim/lsp/protocol.lua12
2 files changed, 19 insertions, 1 deletions
diff --git a/runtime/lua/vim/lsp/completion.lua b/runtime/lua/vim/lsp/completion.lua
index 1078e3eb7e..6a6659fd25 100644
--- a/runtime/lua/vim/lsp/completion.lua
+++ b/runtime/lua/vim/lsp/completion.lua
@@ -253,6 +253,13 @@ function M._lsp_to_complete_items(result, prefix, client_id)
for _, item in ipairs(items) do
if matches(item) then
local word = get_completion_word(item)
+ local hl_group = ''
+ if
+ item.deprecated
+ or vim.list_contains((item.tags or {}), protocol.CompletionTag.Deprecated)
+ then
+ hl_group = 'DiagnosticDeprecated'
+ end
table.insert(candidates, {
word = word,
abbr = item.label,
@@ -262,6 +269,7 @@ function M._lsp_to_complete_items(result, prefix, client_id)
icase = 1,
dup = 1,
empty = 1,
+ hl_group = hl_group,
user_data = {
nvim = {
lsp = {
diff --git a/runtime/lua/vim/lsp/protocol.lua b/runtime/lua/vim/lsp/protocol.lua
index 656921644d..b53f9a207a 100644
--- a/runtime/lua/vim/lsp/protocol.lua
+++ b/runtime/lua/vim/lsp/protocol.lua
@@ -99,6 +99,13 @@ local constants = {
TriggerForIncompleteCompletions = 3,
},
+ -- Completion item tags are extra annotations that tweak the rendering of a
+ -- completion item
+ CompletionTag = {
+ -- Render a completion as obsolete, usually using a strike-out.
+ Deprecated = 1,
+ },
+
-- A document highlight kind.
DocumentHighlightKind = {
-- A textual occurrence.
@@ -433,13 +440,16 @@ function protocol.make_client_capabilities()
snippetSupport = true,
commitCharactersSupport = false,
preselectSupport = false,
- deprecatedSupport = false,
+ deprecatedSupport = true,
documentationFormat = { constants.MarkupKind.Markdown, constants.MarkupKind.PlainText },
resolveSupport = {
properties = {
'additionalTextEdits',
},
},
+ tagSupport = {
+ valueSet = get_value_set(constants.CompletionTag),
+ },
},
completionItemKind = {
valueSet = get_value_set(constants.CompletionItemKind),