Commit graph

906 commits

Author SHA1 Message Date
Sanchayan Maity b41584d996 nvim: lsp: Enable document highlight only when supported 2021-12-10 14:09:12 +05:30
Sanchayan Maity 5716ca88af nvim: plugins: Switch to lualine 2021-12-10 10:58:19 +05:30
Sanchayan Maity e488171b08 nvim: plugins: Add vim-matchup
We also enable the treesitter integration.
2021-12-06 10:28:30 +05:30
Sanchayan Maity cdb4ba7740 nvim: yolokai: Change MatchParen highlight
Purple is also used for some other groups, use of orange makes the
matching identifiers stand out.
2021-12-06 10:28:30 +05:30
Sanchayan Maity 3c69913845 nvim: autocmd: Fix TextYankPost autocmd 2021-12-06 10:28:30 +05:30
Sanchayan Maity 674b1539ed nvim: colors/yolokai: Update highlight for nvim-cmp
This adds support for using different highlights for each
of the LSP kind items like variable, functions, methods etc.
2021-12-06 10:28:30 +05:30
Sanchayan Maity 1643837553 nvim: after/plugin/cmp: Show LSP kind type name during completion 2021-12-06 10:28:30 +05:30
Sanchayan Maity d0b93a537a nvim: Update packer 2021-12-06 10:28:30 +05:30
Sanchayan Maity 7001fc4603 nvim: plugins: Add cmdline completion 2021-12-06 10:28:30 +05:30
Sanchayan Maity 677ec666e6 nvim: autocmd: Fix luacheck warning 2021-12-06 10:28:30 +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 00f67243f7 nvim: keymappings: Add mappings to hide, reset & show diagnostic 2021-11-28 17:53:49 +05:30
Sanchayan Maity 46534e547c nvim: plugins: Add nvim-lint 2021-11-28 17:53:49 +05:30
Sanchayan Maity f0ab1b98bb nvim: after/ftplugin: type/javascript: Add keymapping to invoke prettier
Brings back 1ba2fee9 and reverts a567150a.
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 6033367d0b nvim: init: Update vim diagnostic config
The show_header option of vim.diagnostic.open_float has been renamed
to simply header and has different semantics (you can now specify a
custom header string and highlights). A value of false has the same
meaning as before.
https://github.com/neovim/neovim/pull/16328
2021-11-19 15:12:29 +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 71fae03c07 nvim: keymappings: Fix mapping for replace word
With silent set, we could not provide the input at the command line.
Also, the c. mapping wasn't suppose to have <CR>.
2021-11-18 13:25:40 +05:30
Sanchayan Maity c806eafe5c nvim: plugin: Move gdb_helper to it's appropriate directory
Should have been in plugin and not after/plugin.
2021-11-18 13:25:14 +05:30
Sanchayan Maity ee584495dc nvim: plugins: Drop AnsiEsc and add a simpler replacement
Sanitises buffer by removing ANSI codes.

Idea taken from
https://www.reddit.com/r/neovim/comments/qqf4nn/comment/hk1nwnk
https://superuser.com/questions/1445805/removing-ansi-color-codes-from-a-text-file-in-vi
2021-11-18 10:38:38 +05:30
Sanchayan Maity c84e620795 nvim: after/plugin/fugitive: Improve normal mode mapping for GBrowse 2021-11-17 18:00:54 +05:30
Sanchayan Maity 3f61c98414 nvim: keymappings: Add mappings for DiffConflicts 2021-11-17 17:29:54 +05:30
Sanchayan Maity d989d6adbc nvim: after/plugin/fugitive: Enable q mapping for fugitiveblame 2021-11-17 16:47:19 +05:30
Sanchayan Maity fe34c26993 nvim: fugitive/gitsigns: Enable git blame line
Now that we dropped git-messenger, enable git blame line with fugitive
and gitsigns.
2021-11-17 11:13:14 +05:30
Sanchayan Maity ab56185c9e nvim: plugins: Drop git-messenger
We have git blame via gitsigns or fugitive. Either should suffice.
2021-11-17 11:13:14 +05:30
Sanchayan Maity cc75f12e3f nvim: lsp: Enable inlay hints for TypeScript/JavaScript 2021-11-17 11:13:14 +05:30
Sanchayan Maity b9e6330245 nvim: init: Drop relativenumber
Now that we switched to hop, we do not need relativenumber.
2021-11-17 11:13:14 +05:30
Sanchayan Maity 56842dd2a9 nvim: Switch to hop and drop sneak 2021-11-17 11:13:14 +05:30
Sanchayan Maity 6278cd24dd nvim: after/plugin/ferret: Drop the g/ and g\ mapping 2021-11-14 19:18:57 +05:30
Sanchayan Maity 46b42807a2 nvim: Update packer 2021-11-08 12:31:17 +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 a7b12dc642 nvim: plugins: Enable GBrowse support
GBrowse also seems to at least need the autoloaded functions from netrw,
so we only disable netrw commands and mappings.

