Add :LspDocumentLink to list all document links in the quickfix list
and :LspDocumentLinkOpen to open the link on the current cursor line
in the browser or editor.
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.
* add g:lsp_experimental_native_lsp flag to enable native vim lsp client
* send request and correctly call on_notification
* add support for native client in lsp#client#send_notification
* Add native lsp client support for lsp#client#send_response
* add native notification support
* add support for native stop job
* handle error response for document_formatting.vim and code_action.vim
* add missing return for code action
* fix indent
* undo code action error
* check for a:response to be of type dict as stderr will send string
* use out_cb and err_cb instead of channel callback
* bump has_native_client version check to 8.2.4780 which fixes LSP parsing messages when partial data is received
* rename g:lsp_experimental_native_lsp to g:lsp_use_native_client
* fix s:native_err_cb
* pass env
* disable lsp_use_native_client
* add lsp#utils#has_native_lsp_client()
* clean up log
* handle requests from server
* fix lint issues
* update docs
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.
* initial naive implementation of semanticTokens
* fix race condition when starting new lsp server
* fix error when closing and re-opening a buffer
* support nvim highlighting
* provide tokenTypes and tokenModifiers client capabilities
* move semantic.vim to autoload/lsp/internal
* refactor semantic tokens to use a callbag
* remove scope tree functions
* refactor decoding of semanticTokens responses
* improve semantic tokens nvim support
* add support for multi-byte characters
* update semantic tokens on TextChangedP
* don't apply semantic highlighting to large files
* replace semantic_highlight server key with custom highlight groups
* rename g:lsp_large_buffer_threshold to g:lsp_max_buffer_size
* fix typo: correct LpEvents to LspEvents
* update semantic highlighting documentation
* change has('popupwin') to exists('autoload/lsp/internal/semantic.vimTextChangedP')
* correct lsp_max_buffer_size usage
* add LspSemanticHighlightGroups helper command
* use explicit scope and reorganise decode_tokens
* use robust comparison + single quoted strings in s:init_highlight
* update semantic highlighting on VimEnter
* support semanticTokens/full/delta requests
* request semanticTokens/full on BufNewFile or BufReadPost
* perform full semantic updates on lsp_buffer_enabled
* support SemanticTokensDelta response to textDocument/semanticTokens/full/delta request
* decide between full or delta semanticTokens request based on state
* use prop_add_list to add semantic tokens
* sort semanticTokens edits before applying
* update semantic.vim to conform to google style guide
* update default semantic highlight groups to better match usage
* fix parsing of SemanticTokensOptions
* mention g:lsp_semantic_enabled in vim-lsp-semantic docs
* document g:lsp_semantic_delay
* add support for semantic token modifiers
* sort semantic tokens modifiers alphabetically
* correctly report semantic tokens capabilities
* add g:lsp_experimental_workspace_folders
* send client capabilities for workspaceFolders if g:lsp_experimental_workspace_folders is enabled
* fix g:lsp_experimental_workspace_folders missing s
* send workspaceFolders if workspaceFolder capability is defined via client
* add local copy add opened workspace folders
* Add support for workspace folders
* document Workspace folders
* add indent
* fix doc indent
* use new floating window api for hover
* rename type to ui
* fix lint issues
* add support for --ui=float|preview for LspHover
* add g:lsp_hover_ui
* always show below the cursor
* close on move
* fix when using empty g:lsp_hover_ui
* add hover preview support
* apply markdown for preview
* show top if available
* fix col position when far right
* silent deletebufline
* fix indent
* remove language
* set language
* fix normalize
* don't close if curpos hasn't changed
* if hover window is foused close
* add border
* add double tap support for floating LspHover window and lsp-hover-close plug
* fix indent
* fix lint issue
* fix grammar
* *ed
* remove echom register
* fix indent
* add lsp-hover-float and lsp-hover-preview plug
* 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>
Using `--nowrap` doesn't work, but the related commands document that
you should use `-wrap=0`, which does work in the mappings too.
Co-authored-by: mattn <mattn.jp@gmail.com>
* 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
* 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