The init.lua config file handles the overall config loading code, and is
fairly simple in and of itself.
The lua directory contains all the detailed customizations for the setup.
The conf directory contains customizations that are largely unrelated to
plugins -- i.e. settings native to NeoVim, or does not require plugins to load.
(they might still need plugins to function).
The lib directory contains code usable in other bits of config and is not
sourced directly.
The local directory contains code that is used for configuration, but is not
intended to be saved to version control, e.g. recent colorscheme choices. A
default.lua is provided as a template. The actual script loaded is
local.lua.
The plugins directory contains plugin specs for lazy.nvim. They are mostly
organized by type, though some plugins have additional customizations and take
up a file by themselves.
The post directory contains setup instructions that must run after sourcing
all the other options above, e.g. certain plugin setups.
The after directory contains the ftplugin scripts for language specific
configurations.
The local directory contains runtime files that can be loaded but are not
saved to version control.
The snippets directory contians snippets in the "hrsh7th/vim-vsnip" format.
- Support for local LLM code generation
- Visual elements similar to other modern IDEs (tabs, tagline, mode indicators)
- Code diagnostics
- Locally available language documentation
- File explorer
- Git file history and Diff view
- Current file's per-line git change status
- Language Service Protocol integration
- Smart completion using LSP and other sources like local paths
- Improved movement
- Fancy notification framework
- Passive features like auto-pairing
- Saving and restoring sessions
- Quickly searching through various lists of items (files, lines, tags...)
- Pretty color schemes
- Language semantics-based parsing and highlighting via Treesitter
- Undo Tree
- Floating terminals and integrated floating apps
- Multiple-cursor support
- ...