Some language servers like HLS take longer to attach and if we exit
soon before LSP attach had a chance to finish (may be?), server
capabilities field does not seem to be valid in client object and
we get the below error. Check if it valid first.
Error detected while processing LspDetach Autocommands for "*":
Error executing lua callback: /home/core/.config/nvim/lua/lsp.lua:215: attempt to index field 'server_capabilities' (a nil value)
stack traceback:
/home/core/.config/nvim/lua/lsp.lua:215: in function </home/core/.config/nvim/lua/lsp.lua:209>
[C]: in function 'nvim_exec_autocmds'
/usr/local/share/nvim/runtime/lua/vim/lsp.lua:1140: in function </usr/local/share/nvim/runtime/lua/vim/lsp.lua:1139>
Error executing lua callback: /home/core/.config/nvim/lua/lsp.lua:215: attempt to index field 'server_capabilities' (a nil value)
stack traceback:
/home/core/.config/nvim/lua/lsp.lua:215: in function </home/core/.config/nvim/lua/lsp.lua:209>
[C]: in function 'nvim_exec_autocmds'
/usr/local/share/nvim/runtime/lua/vim/lsp.lua:1140: in function </usr/local/share/nvim/runtime/lua/vim/lsp.lua:1139>
Since we now have more mapping available after dropping treesitter
text objects, we can fix this.
Fixes the below warning from targets check health.
targets: health#targets#check
========================================================================
- WARNING: Conflicting mapping found:
aq → <Plug>(textobj-wordcolumn-word-a)
q → {'quote': [{'d': ''''}, {'d': '"'}, {'d': '`'}]}
- WARNING: Conflicting mapping found:
iq → <Plug>(textobj-wordcolumn-word-i)
q → {'quote': [{'d': ''''}, {'d': '"'}, {'d': '`'}]}
The whole bunch of treesitter text objects were difficult to remember
and we ended up rarely ever using any of the defined mappings.
treehopper simplifies things with a single mapping and hints.
We seem to be making a lot of mistakes when it comes to handling
docs/comments in merge requests. Use a more prominent white colour
for the comment highlight group.
Disable logging completely. The set_log_level call needs to be at the
top level else some log message related to startup still gets logged
if the call is done in on_attach.
Upstream repos overwrite tags like release and then PackerSync complains
about failing to update since existing tags would be clobbered after an
update.
Use the new vim.lsp.start API and LspAttach/Detach auto commands.
Drop nvim-lspconfig in the process.
LSP server specific configuration has been taken from nvim-lspconfig.
We do not use any of the other features provided by rust-tools and
only ever needed the inlay hints. Now that there is a plugin for
that which also allows us to use inlay hints for other languages
use that.
There are two options
https://github.com/lvimuser/lsp-inlayhints.nvimhttps://github.com/simrat39/inlay-hints.nvim
The second one is from the rust-tools author himself but we could
not get that to work.
The rebase abort mapping is not really required as fugitive already
provides the `ra` mapping when in git status window to abort rebase.
Use the `gr` mapping for git grep and `gR` for rebasing to origin.
The plugin is in maintenance mode and typescript.nvim does not support
inlay hints. We already use eslint language server and extra commands
provided by lsp-ts-utils/typescript.nvim is something we have never
used. Just drop it.
vim.lsp.buf.formatting function is deprecated and now replaces all the
below three functions with vim.lsp.buf.format.
- vim.lsp.buf.formatting
- vim.lsp.buf.formatting_sync
- vim.lsp.buf.formatting_seq_sync
client.resolved_capabilities is no longer used. One must now access
client.server_capabilities which matches the same structure as the
protocol.
https://microsoft.github.io/language-server-protocol/specification
See neovim commit c618b31.
With commit 7e41cd7 entering in dirvish does not work if bufhidden is
not hide or empty. Set it to hide and using BS which is mapped to C-^
in our key mappings, we can go back to the previous buffer.
We specify an underline cursor shape in terminal settings. This actually
fixes 5c6eebf where we just copied the settings from the referenced
issue but did not actually fix it.
The epoch time under cursor may be in milliseconds or seconds. Use
visual selection to select epoch since we won't know which. Else when
the epoch was in milliseconds we would just get wrong results.