{ config, pkgs, ... }: { home.packages = with pkgs.nodePackages; [ typescript-language-server ]; programs.neovim = { extraConfig = builtins.readFile ./config.vim; enable = true; defaultEditor = true; plugins = with pkgs.vimPlugins; let woof = pkgs.vimUtils.buildVimPlugin { name = "woof.vim"; src = builtins.fetchGit { url = "ssh://git@ktiu.net/home/git/woof.vim/"; ref = "main"; rev = "ea2ed3afb7c00a6b1672351e22195c0f8dd5d696"; }; }; in [ { plugin = woof; config = '' let maplocalleader="\\" let mapleader=" " ''; } cmp-nvim-lsp cmp-buffer cmp-emoji cmp-path cmp-cmdline cmp-nvim-ultisnips nvim-cmp { plugin = nvim-lspconfig; config = builtins.readFile ./lsp.vim; } { plugin = fzf-vim; config = '' nnoremap :Buffers imap (fzf-complete-path) nnoremap o :Files nnoremap O :Files ~/ nnoremap r :Read nnoremap R :Read ~/ nnoremap a :Ag nnoremap b :Buffers nnoremap . :Files ~/devel/omniflake/ command! -nargs=? -complete=dir Read call fzf#run( \fzf#wrap({'sink': 'read', 'dir': }) \) ''; } { plugin = goyo; config = '' nnoremap yog :Goyo nnoremap [og :Goyo 80 nnoremap ]og :Goyo! ''; } { plugin = limelight-vim; config = '' set termguicolors let g:limelight_conceal_ctermfg = 'darkgray' nnoremap yof :Limelight!! nnoremap [of :Limelight nnoremap ]of :Limelight! ''; } { plugin = nvim-colorizer-lua; config = "lua require 'colorizer'.setup()"; } { plugin = papercolor-theme; config = '' set background=light colorscheme PaperColor ''; } typescript-vim { plugin = ultisnips; config = '' nnoremap se :UltiSnipsEdit! ''; } vifm-vim { plugin = vim-astro; config = '' let g:astro_typescript = 'enable' ''; } vim-commentary { plugin = vim-easy-align; config = '' xmap ga (EasyAlign) nmap ga (EasyAlign) ''; } vim-fish vim-nix vim-repeat { plugin = vim-slime; config = '' let g:slime_target = "tmux" let g:slime_default_config = {"socket_name": get(split($TMUX, ","), 0), "target_pane": ":.1"} let g:slime_no_mappings = 1 let g:slime_dont_ask_default = 1 xmap s SlimeRegionSend nmap s SlimeMotionSend nmap ss SlimeLineSend nnoremap s: :SlimeSend1 " let g:slime_target = "neovim" " autocmd TermOpen * let g:slime_default_config = {"jobid": &channel} ''; } vim-snippets vim-speeddating vim-surround vim-unimpaired ]; }; xdg.configFile."nvim/autocommmands.vim".source = ./autocommands.vim; xdg.configFile."nvim/ftplugin/markdown.vim".source = ./ftplugin/markdown.vim; xdg.configFile."nvim/after/ftplugin/markdown.vim".source = ./after/ftplugin/markdown.vim; xdg.configFile."nvim/ftplugin/r.vim".source = ./ftplugin/r.vim; xdg.configFile."nvim/ftplugin/rmd.vim".source = ./ftplugin/rmd.vim; xdg.configFile."nvim/ftplugin/tex.vim".source = ./ftplugin/tex.vim; xdg.configFile."nvim/ftplugin/typescript.vim".source = ./ftplugin/typescript.vim; xdg.configFile."nvim/syntax/rmd.vim".source = ./syntax/rmd.vim; }