See https://github.com/tpope/vim-fugitive/issues/1010.
2021-11-08 12:31:17 +05:30
Sanchayan Maity 7a25c8b062 nvim: after/ftplugin/rust: Add a mapping to open cargo docs 2021-10-22 18:08:30 +05:30
Sanchayan Maity 3657612dbb nvim: keymappings: Drop all key mappings for tags
We do not use tags anymore so drop those. Especially never used the
preview tag mappings.
2021-10-20 22:34:14 +05:30
Sanchayan Maity cece84f76e nvim: colors/yolokai: Fix git diff highlight group
The previous setting resulted in atrocious highlighting in diffs.
2021-10-20 22:34:14 +05:30
Sanchayan Maity 1f165bbed4 nvim: autoload/git: Fix the arguments to difftool 2021-10-20 22:14:05 +05:30
Sanchayan Maity 2548f63793 nvim: plugins: Drop diffview
Something as basic as :DiffviewOpen <commit> does not work.
2021-10-20 22:11:38 +05:30
Sanchayan Maity 3a56d37531 nvim: after/ftplugin/dirvish: Add key mapping to yank file path 2021-10-20 21:12:22 +05:30
Sanchayan Maity 9b692e9a8e nvim: init: Disable virtual text for all diagnostics
They frequently get clipped beyond the window border due to being too
long and are not that helpful.

While at it, use our own preferable default sane options for the rest.
2021-10-20 13:01:21 +05:30
Sanchayan Maity 0ee98bc81c nvim: keymappings: Update to use the new diagnostic API
While at it, switch the key mapping to use the more convenient one for
line diagnostic.
2021-10-20 13:01:21 +05:30
Sanchayan Maity f6d56d6786 nvim: Update packer 2021-10-20 13:01:21 +05:30
Sanchayan Maity af7461452c nvim: lsp: Enable LSP document highlight 2021-10-20 13:01:21 +05:30
Sanchayan Maity e2a4d77590 nvim: yolokai: Add LSP highlight 2021-10-20 13:01:21 +05:30
Sanchayan Maity bfb4d258b3 nvim: plugins: Switch to luasnip 2021-10-20 13:01:21 +05:30
Sanchayan Maity 8e1f6a8834 nvim: after/plugin/fzf: Add command for wiping out all selected buffers 2021-10-17 18:30:31 +05:30
Sanchayan Maity 4cc5fb67c9 nvim: after/ftplugin/rust: Add Dispatch commands for cargo build
Add cargo build commands using dispatch similar to the ones we have
defined in fish.
2021-10-17 18:30:31 +05:30
Sanchayan Maity 3ce0fbf73d nvim: after/ftplugin/rust: Set compiler and makeprg
We pick up the compiler cargo file from rust.vim as the errorformat
seems better perhaps to consider a few more things compared to the one
included in neovim.
2021-10-17 18:30:31 +05:30
Sanchayan Maity 27dec93c97 nvim: plugins: Switch to vim-dispatch from asyncdo
It has a few more things than asyncdo and automatically handles makeprg
not that setting a custom command to handle makeprg with asyncdo was
a problem but still. Should also be useful for fugitive git push,
believe it will use dispatch when available.
2021-10-17 18:30:31 +05:30
Sanchayan Maity 936e6149de nvim: plugins: Switch to Comment.nvim from commentary.vim 2021-10-17 18:30:31 +05:30
Sanchayan Maity fa81a1c107 nvim: plugins: Drop the rtp fix for friendly-snippets
See the actual fix upstream
32ddc125ec

