Commit graph

417 commits

Author SHA1 Message Date
f15a64c121
nvim: Extract statusline plugin into separate file
Extract lualine into its own 'statusline.lua' plugin file. This makes
the ui plugin file a little more lean but also prepares the way of
tinkering with statusline alternatives, like heirline.
2024-09-15 22:11:20 +02:00
03f18bea3a
nvim: Simplify prose filetype grouping
Simply have a markdown-like group and a org-like group for the plugins
that only target those specific prose modes.
2024-09-15 22:09:58 +02:00
65d5ac12ef
nvim: Load mini files earlier
Since sometimes it is necessary to have correct access to the files
functionality earlier than was possible with the old lazy loading this
instead loads it at program start as well.
2024-09-15 22:09:18 +02:00
44c3361c10
nvim: Add golang and typst LSP and formatters 2024-09-15 22:08:23 +02:00
ff7adb859b
nvim: Move undotree to pickers plugins 2024-08-15 18:37:37 +02:00
56951911f6
nvim: Check trouble before adding telescope maps
Check that the trouble plugin exists before adding its maps to the
telescope buffer. Should probably go into trouble setup instead but
works as a quick safeguard for now.
2024-08-15 09:40:47 +02:00
ec791fda5f
nvim: Move next/prev spell error to z Z keys
From [s ]s [S ]S, we move all to [z ]z [Z ]Z.
2024-08-15 09:33:59 +02:00
787c0b0fc4
nvim: Deprecate buffer-option settings group for switches
Remove `<localleader>s` 'set' group of mappings (setting buffer wrapping
mode, setting colorizing) and replace it with explicit on/off mappings
via [o<setting> and ]o<setting>.

