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) -- require("lazy").setup(plugins, opts) -- if fn.empty(fn.glob(install_path)) > 0 then -- fn.system({ 'git', 'clone', 'https://github.com/wbthomason/packer.nvim', install_path }) -- execute 'packadd packer.nvim' -- end -- local use = require('packer').use return require('lazy').setup({ { "ellisonleao/glow.nvim", config = true, cmd = "Glow" }, 'samoshkin/vim-mergetool', 'mhartington/formatter.nvim', -- 'christianrondeau/vim-base64', { 'tpope/vim-commentary', lazy = false }, { 'tpope/vim-fugitive', cmd = { "Git", "Gdiffsplit", "Gvdiffsplit", "Gedit", "Gread", "Gwrite", "Ggrep", "Gbrowse", "GMove", "GDelete" } }, { 'tpope/vim-repeat', lazy = false }, { 'tpope/vim-speeddating', lazy = false }, { 'tpope/vim-surround', lazy = false }, { 'tpope/vim-vinegar', lazy = false }, { 'tpope/vim-abolish', lazy = false }, { 'yuttie/comfortable-motion.vim', event = "BufEnter" }, -- 'ruanyl/vim-gh-line', { 'rest-nvim/rest.nvim', event = "BufEnter" }, -- 'b0o/SchemaStore.nvim', -- 'rcarriga/nvim-notify', { 'echasnovski/mini.nvim', version = '*' }, { 'folke/todo-comments.nvim', event = "BufEnter", config = function() require('todo-comments').setup() end, }, -- { -- 'github/copilot.vim', -- event = "LspAttach", -- cmd = "Copilot", -- }, -- 'ggandor/leap.nvim', { 'shortcuts/no-neck-pain.nvim', cmd = { "NoNeckPain", "NoNeckPainResize", "NoNeckPainScratchPad", "NoNeckPainWidthUp", "NoNeckPainWidthDown" }, version = "*" }, -- { 'folke/zen-mode.nvim', config = function() require('zen-mode').setup() end }, -- { 'folke/twilight.nvim', config = function() require('twilight').setup() end }, { 'pwntester/octo.nvim', cmd = "Octo", config = function() require( 'octo').setup() end }, { 'sainnhe/sonokai', lazy = false, config = function() require('colorscheme') end }, -- { -- "catppuccin/nvim", -- name = "catppuccin", -- lazy = false, -- config = function() -- require('colorscheme') -- end -- }, { { "nvim-neorg/neorg", cmd = "Neorg", ft = "norg", build = ":Neorg sync-parsers", opts = { load = { ["core.defaults"] = {}, -- Loads default behaviour ["core.concealer"] = {}, -- Adds pretty icons to your documents ["core.dirman"] = { -- Manages Neorg workspaces config = { workspaces = { notes = "~/Documents/norg", }, }, }, }, }, dependencies = { "nvim-lua/plenary.nvim" }, } }, { 'folke/which-key.nvim', config = function() require("which-key").setup() end, event = "BufEnter" }, { 'nvim-telescope/telescope.nvim', cmd = "Telescope", dependencies = { 'nvim-lua/plenary.nvim', 'nvim-telescope/telescope-ui-select.nvim', 'nvim-telescope/telescope-fzf-native.nvim' } }, -- { -- 'utilyre/barbecue.nvim', -- event = "LspAttach", -- version = "*", -- config = function() require('barbecue').setup() end, -- dependencies = { -- 'neovim/nvim-lspconfig', -- 'SmiteshP/nvim-navic', -- 'nvim-tree/nvim-web-devicons' -- }, -- }, { 'akinsho/git-conflict.nvim', version = "*", config = function() require('git-conflict').setup() end }, { 'williamboman/mason.nvim', cmd = { "Mason", "MasonInstall", "MasonUpdate", "MasonUninstall" }, config = function() require("mason").setup({ ui = { icons = { package_installed = "✓", package_pending = "➜", package_uninstalled = "✗" } } }) end, }, { "williamboman/mason-lspconfig.nvim", config = function() require("mason-lspconfig").setup({ ensure_installed = { "lua_ls", "rust_analyzer", "pylsp" }, automatic_installation = true, }) end, lazy = false, }, { 'NTBBloodbath/galaxyline.nvim', branch = 'main', lazy = false, config = function() require('statusline') end, dependencies = { 'nvim-tree/nvim-web-devicons' } }, { 'nvim-telescope/telescope-fzf-native.nvim', -- build = 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build', build = 'make', config = function() require('telescope').setup { defaults = { initial_mode = 'insert', }, extensions = { fzf = { fuzzy = true, -- false will only do exact matching override_generic_sorter = true, -- override the generic sorter override_file_sorter = true, -- override the file sorter case_mode = "smart_case", -- or "ignore_case" or "respect_case" } } } require('telescope').load_extension('fzf') end, }, { 'lambdalisue/suda.vim', lazy = false }, { 'nvim-telescope/telescope-ui-select.nvim', config = function() require("telescope").load_extension("ui-select") end }, { 'norcalli/nvim-colorizer.lua', config = function() require 'colorizer'.setup() end }, { 'IndianBoy42/tree-sitter-just', config = function() require 'tree-sitter-just'.setup({}) end, dependencies = { "nvim-treesitter/nvim-treesitter" }, ft = "just" }, { 'LhKipp/nvim-nu', config = function() require 'nu'.setup({ use_lsp_features = false, }) end, ft = "nu" }, -- lsp -- use { 'onsails/lspkind-nvim', config = function() require'lspkind'.init() end, } { 'folke/trouble.nvim', cmd = { "Trouble", "TroubleClose", "TroubleToggle", "TroubleRefresh", }, config = function() -- local actions = require("telescope.actions") require("trouble").setup() local trouble = require("trouble.providers.telescope") local telescope = require("telescope") telescope.setup { defaults = { mappings = { i = { [""] = trouble.open_with_trouble }, n = { [""] = trouble.open_with_trouble }, }, }, } end, }, { 'neovim/nvim-lspconfig', cmd = "LspStart", ft = { "rust", "toml", "lua", "c", "cpp", "markdown", "sql", "python", "go" }, config = function() require("lsp") end }, { 'hrsh7th/cmp-nvim-lsp', lazy = false }, { 'hrsh7th/cmp-buffer', lazy = false }, { 'hrsh7th/cmp-path', lazy = false }, { 'hrsh7th/cmp-cmdline', lazy = false }, { 'L3MON4D3/LuaSnip' }, { 'saadparwaiz1/cmp_luasnip' }, { "zbirenbaum/copilot-cmp", config = function() require("copilot_cmp").setup() end }, { "petertriho/cmp-git", dependencies = { "nvim-lua/plenary.nvim" }, config = function() require "cmp_git".setup() end, }, { 'hrsh7th/nvim-cmp', lazy = false, config = function() local cmp = require("cmp") cmp.setup({ view = { entries = { name = 'custom', selection_order = 'near_cursor' } }, snippet = { expand = function(args) require('luasnip').lsp_expand(args.body) end }, window = { completion = cmp.config.window.bordered(), documentation = cmp.config.window.bordered(), }, sources = cmp.config.sources({ { name = "copilot", }, { name = 'buffer' }, { name = 'nvim_lsp' }, { name = 'luasnip' }, { name = 'path' }, { name = 'git' }, }), mapping = cmp.mapping.preset.insert({ [''] = cmp.mapping.confirm(), [''] = cmp.mapping.complete(), -- [''] = cmp.mapping.complete(), [''] = cmp.config.next, [''] = cmp.config.prev, }) }) cmp.setup.cmdline({ '/', '?' }, { mapping = cmp.mapping.preset.cmdline { [''] = cmp.config.disable, [''] = cmp.config.disable, }, sources = { { name = 'buffer' } } }) cmp.setup.cmdline(':', { mapping = cmp.mapping.preset.cmdline { [''] = cmp.config.disable, [''] = cmp.config.disable, }, -- mapping = cmp.mapping.preset.cmdline(), sources = cmp.config.sources({ { name = 'path' } }, { { name = 'cmdline' } }) }) cmp.setup.filetype('gitcommit', { sources = cmp.config.sources({ { name = 'git' }, -- You can specify the `git` source if [you were installed it](https://github.com/petertriho/cmp-git). }, { { name = 'buffer' }, }) }) end }, { 'nvim-lua/lsp-status.nvim', event = "LspAttach" }, -- { -- 'ray-x/lsp_signature.nvim', -- -- event = "LspAttach", -- config = function() -- require("lsp_signature").setup({ -- floating_window_above_cur_line = true, -- }) -- end, -- }, { 'terrastruct/d2-vim', ft = "d2", }, { 'andweeb/presence.nvim', config = function() require "presence".setup({ auto_update = true, main_image = "file", }) end }, -- { -- 'ms-jpq/coq_nvim', -- ft = { "rust", "toml", "lua" }, -- dependencies = { 'ms-jpq/coq.artifacts', 'ms-jpq/coq.thirdparty' }, -- build = ':COQdeps', -- config = function() -- vim.g.coq_settings.keymap = { jump_to_mark = "" } -- end -- }, -- { 'ms-jpq/chadtree', build = ':CHADdeps' }, -- { -- 'ms-jpq/coq.thirdparty', -- config = function() -- require("coq_3p")({ -- { -- src = "repl", -- sh = "sh", -- shell = { p = "perl", n = "node" }, -- max_lines = 99, -- deadline = 500, -- unsafe = { "rm", "poweroff", "mv" } -- }, -- { src = "bc", short_name = "MATH", precision = 6 }, -- { src = "copilot", short_name = "COP", accept_key = "" }, -- { src = "dap" } -- }) -- end -- }, -- use 'airblade/vim-rooter' -- use({ -- "https://git.sr.ht/~whynothugo/lsp_lines.nvim", -- config = function() -- require("lsp_lines").setup() -- end, -- }) { 'lukas-reineke/indent-blankline.nvim', config = function() require("indent_blankline").setup { show_end_of_line = true, } end }, { 'sindrets/diffview.nvim', cmd = { "DiffviewOpen", "DiffviewClose", "DiffviewToggleFiles", "DiffviewFocusFiles", "DiffviewRefresh" }, dependencies = 'nvim-lua/plenary.nvim' }, { 'akinsho/toggleterm.nvim', cmd = "ToggleTerm", config = function() require 'setup.toggleterm' end, }, -- { -- 'glepnir/dashboard-nvim', -- config = function() require 'setup.dashboard' end, -- }, { 'nvim-treesitter/nvim-treesitter', build = ':TSUpdate' }, { 'nvim-treesitter/nvim-treesitter-context', dependencies = { 'nvim-treesitter/nvim-treesitter' } }, -- { -- 'saecki/crates.nvim', -- tag = 'v0.2.1', -- dependencies = { 'nvim-lua/plenary.nvim' }, -- config = function() -- require('crates').setup { -- src = { -- coq = { -- enabled = true, -- name = "crates.nvim", -- }, -- }, -- } -- end, -- }, -- { -- 'simrat39/rust-tools.nvim', -- ft = 'rust', -- config = function() -- require 'setup.rtools' -- end, -- }, { 'mrcjkb/rustaceanvim', version = '^3', -- Recommended ft = { 'rust' }, config = function() require 'setup.rtools' end, }, -- " For luasnip users. -- " Plug 'L3MON4D3/LuaSnip' -- " Plug 'saadparwaiz1/cmp_luasnip' -- " For ultisnips users. -- " Plug 'SirVer/ultisnips' -- " Plug 'quangnguyen30192/cmp-nvim-ultisnips' -- " For snippy users. -- " Plug 'dcampos/nvim-snippy' -- " Plug 'dcampos/cmp-snippy' { "rcarriga/nvim-dap-ui", dependencies = { "mfussenegger/nvim-dap" }, config = function() require("dapui").setup() end }, -- { -- 'phaazon/hop.nvim', -- branch = 'v2', -- optional but strongly recommended -- config = function() -- -- you can configure Hop the way you like here; see :h hop-config -- require 'hop'.setup { keys = 'etovxqpdygfblzhckisuran' } -- end -- }, -- https://github.com/simrat39/symbols-outline.nvim { 'simrat39/symbols-outline.nvim', cmd = "SymbolsOutline", config = function() require('symbols-outline').setup() end }, { "nvimdev/lspsaga.nvim", event = "LspAttach", config = function() require("lspsaga").setup({ ui = { code_action = 'A' } }) end, dependencies = { { "nvim-tree/nvim-web-devicons" }, { "nvim-treesitter/nvim-treesitter" } --Please make sure you install markdown and markdown_inline parser } }, { "cshuaimin/ssr.nvim", module = "ssr", -- Calling setup is optional. config = function() require("ssr").setup { border = "rounded", min_width = 50, min_height = 5, max_width = 120, max_height = 25, keymaps = { close = "q", next_match = "n", prev_match = "N", replace_confirm = "", replace_all = "", }, } end }, { "j-hui/fidget.nvim", -- tag = "", event = "LspAttach", opts = {}, }, { "kdheepak/lazygit.nvim", -- optional for floating window border decoration dependencies = { "nvim-lua/plenary.nvim", }, cmd = { "LazyGit" } }, { "ron-rs/ron.vim", ft = "ron", }, -- require("copilot").setup({ -- suggestion = { enabled = false }, -- panel = { enabled = false }, -- }) { "zbirenbaum/copilot.lua", cmd = "Copilot", event = "LspAttach", config = function() require("copilot").setup({ suggestion = { enabled = true, auto_trigger = true, keymap = { accept = "", } }, panel = { enabled = true }, }) end }, }, { defaults = { lazy = true, } });