Files
nvim-config/README.md

28 lines
1.8 KiB
Markdown

# README
## Project structure
- `init.lua`: root config file, commonly used to manage the vim global variables.
- `lua/`: main code directory
- `config/`: main config directory, it is required inside the `<root>/init.lua`, therefore its name is arbitrary.
- `init.lua`: module definition file, simply exports the rest
- `lazy.lua`: initializes the `lazy.nvim` plugin manager
- `lsp.lua`: initializes every language server defined, this can be deleted if you decide to use a plugin such as `lsp-zero`, `lsp-config` or anything as such. Note: `lsp-config` is a plugin that is not a plugin, it simply provides a common `<root>/lsp/` definitions, pretty handy.
- `autocmds.lua`: organization module to define `autocmds` (event handlers).
- `remap.lua`: another organization module, this one is used to define key mappings. The name is arbitrary.
- `plugins/`: main plugin directory, files inside will be automatically read and are only required to return (export) a table with the plugins list.
- `opts/`: arbitrary name, just some plugin configs organized to avoid bloating the `plugins` files
- `lsp/`: language server definitions
### Language servers
This list is arbitrary and will depend on the current state of the lsp folder:
- `# pacman -S lua-language-server bash-language-server typescript-language-server vscode-html-language-server vscode-css-language-server pyright-langserver gopls astro-ls jdtls rust-analyzer solargraph vue-language-server vscode-json-languageserver`
- `$ yay -S jdtls ruby-solargraph`
- `# npm i -g emmet-language-server emmet-ls @astrojs/language-server`
## Relevant docs
- [LSP config](https://lsp-zero.netlify.app/blog/lsp-config-overview.html): the new nvim integration with LSP makes it unnecessary to rely on third party tools like `lsp-config` or `lsp-zero`.