Commit graph

87 commits

Author SHA1 Message Date
Sanchayan Maity 9a26ef9c10 nvim: Drop nvim-lspconfig
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.
2022-08-31 12:21:28 +05:30
Sanchayan Maity 8e8f6110e5 nvim: lsp: Fix argument ordering to on_attach for inlay hint 2022-08-29 17:35:47 +05:30
Sanchayan Maity 490fe4e853 nvim: plugins: Drop rust-tools & use lsp-inlayhints
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.nvim
https://github.com/simrat39/inlay-hints.nvim

The second one is from the rust-tools author himself but we could
not get that to work.
2022-08-19 16:59:19 +05:30
Sanchayan Maity 1cf5377ae5 nvim: lsp: Remove obsolete flag for clangd 2022-08-06 11:41:09 +05:30
Sanchayan Maity 01dfb0429c nvim: lsp: range_code_action is deprecated
See PR
https://github.com/neovim/neovim/pull/19551
2022-08-03 14:24:58 +05:30
Sanchayan Maity 918df63073 nvim: Fix group argument to nvim_create_autocmd 2022-05-06 12:04:35 +05:30
Sanchayan Maity 363ba685aa nvim: lsp/ftplugin/rust: Remove crate graph 2022-05-06 11:25:09 +05:30
Sanchayan Maity ef00957fae nvim: lsp: Refactor configuration setting for clients 2022-05-05 21:00:25 +05:30
Sanchayan Maity 223ffe7505 nvim: lsp: Enable additionalTextEdits for completion item 2022-05-05 20:59:32 +05:30
Sanchayan Maity 211cd39138 nvim: plugins/lsp: Drop nvim-lsp-ts-utils
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.
2022-05-02 10:34:44 +05:30
Sanchayan Maity 59b1696ffa nvim: lsp: Refactor setting up of autocmd for code lens & document highlight 2022-05-02 09:33:38 +05:30
Sanchayan Maity fdc17306b7 nvim: lsp: Refactor setting up of key mappings 2022-05-02 09:33:38 +05:30
Sanchayan Maity 59c9556325 nvim: lsp: Sync with upstream
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.
2022-05-01 19:50:07 +05:30
Sanchayan Maity 28049ed540 nvim: lsp: Use the new auto command API 2022-03-06 14:46:27 +05:30
Sanchayan Maity 22ef882154 nvim: lsp: Enable ESLint 2022-01-21 11:28:45 +05:30
Sanchayan Maity 6744dc6004 nvim: lsp: Do not enable document highlight on CursorHoldI 2022-01-04 15:15:47 +05:30
Sanchayan Maity 96977caa81 nvim: lsp: Fix typos & symbols in LSP protocol completion item kind 2021-12-29 18:54:57 +05:30
Sanchayan Maity 6a62f22855 nvim: lsp: Lower the debounce interval 2021-12-21 09:26:36 +05:30
Sanchayan Maity 7e943ae1c5 nvim: lsp: Update Python Jedi language server configuration 2021-12-21 09:26:36 +05:30
Sanchayan Maity b7762f552d nvim: lsp: Enable text for LSP protocol completion item kind 2021-12-16 18:52:53 +05:30
Sanchayan Maity 8e0fdbdaae nvim: Drop nvim-cmp
Auto-completion has mostly been annoying than of any actual use. Just
fancy annoying crap. Just use in built omni completion.
2021-12-14 15:44:33 +05:30
Sanchayan Maity 0fbd8d256e nvim: lsp: Enable code action only when supported 2021-12-10 19:50:19 +05:30
Sanchayan Maity 1891eef80a nvim: lsp: Enable nvim-lightbulb only if code lens is available 2021-12-10 19:50:19 +05:30
Sanchayan Maity 591077efb4 nvim: Update Python related configuration 2021-12-10 14:09:12 +05:30
Sanchayan Maity b41584d996 nvim: lsp: Enable document highlight only when supported 2021-12-10 14:09:12 +05:30
Sanchayan Maity 818a34a7ff nvim: lsp: Enable flake8 & pylint for pylsp
See documentation
https://github.com/python-lsp/python-lsp-server/blob/develop/CONFIGURATION.md
2021-12-06 10:28:30 +05:30
Sanchayan Maity 3be8a76fe7 nvim: lsp: Drop support for lua
We had added lua-language-server thinking it would be helpful for
Wireplumber development, but, due to the nature of lua and server
itself, the experience is utter crap in comparison to using LSP in
other languages.
2021-11-28 17:53:49 +05:30
Sanchayan Maity 49cf726ce0 nvim: plugins/lsp: Drop null-ls
See the below issue
https://github.com/jose-elias-alvarez/nvim-lsp-ts-utils/issues/87

We went with null-ls because we wanted formatting with prettier. Also
null-ls was recommended by nvim-lsp-ts-utils.

The advantage of null-ls is it provides formatting and diagnostics
together in one package.

