-- 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({ [''] = cmp.mapping.complete(), [''] = cmp.mapping.scroll_docs(-4), [''] = cmp.mapping.scroll_docs(4), [''] = cmp_action.luasnip_jump_forward(), [''] = 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 = '/', ---Block-comment toggle keymap block = 'gbc', }, ---LHS of operator-pending mappings in NORMAL and VISUAL mode opleader = { ---Line-comment keymap line = '/', ---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 }, })