Commit graph

948 commits

Author SHA1 Message Date
86747c619d
nvim: Add support for lean
Tree sitter queries are copied over from lean.nvim.
2024-02-19 21:00:13 +05:30
2205797c31
nvim: Set the matchup matchparen offscreen method to popup 2024-02-05 16:17:38 +05:30
0dad89e0fb
nvim: plugin/shell: Add helper to get decimal & hexadecimal values 2024-01-11 13:24:26 +05:30
384eed0b5c
nvim: treesitter: Add parsers for C, lua, vim & vimdoc
We were getting errors on trying to open vim help files. As per
nvim-treesitter, parsers for C, lua, query, vim & vimdoc should
always be installed.
2024-01-09 12:45:54 +05:30
d974be35c2
nvim: lsp-utils: Update Haskell LSP settings
checkProject if set to true, type checks the entire project on initial
load. If activated by default which it is, can lead to bad performance
in large projects.
2024-01-07 20:19:20 +05:30
b2e66cbff4
nvim: Use monokai colour scheme 2024-01-01 22:34:17 +05:30
795389215c
nvim: autoload/ftplugin: git: Update git rebase branch implementation
See this for reference.
https://andrewlock.net/working-with-stacked-branches-in-git-is-easier-with-update-refs/
2023-12-21 16:36:02 +05:30
07f81f1496
nvim: Drop our yolokai theme and use default 2023-12-18 17:38:23 +05:30
a36d7279f5
nvim: plugins: paq uses build instead of run now 2023-12-18 17:36:37 +05:30
556afeabcc
nvim: init: Use OSC 52 for copying to system clipboard in SSH session 2023-12-14 13:40:14 +05:30
e18c14b0e6
nvim: lsp: Do not include declaration in reference lookups 2023-12-04 12:40:08 +05:30
020d9ed8a6
nvim: lsp: Inlay hints API has changed 2023-11-15 13:53:21 +05:30
940c66406f
nvim: Use Ruff as Python LSP
Though Ruff is not an LSP in the LSP sense but using it this way
gives us formatting and linting via code actions. All other Python
LSP servers are garbage anyway.
2023-10-26 13:06:11 +05:30
6fa44274e1
nvim: after/plugin/gitsigns: watch_gitdir.interval is deprecated 2023-10-16 18:41:09 +05:30
fc80b95131
nvim: lsp-utils: Configuration updates in line with lspconfig 2023-10-14 10:34:11 +05:30
bac3f8b577
nvim: Drop Python LSP
All Python LSP servers are garbage. Jedi was being horribly slow.
We only care about Python for GStreamer/GObject work where Python
GObject's missing type annotations prevent us from using something
like Pyright or similar. Just drop all this crap. Fuck Python!.
2023-09-15 11:46:05 +05:30
39c8f2890a
nvim: plugin/epoch-converter: Use UTC time zone 2023-09-14 14:50:23 +05:30
064df213f2
nvim: treesitter: Add back bash, markdown & python
We had dropped these in commit f349a32 since these are now included
upstream but it seems when using neovim build from source, upstream
bundled parsers do not get updated at the same cadence as treesitter
plugin. This results in breaking syntax highlighting and we have
faced this now for python and bash. Bash is still broken.
2023-09-12 12:20:42 +05:30
ba29cb1d56
nvim: treesitter: Drop teal 2023-08-24 15:58:00 +05:30
b10f5e47e7
nvim: colors/yolokai: Switch to Starlight
Colour Palette taken from
https://github.com/CosmicToast/starlight
2023-07-28 17:45:30 +05:30
95bbaa2b97
nvim: lsp: Drop mapping for hover
K is mapped to hover by default now. So let's drop our own mapping
and just use K.
2023-07-17 12:16:23 +05:30
6313ece287
nvim: after/plugin/fzf-lua: Add a mapping for bcommits in visual mode
The <cmd> is necessary, as `:` exits visual mode. Also, while at it
use vim.keymap.set instead of nvim_set_keymap.

