Commit graph

569 commits

Author SHA1 Message Date
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 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
Sanchayan Maity 97db1c6c9d nvim: keymappings: Enable unique and refactor/cleanup
Enable unique to detect and avoid conflicting key mappings.
2021-09-26 11:51:04 +05:30
Sanchayan Maity 6223b802ce nvim: after/ftplugin/c: Fix conflicting mapping
,d cscope mapping conflicts with the LSP diagnostic mapping.
2021-09-26 11:51:04 +05:30
Sanchayan Maity f7d12b27d3 nvim: lsp: Alignment cleanup 2021-09-26 11:50:36 +05:30
Sanchayan Maity 55356513a9 nvim: after/plugin/easyalign: Fix conflicting mapping
'ga' mapping conflicts with the LSP code action mapping.
2021-09-25 18:31:10 +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
Sanchayan Maity 469e36756b nvim: lsp: Drop custom preview function
Those functions do not work anymore. May be we will add it later
via https://github.com/rmagatti/goto-preview.
2021-09-25 13:21:01 +05:30
Sanchayan Maity 9ab36d4b1b nvim: lsp: Fix null-ls setup 2021-09-25 13:21:01 +05:30
Sanchayan Maity 350a6edd2c nvim: fugitive/git: Add git helper to push upstream
Now that we set push.default to nothing in our git configuration, add
a git helper to figure out the upstream for the current branch and push
it.
2021-09-25 13:21:01 +05:30
Sanchayan Maity 643e1be349 nvim: keymappings: Add mappings to paste from + & * register 2021-09-22 17:52:15 +05:30
Sanchayan Maity 130bf3e04d nvim: colors: yolokai: Update diagnostic highlight 2021-09-22 17:51:51 +05:30
Sanchayan Maity 71f5c334f1 nvim: plugins: Drop nvim-peekup
Does not work correctly and keeps pasting in the first window instead of
where the cursor is placed.
2021-09-21 11:02:25 +05:30
Sanchayan Maity 52ff789cf3 nvim: Switch to the maintained galaxyline fork
See
https://github.com/NTBBloodbath/galaxyline.nvim
https://www.reddit.com/r/neovim/comments/pq3zvq/galaxylinenvim_is_back/
2021-09-21 11:02:25 +05:30
Sanchayan Maity e1cfc0408d nvim: yolokai: Sync with nvim-highlite upstream 2021-09-13 18:00:40 +05:30
Sanchayan Maity 763f811931 nvim: after/plugin/haskell: Cleanup settings not required anymore
We dropped the Haskell syntax plugin for treesitter and also ghcid.
Remove settings which were for those plugins.
2021-09-11 11:57:10 +05:30
Sanchayan Maity 3edfac79b4 nvim: after/plugin/completion: Disable tags completion
We were using tags completion for C projects primarily but now that we
have enabled clangd LSP, disable tags based completion.
2021-09-10 14:06:59 +05:30
Sanchayan Maity 5b6685b165 nvim: lsp: Enable clangd for C and C++ 2021-09-10 14:06:59 +05:30
Sanchayan Maity ccb4b4343d nvim: after/plugin: fugitive: Update key mappings 2021-09-10 13:41:24 +05:30
Sanchayan Maity 555026ef80 nvim: lsp: Sync nvim-lsp-ts-utils settings with upstream 2021-08-31 11:02:34 +05:30
Sanchayan Maity 88ed57fb8b nvim: keymappings: Enable escape and arrow keys
Now that we use Planck EZ as our main keyboard with Colemak as the
layout, allow use of escape and arrow keys. HJKL are not usable the
same way as before.
2021-08-06 10:51:22 +05:30
Sanchayan Maity 8f5e45cb52 nvim: keymappings: Add mapping to copy to clipboard 2021-08-06 10:51:22 +05:30
Sanchayan Maity bdc14d4ebc nvim: Add lightbulb for discoverable LSP code actions 2021-07-26 18:44:41 +05:30
Sanchayan Maity 3e7fd609ec nvim: lsp: Sync nvim-lsp-ts-utils configuration with upstream 2021-07-21 11:00:40 +05:30
Sanchayan Maity d00bf90b30 nvim: after/plugin: nvimgdb: Update nvim-gdb configuration 2021-07-21 10:29:21 +05:30
Sanchayan Maity cc2bedbe5d nvim: keymappings: Add mappings to move lines 2021-07-20 21:01:13 +05:30
Sanchayan Maity c646381a00 nvim: lsp: Add support for lua 2021-07-17 18:38:32 +05:30
Sanchayan Maity 2a2f85b82e nvim: completion: Update nvim-compe settings
Sync with upstream. While at it, since we do not use autocomplete
anymore, change min_length to 1 to trigger completion easily.
2021-07-16 10:54:46 +05:30
Sanchayan Maity efaba37bcf nvim: fugitive/git: Add helper to rename branch 2021-07-15 21:12:27 +05:30
Sanchayan Maity 4565822924 nvim: lsp: Switch to pylsp
pyls is deprecated and not supported in nvim-lspconfig anymore.

