local use_google = require("utils").use_google return { -- Pretty symbols 'kyazdani42/nvim-web-devicons', 'jghauser/mkdir.nvim', 'will133/vim-dirdiff', 'renerocksai/calendar-vim', 'google/vim-searchindex', -- 'apalmer1377/factorus', 'hrsh7th/vim-vsnip', 'kosayoda/nvim-lightbulb', 'tpope/vim-surround', 'ntpeters/vim-better-whitespace', 'junegunn/fzf.vim', 'nathanaelkane/vim-indent-guides', 'tversteeg/registers.nvim', 'jremmen/vim-ripgrep', 'nvim-lua/plenary.nvim', { 'preservim/nerdcommenter', init = function() require("config.nerdcommenter") end, keys = { { "c", ":call nerdcommenter#Comment(0, 'toggle')" }, { "c", ":call nerdcommenter#Comment(0, 'toggle')", mode='v' }, { "cS", ":call nerdcommenter#Comment(0, 'sexy')" }, { "cS", ":call nerdcommenter#Comment(0, 'sexy')", mode='v' }, { "c$", ":call nerdcommenter#Comment(0, 'ToEOL')" }, { "c$", ":call nerdcommenter#Comment(0, 'ToEOL')", mode='v' }, } }, { 'nvim-treesitter/nvim-treesitter', build = ':TSUpdate', config = function() require("config.nvim-treesitter") end, lazy = false, }, { "nvim-neo-tree/neo-tree.nvim", branch = "v2.x", config = function() require("config.neotree") end, dependencies = { "nvim-lua/plenary.nvim", "MunifTanjim/nui.nvim", }, keys = { { "", ":Neotree filesystem reveal toggle reveal_force_cwd", desc = "Open NeoTree" }, }, }, -- Undo tree { 'mbbill/undotree', cmd = 'UndotreeToggle', config = function() vim.g.undotree_SetFocusWhenToggle = 1 end }, { 'renerocksai/telekasten.nvim', config = function() require("config.telekasten") end, keys = { { "zf", ":lua require('telekasten').find_notes()", desc = "Find Notes" }, }, }, { 'ray-x/go.nvim',ft='go' }, { 'ray-x/guihua.lua',ft='go' }, "williamboman/mason.nvim", "williamboman/mason-lspconfig.nvim", 'nvim-lua/lsp-status.nvim', 'VonHeikemen/lsp-zero.nvim', -- Completion and linting { 'hrsh7th/nvim-cmp', event = "VimEnter", dependencies = { 'onsails/lspkind.nvim', 'neovim/nvim-lspconfig', 'hrsh7th/cmp-nvim-lsp', 'hrsh7th/cmp-buffer', 'lukas-reineke/cmp-under-comparator', 'hrsh7th/cmp-cmdline', 'f3fora/cmp-spell', 'hrsh7th/cmp-nvim-lsp-document-symbol', 'hrsh7th/cmp-nvim-lsp-signature-help', 'hrsh7th/cmp-nvim-lua', 'hrsh7th/cmp-path', 'hrsh7th/cmp-vsnip', 'ray-x/cmp-treesitter', }, config = function() require("config.lsp") end }, { "tzachar/cmp-tabnine", build = "./install.sh", event = 'InsertEnter', cond = not use_google(), }, { 'ErichDonGubler/lsp_lines.nvim', event = "VimEnter", keys = { { "l", function() require("lsp_lines").toggle() end, desc = "Toggle LSP Lines" }, }, }, { 'jose-elias-alvarez/null-ls.nvim', event = "VimEnter", config = function() require("config.null-ls") end }, { 'nvim-telescope/telescope.nvim', branch = '0.1.x', config = function() require("config.telescope") end, dependencies = { "telescope_codesearch", "telescope_citc", "telescope_fig", 'nvim-telescope/telescope-file-browser.nvim', }, keys = { { 'tb', ":Telescope file_buffers", desc = '[T]elescope [B]uffers' } , { 'tf', [[:lua require "telescope".extensions.file_browser.file_browser{}]], desc = '[T]elescope [F]iles' }, { 'th', [[:lua require('telescope.builtin').help_tags]], desc = '[T]elescope [H]elp' }, { 'tw', [[:lua require('telescope.builtin').grep_string]], desc = '[T]elescope current [W]ord' }, { 'tg', [[:lua require('telescope.builtin').live_grep]], desc = '[T]elescope by [G]rep' }, -- Google mappings { '', [[:lua require('telescope').extensions.codesearch.find_files{}]],'n', { noremap = true, silent=true }}, { '', [[:lua require('telescope').extensions.codesearch.find_query{}]], { noremap = true, silent = true }}, { 'cs', [[:lua require('telescope').extensions.codesearch.find_query{}]], { noremap = true, silent = true }}, { 'cs', [[:lua require('telescope').extensions.codesearch.find_query{}]], mode='v', { noremap = true, silent = true }}, { 'CS', [[:lua require('telescope').extensions.codesearch.find_query{default_text_expand=''}]], { noremap = true, silent = true } }, }, }, -- Rust { 'saecki/crates.nvim', ft = 'rust', version = 'v0.3.0', dependencies = { 'nvim-lua/plenary.nvim' }, config = function() require('crates').setup() end }, {'simrat39/rust-tools.nvim', ft = 'rust'}, { 'folke/trouble.nvim', event = "VimEnter", config = function() require("config.trouble") end, }, { 'ThePrimeagen/refactoring.nvim', dependencies = { {"nvim-lua/plenary.nvim"}, {"nvim-treesitter/nvim-treesitter"} }, config = function() require("config.refactoring") end, keys = { -- remap to open the Telescope refactoring menu in visual mode {"rr", "lua require('telescope').extensions.refactoring.refactors()", { noremap = true }}, -- Remaps for the refactoring operations currently offered by the plugin { "rx", [[ lua require('refactoring').refactor('Extract Function')]], mode ="v", {noremap = true, silent = true, expr = false}}, { "rxf", [[ lua require('refactoring').refactor('Extract Function To File')]],mode ="v", {noremap = true, silent = true, expr = false}}, { "rxv", [[ lua require('refactoring').refactor('Extract Variable')]], mode ="v" , {noremap = true, silent = true, expr = false}}, { "ri", [[ lua require('refactoring').refactor('Inline Variable')]], mode ="v", {noremap = true, silent = true, expr = false}}, -- Extract block doesn't need visual mode { "rxb", [[ lua require('refactoring').refactor('Extract Block')]], {noremap = true, silent = true, expr = false}}, { "rxbf", [[ lua require('refactoring').refactor('Extract Block To File')]], {noremap = true, silent = true, expr = false}}, -- Inline variable can also pick up the identifier currently under the cursor without visual mode { "ri", [[ lua require('refactoring').refactor('Inline Variable')]], {noremap = true, silent = true, expr = false}}, { "rx", [[ lua require('refactoring').refactor('Extract Variable')]], {noremap = true, silent = true, expr = false}}, } }, {'andymass/vim-matchup', event = 'VimEnter'}, { 'simrat39/symbols-outline.nvim', config = function() require("config.symbols-outline") end }, { 'petertriho/nvim-scrollbar', config = function() require("scrollbar").setup() end, lazy = false, }, { 'rmagatti/auto-session', config = function() require("auto-session").setup { log_level = "error", auto_session_suppress_dirs = { "~/", "~/Downloads", "/", os.getenv("HOME")}, } end }, { "ipod825/libp.nvim", config = function() require("libp").setup() end, }, { 'nvim-lualine/lualine.nvim', lazy = false, config = function() require("config.lualine") end }, { 'rcarriga/nvim-notify', config = function() require("config.notify") end }, { "catppuccin/nvim", name = "catppuccin", lazy = false, -- make sure we load this during startup if it is your main colorscheme priority = 1000, -- make sure to load this before all the other start plugins config = function() require("config.catppuccin") end }, { 'ojroques/nvim-osc52', config = function() require("config.oscyank") end }, -- mine { 'squk/java-syntax.vim', lazy = false, }, { "folke/which-key.nvim", config = function() require("config.whichkey") end }, { 'junegunn/fzf', build = ":call fzf#install()" }, { 'udalov/kotlin-vim', ft='kotin' }, { 'wesQ3/vim-windowswap', init = function() vim.g.windowswap_map_keys = 0 end, }, { 'vim-scripts/vcscommand.vim' }, { 'mhinz/vim-signify', config= function() require('config.signify') end }, { 'j-hui/fidget.nvim', init = function() require("fidget").setup() end }, { "iamcco/markdown-preview.nvim", build = "cd app && npm install", init = function() vim.g.mkdp_filetypes = { "markdown" } end, ft = { "markdown" } }, }