Commit graph

378 commits

Author SHA1 Message Date
ea7b2e632e
nvim: Configure image.nvim lazyness
Set up to load on the file types it affects.
2023-12-12 12:11:01 +01:00
c550a9d514
nvim: Move Molten info toggle to vim-meta key group
Moved mapping from `<localleader>cI` to `<leader>vn` (for molteN).
2023-12-12 12:11:00 +01:00
ea224ebbc1
nvim: Lazy load zen-mode, nvim-cmp
Correctly lazy load nvim-cmp as much as possible.
Loading it with certain events but also before lsp.
See here: https://github.com/hrsh7th/nvim-cmp/discussions/688#discussioncomment-1891544
2023-12-12 12:10:34 +01:00
eec90ad7e2
nvim: Add automatic mason tool installation
Using mason-tool-installer we ensure everything is installed correctly.
Need to improve the collection of things to install. Currently we just
do everything in lsp configuration file, even the non-lsp things
(formatters/linters) which should be sourced where they belong not
in that file.
2023-12-12 12:10:33 +01:00
ab06ef922b
nvim: Replace null-ls with nvim-lint
Fully replaced null-ls. Will need more tweaking on the nvim-lint setup but
works generally for now. Works well in tandem with conform formatter.
2023-12-12 12:10:32 +01:00
5ccf8bc1fc
nvim: Add formatting expression and more filetypes 2023-12-12 12:10:28 +01:00
bad6200bd2
nvim: Move Mason quick mapping to plugin setup 2023-12-12 12:10:27 +01:00
49692601da
nvim: Change Lsp info mapping to vim layer
Moved the mapping to show lsp info window from `<localleader>li` to
`<leader>vs`.
Local leader +l mappings should be reserved for lsp functionality,
while we have a whole +v layer to grab (meta) information about our
vim installation. It fits in there much better.
2023-12-12 12:10:26 +01:00
293dc8a467
nvim: Add conform.nvim formatter
In the process of moving away from null-ls, added formatting with the help
of conform.nvim. Brings one new command, :ConformInfo which can also be
reached via `<leader>vc`.

AutoFormat on saving remains disabled by default but can be enabled with
:FormatEnable (and disabled again with :FormatDisable) or quickly through
`<localleader>lL`.

Manual formatting works like before with `<localleader>ll`. Uses the
formatters set in the plugin (similar setup to null-ls before) but
automatically falls back to lsp formatters if it does not have its own
and lsp has one enabled.
2023-12-12 12:10:25 +01:00
1def627edd
nvim: Turn off treesitter highlights in big files
Files above 1000 lines, 300 linelength or really big filesize.
2023-12-12 12:10:15 +01:00
7f112816b0
nvim: Remove TSPlayground plugin
Has been superseded by internal functionality, just run `:Inspect` or
`:InspectTree`.
2023-12-12 12:09:58 +01:00
5d8177b1b5
nvim: Update +show mode mappings and descriptions
Mappings preceded by <leader>s 'show' something so removed a lot of the 'toggle'
wording from their descriptions.

Subsumed the toggleterm toggles under this menu since they 'show' a term window
(lazygit or ipython).
Changed Aerial mappings to show navigator by default (`<leader>so`) and the
sidebar outline only on capital version (`<leader>sO`) since this mapping is
used less often.

Removed broken molten-image setup.
2023-12-12 12:09:30 +01:00
8d9b67cb04
nvim: Add Trouble.nvim plugin to quickly show diag 2023-12-12 12:09:29 +01:00
c487da69a8
nvim: Add molten and image.nvim plugins
Image nvim works mostly well (slow on wezterm but that will always be the case
with kitty protocol for now as far as I know).
Would love to be able to toggle images on/off dynamically but I don't see a
way to accomplish that now. (or really, get to any option of the plugin).

Molten itself also works well - the output is displayed more nicely than for
the Magma plugins and everything continues working mostly well (or rather,
just as wonky as I had it set up on my older magma install :)

For now, the molten - image.nvim integration seems to not work at all -
it simply errors out when it would produce an image as output. No clue why
and it also complains about the wrong image provider (which I have taken from
the molten readme). No time to bugfix now but maybe at some point.

To do - find a much better way of installing the image.nvim required
luarock magick - done manually with hardcoded path in setup now

Also extended the old `py` alias to a full-blown script which will in
addition to detecting the python repl also find any running molten
session for the current directory (i.e. any running jupy kernel) and let
the user choose the right one if there is multiple. Will then default to
starting a kernel-aware repl environment (euporia or jupyter-console).

