feat: lsp type definitions (#1224)

This commit is contained in:
Rodrigodd
2021-09-12 06:36:28 -03:00
committed by GitHub
parent 9d847e7904
commit d022ccaf11
4 changed files with 36 additions and 12 deletions

View File

@@ -447,7 +447,7 @@ Built-in functions. Ready to be bound to any key you like. :smile:
### Neovim LSP Pickers
| Functions | Description |
|---------------------------------------------|-------------------------------------------------------------------------------------------------------------------|
|---------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|
| `builtin.lsp_references` | Lists LSP references for word under the cursor |
| `builtin.lsp_document_symbols` | Lists LSP document symbols in the current buffer |
| `builtin.lsp_workspace_symbols` | Lists LSP document symbols in the current workspace |
@@ -458,6 +458,7 @@ Built-in functions. Ready to be bound to any key you like. :smile:
| `builtin.lsp_workspace_diagnostics` | Lists LSP diagnostics for the current workspace if supported, otherwise searches in all open buffers |
| `builtin.lsp_implementations` | Goto the implementation of the word under the cursor if there's only one, otherwise show all options in Telescope |
| `builtin.lsp_definitions` | Goto the definition of the word under the cursor, if there's only one, otherwise show all options in Telescope |
| `builtin.lsp_type_definitions` | Goto the definition of the type of the word under the cursor, if there's only one, otherwise show all options in Telescope|
#### Pre-filtering option for LSP pickers

View File

@@ -905,6 +905,18 @@ builtin.lsp_definitions({opts}) *builtin.lsp_definitions()*
values: "tab", "split", "vsplit", "never"
builtin.lsp_type_definitions({opts}) *builtin.lsp_type_definitions()*
Goto the definition of the type of the word under the cursor, if there's
only one, otherwise show all options in Telescope
Parameters: ~
{opts} (table) options to pass to the picker
Fields: ~
{jump_type} (string) how to goto definition if there is only one,
values: "tab", "split", "vsplit", "never"
builtin.lsp_implementations({opts}) *builtin.lsp_implementations()*
Goto the implementation of the word under the cursor if there's only one,
otherwise show all options in Telescope

View File

@@ -355,6 +355,12 @@ builtin.lsp_references = require_on_exported_call("telescope.builtin.lsp").refer
---@field jump_type string: how to goto definition if there is only one, values: "tab", "split", "vsplit", "never"
builtin.lsp_definitions = require_on_exported_call("telescope.builtin.lsp").definitions
--- Goto the definition of the type of the word under the cursor, if there's only one,
--- otherwise show all options in Telescope
---@param opts table: options to pass to the picker
---@field jump_type string: how to goto definition if there is only one, values: "tab", "split", "vsplit", "never"
builtin.lsp_type_definitions = require("telescope.builtin.lsp").type_definitions
--- Goto the implementation of the word under the cursor if there's only one, otherwise show all options in Telescope
---@param opts table: options to pass to the picker
---@field jump_type string: how to goto implementation if there is only one, values: "tab", "split", "vsplit", "never"

View File

@@ -95,6 +95,10 @@ lsp.definitions = function(opts)
return list_or_jump("textDocument/definition", "LSP Definitions", opts)
end
lsp.type_definitions = function(opts)
return list_or_jump("textDocument/typeDefinition", "LSP Type Definitions", opts)
end
lsp.implementations = function(opts)
return list_or_jump("textDocument/implementation", "LSP Implementations", opts)
end
@@ -403,6 +407,7 @@ local feature_map = {
["document_symbols"] = "document_symbol",
["references"] = "find_references",
["definitions"] = "goto_definition",
["type_definitions"] = "type_definition",
["implementations"] = "implementation",
["workspace_symbols"] = "workspace_symbol",
}