{ pkgs, ... }: { programs.nixvim = { enable = true; #TODO floaterm # test tool plugins.neotest = { enable = true; }; # TODO nvim-lspconfig # a snippet engine plugins.luasnip = { enable = true; }; # TODO lsp_signature idk if it exists #plugins.lsp_signature = { # enable = true; #}; # TODO gen.nvim not in nixvim # highlites colors (like #FFF) plugins.nvim-colorizer = { enable = true; }; # todo-comments # TODO feline-nvim and theme for it # inline git blame plugins.gitsigns = { enable = true; settings = { current_line_blame = true; trouble = true; }; }; # inline error display plugins.trouble = { enable = true; }; #plugins.nvimtree.enable = true; # when adding " or any letter the selected word gets wrapped in it plugins.surround.enable = true; # file explorer plugins.chadtree = { enable = true; }; # a cool summary searcher plugins.navbuddy.enable = true; # language server plugins.lsp = { enable = true; servers.rust-analyzer = { enable = false; # for devshells installRustc = false; installCargo = false; }; }; # a completion engine using LSP # TODO language detection plugins.coq-nvim = { enable = true; installArtifacts = true; settings.completion.always = true; # TODO start with nvim }; # languages plugins.rustaceanvim.enable = true; plugins.nix.enable = true; keymaps = [ { key = "v"; action = "CHADopen --always-focus"; } { key = "e"; action = "CHADopen"; } ]; opts = { number = true; relativenumber = true; }; globals.mapleader = " "; # TODO shades of purple colorscheme extraPlugins = [ pkgs.vimPlugins.gruvbox ]; colorscheme = "gruvbox"; # extraPlugins = [ # pkgs.vimUtils.buildVimPlugin # { # pname = "shades-of-purple"; # version = "1.1.1"; # src = pkgs.fetchFromGitHub { # owner = "Rigellute"; # repo = "shades-of-purple.vim"; # rev = "e806d38190a6a2e8b9244824c2953d6567f141f3"; # hash = "sha256-iiGASgVlIXnnUNBlp9viKgDBfHiOP5P/yJx9XyELT9g="; # }; # buildScript = ":"; # } # ]; }; }