Commit graph

517 commits

Author SHA1 Message Date
99098f56a1
nvim: Move typescript and vue LSP config into lsp dir 2025-06-10 18:31:40 +02:00
bb6f401ff3
nvim: Move arduino LSP config into lsp dir
Also ensure that clangd and arduino-cli are installed since the lsp
otherwise won't work.
2025-06-10 18:31:39 +02:00
07e820ac00
nvim: Move ruff/pyright lsp settings into after/lsp/ dir 2025-06-10 18:31:39 +02:00
8dd268caf2
nvim: Allow registering lsp without providing configuration 2025-06-09 14:38:14 +02:00
de1591c7a7
nvim: Switch to maintained emmet lsp
Called 'emmet_language_server' instead of 'emmet_ls'.
2025-06-09 14:38:14 +02:00
7cc7195f9a
nvim: Update nushell lsp installation
Nushell lsp is now integrated directly into the 'nu' command. This
update stops mason from trying to install a 'nushell' LSP and simply
activates the nu-internal LSP if it finds the correct executable
instead.
2025-06-09 14:38:13 +02:00
3d1f925f78
nvim: Update mason-lspconfig for 2.0 2025-06-09 14:38:13 +02:00
63c6c81f6e
nvim: Fix ltex disabled autostart
Fixes #1ef7570.

We implement our own autostart-aware lsp register function. Any lsp
which has the option {autostart=false} set at their config root will be
not automatically enabled and can instead be enabled on demand.
2025-06-09 14:38:12 +02:00
d8458ae010
nvim: Update checkbox markdown states
We now have the usual 'undone' ([ ]) and 'done' ([x]) states, but
express 3 further ones that are _somewhat_ standardized:

