{ config, pkgs, lib, ... }: let psCfg = config.pub-solar; cfg = config.pub-solar.terminal-life; xdg = config.home-manager.users."${psCfg.user.name}".xdg; preview-file = pkgs.writeShellScriptBin "preview-file" (import ./preview-file.nix pkgs); in { enable = true; viAlias = true; vimAlias = true; vimdiffAlias = true; withNodeJs = true; withRuby = true; withPython3 = true; extraPackages = with pkgs; lib.mkIf (!cfg.lite) [ ansible-language-server ccls gopls nixd nodejs nodePackages.bash-language-server nodePackages.dockerfile-language-server-nodejs nodePackages.svelte-language-server nodePackages.typescript nodePackages.typescript-language-server nodePackages.vim-language-server nodePackages.vue-language-server nodePackages.vscode-langservers-extracted nodePackages.yaml-language-server python3Packages.python-lsp-server python3Full rust-analyzer solargraph terraform-ls universal-ctags ]; plugins = with pkgs.vimPlugins; [] ++ lib.optionals (!cfg.lite) [ (pkgs.vimPlugins.nvim-treesitter.withPlugins (p: [ p.nix p.markdown p.json p.json5 p.yaml p.html p.css p.scss p.typescript p.tsx p.javascript p.graphql p.vue p.rust p.go p.gomod p.gosum p.ruby p.python p.haskell p.c p.cpp p.vim p.vimdoc p.sql p.passwd p.gitcommit p.gitignore p.git_config p.gitattributes p.git_rebase p.dockerfile p.terraform ])) nvim-cmp cmp-nvim-lsp cmp_luasnip luasnip lsp_extensions-nvim nvim-lspconfig instant-nvim-nvfetcher # Search functionality behind :Ack ack-vim # The status bar in the bottom of the screen with the mode indication and file location vim-airline # Automatically load editorconfig files in repos to configure nvim settings editorconfig-vim # File browser. Use n to access nnn-vim # Highlight characters when using f, F, t, and T quick-scope # get sudo in vim; :SudaWrite suda-vim <<<<<<< Updated upstream vim-gutentags vim-vinegar ======= # undo history etc. per project >>>>>>> Stashed changes vim-workspace-nvfetcher # JSON schemas SchemaStore-nvim sonokai vim-hybrid-material vim-airline-themes vim-apprentice-nvfetcher fugitive vim-gitgutter vim-rhubarb vimagit-nvfetcher fzf-vim fzfWrapper vim-highlightedyank vim-beautify-nvfetcher vim-surround vim-bufkill vim-sensible emmet-vim vim-caddyfile-nvfetcher ]; extraConfig = builtins.concatStringsSep "\n" [ '' " Persistent undo set undofile set undodir=${xdg.cacheHome}/nvim/undo set backupdir=${xdg.dataHome}/nvim/backup set directory=${xdg.dataHome}/nvim/swap/ '' (builtins.readFile ./init.vim) (builtins.readFile ./plugins.vim) (builtins.readFile ./clipboard.vim) (builtins.readFile ./ui.vim) (builtins.readFile ./quickfixopenall.vim) (builtins.readFile ./lsp.vim) '' " fzf with file preview command! -bang -nargs=? -complete=dir Files \ call fzf#vim#files(, { 'options': ['--keep-right', '--cycle', '--layout', 'reverse', '--preview', '${preview-file}/bin/preview-file {}'] }, 0) '' ]; }