local use_google = require("utils").use_google local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not vim.loop.fs_stat(lazypath) then vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", -- latest stable release lazypath, }) end vim.opt.rtp:prepend(lazypath) -- Example using a list of specs with the default options vim.g.mapleader = "," -- Make sure to set `mapleader` before lazy so your mappings are correct vim.g.windowswap_map_keys = 0 -- require('lspconfig') require("lazy").setup({ "folke/which-key.nvim", { "folke/neoconf.nvim", cmd = "Neoconf" }, "folke/neodev.nvim", 'lewis6991/impatient.nvim', 'dstein64/vim-startuptime', 'will133/vim-dirdiff', { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate", config = function() require("config.nvim-treesitter") end }, { "nvim-neo-tree/neo-tree.nvim", config = function() require("config.neotree") end, dependencies = { "nvim-lua/plenary.nvim", -- "nvim-tree/nvim-web-devicons", -- not strictly required, but recommended "MunifTanjim/nui.nvim", } }, -- Undo tree { 'mbbill/undotree', cmd = 'UndotreeToggle', config = function() vim.g.undotree_SetFocusWhenToggle = 1 end, }, 'nvim-lua/plenary.nvim', { 'renerocksai/telekasten.nvim', config = function() require("config.telekasten") end }, 'renerocksai/calendar-vim', 'google/vim-searchindex', { 'ray-x/go.nvim',ft='go' }, { 'ray-x/guihua.lua',ft='go' }, -- Pretty symbols 'kyazdani42/nvim-web-devicons', -- Completion and linting 'neovim/nvim-lspconfig', { 'hrsh7th/nvim-cmp', dependencies = { 'onsails/lspkind.nvim', '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", run = "./install.sh", event = 'InsertEnter', cond = not use_google(), }, { 'ErichDonGubler/lsp_lines.nvim', config = function() require("lsp_lines").setup() end }, { "williamboman/mason.nvim", "williamboman/mason-lspconfig.nvim", 'VonHeikemen/lsp-zero.nvim', }, { 'jose-elias-alvarez/null-ls.nvim', config = function() require("config.null-ls") end, }, { 'nvim-telescope/telescope.nvim', cmd = 'Telescope', config = function() require('telescope').setup { pickers = { buffers = { sort_lastused = true, }, }, } end, dependencies = { 'nvim-lua/plenary.nvim', }, event = { "BufReadPost", "BufNewFile" }, keys = { { 'tf', function() require('telescope.builtin').find_files{ find_command = {'rg', '--files', '--hidden', '-g', '!node_modules/**'} } end, desc = 'Telescope Files', remap = false, unique = true, }, { 'th', function() require('telescope.builtin').help_tags{} end, desc = 'Telescope Help', remap = false, unique = true, }, { 'tw', function() require('telescope.builtin').grep_string{} end, desc = 'Telescope Word', remap = false, unique = true, }, { 'tg', function() require('telescope.builtin').live_grep{} end, desc = 'Telescope Grep', remap = false, unique = true, }, { 'cs', function() require('telescope').extensions.codesearch.find_query{} end, desc = 'Telescope Codesearch', remap = false, unique = true, }, { 'CS', function() require('telescope').extensions.codesearch.find_query{default_text_expand=''} end, desc = 'Telescope Codesearch', remap = false, unique = true, }, { 'CS', function() require('telescope').extensions.codesearch.find_query{} end, desc = 'Telescope Codesearch', remap = false, unique = true, mode = "v", }, { "tm", ":Telescope citc modified" }, { "tb", "Telescope file_browser" }, { 'fs', function() require('telescope').extensions.fig.status{} end }, { 'fx', function() require('telescope').extensions.fig.xl{} end }, { 'fw', function() require('telescope').extensions.fig.status{whatsout=true} end }, } }, { 'nvim-telescope/telescope-file-browser.nvim', dependencies = {'nvim-telescope/telescope.nvim'} }, -- Rust { 'saecki/crates.nvim', ft = 'rust', tag = 'v0.3.0', dependencies = { 'nvim-lua/plenary.nvim' }, config = function() require('crates').setup() end }, {'simrat39/rust-tools.nvim', ft = 'rust'}, { 'folke/trouble.nvim', config = function() require("config.trouble") end }, { 'ThePrimeagen/refactoring.nvim', dependencies = { {"nvim-lua/plenary.nvim"}, {"nvim-treesitter/nvim-treesitter"} }, config = function() require("config.refactoring") end }, 'apalmer1377/factorus', 'hrsh7th/vim-vsnip', 'kosayoda/nvim-lightbulb', {'andymass/vim-matchup', event = 'VimEnter'}, 'jghauser/mkdir.nvim', { 'simrat39/symbols-outline.nvim', config = function() require("config.symbols-outline") end }, { 'petertriho/nvim-scrollbar', config = function() require("scrollbar").setup() end }, { 'rmagatti/auto-session', lazy = false, 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-lua/lsp-status.nvim', { 'nvim-lualine/lualine.nvim', lazy = false, config = function() require("config.lualine") end }, { 'rcarriga/nvim-notify', config = function() require("config.notify") end }, -- Git { { 'lewis6991/gitsigns.nvim', dependencies = 'nvim-lua/plenary.nvim', event = 'User ActuallyEditing', }, { 'akinsho/git-conflict.nvim', tag = '*', config = function() require('git-conflict').setup() end, }, { 'rhysd/conflict-marker.vim' } }, -- { "catppuccin/nvim", as = "catppuccin" } { "catppuccin/nvim", as = "catppuccin", lazy=false, config = function() require("config.catppuccin") end}, -- Tmux { 'preservim/vimux', 'tmux-plugins/vim-tmux', 'christoomey/vim-tmux-navigator', 'whatyouhide/vim-tmux-syntax', 'tmux-plugins/vim-tmux-focus-events', 'jabirali/vim-tmux-yank', 'skywind3000/asyncrun.vim', }, { 'ojroques/nvim-osc52', config = function() require("config.oscyank") end }, -- mine { 'squk/java-syntax.vim', ft='java' }, { "folke/which-key.nvim", config = function() require("config.whichkey") end }, 'ntpeters/vim-better-whitespace', 'junegunn/fzf.vim', { 'junegunn/fzf', run = ":call fzf#install()" }, 'nathanaelkane/vim-indent-guides', 'tversteeg/registers.nvim', 'jremmen/vim-ripgrep', { 'udalov/kotlin-vim', ft='kotin' }, 'wesQ3/vim-windowswap', 'tpope/vim-surround', 'scrooloose/nerdcommenter', { 'vim-scripts/vcscommand.vim' }, { 'mhinz/vim-signify', config= function() require('config.signify') end }, { 'j-hui/fidget.nvim', config = function() require("fidget").setup() end }, { "iamcco/markdown-preview.nvim", run = "cd app && npm install", setup = function() vim.g.mkdp_filetypes = { "markdown" } end, ft = { "markdown" } }, -- Google Plugins { url = 'sso://googler@user/piloto/cmp-nvim-ciderlsp', enabled = use_google(), }, { url = 'sso://googler@user/kdark/ciderlsp-nvim', enabled = use_google(), }, { url = "sso://googler@user/jackcogdill/nvim-figtree", enabled = use_google(), }, { url = 'sso://googler@user/vintharas/telescope-codesearch.nvim', enabled = use_google(), dependencies = { 'nvim-telescope/telescope.nvim' } }, { url = 'sso://googler@user/aktau/telescope-citc.nvim', enabled = use_google(), dependencies = { 'nvim-telescope/telescope.nvim' } }, { url = 'sso://googler@user/tylersaunders/telescope-fig.nvim', enabled = use_google(), dependencies = { 'nvim-telescope/telescope.nvim' } }, { url = 'sso://googler@user/chmnchiang/google-comments', -- '/google/src/head/depot/google3/experimental/users/chmnchiang/neovim/google-comments', -- '/google/src/cloud/cnieves/google-comments/google3/experimental/users/chmnchiang/neovim/google-comments', dependencies = {'rcarriga/nvim-notify', 'nvim-lua/plenary.nvim'}, enabled = use_google(), config = function() require("config.google-comments") end }, -- { -- dir = '/google/src/cloud/cnieves/google-comments/google3/experimental/users/cnieves/neovim/critique', -- enabled = use_google(), -- config = function() require("critique").setup() end, -- }, { url = "sso://googler@user/smwang/hg.nvim", dependencies = { "ipod825/libp.nvim" }, enabled = use_google(), config = function() require("config.fig") require("hg").setup() end, }, }, { defaults = { lazy = true, -- should plugins be lazy-loaded? }}) -- CiderLSP vim.opt.completeopt = { "menu", "menuone", "noselect" } -- Don't show the dumb matching stuff vim.opt.shortmess:append("c") vim.opt.spell = true vim.opt.spelllang = { 'en_us' } require("config.imp")