Wrapping can be set to soft with `[ow`, hard with `]ow`.
Colorizer can be disabled with `[oc`, enabled with `]oc`.
Colorizer can highlight virtual text with `[oC`, highlight background
with `]oC`.
2024-08-15 08:53:30 +02:00
b574ba5947
nvim: Rename core plugin spec to base.lua
This should make it hopefully still clear that they are expected plugins
for the configuration while also delineating it from the 'core' module
which bootstraps lazy and sets fundamental options and so on.
2024-08-15 08:29:40 +02:00
f8625f35f0
nvim: Only load plugin spec if plugin files exist
Before we load the lazy spec from the 'lua/plugins' directory, we check
that the directory exists and contains at least one .lua file. We do not
check that the file returns a valid spec but that is just assumed in
this case.
2024-08-15 08:26:38 +02:00
3e369ee31e
nvim: Refactor completion plugins
Begin a larger refactor with nvim-cmp, which separates out the different
nvim-cmp modules to be loaded at different times and for different files
(such as beancount completion on loaded for beancount files and so on).
This is by no means complete but the start of a larger overhaul process.
2024-08-14 23:12:55 +02:00
7723f43a5b
nvim: Add grug rg find and replace picking plugin 2024-08-14 23:11:49 +02:00
86dfc5ecbc
nvim: Lazy load most mini.nvim modules
Except for mini.starter which we need right at the - well - start, we
can lazy load most other modules. It's a little awkward since we lazy
load them *within* the setup function with a manual autocommand but it
should work fine for the time being.
2024-08-14 23:11:02 +02:00
b2e0621d12
wezterm: Decouple toggleterm plugin from ui module
For now lives in a 'terminal.lua' module instead.
2024-08-14 12:03:23 +02:00
bec8f4e2e7
nvim: Unify file browsers and telescope as pickers
Since they are all used for file picking (among editing and creating)
I'll just have them run under pickers for now. If the name turns out to
be confusing or not descriptive anymore I can still change it at any
time.
2024-08-13 13:47:10 +02:00
18f12f9068
nvim: Improve markdown rendering
Remove redundant conceallevel fix (not required for quarto files
anymore), add additional filetype injections and do not highlight
codeblocks as much (no sign colum entry, bg not over whole doc width).
2024-08-13 13:19:56 +02:00
9750e943b9
nvim: Update plugins 2024-08-12 21:25:41 +02:00
ca0e08fab5
nvim: Fix python venv utility function 2024-08-12 21:25:31 +02:00
bfbe4c36cd
nvim: Update dial version and changed key maps
Changed maps to increment on <C-S> (instead of the usual <C-A>) and
decrement on the typical <C-X>. This makes it work much better with
wezterm leader key (<C-A>) and as far as I can see does not directly
clash with any other binds.
2024-08-12 21:16:50 +02:00
d4727a3402
nvim: Fix newly linted errors 2024-08-12 21:16:49 +02:00
61d34e49c7
nvim: Switch to lazydev lua lsp setup
Much easier lua development setup.
2024-08-12 21:16:48 +02:00
4be3a42ffa
nvim: Simplify formatter loading
Since we use Mason to automatically install any formatter we need, there
is (currently) no need for the more complicated logic of deciding
between multiple formatters (since the one we prefer should always be
available). This also fixes an issue that we can set 'prettier' specific
options in conform.nvim but those do not apply to 'prettierd' the same
way - we now just use prettier and ignore prettierd.
2024-08-12 19:45:11 +02:00
be842ce622
nvim: Simplify molten statusline function
Instead of doing all kinds of security checks beforehand, we simply wrap
the molten kernel check into a lua protected call and return an empty
result if we would error. We only return the symbol if we don't error
and we have an active kernel.
2024-08-12 19:45:10 +02:00
41d2b5b628
nvim: Rename ide to testing plugins 2024-08-07 21:17:32 +02:00
6a7385ed26
nvim: Split formatting off ide plugins 2024-08-07 21:17:18 +02:00
1e44ef4c11
nvim: Remove harper lsp
For the time being remove harper (code spellcheck) lsp from the
automatically loaded LSPs. It's not *bad* per se but also requires way
more setup for me to be useful and throws up false positives all over
the place. Worst of all though it does not seem to actually stop
producing diagnostics when it is stopped (with `LspStop <harper-id>`)
like all the other LSPs do, so there is no way to get rid of its
results.
2024-08-07 21:17:17 +02:00
4f2acad60d
nvim: Add todo comment highlighting plugin
Added todo-comments.nvim plugin by folke, which will automatically
highlight (in a sane color) all the `TODO:`, `FIXME:`, `WARN:`, and more
comments within code.
2024-08-07 21:17:17 +02:00
490aadc433
nvim: Add spelling and abbreviations 2024-08-07 20:05:42 +02:00
2ddf69c244
nvim: Refactor lsp, linting and outliners away from ide
Start splitting up ide plugin module by splitting out individual
modules.
2024-07-30 14:37:20 +02:00
95de192924
nvim: Update plugins 2024-07-30 07:55:07 +02:00
7b9abab298
nvim: Improve quarto syntax rendering
Removed the standalone vim-pandoc-syntax plugin since I have not really
been using its functionality for a long time. Additionally, set reduce
conceallevel in markdown and quarto files to 2 for the time being to
prevent some rendering errors (especially on headlines) when interacting
with the markdown.nvim (render-markdown) plugin.
2024-07-30 07:54:38 +02:00
7af5fca62a
nvim: Exchange headlines plugin for markdown.nvim
To render markdown highlights and a few other things (list items, code
blocks, callouts, etc) we switched from headlines.nvim to markdown.nvim
(internally ralled render-markdown).
This now also enables quick switching between showing the rendered
output and raw markdown (`<leader>pp`).
2024-07-26 15:33:43 +02:00
7a051952fc
nvim: Update which-key mapping functions
Use new which-key mapping `.add()` functions after `.register()` has
been deprecated with which-key 3.0.0.
2024-07-24 14:53:48 +02:00
d45d220b52
nvim: Update plugins 2024-07-24 14:13:14 +02:00
1b4f73ae9b
nvim: Do not establish quarto molten session on open
We now disable the automatic establishing of quarto molten sessions
(using the virtual environment provided python interpreter) as soon as
the file is opened since it can have some negative side-effects and also
slows down quarto file opening.
Instead, use the `JupyterStart` command to establish a jupyter session
in the correct environment and initialize a molten session.

