{ pkgs, theme, vimwikiPath, ... }: { # symlink for a stable path home.file.".vscode-extensions/vscode-lldb".source = pkgs.vscode-extensions.vadimcn.vscode-lldb; programs = { neovim = { enable = true; package = pkgs.neovim-unwrapped; defaultEditor = true; plugins = with pkgs.vimPlugins; [ # theme nvim-solarized-lua # auto-close brackets, etc nvim-autopairs # better wildmenu wilder-nvim # undo-tree undotree # quickfix nvim-bqf # ui dressing-nvim # session handling project-nvim auto-session # escape handling better-escape-nvim nvim-treesitter.withAllGrammars nvim-treesitter-textobjects nvim-ts-context-commentstring markdown-preview-nvim # use({ "iamcco/markdown-preview.nvim", run = ":call mkdp#util#install()" }) toggleterm-nvim nvim-notify comment-nvim lualine-nvim tabline-nvim indent-blankline-nvim plenary-nvim vim-illuminate vim-surround neogen # git gitsigns-nvim vim-fugitive vim-flog git-blame-nvim nvim-web-devicons # used by diffview-nvim # snippets friendly-snippets luasnip # auto-completion nvim-cmp cmp-nvim-lsp cmp-buffer cmp-path cmp-cmdline cmp-nvim-lua cmp_luasnip cmp-calc cmp-nvim-lsp-signature-help # telescope telescope-nvim telescope-fzf-native-nvim telescope-ui-select-nvim # LSP nvim-lspconfig lsp-status-nvim rustaceanvim neodev-nvim none-ls-nvim lsp_lines-nvim lsp-inlayhints-nvim # debugging nvim-dap nvim-dap-ui # vim-wiki vimwiki ]; withNodeJs = true; extraPackages = with pkgs; [ # language servers lua-language-server terraform-ls tflint bash-language-server prettierd nodePackages.yaml-language-server nodePackages.eslint_d nodePackages.typescript-language-server nodePackages.typescript nodePackages.dockerfile-language-server-nodejs nodePackages.vscode-langservers-extracted vscode-extensions.vue.volar lldb vscode-extensions.vadimcn.vscode-lldb marksman clang-tools cmake-language-server texlab nixd nixpkgs-fmt bitbake-language-server (python3.withPackages (ps: with ps; [ pep8 autopep8 python-lsp-server ])) pyright #clipboard xclip #vimwiki vimwiki-markdown ]; extraLuaConfig = '' require("local_keymaps") require("local_options") require("local_commands") require("local_treesitter") require("local_lspconfig") require("local_auto-session") require("local_toggleterm") require("local_notify") require("local_comment") require("local_lualine") require("local_tabline") require("local_indent-blankline") require("local_gitsigns") require("local_luasnip") require("local_nvim-cmp") require("local_telescope") require("local_themes").setup("${theme}") require("local_project-nvim") require("local_dap") require("local_illuminate") require("local_wilder") require("local_vimwiki").setup("${vimwikiPath}") vim.g.gitblame_date_format = "%r" require("nvim-autopairs").setup({}) require("neogen").setup({ snippet_engine = "luasnip" }) ''; }; }; home.file.".config/nvim/lua/local_keymaps.lua".source = ./keymaps.lua; home.file.".config/nvim/lua/local_options.lua".source = ./options.lua; home.file.".config/nvim/lua/local_commands.lua".source = ./commands.lua; home.file.".config/nvim/lua/local_treesitter.lua".source = ./treesitter.lua; home.file.".config/nvim/lua/local_lspconfig.lua".source = ./lspconfig.lua; home.file.".config/nvim/lua/local_auto-session.lua".source = ./auto-session.lua; home.file.".config/nvim/lua/local_toggleterm.lua".source = ./toggleterm.lua; home.file.".config/nvim/lua/local_notify.lua".source = ./notify.lua; home.file.".config/nvim/lua/local_comment.lua".source = ./comment.lua; home.file.".config/nvim/lua/local_lualine.lua".source = ./lualine.lua; home.file.".config/nvim/lua/local_tabline.lua".source = ./tabline.lua; home.file.".config/nvim/lua/local_indent-blankline.lua".source = ./indent-blankline.lua; home.file.".config/nvim/lua/local_gitsigns.lua".source = ./gitsigns.lua; home.file.".config/nvim/lua/local_luasnip.lua".source = ./luasnip.lua; home.file.".config/nvim/lua/local_nvim-cmp.lua".source = ./nvim-cmp.lua; home.file.".config/nvim/lua/local_telescope.lua".source = ./telescope.lua; home.file.".config/nvim/lua/local_themes.lua".source = ./themes.lua; home.file.".config/nvim/lua/local_vimwiki.lua".source = ./vimwiki.lua; home.file.".config/nvim/lua/local_project-nvim.lua".source = ./project-nvim.lua; home.file.".config/nvim/lua/local_dap.lua".source = ./dap.lua; home.file.".config/nvim/lua/local_illuminate.lua".source = ./illuminate.lua; home.file.".config/nvim/lua/local_wilder.lua".source = ./wilder.lua; }