| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Make apply_text_edits non-ASCII safe
Use `vim.str_byteindex` to correct starting and ending positions for text edits if the line contains non-ASCII characters.
Fixes #12221
* text_edit may be applied to other buffers
* make sure the buffer is loaded
* add comments
* add test for non-ASCII edits
|
|
|
|
|
|
|
|
|
|
|
| |
* lsp: handle kinds not specified in protocol
fix: #12200
If the client set "symbolKind.valueSet",
the client must handle it properly even if it receives a value outside the specification.
* test: add lsp.util.{get_completion_item_kind_name, get_symbol_kind_name} test case
* lsp: make lsp.util.{get_completion_item_kind_name, get_symbol_kind_name} private
|
| |
|
| |
|
|
|
| |
Fixes https://github.com/neovim/neovim/issues/12210
|
|\
| |
| | |
lsp: text_document.version may be vim.NIL not nil
|
| | |
|
| |
| |
| | |
use workspace.symbol instead of workspaceSymbol to mimic the lsp spec.
|
|\ \
| | |
| | | |
lsp: fix lsp.util.symbols_to_items with DocumentSymbol has children
|
| |/
| |
| |
| |
| |
| |
| | |
fix: https://github.com/neovim/neovim/pull/11931#issuecomment-622422581
There was an error in the process of flattening the hierarchical structure.
So when DocumentSymbol has children, our client can't handle it correctly.
|
| |
| |
| |
| |
| |
| |
| |
| | |
* lsp: add workspace/symbol
* refactor symbol callback
* set hierarchical symbol support to true
* add documentation and default mapping
Co-authored-by: Hirokazu Hata <h.hata.ai.t@gmail.com>
|
|/
|
|
| |
* support LocationLink in callbacks
* announce linkSupport in client capabilities
|
| |
|
|\
| |
| | |
lsp/completion: Expose completion_item under completed_items.user_data + vim-patch:8.2.0084
|
| |
| |
| |
| |
| | |
By passing through completion_item it's now possible for snippet plugins
to add LSP snippet support.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit creates 4 new highlight groups:
- LspDiagnosticsErrorSign
- LspDiagnosticsWarningSign
- LspDiagnosticsInformationSign
- LspDiagnosticsHintSign
These highlight groups are linked to their corresponding LspDiagnostics
highlight groups by default.
This lets users choose a different color for their sign columns and
virtualtext diagnostics.
|
| | |
|
|/
|
|
|
| |
ref: #12164
fix #12201
sign_getdefined() returns a list, {} if the sign is not defined.
|
|
|
| |
fix #12162
|
|
|
| |
Messed this up in ef0398fe88e6cc74f33fb20519997774168d7832
|
|
|
|
|
|
|
|
|
| |
According to the spec there is the possibility that when a
VersionedTextDocumentIdentifier is used in a TextEdit the value may be
null. Currently we don't check for this and always assume that it's set.
So currently if a TextEdit comes in for a rename for example with the
version null, it fails as we are comparing the bufnumber with nil.
https://microsoft.github.io/language-server-protocol/specification#versionedTextDocumentIdentifier
|
|
|
|
|
|
| |
The method with the name 'textDocument/peekDefinition' is not part of
the official language server protocol specification. Therefore no
language server can/will support this. Thereby all related code and
documentation as been removed.
|
|
|
|
|
|
|
|
|
| |
Expose `vim.lsp.buf.diagnostics_by_buf`
This makes it easier to customize the diagnostics behavior. For example
to defer the update they can override the
`textDocument/publishDiagnostics` callback to only call
`buf_diagnostics_save_positions` and then defer the other actions to a
autocmd event.
|
|
|
|
| |
When we save the buffer, the buffer is detached and attached again.
So the client also needs to remove the buffer version once.
|
|
|
|
|
|
|
|
| |
In contrast to other callbacks for LSP requests like
`textDocument/documentSymbols`, does the one for references not open the
quickfix window after the quickfix list was filled. This left the user
in a situation he don't know what or if something had happen.
Related to: neovim/neovim#12170
|
|
|
|
|
|
|
|
| |
There is ErrorCodes in the LSP specification, but in ResponseError.code
it is not used and the actual type is number.
Some language servers response original error cods and this is valid spec.
So we shouldn't assert even if the code does not exist in ErrorCodes.
ref: https://microsoft.github.io/language-server-protocol/specifications/specification-current/#responseMessage
|
|
|
|
|
| |
* https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_definition
Co-authored-by: Khangal Jargalsaikhan <khangal.j@irbis.sg>
|
|\
| |
| | |
LSP/completion: add textEdit support
|
| | |
|
| |
| |
| |
| |
| | |
According to lsp specification, value of insertText should be ignored if
textEdit is provided.
|
| |
| |
| | |
This function is also useful for users to create their own `textDocument/signatureHelp` callback function.
|
| | |
|
| |
| |
| |
| |
| |
| | |
InsertCharPre to CursolMovedI (#11954)
In the case of InsertCharPre, it is inconvenient because the signature help is displayed
when backspaced in insert mode, so change it to CursolMovedI.
|
| |
| |
| |
| |
| |
| | |
Before this commit, the LSP client would throw errors when messages
without severity would be sent by the server. We make severity default
to `Error` as a kludge before proper heuristics to discover the severity
of a message are found.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Treesitter changed their decoders and apparently thus causing this
change.
This decoder change happened on
ee9a3c0ebb218990cf391ed987be7f2448c54a73.
|
| |
| |
| |
| |
| |
| |
| | |
Fix #12122
>Error executing vim.schedule lua callback: /usr/local/share/nvim/runtime/lua/vim/lsp/util.lua:560: Expected lua string
Some lsp server(e.g. https://github.com/bash-lsp/bash-language-server) not have kind in reference, reference["kind"] is nil
|
| |
| |
| |
| |
| | |
fix: #12056
If the colon of the drive letter of windows is URI encoded,
it doesn't match the expected pattern, so decode it first.
|
|\ \
| |/
|/| |
LSP: Use buffer version instead of changedtick for edits
|
| | |
|
| |
| |
| |
| | |
According to the LSP specification, showMessage is what is displayed and logMessage is what is stored.
Since these are different things, I devide the callback into those that match.
|
| | |
|
| |
| |
| |
| | |
Spec: https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_documentSymbol
|
| |
| |
| |
| |
| | |
DocumentSymbol type doesn't have location field.
So when we'll add 'textDocument/documentSymbol’ handler, we can't decide which file have we jump to.
|
| |
| |
| |
| |
| | |
`locations_to_items` is for turning `Location[]` into items, not for
`Diagnostic[]`
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This changes the `textDocument/references' callback to annotate the
locations returned by the server with the content present at the
locations range.
The quickfix list then looks as follows:
cr8/insert_fake_data.py|17 col 32| from .misc import parse_table, parse_version
cr8/insert_fake_data.py|43 col 15| version = parse_version(r['rows'][0][0])
cr8/java_magic.py|8 col 22| from cr8.misc import parse_version
cr8/java_magic.py|30 col 19| version = parse_version(fst)
cr8/java_magic.py|33 col 16| return parse_version(version_str)
Instead of:
cr8/insert_fake_data.py|17 col 32|
cr8/insert_fake_data.py|43 col 15|
cr8/java_magic.py|8 col 22|
cr8/java_magic.py|30 col 19|
cr8/java_magic.py|33 col 16|
|
|\ \
| | |
| | | |
add regex support in treesitter queries
|
| | | |
|
| |/ |
|
| |
| |
| |
| |
| |
| | |
* Add signs for Lsp diagnostics
* defer sign definition until init.vim is loaded
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
haskell-ide-engine sends `hover` payloads as follows:
{
contents = {
kind = "markdown",
value = "\n```haskell\nfoo :: Either String (Integer, Text)\n```\n`foo` *local*"
},
range = {
end = {
character = 5,
line = 57
},
start = {
character = 2,
line = 57
}
}
}
`value` starts with `\n`. The logic in `convert_input_to_markdown_lines`
threw away the whole information.
|