Also see, https://github.com/ibhagwan/fzf-lua/issues/816.
2023-07-12 14:30:40 +05:30
00da5c690f
nvim: colors: Minor clean up
The call to highlight_terminal was redundant since we were passing
just {}. Also remove cterm related settings. Upstream has diverged
significantly, so we need not care about upstream any more.
2023-07-11 16:08:31 +05:30
549bc29b6f
nvim: lsp: Update capabilities check
Dynamic capabilities were introduced in neovim with commit ddd92a7.

With dynamic registration of LSP capabilities, a client's `server_capabilities`
is no longer a sufficient indicator to see if a server supports a feature. We
instead need to use `client.supports_method(<method>)` which  considers both
the dynamic capabilities and static `server_capabilities`.
2023-07-11 16:08:31 +05:30
5b108ac9b4
nvim: plugins: Minor clean up
Also run TSUpdate if treesitter gets updated.
2023-07-11 16:08:31 +05:30
6dd655ebce
nvim: after/ftplugin/diff: Do not highlight white space 2023-07-07 17:52:01 +05:30
8db1867f30
nvim: plugins: Drop nvim-lightbulb
Drop nvim-lightbulb and just add the needed functionality. This also
fixes a minor bug where the code action detection was incorrectly
being done under codeLensProvider instead of codeActionProvider.
2023-07-06 18:26:07 +05:30
b24c03af09
nvim: plugins: Drop dirbuf and use mini.files module 2023-07-06 16:57:38 +05:30
ea588b0556
nvim: after/plugin/mini: Drop use of align module 2023-07-06 16:57:38 +05:30
f349a32582
nvim: treesitter: Bash, markdown & python are included upstream 2023-07-03 17:23:25 +05:30
81508aa84b
nvim: after/plugin/mini: Add a key mapping for removing white space 2023-07-03 17:22:20 +05:30
d159850db2
nvim: lsp: inlay_hint() has been moved to vim.lsp 2023-07-01 09:14:26 +05:30
9c9dc6a6b8
nvim: after/plugin/mini: Use jump2d for f, F, t, T motions
mini.jump module does not give multiple hints when moving on the
same line like hop use to. Use the jump2d module to achieve this
functionality. This makes it easy to jump forward or backward on
the same line with just one hop instead of having to press f/F
multiple times which is just annoying and stupid.
2023-06-29 19:32:05 +05:30
0265000a4f
nvim: lsp/statusline: Add support for LSP progress
Use the same timer loop for updating LSP progress in status line
which we use for updating git ahead, behind status.
2023-06-24 15:30:22 +05:30
c1e4b234fb
nvim: statusline: vim.loop has been renamed to vim.uv 2023-06-22 17:16:23 +05:30
9d8130d160
nvim: lsp: Minor clean up
Define functions in a consistent way through out. We like the pattern
`local function_name = function()` instead of `local function_name()`
for defining functions.
2023-06-22 12:21:42 +05:30
31c9213c0a
nvim: lsp: Add support for inlay hints
Make sure to disable inlay hints by default. It seems to be quite
bug ridden at the moment. However, we add a key mapping to toggle
inlay hints.
2023-06-22 12:19:30 +05:30
12a925d203
nvim: colors/yolokai: Add highlight for LSP inlay hints 2023-06-22 11:38:39 +05:30
8f05d13b11
nvim: plugins: Drop inlayhints
Drop lsp-inlayhints now that upstream merged support for inlay hints.

https://github.com/neovim/neovim/pull/23984
https://github.com/neovim/neovim/pull/24071
2023-06-20 16:58:13 +05:30
d3775127f8
nvim: treesitter: Register haskell parser in ftplugin
4468c8b made PureScript use Haskell for treesitter queries. However,
setting them up globally sometimes seems to result in Haskell files
getting identified as PureScript and triggering a PureScript LSP
server attach. At least that's what the behaviour seems like.

To prevent this, register the usage of Haskell treesitter queries
in ftplugin viz. when PureScript file type is detected.
2023-06-20 16:58:13 +05:30
6f78a23ab3
nvim: after/ftplugin/haskell: Update tags on file save 2023-06-20 16:58:12 +05:30
99531be4ad
Revert "nvim: keymappings: Drop all key mappings for tags"
This reverts commit 3657612dbb.

