* Save/restore cursor position
* Cosmetic change
* selection should be inclusive
Because exclusive doesn't select fisrt character with 1GvG0
* Remove last extra \n
* Be graceful
* Use winsaveview/winrestoreview
The correct way to deal with edge cases (column = 0 or column = line
length) is to use selection=excluise (does not delete the last
character) and virutaledit=onemore (enable select last line
character) instead of transforming the text edits
* 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
Currently calling hover on a filetype without support throws an error, stating
that 'Unknown function: <SNR>274_not_supported'. This adds the `not_supported`
function into the scripts' scope.
The eol option will be set if the vim found an eol at the eof. This,
combined with the binary and fixeol options can be used to determine if
the file will have eol characters at the end-of-file after vim saves the
file.
* Fix lsp#utils#path_to_uri for windows
When encoding the buffer path on Windows the path_to_uri transformed the
C: to C%3A causing problems to LSP functions.
To solve this it as necessary to change the function encode_uri to
receive the start position to encode, so the functions that call it can
specify were to start the encoding.
* Fixed range intervals
When you specify the max on the function range that it will become
inclusive so you need to decrease one of the length since the arrays
starts at 0