The supported python language server is here.
https://github.com/python-lsp/python-lsp-server
2021-07-15 18:13:52 +05:30
Sanchayan Maity a493297cae nvim: plugins: For handling files with ANSI escape sequences better 2021-07-12 12:23:52 +05:30
Sanchayan Maity d3b8cec40a nvim: git: Add functionality to restore using git reflog 2021-07-09 10:34:12 +05:30
Sanchayan Maity 8fc44227f2 nvim: after/plugin/completion: Disable autocomplete 2021-07-05 17:43:10 +05:30
Sanchayan Maity 119c91a6b7 nvim: plugins: Add nvim-gdb 2021-07-05 17:39:56 +05:30
Sanchayan Maity ffadf1cf4f nvim: keymappings: Map ;; to :
Let's us get over the annoyance of having to press shift for using :.
2021-07-05 10:48:53 +05:30
Sanchayan Maity fff7723126 nvim: treesitter: Enable Haskell 2021-06-28 16:43:06 +05:30
Sanchayan Maity 112239bd31 nvim: plugins: Drop indentLine
indentLine seems to have general performance issues.
2021-06-26 11:19:47 +05:30
Sanchayan Maity a51f16304c nvim: after/ftplugin: git: Do not set bufhidden to wipe
This resulted in not being able to go back to the previous buffer when
using something like git log which is not we want.
2021-06-23 12:30:18 +05:30
Sanchayan Maity 6406ae8a71 nvim: plugins: Drop plugins
Drop plugins we never use anymore or got around to using.
2021-06-23 12:30:11 +05:30
Sanchayan Maity 44a39eee24 nvim: treesitter: Enable playground
Helps to see what treesitter queries are being made. Would be helpful in
tuning the color scheme.
2021-06-23 12:28:44 +05:30
Sanchayan Maity 0649b639da nvim: treesitter: Force nvim-treesitter to use a specific compiler
Required for Haskell. See
https://github.com/tree-sitter/tree-sitter-haskell#building-with-nvim-treesitter
2021-06-19 11:26:13 +05:30
Sanchayan Maity a16c244fce nvim: autoload/ftplugin: git: Add rebase and merge helpers 2021-06-17 16:58:12 +05:30
Sanchayan Maity 108630d19c nvim: Move plugin configuration files to after/plugin
Now that neovim runtime can also source lua files from traditional vim
runtime directories like after/plugin/ftplugin etc, move all plugin
configuration files to after/plugin.
2021-06-17 10:07:51 +05:30
Sanchayan Maity ca9e0d1754 nvim: after/plugin: fzf: Move fzf configuration
Do all fzf configuration in after/plugin instead of lua/modules. While at
it, add functionality to add fzf items to the quickfix list.
2021-06-16 19:11:11 +05:30
Sanchayan Maity aee5337f55 nvim: init: Drop exrc and secure
exrc is deprecated and not recommended. Accordingly also drop secure.

See
https://github.com/neovim/neovim/issues/5784#issuecomment-506993689
2021-06-16 12:55:44 +05:30
Sanchayan Maity 7fb370f824 nvim: lsp: Enable code lens support
Relevant PR
https://github.com/neovim/neovim/pull/13165
2021-06-15 15:41:28 +05:30
Sanchayan Maity 2fcdea1cb2 nvim: keymappings: Add a key mapping to help with opening vim docs 2021-06-15 09:56:23 +05:30
Sanchayan Maity 5d2d279e9e nvim: after/ftplugin: help: Add key mapping for closing help files 2021-06-15 08:34:27 +05:30
Sanchayan Maity 3d8ccb4f23 nvim: yolokai: Sync with nvim-highlite upstream 2021-06-15 08:34:27 +05:30
Sanchayan Maity 0eb9b86927 Revert "nvim: Fix accessing t_Co"
This reverts commit 72e3b80274.
2021-06-15 08:34:27 +05:30
Sanchayan Maity e715f19d1e nvim: modules: Alignment cleanup
Slight OCD :).
2021-06-12 12:24:57 +05:30
Sanchayan Maity 8ad693d5bc nvim: init: Drop duplicate swapfile setting call 2021-06-10 18:30:31 +05:30
Sanchayan Maity 8be870b015 nvim: after/ftplugin: man: Set nobuflisted and bufhidden for man pages 2021-06-10 10:30:27 +05:30
Sanchayan Maity 511d5a17aa nvim: plugins: Add plenary and null-ls
nvim-lsp-ts-utils now has plenary and null-ls as a requirement.
2021-06-10 10:30:27 +05:30
Sanchayan Maity 3942f04633 nvim: after/plugin: fugitve: Use gS mapping to stash file
While at it, use <Leader>G for :Git.
2021-06-07 20:54:41 +05:30
Sanchayan Maity 3a6b12d118 nvim: after/ftplugin: mail: Disable whitespace in mail
We do not care about whitespace when constructing replies from within
mutt.
2021-06-05 17:42:48 +05:30
Sanchayan Maity 3ba1673068 nvim: after/plugin: fugitive: Update gF and gE mapping
Often it is convenient to merge remote branch origin/foo into local
branch foo, without having to checkout foo first. Use gF mapping for
the same.

