Commit graph

309 commits

Author SHA1 Message Date
a649021325 nvim: Move key mappings for fzf & gitgutter to after/plugin
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-26 19:30:15 +05:30
0c8f59bcec nvim: colors: wombat: Fix colors name
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-25 13:57:28 +05:30
a2d603d61a nvim: Re-introduce git-messenger
Now that we have dropped golden-ration add git-messenger back.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-24 20:23:30 +05:30
5e4bf90f21 nvim: Drop golden-ratio
Love this plugin but it completely messes up the quickfix window. If it
did not touch the quickfix window every thing would be fine.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-24 20:15:25 +05:30
93f0fc9d3e nvim: init.vim: Add word based column text object
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-22 10:37:51 +05:30
fd606aa465 nvim: keymappings: Add enhanced helper for ijump
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-21 16:43:48 +05:30
76017dc434 nvim: keymappings: Update key mappings for tags and tabs
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-21 10:26:44 +05:30
13cea58905 nvim: Add back quickui again for floating preview windows
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-21 09:51:12 +05:30
9e8562186a nvim: plugin_settings: Fix golden ratio for floating windows
Without this setting golden ratio tries to resize floating windows which
does not work well.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-21 09:48:57 +05:30
09359cb0a0 nvim: init.vim: Drop vim-markify
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-20 17:33:03 +05:30
c6bb3ecdfc nvim: after: ftplugin: Add n & S fields when generating tags
n will tell ctags add a line number filed in each tag record
and S means including function signatures.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-20 14:46:12 +05:30
254e6754b9 nvim: after: ftplugin: qf: Always open QF window at bottom
This got mistakenly dropped by commit 8ea80b9af7.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-19 10:53:44 +05:30
ba8739f4d0 nvim: Drop git messenger
git messenger does not size it's floating window correctly and cursor
gets all messed up while trying to jump in the floating window with
golden-ratio mode being active. May be related to the issue
https://github.com/rhysd/git-messenger.vim/issues/38

Based on the below issue
https://github.com/tpope/vim-fugitive/issues/1387

