It is convenient to be able to stop all LSP servers, regardless of the
currently active buffer.
Also, it seems confusing that when a server name is specified, it is
only stopped if it is also one handling the current buffer type. I
would imagine it is quite rare to have more than one server handing a
specific buffer type. And if one explicitly specified a name, it seems
reasonable to stop this particular server, regardless of the currently
active buffer.
For code actions, some people might find it more convenient to use a
popup menu that shows up at the cursor position, instead of using the
quickpick window at the bottom of the screen.
* use callbag to implement document format with timeout
* document lsp#stream() with example
* send message to stream when using lsp#_new_command
* use -- for args parsing and add g:lsp_document_format_sync_timeout
* throw string exception
* use new func for <plug>(lsp-document-format)
* document g:lsp_format_sync_timeout
* rename to document_formatting
* add document_range_formatting.vim
* remove formatting from ui/vim.vim
* document :LspDocumentRangeFormatSync
* add LspDocumentFormatSync example in README.md
Allow users to specify their query on the cmdline so they have easier
access to registers and vim-editing methods (especially with ctrl-f to
enter cmdline-window).
* Changed Quickfix list behaviour
At this before, lsp commands will clean current Quickfix list and create
a new one. This will cause some trouble, e.g.: when we have search result
in Quickfix list, but if we do :LspDefinition jump to symbol definition, the Quickfix list will
be empty.
Now, let :Lsp* commands just replace Quickfix list when the results need
to display on Quickfix list
* using empty then create instead replace
* Commonalize some similar functions
* Add <mods> support for some commands
Supported commands:
- :LspDeclaration
- :LspDefinition
- :LspTypeDefinition
- :LspImplementation
* added lsp#utils#location#_lsp_to_vim_list
* check of response.result
* remove lsp#ui#vim#utils#locations_to_loc_list
* refactor to use s:open_location
* use lsp#utils#is_file_uri
* add lsp#utils#buffer#_open_lsp_location(location)
add lsp#utils#position#lsp_to_vim(expr, position)
add visual selection when using _open_lsp_location
update tagstack when opening hierarchy item
* move to location.vim
* use normal!
* rename to lsp#utils#position#_lsp_to_vim
* update bufnr to the latest buffer
* Add <plug>(lsp-document-range-format)
This binding defines an operator and can be used with a motion. Because
s:document_format_range() did only format based on the visual selection
markers, a new type parameter was added to pass the selection type
according to 'opfunc'.
* Denote mapmode for plug mappings and add missing
* use locationLink for definition preview
* remove cursor setting for location link
* make vint happy
* also advertise support for declaration, typeDefinition, implementation
* small refactor
* refactor to avoid code duplication
* restore lost check for file
* 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 LspPeekDefinition
* Add documentation
* Add lsp-peek-definition mapping to documentation
* Add link to Vim preview-window help
* Rewrite LspPeekDefinition using preview window
* Implement peek for Vim popup window
* Make LspPeekDefinition work in Neovim
* Support align in Neovim
* Fix linter errors
* Extract duplicate code to s:align_preview function
* Merge setlocal settings in one line
* Remove suppress_close
* Clean up cursor movement for preview window
* Move Neovim cursor code to separate function
* Allow customising peek alignment
* Move Vim alignment code to separate function
* Implement Vim alignment of popup window
* Cleanup
* Remove extraneous lines
* Move set_cursor logic
* Move scrolloff setting
* Make function calls a bit more consistent
* Vim popup window fixes
* Remove extraneous call
* Fix Vim alignment
* Remove hardcoded width
* Add abort to closure function
* Fix artifacts
* Fix wrong height if popup above cursor
* Add remaining Peek commands
Add LspPeekImplementation, LspPeekTypeDefinition and LspPeekDeclaration.
* Fix wrong positioning of Vim popup
* Support refactorings through code actions.
- make LspCodeAction work on a selected range, to support extract method
or extract variable refactorings
- properly execute commands returned by code actions
- support workspace/applyEdit requests from server
* Fixes to match the Google VimScript Style Guide
* Refactor handling of requests from server.
Introduce an on_request option in lsp#client#start, that will be called
every time a request is received from a server.
* Use robust operator ==#
* Move apply_workspace_edit to separate file.