forked from dineshsalunke/nvim-config
188 lines
5.8 KiB
Lua
188 lines
5.8 KiB
Lua
return {
|
|
{
|
|
"nvim-lualine/lualine.nvim",
|
|
dependencies = {
|
|
"nvim-tree/nvim-web-devicons",
|
|
},
|
|
opts = {
|
|
options = {
|
|
theme = "catppuccin",
|
|
globalstatus = true,
|
|
disabled_filetypes = {
|
|
statusline = {
|
|
"dashboard",
|
|
"alpha",
|
|
},
|
|
},
|
|
section_separators = "",
|
|
component_separators = "",
|
|
},
|
|
sections = {
|
|
lualine_a = {
|
|
{ "mode", icons_enabled = true },
|
|
},
|
|
lualine_b = {
|
|
"branch",
|
|
"diff",
|
|
"diagnostics",
|
|
},
|
|
lualine_c = {
|
|
{ "filename", path = 1 },
|
|
},
|
|
},
|
|
},
|
|
},
|
|
|
|
{
|
|
"akinsho/bufferline.nvim",
|
|
event = "VeryLazy",
|
|
keys = {
|
|
{ "<leader>bp", "<Cmd>BufferLineTogglePin<CR>", desc = "Toggle pin" },
|
|
{ "<leader>bP", "<Cmd>BufferLineGroupClose ungrouped<CR>", desc = "Delete non-pinned buffers" },
|
|
},
|
|
opts = {
|
|
options = {
|
|
offsets = {
|
|
{
|
|
filetype = "neo-tree",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
|
|
{
|
|
"lukas-reineke/indent-blankline.nvim",
|
|
event = { "BufReadPost", "BufNewFile" },
|
|
main = "ibl",
|
|
opts = {
|
|
indent = {
|
|
char = "┊",
|
|
},
|
|
exclude = {
|
|
filetypes = {
|
|
"help",
|
|
"alpha",
|
|
"dashboard",
|
|
"neo-tree",
|
|
"Trouble",
|
|
"lazy",
|
|
"mason",
|
|
"notify",
|
|
"toggleterm",
|
|
"lazyterm",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
|
|
-- active indent guide and indent text objects
|
|
{
|
|
"echasnovski/mini.indentscope",
|
|
version = false, -- wait till new 0.7.0 release to put it back on semver
|
|
event = { "BufReadPre", "BufNewFile" },
|
|
opts = {
|
|
-- symbol = "▏",
|
|
symbol = "│",
|
|
options = { try_as_border = true },
|
|
},
|
|
init = function()
|
|
vim.api.nvim_create_autocmd("FileType", {
|
|
pattern = {
|
|
"help",
|
|
"alpha",
|
|
"dashboard",
|
|
"neo-tree",
|
|
"Trouble",
|
|
"lazy",
|
|
"mason",
|
|
"notify",
|
|
"toggleterm",
|
|
"lazyterm",
|
|
},
|
|
callback = function()
|
|
vim.b.miniindentscope_disable = true
|
|
end,
|
|
})
|
|
end,
|
|
},
|
|
|
|
{
|
|
"stevearc/dressing.nvim",
|
|
opts = {
|
|
select = {
|
|
enabled = true,
|
|
backend = {
|
|
"telescope",
|
|
"fzf",
|
|
"builtin",
|
|
"nui",
|
|
},
|
|
telescope = require("telescope.themes").get_ivy(),
|
|
},
|
|
},
|
|
},
|
|
|
|
{
|
|
"rcarriga/nvim-notify",
|
|
opts = {},
|
|
},
|
|
|
|
{
|
|
"goolord/alpha-nvim",
|
|
event = "VimEnter",
|
|
opts = function()
|
|
local dashboard = require("alpha.themes.dashboard")
|
|
local logo = [[
|
|
|
|
]]
|
|
|
|
dashboard.section.header.val = vim.split(logo, "\n")
|
|
dashboard.section.buttons.val = {
|
|
dashboard.button("f", " " .. " Find file", ":Telescope find_files <CR>"),
|
|
dashboard.button("n", " " .. " New file", ":ene <BAR> startinsert <CR>"),
|
|
dashboard.button("r", " " .. " Recent files", ":Telescope oldfiles <CR>"),
|
|
dashboard.button("g", " " .. " Find text", ":Telescope live_grep <CR>"),
|
|
dashboard.button("c", " " .. " Config", ":e $MYVIMRC <CR>"),
|
|
dashboard.button("s", " " .. " Restore Session", [[:lua require("persistence").load() <cr>]]),
|
|
dashboard.button("l", " " .. " Lazy", ":Lazy<CR>"),
|
|
dashboard.button("q", " " .. " Quit", ":qa<CR>"),
|
|
}
|
|
for _, button in ipairs(dashboard.section.buttons.val) do
|
|
button.opts.hl = "AlphaButtons"
|
|
button.opts.hl_shortcut = "AlphaShortcut"
|
|
end
|
|
dashboard.section.header.opts.hl = "AlphaHeader"
|
|
dashboard.section.buttons.opts.hl = "AlphaButtons"
|
|
dashboard.section.footer.opts.hl = "AlphaFooter"
|
|
dashboard.opts.layout[1].val = 8
|
|
return dashboard
|
|
end,
|
|
config = function(_, dashboard)
|
|
local lazy = require("lazy")
|
|
-- close Lazy and re-open when the dashboard is ready
|
|
if vim.o.filetype == "lazy" then
|
|
vim.cmd.close()
|
|
vim.api.nvim_create_autocmd("User", {
|
|
pattern = "AlphaReady",
|
|
callback = function()
|
|
lazy.show()
|
|
end,
|
|
})
|
|
end
|
|
|
|
require("alpha").setup(dashboard.opts)
|
|
|
|
vim.api.nvim_create_autocmd("User", {
|
|
pattern = "LazyVimStarted",
|
|
callback = function()
|
|
local stats = lazy.stats()
|
|
local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100)
|
|
dashboard.section.footer.val = "⚡ Neovim loaded " .. stats.count .. " plugins in " .. ms .. "ms"
|
|
pcall(vim.cmd.AlphaRedraw)
|
|
end,
|
|
})
|
|
end,
|
|
},
|
|
}
|