The behaviour can be re-enabled with
`vim.g.quarto_auto_init_molten_session = true`.
2024-07-24 14:13:01 +02:00
a94b1ccbb2
nvim: Add vs shell alias to start vim stratchpad 2024-07-24 14:09:47 +02:00
0b5c7d09d5
nvim: Remove quarto fn snippet
Removed `fn` snippet from quarto snippets since we already have the
functionally equivalent `]]` snippet for markdown (which quarto
extends).
2024-07-20 16:50:42 +02:00
88f187160a
nvim: FormatDisable disables globally with a bang
Switch the functionality of `FormatDisable` command around: Disables for
the local buffer by default and disables globally if called with a bang.
2024-07-20 16:50:00 +02:00
d2a2537df0
nvim: Enable json lsp 2024-07-20 16:48:54 +02:00
f5592b5e85
vifm: JupyterStart always uses sessionfile
Make JupyterStart always use the buffer sessionfile (or create the
default one if none exists) instead of only on first run.
2024-07-20 16:48:34 +02:00
19c95400f7
nvim: Add scratchpad item to start screen
Added an item to quickly create a scratchpad to the mini.starter
template.

The difference to opening a default empty buffer is that it is seen as
ephemeral (i.e. will not complain if you close vim without saving) and
it sets the default filetype to markdown.

Closes 753ed1f.
2024-07-20 14:01:31 +02:00
db86edf4ce
nvim: Fix lsp key mapping for markdown files
We forgot to pass through the original on_attach function when loading
the custom marksman one, now fixed.
2024-07-03 09:46:13 +02:00
011942e049
nvim: Update plugins 2024-07-02 13:08:19 +02:00
1514eca622
nvim: Update to new conform.nvim version
Update and fix small breaking change in new conform by specifically
setting lsp formatting as fallback. Move to explicit ruff format import
organizing and remove tailwind css lsp for the time being.
2024-07-02 13:08:07 +02:00
8aa845dcfb
nvim: Update otter and quarto
Fix small cmp completion source breaking change for new otter and quarto
versions.
2024-07-02 12:43:38 +02:00
444c378d89
nvim: Update ZK mappings 2024-06-27 17:26:02 +02:00
851bf58b21
nvim: Improve snippet jumping
Snippets can be jumped through more easily now since jumping between
snippets (with <tab> and <s-tab>) takes precedence over completions and
jumping through completions. That means when a snippet has been expanded
we can now cycle through its insertion points without worrying about
activating completion items instead.

Additionally, only jump through insertion points as long as we are
within the snippet boundaries with the cursor, so it doesn't surprise
jump later when pressing <tab> from somewhere else in the file.
2024-06-27 17:24:29 +02:00
894b7ff175
nvim: Disable marksman lsp in zk notebook directories
When a `.zk` directory is found in the current root directory of the
marksman project, the lsp is disabled.

This is because zk delivers its own lsp server with correct following of
note ids instead of full file names which marksman expects and fails to
find.
2024-06-27 17:22:03 +02:00
e6497a2241
nvim: Only start ltex LSP if spellchecking enabled
Since ltex-lsp eats quite a lot of resources and takes a while to start
up we don't always want it enabled for every prose file. This commit
ensures that it only starts up when spellchecking is enabled for a
buffer (through the custom user command `SpellToggle`).
2024-06-27 17:20:35 +02:00
9ded34f73c
nvim: Add custom spellcheck toggle with user events
Added a user command `SpellTogle` which toggles on or off spellchecking
in the current buffer. Can be invoked like that, or with one or multiple
language to spellcheck (e.g. `SpellToggle en_us en_gb`). Can also be
invoked with a bang to always enable instead of toggling.

Publishes a user event called `SpellEnable` or `SpellDisable` depending
on the aciton which autocommands can listen for.
2024-06-27 17:18:34 +02:00