We can already use fugitive's git blame interface for seeing the last
commit on the line.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-18 10:40:41 +05:30
434f24fb98 nvim: init.vim: Add fzf-checkout for fuzzy checking out branches
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-17 10:25:31 +05:30
8365e134d8 nvim: Drop incremental search as in-built suffices
Also use vim-searchlight for search highlighting the word under cursor.
Add custom highlight color to make the word being searched under cursor
stand out for our color schemes and better key mappings to shift through
searches in command line.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-17 10:25:18 +05:30
7b35dd4e78 nvim: keymappings: Fix the sudo write command
We actually haven't tested this.
https://dev.to/jovica/the-vim-trick-which-will-save-your-time-and-nerves-45pg

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-16 10:47:00 +05:30
286558f5af nvim: init.vim: Add ALE for linting
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-15 11:07:27 +05:30
c70ec871ec nvim: Use golden ratio mode
Floating window for fzf does not size up nicely when using golden-ratio
so disable that.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-14 12:20:06 +05:30
8ea80b9af7 nvim: Switch to ferret & drop our bare bones grepper
See ferret's README for the advantages.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-14 11:22:03 +05:30
d662824b9f nvim: keymappings: Add key mappings for fugitive git grep
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-12 21:49:37 +05:30
a2b8d386a0 nvim: lua: lsp: Add support for peek definition
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-11 15:29:48 +05:30
ebd1bd566b nvim: lua: nvim_lsp: hls: Do not start unless hie.yaml is found
Do not start haskell-language-server unless a hie.yaml file is present
for proper multi-component support.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-09 17:26:23 +05:30
690a1bdae8 nvim: lua: Switch to haskell-language-server for Haskell
This is not available in upstream nvim_lsp repository but works with a
simple lua config addition for the same.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-05 19:42:33 +05:30
00cefaa665 nvim: config: Disable relative number & rely on sneak
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-04 18:18:22 +05:30
eb2415300e nvim: Drop jump and change list handling
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-04 18:02:41 +05:30
f21ea0787b nvim: Drop nvim-gdb
nvim-gdb relies on Python and we disabled Python completely sometime
back so this has not really been functional. If we feel we require it
really for some C work we will enable Python and this package again.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-04 16:57:20 +05:30
1ae0477bfb nvim: lua: lsp: Add key bindings for navigating LSP diagnostics
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-03 16:53:40 +05:30
fa04744c9a nvim: Enable purescript language server
This does not perform any better than purs ide and psc-ide-vim could not
jump to definitions in other components which is the same case here.
But, at least we now need one less package and additional bindings for
psc-ide-vim.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-03 14:26:19 +05:30
f40584b6a9 nvim: Enable LSP support for Haskell
With ghcide release v0.2.0 adding multi-component support this should
work more widely now. We still can have tags, so change the key binding
for jump to definition and drop key binding K for Hoogle.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-03 12:35:15 +05:30
01de471188 nvim: plugin_settings: Disable omni completion for Haskell
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-01 11:22:10 +05:30
490210fb98 nvim: keymappings: Change binding for creating workspace
Having it as <Leader>ws made the save binding <Leader>w slow.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-06-01 09:51:21 +05:30
f0dc894593 nvim: Drop supertab
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-30 12:32:51 +05:30
af01dd3351 nvim: config: Disable internal matchit
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-29 17:23:35 +05:30
4aa66a5e59 nvim: Add fzf
The only reason fzf.vim functioned till now seems to be due to the fact
that we were loading fzf.vim found in /usr/share/vim/vimfiles. Do not
rely on this and specify it in plugins.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-29 16:20:16 +05:30
dc895fe1ee nvim: Refactor the nvim-lsp settings
This also helps in the key bindings now being in effect only for which
language servers has been enabled.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-29 11:14:00 +05:30
19d00c7ac5 nvim: Add vim-fugitive for git back
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-27 20:50:06 +05:30
c42e841e3e nvim: Switch to vim-sneak
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-27 15:15:32 +05:30
4051932e7e nvim: config: Fix pumblend for wild menu
We broke this in our last clean up which meant this was not working
anymore with the given option.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-27 15:15:18 +05:30
a20fa4494c nvim: Update to some keymappings for git and drop gina
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-27 10:31:06 +05:30
2ad7100749 nvim: Configure nvim-completion & remove conflicting LSP bindings
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-25 19:00:55 +05:30
901c4cd1fd nvim: after: ftplugin: C: Set colorscheme to wombat
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-24 19:09:48 +05:30
69654597d2 nvim: Use in built LSP for rust
While at it, use wombat colorscheme for Rust.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-24 16:57:26 +05:30
96127801a7 nvim: after: ftplugin: purescript: Update some keymappings
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-24 16:15:57 +05:30
77db00dcba nvim: init.vim: Drop text object plugins we do not use
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-24 13:43:01 +05:30
7a9e5f3b7d nvim: Move the QF autocmd to it's ftplugin
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-23 18:19:01 +05:30
5e5b331986 nvim: after: ftplugin: c: Forgot to clean up neomake here
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-23 17:08:44 +05:30
26ce7085a5 nvim: init.vim: Add OmniCppComplete
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-23 16:56:03 +05:30
8c1b5dd9b3 nvim: Add simple terminal toggle plugin
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-23 15:48:27 +05:30
800d725c28 nvim: init.vim: Add syntax highlighting for Jenkins & Lua
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-23 14:55:04 +05:30
f977b8a246 nvim: Nuke everything Python related
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-23 14:47:16 +05:30
cdc8feecc8 nvim: Switch to completion-nvim and drop deoplete
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-23 12:36:08 +05:30
c5bf8764f6 nvim: colors: Add modified wombat color scheme
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-23 11:36:59 +05:30
a11a6d3ba2 nvim: after: ftplugin: haskell: Add a asyncdo mapping for hlint
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-22 17:55:00 +05:30
333576e90d nvim: Add vim-markify
Now that we have dropped Neomake add a simple plugin to add the
functionality of quickfix signs.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-22 17:16:52 +05:30
bc6a097739 nvim: Miscellaneous clean up
1. Clean up the remnants of Neomake and grepper config left behind
2. Drop quickui and use a custom preview function for items in QF
window stolen from floaterm plugin's author
3. Cleanups for vim default configuration settings like wildignore

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-22 15:33:11 +05:30
db58f26760 nvim: init.vim: Drop vim-haskellFold
We do not use folds.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-22 10:32:44 +05:30
e366962b4e nvim: plugin: statusline: Oops, make read only descriptive
Just R does not make any sense.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-22 10:31:54 +05:30
467a660409 nvim: Drop neomake, QFGrep and vim-grepper
Profiling with below
nvim -c 'profile start vim.log' -c 'profile func *' -c 'q'

