* Remove typed_pattern
* Rename asyncomplete_refresh_pattern to vim_lsp_refresh_pattern
* Fix textEdit to clear inserted text
* Fix when startcol can not be found
* Find first item for refresh_pattenr
* Fix
* Update doc
* Trim empty spaces right
* Use space
* 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>
* 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
* Handle error if the user hits escape before complete() is done
* replaced tabs with spaces
* implemented should skip to avoid completing when not in insert mode
* fixed tabbing
* simplifed checking for insert on completion
* removed unnecessary else block
* replaced tabs with spaces
* Filter completed items based on typed word
* Remove logs
* Only calculate typed_word once
* Revert "Only calculate typed_word once"
This reverts commit 161c7f460e.
* Revert "Remove logs"
This reverts commit 861c70fc7c.
* Revert "Filter completed items based on typed word"
This reverts commit c450e839b4.
* Reimplement filtering completion items
* Remove s:remove_typed_part
* Fix for NeoVim
* Use 'ignorecase' to filter items
* Allow configuration of filter
* Add documentation
* Add example for typed_pattern
* Change surrounding of `/$` to indicate it is a tag
* Add g:lsp_ignorecase
* Use filterText for filtering
* Add 'contains' filter
* Fix tests
* Avoid using regex
* Fix bug in 'contains' filter
* Use completion trigger chars for typed text
* Move copy
* Update documentation
* Use textEdit starting position
* Change default typed_pattern
* Update documentation
* Fix documentation
* Add note about narrowing down completions
* Fix tests
* Make filtering note clearer
* Remove duplicate text
* allow for MarkdownContent in completion info
* add check for correct type in MarkupContent
* also pass Markdown, and hope for the best
* d'oh!
* advertise plaintext preference in documentation
* fix documentationFormat
Co-Authored-By: Thomas Faingnaert <thomas.faingnaert@hotmail.com>
* Multibyte character support for lsp#get_position()
* Multibyte character support for "textDocument/documentHighlight"
* Fix `lsp#utils#byteindex()` would fails if a file is not yet loaded
* Add tests
* Rename lsp#utils#byteindex() and lsp#utils#charindex()
lsp#utils#byteindex() -> lsp#utils#to_col()
lsp#utils#charindex() -> lsp#utils#to_char()
* Multibyte character support for textEdit
* Remove unused line
* Multibyte character support for "textDocument/rangeFormatting"
* Multibyte character support for "textDocument/publishDiagnostics"
* Adds `g:lsp_omni_completion_ignorecase` option to indicates whether or not ignorecase to matchs completion word
In most cases, ignorecase is not necessary, so we may add an option to control whether to turn it on.
Defaults, `g:lsp_omni_completion_ignorecase` is `0`, meaning case sensitive, if `g:lsp_omni_completion_ignorecase`
is set to `1`, or set `ignorecase` options(eg. `:set ignorecase`), it will turn case insensitive on.
* Fix CI failed
* Remove `g:lsp_omni_completion_ignorecase` options, only use `g:ignorecase` to indicates whether or not ignorecase to matchs completion word
* Refactor: cache prefix word
* Implement basic UltiSnips integration
* Fix already inserted text not being removed
* Fix incorrect whitespace when nesting snippets
* Fix tabstops not working in nested snippets
* Make functions abort on error
* Check if Vim has the user_data patch
* Add basic documentation
* Add explanation UltiSnips integration to README
* Use single quoted string in plugin/lsp.vim
* Allow plugins to override get_completion_item
* Remove UltiSnips specific code to set user_data
* Remove CompleteDone autocmd from omni.vim
* Revert "Add explanation UltiSnips integration to README"
This reverts commit ee12343cbf.
* Revert "Add basic documentation"
This reverts commit 979275bb4f.
* Allow changing supported capabilities
* Remove g:lsp_ultisnips_integration
* Mention snippets in READE and documentation
* Add documentation for new configuration options
* Pass server_info to get_capabilities
* Change configuration variables to be a List
This way, we don't need to start them with a capital letter.
* Add lsp_complete_done autocmd
* Add documentation of lsp_complete_done