{ config, pkgs, lib, ... }: let cfg = config.feature.vim; in { options.feature.vim = { enable = lib.mkEnableOption "Set up neovim"; }; config = lib.mkIf cfg.enable { home.packages = with pkgs; [ nil pyright rust-analyzer ]; programs.neovim = { defaultEditor = true; enable = true; viAlias = true; vimAlias = true; vimdiffAlias = true; plugins = with pkgs.vimPlugins; [ bufferline-nvim catppuccin-nvim lualine-nvim nvim-lspconfig telescope-nvim nvim-web-devicons ]; extraLuaConfig = builtins.readFile ./init.lua; }; }; }