Last active
July 7, 2024 18:56
-
-
Save AnurajBhaskar47/cf702dbb0a2131693146f34a1bc5fe4f to your computer and use it in GitHub Desktop.
lvim_plugins
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- local require = require("lvim.utils.require").require | |
local core_plugins = { | |
{ "folke/lazy.nvim", tag = "stable" }, | |
{ | |
"neovim/nvim-lspconfig", | |
lazy = true, | |
dependencies = { "mason-lspconfig.nvim", "nlsp-settings.nvim" }, | |
}, | |
{ | |
"williamboman/mason-lspconfig.nvim", | |
cmd = { "LspInstall", "LspUninstall" }, | |
config = function() | |
require("mason-lspconfig").setup(lvim.lsp.installer.setup) | |
-- automatic_installation is handled by lsp-manager | |
local settings = require "mason-lspconfig.settings" | |
settings.current.automatic_installation = false | |
end, | |
lazy = true, | |
event = "User FileOpened", | |
dependencies = "mason.nvim", | |
}, | |
{ "tamago324/nlsp-settings.nvim", cmd = "LspSettings", lazy = true }, | |
{ "jose-elias-alvarez/null-ls.nvim", lazy = true }, | |
{ | |
"williamboman/mason.nvim", | |
config = function() | |
require("lvim.core.mason").setup() | |
end, | |
opts = { | |
ensure_installed = { | |
"clangd", | |
"black", | |
"mypy", | |
"ruff", | |
"pyright", | |
}, | |
}, | |
cmd = { "Mason", "MasonInstall", "MasonUninstall", "MasonUninstallAll", "MasonLog" }, | |
build = function() | |
pcall(function() | |
require("mason-registry").refresh() | |
end) | |
end, | |
event = "User FileOpened", | |
lazy = true, | |
}, | |
{ | |
"folke/tokyonight.nvim", | |
lazy = not vim.startswith(lvim.colorscheme, "tokyonight"), | |
}, | |
{ | |
"lunarvim/lunar.nvim", | |
lazy = lvim.colorscheme ~= "lunar", | |
}, | |
{ "Tastyep/structlog.nvim", lazy = true }, | |
{ "nvim-lua/plenary.nvim", cmd = { "PlenaryBustedFile", "PlenaryBustedDirectory" }, lazy = true }, | |
-- Telescope | |
{ | |
"nvim-telescope/telescope.nvim", | |
branch = "0.1.x", | |
config = function() | |
require("lvim.core.telescope").setup() | |
end, | |
dependencies = { "telescope-fzf-native.nvim" }, | |
lazy = true, | |
cmd = "Telescope", | |
enabled = lvim.builtin.telescope.active, | |
}, | |
{ "nvim-telescope/telescope-fzf-native.nvim", build = "make", lazy = true, enabled = lvim.builtin.telescope.active }, | |
-- Install nvim-cmp, and buffer source as a dependency | |
{ | |
"hrsh7th/nvim-cmp", | |
config = function() | |
if lvim.builtin.cmp then | |
require("lvim.core.cmp").setup() | |
end | |
end, | |
event = { "InsertEnter", "CmdlineEnter" }, | |
dependencies = { | |
"cmp-nvim-lsp", | |
"cmp_luasnip", | |
"cmp-buffer", | |
"cmp-path", | |
"cmp-cmdline", | |
}, | |
}, | |
{ "hrsh7th/cmp-nvim-lsp", lazy = true }, | |
{ "saadparwaiz1/cmp_luasnip", lazy = true }, | |
{ "hrsh7th/cmp-buffer", lazy = true }, | |
{ "hrsh7th/cmp-path", lazy = true }, | |
{ | |
"hrsh7th/cmp-cmdline", | |
lazy = true, | |
enabled = lvim.builtin.cmp and lvim.builtin.cmp.cmdline.enable or false, | |
}, | |
{ | |
"L3MON4D3/LuaSnip", | |
config = function() | |
local utils = require "lvim.utils" | |
local paths = {} | |
if lvim.builtin.luasnip.sources.friendly_snippets then | |
paths[#paths + 1] = utils.join_paths(get_runtime_dir(), "site", "pack", "lazy", "opt", | |
"friendly-snippets") | |
end | |
local user_snippets = utils.join_paths(get_config_dir(), "snippets") | |
if utils.is_directory(user_snippets) then | |
paths[#paths + 1] = user_snippets | |
end | |
require("luasnip.loaders.from_lua").lazy_load() | |
require("luasnip.loaders.from_vscode").lazy_load { | |
paths = paths, | |
} | |
require("luasnip.loaders.from_snipmate").lazy_load() | |
end, | |
event = "InsertEnter", | |
dependencies = { | |
"friendly-snippets", | |
}, | |
}, | |
{ "rafamadriz/friendly-snippets", lazy = true, cond = lvim.builtin.luasnip.sources.friendly_snippets }, | |
{ | |
"folke/neodev.nvim", | |
lazy = true, | |
}, | |
-- Autopairs | |
{ | |
"windwp/nvim-autopairs", | |
event = "InsertEnter", | |
config = function() | |
require("lvim.core.autopairs").setup() | |
end, | |
enabled = lvim.builtin.autopairs.active, | |
dependencies = { "nvim-treesitter/nvim-treesitter", "hrsh7th/nvim-cmp" }, | |
}, | |
-- Treesitter | |
{ | |
"nvim-treesitter/nvim-treesitter", | |
-- run = ":TSUpdate", | |
config = function() | |
local utils = require "lvim.utils" | |
local path = utils.join_paths(get_runtime_dir(), "site", "pack", "lazy", "opt", "nvim-treesitter") | |
vim.opt.rtp:prepend(path) -- treesitter needs to be before nvim's runtime in rtp | |
require("lvim.core.treesitter").setup() | |
end, | |
cmd = { | |
"TSInstall", | |
"TSUninstall", | |
"TSUpdate", | |
"TSUpdateSync", | |
"TSInstallInfo", | |
"TSInstallSync", | |
"TSInstallFromGrammar", | |
}, | |
event = "User FileOpened", | |
}, | |
{ | |
-- Lazy loaded by Comment.nvim pre_hook | |
"JoosepAlviste/nvim-ts-context-commentstring", | |
lazy = true, | |
}, | |
-- NvimTree | |
{ | |
"kyazdani42/nvim-tree.lua", | |
config = function() | |
require("lvim.core.nvimtree").setup() | |
end, | |
enabled = lvim.builtin.nvimtree.active, | |
cmd = { "NvimTreeToggle", "NvimTreeOpen", "NvimTreeFocus", "NvimTreeFindFileToggle" }, | |
event = "User DirOpened", | |
}, | |
-- Lir | |
{ | |
"tamago324/lir.nvim", | |
config = function() | |
require("lvim.core.lir").setup() | |
end, | |
enabled = lvim.builtin.lir.active, | |
event = "User DirOpened", | |
}, | |
{ | |
"lewis6991/gitsigns.nvim", | |
config = function() | |
require("lvim.core.gitsigns").setup() | |
end, | |
event = "User FileOpened", | |
cmd = "Gitsigns", | |
enabled = lvim.builtin.gitsigns.active, | |
}, | |
-- Whichkey | |
{ | |
"folke/which-key.nvim", | |
config = function() | |
require("lvim.core.which-key").setup() | |
end, | |
cmd = "WhichKey", | |
event = "VeryLazy", | |
enabled = lvim.builtin.which_key.active, | |
}, | |
-- Comments | |
{ | |
"numToStr/Comment.nvim", | |
config = function() | |
require("lvim.core.comment").setup() | |
end, | |
keys = { { "gc", mode = { "n", "v" } }, { "gb", mode = { "n", "v" } } }, | |
event = "User FileOpened", | |
enabled = lvim.builtin.comment.active, | |
}, | |
-- project.nvim | |
{ | |
"ahmedkhalf/project.nvim", | |
config = function() | |
require("lvim.core.project").setup() | |
end, | |
enabled = lvim.builtin.project.active, | |
event = "VimEnter", | |
cmd = "Telescope projects", | |
}, | |
-- Icons | |
{ | |
"nvim-tree/nvim-web-devicons", | |
enabled = lvim.use_icons, | |
lazy = true, | |
}, | |
-- Status Line and Bufferline | |
{ | |
-- "hoob3rt/lualine.nvim", | |
"nvim-lualine/lualine.nvim", | |
-- "Lunarvim/lualine.nvim", | |
config = function() | |
require("lvim.core.lualine").setup() | |
end, | |
event = "VimEnter", | |
enabled = lvim.builtin.lualine.active, | |
}, | |
-- breadcrumbs | |
{ | |
"SmiteshP/nvim-navic", | |
config = function() | |
require("lvim.core.breadcrumbs").setup() | |
end, | |
event = "User FileOpened", | |
enabled = lvim.builtin.breadcrumbs.active, | |
}, | |
{ | |
"akinsho/bufferline.nvim", | |
config = function() | |
require("lvim.core.bufferline").setup() | |
end, | |
branch = "main", | |
event = "User FileOpened", | |
enabled = lvim.builtin.bufferline.active, | |
}, | |
-- Debugging | |
{ | |
"mfussenegger/nvim-dap", | |
config = function() | |
require("lvim.core.dap").setup() | |
end, | |
lazy = true, | |
dependencies = { | |
"rcarriga/nvim-dap-ui", | |
}, | |
enabled = lvim.builtin.dap.active, | |
}, | |
-- Debugger user interface | |
{ | |
"rcarriga/nvim-dap-ui", | |
config = function() | |
require("lvim.core.dap").setup_ui() | |
end, | |
lazy = true, | |
enabled = lvim.builtin.dap.active, | |
}, | |
-- alpha | |
{ | |
"goolord/alpha-nvim", | |
config = function() | |
require("lvim.core.alpha").setup() | |
end, | |
enabled = lvim.builtin.alpha.active, | |
event = "VimEnter", | |
}, | |
-- Terminal | |
{ | |
"akinsho/toggleterm.nvim", | |
branch = "main", | |
init = function() | |
require("lvim.core.terminal").init() | |
end, | |
config = function() | |
require("lvim.core.terminal").setup() | |
end, | |
cmd = { | |
"ToggleTerm", | |
"TermExec", | |
"ToggleTermToggleAll", | |
"ToggleTermSendCurrentLine", | |
"ToggleTermSendVisualLines", | |
"ToggleTermSendVisualSelection", | |
}, | |
keys = lvim.builtin.terminal.open_mapping, | |
enabled = lvim.builtin.terminal.active, | |
}, | |
-- SchemaStore | |
{ | |
"b0o/schemastore.nvim", | |
lazy = true, | |
}, | |
{ | |
"RRethy/vim-illuminate", | |
config = function() | |
require("lvim.core.illuminate").setup() | |
end, | |
event = "User FileOpened", | |
enabled = lvim.builtin.illuminate.active, | |
}, | |
{ | |
"lukas-reineke/indent-blankline.nvim", | |
config = function() | |
require("lvim.core.indentlines").setup() | |
end, | |
event = "User FileOpened", | |
enabled = lvim.builtin.indentlines.active, | |
}, | |
{ | |
"lunarvim/onedarker.nvim", | |
branch = "freeze", | |
config = function() | |
pcall(function() | |
if lvim and lvim.colorscheme == "onedarker" then | |
require("onedarker").setup() | |
lvim.builtin.lualine.options.theme = "onedarker" | |
end | |
end) | |
end, | |
lazy = lvim.colorscheme ~= "onedarker", | |
}, | |
{ | |
"lunarvim/bigfile.nvim", | |
config = function() | |
pcall(function() | |
require("bigfile").config(lvim.builtin.bigfile.config) | |
end) | |
end, | |
enabled = lvim.builtin.bigfile.active, | |
event = { "FileReadPre", "BufReadPre", "User FileOpened" }, | |
}, | |
} | |
local default_snapshot_path = join_paths(get_lvim_base_dir(), "snapshots", "default.json") | |
local content = vim.fn.readfile(default_snapshot_path) | |
local default_sha1 = assert(vim.fn.json_decode(content)) | |
-- taken form <https://github.com/folke/lazy.nvim/blob/c7122d64cdf16766433588486adcee67571de6d0/lua/lazy/core/plugin.lua#L27> | |
local get_short_name = function(long_name) | |
local name = long_name:sub(-4) == ".git" and long_name:sub(1, -5) or long_name | |
local slash = name:reverse():find("/", 1, true) --[[@as number?]] | |
return slash and name:sub(#name - slash + 2) or long_name:gsub("%W+", "_") | |
end | |
local get_default_sha1 = function(spec) | |
local short_name = get_short_name(spec[1]) | |
return default_sha1[short_name] and default_sha1[short_name].commit | |
end | |
if not vim.env.LVIM_DEV_MODE then | |
-- Manually lock the commit hashes of core plugins | |
for _, spec in ipairs(core_plugins) do | |
spec["commit"] = get_default_sha1(spec) | |
end | |
end | |
return core_plugins |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment