Commit graph

235 commits

Author SHA1 Message Date
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
078578b173
nvim: Update buffer navigation maps
Updated buffer navigation to make use of the <c-w>hjkl paradigm instead
of the <c-hjkl> since it adheres closer to vanilla nvim and works better
with the new navigation features of Navigator.nvim.
2022-11-25 16:56:26 +01:00
8f6e1994df
nvim: File formatting 2022-11-25 16:55:04 +01:00
2b9981482f
nvim: Switch to zen-mode and twilight plugins
Switched out the old distraction-free writing plugins for neovim
variants zen-mode and twilight by folke - they are simple (one command
to invoke zen-mode, mapped to `F11`, and that's it), they are written in
lua and they work together beautifully (invoking zen-mode also invokes
twilight paragraph highlighting).
2022-11-25 16:55:04 +01:00
fadacf5313
nvim: Format plugins file 2022-11-15 18:10:00 +01:00
27860162b4
nvim: Update plugins for quarto 2022-11-01 16:05:33 +01:00
86fdfbe3d5
nvim: Update spellchecker 2022-11-01 16:04:54 +01:00
af6e91561b
nvim: Remove unnecessary augroup invocation 2022-11-01 16:04:37 +01:00
ff3b4ef605
nvim: Update neorg modules in use 2022-11-01 16:03:53 +01:00
0220f7f03f
nvim: Remove extraneous lsp setup for defaults 2022-11-01 16:03:30 +01:00
03a4148796
nvim: Update deprecated cmp lsp method 2022-11-01 16:03:07 +01:00
26c3124e95
nvim: Remove non-working cmp plugins 2022-11-01 16:02:35 +01:00
84714379ab
nvim: Update autopairs rules 2022-11-01 16:02:00 +01:00
7fbdbf0203
nvim: Update formatting 2022-11-01 15:56:23 +01:00
ba5d5d2561
nvim: Fix cmp cmp-pandoc completion 2022-10-09 20:25:32 +02:00
e3b2f0f0e5
nvim: Add basic neorg installation
All defaults for now except for concealer installed which prettifies
the neorg files.
2022-10-09 20:25:32 +02:00
9628ff30b9
nvim: Move cmp configuration to its own file
While it is lsp adjacent, this muddles the waters too much and the
configuration file was way too long.
2022-10-09 20:25:13 +02:00
c0443dad35
nvim: Change remaining augroups to lua autocmds
Changed formatting and plugin self-compilation to make use of the new
neovim 0.7 autcmd api function.
2022-06-13 19:30:43 +02:00
a0968bcf93
nvim: Change init autocmds to lua versions
With neovim 0.7 bringing autocmd bindings in lua, we can now rely on a
built-in api instead of having to use our own helper function. Last
missing migration is the lsp formatting autogroup.
2022-06-13 17:49:25 +02:00
95e2fea951
nvim: Disable uninstalled python language servers
Had to manually disable python lsps that are not on my system since
neovim otherwise complains about it whenever I enter a new python
filetype file.
2022-04-30 21:00:05 +02:00
9a46a94827
nvim: Change blankline, Update treesitter settings
Updated treesitter setting to remove use of deprecated 'maintained'
option and simply replaced it to use 'all' treesitter syntaxes (haven't
had a problem with it so far).

Changed blankline options slightly to remove annoying animations and
quick switching of which blankline it shows depending on where my cursor
is -- both proved to be too much of a distraction when I just need to
interact with the indentation context every now and again and it should
just allow me a quick glance at the indentation level the rest of the
time.
2022-04-30 20:53:00 +02:00
8aa02654eb
nvim: Add Mini for indentblankline and commentary
Replaced indentblankline and vim-commentary both with mini.nvim, which
has both as submodules.

Commentary is replaced exactly and without any end-user changes, simply
transferred to be included in the lua plugin instead.
Indent blankline is a bit simpler but brings with it a new text object
which can be interacted with through `ai` and `ii`, e.g. `vii` select in
current indentation or `dai` delete around current indentation - very
useful.

Also added fuzzy matching algorithm from mini.nvim to telescope as
default sorter.
2022-04-11 13:00:55 +02:00
2c7430121e
nvim: Fix dial plugin binds 2022-04-11 12:40:07 +02:00
ebf4274c5b
nvim: Add mapping for finding hidden files
While <leader>f searches files, now <leader><c-f> searches for hidden
files.
Simple addition but can be very useful if you work for example in
dotfolder directories or similar.

Now I just need to find a way to do the same for live_grep. The
functionality is there (live_grep can take the same `{hidden=true}`
argument as find_files) but terminal emulators don't distinguish between
<c-f> and <c-F> so there is no convenient mapping for it yet.
2022-03-08 10:15:33 +01:00
3c59ab0b61
nvim: Add telescope digraph search
Added plugin for digraph search through telescope.
When you want to enter a digraph, you can do so through the usual
method, pressing <c-k> and then entering the digraph shortcut (e.g.
`<c-k>OK` for ✓, or `<c-k>n?` for ñ) OR you simply double press
<c-k><c-k> which opens a quick telescope window to select the digraph
you want.
2022-03-08 10:06:01 +01:00
11c1383f01
nvim: Remove thesaurus mappings, Update spell map
Updated enabling spellchecker from <leader>Z to <leader>ZZ.
<leader>ZE and <leader>ZG for language specific checking stays the same
as before.

Removed some dangling mappings referring to thesaurus_query plugin which
has long been removed.
2022-03-08 09:59:49 +01:00
eb1dabc44f
nvim: Fix signcolumn jumping
When lsp or gitsigns would show me a symbol in the signcolumn the whole
editor page would jump ever so slightly to the right (one symbol, to be
precise).

This fixes it to show numbers in the signcolumn and just exchange number
for sign when something should be shown.
Makes numbers a little less readable but editing experience a whole lot
smoother.
2022-03-08 09:33:58 +01:00
a49e49bbd4
nvim: Change path copy mapping
Changed mapping to copy path from `yf` to `yp`/`yP`.
Two reasons: I might be better able to remember 'yank-path' when saying
it in my head as a mnemonic, and with the `yf` mapping set I could only
yank things *to* some letter `yt<letter>` not including some letter
`yf<letter>` and it has been very subtly annoying me ever since I
introduced the mapping.
Fixed now.

Also added two variations: `yp` will yank the whole path into the `p`
register, and `yP` will only yank the filename itself.
Here's to remembering the new mapping!
2022-03-07 22:05:45 +01:00
9a1efff30c
nvim: Fix vim-slime temp file, cmp float window
Fixed hidden file creation in home directory by vim-slime. It will now
rather ask nvim to create a temporary file using that as its paste
source.

Also disabled cmp completion in 'guihua' floating windows, as per the
recommendation for navigator.lua.
2022-03-07 21:58:37 +01:00
438547251a
nvim: Fix telescope grep
Fixed grepping for telescope to work again, and work with the native
'live_grep' function.

Replaced fzy extension with precompiled fzf since I have that installed
anyway.

Changed some theming around so I have a fast, minimal file switcher
instead of the big window by default. Can still call the big preview
window through the Telescope command if need be.
2022-02-13 20:07:21 +01:00
dee44417a6
nvim: Add json formatting, auto gather filetypes
Added json to be formatted by prettier like the other javascript-close
filetypes.

Switched the static list of filetypes to automatically format on save to
be replaced by automatically gathering all filetypes set up for
formatter.nvim since I want everything formatted anyway.
2022-02-13 20:05:39 +01:00
f1ec3c05f1
nvim: Add criticmarkup highlighting
Added simple plugin for some highlighting of criticmarkup.
Criticmarkup is a neat way of doing 'track-changes' in markdown. It's a
bit cumbersome to read just the way it is when there's a lot of changes
however and this plugin helps immensely with that.

There is also a github gist out there which helps using pandoc to turn
Microsoft Word tracked changes into criticmarkup formatted markdown.
Amazing to work with through vim instead of the annoying Office suites!
2022-02-11 20:33:38 +01:00
572fa471ae
nvim: Update zettelkasten mappings to new version
Updated mappings for zettelkasten navigation and zettel creation to work
with the changes introduced in its new update.
2022-01-28 10:17:26 +01:00
a322799f39
nvim: Add which-key.nvim key chord visualization
Finally added a which-key like extension.
This one is a lua implementation of the old Emacs idea, but comes with
pretty sane defaults and seems less difficult to set up.

So much so that, even out of the box, it seems somewhat useful by
containing explanations of default vim bindings and showing the target
for all mark jumps. (e.g. `g`` or `g'`).
2022-01-04 22:09:22 +01:00
8e6bd03576
nvim: Replace surround plugin for vim-sandwich
Finally made the switch from the lua surround plugin of my choice to
sandwich -- it provides sane defaults, needs little to no setup, and
comes with a pretty alright default mapping method:

`sa<object><something>` to add surroundings to object
`sr<oldsurround><newsurround>` to replace surroundings (including
`srb<new>` for automatically figuring out what to replace)
`sd<surround>` to delete existing.

Simple and efficient, should make the cut in my estimation.
2022-01-04 22:04:27 +01:00
788775bbee
nvim: Add oscyank to yank from anywhere
Added oscyank plugin which allows, through the `:OSCYank` command, to
put stuff into your local clipboard from *anywhere*, even through remote
ssh sessions and so on.
Requires a supported terminal emulator but honestly, most semi
well-known ones are on the list already.
2022-01-04 22:02:55 +01:00
d5cd91d107
nvim: Add experimental navigator lsp configurator 2022-01-03 18:11:23 +01:00
ff0ddb2b2d
nvim: Switch galaxyline for lualine
Recently, galaxyline created some troubles in the setup. Lualine is much
much easier to configure and, since I don't need some of the more
advanced features of galaxyline anyway, I can just use the simple setup
it offers.
If ever those features become necessary again I can presumably just
reintroduce them based on the old galaxyline setup that got removed in
this commit.
2022-01-03 17:45:04 +01:00
981c4cbf10
Add vim-slime and vim-ipython-cell
Added interactive python repl commands with two plugins:
Sending repl snippets over with vim-slime and interacting with python
(notebook-like) snippets in the editor with vim-ipython-cell.

Cells are simply demarcated by `## ` at the beginning of a line, though
they can have other syntaxes as well, e.g. `# %% `.

By default slime sends its commands over to the last used tmux pane so
it is easy to set up a split coding/repl-ing session.

Interaction mappings all center around <leader>c + another key.
You can send a simple cell with `<leader>cc` or `<leader>C`,
single lines or selections with `<leader>cs`.

You can switch between cells with `]c` `[c` and insert new ones
below/above existing ones with `<leader>co` `<leader>cO` respectively.
2021-12-15 17:43:07 +01:00
e64df2ec3d
nvim: Switch deprecated nvim-compe
Switched out the deprecated nvim-compe for nvim-cmp and re-added most of
the plugins that the earlier one supported.

The handling is very similar and it supports the same snippet engine
(vsnip in this case).
2021-12-15 17:42:23 +01:00
63074ae46b
nvim: Switch to compe compatible branches
Have to switch branches to compe compatible ones for now.
Must make the switch to `cmp` soon, but in the meantime ths is a quick
bandaid.
2021-12-04 11:24:28 +01:00
dcea74008b
vifm: Change vifm filename yanking mapping to yt 2021-11-23 09:52:21 +01:00
9fd0ab9b91
nvim: Remove ctrlsf and thesaurus_query
Removed the two plugins since I *never* used them in months.
Improved startup slightly by conditionally loading some filetype and
command plugins.
2021-11-16 12:09:47 +01:00
8a6cdcba8b
mpv: Use yt-dlp instead of youtube-dl
Switch to fork since it's more actively developed and contains some
additional features. Primarily switched since it had quite a bit better
subtitle stream handling than the original for quite a while.
2021-10-09 23:21:02 +02:00