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.
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.
This is something I used to use quite a bit in tmux. I have a feeling I
will not be making extensive use of it in wezterm, but can always remove
it if I reach the point of forgetting the mapping later.
Added mapping `<leader><c-q>` to select a pane which will be moved out
to a new tab.
Slightly changed pane switching on `<leader><s-q>` to keep focus on the
pane instead of switching to the other pane.
Finally, added two simple relative tab movement maps to cycle forward
with `<leader>.` and reverse with `<leader>,`. This replaces the old tab
movement (moving the actual tab around) left and right which are now on
`<leader><s-,>` and `<ledaer><s-.>` respectively.
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.
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).
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.
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.
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.
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.
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.
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.
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`).
Like in zathura, like in sioyek, we use a to view the image in 1:1
scale, or s to fit it to the screen (or S to specifically fit its width
to the screen).
This is a change which is very much hardcoded for my setup, but the vpn
block will now give preference to displaying individual VPN types from
top to bottom:
If privateinternetaccess is connected, it will display its icon.
If proton is connected, it will display its icon.
If netbird is connected it will display its icon.
If nothing is connected it will display nothing.
It is still quite a hacky solution and should also be replaced by a
signal-driven system instead of the recurrent polling it does currently
(it only polls once a minute atm, to keep system load/battery drain low
but since it invokes a lot of external commands, e.g. piactl and
netbird, it should really only be invoked on vpn changes).
Using the 'alt' json return field to set the icon and change the icon
within waybar itself instead of doing so manually in the script. This
makes us a little more flexible and puts all the 'what' is rendered that
is specific to waybar into waybar (keeping the 'how' it's rendered in
the style.css).
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`.
Changed keys to be a little more coherent with neomutt setup: o/O reload
the current or all feeds (previously r/R);
m/M mark the current feed/all feeds read (previously a/A) if in the feed
list. If in another dialog, m toggles the individual selected article
read.
All search results are highlighted, not just the currently selected. As
of now only works with the development version of the program not the
current release version (2.0.0).
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.