NeoVim Configs
This repository contains my NeoVim configs, including some of my snippets.
It uses:
- Lazy.nvim as the plugin manager
- NeoVim's built-in LSP support, with lspconfig for the language server configuration
- none-ls for formatters
- Snacks.nvim for search, file explorer and more
- blink.cmp for completions and snippets
- Nightfox theme, with customized colours
- TODO comment highlighting
- Debugger support (through nvim-dap)
- Neotest integrated for a few languages
- tree-sitter for syntax highlighting Partially documented and fairly well organized
Usage notes
Linter configs
You may find the linter configs and setup-scripts for some linters that require some extra setup here
Luarocks
To get your luarocks packages to be picked up by the language server, it is currently configured to only look at the cwd that nvim is open in,
unless you add a .luarc.json file with the following content:
{
"workspace": {
"library": [
"/path/to/library"
]
},
"diagnostics": {
"globals": ["any globals to add"]
}
}
Clangd
If clangd can't find some headers, then you need to create a compile_commands.json file.
When a Makefile is present (or other build tools such as cmake are used, look up how to do that online), you can use bear as follows to create this file:
bear -- make. That's it
Java
jdtls
Ensure you have jdk21-opnejdk or newer installed. On Arch (and derivatives) you can switch the preferred java version using archlinux-java set <version name>
Missing Deps
The pom.xml file in this repo makes maven download junit.
If you need that, copy the file to the root of your project, then run mvn dependency:resolve to download the dependencies