When using typescript-language-server, in content `Math.ab|`, if you type
`<C-X><C-o>` for omni completion, it will be completed with `s`. Then, the
content will become `Math.abs|`. If you continue typing `(`, the `(` will
be removed. Also, if type `<CR>`, a new line will be added, resulting in
`Math.abs|s\nMath.ab`. This patch attempts to fix this issue.
It is sometimes useful to generate `workspace_config` using a callback.
For example, if the produced config needs to include some information
from the actual workspace.
* Implemented word correction in cases where startcol was corrected by TextEdit.range.start.character
* Don't touch abbr
* Don't use `..`
* relax get_server_info
* Improve for deno lsp item
* Fix start character
* minimal `insertReplaceTextEdit` suppoort.
* Change to filter logic similar to asyncomplete-lsp.vim
* Improve word creation
* relax lsp#utils#text_edit#get_range
* Add start_character for test case
* set type of location list items for diagnostics
* use s:get_diagnostic_severity_text() once while making location list from diagnostics results
Co-authored-by: mattn <mattn.jp@gmail.com>
* fix index out of range error when no item in quickpick list
* update embedded quickpick to cf41eecb983c41e5fc45e83291b551a85fe554d3
* generate subtitle of codelens item from command arguments' labels
* add tests for lsp#ui#vim#code_lens#_get_subtitle()
* support window/showMessage
* describe g:lsp_show_message_log_level in documentation
* add tests for window/showMessage support
Co-authored-by: mattn <mattn.jp@gmail.com>
* use label when filterText is falsy value
* use label when insertText is falsy value on completion done
* Revert "fix inserting "v:null" when newText in textEdit is null (#1093)"
This reverts commit 907f1c9667.
* Revert "add test case where newText is null for #1093 (#1094)"
This reverts commit e214f1cfee.
* Sort results
* Sort by text
* Workaround for older version of Vim that does not include module in the list given from getloclist
* Sort items by text
* Fix test
* render diagnostics in loclist and fix args paser
* document --buffers flag for LspDocumentDiagnostics
* do not show diagnostics if it is disabled for buffer
* remove old code and fix plug mapping for lsp-document-diagnostics
* add unit tests for document diagnostics command
* add internal/diagnostics/state.vim
* add unit tests
* add s:enabled
* clean up diagnostics state during server exit
* remove echom
* add tests for lsp_server_exit
* reset when enable
* add notify function
* add link to diagnostics spec
* Convert lowercase drive letters to uppercase
I faced a problem that error diagnostics message does not shown in golang source code. In a result of my investigation, this problem occurs when I change the current directory with lowercase driveletter like `cd c:\dev\go\test001`. When `cd C:\dev\go\test001` is no problem. To avoid this problem, we need to convert driver letter to uppercase in lsp#utils#path_to_uri function.
* Update utils.vimspec
* Revise a code in diagnostics.vim instead of utils.vim to reduce impact of modification
* Create a function to normalize uri
* Add a comment about normalize discussion
* Delete s:is_win check
* Revise comment for normalization of urls
* download rust-analyzer
* added empty testproject-rust
* add integration tests for LspDocumentFormatSync
* wipeout all buffer
* set shiftwidth and tabstop
* set gobal shiftwidth and tabstop
* remove tabstop
* sleep 100m
* remove l:got
* get latest line
* sleep 4000m
* use setl shiftwidth=4
* use %bwipeout!
* wait for rust-analyzer to start
* fix lint issues
* indent left
* remove log
* disable log
* set timeout to 10sec
* add 100m sleep
* download rust-analyzer for linux neovim
* add message to diagnostics test
* severity is optional in diagnostics
* download rust-analyzer for mac_neovim
* update README.md with test section
* Change text edit implementation to support \r
* Fix edit on unloaded buffer
* Add \r\n tests
* Fix for perf
Co-authored-by: mattn <mattn.jp@gmail.com>
* Fix insert text
When insertTextFormat==2, it should prefer insertText. But it may include placeholder.
When insertTextFormat!=2, use insertText since it is plain-text.
When it have textEdit, the inserted text will be modified in later, so insert only word.
Otherwize, insert label since it should be what the server want to insert.
* Check with valid word pattern
* ":" should be invalid character
* Add lsp#utils#make_valid_word
* Add l: prefix
* Add test
* Add test
* \t should be ignored
Co-authored-by: hrsh7th <hrsh7th@gmail.com>
* Improve signature help with lexima.vim
* Fix buffer change problem
* Display signature help after cursor jumped
* Fix event
* Add _ prefix for inner functions
* Move some codes to completion.vim that related to handling CompleteDone.
* Add abort
* Fix test
* Add l: prefix to self vars
* Disable unused vars
* Restore position
* Support snippet simple case and vim-lsp-snippets
* Support g:lsp_text_edit_enabled
* Fix for v:null results
* Fix multi-byte chars
* Add document
* Fix for vim-lsp-snippets for now
* Prepare to future improvements
* More clalify line comment
* User get_user_data instead of extract_user_data
* Always use [''] pattern for accessing dictionary property
* Fix misspelling
* More strict check for completionProvider.resolveProvider
* Fix obj.key to obj['key']
* Store completed_item id to the user_data
* Fix omni tests
* Apply for the review
- Rename expand_text_simply -> simple_expand_text
- to_col -> _lsp_to_vim
- Rename user_data key
* Add example tests
* Add timeout to completionItem/resolve in completion.vim
* Fix timeout feature
* Add timeout log
* Fix documents