* 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"
* Add g:lsp_signs_priority option
When used with other plugins (e.g. gitgutter), the signs will often get
replaced. This patch makes priority configurable for the user and
defaults to a value of 15, which should be a reasonable value for most
use cases.
* Adapt vim's default value of 10 as sign priority
Moving the error navigation code out of signs.vim to diagnostics.vim
means that errors can be navigated when signs are disabled.
This commit re-introduces error-column navigation, after the signs
refactoring.
This commit adds the error column to the array of errors (previously an
array of line numbers, now an array of [line,column] pairs). This allows
navigation directly to the error position, but also nvaigating to
multiple errors in a single line.
* WIP code actions
It was addded the code actions funcionality
https://microsoft.github.io/language-server-protocol/specification#textDocument_codeAction
Processing the result is not quite right, because it is always applying
the c (change) command, and it does not insert the new line (\n)
character
* WIP code actions
It was addded the code actions funcionality
https://microsoft.github.io/language-server-protocol/specification#textDocument_codeAction
Processing the result is not quite right, because it is always applying
the c (change) command, and it does not insert the new line (\n)
character
* Improved apply_text_edit
Now the function apply_text_edit insert texts as well, instead of only
replacing it.
Fixed some typos and broken links
* Added documentation and fixed code_action
Now lsp#ui#vim#code_action uses the diagnostic range instead of the
get_position
* Fixed code action
The code action had a problem when it needed to delete/replace some
text, and when the code was folded it did not work since to execute do
not seem to unfold the code
* Changed copy to deepcopy
Since we modifying nested objects we need to use deepcopy
* Fixed preprocessing and added sort to textedits
To perform an unfold it is necessary to check first if the line has
fold level, if the line has foldlevel = 0 and you try to unfold it will
cause and error.
Since LSP specification does not guarantee that text edits are ordered,
we needed to sort it so it will work on any valid LSP
* Fixed text edits sort
Removed stable_sort since it is not necessary
Now it sorts the text edits in a reverse order and merge text edits
that are inserts on the same place
* Fixed codeAction deleting lines
* Passing capability on initialization
* Added buffer validation before setting the sign
This validation is necessary since the documentation states that the
file {fname} must be already be loaded in a buffer.
* Changed msgpack_type to v:true
Msgpack_type does not work on vim
* add variables to define custom signs
* set signs via exec
* use dict for custom signs
* support all sign params
* update readme with a note about custom signs
* add lsp highlighting groups, remove options to set texthl and linehl via dict.