136 lines
4.4 KiB
Lua
136 lines
4.4 KiB
Lua
--[[
|
|
┌────────────────────────────────────────────────────────────────┐
|
|
│ Plugins │
|
|
└────────────────────────────────────────────────────────────────┘
|
|
--]]
|
|
|
|
-- Catppuccin.nvim
|
|
-- Eagerly load the colorscheme plugin.
|
|
vim.pack.add { { src = "https://github.com/catppuccin/nvim", name = "catppuccin" } }
|
|
|
|
-- Catppuccin Config
|
|
Config.plugins.catppuccin = {
|
|
flavour = "mocha",
|
|
}
|
|
vim.cmd.colorscheme "catppuccin"
|
|
|
|
-- Snacks.nvim
|
|
-- Eagerly load snacks for dashboard and performance features.
|
|
vim.pack.add { { src = "https://github.com/folke/snacks.nvim", name = "snacks" } }
|
|
|
|
-- Snacks Config
|
|
-- Store opts in the registry first.
|
|
Config.plugins.snacks = {
|
|
bigfile = { enabled = true },
|
|
dashboard = {
|
|
enabled = true,
|
|
sections = {
|
|
{ section = "header" },
|
|
{ section = "keys", gap = 1, padding = 1 },
|
|
},
|
|
},
|
|
explorer = { enabled = true },
|
|
indent = { enabled = true },
|
|
input = { enabled = true },
|
|
picker = { enabled = true },
|
|
notifier = { enabled = true },
|
|
quickfile = { enabled = true },
|
|
scope = { enabled = true },
|
|
scroll = { enabled = true },
|
|
statuscolumn = { enabled = true },
|
|
words = { enabled = true },
|
|
}
|
|
|
|
-- Setup Snacks with the registered opts.
|
|
require("snacks").setup(Config.plugins.snacks)
|
|
|
|
-- Persistence.nvim
|
|
-- Simple session management.
|
|
vim.pack.add { { src = "https://github.com/folke/persistence.nvim", name = "persistence" } }
|
|
|
|
-- Persistence Config
|
|
Config.plugins.persistence = {
|
|
dir = vim.fn.stdpath("state") .. "/sessions/",
|
|
need = 1,
|
|
branch = true,
|
|
}
|
|
require("persistence").setup(Config.plugins.persistence)
|
|
|
|
-- Lazy-loaded Plugins
|
|
local lazyload = require("lazyload")
|
|
|
|
lazyload.on_vim_enter(function()
|
|
-- Gitsigns.nvim
|
|
vim.pack.add { { src = "https://github.com/lewis6991/gitsigns.nvim", name = "gitsigns" } }
|
|
require("gitsigns").setup({
|
|
numhl = true, -- Enable line number highlighting
|
|
})
|
|
|
|
-- Grug-far.nvim
|
|
vim.pack.add { { src = "https://github.com/MagicDuck/grug-far.nvim", name = "grug-far" } }
|
|
require("grug-far").setup()
|
|
|
|
-- Flash.nvim
|
|
vim.pack.add { { src = "https://github.com/folke/flash.nvim", name = "flash" } }
|
|
require("flash").setup()
|
|
|
|
-- Which-key.nvim
|
|
vim.pack.add { { src = "https://github.com/folke/which-key.nvim", name = "which-key" } }
|
|
require("which-key").setup()
|
|
|
|
-- Mini.ai
|
|
vim.pack.add { { src = "https://github.com/echasnovski/mini.ai", name = "mini.ai" } }
|
|
|
|
Config.plugins.mini_ai = {
|
|
custom_textobjects = {
|
|
g = function()
|
|
local n_lines = vim.api.nvim_buf_line_count(0)
|
|
return {
|
|
from = { line = 1, col = 1 },
|
|
to = { line = n_lines, col = math.max(vim.fn.getline(n_lines):len(), 1) },
|
|
}
|
|
end,
|
|
},
|
|
}
|
|
require("mini.ai").setup(Config.plugins.mini_ai)
|
|
|
|
-- Icons
|
|
vim.pack.add { { src = "https://github.com/nvim-tree/nvim-web-devicons", name = "nvim-web-devicons" } }
|
|
|
|
-- Lualine
|
|
vim.pack.add { { src = "https://github.com/nvim-lualine/lualine.nvim", name = "lualine" } }
|
|
require("lualine").setup({
|
|
options = {
|
|
theme = "auto",
|
|
globalstatus = true,
|
|
},
|
|
sections = {
|
|
lualine_b = { "branch", "diff", "diagnostics" },
|
|
}
|
|
})
|
|
|
|
-- Noice dependencies
|
|
vim.pack.add { { src = "https://github.com/MunifTanjim/nui.nvim", name = "nui" } }
|
|
|
|
-- Noice.nvim
|
|
vim.pack.add { { src = "https://github.com/folke/noice.nvim", name = "noice" } }
|
|
require("noice").setup({
|
|
lsp = {
|
|
-- override markdown rendering so that **cmp** and other plugins use **Treesitter**
|
|
override = {
|
|
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
|
|
["vim.lsp.util.set_autocmds"] = true,
|
|
["vim.ui.codelens.display_inline"] = true,
|
|
},
|
|
},
|
|
-- you can enable a preset for easier configuration
|
|
presets = {
|
|
bottom_search = true, -- use a classic bottom cmdline for search
|
|
command_palette = true, -- position the cmdline and popupmenu together
|
|
long_message_to_split = true, -- long messages will be sent to a split
|
|
inc_rename = false, -- enables an input dialog for inc-rename.nvim
|
|
lsp_doc_border = false, -- add a border to hover docs and signature help
|
|
},
|
|
})
|
|
end)
|