{ pkgs, lib, inputs, ... }: let inherit (builtins) readFile; in { config.home-manager.users.moritz.programs.neovim.lazy.plugins = [ { plugin = pkgs.vimPlugins.oil-nvim; lazy = false; opts = { }; dependencies = [{ plugin = pkgs.vimPlugins.nvim-web-devicons; }]; } { plugin = pkgs.vimPlugins.lualine-nvim; opts = { }; dependencies = [{ plugin = pkgs.vimPlugins.nvim-web-devicons; }]; } { plugin = pkgs.vimPlugins.mini-nvim; lazy = false; conf = readFile ./lua/mini-nvim.lua; } { plugin = pkgs.vimPlugins.nvim-cmp; keys = [ { key = "tc"; cmd = "CmpToggle"; desc = "Toggle Cmp sources"; } ]; conf = readFile ./lua/nvim-cmp.lua; event = [ "InsertEnter" ]; dependencies = [ { plugin = pkgs.vimPlugins.nvim-autopairs; opts = { }; } { plugin = pkgs.vimPlugins.cmp-async-path; } { plugin = pkgs.vimPlugins.cmp-buffer; } { plugin = pkgs.vimPlugins.cmp-cmdline; } { plugin = pkgs.vimPlugins.cmp-nvim-lsp; } { plugin = pkgs.vimPlugins.cmp_luasnip; } { plugin = pkgs.vimPlugins.cmp-spell; } { plugin = pkgs.vimPlugins.cmp-nvim-lsp-signature-help; } { plugin = pkgs.vimPlugins.copilot-cmp; opts = { }; dependencies = [ { plugin = pkgs.vimPlugins.copilot-lua; opts = { suggestion = { enabled = false; }; panel = { enabled = false; }; }; conf = /* lua */ '' require("copilot").setup(opts) vim.cmd("Copilot disable") ''; } ]; } { plugin = pkgs.vimPlugins.friendly-snippets; } { plugin = pkgs.vimPlugins.lspkind-nvim; } { plugin = pkgs.vimPlugins.luasnip; conf = readFile ./lua/luasnip.lua; } ]; } { plugin = pkgs.vimPlugins.direnv-vim; lazy = false; } { plugin = pkgs.vimPlugins.nvim-lspconfig.overrideAttrs (_: { version = lib.my.mkVersionInput inputs.nvim-lspconfig; src = inputs.nvim-lspconfig; }); event = [ "BufRead" "BufNewFile" ]; conf = readFile ./lua/nvim-lspconfig.lua; dependencies = [ { # TODO: add all required tools to neovim or silence warnings plugin = pkgs.vimPlugins.none-ls-nvim; conf = readFile ./lua/null-ls-nvim.lua; dependencies = [ { plugin = pkgs.vimUtils.buildVimPlugin { pname = "none-ls-shellcheck.nvim"; version = lib.my.mkVersionInput inputs.none-ls-shellcheck-nvim; src = inputs.none-ls-shellcheck-nvim; }; } ]; } { plugin = pkgs.vimPlugins.lsp_lines-nvim; } { plugin = pkgs.vimPlugins.inc-rename-nvim; opts = { input_buffer_type = "dressing"; }; dependencies = [ { plugin = pkgs.vimPlugins.dressing-nvim; } ]; } { plugin = pkgs.vimUtils.buildVimPlugin { pname = "actions-preview-nvim"; version = lib.my.mkVersionInput inputs.actions-preview-nvim; src = inputs.actions-preview-nvim; }; } ]; } { plugin = pkgs.vimPlugins.vim-fugitive; cmd = [ "G" "Git" "Ggrep" "Glgrep" "Gclog" "Gllog" "Gcd" "Glcd" "Gedit" "Gsplit" "Gvsplit" "Gtabedit" "Gpedit" "Gdrop" "Gread" "Gwrite" "Gwq" "Gdiffsplit" "Gvdiffsplit" "GMove" "GRename" "GDelete" "GBrowse" ]; keys = [ { key = "gg"; cmd = "Gedit :"; desc = "Open Status"; } ]; } { plugin = pkgs.vimPlugins.vim-tmux-navigator; event = [ "VeryLazy" ]; } { plugin = pkgs.vimPlugins.nvim-lastplace; event = [ "BufReadPost" "BufNewFile" ]; opts = { lastplace_ignore_buftype = [ "quickfix" "nofile" "help" ]; lastplace_ignore_filetype = [ "gitcommit" "gitrebase" "svn" "hgcommit" ]; lastplace_open_folds = true; }; } { plugin = pkgs.vimPlugins.telescope-nvim; cmd = [ "Telescope" ]; conf = builtins.readFile ./lua/telescope.lua; keys = [ { key = "ff"; cmd = "Telescope find_files"; desc = "Find files"; } { key = "fb"; cmd = "Telescope buffers"; desc = "Find buffers"; } { key = "fl"; cmd = "Telescope current_buffer_fuzzy_find"; desc = "Search lines"; } { key = "fl"; cmd = "y:Telescope current_buffer_fuzzy_find default_text=0"; desc = "Search lines (selection)"; mode = [ "v" ]; } { key = "fg"; cmd = "Telescope live_grep"; desc = "Live grep"; } { key = "fg"; cmd = "y:Telescope live_grep default_text=0"; desc = "Live grep (selection)"; mode = [ "v" ]; } { key = "fh"; cmd = "Telescope help_tags"; desc = "Help tags"; } { key = "fr"; cmd = "Telescope oldfiles"; desc = "Recent files"; } ]; dependencies = [ { plugin = pkgs.vimPlugins.plenary-nvim; } { plugin = pkgs.vimPlugins.telescope-fzf-native-nvim; } ]; } { plugin = pkgs.vimPlugins.vim-startuptime; cmd = [ "StartupTime" ]; conf = readFile ./lua/vim-startuptime.lua; } { plugin = pkgs.vimPlugins.typst-vim; ft = [ "typst" "typ" ]; } { plugin = pkgs.vimPlugins.comment-nvim; event = [ "BufReadPost" "BufNewFile" ]; opts = { }; } { plugin = pkgs.vimPlugins.nvim-surround; event = [ "BufReadPost" "BufNewFile" ]; opts = { }; } { plugin = pkgs.vimPlugins.conform-nvim; keys = [ { key = "="; cmd = "lua require('conform').format()"; desc = "format buffer"; mode = [ "n" "v" ]; } ]; cmd = [ "ConformInfo" "Format" ]; conf = readFile ./lua/conform.lua; } ]; }