# Neovim configuration for Nix { ... }: { home.sessionVariables = { EDITOR = "nvim"; }; programs.nixvim = { enable = true; clipboard.providers.wl-copy.enable = true; opts = { number = true; # Show line numbers relativenumber = true; # Show relative line numbers shiftwidth = 2; # Tab width should be 2 }; plugins = { bufferline.enable = true; # Formatters conform-nvim = { enable = true; # TODO use nix fmt on save settings = { }; }; lsp = { enable = true; servers = { nixd.enable = true; }; }; lualine.enable = true; luasnip.enable = true; # Completions cmp = { enable = true; autoEnableSources = true; # TODO complete on settings = { sources = [ { name = "nvim-lsp"; } { name = "path"; } { name = "buffer"; } ]; }; }; treesitter.enable = true; web-devicons.enable = true; }; }; }