We want to use fast-tags with Haskell.
2023-06-20 16:58:12 +05:30
89dd0df8a1
nvim: plugins: Drop vim-husk
There has not been any update to the plugin in 8 years. Just drop
it from the plugin list and incorporate it directly in our config.
2023-06-19 13:09:15 +05:30
c398856dd4
nvim: compiler: Drop custom compiler files
Now that we use LSP everywhere these are not required any more.
2023-06-16 12:59:37 +05:30
e9f10fa776
nvim: after/ftplugin: haskell: Set makeprg 2023-06-16 12:59:37 +05:30
5a1883fb2d
nvim: after/ftplugin/cabal: Set comment string 2023-06-10 13:30:04 +05:30
b6243f2a9a
Revert "nvim: plugin: Add a simple whitespace plugin"
This reverts commit 891fae907b.

Now that we have mini.trailspace enabled by default, drop this
whitespace plugin.
2023-06-07 14:14:56 +05:30
4468c8b0c1
nvim: treesitter: Make PureScript use Haskell parser and queries
Turns out that the Haskell treesitter implementation can be used
for PureScript as well.

This is exactly what Helix does.
https://github.com/helix-editor/helix/pull/4242/files
2023-06-07 13:47:44 +05:30
d5a70895a5
nvim: plugins: Drop purescript-vim for PureScript syntax highlighting
This reverts 587d76d.
2023-06-07 13:46:40 +05:30
cf85dfa8ee
nvim: ftdetect/purescript: Detect purs files as purescript 2023-06-07 13:44:23 +05:30
f1f9058f06
nvim: plugins: nvim-pqf moved to GitHub 2023-06-07 12:43:32 +05:30
e758ef0a08
nvim: after/ftplugin: Disable mini trailspace
Now we enable trailspace module from mini, disable it for file types
where we do not want trailing space to be highlighted.
2023-06-07 12:43:15 +05:30
3fd01ac9e6
nvim: colors/yolokai: Add highlights for mini.nvim 2023-06-07 12:43:15 +05:30
29c657b395
nvim: Use modules from mini.nvim
We drop Comment, hop & vim-surround in favour of modules from mini.
This change is triggered by the fact that hop's author has decided
to not maintain it any more. There is also pounce but mini seems
simple and we can also use other modules it provides.
2023-06-07 12:42:40 +05:30
6cb83ef74d
nvim: treesitter: Disable additional vim regex highlighting
With this set to true, neovim will run `:h syntax` and tree-sitter
at the same time. Using this option may slow down one's editor and
one may see some duplicate highlights. Disable it.
2023-06-02 13:44:11 +05:30
909cbef796
nvim: colors/yolokai: Add highlights for diff treesitter
Found the solution from this issue
https://github.com/the-mikedavis/tree-sitter-diff/issues/5
2023-06-02 13:44:11 +05:30
49f88776ea
nvim: treesitter: Enable diff 2023-06-02 13:10:28 +05:30
8d2b94856c
nvim: after/ftplugin/scheme: Drop use of racket lang server for scheme 2023-05-31 10:29:38 +05:30
5674bbdc06
nvim: lsp: Add support for reloading Cargo workspace
While at it, refactor the custom setup and clean up for clients in
a single function.
2023-05-25 13:41:58 +05:30
269382b363
nvim: lsp-utils: Set capabilities
We missed setting this and it gives an error like below when using
HLS and rust-analyzer.

```bash
LSP[rust-analyzer]: Error SERVER_REQUEST_HANDLER_ERROR: "/usr/local/share/nvim/runtime/lua/vim/lsp/_watchfiles.lua:199: attempt to index field 'capabilities' (a nil value)"
```
2023-05-25 13:41:58 +05:30
c844fe5874
nvim: after/plugin/nvim-lint: Enable actionlint
Run actionlint on save for GitHub Action workflow yaml files.
2023-05-18 15:37:41 +05:30
245855e5ff
nvim: plugin/session: Do not load session if Quickfix list is loaded
This is required if we want to use git-jump or do anything with `nvim -q`.
2023-05-15 20:45:48 +05:30
42601f6214
nvim: after/plugin/easyalign: Allow aligning on ' 2023-05-09 16:19:06 +05:30
1546762662
nvim: after/plugin/fzf-lua: Always parse globs in grep 2023-05-08 18:06:18 +05:30
f8267b23b0
nvim: after/plugin/gitlinker: Add gitea web hosts we work with 2023-05-06 18:20:19 +05:30
3987cb202b
nvim: lsp: Update completion kind symbols
This broke due to an update with the nerd-fonts package.