shows that neomake adds to the start up time. Currently we only use it
for two tasks. Running hlint for Haskell and stack build asynchronously.

Use asyncdo and define a generic wrapper command for running makeprg
asynchronously. This can be used for anything as long as makeprg is
set correctly.

vim-grepper also adds somewhat to the startup time though not much. We
do not need the functionality of switching between grep tools. Here
again just use asyncdo and define a generic command for running grepprg
asynchronously.

Drop QFGrep as we can use in built Cfilter plugin for filtering the
quickfix list.

Note that all start times mentioned above are a few milliseconds not
even more than 5ms. However, we would like to be as fast as possible
and use in built functions.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-21 16:39:06 +05:30
3b7326b6ed nvim: plugin: statusline: Show read only or modified status
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-21 13:17:58 +05:30
d73c9e483d nvim: Drop vim-buftabline and it's color scheme configuration
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-21 10:26:08 +05:30
df18cc7ec4 nvim: plugin: gitjump: Git jump integration with vim
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-19 15:57:53 +05:30
c1f6813a9d nvim: plugin: statusline: Drop hunk summary in status line
Hunk summary in status line has not been useful.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-19 15:33:17 +05:30
7875f6d8ab nvim: functions: Drop functions for cycling through all hunks in all buffers
We can just call GitGutterQuickFix and then cycle through all hunks. No
need for this.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-19 14:34:42 +05:30
491ffb9bee nvim: Drop vim-polyglot & miscellaneous clean up
Drop polyglot and add the necessary language support manually. While at
it disable some internal plugins and drop vim-qlist. qlist is only useful
if path is set correctly and it can search for files as indicated by the
path. Since we do not do this, it does not add any value.

Add vim-tmux-focus-events back again. As per this thread
https://github.com/tmux-plugins/vim-tmux-focus-events/issues/1

neovim shouldn't require this plugin however the observation seems that
it's required.

Gitgutter quickfix entries should be loaded in quickfix and not location
list.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-19 14:21:29 +05:30
f8d48a4dc4 nvim: after: ftplugin: qf: Do not set relative number in QF window
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-17 20:58:06 +05:30
ea9f89d74e nvim: Use vim-system-copy
Use this so we do not pollute clipboard history. Also since neovim
depends on a provider which transparently uses shell commands to
communicate with the system clipboard, it seems this adds around 80ms
to start up.

074.721: sourcing /usr/share/nvim/runtime/autoload/provider/clipboard.vim

