diff options
Diffstat (limited to '.config/nvim/lua/plugins.lua')
-rw-r--r-- | .config/nvim/lua/plugins.lua | 228 |
1 files changed, 228 insertions, 0 deletions
diff --git a/.config/nvim/lua/plugins.lua b/.config/nvim/lua/plugins.lua new file mode 100644 index 0000000..52e0622 --- /dev/null +++ b/.config/nvim/lua/plugins.lua @@ -0,0 +1,228 @@ +-- lazy plugin manager +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not vim.loop.fs_stat(lazypath) then + -- bootstrap lazy.nvim + -- stylua: ignore + vim.fn.system({ + "git", + "clone", + "--filter=blob:none", + "https://github.com/folke/lazy.nvim.git", + "--branch=stable", + lazypath, + }) +end +vim.opt.rtp:prepend(vim.env.LAZY or lazypath) + +require("lazy").setup({ + -- Colorscheme + { + "folke/tokyonight.nvim", + init = function() + vim.cmd.colorscheme("tokyonight-night") + end + }, + + { + 'tpope/vim-fugitive', + }, + + { + { + 'VonHeikemen/lsp-zero.nvim', + branch = 'v3.x', + lazy = true, + config = false, + init = function() + -- Disable automatic setup, we are doing it manually + vim.g.lsp_zero_extend_cmp = 0 + vim.g.lsp_zero_extend_lspconfig = 0 + end, + }, + + { + 'williamboman/mason.nvim', + lazy = false, + config = true, + }, + + { + 'neovim/nvim-lspconfig', + dependencies = { + {'hrsh7th/cmp-nvim-lsp'}, + } + }, + + -- Autocompletion + { + 'hrsh7th/nvim-cmp', + event = 'InsertEnter', + dependencies = { + {'L3MON4D3/LuaSnip', + 'hrsh7th/cmp-path', + }, + }, + config = function() + -- Here is where you configure the autocompletion settings. + local lsp_zero = require('lsp-zero') + lsp_zero.extend_cmp() + + -- And you can configure cmp even more, if you want to. + local cmp = require('cmp') + local cmp_action = lsp_zero.cmp_action() + + cmp.setup({ + formatting = lsp_zero.cmp_format(), + sources = { + { name = 'nvim_lsp' }, -- Enable LSP-based completion + { name = 'path' }, -- Enables path completion + { name = 'buffer' }, -- Buffer source for plain text completion + }, + mapping = cmp.mapping.preset.insert({ + ['<C-Space>'] = cmp.mapping.complete(), + ['<C-u>'] = cmp.mapping.scroll_docs(-4), + ['<C-d>'] = cmp.mapping.scroll_docs(4), + ['<C-f>'] = cmp_action.luasnip_jump_forward(), + ['<C-b>'] = cmp_action.luasnip_jump_backward(), + }), + + -- }, + }) + end + }, + -- LSP + { + 'neovim/nvim-lspconfig', + cmd = {'LspInfo', 'LspInstall', 'LspStart'}, + event = {'BufReadPre', 'BufNewFile'}, + dependencies = { + {'hrsh7th/cmp-nvim-lsp'}, + {'williamboman/mason-lspconfig.nvim'}, + }, + config = function() + -- This is where all the LSP shenanigans will live + local lsp_zero = require('lsp-zero') + lsp_zero.extend_lspconfig() + + lsp_zero.on_attach(function(client, bufnr) + -- see :help lsp-zero-keybindings + -- to learn the available actions + lsp_zero.default_keymaps({buffer = bufnr}) + end) + + require('mason-lspconfig').setup({ + ensure_installed = {}, + handlers = { + lsp_zero.default_setup, + lua_ls = function() + -- (Optional) Configure lua language server for neovim + local lua_opts = lsp_zero.nvim_lua_ls() + require('lspconfig').lua_ls.setup(lua_opts) + end, + } + }) + end + } + + }, + + { + 'nvim-telescope/telescope.nvim', + -- or , branch = '0.1.x', + dependencies = { 'nvim-lua/plenary.nvim' } + }, + + { + 'nvim-treesitter/nvim-treesitter', + build = ':TSUpdate', + config = function () + local configs = require("nvim-treesitter.configs") + + configs.setup({ + ensure_installed = { "c", "lua", "vim", "vimdoc", "cpp", "python"}, --add "neorg here" + sync_install = false, + highlight = { + enable = true + }, + indent = { + enable = true + }, + }) + end + }, + + {'akinsho/toggleterm.nvim', + version = "*", + opts = { + shell = "pwsh.exe -NoLogo", + winbar = { + enabled =false + }, + direction = 'float', + border = 'none', -- No border around the terminal + } + }, + { + 'windwp/nvim-autopairs', + event = "InsertEnter", + config = true + -- use opts = {} for passing setup options + -- this is equivalent to setup({}) function +}, + + { + 'numToStr/Comment.nvim', + lazy = false, + opts= { + ---Add a space b/w comment and the line + padding = true, + ---Whether the cursor should stay at its position + sticky = true, + ---Lines to be ignored while (un)comment + ignore = nil, + ---LHS of toggle mappings in NORMAL mode + toggler = { + ---Line-comment toggle keymap + line = '<leader>/', + ---Block-comment toggle keymap + block = 'gbc', + }, + ---LHS of operator-pending mappings in NORMAL and VISUAL mode + opleader = { + ---Line-comment keymap + line = '<leader>/', + ---Block-comment keymap + block = 'gb', + }} + }, + + + { + 'nvim-treesitter/nvim-treesitter-context' + }, + { + "lervag/vimtex", + lazy = false, -- we don't want to lazy load VimTeX + -- tag = "v2.15", -- uncomment to pin to a specific release + init = function() + -- VimTeX configuration goes here, e.g. + vim.g.vimtex_view_method = "mupdf" + end + }, + + + { + "ThePrimeagen/harpoon", + branch = "harpoon2", + dependencies = { "nvim-lua/plenary.nvim" } + }, + { + 'stevearc/oil.nvim', + opts = {}, + -- Optional dependencies + -- dependencies = { "echasnovski/mini.icons" }, + dependencies = { "nvim-tree/nvim-web-devicons" }, -- use if prefer nvim-web-devicons + }, + +}) + |