- [o] this one is 'doing', in-progress
- [-] this one is 'indeterminate', we're not sure
- [~] this one is 'deleted', never to be done
2025-06-09 14:38:11 +02:00
fad8f65214
nvim: Improve which-key group rendering
Moved most group definition functions into plugin 'init' functions so
they run at the beginning and are displayed more reliably.
2025-06-09 14:38:10 +02:00
4e7b64aad0
nvim: Add gitcommit and history extensions to codecompanion 2025-06-09 14:38:10 +02:00
1397fee17a
nvim: Enable fzf-lua integration for codecompanion
Since version 15.5.0 it supports showing selection menus with fzf-lua,
so we enable it here. Hardcoded for now.
2025-06-09 14:38:09 +02:00
19f3cd3457
nvim: Add copilot status to lualine 2025-06-09 14:38:09 +02:00
d3cdd0b30a
nvim: Fix llm models used by codecompanion 2025-06-09 14:38:08 +02:00
9efbcbfa01
nvim: Replace copilot.vim with copilot.lua
Makes the plugin less intrusive (will now only autocomplete on <M-p> or
<leader>ap). Can select suggestion with <M-]> or <M-[>, and accept with
<M-p> in-text or <CR> in-panel.

Still automatically started when invoking CodeCompanion chat.
2025-06-09 14:38:08 +02:00
f160a5b4a7
nvim: Update zk-nvim
Changes filetypes option placement in configuration.
2025-06-06 22:30:35 +02:00
21e80aeb87
nvim: Fix markdown rendering in codecompanion buffers 2025-06-06 15:58:45 +02:00
e912c3f535
nvim: Add vue language LSP/Treesitter/formatting setup 2025-06-06 15:58:44 +02:00
1f05e0775d
nvim: Add mason env utility function
Should return the mason environment for lsp servers to be able to set it
in the 'core/languages.lua' list.

However, currently it is initialized too early (I think), before
mason.nvim, and thus never gets the initialized env var.
2025-06-06 15:58:44 +02:00
9900750e81
nvim: Change creating lsp servers into local function 2025-06-06 15:58:43 +02:00
d2432e0039
nvim: Extend lsp configuration with multiple declarations
So far if LSP declarations in 'core/languages.lua' were duplicated (e.g.
the 'astro' filetype and the 'vue' filetype both declare the
'typescript' lsp), one would simply overwrite the other. That is fine as
long as there is no custom setup, but if there is one of them is lost.

This commit changes it so that the different configurations extend each
other. The 'latter' one still overwrites the former but this is just
what must happen if there should be conflicting setups. 

May increase loading time slightly.
2025-06-06 15:58:43 +02:00
1d5fbef0fb
nvim: Use new non-programmatic lspconfig interface for 0.11 2025-06-06 15:58:42 +02:00
5913948705
nvim: Check linter existence before setting options
We only change 'markdownlint' arguments if it actually exists in the
nvim-lint 'linters' table.
2025-06-06 15:58:41 +02:00
cf9a25d1c6
nvim: Use uv for running python coverage
Still needs to be improved and less hardcoded but for now at least we
use the tool that I use every day.
2025-06-06 15:58:41 +02:00
2bdfb291ae
nvim: Add jj source to neotree 2025-06-06 15:58:38 +02:00
d2be1c8795
nvim: Change mapping for printing Fidget message history
Since it is technically vim-internal (and relatively rarely used unless
to debug things), I have moved the shortcut for this function from
`<leader>sh` (show-history) to `<leader>vp` (vim-print-messages).

The 'p'-suffix is a little unfortunate but currently h/H/m are all taken
in this vim-internal submenu.

The reasoning behind this is that the 'show' menu is intended primarily
for user-facing, middle-of-work tasks and windows that help me
accomplish goals when actually working and getting things done.
Showing the fidget history does not do that, but allows
introspection into the vim editor history. So, it should accordingly
live under the 'vim' menu. Additionally, it frees space in the
'show' menu and lets me/the user forget about the functionality
until it is needed.
2025-05-22 14:00:08 +02:00
15015e61e0
nvim: Add neowarrior plugin
Allows quickly listing and working with taskwarrior tasks from within
neovim. Show a floating `:NeoWarriorOpen` window with `<leader>sw` or a
vertical neowarrior buffer with `<leader>sW`.
2025-05-22 14:00:07 +02:00
bcf94703ec
nvim: Update plugins 2025-05-09 10:38:49 +02:00
62301917da
nvim: Prefer vim.o option getter 2025-05-04 19:55:08 +02:00
96cab3d9a6
nvim: Update lsp diagnostics keys
Can show hide diagnostics, virtual text and virtual lines independently.
2025-05-04 19:55:07 +02:00
642d422007
nvim: Update yank highlight for vim 0.11 2025-05-04 19:55:07 +02:00
af5d5783a5
nvim: Update plugins and spellfile 2025-05-04 19:55:06 +02:00
03a68a9fdb
nvim: Change snippets to vscode json style
Translated markdown snippets to json style.
Could completely remove quarto snippets since they are integrated into
friendly snippets by now.
2025-05-04 19:55:05 +02:00
ff2ae79878
nvim: Move to image.nvim fork which works with typst
Though ostensibly compatible with typst, there is a show-stopping issue
with the main image.nvim fork which means an error message whenever
there is more than one typst buffer open (e.g. two side-by-side, or
opening a fzf-lua windows with typst previews, and so on).

Until that is fixed, use this fork. Issue here: https://github.com/3rd/image.nvim/pull/280
2025-03-19 21:30:02 +01:00
7306d860b7
nvim: Remove blink-cmp version pinning
Everything is working well again with newer versions of blink-cmp. And
the development velocity is crazy, we are already two major versions
ahead. Some breaking changes but seemingly nothing that my relatively
simple configuration is affected by.
2025-03-15 20:08:50 +01:00
9857cb8953
nvim: Add nushell lsp 2025-03-15 20:08:48 +01:00
c98fa26e91
nvim: Create single source of truth for language features
All additional languages features (LSPs, treesitter parsers, linters and
formatters) are now defined in a single place in 'core/languages'.

This file simply sets up a big table which contains all the enabled
programs and parsers, divided by type. They adhere to the structure
given by the respective plugin.

HACK: We are still cheating a bit currently for treesitter parsers since
I have not had the heart to go through all of them to
activate/deactivate what I could need. Most of them are simply still
loaded, not connected to a specific language. Will have to be sorted out
at some point but it is good enough for now.
2025-03-15 20:08:47 +01:00
62b0188fcc
nvim: Fix treesitter textobjects
Was not installed correctly, and neither set up correctly. Now should be
fully working, with objects targeting Functions, Loops, Conditionals,
Statements and (nushell) Pipelines.
2025-03-15 20:08:47 +01:00
4d6270a9b0
nvim: Add treesitter context line maximum number
Show a maximum of three context lines at any time.
2025-03-15 20:08:46 +01:00
9c4ef56905
nvim: Update treesitter context plugin source
Seems to have since been transferred to nvim-treesitter group ownership.
Probably still worked under the old link, but better to be safe and use
the up-to-date source.

Have gotten LSP, Linters, Treesittesr into one list under core/languages

Missing formatters still, then it's done.
2025-03-15 20:08:45 +01:00
13ef79079b
nvim: Update to newer nushell treesitter version 2025-03-15 20:08:45 +01:00
faaaa81f91
nvim: Switch to external luarocks dependency
Using external luarocks instead of a luarocks plugin for now. The amount
of dependencies to install is not smaller the other way now (having to
install libreadline-devel) so this should be fine.

I have captured more info in daily log 2025-03-11 on my reasoning.
Suffice it to say: both lazy.nvim 'hererocks' installation, this
external luarocks dep and the luarocks.nvim plugin are brittle in their
own ways. 

For now, I have settled on the external dependency as it remains the
simplest way to achieve what I want (image.nvim) pictures. Though it
requires quite a few dependencies overall:

`xbps-install lua51 lua51-devel luarocks-lua51 ImageMagick libmagick-devel`
2025-03-15 20:08:43 +01:00
fe79287559
nvim: Update plugins 2025-03-15 20:08:40 +01:00
15cf9b192b
nvim: Fix zk commands always being created
They were under a conditional which would only have them be created if
which-key plugin was found beforehand.
2025-03-10 20:22:03 +01:00
2eebe047f6
nvim: Remove fzf select one option
Removed the default option select one, it did not do anything. Now
trying with a 'default' opt for the actual plugin.
2025-03-10 20:22:03 +01:00
07a619060a
nvim: Disable history when editing jrnl files 2025-03-10 20:21:59 +01:00
9a53fd5775 nvim: Update plugins
Updated plugins. Forced blink.cmp to stay on version 0.11.x since 0.12.x
versions have a new `exact` match comparator which breaks my config.

See <https://github.com/Saghen/blink.cmp/releases/tag/v0.12.0>.

This is perhaps a bug in the interaction with the nvim-cmp compatibility
layer, but for now we can just pin back the version until it is fixed.
2025-02-25 23:25:23 +01:00
068fc77019
nvim: Only enable markdown mdeval mappings if available
Check for the existence of the 'mdeval' plugin before setting the
corresponding key mappings in markdown type files.
2025-02-22 19:35:39 +01:00
18ce017b8a
nvim: Add djot filetype to prose plugins
Since it is (basically) markdown, we add it to markdown-like filetypes.
2025-02-18 22:41:41 +01:00
65bb7aa034
nvim: Add djot filetype detection 2025-02-18 22:41:39 +01:00