This is my personal Neovim config. I primarily use it for note taking in markdown and programming course work at university, so configured language support changes/expands pretty frequently
| Plugin | Purpose | Config File |
|---|---|---|
| blink.cmp | Autocompletion | blink.lua |
| catppuccin/nvim | Colour scheme | catppuccin.lua |
| conform.nvim | Code formatting | conform.lua |
| nvim-dap | Debugging | dap.lua |
| gitsigns.nvim | Visualize git changes | gitsigns.lua |
| lazydev.nvim | LuaLS setup for nvim config | lazydev.lua |
| lazy.nvim | Plugin manager | lazy.lua |
| markdown-preview.nvim | Live markdown rendering (for previewing) | markdown-preview.lua |
| mini-files | File browser | mini-files.lua |
| mini-surround | Fast addition of surrounding characters ((), "", etc.) |
mini-surround.lua |
| noice.nvim | Nicer cmdline | noice.lua |
| render-markdown.nvim | Nice markdown highlighting | render-markdown.lua |
| rustowl | Rust lifetimes visualization | rustowl.lua |
| smart-splits.nvim | Seamless integration between neovim and multiplexer splits | smart-splits.lua |
| smear-cursor.nvim | Cursor animation (for easier visual tracking) | smear-cursor.lua |
| snacks.nvim | Fuzzy finder, nice notifications, and other QoL features | snacks.lua |
| todo-comments.nvim | Mark todo, note, etc. comments | todo-comments.lua |
| nvim-treesitter | Code parsing for syntax highlighting, more complex text objects, etc. | treesitter.lua |
| trouble.nvim | Diagnostics, todo comments, etc. list | trouble.lua |
| ultimate-autopair.nvim | Autopair surrounding characters ((), "", etc.) |
ultimate-autopair.lua |
| vim-table-mode | Auto format tables in markdown | vim-table-mode.lua |
| witch-line | Statusline | witch-line.lua |
-
Install via system package manager
-
LSP:
- luals (lua)
- basedpyright (python)
- clangd (c/c++)
- sourcekit (swift)
- marksman (markdown)
- hls (haskell)
- rust-analyzer (rust)
-
DAP:
- lldb (c/c++)
-
Formatters:
- stylua (lua)
- ruff_format (python)
- ruff_fix (python)
- ruff_organize_imports (python)
- rustfmt (rust)
- clang_format (c/c++/java)
- jq (json)
- deno_fmt (markdown)
- cbfmt (markdown)
- prettier (html/css/js)
-
Other:
- curl
- git
- tree-sitter
- node
- ripgrep
- rd
