* Make verbose LspStatus show workspace config
Need the trailing echo to ensure the next lsp server is on a new line.
* Use pretty printing if available
* checkhealth: Print server status and config
Add initial checkhealth support.
See https://github.com/rhysd/vim-healthcheck
Lists server status, advice for failure, and lists workspace config to
help debug issues or understand server state. Doesn't do much error
detecting.
* checkhealth: Print each server config as a section
checkhealth doesn't allow a lot of formatting (no indentation), so it's
hard to make the config output readable. Output each server as a
separate section instead of one giant config block to make the start of
each server easier to see.
The palantir pyls repository is no longer maintained, the documentation
should not lead user down the path of configuring this dead end project.
pylps is the actively maintained sucessor project forked from pyls.
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.
Some language servers report unexpected EOF errors on the line that's
actually one past the last line of the file. Be a bit more accomodating
and just show them on the last line of the buffer instead.
* Implemented word correction in cases where startcol was corrected by TextEdit.range.start.character
* Don't touch abbr
* Don't use `..`
* relax get_server_info
* Improve for deno lsp item
* Fix start character
* minimal `insertReplaceTextEdit` suppoort.
* Change to filter logic similar to asyncomplete-lsp.vim
* Improve word creation
* relax lsp#utils#text_edit#get_range
* Add start_character for test case
* 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
* passing env to lsp#utils#job#start
* passing env to lsp#client#start
* env for only cmd
* do not need to add
* possible to specify env for the server
* update job.vim
Removed only <Esc> key mappings because it seems to cause problems
in vim8.
Removed only for normal mode, for insert mode <Esc> works perfectly.
Fix#1263 and #1267
* 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
* Format Hover Pop-up Window
1) Applies Vim's gq command to each individual line of content returned by
language server.
2) Fixes scrolling to last line of popup window
* minor
* Add help entry for popup formatting
https://github.com/prabirshrestha/async.vim/pull/47
One of the big mistakes I did in designing async.vim was to default to neovim output. Most of the time you need to get string and this can be costly for vim, since vim by default returns a string, which means we call split in async.vim then the consumer calls join which should had ideally been a noop. This allocates unnecessary memory due to string and array creation. Luckily we can have 100% backwards compatibility as I still default to 'array' if not passed and one can easily override it to 'string'. For callbag.vim's spawn function I had defaulted to 'raw' and make the user decide if they want compatibility.
There should be no impact for neovim from this PR but should have better memory allocation and perf in vim.
To get perf improvements we still need to fix this #1199