2024-11-10 11:23:44 +00:00
|
|
|
-- Bootstrap lazy.nvim if not already installed
|
|
|
|
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)
|
|
|
|
|
|
|
|
return require('lazy').setup({
|
2024-11-15 19:27:03 +00:00
|
|
|
-- Highlight todo, notes, etc in comments
|
|
|
|
{ 'folke/todo-comments.nvim', event = 'VimEnter', dependencies = { 'nvim-lua/plenary.nvim' }, opts = { signs = false } },
|
2024-11-18 19:09:58 +00:00
|
|
|
|
|
|
|
{
|
|
|
|
'stevearc/oil.nvim',
|
|
|
|
---@module 'oil'
|
|
|
|
---@type oil.SetupOpts
|
|
|
|
opts = {},
|
|
|
|
-- Optional dependencies
|
|
|
|
dependencies = { { "echasnovski/mini.icons", opts = {} } },
|
|
|
|
-- dependencies = { "nvim-tree/nvim-web-devicons" }, -- use if prefer nvim-web-devicons
|
|
|
|
},
|
|
|
|
"aaron-p1/compare-remotes.nvim",
|
2024-11-15 19:27:03 +00:00
|
|
|
{ -- Collection of various small independent plugins/modules
|
|
|
|
'echasnovski/mini.nvim',
|
|
|
|
config = function()
|
|
|
|
-- Better Around/Inside textobjects
|
|
|
|
--
|
|
|
|
-- Examples:
|
|
|
|
-- - va) - [V]isually select [A]round [)]paren
|
|
|
|
-- - yinq - [Y]ank [I]nside [N]ext [Q]uote
|
|
|
|
-- - ci' - [C]hange [I]nside [']quote
|
|
|
|
require('mini.ai').setup { n_lines = 500 }
|
|
|
|
|
|
|
|
-- Add/delete/replace surroundings (brackets, quotes, etc.)
|
|
|
|
--
|
|
|
|
-- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren
|
|
|
|
-- - sd' - [S]urround [D]elete [']quotes
|
|
|
|
-- - sr)' - [S]urround [R]eplace [)] [']
|
|
|
|
require('mini.surround').setup()
|
|
|
|
end,
|
|
|
|
}, { -- Useful plugin to show you pending keybinds.
|
|
|
|
'folke/which-key.nvim',
|
|
|
|
event = 'VimEnter', -- Sets the loading event to 'VimEnter'
|
|
|
|
opts = {
|
|
|
|
icons = {
|
|
|
|
-- set icon mappings to true if you have a Nerd Font
|
|
|
|
mappings = vim.g.have_nerd_font,
|
|
|
|
-- If you are using a Nerd Font: set icons.keys to an empty table which will use the
|
|
|
|
-- default whick-key.nvim defined Nerd Font icons, otherwise define a string table
|
|
|
|
keys = vim.g.have_nerd_font and {} or {
|
|
|
|
Up = '<Up> ',
|
|
|
|
Down = '<Down> ',
|
|
|
|
Left = '<Left> ',
|
|
|
|
Right = '<Right> ',
|
|
|
|
C = '<C-…> ',
|
|
|
|
M = '<M-…> ',
|
|
|
|
D = '<D-…> ',
|
|
|
|
S = '<S-…> ',
|
|
|
|
CR = '<CR> ',
|
|
|
|
Esc = '<Esc> ',
|
|
|
|
ScrollWheelDown = '<ScrollWheelDown> ',
|
|
|
|
ScrollWheelUp = '<ScrollWheelUp> ',
|
|
|
|
NL = '<NL> ',
|
|
|
|
BS = '<BS> ',
|
|
|
|
Space = '<Space> ',
|
|
|
|
Tab = '<Tab> ',
|
|
|
|
F1 = '<F1>',
|
|
|
|
F2 = '<F2>',
|
|
|
|
F3 = '<F3>',
|
|
|
|
F4 = '<F4>',
|
|
|
|
F5 = '<F5>',
|
|
|
|
F6 = '<F6>',
|
|
|
|
F7 = '<F7>',
|
|
|
|
F8 = '<F8>',
|
|
|
|
F9 = '<F9>',
|
|
|
|
F10 = '<F10>',
|
|
|
|
F11 = '<F11>',
|
|
|
|
F12 = '<F12>',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
-- Document existing key chains
|
|
|
|
spec = {
|
|
|
|
{ '<leader>c', group = '[C]ode', mode = { 'n', 'x' } },
|
|
|
|
{ '<leader>d', group = '[D]ocument' },
|
|
|
|
{ '<leader>r', group = '[R]ename' },
|
|
|
|
{ '<leader>s', group = '[S]earch' },
|
|
|
|
{ '<leader>w', group = '[W]orkspace' },
|
|
|
|
{ '<leader>t', group = '[T]oggle' },
|
|
|
|
{ '<leader>h', group = 'Git [H]unk', mode = { 'n', 'v' } },
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
2024-11-11 11:57:16 +00:00
|
|
|
-- 'github/copilot.vim',
|
2024-11-10 11:23:44 +00:00
|
|
|
{
|
|
|
|
'numToStr/Comment.nvim',
|
|
|
|
opts = {
|
|
|
|
-- add any options here
|
|
|
|
},
|
|
|
|
lazy = false,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
'nvim-telescope/telescope.nvim',
|
|
|
|
tag = '0.1.7',
|
|
|
|
dependencies = { 'nvim-lua/plenary.nvim' }
|
|
|
|
},
|
|
|
|
{ "catppuccin/nvim", name = "catppuccin", priority = 1000 },
|
|
|
|
-- {
|
|
|
|
-- 'rose-pine/neovim',
|
|
|
|
-- name = 'rose-pine',
|
|
|
|
-- config = function()
|
|
|
|
-- vim.cmd('colorscheme rose-pine')
|
|
|
|
-- end
|
|
|
|
-- },
|
2024-11-10 15:49:52 +00:00
|
|
|
{
|
|
|
|
"nvim-neo-tree/neo-tree.nvim",
|
|
|
|
branch = "v3.x",
|
|
|
|
dependencies = {
|
|
|
|
"nvim-lua/plenary.nvim",
|
|
|
|
"nvim-tree/nvim-web-devicons", -- not strictly required, but recommended
|
|
|
|
"MunifTanjim/nui.nvim",
|
|
|
|
-- "3rd/image.nvim", -- Optional image support in preview window: See `# Preview Mode` for more information
|
|
|
|
}
|
|
|
|
},
|
2024-11-10 11:23:44 +00:00
|
|
|
{
|
|
|
|
'nvim-treesitter/nvim-treesitter',
|
|
|
|
build = ':TSUpdate'
|
|
|
|
},
|
|
|
|
'nvim-treesitter/playground',
|
|
|
|
|
|
|
|
{
|
|
|
|
'nvim-telescope/telescope-fzf-native.nvim',
|
|
|
|
build = 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build'
|
|
|
|
},
|
|
|
|
'theprimeagen/harpoon',
|
|
|
|
'mbbill/undotree',
|
|
|
|
'tpope/vim-fugitive',
|
|
|
|
{
|
|
|
|
'VonHeikemen/lsp-zero.nvim',
|
|
|
|
branch = 'v3.x',
|
|
|
|
dependencies = {
|
|
|
|
-- Uncomment the two plugins below if you want to manage the language servers from neovim
|
|
|
|
'williamboman/mason.nvim',
|
|
|
|
'williamboman/mason-lspconfig.nvim',
|
|
|
|
|
|
|
|
'neovim/nvim-lspconfig',
|
|
|
|
'hrsh7th/nvim-cmp',
|
|
|
|
'hrsh7th/cmp-buffer',
|
|
|
|
'hrsh7th/cmp-path',
|
|
|
|
'hrsh7th/cmp-nvim-lsp',
|
|
|
|
'hrsh7th/cmp-nvim-lua',
|
|
|
|
'L3MON4D3/LuaSnip',
|
|
|
|
}
|
|
|
|
},
|
2024-11-15 19:27:03 +00:00
|
|
|
{
|
|
|
|
"yetone/avante.nvim",
|
|
|
|
event = "VeryLazy",
|
|
|
|
lazy = false,
|
|
|
|
version = false, -- set this if you want to always pull the latest change
|
|
|
|
opts = {
|
|
|
|
-- add any opts here
|
|
|
|
},
|
|
|
|
-- if you want to build from source then do `make BUILD_FROM_SOURCE=true`
|
|
|
|
-- build = "make",
|
|
|
|
build = "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false", -- for windows
|
|
|
|
dependencies = {
|
|
|
|
"nvim-treesitter/nvim-treesitter",
|
|
|
|
"stevearc/dressing.nvim",
|
|
|
|
"nvim-lua/plenary.nvim",
|
|
|
|
"MunifTanjim/nui.nvim",
|
|
|
|
--- The below dependencies are optional,
|
|
|
|
"nvim-tree/nvim-web-devicons", -- or echasnovski/mini.icons
|
|
|
|
"zbirenbaum/copilot.lua", -- for providers='copilot'
|
|
|
|
{
|
|
|
|
-- support for image pasting
|
|
|
|
"HakonHarnes/img-clip.nvim",
|
|
|
|
event = "VeryLazy",
|
|
|
|
opts = {
|
|
|
|
-- recommended settings
|
|
|
|
default = {
|
|
|
|
embed_image_as_base64 = false,
|
|
|
|
prompt_for_file_name = false,
|
|
|
|
drag_and_drop = {
|
|
|
|
insert_mode = true,
|
|
|
|
},
|
|
|
|
-- required for Windows users
|
|
|
|
use_absolute_path = true,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
-- Make sure to set this up properly if you have lazy=true
|
|
|
|
'MeanderingProgrammer/render-markdown.nvim',
|
|
|
|
opts = {
|
|
|
|
file_types = { "markdown", "Avante" },
|
|
|
|
},
|
|
|
|
ft = { "markdown", "Avante" },
|
|
|
|
},
|
|
|
|
},
|
|
|
|
config = function()
|
|
|
|
require("avante").setup({
|
|
|
|
windows = {
|
|
|
|
position = "left"
|
|
|
|
},
|
|
|
|
})
|
|
|
|
end,
|
2024-11-18 13:12:09 +00:00
|
|
|
},
|
|
|
|
"nvzone/volt",
|
|
|
|
{ "nvzone/timerly", cmd = "TimerlyToggle" },
|
|
|
|
{ "nvzone/showkeys", cmd = "ShowkeysToggle" },
|
|
|
|
{
|
|
|
|
"nvchad/ui",
|
|
|
|
config = function()
|
|
|
|
require "nvchad"
|
|
|
|
end
|
|
|
|
},
|
|
|
|
|
|
|
|
{
|
|
|
|
"nvchad/base46",
|
|
|
|
lazy = true,
|
|
|
|
build = function()
|
|
|
|
require("base46").load_all_highlights()
|
|
|
|
end,
|
|
|
|
},
|
2024-11-10 11:23:44 +00:00
|
|
|
})
|