This project uses mise to manage tool versions and run tasks.
Install mise, then from the neovim/ directory:
mise install # install pinned tool versions
mise run fmt # format Lua files with StyLua
mise run fmt-check # check formatting without modifying files
mise run lint # lint Lua files with luacheck
mise run smoke # headless Neovim startup smoke testSee neovim/README.md for full details including the plugin lockfile workflow.
My attempt at a minimal Neovim configuration. Intended to keep keybindings as 'standard' as possible to keep everything aligned with the VS Code and IntelliJ Vim plugins, but be usable for productive scripting.
New and noteworthy:
- Don't use tabline. I find listing open buffers as fake 'tabs' to be
confusing, so I don't bother with it. I just use
fzfandCtrl-Oto rapidly switch between buffers. - Use a hand-written statusline. It's easy to do, so I built one tailored exactly to my own needs.
- Use the new Neovim winbar. I put the filename and a file-specific LSP diagnostic indicator on the top-right, so I can see the health of the current file (as opposed to workspace) in the top-right corner of each window.
- Expose LSP CodeLenses with signs and virtual text. Note that this relies on overriding Lua functions in the Neovim LSP implementation and hence may be brittle; but it works for me at this time.
Warning
BUGS: certain aspects of this configuration have degraded over time. Telescope -- never a completely stable thing -- is doing numerous strange things with keyboard handling. Markdown editing, too, has gotten notably more buggy lately. Indentation of bullets, especially, needs to be tested and debugged.