-- BOOTSTRAP LAZY.NVIM 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", lazypath, }) end vim.opt.rtp:prepend(lazypath) -- LAZY SETUP require("lazy").setup({ -- 🧠 CORE UTILITIES { "nvim-lua/plenary.nvim" }, { "ldelossa/nvim-ide" }, { "folke/which-key.nvim" }, { "akinsho/bufferline.nvim", version = "*", dependencies = { "nvim-tree/nvim-web-devicons" }, }, -- 📁 FILE NAVIGATION { "nvim-telescope/telescope.nvim", tag = "0.1.5", dependencies = { "nvim-lua/plenary.nvim" } }, -- 🎨 COLORSCHEME { "nvim-lualine/lualine.nvim" }, { "projekt0n/github-nvim-theme", priority = 1000 }, -- 💡 LSP + AUTOCOMPLETE { "neovim/nvim-lspconfig" }, { "williamboman/mason.nvim", build = ":MasonUpdate" }, { "williamboman/mason-lspconfig.nvim" }, { "hrsh7th/nvim-cmp" }, { "hrsh7th/cmp-nvim-lsp" }, { "hrsh7th/cmp-buffer" }, { "hrsh7th/cmp-path" }, { "hrsh7th/cmp-cmdline" }, { "L3MON4D3/LuaSnip" }, { "saadparwaiz1/cmp_luasnip" }, -- 🌳 TREESITTER { "nvim-treesitter/nvim-treesitter", build = ":TSUpdate" }, { "nvim-tree/nvim-tree.lua" }, { "nvim-tree/nvim-web-devicons" }, -- 🔧 GIT SUPPORT { "tpope/vim-fugitive" }, { "lewis6991/gitsigns.nvim" }, -- 📊 STATUSLINE { "nvim-lualine/lualine.nvim" }, -- 💻 TERMINAL { "akinsho/toggleterm.nvim", version = "*" }, -- 🤖 COPILOT { "github/copilot.vim" }, { "CopilotC-Nvim/CopilotChat.nvim", dependencies = { { "zbirenbaum/copilot.lua" }, -- required core { "nvim-lua/plenary.nvim" }, -- required }, opts = { show_help = true, auto_insert_mode = true, }, cmd = "CopilotChat", keys = { { "cc", "CopilotChatToggle", desc = "Copilot Chat" }, { "cq", "CopilotChatExplain", desc = "Explain code" }, { "cf", "CopilotChatFix", desc = "Fix code" }, }, }, }, {}) require("plugins.lualine") require("plugins.bufferline") require("which-key").setup {} require("core.options") require("core.keymaps") require("plugins.colorscheme") require("plugins.cmp") require("plugins.lsp") require("nvim-tree").setup({ sort = { sorter = "case_sensitive", }, view = { width = 30, }, renderer = { group_empty = true, }, filters = { dotfiles = true, }, })