{ pkgs, ... }: with builtins; { config.my.programs.nvim.plugins = with pkgs.vimPlugins; [ { plugin = which-key-nvim; conf = readFile ./which-key-nvim.lua; } { plugin = catppuccin-nvim; conf = readFile ./catppuccin-nvim.lua; priority = 99; } { plugin = formatter-nvim; lazy = true; keys = [ { key = "="; cmd = "Format"; desc = "format (formatter)"; } ]; conf = readFile ./formatter-nvim.lua; dependencies = [{ plugin = which-key-nvim; lazy = true; }]; } { plugin = oil-nvim; conf = readFile ./oil-nvim.lua; dependencies = [ { plugin = which-key-nvim; lazy = true; } { plugin = nvim-web-devicons; lazy = true; } ]; } { plugin = mini-nvim; conf = readFile ./mini-nvim.lua; } { plugin = noice-nvim; conf = readFile ./noice-nvim.lua; dependencies = [{ plugin = nui-nvim; lazy = true; }]; } { plugin = trouble-nvim; lazy = true; keys = [ { key = "xx"; cmd = "TroubleToggle document_diagnostics"; desc = "Document Diagnostics (Trouble)"; } { key = "xX"; cmd = "TroubleToggle workspace_diagnostics"; desc = "Workspace Diagnostics (Troule)"; } { key = "xl"; cmd = "TroubleToggle loclist"; desc = "Location List (Trouble)"; } { key = "xq"; cmd = "TroubleToggle quickfix"; desc = "Quickfix List (Trouble)"; } { key = "xt"; cmd = "TodoTrouble"; desc = "Todo (Trouble)"; } { key = "xT"; cmd = "TodoTrouble keywords=TODO,FIX,FIXME"; desc = "Todo/Fix/Fixme (Trouble)"; } { key = "st"; cmd = "TodoTelescope"; desc = "Todo"; } { key = "[q"; func = ''function() if require("trouble").is_open() then require("trouble").previous({ skip_groups = true, jump = true }) else vim.cmd.cprev() end end''; desc = "Previous trouble/quickfix item"; } { key = "]q"; func = ''function() if require("trouble").is_open() then require("trouble").next({ skip_groups = true, jump = true }) else vim.cmd.cnext() end end''; desc = "Next trouble/quickfix item"; } ]; conf = readFile ./trouble-nvim.lua; dependencies = [ { plugin = which-key-nvim; } { plugin = nvim-web-devicons; lazy = true; } ]; } { plugin = nvim-cmp; conf = readFile ./nvim-cmp.lua; lazy = true; event = [ "InsertEnter" ]; dependencies = [ { plugin = cmp-async-path; } { plugin = cmp-nvim-lsp; } { plugin = cmp_luasnip; } { plugin = copilot-cmp; dependencies = [ { plugin = copilot-lua; conf = readFile ./copilot-lua.lua; dependencies = [{ plugin = which-key-nvim; }]; } ]; } { plugin = friendly-snippets; } { plugin = luasnip; lazy = true; } ]; } { plugin = todo-comments-nvim; lazy = true; event = [ "BufReadPost" "BufNewFile" ]; conf = readFile ./todo-comments-nvim.lua; dependencies = [{ plugin = plenary-nvim; lazy = true; }]; } { plugin = direnv-vim; } { plugin = nvim-treesitter.withAllGrammars; lazy = true; event = [ "BufReadPost" "BufNewFile" ]; conf = readFile ./nvim-treesitter.lua; dependencies = [ { plugin = orgmode; lazy = true; conf = readFile ./orgmode.lua; } ]; } { plugin = nvim-lspconfig; lazy = true; event = [ "BufReadPre" "BufNewFile" ]; conf = readFile ./nvim-lspconfig.lua; dependencies = [ { plugin = null-ls-nvim; lazy = true; conf = readFile ./null-ls-nvim.lua; dependencies = [ { plugin = which-key-nvim; lazy = true; } { plugin = plenary-nvim; lazy = true; } ]; } { plugin = which-key-nvim; lazy = true; } { plugin = lspkind-nvim; lazy = true; } { plugin = lsp_lines-nvim; lazy = true; } { plugin = lspsaga-nvim-original; lazy = true; dependencies = [ { plugin = nvim-web-devicons; lazy = true; } { plugin = nvim-treesitter.withAllGrammars; lazy = true; } ]; } { plugin = nvim-ufo; lazy = true; dependencies = [ { plugin = promise-async; lazy = true; } ]; } ]; } { event = [ "VeryLazy" ]; lazy = true; plugin = vim-fugitive; } { plugin = vim-tmux-navigator; } { plugin = gitsigns-nvim; lazy = true; event = [ "BufReadPost" "BufNewFile" ]; conf = readFile ./gitsigns-nvim.lua; dependencies = [{ plugin = which-key-nvim; }]; } { plugin = nvim-lastplace; lazy = true; event = [ "BufReadPost" "BufNewFile" ]; conf = readFile ./nvim-lastplace.lua; } { plugin = nvim-treesitter-textsubjects; lazy = true; event = [ "BufReadPost" "BufNewFile" ]; conf = readFile ./nvim-treesitter-textsubjects.lua; dependencies = [ { plugin = nvim-treesitter.withAllGrammars; lazy = true; } ]; } { plugin = nvim-ts-context-commentstring; lazy = true; event = [ "BufReadPost" "BufNewFile" ]; conf = readFile ./nvim-ts-context-commentstring.lua; dependencies = [ { plugin = nvim-treesitter.withAllGrammars; lazy = true; } ]; } { plugin = smartcolumn-nvim; lazy = true; event = [ "BufReadPost" "BufNewFile" ]; conf = readFile ./smartcolumn-nvim.lua; } { plugin = telescope-fzf-native-nvim; conf = readFile ./telescope-fzf-native-nvim.lua; lazy = true; keys = [ { key = "ff"; cmd = "Telescope find_files"; desc = "Find files"; } { key = "fb"; cmd = "Telescope buffers"; desc = "Find buffers"; } { key = "fr"; cmd = "Telescope oldfiles"; desc = "Find recent files"; } { key = "sl"; cmd = "Telescope current_buffer_fuzzy_find"; desc = "Search lines"; } { key = "sg"; cmd = "Telescope live_grep"; desc = "Live grep"; } { key = "sc"; cmd = "Telescope command_history"; desc = "Command history"; } { key = "sC"; cmd = "Telescope commands"; desc = "Commands"; } { key = "sd"; cmd = "Telescope diagnostics"; desc = "Diagnostics"; } { key = "sh"; cmd = "Telescope help_tags"; desc = "Help tags"; } { key = "sk"; cmd = "Telescope keymaps"; desc = "Keymaps"; } { key = "ss"; cmd = "Telescope lsp_document_symbols"; desc = "Symbols (Document)"; } { key = "sS"; cmd = "Telescope lsp_workspace_symbols"; desc = "Symbols (Workspace)"; } { key = "gc"; cmd = "Telescope git_commits"; desc = "Commits"; } { key = "gs"; cmd = "Telescope git_status"; desc = "Status"; } ]; dependencies = [ { plugin = telescope-nvim; lazy = true; dependencies = [ { plugin = plenary-nvim; lazy = true; } { plugin = which-key-nvim; lazy = true; } ]; } ]; } ]; }