This plugin should allow us to depend on it only when required.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-15 14:23:23 +05:30
1721c8d62b nvim: keymappings: Do not map j/k to gj/gk
This does not work for line jump when you have relative numbers on and
lines wrap around.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-15 10:54:19 +05:30
d211c2fe66 nvim: Switched to a different rainbow parentheses plugin
While at it, disable highlighting of matched parentheses.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-14 15:36:30 +05:30
4593725d7d nvim: colors: molokai: Improvement updates taken from molokayo
See the repo
https://github.com/fmoralesc/molokayo

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-13 11:53:31 +05:30
97e53f5a1c nvim: Switch to molokai and subsume upstream repository
:(. Gruvbox doesn't cut it, nor does jellybeans. Back to molokai.

Color scheme taken from
https://github.com/fatih/molokai

We add this to our own colors directory while dropping terminal color
support as we have terminal GUI colors option set. Also change the
background color to be completely black like we want it. Also drop the
auto command as it is not required anymore.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-12 11:58:57 +05:30
86cbd6a4a6 nvim: Update some key mappings
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-12 10:19:13 +05:30
495be4683f nvim: Increase the height of fzf window
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-11 16:57:17 +05:30
1a061f6ec8 nvim: keymappings: Miscellaneous key mappings
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-11 13:50:54 +05:30
01eb979b2c nvim: Drop eunuch and lastplace
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-11 11:40:42 +05:30
c874a027b5 nvim: Switch to gruvbox8
Back at this again as it loads faster and did not realise last time that
the background can be over ridden with an auto command group to be set
to complete black. The auto command group must be read first before
setting of the color scheme that's why the autocmd file is now loaded
first before everything else.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-11 11:32:31 +05:30
c94132b1e6 nvim: keymappings: Better behaviour for '0'
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-10 20:42:16 +05:30
3c0e1088ad nvim: Drop easymotion
We use easymotion primarily for vertical motion and any motion requires
at least 3 or 4 key bindings which isn't necessarily different if we are
using relative numbers. For example, pressing <Leader>j and then
pressing another one or two keys for the vertical movement is the same
number of keys while using relative numbers. So just use relative
numbers and drop it. We also never used the word and character motions
or cross window motions.

Use f,F,t,T for horizontal line motions. Use clever-f for this, which
improves the default behaviour. For any other motion not covered by
these two, just use incsearch.

While at it, move some of the key bindings to after/plugin to have
key bindings specific to a plugin in it's own file.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-10 20:41:02 +05:30
fee71ae71e nvim: Miscellaneous clean up
Make sure key bindings are local to the file type buffer.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-09 19:17:58 +05:30
2ef8a772e5 nvim: Switch to dirvish as directory viewer
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-09 17:57:40 +05:30
ccfab23987 nvim: init.com: Drop some more unneeded plugins & rearrange
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-09 17:31:58 +05:30
f763976fbf nvim: plugin_settings: Disable syntax concealing for markdown
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-09 16:02:56 +05:30
5e1995d731 nvim: ftplugin: gitcommit: Add diff section jump only for git commits 2020-05-09 14:17:43 +05:30
f43e74690f nvim: after: ftplugin: Add helper key bindings for git rebase 2020-05-09 12:25:58 +05:30
fa25d22481 nvim: Add git rebase helper
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-09 11:42:48 +05:30
fe4ef658f6 nvim: Drop vim-anyfold and vim-matchup
Really don't use folds ever, so drop this plugin.
Same for matchup.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-08 21:29:40 +05:30
80e2aa9341 nvim: Refactor neovim configuration
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-07 13:06:50 +05:30
021c66c047 nvim: Remove unused plugin setting
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-05 17:45:54 +05:30
534eebb89e nvim: Remove mergetool and switch to DiffConflicts for git merge
Also add the conflict-marker plugin. This should also be useful
for doing rebases and resolving conflicts. Might drop one later
if one of them serves all the purposes in all cases.

While at it, add unimpaired style bindings for moving between
tabs. This is required since :DiffConflictsShowHistory opens
a new tab and default tab navigation bindings gt/gT at least
are binded to something else in python.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-03 21:35:28 +05:30
b42d4cc7a7 nvim: Add function to easily work with jump list & access change list
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-03 11:26:47 +05:30
33148207ec nvim: Switch to jellybeans colorscheme
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-02 18:47:05 +05:30
a2228c077b nvim: ftplugin: purescript: Set textwidth and wrapmargin to 0
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-02 12:22:02 +05:30
47106487ac nvim: Discard GGrep
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-02 11:42:04 +05:30
f57a5fffc0 nvim: Switch to showing the full file path in statusline
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-01 17:57:21 +05:30
b57e4bdceb nvim: Fix netrw buffers staying open after usage of vinegar
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-05-01 12:52:04 +05:30
55d3655ffe nvim: ftplugin: haskell: Enable classic highlighting for Haskell
Gives color separation in molokai between "instance" and "Typeclass Type".

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-30 10:29:24 +05:30
95a31ad348 nvim: Switch to vanilla molokai
Better contrast and darker colors.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-28 17:02:54 +05:30
a05099b6bb nvim: Fix mapping for diff section jumps
Do not conflict with paragraph motion mapping.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-28 10:20:35 +05:30
caf6f81318 nvim: Disable shada
We do not want project specific or project local information to be
available among various neovim instances. It should either be managed
by sessions or should not be stored on neovim exit.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-28 09:51:26 +05:30
470cd043d5 nvim: Add QFEnter plugin
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-26 18:29:55 +05:30
f56bb8c5fb nvim: Drop vim-fugitive and move to gina
vim-fugitive from Tpope is synchronous on neovim. It is
asynchronous on vim when vim-dispatch is available but for
neovim it will always be synchronous. Gina is asynchronous
by default and does not freeze on large repos like fugitive
does. So drop fugitive, other plugins and settings dependent
on it.

While at it, also add some more good things from git gutter
and some shortcuts.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-26 18:29:07 +05:30
d879a43b48 nvim: statusline: Add a hunk summary to the status line
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-24 20:35:31 +05:30
40bc178d32 nvim: Switch back to sonokai
We switched away from Sonokai due to high load times in 20ms or more but
there isn't a monokai variant which is better than this. Gruvbox got
annoying after a while. A darker contrast would have been preferred but
no other fits the bill.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-24 15:50:53 +05:30
f6c8b8d8fa nvim: Fix color scheme setting point
It seems since we are using hard coded colors, so we do not need the
auto command at all. Getting rid of it gives the right results.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-23 10:17:54 +05:30
321213894b nvim: Add a key binding to save files with sudo
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-23 09:37:02 +05:30
8af9c11813 nvim: Drop dependency on vim-airline
Use a custom status line and buftabline.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-23 09:33:30 +05:30
c880a370d4 nvim: Drop unneeded plugins & use incsearch for automatic nohlsearch
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-22 09:09:06 +05:30
42fcd983ad nvim: Disable auto completion by default
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-21 16:14:33 +05:30
a368dd07fc nvim: Drop any jump plugin
Since we already use vim grepper this plugin does not provide much.
Drop it.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-21 16:14:26 +05:30
643cdfef11 nvim: Some minor cleanups, additions and refactor
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-21 16:14:15 +05:30
19be5a4442 nvim: Switch to gruvbox8 theme
This theme is quite fast to load though slightly less nicer than
sonokai, the sonokai theme can take 20-30ms during load. Load times for
gruvbox8 seem to be around 2-2.5ms.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-18 18:32:33 +05:30
932e3ffc42 nvim: LSP cleanup and refactor
LSP does not work all the time. Either client breaks, server breaks or
it does not work because of the project structure. Removing LSP for the
umpteenth time.

asyncomplete does not seem to work at all for tags. For example, in the
gst-build directory the generated tags file can be 200MB+ in size. Even
with the file size limit set to unlimited it does not seem to give any
tag suggestions at all. Same is the case for Haskell.

Mucomplete can be slow in such cases where tag file is very large or
search space is extensively large and being synchronous this is to be
expected. To alleviate this, it is necessary to have a minimum prefix
length of 2 and perhaps trigger completion only when required. However,
this was still not good enough.

We are back to deoplete with custom source configuration. It is pretty
clear vimscript solutions are not up to the mark. Enable python provider
and also reintroduce language specific solutions like racer and jedi.

Refactor out language/file type specific settings. init.vim should only
have global keybindings, plugins and plugin settings. Also some other
minor cleanups, additions and rearrangements.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-15 09:27:36 +05:30
68c61a7a1c nvim: Add quickui for quickfix preview
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-12 15:38:39 +05:30
ff46041c41 nvim: Add fzf quickfix
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-08 10:22:30 +05:30
91248a4822 nvim: Remove plugins endwise, mundo and crates
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-08 09:35:40 +05:30
c7afc36466 nvim: Add vim fetch
Enable to process line and column jump specifications in file paths as found
in stack traces and similar output

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-06 21:28:31 +05:30
efbde43c1e nvim: Add vim any fold
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-06 21:28:24 +05:30
cc0f55cec3 nvim: Set shortcuts for setting fold methods
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-06 21:28:10 +05:30
537f3021a4 nvim: Add vim exchange
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-06 14:09:13 +05:30
5f0dbec511 nvim: Add a shortcut for invoking haskdogs
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-06 10:56:30 +05:30
6297e35f45 nvim: Add bindings for preview tags
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-06 10:08:03 +05:30
c775c0b4e8 nvim: Remove auto resize plugins
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-05 15:30:47 +05:30
cccce84de4 nvim: Do not append results in vim grepper
This setting results in the quickfix list having the same result
multiple times if by mistake we run the same search again.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-04 13:04:13 +05:30
559013e491 nvim: Reintroduce key binding for buffer switching using :b
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-04 09:25:49 +05:30
26457a128e nvim: Lens should be disabled for buftypes & not filetypes
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-04 09:21:26 +05:30
d123b038b3 nvim: Remove custom floating window function
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-03 16:32:59 +05:30
bc64f3240f nvim: Add plugin to load diffs in quickfix list
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-03 12:39:24 +05:30
7e2ed37f66 nvim: Add vim-grepper and vim-qlist
While we have fzf, for situations where we want to search and load
results in quickfix or location list vim-grepper should come in handy.
vim-qlist enchances ]i/I related bindings for search to load then in
quickfix list.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-04-02 20:23:06 +05:30
d9c9780223 nvim: Use window number information for window navigation
Airline section y is used for file encoding and file format. We do not
need this information in status line. Use it to show window number. Use
window numbers for navigation. See :h CTRL-W_W and :h winnr() for more
information.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-03-30 15:57:58 +05:30
e5399b0c02 nvim: Increase height of floating window
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-03-30 13:10:27 +05:30
bacae0a23d nvim: Use ag as any jump preferred search engine
While I would ideally like to use rg, it seems any jump does or cannot
use rg for some reasons for certain languages like Haskell. This can be
seen from the language map in any jump repo. So set preferred engine as
ag for now.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-03-28 10:25:23 +05:30
b58fae6784 nvim: Add some miscellaneous plugins
While at it, remove quick-scope as it doesn't add much of a value when
we already use easymotion. Also do some cleanup.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-03-21 13:05:12 +05:30
bb77d4748e nvim: Update key bindings
The git gutter fold bindings was slowing down the easymotion h binding.
So change it. Also the any jump binding was slowing down the 'a' append
binding.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-03-20 10:04:06 +05:30
e4d37e47c9 nvim: Do not open floaterm in project root
Using this setting results in floaterm changing the directory which then
does not work when working in a setup like gst-build. Stick to whatever
directory we launched from since we would have started from a version
controlled directory root in most cases.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-03-02 19:27:32 +05:30
730257512d nvim: Add some more text object plugins
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-03-02 19:26:54 +05:30
8bd94d224f nvim: Make sure autochdir is off
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-02-29 11:26:08 +05:30
c42bdf362d nvim: Add automatic window resizing plugin
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-02-29 10:10:50 +05:30
6a05421110 nvim: Remove quickr-preview plugin
This plugin seems to have bugs and does not work with quickr-cscope and
quickfix-reflector. See the below issues.

