mirror of
https://github.com/neovim/neovim.git
synced 2026-08-29 18:41:48 +00:00
feat(lsp): handle deprecated document symbols (#34751)
This commit is contained in:
committed by
GitHub
parent
580b8cfac7
commit
957093da0d
@@ -144,6 +144,11 @@ local constants = {
|
||||
TypeParameter = 26,
|
||||
},
|
||||
|
||||
-- Extra annotations that tweak the rendering of a symbol.
|
||||
SymbolTag = {
|
||||
Deprecated = 1,
|
||||
},
|
||||
|
||||
-- Represents reasons why a text document is saved.
|
||||
TextDocumentSaveReason = {
|
||||
-- Manually triggered, e.g. by the user pressing save, by starting debugging,
|
||||
@@ -525,6 +530,9 @@ function protocol.make_client_capabilities()
|
||||
valueSet = get_value_set(constants.SymbolKind),
|
||||
},
|
||||
hierarchicalDocumentSymbolSupport = true,
|
||||
tagSupport = {
|
||||
valueSet = get_value_set(constants.SymbolTag),
|
||||
},
|
||||
},
|
||||
rename = {
|
||||
dynamicRegistration = true,
|
||||
|
||||
@@ -1892,6 +1892,11 @@ function M.symbols_to_items(symbols, bufnr, position_encoding)
|
||||
local end_lnum = range['end'].line + 1
|
||||
local end_col = get_line_byte_from_position(bufnr, range['end'], position_encoding) + 1
|
||||
|
||||
local is_deprecated = symbol.deprecated
|
||||
or (symbol.tags and vim.tbl_contains(symbol.tags, protocol.SymbolTag.Deprecated))
|
||||
local text =
|
||||
string.format('[%s] %s%s', kind, symbol.name, is_deprecated and ' (deprecated)' or '')
|
||||
|
||||
items[#items + 1] = {
|
||||
filename = filename,
|
||||
lnum = lnum,
|
||||
@@ -1899,7 +1904,7 @@ function M.symbols_to_items(symbols, bufnr, position_encoding)
|
||||
end_lnum = end_lnum,
|
||||
end_col = end_col,
|
||||
kind = kind,
|
||||
text = '[' .. kind .. '] ' .. symbol.name,
|
||||
text = text,
|
||||
}
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user