However, we will get prettier by another means and for linting switch to
nvim-lint.
2021-11-28 17:53:42 +05:30
Sanchayan Maity 6ead0d94a7 nvim: lsp: Fix missing capabilities for tsserver
We missed setting this when enabling inlay hints.
2021-11-20 17:00:14 +05:30
Sanchayan Maity 8733194431 nvim: lsp: Update the key mapping for code lens
We missed the fact that this conflicts with our gl mapping of HopLine
which we added recently.
2021-11-18 17:15:30 +05:30
Sanchayan Maity cc75f12e3f nvim: lsp: Enable inlay hints for TypeScript/JavaScript 2021-11-17 11:13:14 +05:30
Sanchayan Maity e07afd2c65 nvim: lsp: Never insert #include directives as part of code completion for clangd 2021-11-08 12:31:17 +05:30
Sanchayan Maity af7461452c nvim: lsp: Enable LSP document highlight 2021-10-20 13:01:21 +05:30
Sanchayan Maity a83b07959d nvim: lsp: Drop lsp_signature
The signature help sometimes stays open even after moving away from
the function. Sometimes it conflicts with the auto completion pop-up
making it difficult to see one of the two windows.
2021-10-11 13:28:07 +05:30
Sanchayan Maity 25059ef623 nvim: lsp: Enable some additional key mappings for code actions 2021-10-10 11:57:15 +05:30
Sanchayan Maity b04ecb9541 nvim: lsp: Remove redundant capabilities settings
The required capabilities to be set are already correctly set by
nvim-cmp, no need to set them again. We had added that to enable rust
snippet expansion earlier.

Also see older revisions of this document.
https://github.com/neovim/nvim-lspconfig/wiki/Snippets
2021-10-03 12:46:40 +05:30
Sanchayan Maity cf78dcae4d nvim: lsp: Fix diagnostic errors 2021-10-02 18:49:02 +05:30
Sanchayan Maity 8aa4fc2f76 nvim: lsp: Enable shellcheck as diagnostics source for null-ls 2021-10-02 18:29:57 +05:30
Sanchayan Maity 068dfcd4b9 nvim: lsp/keymappings: Move the diagnostic key mappings outside of LSP
vim.diagnostic framework is now available and can be used outside of
LSP. This means the same functions can now work for plugins providing
diagnostics via this framework like nvim-lint and null-ls.
2021-10-02 18:29:57 +05:30
Sanchayan Maity 0a21f7d979 nvim: lsp: Explicitly set the log level 2021-09-30 13:55:49 +05:30
Sanchayan Maity 8aaccc4f16 nvim: lsp: Refactor and alignment clean ups 2021-09-27 18:46:55 +05:30
Sanchayan Maity be02b5ead7 nvim: Switch to nvim-cmp
nvim-compe has been deprecated. While we tried to make it a few days
without any completion support, in javascript/typescript could not get
the default omnicompletion to work at all. It is possible that this
could be due to nvim-lsp-ts-utils/null-ls but who is gonna debug.

Also tried MUcomplete but it just would not work. There are open issues
on this. See https://github.com/neovim/neovim/issues/12390 and also
https://github.com/lifepillar/vim-mucomplete/issues/179.

So here we are with nvim-cmp. Some observations in comparison to compe
before. Using buffer completion seems not possible as most of the times
LSP completion items then do not turn up. Do not know if this is server
specific but at least it is the case with Rust. compe seemed better
performance wise especially in tsserver and considering the buffer
problem mentioned above. Also, even with vsnip added as the completion
source can't seem to get any snippet specific completions working.

Could have ditched all completion support if I did not have to use
tsserver but need it for work currently. So we will stick to enabling
this and hopefully it improves in future.

Fuck nodejs, javascript and typescript.

For references see,
https://github.com/kristijanhusak/neovim-config
https://github.com/sQVe/dotfiles/tree/master/config/nvim
2021-09-27 16:29:18 +05:30
Sanchayan Maity b95a14b8d1 nvim: lsp: Fix enabling of range format support again!
47b1578 did not actually fix it. We need to keep using 'gq' but actually
correctly specify whether we want normal or visual mode. Also disable
range formatting explicitly for tsserver.
2021-09-27 15:23:12 +05:30
Sanchayan Maity 00670a867f nvim: lsp: Enable rust-tools for inlay hints 2021-09-27 12:31:27 +05:30
Sanchayan Maity f7d12b27d3 nvim: lsp: Alignment cleanup 2021-09-26 11:50:36 +05:30
Sanchayan Maity 47b157805d nvim: lsp: Fix enabling of range format support
If range formatting is supported we should check that first to enable
it else since most LSP servers support formatting, without range
formatting check being first, it would never be enabled.
2021-09-25 18:21:51 +05:30
Sanchayan Maity 8801b26fa9 nvim: lsp: Add range formatting with motion 2021-09-25 15:26:52 +05:30
Sanchayan Maity eebffce98e nvim: lsp: Add back custom preview function
Follow up to 469e367.
2021-09-25 15:26:52 +05:30
Sanchayan Maity f01b1d6a52 nvim: lsp: Use Leader k mapping for LSP hover
While at it, align code to look nice.
2021-09-25 15:13:49 +05:30
Sanchayan Maity 616c4f003c nvim: lsp: Increase value of debounce didChange notifications 2021-09-25 13:21:01 +05:30