{ pkgs, config, ... }@inputs: { programs.neovim = { enable = true; vimdiffAlias = true; withNodeJs = true; plugins = with pkgs.vimPlugins; [ { plugin = coc-nvim; config = '' nmap (coc-rename) inoremap pumvisible() ? "\" : "\" inoremap pumvisible() ? "\" : "\" " Remap and for scroll float windows/popups. if has('nvim-0.4.0') || has('patch-8.2.0750') nnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" nnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" inoremap coc#float#has_scroll() ? "\=coc#float#scroll(1)\" : "\" inoremap coc#float#has_scroll() ? "\=coc#float#scroll(0)\" : "\" vnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" vnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" endif ''; } fzf-vim { plugin = iceberg-vim; config = "colorscheme iceberg"; } { plugin = nvim-dap; config = '' lua < :lua require'dap'.continue() nnoremap :lua require'dap'.step_over() nnoremap :lua require'dap'.step_into() nnoremap :lua require'dap'.step_out() nnoremap b :lua require'dap'.toggle_breakpoint() nnoremap B :lua require'dap'.set_breakpoint(vim.fn.input('Breakpoint condition: ')) nnoremap lp :lua require'dap'.set_breakpoint(nil, nil, vim.fn.input('Log point message: ')) nnoremap dr :lua require'dap'.repl.open() nnoremap dl :lua require'dap'.run_last() ''; } { plugin = nvim-dap-ui; config = "lua require('dapui').setup()"; } vim-sleuth vim-nix pkgs.go-fold-if-err-nil coc-json coc-emmet coc-go coc-html coc-rust-analyzer coc-pyright coc-tsserver coc-clangd neoformat undotree { plugin = vim-jsdoc; config = '' let g:jsdoc_formatter = "tsdoc" let g:typescript_indent_disable = 1 ''; } ]; extraConfig = '' set background=dark set termguicolors set ic set number set autoindent set completeopt=menuone,noinsert,noselect set shortmess+=c ''; coc.enable = true; coc.settings = { text = { "coc.preferences.formatOnSaveFiletypes" = [ "css" "markdown" "javascript" "typescript" ]; "prettier.useTabs" = true; "rust-analyzer.server.path" = "${pkgs.fenix.rust-analyzer}"; "rust-analyzer.updates.prompt" = false; "rust-analyzer.updates.checkOnStartup" = false; "rust-analyzer.cargo.loadOutDirsFromCheck" = true; "rust-analyzer.procMacro.enable" = true; "clangd.checkUpdates" = false; "clangd.path" = "clangd"; "svelte.plugin.svelte.format.enable" = false; "languageserver" = { "nix" = { "command" = "${pkgs.rnix-lsp}/bin/rnix-lsp"; "filetypes" = [ "nix" ]; }; }; }; }; }; }