This could be probably unrelated and just was fixed in neovim core
perhaps. Either ways we do not need to do this anymore.
2021-10-16 17:31:29 +05:30
Sanchayan Maity 954c2ec1b3 nvim: init: Use a size of 2 for sign column
This helps to display both diagnostic signs and git gutter at the same
time. Use automatic resize keeping minimum at 1 and maximum at 2.
2021-10-16 17:31:29 +05:30
Sanchayan Maity f4fd6ab1e8 nvim: after/plugin/marks: Do not show builtin marks 2021-10-16 17:31:29 +05:30
Sanchayan Maity eb406bd1da nvim: treesitter: Drop clojure and fennel
We added them briefly but never used these.
2021-10-14 14:41:39 +05:30
Sanchayan Maity e4ac609db3 nvim: Update packer 2021-10-14 00:43:31 +05:30
Sanchayan Maity 4c6a34d07f nvim: plugins: Switch from vim-signature to marks.nvim 2021-10-14 00:43:31 +05:30
Sanchayan Maity 48d64d6de1 nvim: after/plugin/cmp: Update settings
Seems we missed a few things last time. The formatting.fields thing is
a new feature.
2021-10-12 20:15:57 +05:30
Sanchayan Maity a9efbede25 nvim: after/plugin/gdb_helper: Add helper to get breakpoint
This allows us to generate a breakpoint location we can use in the gdb
command file or on command line and also copies it to the clipboard thus
allowing us to easily paste it.
2021-10-12 14:16:37 +05:30
Sanchayan Maity e5f2fb0318 nvim: Use relative paths in dirvish
When yanking a path in dirvish buffer this setting allows us to get
relative paths instead of absolute which is default.
2021-10-12 14:16:37 +05:30
Sanchayan Maity 1f281f6bd7 nvim: after/plugin/cmp: Update nvim-cmp settings
Support for use of floating windows for completion menus landed
upstream. It introduced a new feature but also broke things. Having
native_menu set completely breaks auto completion.

While at it, add mapping for scrolling docs. Also add support for it
in color scheme.
2021-10-11 13:28:07 +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 cf15054719 nvim: plugins: Add pretty Quickfix windows 2021-10-11 13:28:07 +05:30
Sanchayan Maity ac8273d9fd nvim: init: Enable cursorline
A new cursorline option 'number' seems to be available now. This would
be useful compared to the whole line.
2021-10-10 11:57:15 +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 a8d0a43556 nvim: plugins: Add toggleterm
Serves as a good replacement to floaterm.
2021-10-05 15:44:29 +05:30
Sanchayan Maity c237a19e0b nvim: plugins: Drop floaterm
See the previous commit for the reason of dropping this.
2021-10-05 12:59:43 +05:30
Sanchayan Maity 79e4022b0e nvim: plugins: Drop nvim-gdb
termdebug seems good enough so just drop this. Or we will use nvim-dap
if needed. However, termdebug should be enough really. We also just
found gdb-dashboard which seems great adding just the necessary UI bits.
2021-10-04 09:56:37 +05:30
Sanchayan Maity b7036e5bfe nvim: plugins: Drop vim-togglelist
Was never really needed. Can just use open and close for quickfix and
location list.
2021-10-03 13:10:43 +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 ff93725694 nvim: treesitter: Update treesitter configuration 2021-10-02 17:19:34 +05:30
Sanchayan Maity 2ff1ba46e1 nvim: plugins: Add TSUpdate as post install hook for treesitter 2021-10-02 17:19:34 +05:30
Sanchayan Maity ef61388c72 nvim: plugins: Drop neoformat
With LSP providing formatting have not used this in more than a year.
Just drop it. Also it is pretty stupid to look for everything global &
not use language build tool to pick the correct formatter and its
configuration.
2021-10-02 17:19:34 +05:30
Sanchayan Maity 891fae907b nvim: plugin: Add a simple whitespace plugin
Now that we dropped vim-better-whitespace just add something simple to
strip whitespace if we do ever need it.
2021-10-02 16:14:31 +05:30
Sanchayan Maity 8a43a1c14f nvim: keymappings: Drop mapping to save
We have a keyboard macro to do this.
2021-10-02 13:03:12 +05:30
Sanchayan Maity 331885ea25 nvim: plugins: Drop vim-better-whitespace
Using formatter already does this, so drop it.
2021-10-02 12:45:08 +05:30
Sanchayan Maity 05194ded3a nvim: plugins: Load AnsiEsc plugin only on AnsiEsc command 2021-10-02 11:06:23 +05:30
Sanchayan Maity 95d5a10abc nvim: plugins: Drop SyntaxAttr 2021-10-02 11:06:23 +05:30
Sanchayan Maity ae4edc5bed nvim: plugins: Drop unneeded text object plugins 2021-10-02 10:05:12 +05:30
Sanchayan Maity 6613689352 nvim: after/plugin/which-key: Add triggers blacklist
We have some mappings starting with p and need to blacklist in which key
without which using paste 'p' becomes impossible.
2021-10-01 14:55:30 +05:30
Sanchayan Maity 31780f0c25 nvim: keymappings: Drop highlight search mapping
<C-l> now clears search highlight and update diffs and is mapped by
default.

