From 37f058983388ea32139edb3a873943b4b7519266 Mon Sep 17 00:00:00 2001 From: wholteza Date: Sun, 15 Mar 2026 09:21:04 +0100 Subject: [PATCH] nvim 0.12 --- .../10-neovim-0.12-configuration/note.md | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/notes/10-neovim-0.12-configuration/note.md diff --git a/src/notes/10-neovim-0.12-configuration/note.md b/src/notes/10-neovim-0.12-configuration/note.md new file mode 100644 index 0000000..bcde5ce --- /dev/null +++ b/src/notes/10-neovim-0.12-configuration/note.md @@ -0,0 +1,48 @@ +# Neovim 0.12 Configuration + +In neovim's 0.12 nightly release an official package manager was added. This means that we no longer need to rely on third party software to bootstrap our configuration. + +The syntax is similar in the way that we previously specified src and name in Lazy, but setup of the package has to be done separately. At least for now. I have never done it in that way since i started using neovim when Lazy was already the go to package manager so it's going to be interesting to see how it affects my configuration structure. + +```lua +vim.pack.add({ + 'https://github.com/folke/todo-comments.nvim', +}) + +require('todo-comments').setup({ + keywords = { + SECTION = { + icon = "󰚟 ", + color = "hint", + } + } +}) + +``` +[vim.pack.add()](https://neovim.io/doc/user/pack/#vim.pack.add()) + +I wiped my current 0.11 configuration and started fresh with this new package manger. I try to keep it lean to reduce startup time, but i do work in a couple of different environments so language support is vital. [This is what i ended up with so far](https://git.zacke.dev/wholteza/dotfiles/src/commit/2b2ce07edc5e8eb5b9e4cffc234abe4cdc8512f6/.config/nvim/init.lua): + +- Colorscheme: [catppuccin/nvim](https://github.com/catppuccin/nvim) +- File explorer: 🆕[stevearc/oil.nvim](https://github.com/stevearc/oil.nvim) +- File and fuzzy finder: 🆕[nvim-mini/mini.pick](https://github.com/nvim-mini/mini.pick) +- Notifications: 🆕[nvim-mini/mini.notify](https://github.com/nvim-mini/mini.notify) +- Quality of life: + - [nvim-mini/mini.pairs](https://github.com/nvim-mini/mini.pairs) + - Auto create pairs when you type {}, [], () etc. + - [folke/which-key.nvim](https://github.com/folke/which-key.nvim) + - Shows a popup menu of keybindings when pressing leader. + - [folke/todo-comments.nvim](https://github.com/folke/todo-comments.nvim) + - Highlights comments starting with TODO: WARNING: ERROR: etc. +- Language support: + - Easier installation of language servers and dependencies. + - [neovim/nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) + - [mason-org/mason.nvim](https://github.com/mason-org/mason.nvim) + - [mason-org/mason-lspconfig.nvim](https://github.com/mason-org/mason-lspconfig.nvim) + - [WhoIsSethDaniel/mason-tool-installer](https://github.com/WhoIsSethDaniel/mason-tool-installer.nvim) + - [folke/lazydev.nvim](https://github.com/folke/lazydev.nvim) + - [nvim-treesitter/nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) + - Syntax highlighting. + - Dependency: [nvim-lua/plenary](https://github.com/nvim-lua/plenary.nvim) + +[Here](https://git.zacke.dev/wholteza/dotfiles/src/branch/main/.config/nvim/init.lua) is the up to date configuration if you want to see what it looks like right now.