Added a very simple `-c` option which lets you choose python command to
run manually.
2023-12-12 12:07:41 +01:00
297f2c87a3
nvim: Update plugins 2023-12-05 18:01:15 +01:00
55a8a18feb
nvim: Fix spelling language
Accidentally put the wrong british language into the global spell setting.
Now it uses the correct one.
2023-12-05 18:00:32 +01:00
4d886e7e6d
nvim: Add experimental nushell lsp and treesitter
HACK
Added support for nushell lsp (not yet available to automatically install
through mason integration) and for nushell treesitter (VERY manual
installation as of right now).

Will work for testing out the shell and its nvim integration but
definitely has to be integrated better in the future.
2023-12-04 09:28:22 +01:00
78f7112c11
nvim: Update plugins 2023-12-04 09:27:03 +01:00
dfaed8c9dd
nvim: Update plugins and spellfile 2023-11-15 14:25:09 +01:00
b45296765a
nvim: Hide virtual-text diagnostics on insert
When writing something we often want to ideally hide the long comments
added to the end of any line in-progress as virtual text currently.

This simply adds an auto-command to hide when entering and show again
when exiting insert mode, simple but hopefully useful.
2023-11-15 13:28:35 +01:00
c3fe4cdc58
nvim: Add mapping to toggle buffer diagnostics
If you want to hide buffer diagnostics for any reason, there is now a
quick mapping reachable through the usual lsp submenu: `<localleader>lo`
(I suppose the mnemonic would be 'lsp off').

It toggles them enabled and disabled and only affects the current
buffer.
2023-11-15 13:22:19 +01:00
8be40f5630
nvim: Update plugins 2023-10-05 18:28:15 +02:00
117b692dae
nvim: Map zenmode to global show/hide toggle group
Mapped de-/activating zen mode to <leader>sz which means it belongs
to the '+s' group of mappings which generally activate or deactivate
showing something in nvim.

Previously belonged to <leader>vz which rather is a group changing
something about nvim configuration itself.
2023-10-05 18:24:07 +02:00
0a686ab647
nvim: Add mapping to enable British spell check
Updated mappings to enable spell checking slightly: <ll>ZZ enables all
languages (german, us, gb) <ll>ZE only US spellcheck, <ll>ZB GB
spelling and <ll>ZD German spelling.
2023-10-05 18:22:11 +02:00
681e35b92c
nvim: Add markdownlint diagnostics to md, quarto
Added markdownlint. Will be used by default on markdown and
quarto filetypes.
2023-10-05 18:20:00 +02:00
29ff9db62b
nvim: Pin base16 plug to last working version
HACK base16 plugin changed something in its internal application
of highlights so that not all highlights get correctly applied
when my nvim setup boots up. Have to investigate.
2023-10-05 18:19:20 +02:00
444676caac
nvim: Add markmap to build mindmaps
Added markmap plugin to make mindmaps from markdown. Uses
headings for leaves, and works pretty automatically.
Testing its functionality longer-term for now.
2023-10-02 20:06:56 +02:00
065488e57d
nvim: Remove debug printing of activated python venv
Removed notification on activating a python venv.
It should just work, transparent to the user and we do
not need a big ol' notification each time we enter
a file.
2023-10-02 19:21:29 +02:00
bfb62e6783
nvim: Add markdown code evaluation mappings
Can edit (`<ll>ce`), jump-to (`]c`, `[c`), insert (`<ll>co`,
`<ll>cO`) and run (`<ll>cc`) code cells in markdown files.

They will not be evaluated as part of an overall repl but
only stand-alone!
2023-10-02 19:20:44 +02:00
8b603b8c66
nvim: Improve lazy-loading of select plugins
Aerial (on command), test-runners (on python only) and other plugins
are now only loaded when actually required.
2023-10-02 19:18:29 +02:00
bf2e74265c
nvim: Auto format prose soft with word-linebreaks
Automatically set formatting mode to soft for markdown, text and asciidoc files.
Also automatically format on startup (no lazy-loading), and thus have
nicely word-ending linebreaks (a word will not just be cut off wherever the
line is over but will be fully moved to the next line instead).
2023-09-25 19:54:38 +02:00
490232d18a
nvim: Update plugins 2023-09-25 19:44:11 +02:00
23793795d6
nvim: Add coverage support for python testing
Use `,tp` to load a coverage report and show it in the gutter.
Use `,tP` to toggle it off and on. Use `,ts` to show a summary
instead.
2023-09-25 19:41:27 +02:00
497b19fcbe
nvim: Add util function to grab plugin conditionally 2023-09-25 19:39:51 +02:00
41934d3000
nvim: Attach ruff client to active python environment 2023-09-25 19:38:57 +02:00
8a5381a4aa
nvim: Add test setup for python to ide
Added neotest with some mappings to run tests and view
outputs, as well as neotest-python for now to make it
work under python.