One may edit alternate versions of the file in different branches using
:Gedit <branch>:/path/to/file. Use gE mapping for the same.
2021-06-04 15:50:35 +05:30
Sanchayan Maity e3df9adf91 nvim: after/ftplugin: C: Fix quickr cscope mappings
These seem to not work with nnoremap for some reason.
2021-06-03 20:55:19 +05:30
Sanchayan Maity 525d73373d nvim: after/ftplugin: Set wipe on bufhidden for dirvish and gitcommit 2021-06-02 13:54:26 +05:30
Sanchayan Maity d7ff7f1ec2 nvim: after/ftplugin: Fix various key mappings
Also see the previous commit for more context.
2021-05-29 13:39:44 +05:30
Sanchayan Maity efe3e7e517 Revert "nvim: after: ftplugin: Fix various key mappings"
This reverts commit e6397864d0.

This was actually wrong. nnoremap should be always what we want. For
example, this broke the <Leader>r mapping for gitrebase and would invoke
:Reword from lambdalisue/reword.vim.
2021-05-29 13:39:44 +05:30
Sanchayan Maity 4e2abc80df nvim: after/ftplugin: gitrebase: Add vim-interactive-rebase-reverse
The plugin is a pretty small ftplugin. Just add it to our ftplugin.
This also fixes the issue where this plugin did not take affect
when using interactive rebase from within fugitive.
2021-05-29 13:39:44 +05:30
Sanchayan Maity 72e3b80274 nvim: Fix accessing t_Co
With neovim/neovim#13479 merged, window option needs to be used for
accessing t_Co correctly.
2021-05-29 13:33:32 +05:30
Sanchayan Maity fbce78c346 nvim: init: Use vim.o for setting all options
Works exactly the same as `set` after neovim/neovim#13479.
2021-05-29 13:32:43 +05:30
Sanchayan Maity 748fd222da nvim: after/ftplugin: Use 'wipe' for bufhidden 2021-05-25 11:39:40 +05:30
Sanchayan Maity f088e258da nvim: after/plugin/fugitive: Add some more key mappings 2021-05-25 10:48:33 +05:30
Sanchayan Maity a567150a64 Revert "nvim: after/ftplugin: javascript: Add keymapping to invoke prettier"
This reverts commit 1ba2fee97d.

Now that we enable nvim-lsp-ts-utils, this is not required anymore.
2021-05-24 17:20:23 +05:30
Sanchayan Maity 7383245dd3 nvim: plugins/lsp: Add nvim-lsp-ts-utils 2021-05-24 17:20:23 +05:30
Sanchayan Maity 25afe0527c nvim: keymappings: Add a key mapping to select last pasted/yanked text 2021-05-24 15:59:29 +05:30
Sanchayan Maity 66f07fba89 nvim: plugins/treesitter: Enable treesitter text objects 2021-05-22 15:30:52 +05:30
Sanchayan Maity f846dace39 nvim: keymappings: Drop mapping for copying whole buffer
Now that we have a text object for the whole buffer, this is not
required anymore.
2021-05-21 15:40:11 +05:30
Sanchayan Maity 66b022dcb0 nvim: plugins: Add various text object plugins 2021-05-21 11:16:43 +05:30
Sanchayan Maity 9b639279d9 nvim: after/plugin: Add j and k motion to the jump list 2021-05-18 19:40:03 +05:30
Sanchayan Maity f05e5bcd5d nvim: after/plugin: fugitive: Add a key mapping for Gedit
Gedit is helpful to open up previous versions of the file. For example,
:Gedit HEAD~3:% loads the current file as it existed 3 commits ago.
2021-05-18 13:11:23 +05:30
Sanchayan Maity 9848348881 nvim: plugins: Drop all LISP support
Flights of fancy. Thought I will learn LISP but dynamically typed
languages are just annoying to work with.
2021-05-17 20:39:46 +05:30
Sanchayan Maity 5462060452 nvim: plugins: Drop rainbow
Does not really work with treesitter.

There is nvim-ts-rainbow but it seems to have performance problems.
https://github.com/p00f/nvim-ts-rainbow/issues/5
2021-05-17 20:38:09 +05:30