See related
https://www.reddit.com/r/archlinux/comments/1358gvh/switch_from_ttfnerdfontssymbols2048emmono_broke/
https://github.com/ryanoasis/nerd-fonts/issues/1190

Stole one or two icons from
https://github.com/onsails/lspkind.nvim/pull/64

and the rest fixed by nerdfix.
https://github.com/loichyan/nerdfix
2023-05-03 11:19:57 +05:30
eafc975e35
nvim: plugin: Add a simple session management plugin 2023-05-02 16:33:52 +05:30
7271c9b030
nvim: plugins: Remove auto-session
Recent changes to auto-session which got added with session lens
support are just plain annoying. It adds telescope support which
broke session loading as we do not use telescope. It has started
creating session files which we do not want and there seems to be
no setting to disable them or at least if there is it is not at
all obvious from the documentation. Just nuke this nonsense.
2023-05-01 11:30:28 +05:30
95cb836e8d
nvim: after/ftplugin/cabal: Add cabalfmt plugin
Since we reverted cabal-fmt support via HLS in the previous commit
add the cabalfmt plugin. Just add it to our own ftplugin instead of
adding via the plugin list.
2023-04-25 16:28:02 +05:30
5bba0b1789
Revert "nvim: after/ftplugin/cabal: Enable HLS on cabal files"
This reverts commit 34a5bbdacb.

HLS complains a lot (forgot the error) when trying to edit cabal files
making it almost unusable. It was nice to not require a separate plugin
for formatting cabal files, but, since this is not usable, disable it.
2023-04-25 16:28:02 +05:30
9c4bdb5644
nvim: init: Drop textobj-word-column setting
We dropped the plugin in c800b66, so remove the left behind setting.
2023-04-22 13:05:52 +05:30
39900dd9a7
nvim: after/ftplugin/purescript: Add PureScript LSP support 2023-04-22 13:05:51 +05:30
27e6af32b9
nvim: plugins: Add syntax highlighting for PureScript 2023-04-21 18:47:15 +05:30
a039a58dd2
nvim: colors/yolokai: Convert all tabs to spaces 2023-04-12 11:20:39 +05:30
fe7ca593ae
nvim: lsp: Enable semantic token highlighting
This effectively reverts commit 0c9e0eb.
2023-04-12 11:14:42 +05:30
4c409188be
nvim: colors/yolokai: Add semantic highlight groups
For more information, see
https://www.reddit.com/r/neovim/comments/12gvms4/this_is_why_your_higlights_look_different_in_90/
https://github.com/Iron-E/nvim-highlite/blob/master-v3/colors/highlite.lua

Changes are taken from the above two sources.
2023-04-12 11:14:42 +05:30
7ca6a1c1b8
nvim: after/ftplugin/rust: Remove format on save
Formatting on save tends to go completely wrong sometimes for some
reason. Just remove it.
2023-03-21 17:22:52 +05:30
30a7f0606d
nvim: plugins: Add portal for jump & change list support 2023-03-15 10:49:06 +05:30
c800b66cbf
nvim: plugins: Switch to nvim-various-textobjs
We never really used the comment text object and functionality of the
other two are provided in nvim-various-textobjs.
2023-03-15 10:49:06 +05:30
34a5bbdacb
nvim: after/ftplugin/cabal: Enable HLS on cabal files
Enabling HLS on cabal files allows us to format them using gq. HLS
just uses the internal cabal-fmt plugin.
https://haskell-language-server.readthedocs.io/en/latest/features.html#formatting
2023-03-06 22:15:29 +05:30
01e9c92051
nvim: plugins: Drop cabalfmt
We will switch to using HLS for this.
2023-03-06 22:04:39 +05:30
eec59c530d
nvim: Switch to fzf-lua
Switch to fzf-lua now that it supports tmux style pop ups. For details,
see https://github.com/ibhagwan/fzf-lua/issues/225.
2023-03-06 16:13:36 +05:30
c37a0db46a
nvim: lsp: Fix luacheck warning on setting non-standard global variable 2023-03-06 13:33:40 +05:30
0002d02e6c
nvim: lsp: Drop unnecessary if check 2023-03-05 00:13:28 +05:30
110a1643cb
nvim: Move LSP configuration to it's own LSP utils
This allows us to have all the language server configuration in one
place and only import relevant LSP server configuration to pass to
vim.lsp.start in after/ftplugin.

