# 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](https://git.janishutz.com/janishutz/dotfiles/)


### 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:
```json
{
  "workspace": {
    "library": [
      "/path/to/library"
    ]
  },
  "diagnostics": {
    "globals": ["any globals to add"]
  }
}
```

### 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
