aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp/buf.lua
diff options
context:
space:
mode:
authortom-anders <13141438+tom-anders@users.noreply.github.com>2024-04-29 19:20:31 +0200
committertom-anders <13141438+tom-anders@users.noreply.github.com>2024-05-07 19:55:09 +0200
commit4e5086a67e8916d9a5c5c5cb1933633b3e200eee (patch)
treebb55fc1a5169bc45e6e1e05c67700447f2c9f959 /runtime/lua/vim/lsp/buf.lua
parente7f50f43c82225eeecbff531b55d6ed26fad1bf5 (diff)
downloadrneovim-4e5086a67e8916d9a5c5c5cb1933633b3e200eee.tar.gz
rneovim-4e5086a67e8916d9a5c5c5cb1933633b3e200eee.tar.bz2
rneovim-4e5086a67e8916d9a5c5c5cb1933633b3e200eee.zip
refactor(lsp): s/options/opts for parameters in vim.lsp.buf
See https://github.com/neovim/neovim/pull/28483#discussion_r1583344120
Diffstat (limited to 'runtime/lua/vim/lsp/buf.lua')
-rw-r--r--runtime/lua/vim/lsp/buf.lua116
1 files changed, 58 insertions, 58 deletions
diff --git a/runtime/lua/vim/lsp/buf.lua b/runtime/lua/vim/lsp/buf.lua
index 79c1aeb53d..820ff9c2ca 100644
--- a/runtime/lua/vim/lsp/buf.lua
+++ b/runtime/lua/vim/lsp/buf.lua
@@ -35,13 +35,13 @@ function M.hover()
request(ms.textDocument_hover, params)
end
-local function request_with_options(name, params, options)
+local function request_with_opts(name, params, opts)
local req_handler --- @type function?
- if options then
+ if opts then
req_handler = function(err, result, ctx, config)
local client = assert(vim.lsp.get_client_by_id(ctx.client_id))
local handler = client.handlers[name] or vim.lsp.handlers[name]
- handler(err, result, ctx, vim.tbl_extend('force', config or {}, options))
+ handler(err, result, ctx, vim.tbl_extend('force', config or {}, opts))
end
end
request(name, params, req_handler)
@@ -83,32 +83,32 @@ end
--- Jumps to the declaration of the symbol under the cursor.
--- @note Many servers do not implement this method. Generally, see |vim.lsp.buf.definition()| instead.
---- @param options? vim.lsp.LocationOpts
-function M.declaration(options)
+--- @param opts? vim.lsp.LocationOpts
+function M.declaration(opts)
local params = util.make_position_params()
- request_with_options(ms.textDocument_declaration, params, options)
+ request_with_opts(ms.textDocument_declaration, params, opts)
end
--- Jumps to the definition of the symbol under the cursor.
---- @param options? vim.lsp.LocationOpts
-function M.definition(options)
+--- @param opts? vim.lsp.LocationOpts
+function M.definition(opts)
local params = util.make_position_params()
- request_with_options(ms.textDocument_definition, params, options)
+ request_with_opts(ms.textDocument_definition, params, opts)
end
--- Jumps to the definition of the type of the symbol under the cursor.
---- @param options? vim.lsp.LocationOpts
-function M.type_definition(options)
+--- @param opts? vim.lsp.LocationOpts
+function M.type_definition(opts)
local params = util.make_position_params()
- request_with_options(ms.textDocument_typeDefinition, params, options)
+ request_with_opts(ms.textDocument_typeDefinition, params, opts)
end
--- Lists all the implementations for the symbol under the cursor in the
--- quickfix window.
---- @param options? vim.lsp.LocationOpts
-function M.implementation(options)
+--- @param opts? vim.lsp.LocationOpts
+function M.implementation(opts)
local params = util.make_position_params()
- request_with_options(ms.textDocument_implementation, params, options)
+ request_with_opts(ms.textDocument_implementation, params, opts)
end
--- Displays signature information about the symbol under the cursor in a
@@ -213,25 +213,25 @@ end
--- Formats a buffer using the attached (and optionally filtered) language
--- server clients.
---
---- @param options? vim.lsp.buf.format.Opts
-function M.format(options)
- options = options or {}
- local bufnr = options.bufnr or api.nvim_get_current_buf()
+--- @param opts? vim.lsp.buf.format.Opts
+function M.format(opts)
+ opts = opts or {}
+ local bufnr = opts.bufnr or api.nvim_get_current_buf()
local mode = api.nvim_get_mode().mode
- local range = options.range
+ local range = opts.range
if not range and mode == 'v' or mode == 'V' then
range = range_from_selection(bufnr, mode)
end
local method = range and ms.textDocument_rangeFormatting or ms.textDocument_formatting
local clients = vim.lsp.get_clients({
- id = options.id,
+ id = opts.id,
bufnr = bufnr,
- name = options.name,
+ name = opts.name,
method = method,
})
- if options.filter then
- clients = vim.tbl_filter(options.filter, clients)
+ if opts.filter then
+ clients = vim.tbl_filter(opts.filter, clients)
end
if #clients == 0 then
@@ -250,12 +250,12 @@ function M.format(options)
return params
end
- if options.async then
+ if opts.async then
local function do_format(idx, client)
if not client then
return
end
- local params = set_range(client, util.make_formatting_params(options.formatting_options))
+ local params = set_range(client, util.make_formatting_params(opts.formatting_options))
client.request(method, params, function(...)
local handler = client.handlers[method] or vim.lsp.handlers[method]
handler(...)
@@ -264,9 +264,9 @@ function M.format(options)
end
do_format(next(clients))
else
- local timeout_ms = options.timeout_ms or 1000
+ local timeout_ms = opts.timeout_ms or 1000
for _, client in pairs(clients) do
- local params = set_range(client, util.make_formatting_params(options.formatting_options))
+ local params = set_range(client, util.make_formatting_params(opts.formatting_options))
local result, err = client.request_sync(method, params, timeout_ms, bufnr)
if result and result.result then
util.apply_text_edits(result.result, bufnr, client.offset_encoding)
@@ -295,18 +295,18 @@ end
---
---@param new_name string|nil If not provided, the user will be prompted for a new
--- name using |vim.ui.input()|.
----@param options? vim.lsp.buf.rename.Opts Additional options:
-function M.rename(new_name, options)
- options = options or {}
- local bufnr = options.bufnr or api.nvim_get_current_buf()
+---@param opts? vim.lsp.buf.rename.Opts Additional options:
+function M.rename(new_name, opts)
+ opts = opts or {}
+ local bufnr = opts.bufnr or api.nvim_get_current_buf()
local clients = vim.lsp.get_clients({
bufnr = bufnr,
- name = options.name,
+ name = opts.name,
-- Clients must at least support rename, prepareRename is optional
method = ms.textDocument_rename,
})
- if options.filter then
- clients = vim.tbl_filter(options.filter, clients)
+ if opts.filter then
+ clients = vim.tbl_filter(opts.filter, clients)
end
if #clients == 0 then
@@ -415,21 +415,21 @@ end
---
---@param context (table|nil) Context for the request
---@see https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_references
----@param options? vim.lsp.ListOpts
-function M.references(context, options)
+---@param opts? vim.lsp.ListOpts
+function M.references(context, opts)
validate({ context = { context, 't', true } })
local params = util.make_position_params()
params.context = context or {
includeDeclaration = true,
}
- request_with_options(ms.textDocument_references, params, options)
+ request_with_opts(ms.textDocument_references, params, opts)
end
--- Lists all symbols in the current buffer in the quickfix window.
---- @param options? vim.lsp.ListOpts
-function M.document_symbol(options)
+--- @param opts? vim.lsp.ListOpts
+function M.document_symbol(opts)
local params = { textDocument = util.make_text_document_params() }
- request_with_options(ms.textDocument_documentSymbol, params, options)
+ request_with_opts(ms.textDocument_documentSymbol, params, opts)
end
--- @param call_hierarchy_items lsp.CallHierarchyItem[]?
@@ -542,7 +542,7 @@ function M.typehierarchy(kind)
)
end
else
- local opts = {
+ local select_opts = {
prompt = 'Select a type hierarchy item:',
kind = 'typehierarchy',
format_item = function(item)
@@ -553,7 +553,7 @@ function M.typehierarchy(kind)
end,
}
- vim.ui.select(merged_results, opts, function(item)
+ vim.ui.select(merged_results, select_opts, function(item)
local client = vim.lsp.get_client_by_id(item[1])
if client then
--- @type lsp.TypeHierarchyItem
@@ -626,14 +626,14 @@ end
--- string means no filtering is done.
---
--- @param query string? optional
---- @param options? vim.lsp.ListOpts
-function M.workspace_symbol(query, options)
+--- @param opts? vim.lsp.ListOpts
+function M.workspace_symbol(query, opts)
query = query or npcall(vim.fn.input, 'Query: ')
if query == nil then
return
end
local params = { query = query }
- request_with_options(ms.workspace_symbol, params, options)
+ request_with_opts(ms.workspace_symbol, params, opts)
end
--- Send request to the server to resolve document highlights for the current
@@ -825,19 +825,19 @@ end
--- Selects a code action available at the current
--- cursor position.
---
----@param options? vim.lsp.buf.code_action.Opts
+---@param opts? vim.lsp.buf.code_action.Opts
---@see https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_codeAction
---@see vim.lsp.protocol.CodeActionTriggerKind
-function M.code_action(options)
- validate({ options = { options, 't', true } })
- options = options or {}
+function M.code_action(opts)
+ validate({ options = { opts, 't', true } })
+ opts = opts or {}
-- Detect old API call code_action(context) which should now be
-- code_action({ context = context} )
--- @diagnostic disable-next-line:undefined-field
- if options.diagnostics or options.only then
- options = { options = options }
+ if opts.diagnostics or opts.only then
+ opts = { options = opts }
end
- local context = options.context or {}
+ local context = opts.context or {}
if not context.triggerKind then
context.triggerKind = vim.lsp.protocol.CodeActionTriggerKind.Invoked
end
@@ -867,17 +867,17 @@ function M.code_action(options)
results[ctx.client_id] = { error = err, result = result, ctx = ctx }
remaining = remaining - 1
if remaining == 0 then
- on_code_action_results(results, options)
+ on_code_action_results(results, opts)
end
end
for _, client in ipairs(clients) do
---@type lsp.CodeActionParams
local params
- if options.range then
- assert(type(options.range) == 'table', 'code_action range must be a table')
- local start = assert(options.range.start, 'range must have a `start` property')
- local end_ = assert(options.range['end'], 'range must have a `end` property')
+ if opts.range then
+ assert(type(opts.range) == 'table', 'code_action range must be a table')
+ local start = assert(opts.range.start, 'range must have a `start` property')
+ local end_ = assert(opts.range['end'], 'range must have a `end` property')
params = util.make_given_range_params(start, end_, bufnr, client.offset_encoding)
elseif mode == 'v' or mode == 'V' then
local range = range_from_selection(bufnr, mode)