{ config, lib, pkgs, ... }: with lib; let cfg = config.modules.neovim; in { options.modules.neovim = { enable = mkOption { default = false; }; }; config = mkIf cfg.enable { programs = { neovim = let toLua = str: '' lua << EOF ${str} EOF ''; in { # https://www.youtube.com/watch?v=YZAnJ0rwREA enable = true; viAlias = true; vimAlias = true; # vimdiffAlias = true; plugins = with pkgs.vimPlugins; [ { plugin = dracula-nvim; config = "colorscheme dracula"; } { plugin = comment-nvim; config = toLua ''require("Comment").setup()''; } # nix file support vim-nix # Syntax highlighting (nvim-treesitter.withPlugins (p: [ p.tree-sitter-nix p.tree-sitter-vim p.tree-sitter-bash p.tree-sitter-lua p.tree-sitter-python p.tree-sitter-json p.tree-sitter-cpp p.tree-sitter-rust ])) ]; extraConfig = '' set clipboard=unnamedplus ''; extraLuaConfig = '' vim.o.termguicolors = true ''; }; }; }; }