aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp/util.lua
Commit message (Collapse)AuthorAge
...
* Merge pull request #12343 from ndreas/fix/lsp-multibyte-indexingHirokazu Hata2020-06-04
|\ | | | | Fix LSP multibyte indexing
| * Use get_line_byte_from_position in jump_to_locationAndreas Johansson2020-05-19
| |
| * Refactor fetching the line byteAndreas Johansson2020-05-19
| | | | | | | | Takes the entire LSP position instead of line/col
* | lua: add vim.highlight.range (#12401)Christian Clason2020-05-31
| |
* | lua: simple snippet support in the completion items (#12118)Viktor Kojouharov2020-05-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Old behavior is: foo(${placeholder: bar, ...) with lots of random garbage you'd never want inserted. New behavior is: foo(bar, baz) (which maybe is good, maybe is bad [depends on user], but definitely better than it was). ----- * Implement rudimentary snippet parsing Add support for parsing and discarding snippet tokens from the completion items. Fixes #11982 * Enable snippet support * Functional tests for snippet parsing Add simplified real-world snippet text examples to the completion items test * Add a test for nested snippet tokens * Remove TODO comment * Return the unmodified item if the format is plain text * Add a plain text completion item
* | lsp: add preview_location util function (#12368)Christian Clason2020-05-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * add preview_location * add doc stub * doc style; return bufnr&winnr of preview * doc: function may return nil Co-authored-by: Hirokazu Hata <h.hata.ai.t@gmail.com> * doc: fixup Co-authored-by: Hirokazu Hata <h.hata.ai.t@gmail.com>
* | lsp: fix get diagnositcsMike Hartington2020-05-19
|/
* lsp: Handle end lines in apply_text_edits (#12314)Andreas Johansson2020-05-17
| | | | | | If the LSP sends an end line that is larger than what nvim considers to be the last line, you get an Index out of bounds error when fetching the line from nvim, a change that was introduced in #12223. This change removes the strict indexing and checks the return value from nvim_buf_get_lines.
* LSP: Add textDocument/codeAction support (#11607)Jesse2020-05-16
| | | | | | | | | | | | * Add textDocument/codeAction * Add callback for workspace/executeCommand * Escape newlines in codeAction titles * Return empty list in get_line_diagnostics if no buffer diagnostics * Add stub documentation * Validate context parameter in code_action * Add support for edit in CodeAction responses * Group diagnostics by line in vim.lsp.util.get_line_diagnostics() * Advertise code action literal support
* lsp: fix bug when documentEdit version=null for unattached buffer (#12272)landerlo2020-05-13
|
* lsp: Make apply_text_edits non-ASCII safe (#12223)Christian Clason2020-05-08
| | | | | | | | | | | | | | | * 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 unknown CompletionItemKind and SymbolKind (#12257)Hirokazu Hata2020-05-07
| | | | | | | | | | | * 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
* lsp: set buflisted when jumping to location (#12253)Gabriel Sanches2020-05-07
|
* lsp: fix tagstack for location jump #12248Gabriel Sanches2020-05-04
|
* Merge pull request #12237 from h-michael/vim-nilMatthieu Coudron2020-05-04
|\ | | | | lsp: text_document.version may be vim.NIL not nil
| * [LSP] check for vim.NIL and add apply_text_document_edit testsckipp012020-05-01
| |
* | Merge pull request #12228 from h-michael/fix-docsyms-to-itemsMatthieu Coudron2020-05-02
|\ \ | | | | | | lsp: fix lsp.util.symbols_to_items with DocumentSymbol has children
| * | lsp: fix lsp.util.symbols_to_itemsHirokazu Hata2020-05-02
| |/ | | | | | | | | | | | | 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: Support LocationLink (#12231)Christian Clason2020-05-02
|/ | | | * support LocationLink in callbacks * announce linkSupport in client capabilities
* Merge pull request #12204 from archseer/lsp-user-dataMatthieu Coudron2020-04-30
|\ | | | | lsp/completion: Expose completion_item under completed_items.user_data + vim-patch:8.2.0084
| * lsp/completion: Expose completion_item under completed_items.user_data.Blaž Hrastnik2020-04-29
| | | | | | | | | | By passing through completion_item it's now possible for snippet plugins to add LSP snippet support.
* | LSP: enable using different highlighting rules for LSP signs (#12176)Ghjuvan Lacambre2020-04-29
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | LSP: support tagstack #12096Yen32020-04-28
|/
* LSP: don't redefine LspDiagnostics signs #12164jakbyte2020-04-26
| | | fix #12162
* LSP: Fix show_line_diagnostics #12186Mathias Fußenegger2020-04-26
| | | Messed this up in ef0398fe88e6cc74f33fb20519997774168d7832
* LSP: Add a check for null version in VersionedTextDocumentIdentifier (#12185)Chris Kipp2020-04-26
| | | | | | | | | 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
* LSP: remove obsolete "peek definition" code #12178Thore Weilbier2020-04-25
| | | | | | 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.
* LSP: Expose diagnostics grouped by bufnr (#11932)Mathias Fußenegger2020-04-25
| | | | | | | | | 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.
* lsp: remove buffer version on buffer_detach (#12029)Hirokazu Hata2020-04-25
| | | | When we save the buffer, the buffer is detached and attached again. So the client also needs to remove the buffer version once.
* Merge pull request #11989 from Weypare/textEditMatthieu Coudron2020-04-20
|\ | | | | LSP/completion: add textEdit support
| * LSP/completion: Add completion text helper functionAndrey Avramenko2020-04-20
| |
| * LSP/completion: add textEdit supportAndrey Avramenko2020-03-06
| | | | | | | | | | According to lsp specification, value of insertText should be ignored if textEdit is provided.
* | lsp: export convert_signature_help_to_markdown_lines (#11950)Hirokazu Hata2020-04-19
| | | | | | This function is also useful for users to create their own `textDocument/signatureHelp` callback function.
* | lsp: replace the event that closes the signature help preview window from ↵Hirokazu Hata2020-04-18
| | | | | | | | | | | | 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.
* | lsp: provide a default for missing reference kind (#12127)George Zhao2020-04-16
| | | | | | | | | | | | | | 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
* | Merge pull request #11927 from Jesse-Bakker/lsp-buf-versionBjörn Linse2020-03-16
|\ \ | |/ |/| LSP: Use buffer version instead of changedtick for edits
| * Use buffer version instead of changedtick for editsJesse Bakker2020-02-27
| |
* | lsp: add 'textDocument/documentSymbol’ callbackHirokazu Hata2020-03-01
| | | | | | | | Spec: https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_documentSymbol
* | LSP: Remove diagnostic message handling in locations_to_itemsMathias Fussenegger2020-02-27
| | | | | | | | | | `locations_to_items` is for turning `Location[]` into items, not for `Diagnostic[]`
* | LSP/references: Add context to locations returned by serverMathias Fussenegger2020-02-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 signs for Lsp diagnostics (#11668)Alvaro Muñoz2020-02-27
| | | | | | | | | | | | * Add signs for Lsp diagnostics * defer sign definition until init.vim is loaded
* | LSP/hover: Do not throw away contents if first line is empty (#11939)Mathias Fußenegger2020-02-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | add support to show diagnostics count in statusline (#11641)Alvaro Muñoz2020-02-26
| | | | | | | | | | * add support to show diagnostics count in statusline * documentation
* | LSP: implement documentHighlight (#11638)Alvaro Muñoz2020-02-26
|/ | | | | | | | * implement documentHighlight * fix bug * document highlight groups * use uppercase for help section title * documentation
* lsp/completion: show duplicates in completion popup #11920Mathias Fußenegger2020-02-21
| | | | | | | | | | | | | Allow duplicates so that in languages with overloaded functions it will show all signatures. E.g. instead of having a single (last one wins) add(int index, String element) It shows all signatures: add(String e) : boolean add(int index, String element) : void
* lsp: make functions private and use filter functionHirokazu Hata2020-02-19
|
* lsp: respect the sort order if there is sortTextHirokazu Hata2020-02-19
|
* lsp: fix textDocument/completion handlingHirokazu Hata2020-02-19
| | | | | | | fix: #11826 Some lanuguage servers return complementary candidates whose prefixes do not match are also returned. So we exclude completion candidates whose prefix does not match. ex) Microsoft python-language-server, rust-analyzer
* lsp: Support text edit on inactive buffer (#11843)Mathias Fußenegger2020-02-10
| | | | | | | | | Using `vim.lsp.buf.rename()` can result in receiving a TextEdit that affects a file for which there is no active or loaded buffer. In that case `api.nvim_buf_get_lines(...)` returned an empty result, leading to an error. Closes https://github.com/neovim/neovim/issues/11790
* LSP: show diagnostic in qf/loclist #11777Matthieu Coudron2020-01-28
| | | | | instead of the content of the file at this line. ref https://github.com/neovim/nvim-lsp/issues/69