Added registering with which-key if it exists.
2023-09-23 08:37:29 +02:00
e016b0a056
nvim: Remap lsp go to next/previous error
Mapped to `[D` / `]D`, reflecting the capitalization of going to the
next general diagnostic (`[d`/`]d`).
Now it is similar to spelling mistakes and spelling errors
(`]s[s`/`]S[S` respectively).
2023-09-23 07:43:49 +02:00
dc9f9373fe
nvim: Remove obsolete mappings
Removed easyread and nabla toggles since the plugins are removed.
2023-09-23 07:41:37 +02:00
6254c92bd3
chore: Update qutebrowser redirects, nvim spellfiles 2023-09-16 11:29:22 +02:00
061e341253
nvim: Remove speed-reading plugin
The 'bionic-reading' mode, I have never used successfully.
It distracts rather than enabling me to move over text
more quickly.
2023-09-16 11:22:03 +02:00
f31b1b29ed
nvim: Enable marksman lsp for quarto files 2023-09-16 11:21:01 +02:00
c7393c9114
nvim: Move between git conflict hunks with ][H
Since we move between git chunks with ]h/[h, we may as well
move between git *conflict* chunks (should there be any)
with ]H and [H mirroring the diagnostics/error setup
situation.
2023-09-16 11:21:00 +02:00
60ae2e43c3
nvim: Switch signature help to cmp plugin
Simply switched signature help. Need to extensively test, but to
be perfectly honest the previous sig help plugin did not work all
the time either.
2023-09-16 11:20:59 +02:00
fd12c2b962
nvim: Remove unnecessary variable declaration 2023-08-29 22:38:08 +02:00
0033116a73
nvim: Refactor py environment detection function 2023-08-29 22:37:38 +02:00
a9d7f96ad2
nvim: Update plugins 2023-08-25 16:32:51 +02:00
84eed308e1
nvim: Update plugins and dictionaries 2023-08-08 09:55:38 +02:00
5caf254c44
nvim: Add D language server to auto config
Automatically install D lsp with mason.
2023-08-07 12:17:20 +02:00
0a3ca9f2b1
nvim: Add git conflict resolution mappings
Added simple merge conflict highlighting and resolution through
git-conflict.nvim plugin.

Allows moving to the next/prev conflict with ]x or [x respectively,
then resolving the conflict currently hovered by using ours/theirs/
both/or neither of the offered options (with `ho/hO/hm/hM`
respectively).
2023-08-07 11:30:09 +02:00
596962c4d1
nvim: Add more bracket movement options
Enabled bracketed module of mini.nvim plugin, which enables many
(many!) more bracket jumping options. Some examples are moving
through the bufferlist, comments, files, jumplist, etc with [
and ]. Integrated into whichkey through pre-defined 'desc'
options for each mapping.
2023-08-07 11:27:52 +02:00
9934c2e8f0
nvim: Disable automatic formatting on save
Default the option to disable on formatting on save, but add new
key mapping to toggle it on (`<leader>sa`) and off. Still
the remaining issue of files always being 'unsaved' state when
using formatting on save, but this allows quicker toggling for
now.
2023-08-07 11:26:17 +02:00
17dbb6a5ab
nvim: Disable prettier for markdown files 2023-07-25 12:04:46 +02:00
55518886f8
nvim: Add prose headline highlighting
Added simple highlighting plugin for prose headlines (and code
snippets). Will highlight the whole line a little from the
background and provide more space around it so it stands out.

Currently works (afaik) for markdown, rmd, norg filetypes.
2023-07-25 12:04:46 +02:00
4410a3fa49
nvim: Switch to aerial.nvim for outlines
Move from simrats symbols outline which worked very well but had
specific issues for displaying markdown outlines as soon as any
lsp would attach itself to the same buffer.

Aerial seems to not suffer from those issues so this is the one
we will go with for now.
2023-07-25 12:04:45 +02:00
a97646c88a
nvim: Update plugins 2023-07-23 19:24:52 +02:00
9a23217d23
nvim: Fix telescope nerd font codepoint
Fix the codepoint the telescope icons point to for the new nerd font
codepoints.
2023-06-22 12:50:54 +02:00
06e0cca640
nvim: Change lspconfig to track master
If tracking stable (versioned) releases, it can get out of sync
with LSPs and display errors on startup - since the stable
version gets updated very rarely (over half a year ago currently)
but LSPs and their configs change more rapidly. Since the master
branch seems stable enough we will simply track this instead
for now.
2023-06-22 12:38:22 +02:00
a5c5480105
nvim: Fix diagnostic symbol display
Fixed the codepoints for diagnostic display for the new
nerd font codepoints.
2023-06-22 12:38:21 +02:00
676c5b2094
nvim: Update plugins 2023-06-22 12:38:21 +02:00
dc86bf3989
nvim: HACK Fix quarto running magma session
With the new lazy loaded plugin structure, Magma would not start correctly.
This commit simply removes the lazy designation for Magma, Quarto and the
Jupyter attachments.

It also uses the python environment detection utility to set the correct
python executable on entering a quarto file (if there exists a virtual
environment for the project).
2023-06-22 12:38:20 +02:00
1665dd6cf6
nvim: Refactor automatic py venv call 2023-06-20 16:16:01 +02:00
1c8c5ca6d9
nvim: Add conditional vale diagnostics
When writing a markdown or similar document, vale will automatically
be enabled if there is a '.vale.ini' or '_vale.ini' file (and a
corresponding styles folder) in the project root directory.

Otherwise, vale stays disabled.
2023-06-20 14:09:56 +02:00
a689d7cc3d
nvim: Fix prettier formatting timeout
Add a longer timeout to give prettier time to read and format
each file, especially useful for longer files.
2023-06-20 14:08:36 +02:00
eb9fa8a156
nvim: Fix zk plugin and lsp loading correctly
The plugin was not loading since lazyloading was not given an event
to start it with. Now, anytime any zk command is given, or we enter
a prose-like filetype the plugin is sourced.

The zk lsp on the other hand was started twice whenever the plugin
was loaded, since we also loaded it through the lspconfig manually.

This commit fixes both issues by sourcing and plugin and letting the
plugin load the lsp as well.
2023-06-20 13:30:24 +02:00
ca3d4ef97b
nvim: Make utility terminals dockable and hidable
The utility terminals (lazygit and python repl for now) can now be hidden
even from terminal insert mode (i.e. when interacting with them) with
<C-\>. They can be invoked through their usual chords (<leader>tg and
<leader>tp respectively) again and will pick right up where you left off.

Insert mode in terminals can also be left slightly easier should it
be needed: Instead of the <C-\><C-n> chord you can use j\.

Lastly, the utility terminals can be started in a vertically docked mode
instead of floating. This is done by adding a bang to their commands,
`Lazygit!` and `Pythonterm!`, or using capital versions of their
mappings: <leader>tG and <leader>tP.
2023-06-17 22:02:38 +02:00
b9de8b3914
nvim: Add undotree plugin
Lua implementation of the undo tree plugin, mapped to be
reachable with <leader>su (for show undo).
2023-06-17 22:02:37 +02:00
f33b4c9c37
nvim: Restructure lua dir
Moved plugins into individual component module files which are
automatically required by lazy.nvim. Should make everything a tiny bit
more modular, or at least prepare the way for true modularity if I ever
have the time on my hands to ensure everything works with missing
modules.

Moved core settings into their own directory (`core`), and created a
`personal` folder which contains functions/plugins I wrote that do not
necessarily have to be their own imported plugin yet.

Finally, extended the utility functions a little, so we can detect if a
plugin exists and change e.g. key maps based on that (once again,
extending modularity a little more). Some simple attempts have been made
at that in the `mappings.lua` file, though it is nowhere near extensive
yet - most keymaps are still set regardless of plugin availability.

However, with this slimmer base to work off of, I feel more confident in
changing future things about this setup a little more ad-hoc without
having as many ripple repercussions as before.
2023-06-17 21:54:22 +02:00
f343b1a76d
# This is a combination of 4 commits.
# This is the 1st commit message:

nvim: Restructure lua dir

Moved plugins into individual component module files which are
automatically required by lazy.nvim. Should make everything a tiny bit
more modular, or at least prepare the way for true modularity if I ever
have the time on my hands to ensure everything works with missing
modules.

Moved core settings into their own directory (`core`), and created a
`personal` folder which contains functions/plugins I wrote that do not
necessarily have to be their own imported plugin yet.

Finally, extended the utility functions a little, so we can detect if a
plugin exists and change e.g. key maps based on that (once again,
extending modularity a little more). Some simple attempts have been made
at that in the `mappings.lua` file, though it is nowhere near extensive
yet - most keymaps are still set regardless of plugin availability.

However, with this slimmer base to work off of, I feel more confident in
changing future things about this setup a little more ad-hoc without
having as many ripple repercussions as before.

# This is the commit message #2:

Update settings file with 0.9 options

# This is the commit message #3:

Move lazy.nvim setup into core module

# This is the commit message #4:

Rename maps.lua to mappings.lua
2023-06-17 21:51:46 +02:00
5f93ecba7c
lua: Format with stylua 2023-06-15 10:12:30 +02:00
e434c191c9
nvim: Switch away from depredcated nvim_exec function
Use nvim_exec2 instead, which is weirdly named.
2023-06-15 10:00:20 +02:00
2dbd94dda4
nvim: Remove copyright abbreviation
I never used it once.
2023-06-15 09:59:45 +02:00
41968e1361
nvim: Integrate null_ls for formatting and linting
Formatting and linting should from now be done with null_ls instead
of formatter.nvim (and nothing for linting so far).

This will still take a little to fully transition, for now we use
null_ls for eslint linting and prettier formatting for a variety
of javascript/typescript and astro files.

null_ls uses Mason installations under the hood and any tool it
uses also gets installed by Mason.
2023-06-15 09:47:32 +02:00
3a709bb450
nvim: Replace live grep key chord with fw
Moved the old, a little more cumbersome, mapping <leader>fF to be
<leader>fw instead to start live grepping with telescope.
2023-06-15 09:43:10 +02:00
681c48d4f7
nvim: Format plugins file 2023-06-07 10:06:32 +02:00
e35dec9f9f
nvim: Update spellfile 2023-06-07 10:06:20 +02:00
de15382415
nvim: Remove spellsitter
Spellsitter funcitonality is long deprecated and included
in the mainline neovim project. So we might as well
remove it from our plugins.
2023-06-07 10:06:10 +02:00
92ab289537
nvim: Update plugins 2023-06-07 10:05:16 +02:00
d262c9432d
nvim: Remove automatic full-text completion
Automatic completion from full-text search was draining battery and generally not too helpful.
Disabled (commented) for now, can be re-enabled more specifically.
2023-05-23 15:52:29 +02:00
7b810f94a5
nvim: Format 2023-05-23 15:51:40 +02:00
744c08f0f5
nvim: Update spellfile 2023-05-23 15:50:50 +02:00
760ed037ba
nvim: Update plugins 2023-05-23 15:50:37 +02:00
8606652b93
nvim: Fix colorizer setup and add mappings 2023-03-23 08:30:01 +01:00
3a6c7717c8
nvim: Set up gitsigns mappings 2023-03-23 08:29:12 +01:00
d2e101b822
nvim: Add latex notation concealing with nabla
Notations will be concealed automatically on entering a textual buffer
and `$...$` style notations are contained.

Concealing can be turned off with <localleader>sV, which will toggle
concealing on or off for all notations in the file.
Additionally, the notation under curser can be viewed in a popup with
<localleader>sv.
2023-03-23 08:28:17 +01:00
2b64b4b750
nvim: Update lazy lockfile 2023-03-22 17:31:49 +01:00
f1b7c02aee
nvim: Make cursorword highlights more inconspicuous 2023-03-22 17:29:41 +01:00
aa68137ff8
nvim: Add zk mappings 2023-03-22 17:01:02 +01:00
d0e536b798
nvim: Update colorizer git address 2023-03-22 16:29:42 +01:00
e95bd9b252
nvim: Add smartcolumn plugin 2023-03-22 16:29:41 +01:00
f156292e8f
nvim: Add file tree
In addition to my standard file manager, vifm, being integrated into
neovim, I have now also added a side-pane file tree (akin to nerdtree)
that is easily reachable to get a quick overview of a file layout.

For now, I do not intend to do much more with the plugin, only keep it
for those rare cases I want to have a view on my file layout at the same
time as working in a buffer. For all other things (file operations
especially) I still have vifm.
2023-03-22 15:58:18 +01:00
36d411dafa
nvim: Format files 2023-03-22 10:35:21 +01:00
22cfa037df
nvim: Add fidget.nvim
Added fidget plugin which shows the current loading status of LSPs. Only
works for a few LSP (so far), including lua and python. Should
automatically pick up new implementations on update. Will display a
small loading notification in the lower right corner, useful to display
status for those situations where LSP loading takes a long time (e.g.
rust compilation requirements or a large python environment).

FIXME Does not work for each python environment startup yet, and I am
not sure why - sometimes just does not display its loading startup.
2023-03-22 10:32:20 +01:00
643d282bac
nvim: Improve cmdline completion
When completing in command line I want the completion canditates to be
displayed, but *not* selected on confirmation. By doing so, it makes it
almost impossible to quickly quit with ':q' or write with ':w' for
example, as those always try to expand themselves automatically into
completion items.

This commit changes the default behavior for command mode to show
completions but not auto accept any on confirmation, instead simply
invoking whatever is currently on the command line (as if we had no
completion plugin running).
2023-03-22 10:31:37 +01:00
ce9f101024
nvim: Unify lsp mappings into local +l prefix
Whereas previously we had lsp-related mappings both on <localleader>l...
and g... mappings, they are now all unified under the <localleader>l
prefix group. Some mnemonics unfortunately had to give way to a weaker
version of themselves (definition becomes de[f]inition, implementation
becomes i[m]plementation) but overall I believe this to be much more
cohesive for my future lsp usage. With which-key enabled and everything
under the +l group we should be able to easily adapt to the new
mappings.

Additionally, some mappings will invoke the telescope version of their
lsp command if telescope is indeed installed, otherwise fall back to the
native neovim lsp implementation.
2023-03-22 10:28:13 +01:00
d1b0dfe112
nvim: Improve diagnostics gutter rendering 2023-03-22 10:21:52 +01:00
6b28e6417b
nvim: Prepare lsp-zero switch to v2 branch
Switched the configuration of lsp-zero to its less integrated v2
version. Switched back to manually configuring most of nvim-cmp.

Addded some manual formatting to cmp which displays completion kind as
icons not as text.
Manually add luasnip integration.
2023-03-22 08:30:04 +01:00
39b495affd
nvim: Update lockfile 2023-03-21 18:58:51 +01:00
b3aa44f7a5
nvim: Update plugin lockfile 2023-03-19 14:49:38 +01:00
0189753b18
nvim: Update spell dict 2023-03-19 14:49:24 +01:00
917d80b7f2
nvim: Change spell fix shortcut to z mapping 2023-03-19 14:48:25 +01:00
7a6575f760
nvim: Add easyread speed reading plugin 2023-03-19 14:47:56 +01:00
0d5eeadef0
nvim: Remove wrapping notification, add toggle map 2023-03-19 14:47:26 +01:00
b8eb02ef6c
nvim: Add arduino language server wrapping 2023-03-19 14:46:26 +01:00
6f3ac3d31f
nvim: Move Navigator to dev version
Since Navigator.nvim only implements wezterm compatibility in its main
branch as of now, we explicitly switch away from its stable version for
now.
2023-03-07 10:50:32 +01:00
74fdc4bc8f
nvim: Update plugins 2023-03-07 10:49:04 +01:00
382bcdba72
nvim: Hook treesitter commentstrings into comment maps 2023-03-07 10:46:25 +01:00
72514b2a5e
nvim: Update rainbow brackets to maintained fork 2023-03-07 10:45:43 +01:00
954ccf5e89
nvim: Improve dynamic colorscheme sourcing 2023-03-07 10:41:47 +01:00
25d37d17b3
nvim: Dynamically source colorscheme from file
Neovim will source the `colorscheme.lua` file in its state directory on
startup, as well as whenever the file contents are changed.
This allows any colorscheme definition to be put into the file and vim
will apply it as soon as the file contents change.
2023-03-03 18:35:27 +01:00
1c7d0a9835
nvim: Default to stable versions for plugins
Using the lazy option 'version' we default to updating only to the
latest stable (semver) version of plugins. This should make it a little
more stable in the long run to keep up with plugin updates.

Not all plugins support this versioning scheme and for those that do not
it just keeps tracking the main branch.

Currently from the plugins that support it, only `nvim-lspconfig` needs
to be manually kept on the main branch since it is missing the correct
lua language server otherwise. This should be a problem of the past with
the release of the next version of the plugin.
2023-03-03 12:51:21 +01:00
051c0914ad
nvim: Add wrapping plugin 2023-03-03 12:38:09 +01:00
2c4d5c483d
nvim: Update plugin lockfile 2023-03-01 17:41:30 +01:00
7128edc57c
nvim: Add quarto filetype setup 2023-03-01 17:39:03 +01:00
c75b7636e0
nvim: Determine python venv on lsp start 2023-03-01 15:57:28 +01:00
a44cf1d509
nvim: Add notify, select and input UI theme plugins 2023-03-01 15:56:30 +01:00
72e7832dce
nvim: Remove navigator.lua 2023-03-01 14:40:36 +01:00
e94eade3b3
nvim: Add descriptions for various prefix groups 2023-03-01 14:37:59 +01:00
56003fcccb
nvim: Map <leader>v for vim-related options 2023-03-01 14:36:54 +01:00
e3f123c080
nvim: Add punctuation-based undo breakpoints 2023-03-01 14:35:04 +01:00
ea7fcd92f5
nvim: Switch to manual lsp mappings 2023-03-01 14:28:42 +01:00
e1abc2972b
nvim: Add gitcommit ft settings 2023-03-01 14:27:03 +01:00
8d40fd843e
nvim: Rename helpers module to util module 2023-03-01 14:26:26 +01:00
1b69f57146
nvim: Remove line number from terminal buffers 2023-02-28 11:21:39 +01:00
70ccf5fa55
nvim: Display gitsigns as highlights on linenums 2023-02-27 09:22:33 +01:00
693f8ba3f4
nvim: Move autocommands into separate module 2023-02-27 09:22:02 +01:00
74bbaf4daf
nvim: Remove cmdline if not used, split buffers belowright 2023-02-27 09:20:18 +01:00
e6d7578198
nvim: Switch from cmp-pandoc to cmp-pandoc-references
cmp-pandoc.nvim did not work sufficiently for my use case so far
(sometimes it did, most of the times it did not at all, every now and
again it sputtered some references to the list).

cmp-pandoc-references seems like a plugin kept relatively 'simple'
requiring no setup, a single `bibliography: ` line in the pandoc
meta-data header and it works flawlessly from there. I might delve
deeper at some point, especially with the papis.nvim integration, but
for now this is perfectly adequate.
2023-02-27 08:48:09 +01:00
0127a5db07
nvim: Switch from neorg to zk-nvim
Neorg is fine but not for me right now (especially with its own syntax
spec). zk seems to fit my workflow much better, this is the beginning of
trying it out.
2023-02-25 17:16:51 +01:00
9a874b1a1b
nvim: Remap leader groups
This commit is a change to some of the foundational mappings I use
through my leader key: opening telescope searches and toggling several
additional display riders.

First of all, all telescope functionality has been subsumed under the
<leader>f prefix:
    f (<leader>ff, that is) for finding files
    F for grepping
    h for finding hidden files
    o for finding old files
    b for finding buffers

    l for searching git log
    s for searching git status
    c for finding git commits (for current file)

Aside from these (which are pretty massive changes for me), we have a
new leader prefix group for the (now freed) <leader>s:
    o toggle symbols outline
    m toggle minimap
    s open the (mini.nvim) startup screen
2023-02-24 21:38:31 +01:00
e87814ebcb
nvim: Remove leftover plugin settings
We are not making use of vsnip anymore (replaced by luasnip in zero-lsp
package) but still had a couple of vsnip mappings that lead to erratic
<tab> key behavior.
2023-02-24 15:11:50 +01:00
9a8a14f85f
nvim: mini indentline fix updated config option
Mini changed the configuration for its indentline module to use a table
instead of a function for its animation generation configuration.
This commit updates the config accordingly.
2023-02-24 10:02:00 +01:00
eba39d2334
nvim: Add minimap toggle mapping 2023-02-10 15:38:22 +01:00
2026f6d064
nvim: Switch to lsp-zero
lsp-zero offers a simple to set-up lsp configuration which is based
around the plugins I use anyway (lsp, cmp, luasnip) but integrates them
very well. I add a few small quality of life things on top (cmp
completion for / search and for vim command mode) as well as a boatload
of custom completion sources but otherwise make use of the nice presets.

This has de-bloated my _cmp.lua settings somewhat and allows me to have
a simple treesitter and a simple(r) lsp setup!

Additionally, switched to mason.nvim to manage my lsp sources (and
linters), which is both the new hotness and actually really useful.
Allows portable installation of most lsp servers into neovim data
directory so they do not clutter any other directories or global
namespaces.
2023-02-10 15:33:33 +01:00
ee4640b186
nvim: Fix dial.nvim
Added more rules to dial increment default group so it works on some
more cases. Fixed key bindings.
2023-02-10 14:06:45 +01:00
0484556f04
nvim: Fix spell dictionary not able to be found
Added the previously important 'site' directory to the runtime path of
neovim so it stops complaining about not finding spell dictionaries on
starting up with a spell-enabled file.
2023-02-10 12:08:16 +01:00
7965036eed
nvim: Add mapping description for which-key 2023-02-10 11:47:09 +01:00
e8d2183264
nvim: Remove notational-fzf-vim plugin
Removed the notation velocity plugin for vim. I have not been making use
of it for ages and should I need a vim-internal way of digging through
my wiki I can probably find easier (and more clear) ways of doing so.
Nice plugin, but of no more use to me.
2023-02-10 11:15:38 +01:00
fff6e60862
nvim: Remove cartographer plugin
Switch to use the nice new nvim-internal keymapping functions.
Cartographer was a really useful plugin when they did not yet exist but
now everything I wanted to do can be done without a mapping plugin, so
it is time to remove it.
2023-02-10 11:13:53 +01:00
08360ae7ff
nvim: Switch from quarto-vim to quarto-nvim
Switched to the neovim variant of quarto plugins since it may contain
improved integration with lsp and cmp - and offers completion and
diagnostics for code snippets *within* the overall markdown sources of
quarto, which is very exciting.
2023-02-10 09:19:27 +01:00
cd0d519a28
nvim: Move to lazy.nvim package manager
Migrated from packer.nvim to lazy.nvim - it gives really fast loading
times, easy lazy loading for any package and a snazzy package manager
overview page (invoked through `:Lazy`) which, importantly, all do not
rely on a compiled plugin list.

In essence it feels like an easier to manage and robust packer
replacement (even though packer is a really good manager as well) that
is well worth to switch to. Migration was pretty painless as well.

One thing I might do in the future is split up the plugin structure
itself from a single plugin list (which invokes plugin settings files)
to several files containing the plugins and their settings since it
might give more structure.
2023-02-10 09:15:56 +01:00
989886a936
nvim: Replace slime et al with magma
So far, my repl integration consisted of vim-slime and vim-ipython-cell.
I am basically purely working in the python repl for now and while the
two plugins (together with tmux) *worked* they didn't work well enough
that I used them in an extensive way. Just as often as I could make use
of their productivity enhacements, I had to wrangle with the plugins
themselves to get what I wanted out of them.

Hence the switch to magma. It integrates more deeply into python, and
neovim both - showing cell outputs in floating windows and so on.

It does not, on its own, recognize e.g. jupyter cells or quarto code
cells, so I have set up some simple key binds to improve
inter-operability between those. Especially [r and ]r to jump between
quarto cells and <localleader>R to execute the contents of the cell the
cursor is currently in may be of interest. They are fairly crude and
probably have edge cases where they will not work but until then they
provide an easy quality of life improvement.

Lastly, I silently added a plugin for markdown previews (that also
scrolls with the editing cursor). I don't foresee myself using it *too*
often but it might come handy for smaller articles and writing. It can
be invoked with <localleader>mp - a binding which I will no doubt also
have to overhaul at some point.
2023-01-31 10:06:55 +01:00
50264c2eac
nvim: Format plugins file 2023-01-16 18:53:56 +01:00
565a356ea8
nvim: Add bibtex source to cmp autocompletion
Added simple bibtex source display: Will show the bibtex entries
existing in the bib file set through `bibliography: path/to/mine.bib`.
Shows author, title, date on hovering.
2023-01-16 18:52:48 +01:00
d09584e690
scripts: Remove compile script
Never used the compile script for years now, and I neither see that
changing nor the files being of any use anymore. They were something I
whipped up when I first started getting into Linux and bash scripting
(and as such a little nostalgic I suppose) but nothing that has actual
purpose anymore.
2023-01-13 00:04:21 +01:00
0a867ee992
nvim: Add fix last spelling mistake mapping
Added a quick way to fix the last spelling mistake: Use <c-s> while
writing (in insert mode) or localleader-s while in normal mode.
It will fix the mistake and keep your cursor at the current position.
2023-01-12 23:00:44 +01:00
3b7c24c676
nvim: Switch to official Navigator branch
After the wezterm navigation changes have been merged into main we can
now use the upstream package again for navigating easily even in
wezterm.
2022-12-16 23:24:36 +01:00
ec5dd24198
nvim: Bootstrap spellfile if not existing
Neovim sometimes errors out when enabling spelling without having all
the necessary spellfiles available. This ensures on setting up the
environment that a spellfile is downloaded.
2022-12-08 13:39:40 +01:00
1c983b2dce
nvim: Fix automatic packer installation
Updated to new recommended bootstrapping for packer itself, straight
from the project respository.
2022-12-08 13:30:20 +01:00
b33ae09a33
nvim: Disable automatic formatting on save
Had to disable automatic formatting since it was messing with my
contributions to other git projects, if they did either not have a
formatter enabled (most of the time) or had different formatters or
those set up differently than this setup (fixable, but I don't think
it's worth the time).

Instead, formatting can be invoked with `<localleader>f`/`F` to format
or format and save respectively.
2022-12-08 13:28:00 +01:00
dff4308b4d
nvim: Change to Navigator fork supporting wezterm
Changed to personal fork of Navigator which supports wezterm for the
time being - until the changes are merged in some fashion upstream.
2022-12-08 13:15:34 +01:00