diff options
Diffstat (limited to 'nvim/lua/plugins.lua')
-rw-r--r-- | nvim/lua/plugins.lua | 256 |
1 files changed, 256 insertions, 0 deletions
diff --git a/nvim/lua/plugins.lua b/nvim/lua/plugins.lua new file mode 100644 index 0000000..79b4c5f --- /dev/null +++ b/nvim/lua/plugins.lua @@ -0,0 +1,256 @@ +-- 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,
+ -- ADD THIS SECTION for clangd:
+ clangd = function()
+ require('lspconfig').clangd.setup({
+ cmd = { "clangd", "--header-insertion=never" },
+ -- No root_dir specification that requires compile_commands.json
+ })
+ 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
+ },
+
+ {
+ 'mbbill/undotree'
+ },
+
+ {'akinsho/toggleterm.nvim',
+ version = "*",
+ opts = {
+ shell = "pwsh.exe -NoLogo",
+ winbar = {
+ enabled =false
+ },
+ direction = 'float',
+ border = 'none', -- No border around the terminal
+ -- width = function()
+ -- return vim.o.columns -- Full width of the screen
+ -- end,
+ -- height = function()
+ -- return vim.o.lines -- Full height minus command line
+ -- end,
+ -- width = 800,
+ -- height = 700,
+ }
+ },
+ {
+ '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= {
+ -- filetype = {
+ -- seq ={
+ -- commentstring ="! %s"
+ -- }
+ -- },
+ ---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
+ },
+
+ -- {
+ -- "nvim-telescope/telescope-file-browser.nvim",
+ -- dependencies = { "nvim-telescope/telescope.nvim", "nvim-lua/plenary.nvim" },
+ --
+ -- },
+
+ {
+ "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
+ }
+})
|