https://github.com/ronakg/quickr-preview.vim/issues/19
https://github.com/ronakg/quickr-preview.vim/issues/17

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-02-29 09:36:22 +05:30
69006a09af nvim: Remove auto pairs
We can use vim surround for the same.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-02-29 09:35:48 +05:30
065a281e7e nvim: Fix indentation
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-02-28 12:56:49 +05:30
9315523206 nvim: Remove indentation specific settings
Since we use vim-sleuth, let that figure things out and do not set
anything by default.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-02-28 12:34:00 +05:30
025d0ddab3 nvim: Switch to sonokai
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-02-28 09:24:47 +05:30
2b59e8e343 nvim: Add any-jump
While this purpose can also be served by fzf the additional feature of
any-jump is that it shows definitions and usages, so helps to have more
context. Should also help us for languages we do not have any setup for
and might not want to use tags.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-02-28 09:22:42 +05:30
edfd027067 nvim: Add vim-floaterm
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-02-28 09:21:28 +05:30
cfc5dfbde3 nvim: Add quickr-preview
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-02-26 11:14:00 +05:30
f6ea699860 nvim: Do not invoke Neomake automatically
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-02-26 11:03:52 +05:30
b88b5f623a nvim: Do not remap the semicolon
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-02-26 10:59:17 +05:30
af6a206e99 nvim: Add quick-scope plugin
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-02-26 10:57:23 +05:30
c015684a60 nvim: Remove window splitting shortcuts
Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-02-26 10:49:00 +05:30
de3295178a nvim: Remove Slimux
We haven't used Slimux much and has not been as much useful in our
work flow. Also increases the load time.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-02-26 10:39:44 +05:30
5af317e87c nvim: Prefix the fuzzy finder bindings with Leader
We want to use the standard vim f,F motions so free them up.

Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>
2020-02-26 10:15:22 +05:30