230 lines
5.8 KiB
Lua
Executable File
230 lines
5.8 KiB
Lua
Executable File
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", "<leader>u", "<cmd>Telescope undo<CR>", { desc = "Telescope Undo" })
|
|
end
|
|
},
|
|
{
|
|
'tpope/vim-fugitive',
|
|
config = function()
|
|
vim.keymap.set("n", "<leader>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' },
|
|
-- 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
|
|
},
|
|
{
|
|
'voldikss/vim-floaterm',
|
|
},
|
|
{
|
|
'tummetott/unimpaired.nvim',
|
|
config = function()
|
|
require('unimpaired').setup()
|
|
end
|
|
},
|
|
'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,
|
|
}
|
|
})
|