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",
		}
	}
})

Neovim pack

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:

  • Colorscheme: catppuccin/nvim
  • File explorer: 🆕 stevearc/oil.nvim
  • File and fuzzy finder: 🆕 nvim-mini/mini.pick
  • Notifications: 🆕 nvim-mini/mini.notify
  • Quality of life:
  • nvim-mini/mini.pairs
  • Auto create pairs when you type {}, [], () etc.
  • folke/which-key.nvim
  • Shows a popup menu of keybindings when pressing leader.
  • folke/todo-comments.nvim
  • Highlights comments starting with TODO: WARNING: ERROR: etc.
  • Language support:
  • Easier installation of language servers and dependencies.
  • neovim/nvim-lspconfig
  • mason-org/mason.nvim
  • mason-org/mason-lspconfig.nvim
  • WhoIsSethDaniel/mason-tool-installer
  • folke/lazydev.nvim
  • nvim-treesitter/nvim-treesitter
  • Syntax highlighting.
  • Dependency: nvim-lua/plenary
  • Here is the up to date configuration if you want to see what it looks like right now.