aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp/buf.lua
diff options
context:
space:
mode:
authorkishii <24446852+zhoudaxia2016@users.noreply.github.com>2023-01-21 15:22:34 +0800
committerGitHub <noreply@github.com>2023-01-21 08:22:34 +0100
commit7ef5e363d360f86c5d8d403e90ed256f4de798ec (patch)
treef85d53931f830f0b332082d5f27be8df02f0cbe0 /runtime/lua/vim/lsp/buf.lua
parente86d2734a93e159d44df8132dee6b994e5922d18 (diff)
downloadrneovim-7ef5e363d360f86c5d8d403e90ed256f4de798ec.tar.gz
rneovim-7ef5e363d360f86c5d8d403e90ed256f4de798ec.tar.bz2
rneovim-7ef5e363d360f86c5d8d403e90ed256f4de798ec.zip
feat(lsp): add triggerKind option for vim.lsp.buf.code_action (#21905)
Diffstat (limited to 'runtime/lua/vim/lsp/buf.lua')
-rw-r--r--runtime/lua/vim/lsp/buf.lua5
1 files changed, 5 insertions, 0 deletions
diff --git a/runtime/lua/vim/lsp/buf.lua b/runtime/lua/vim/lsp/buf.lua
index 87b3ac6f1e..be237eb494 100644
--- a/runtime/lua/vim/lsp/buf.lua
+++ b/runtime/lua/vim/lsp/buf.lua
@@ -733,6 +733,7 @@ end
--- List of LSP `CodeActionKind`s used to filter the code actions.
--- Most language servers support values like `refactor`
--- or `quickfix`.
+--- - triggerKind (number|nil): The reason why code actions were requested.
--- - filter: (function|nil)
--- Predicate taking an `CodeAction` and returning a boolean.
--- - apply: (boolean|nil)
@@ -746,6 +747,7 @@ end
--- using mark-like indexing. See |api-indexing|
---
---@see https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_codeAction
+---@see vim.lsp.protocol.constants.CodeActionTriggerKind
function M.code_action(options)
validate({ options = { options, 't', true } })
options = options or {}
@@ -755,6 +757,9 @@ function M.code_action(options)
options = { options = options }
end
local context = options.context or {}
+ if not context.triggerKind then
+ context.triggerKind = vim.lsp.protocol.CodeActionTriggerKind.Invoked
+ end
if not context.diagnostics then
local bufnr = api.nvim_get_current_buf()
context.diagnostics = vim.lsp.diagnostic.get_line_diagnostics(bufnr)