- Clone this repository under
~/.config.
- General settings are written in set.lua.
- Keymap settings (that doesn't involve plugins) are written in keymap.lua
I use lazy.nvim to manage plugins.
General package settings are written in lazy.lua.
Detailed settings for each package are written in after/plugin/*.lua.
I use:
- iceberg as colorscheme
- neo-tree for tree view of files and directories
- telescope as fuzzy finder
- ripgrep is required for full functionality
- telescope-project to switch between projects
- telescope-frecency for sorting files with "frecency"
- treesitter for syntax parsing (which is helpful for semantic highlighting, selection, etc.)
- Comment for commenting
- nvim-autopairs for bracket completion
- LuaSnip for snippets (See below for more info)
- mason, mason-lspconfig, nvim-lspconfig for language server (See below for more info)
- copilot to use Github Copilot
- Subscription to copilot and node.js are needed
To add a package:
- add configurations to
lua/cromz22/lazy.lua - create
after/plugin/package-name-or-whatever.luaand write detailed settings there if needed
Type :Lazy home to manage installed packages.
I use LuaSnip for snippets.
To add one:
- create file
snippets/language-name.lualanguage-namehas to match with filetype (:set filetype?)
- add snippet there
To use language servers, nvim-lspconfig is required.
To manage language servers, linter, and formatter, I use mason.
mason-lspconfig closes some gaps between the two.
Make sure npm can be used so that pyright and bash-language-server can be used.
I use:
-
Python
-
Lua
- language server (and linter): lua-language-server
- formatter: stylua
-
Bash
- language server: bash-language-server aka bashls
-
Rust
- language server: rust_analyzer
To add one:
- install one through mason (
:Mason) - add LSP server to
serversvariable inafter/plugin/lsp.lua - add formatter to
FormatCodefunctionafter/plugin/lsp.lua
cf.