While at it, we also enable deno support.
2023-02-28 20:56:36 +05:30
26488153f0
nvim: after/ftplugin/haskell: Remove old configuration
We use cabal instead of stack these days and we dropped asyncdo more
than a year ago.
2023-02-28 00:17:45 +05:30
27d051e3dd
nvim: plugins: Add back vim-wordmotion 2023-02-28 00:05:45 +05:30
8a60e83ef5
nvim: plugins/treesitter: Drop playground
Initially added this thinking it might help with our own colorscheme
but we have never used this.
2023-02-28 00:05:45 +05:30
148e808cee
nvim: after/plugin/gitsigns: Update configuration
current_line_blame_formatter_opts is deprecated. Update the signs
configuration.
2023-02-25 18:00:07 +05:30
0f16076860
nvim: init: g:ts_highlight_lua has been removed
See neovim commit 2e450ef.
2023-02-15 18:56:56 +05:30
406570312f
nvim: after/ftplugin/rust: Do not add cargo registry to buffer list 2023-02-10 18:42:57 +05:30
56f81f598e
nvim: Switch back to paq
Packer does not seem to be maintained. Version 2 being developed
by Lewis @ https://github.com/lewis6991/packer.nvim has breaking
changes. Migrating to Lazy will open it's own can of worms & it
does not use packages. Funny thing is author of Packer himself
uses Lazy.

We really should not be needing anything fancy. neovim can load
packages automatically from packpath. All we need is something
which will clone the packages to packpath and all those will be
automatically loaded.

paq.nvim which we were using before packer was the right choice
and does the bare minimum we stated above.

Rest all with features like fancy lazy loading is nonsense.
2023-02-09 20:19:59 +05:30
547bf78b9b
nvim: plugins: Update plugin configuration
Do not make packer optional and remove use of after, cmd, config,
run and requires.

This is in preparation for testing if we can move off the plugin
manager and use in built packages support for handling packages.

While at it, drop unnecessary comments.
2023-02-09 15:57:47 +05:30
dd0adf5212
nvim: plugins: Drop luasnip and use snippy
Our snippet usage is not extensive. Use snippy which is a more
minimalistic plugin.
2023-02-03 18:19:37 +05:30
0b1380f28b
nvim: after/ftplugin: js/ts: Do not add node_modules to buffer list 2023-01-31 20:33:44 +05:30
ad1c594245
nvim: after/plugin/nvim-lint: Drop pylint and use ruff 2023-01-26 16:55:44 +05:30
f5d12372bd
Revert "nvim: plugins: Drop sleuth now that neovim has editorconfig built-in"
This reverts commit 058c37882d.

It is still helpful to have this it seems as without this working on
projects which do not have editorconfig becomes a pain.
2023-01-26 16:55:43 +05:30
3e5d0f0e13
nvim: after/ftplugin/markdown: Remove column limit 2023-01-21 20:05:03 +05:30
a64baccca1
nvim: Reintroduce clipboard settings
clipboard support just seems to be completely flaky right now. Add
previous settings but instead of tmux specific commands use wayland
clipboard tools.

This should make it work everywhere. One downside of this setting is
we go back to polluting system clipboard every time & does not really
matter if we copy to + or * register. Both will result in a call to
wl-copy.
2023-01-19 14:15:13 +05:30
f3190ffa0b
nvim: after/ftplugin/diff: spell is window local & not buffer local 2023-01-19 14:15:13 +05:30