- Updates the treesitter configruation according to the API documentation. - Adds XML to the treesitter configuration. - Updates the mkdnflow configuration according to the documentation. - Forces the filetype of *.md files before mkdnflow is loaded. 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 not using virtual environment for the python provider, as the
documentation explain, installating pynvim through uv.
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 fornvim-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 (withtreesitter-textobjectsas dependency, to improve bloc selection and navigation. It is deactivated for markdown.- Markdown:
vim-pandocandvim-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:
nvim-lspconfigto configure LSP support and completion, with dependencies:cmp-nvim-lspto get LSP results in completion.fidget.nvimfor LSP progress message and neovim notifications.
mason.nvimwithmason-lspconfig.nvimto install automatically the needed LSP. And also withmason-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 improvelua_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.