See
https://github.com/neovim/neovim/issues/14090#issuecomment-901882455.
2021-10-01 14:55:30 +05:30
Sanchayan Maity a668139491 nvim: after/ftplugin/C: Add a key mapping for ClangSwitchSourceHeader
This allows us to switch seamlessly between source and header file.

Its provided by nvim-lspconfig. See
https://github.com/neovim/nvim-lspconfig/blob/master/lua/lspconfig/clangd.lua
2021-10-01 10:00:13 +05:30
Sanchayan Maity 62e99dd1f0 nvim: after/ftplugin/C: Drop unneeded settings
Do not know what advantage if any these settings will bring anymore.
2021-09-30 14:20:42 +05:30
Sanchayan Maity 4b8caad3b6 nvim: plugins: Drop cscope
Now that we have migrated to clang LSP for C, the only reason for
keeping it around was using it to find files in gst-build repository
which was structured in such a way that fzf and rg could not be used.
Now that GStreamer has moved to monorepo setup, we can use fzf and
rg just like in any project. No need for cscope anymore.
2021-09-30 14:20:42 +05:30
Sanchayan Maity 0a21f7d979 nvim: lsp: Explicitly set the log level 2021-09-30 13:55:49 +05:30
Sanchayan Maity 4b6bd7e7ed nvim: after/plugin/fugitive: Add key mappings for git log grep
Usage:
$ git log --grep=word
$ git log -Gword
2021-09-29 11:42:52 +05:30
Sanchayan Maity 8aaccc4f16 nvim: lsp: Refactor and alignment clean ups 2021-09-27 18:46:55 +05:30
Sanchayan Maity 9de5a7de76 nvim: after/plugin/vsnip: Keymap settings are not required anymore
With the move to nvim-cmp these vsnip key mappings are not required
anymore. The completion and expansion gets taken care of by nvim-cmp.
Just move the vsnip_filetypes settings to init.
2021-09-27 18:46:55 +05:30
Sanchayan Maity b6063211f7 nvim: plugins: Fix snippets not showing up in completion
For some reason without adding the snippets to the runtime path,
snippets do now show up in completion.

Found the solution here though the issue is on Ultisnips
https://github.com/hrsh7th/nvim-cmp/issues/241
2021-09-27 16:40: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 d7fbe762c5 nvim: Update packer 2021-09-27 13:50:59 +05:30
Sanchayan Maity c781b15582 nvim: Drop signify and switch to gitsigns
signify seems to be giving an error after somewhat long usage of
"E489: too many highlight and syntax groups".
2021-09-27 13:14:27 +05:30
Sanchayan Maity 91eecec611 nvim: keymappings: Drop the mapping for help 2021-09-27 13:14:27 +05:30
Sanchayan Maity 975e6a646e nvim: plugins: Switch from vim-which-key to which-key 2021-09-27 13:14:20 +05:30
Sanchayan Maity 00670a867f nvim: lsp: Enable rust-tools for inlay hints 2021-09-27 12:31:27 +05:30
Sanchayan Maity 0aa93c6e9b nvim: init: Always enable the signcolumn
Have a fixed column for the diagnostics to appear in as this removes
the jitter when warnings/errors flow in.

Recommended here
https://sharksforarms.dev/posts/neovim-rust/
2021-09-26 12:06:16 +05:30