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) vim.g.mapleader = ' ' vim.g.maplocalleader = ' ' local plugins = { -- Code highlighting { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate", }, -- Language server configuration { 'neovim/nvim-lspconfig' }, { 'williamboman/mason.nvim', build = function() pcall(vim.cmd, 'MasonUpdate') end, }, { 'williamboman/mason-lspconfig.nvim' }, -- Autocompletion { 'hrsh7th/nvim-cmp' }, { 'hrsh7th/cmp-nvim-lsp' }, { 'hrsh7th/cmp-buffer' }, { 'hrsh7th/cmp-path' }, { 'hrsh7th/cmp-cmdline' }, -- Rust cmp & lsp { 'mrcjkb/rustaceanvim', version = '^5', -- Recommended lazy = false, -- This plugin is already lazy }, -- -- For luasnip users { "L3MON4D3/LuaSnip", dependencies = { "rafamadriz/friendly-snippets" }, }, { 'saadparwaiz1/cmp_luasnip' }, -- Helper package for cmp { 'nvim-lua/plenary.nvim', }, { 'echasnovski/mini.nvim', version = '*' }, -- vim auxiliary packages { "lervag/vimtex", lazy = false, -- we don't want to lazy load VimTeX -- tag = "v2.15", -- uncomment to pin to a specific release }, -- Lua auxiliary packages { "folke/lazydev.nvim", ft = "lua", -- only load on lua files opts = { library = { -- See the configuration section for more details -- Load luvit types when the `vim.uv` word is found { path = "${3rd}/luv/library", words = { "vim%.uv" } }, }, }, }, -- Minimal { 'nvim-telescope/telescope.nvim', tag = '0.1.5', dependencies = { { 'nvim-lua/plenary.nvim' } } }, { 'nvim-telescope/telescope-fzf-native.nvim', build = 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build' }, { "nvim-telescope/telescope-live-grep-args.nvim" }, { "aaronhallaert/advanced-git-search.nvim", dependencies = { "nvim-telescope/telescope.nvim", "tpope/vim-fugitive", 'tpope/vim-rhubarb', }, }, 'nvim-telescope/telescope-ui-select.nvim', 'debugloop/telescope-undo.nvim', 'ThePrimeagen/harpoon', { 'mbbill/undotree', config = function() vim.keymap.set("n", "u", "Telescope undo", { desc = "Telescope Undo" }) end }, { 'tpope/vim-fugitive', config = function() vim.keymap.set("n", "gs", vim.cmd.Git, { desc = "Open Fugitive Panel" }) end }, { 'tpope/vim-repeat' }, { 'numToStr/Comment.nvim', config = function() require('Comment').setup() end }, -- Colorschemes { "folke/tokyonight.nvim", lazy = false, priority = 1000, opts = {}, }, { 'rose-pine/neovim', name = 'rose-pine', lazy = false, priority = 1000, opts = { disable_background = true, }, }, -- Autoclose parenthesis { 'm4xshen/autoclose.nvim' }, --{ -- 'tummetott/unimpaired.nvim', -- config = function() -- require('unimpaired').setup() -- end --}, -- tree navigator { "nvim-tree/nvim-tree.lua" }, { 'nvim-lualine/lualine.nvim', dependencies = { 'nvim-tree/nvim-web-devicons' }, config = function() require('lualine').setup({ options = { theme = 'palenight' } }) end }, { 'bronson/vim-trailing-whitespace' }, { 'junegunn/fzf', build = ":call fzf#install()" }, { "AckslD/nvim-neoclip.lua", dependencies = { { 'nvim-telescope/telescope.nvim' }, }, }, { 'jinh0/eyeliner.nvim' }, { "anuvyklack/windows.nvim", dependencies = { "anuvyklack/middleclass", "anuvyklack/animation.nvim" }, config = function() vim.o.winwidth = 10 vim.o.winminwidth = 10 vim.o.equalalways = false require('windows').setup() end }, -- Terminal { 'voldikss/vim-floaterm', }, -- Neorg { "nvim-neorg/neorg", lazy = false, -- Disable lazy loading as some `lazy.nvim` distributions set `lazy = true` by default version = "*", -- Pin Neorg to the latest stable release config = function() require("neorg").setup { load = { ["core.defaults"] = {}, ["core.concealer"] = {}, ["core.dirman"] = { config = { workspaces = { phd = "~/Work/Organization/2025-1st-Quatrimester/", regular = "~/Documents/Notes", }, default_workspace = "phd", }, }, }, } end, }, -- Git signs { 'airblade/vim-gitgutter' }, { 'mg979/vim-visual-multi' }, { 'kevinhwang91/nvim-ufo', dependencies = 'kevinhwang91/promise-async' }, { 'folke/which-key.nvim', event = "VeryLazy", init = function() vim.o.timeout = true vim.o.timeoutlen = 500 end, opts = {} }, -- C/C++ debbuging { 'sakhnik/nvim-gdb', }, -- Rust debug { 'mfussenegger/nvim-dap' }, -- Compiler { -- This plugin "Zeioth/compiler.nvim", cmd = { "CompilerOpen", "CompilerToggleResults", "CompilerRedo" }, dependencies = { "stevearc/overseer.nvim", "nvim-telescope/telescope.nvim" }, opts = {}, }, { -- The task runner we use "stevearc/overseer.nvim", commit = "6271cab7ccc4ca840faa93f54440ffae3a3918bd", cmd = { "CompilerOpen", "CompilerToggleResults", "CompilerRedo" }, opts = { task_list = { direction = "bottom", min_height = 25, max_height = 25, default_detail = 1 }, }, }, } require('lazy').setup(plugins, { change_detection = { notify = false, } })