mirror of
https://github.com/LazyVim/starter.git
synced 2026-07-25 14:01:03 +00:00
Lsp_symbols for latex
This commit is contained in:
parent
22f40b3d40
commit
5d3f173b42
6 changed files with 809 additions and 1 deletions
|
|
@ -1,6 +1,5 @@
|
||||||
{
|
{
|
||||||
"extras": [
|
"extras": [
|
||||||
"lazyvim.plugins.extras.ai.copilot",
|
|
||||||
"lazyvim.plugins.extras.coding.mini-surround",
|
"lazyvim.plugins.extras.coding.mini-surround",
|
||||||
"lazyvim.plugins.extras.coding.yanky",
|
"lazyvim.plugins.extras.coding.yanky",
|
||||||
"lazyvim.plugins.extras.editor.refactoring",
|
"lazyvim.plugins.extras.editor.refactoring",
|
||||||
|
|
|
||||||
|
|
@ -52,3 +52,90 @@ vim.keymap.set("v", "<D-c>", '"+y', { desc = "Copy to clipboard in visual mode"
|
||||||
vim.keymap.set("v", "<D-x>", '"+d', { desc = "Cut to clipboard" })
|
vim.keymap.set("v", "<D-x>", '"+d', { desc = "Cut to clipboard" })
|
||||||
map_nv("<D-a>", "gg<S-v>G", { desc = "Select all" })
|
map_nv("<D-a>", "gg<S-v>G", { desc = "Select all" })
|
||||||
-- end
|
-- end
|
||||||
|
local function get_environments_from_lsp_symbols(symbols)
|
||||||
|
local blocks = {}
|
||||||
|
local lsp_symbol_kind = vim.lsp.protocol.SymbolKind -- Access the SymbolKind enum
|
||||||
|
|
||||||
|
local function traverse(nodes)
|
||||||
|
for _, symbol in ipairs(nodes) do
|
||||||
|
-- We check for 'Struct' which texlab uses for most \begin{}...\end{} blocks.
|
||||||
|
-- You could add other kinds here if your LSP server uses them.
|
||||||
|
if symbol.kind == lsp_symbol_kind.Struct then
|
||||||
|
table.insert(blocks, {
|
||||||
|
-- lnum is 0-indexed from LSP, so we add 1 for vim
|
||||||
|
lnum = symbol.range.start.line + 1,
|
||||||
|
-- 'text' is the name of the environment (e.g., "figure", "itemize")
|
||||||
|
text = "\\begin{" .. symbol.name .. "}",
|
||||||
|
})
|
||||||
|
end
|
||||||
|
-- Recursively search in child symbols
|
||||||
|
if symbol.children and #symbol.children > 0 then
|
||||||
|
traverse(symbol.children)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
traverse(symbols)
|
||||||
|
return blocks
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Set the keymap <leader>fg to trigger the picker
|
||||||
|
vim.keymap.set("n", "<leader>fg", function()
|
||||||
|
local Snacks = require("snacks")
|
||||||
|
return Snacks.picker({
|
||||||
|
finder = "lsp_symbols", -- Use the LSP symbols as the source
|
||||||
|
layout = {
|
||||||
|
layout = {
|
||||||
|
box = "horizontal",
|
||||||
|
width = 0.5,
|
||||||
|
height = 0.5,
|
||||||
|
{
|
||||||
|
box = "vertical",
|
||||||
|
border = "rounded",
|
||||||
|
title = "Find directory",
|
||||||
|
{ win = "input", height = 1, border = "bottom" },
|
||||||
|
{ win = "list", border = "none" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
format = 'lsp_symbol',
|
||||||
|
confirm = function(picker, item)
|
||||||
|
picker:close()
|
||||||
|
Snacks.picker.pick("files", {
|
||||||
|
dirs = { item.file },
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
filter = {
|
||||||
|
tex = true,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
end
|
||||||
|
, { desc = "Find LaTeX environments using LSP" }) -- Updated description
|
||||||
|
local function get_symbols()
|
||||||
|
-- 1. 检查texlab是否已附加到当前缓冲区
|
||||||
|
local clients = vim.lsp.get_clients({ bufnr = 0 })
|
||||||
|
local texlab_found = false
|
||||||
|
local bufnr = vim.api.nvim_get_current_buf()
|
||||||
|
for _, client in ipairs(clients) do
|
||||||
|
if client.name == "texlab" then
|
||||||
|
texlab_found = true
|
||||||
|
client.request("textDocument/documentSymbol", {
|
||||||
|
textDocument = vim.lsp.util.make_text_document_params(bufnr),
|
||||||
|
}, function(err, result, ctx, config)
|
||||||
|
if err then
|
||||||
|
print("Error:", vim.inspect(err))
|
||||||
|
return
|
||||||
|
end
|
||||||
|
print("texlab symbols:", vim.inspect(result))
|
||||||
|
end, bufnr)
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if not texlab_found then
|
||||||
|
vim.notify("Texlab LSP 未附加到当前缓冲区。", vim.log.levels.WARN)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.notify("正在向 texlab 请求文档结构...", vim.log.levels.INFO)
|
||||||
|
end
|
||||||
|
|
|
||||||
377
lua/output.txt
Normal file
377
lua/output.txt
Normal file
|
|
@ -0,0 +1,377 @@
|
||||||
|
|
||||||
|
{ {
|
||||||
|
children = { {
|
||||||
|
children = {},
|
||||||
|
deprecated = false,
|
||||||
|
kind = 13,
|
||||||
|
name = "Definition",
|
||||||
|
range = {
|
||||||
|
["end"] = {
|
||||||
|
character = 16,
|
||||||
|
line = 18
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 0,
|
||||||
|
line = 15
|
||||||
|
}
|
||||||
|
},
|
||||||
|
selectionRange = {
|
||||||
|
["end"] = {
|
||||||
|
character = 16,
|
||||||
|
line = 18
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 0,
|
||||||
|
line = 15
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
children = { {
|
||||||
|
children = { {
|
||||||
|
children = {},
|
||||||
|
deprecated = false,
|
||||||
|
kind = 22,
|
||||||
|
name = "Item",
|
||||||
|
range = {
|
||||||
|
["end"] = {
|
||||||
|
character = 176,
|
||||||
|
line = 23
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 2,
|
||||||
|
line = 23
|
||||||
|
}
|
||||||
|
},
|
||||||
|
selectionRange = {
|
||||||
|
["end"] = {
|
||||||
|
character = 176,
|
||||||
|
line = 23
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 2,
|
||||||
|
line = 23
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
children = {},
|
||||||
|
deprecated = false,
|
||||||
|
kind = 22,
|
||||||
|
name = "Item",
|
||||||
|
range = {
|
||||||
|
["end"] = {
|
||||||
|
character = 107,
|
||||||
|
line = 24
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 2,
|
||||||
|
line = 24
|
||||||
|
}
|
||||||
|
},
|
||||||
|
selectionRange = {
|
||||||
|
["end"] = {
|
||||||
|
character = 107,
|
||||||
|
line = 24
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 2,
|
||||||
|
line = 24
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
children = { {
|
||||||
|
children = { {
|
||||||
|
children = {},
|
||||||
|
deprecated = false,
|
||||||
|
kind = 22,
|
||||||
|
name = "Item",
|
||||||
|
range = {
|
||||||
|
["end"] = {
|
||||||
|
character = 40,
|
||||||
|
line = 28
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 9,
|
||||||
|
line = 28
|
||||||
|
}
|
||||||
|
},
|
||||||
|
selectionRange = {
|
||||||
|
["end"] = {
|
||||||
|
character = 40,
|
||||||
|
line = 28
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 9,
|
||||||
|
line = 28
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
children = {},
|
||||||
|
deprecated = false,
|
||||||
|
kind = 22,
|
||||||
|
name = "Item",
|
||||||
|
range = {
|
||||||
|
["end"] = {
|
||||||
|
character = 53,
|
||||||
|
line = 29
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 9,
|
||||||
|
line = 29
|
||||||
|
}
|
||||||
|
},
|
||||||
|
selectionRange = {
|
||||||
|
["end"] = {
|
||||||
|
character = 53,
|
||||||
|
line = 29
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 9,
|
||||||
|
line = 29
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
children = {},
|
||||||
|
deprecated = false,
|
||||||
|
kind = 22,
|
||||||
|
name = "Item",
|
||||||
|
range = {
|
||||||
|
["end"] = {
|
||||||
|
character = 45,
|
||||||
|
line = 30
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 9,
|
||||||
|
line = 30
|
||||||
|
}
|
||||||
|
},
|
||||||
|
selectionRange = {
|
||||||
|
["end"] = {
|
||||||
|
character = 45,
|
||||||
|
line = 30
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 9,
|
||||||
|
line = 30
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} },
|
||||||
|
deprecated = false,
|
||||||
|
kind = 10,
|
||||||
|
name = "Enumerate",
|
||||||
|
range = {
|
||||||
|
["end"] = {
|
||||||
|
character = 23,
|
||||||
|
line = 31
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 8,
|
||||||
|
line = 27
|
||||||
|
}
|
||||||
|
},
|
||||||
|
selectionRange = {
|
||||||
|
["end"] = {
|
||||||
|
character = 23,
|
||||||
|
line = 31
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 8,
|
||||||
|
line = 27
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} },
|
||||||
|
deprecated = false,
|
||||||
|
kind = 22,
|
||||||
|
name = "Item",
|
||||||
|
range = {
|
||||||
|
["end"] = {
|
||||||
|
character = 23,
|
||||||
|
line = 31
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 2,
|
||||||
|
line = 25
|
||||||
|
}
|
||||||
|
},
|
||||||
|
selectionRange = {
|
||||||
|
["end"] = {
|
||||||
|
character = 23,
|
||||||
|
line = 31
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 2,
|
||||||
|
line = 25
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
children = {},
|
||||||
|
deprecated = false,
|
||||||
|
kind = 22,
|
||||||
|
name = "Item",
|
||||||
|
range = {
|
||||||
|
["end"] = {
|
||||||
|
character = 45,
|
||||||
|
line = 32
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 2,
|
||||||
|
line = 32
|
||||||
|
}
|
||||||
|
},
|
||||||
|
selectionRange = {
|
||||||
|
["end"] = {
|
||||||
|
character = 45,
|
||||||
|
line = 32
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 2,
|
||||||
|
line = 32
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
children = {},
|
||||||
|
deprecated = false,
|
||||||
|
kind = 22,
|
||||||
|
name = "Item",
|
||||||
|
range = {
|
||||||
|
["end"] = {
|
||||||
|
character = 42,
|
||||||
|
line = 33
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 2,
|
||||||
|
line = 33
|
||||||
|
}
|
||||||
|
},
|
||||||
|
selectionRange = {
|
||||||
|
["end"] = {
|
||||||
|
character = 42,
|
||||||
|
line = 33
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 2,
|
||||||
|
line = 33
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
children = {},
|
||||||
|
deprecated = false,
|
||||||
|
kind = 22,
|
||||||
|
name = "Item",
|
||||||
|
range = {
|
||||||
|
["end"] = {
|
||||||
|
character = 75,
|
||||||
|
line = 34
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 2,
|
||||||
|
line = 34
|
||||||
|
}
|
||||||
|
},
|
||||||
|
selectionRange = {
|
||||||
|
["end"] = {
|
||||||
|
character = 75,
|
||||||
|
line = 34
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 2,
|
||||||
|
line = 34
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} },
|
||||||
|
deprecated = false,
|
||||||
|
kind = 10,
|
||||||
|
name = "Enumerate",
|
||||||
|
range = {
|
||||||
|
["end"] = {
|
||||||
|
character = 16,
|
||||||
|
line = 35
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 1,
|
||||||
|
line = 22
|
||||||
|
}
|
||||||
|
},
|
||||||
|
selectionRange = {
|
||||||
|
["end"] = {
|
||||||
|
character = 16,
|
||||||
|
line = 35
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 1,
|
||||||
|
line = 22
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} },
|
||||||
|
deprecated = false,
|
||||||
|
kind = 13,
|
||||||
|
name = "Theorem",
|
||||||
|
range = {
|
||||||
|
["end"] = {
|
||||||
|
character = 13,
|
||||||
|
line = 36
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 0,
|
||||||
|
line = 20
|
||||||
|
}
|
||||||
|
},
|
||||||
|
selectionRange = {
|
||||||
|
["end"] = {
|
||||||
|
character = 13,
|
||||||
|
line = 36
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 0,
|
||||||
|
line = 20
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
children = {},
|
||||||
|
deprecated = false,
|
||||||
|
kind = 10,
|
||||||
|
name = "Enumerate",
|
||||||
|
range = {
|
||||||
|
["end"] = {
|
||||||
|
character = 15,
|
||||||
|
line = 39
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 0,
|
||||||
|
line = 37
|
||||||
|
}
|
||||||
|
},
|
||||||
|
selectionRange = {
|
||||||
|
["end"] = {
|
||||||
|
character = 15,
|
||||||
|
line = 39
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 0,
|
||||||
|
line = 37
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} },
|
||||||
|
deprecated = false,
|
||||||
|
kind = 2,
|
||||||
|
name = "1 Main result",
|
||||||
|
range = {
|
||||||
|
["end"] = {
|
||||||
|
character = 15,
|
||||||
|
line = 39
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 0,
|
||||||
|
line = 13
|
||||||
|
}
|
||||||
|
},
|
||||||
|
selectionRange = {
|
||||||
|
["end"] = {
|
||||||
|
character = 15,
|
||||||
|
line = 39
|
||||||
|
},
|
||||||
|
start = {
|
||||||
|
character = 0,
|
||||||
|
line = 13
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} }
|
||||||
|
|
@ -115,6 +115,23 @@ return {
|
||||||
config = function()
|
config = function()
|
||||||
vim.keymap.set("n", "<leader>U", vim.cmd.UndotreeToggle, { desc = "Toggle Undotree" })
|
vim.keymap.set("n", "<leader>U", vim.cmd.UndotreeToggle, { desc = "Toggle Undotree" })
|
||||||
end,
|
end,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"hrsh7th/nvim-cmp",
|
||||||
|
requires = {
|
||||||
|
{ "kdheepak/cmp-latex-symbols" },
|
||||||
|
},
|
||||||
|
sources = {
|
||||||
|
{
|
||||||
|
name = "latex_symbols",
|
||||||
|
option = {
|
||||||
|
strategy = 0, -- mixed
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"latex-lsp/texlab",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
-- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim
|
-- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim
|
||||||
|
|
|
||||||
328
lua/test.txt
Normal file
328
lua/test.txt
Normal file
|
|
@ -0,0 +1,328 @@
|
||||||
|
{
|
||||||
|
_log_prefix = "LSP[texlab]",
|
||||||
|
_on_attach_cbs = { <function 55> },
|
||||||
|
_on_exit_cbs = { <function 56>, <function 2> },
|
||||||
|
_on_init_cbs = { <function 57> },
|
||||||
|
_trace = "off",
|
||||||
|
attached_buffers = {
|
||||||
|
[7] = true
|
||||||
|
},
|
||||||
|
cancel_request = <function 58>,
|
||||||
|
capabilities = <6>{
|
||||||
|
general = {
|
||||||
|
positionEncodings = { "utf-16" }
|
||||||
|
},
|
||||||
|
textDocument = {
|
||||||
|
callHierarchy = {
|
||||||
|
dynamicRegistration = false
|
||||||
|
},
|
||||||
|
codeAction = {
|
||||||
|
codeActionLiteralSupport = {
|
||||||
|
codeActionKind = {
|
||||||
|
valueSet = { "", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
dataSupport = true,
|
||||||
|
dynamicRegistration = true,
|
||||||
|
isPreferredSupport = true,
|
||||||
|
resolveSupport = {
|
||||||
|
properties = { "edit" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
completion = {
|
||||||
|
completionItem = {
|
||||||
|
commitCharactersSupport = false,
|
||||||
|
deprecatedSupport = true,
|
||||||
|
documentationFormat = { "markdown", "plaintext" },
|
||||||
|
insertReplaceSupport = true,
|
||||||
|
insertTextModeSupport = {
|
||||||
|
valueSet = { 1 }
|
||||||
|
},
|
||||||
|
labelDetailsSupport = true,
|
||||||
|
preselectSupport = false,
|
||||||
|
resolveSupport = {
|
||||||
|
properties = { "documentation", "detail", "additionalTextEdits", "command", "data" }
|
||||||
|
},
|
||||||
|
snippetSupport = true,
|
||||||
|
tagSupport = {
|
||||||
|
valueSet = { 1 }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
completionItemKind = {
|
||||||
|
valueSet = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 }
|
||||||
|
},
|
||||||
|
completionList = {
|
||||||
|
itemDefaults = { "commitCharacters", "editRange", "insertTextFormat", "insertTextMode", "data" }
|
||||||
|
},
|
||||||
|
contextSupport = true,
|
||||||
|
dynamicRegistration = false,
|
||||||
|
insertTextMode = 1
|
||||||
|
},
|
||||||
|
declaration = {
|
||||||
|
linkSupport = true
|
||||||
|
},
|
||||||
|
definition = {
|
||||||
|
dynamicRegistration = true,
|
||||||
|
linkSupport = true
|
||||||
|
},
|
||||||
|
diagnostic = {
|
||||||
|
dynamicRegistration = false
|
||||||
|
},
|
||||||
|
documentHighlight = {
|
||||||
|
dynamicRegistration = false
|
||||||
|
},
|
||||||
|
documentSymbol = {
|
||||||
|
dynamicRegistration = false,
|
||||||
|
hierarchicalDocumentSymbolSupport = true,
|
||||||
|
symbolKind = {
|
||||||
|
valueSet = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
formatting = {
|
||||||
|
dynamicRegistration = true
|
||||||
|
},
|
||||||
|
hover = {
|
||||||
|
contentFormat = { "markdown", "plaintext" },
|
||||||
|
dynamicRegistration = true
|
||||||
|
},
|
||||||
|
implementation = {
|
||||||
|
linkSupport = true
|
||||||
|
},
|
||||||
|
inlayHint = {
|
||||||
|
dynamicRegistration = true,
|
||||||
|
resolveSupport = {
|
||||||
|
properties = { "textEdits", "tooltip", "location", "command" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
publishDiagnostics = {
|
||||||
|
dataSupport = true,
|
||||||
|
relatedInformation = true,
|
||||||
|
tagSupport = {
|
||||||
|
valueSet = { 1, 2 }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
rangeFormatting = {
|
||||||
|
dynamicRegistration = true
|
||||||
|
},
|
||||||
|
references = {
|
||||||
|
dynamicRegistration = false
|
||||||
|
},
|
||||||
|
rename = {
|
||||||
|
dynamicRegistration = true,
|
||||||
|
prepareSupport = true
|
||||||
|
},
|
||||||
|
semanticTokens = {
|
||||||
|
augmentsSyntaxTokens = true,
|
||||||
|
dynamicRegistration = false,
|
||||||
|
formats = { "relative" },
|
||||||
|
multilineTokenSupport = false,
|
||||||
|
overlappingTokenSupport = true,
|
||||||
|
requests = {
|
||||||
|
full = {
|
||||||
|
delta = true
|
||||||
|
},
|
||||||
|
range = false
|
||||||
|
},
|
||||||
|
serverCancelSupport = false,
|
||||||
|
tokenModifiers = { "declaration", "definition", "readonly", "static", "deprecated", "abstract", "async", "modification", "documentation", "defaultLibrary" },
|
||||||
|
tokenTypes = { "namespace", "type", "class", "enum", "interface", "struct", "typeParameter", "parameter", "variable", "property", "enumMember", "event", "function", "method", "macro", "keyword", "modifier", "comment", "string", "number", "regexp", "operator", "decorator" }
|
||||||
|
},
|
||||||
|
signatureHelp = {
|
||||||
|
dynamicRegistration = false,
|
||||||
|
signatureInformation = {
|
||||||
|
activeParameterSupport = true,
|
||||||
|
documentationFormat = { "markdown", "plaintext" },
|
||||||
|
parameterInformation = {
|
||||||
|
labelOffsetSupport = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
synchronization = {
|
||||||
|
didSave = true,
|
||||||
|
dynamicRegistration = false,
|
||||||
|
willSave = true,
|
||||||
|
willSaveWaitUntil = true
|
||||||
|
},
|
||||||
|
typeDefinition = {
|
||||||
|
linkSupport = true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
window = {
|
||||||
|
showDocument = {
|
||||||
|
support = true
|
||||||
|
},
|
||||||
|
showMessage = {
|
||||||
|
messageActionItem = {
|
||||||
|
additionalPropertiesSupport = false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
workDoneProgress = true
|
||||||
|
},
|
||||||
|
workspace = {
|
||||||
|
applyEdit = true,
|
||||||
|
configuration = true,
|
||||||
|
didChangeConfiguration = {
|
||||||
|
dynamicRegistration = false
|
||||||
|
},
|
||||||
|
didChangeWatchedFiles = {
|
||||||
|
dynamicRegistration = true,
|
||||||
|
relativePatternSupport = true
|
||||||
|
},
|
||||||
|
fileOperations = {
|
||||||
|
didRename = true,
|
||||||
|
willRename = true
|
||||||
|
},
|
||||||
|
inlayHint = {
|
||||||
|
refreshSupport = true
|
||||||
|
},
|
||||||
|
semanticTokens = {
|
||||||
|
refreshSupport = true
|
||||||
|
},
|
||||||
|
symbol = {
|
||||||
|
dynamicRegistration = false,
|
||||||
|
symbolKind = {
|
||||||
|
valueSet = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
workspaceEdit = {
|
||||||
|
resourceOperations = { "rename", "create", "delete" }
|
||||||
|
},
|
||||||
|
workspaceFolders = true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
commands = {},
|
||||||
|
config = {
|
||||||
|
autostart = true,
|
||||||
|
capabilities = <table 6>,
|
||||||
|
cmd = { "texlab" },
|
||||||
|
cmd_cwd = "/Users/fengyuanlin/test",
|
||||||
|
filetypes = { "tex", "plaintex", "bib" },
|
||||||
|
handlers = <7>{},
|
||||||
|
init_options = vim.empty_dict(),
|
||||||
|
keys = { { "<Leader>K", "<plug>(vimtex-doc-package)",
|
||||||
|
desc = "Vimtex Docs",
|
||||||
|
mode = "n",
|
||||||
|
silent = true
|
||||||
|
} },
|
||||||
|
log_level = 2,
|
||||||
|
message_level = 2,
|
||||||
|
name = "texlab",
|
||||||
|
on_attach = <function 55>,
|
||||||
|
on_exit = <function 56>,
|
||||||
|
on_init = <function 57>,
|
||||||
|
root_dir = "/Users/fengyuanlin/test",
|
||||||
|
settings = <8>{
|
||||||
|
texlab = {
|
||||||
|
bibtexFormatter = "texlab",
|
||||||
|
build = {
|
||||||
|
args = { "-pdf", "-interaction=nonstopmode", "-synctex=1", "%f" },
|
||||||
|
executable = "latexmk",
|
||||||
|
forwardSearchAfter = false,
|
||||||
|
onSave = false
|
||||||
|
},
|
||||||
|
chktex = {
|
||||||
|
onEdit = false,
|
||||||
|
onOpenAndSave = false
|
||||||
|
},
|
||||||
|
diagnosticsDelay = 300,
|
||||||
|
formatterLineLength = 80,
|
||||||
|
forwardSearch = {
|
||||||
|
args = {}
|
||||||
|
},
|
||||||
|
latexFormatter = "latexindent",
|
||||||
|
latexindent = {
|
||||||
|
modifyLineBreaks = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
single_file_support = true,
|
||||||
|
workspace_folders = <9>{ {
|
||||||
|
name = "/Users/fengyuanlin/test",
|
||||||
|
uri = "file:///Users/fengyuanlin/test"
|
||||||
|
} },
|
||||||
|
<metatable> = <10>{
|
||||||
|
__tostring = <function 59>
|
||||||
|
}
|
||||||
|
},
|
||||||
|
dynamic_capabilities = {
|
||||||
|
capabilities = {},
|
||||||
|
client_id = 2,
|
||||||
|
<metatable> = {
|
||||||
|
__index = <table 3>
|
||||||
|
}
|
||||||
|
},
|
||||||
|
flags = {},
|
||||||
|
get_language_id = <function 17>,
|
||||||
|
handlers = <table 7>,
|
||||||
|
id = 2,
|
||||||
|
initialized = true,
|
||||||
|
is_stopped = <function 60>,
|
||||||
|
messages = {
|
||||||
|
messages = {},
|
||||||
|
name = "texlab",
|
||||||
|
progress = {},
|
||||||
|
status = {}
|
||||||
|
},
|
||||||
|
name = "texlab",
|
||||||
|
notify = <function 61>,
|
||||||
|
offset_encoding = "utf-16",
|
||||||
|
on_attach = <function 62>,
|
||||||
|
progress = {
|
||||||
|
_idx_read = 0,
|
||||||
|
_idx_write = 0,
|
||||||
|
_items = {},
|
||||||
|
_size = 51,
|
||||||
|
pending = {},
|
||||||
|
<metatable> = {
|
||||||
|
__call = <function 63>,
|
||||||
|
__index = <table 4>
|
||||||
|
}
|
||||||
|
},
|
||||||
|
request = <function 64>,
|
||||||
|
request_sync = <function 65>,
|
||||||
|
requests = {},
|
||||||
|
root_dir = "/Users/fengyuanlin/test",
|
||||||
|
rpc = {
|
||||||
|
is_closing = <function 66>,
|
||||||
|
notify = <function 67>,
|
||||||
|
request = <function 68>,
|
||||||
|
terminate = <function 69>
|
||||||
|
},
|
||||||
|
server_capabilities = {
|
||||||
|
completionProvider = {
|
||||||
|
resolveProvider = true,
|
||||||
|
triggerCharacters = { "\\", "{", "}", "@", "/", " " }
|
||||||
|
},
|
||||||
|
definitionProvider = true,
|
||||||
|
documentFormattingProvider = true,
|
||||||
|
documentHighlightProvider = true,
|
||||||
|
documentLinkProvider = {
|
||||||
|
resolveProvider = false
|
||||||
|
},
|
||||||
|
documentSymbolProvider = true,
|
||||||
|
executeCommandProvider = {
|
||||||
|
commands = { "texlab.cleanAuxiliary", "texlab.cleanArtifacts", "texlab.changeEnvironment", "texlab.findEnvironments", "texlab.showDependencyGraph", "texlab.cancelBuild" }
|
||||||
|
},
|
||||||
|
foldingRangeProvider = true,
|
||||||
|
hoverProvider = true,
|
||||||
|
inlayHintProvider = true,
|
||||||
|
referencesProvider = true,
|
||||||
|
renameProvider = {
|
||||||
|
prepareProvider = true
|
||||||
|
},
|
||||||
|
textDocumentSync = {
|
||||||
|
change = 2,
|
||||||
|
openClose = true,
|
||||||
|
save = {
|
||||||
|
includeText = false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
workspaceSymbolProvider = true
|
||||||
|
},
|
||||||
|
settings = <table 8>,
|
||||||
|
stop = <function 70>,
|
||||||
|
supports_method = <function 71>,
|
||||||
|
workspace_did_change_configuration = <function 72>,
|
||||||
|
workspace_folders = <table 9>,
|
||||||
|
<metatable> = <table 5>
|
||||||
|
}
|
||||||
Loading…
Add table
Reference in a new issue