- 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.lua
and 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.lua
language-name
has 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
servers
variable inafter/plugin/lsp.lua
- add formatter to
FormatCode
functionafter/plugin/lsp.lua
cf.