| - Improves slightly the wording of the documentation. Co-Authored-by: iGor milhit <igor@milhit.ch> | ||
|---|---|---|
| after/ftplugin | ||
| lua | ||
| my_snippets | ||
| .gitignore | ||
| README.md | ||
| init.lua | ||
| md.lua | ||
| minit.lua | ||
		
			
				
				README.md
			
		
		
			
			
		
	
	| title | date | id | tags | ||||
|---|---|---|---|---|---|---|---|
| My neovim setup | 2024-05-16T12:16:06+0200 | 20240516121606 | 
 | 
Neovim setup
This new configuration is written with the help of:
- kickstart.nvim. This is a good project to kickstart a configuration, but then it takes time to understand what it does, how to use it, and how to modify it.
- Tutoriel : configurer Neovim comme IDE/éditeur de code à partir de zéro. This blog post, in French, helped me a lot to understand better my configuration and to rewrite it.
Requirements
- Neovim > 0.10.
- Ripgrep.
- A nerd font.
- vscode-langservers-extracted. It's mandatory for the JSON LSP.
Python provider
I'm using a virtual environment for the python provider, as the
documentation, using pyenv.
Structure
- init.luais the configuration file, with the required includes.
- lua/is the folder where specific configuration and plugins are.
- lua/corecontains the basic configuration:- options.luawith the global neovim options.
- keymaps.luawith the global neovim key mappings.
 
- lua/configcontains the Lazy plugin manager installation and configuration.
- lua/pluginsof course contains all other plugins installation and configuration.
Plugins
I don't provide links for each of these plugins as they are easy to be found.
- lazy.nvimas plugin manager.
- plenaryto get lua functions used by many plugins.
- Adwaita for the colorscheme.
- which-key.nvimto find out keybindings.
- nvim-treeas file explorer.
- telescope.nvimfor the fuzzy finder interface. It has some specific dependencies:- telescope-fzf-native.nvimto get a C implementation of fzf, with improved performances.
- telescope-luasnip.nvimto search for snippets. LuaSnip is a dependency for- nvim-cmpwhich provides completion.
- telescope-agto use Ag or Ripgrep to filter results.
 
- nvim-web-deviconsas a dependency to add icons to the interface, when it is used (file explorer, fuzzy finder).
- treesitterfor language grammar support (with- treesitter-textobjectsas dependency, to improve bloc selection and navigation. It is deactivated for markdown.
- Markdown:
- vim-pandocand- vim-pandoc-syntaxto support the pandoc markdown, nice concealing, easy folding and hard wrap automatic formatting.
- mkdnflow.nvimto improve links navigation, table formatting, file creation, and so on. It improves also the link concealing.
- markdown-preview.nvimto provide a live HTML preview.
 
- Completion with nvim-cmpwith the following dependencies:- cmp-bufferto get text completion from the current buffer text.
- cmp-pathto get path completion.
- cmp-cmdlineto get vim cmdline completion.
- LuaSnipto get snippet expansion, with the nvim-cmp source for it:- cmp_luasnip.
- friendly-snippetswhich adds some user-friendly snippets.
- cmp-emojifor emoji completion after ':'.
- lspkind.nvimto add text symbols to spot the type of source completion.
 
- Language servers:
- lsp-zero.nvimto ease LSP configuration.
- nvim-lspconfigto configure LSP support and completion, with dependencies:- cmp-nvim-lspto get LSP results in completion.
- nvim-lsp-file-operationsto add some code actions.
- fidget.nvimfor LSP progress message and neovim notifications.
 
- mason.nvimwith- mason-lspconfig.nvimto install automatically the needed LSP. And also with- mason-tool-installerto extend it's package manager capabilities.
- schemastore.nvimwhich provides the schemas needed by JSON and YAML validators.
 
- trouble.nvimto display all trouble messages (LSP, diagnostics, etc.) in a pretty list.
- lazdev.nvimto improve- lua_lsconfiguration.
- vim-fugitive.
- gitsigns.nvimto see changes in the sign column.
- vim-speeddatingto increment dates, times, etc.
- vim-surroundto improve surroundings management.
- autopairs.nvim.
- Comment.nvimto comment lines and blocs.
- ident-blankline.nvimto improve readability of indentation.
- zen-mode.nvimfor a good zen mode.
- toggleterm.nvimto quickly get a terminal. Might find a better one.
- rainbow-csv.nvimto manage CSV files.
- venv-selector.nvimto ease python virtual env.
- vim-grammalecteto get a good grammar checker for French.
- Quarto:
- nvim-quartoto add quarto environment configuration.
- otterfor the embedded code completion.
- vim-slimefor the embedded code execution.