193 lines
5.4 KiB
Lua
193 lines
5.4 KiB
Lua
require("lz.n").load({
|
|
{
|
|
"theme-loader",
|
|
event = "VimEnter",
|
|
load = function()
|
|
local settings = require("nix-info").settings
|
|
local theme_code = settings.themeSetup
|
|
|
|
local func, err = loadstring(theme_code)
|
|
if func then
|
|
func()
|
|
else
|
|
print("Error loading theme code: " .. err)
|
|
end
|
|
end,
|
|
},
|
|
{
|
|
"lualine.nvim",
|
|
event = "VimEnter",
|
|
after = function()
|
|
local filename = {
|
|
"filename",
|
|
path = 1,
|
|
symbols = {
|
|
modified = "●",
|
|
readonly = "",
|
|
unnamed = "[No Name]",
|
|
},
|
|
}
|
|
|
|
require("lualine").setup({
|
|
options = {
|
|
icons_enabled = true,
|
|
globalstatus = false,
|
|
component_separators = "",
|
|
section_separators = "",
|
|
theme = "kanagawa",
|
|
},
|
|
sections = {
|
|
lualine_a = { "mode" },
|
|
lualine_b = { "branch", "diff", "diagnostics" },
|
|
lualine_c = { filename },
|
|
|
|
lualine_x = { "lsp_status" },
|
|
lualine_y = { "progress" },
|
|
lualine_z = { "location" },
|
|
},
|
|
inactive_sections = {
|
|
lualine_a = {},
|
|
lualine_b = {},
|
|
lualine_c = { filename },
|
|
lualine_x = {},
|
|
lualine_y = {},
|
|
lualine_z = {},
|
|
},
|
|
})
|
|
end,
|
|
},
|
|
{
|
|
"bufferline.nvim",
|
|
event = "VimEnter",
|
|
before = function()
|
|
require("lz.n").trigger_load("mini.nvim")
|
|
end,
|
|
after = function()
|
|
require("bufferline").setup({
|
|
options = {
|
|
mode = "buffers",
|
|
numbers = "none",
|
|
diagnostics = "nvim_lsp",
|
|
diagnostics_indicator = function(count, level)
|
|
local icon = level:match("error") and " " or level:match("warning") and " " or " "
|
|
return " " .. icon .. count
|
|
end,
|
|
always_show_bufferline = true,
|
|
show_buffer_close_icons = false,
|
|
show_close_icon = false,
|
|
separator_style = "thin",
|
|
sort_by = "insert_after_current",
|
|
offsets = {
|
|
{
|
|
filetype = "minifiles",
|
|
text = "Files",
|
|
separator = true,
|
|
},
|
|
},
|
|
},
|
|
})
|
|
|
|
vim.keymap.set("n", "<C-0>", "<cmd>BufferLineCycleNext<cr>", { desc = "[B]uffer [N]ext" })
|
|
vim.keymap.set("n", "<C-9>", "<cmd>BufferLineCyclePrev<cr>", { desc = "[B]uffer [P]revious" })
|
|
vim.keymap.set("n", "<leader>bb", "<cmd>BufferLinePick<cr>", { desc = "[B]uffer [B]rowse" })
|
|
vim.keymap.set("n", "<leader>bd", "<cmd>bdelete<cr>", { desc = "[B]uffer [D]elete" })
|
|
end,
|
|
},
|
|
{
|
|
"gitsigns.nvim",
|
|
event = { "BufReadPre", "BufNewFile" },
|
|
after = function()
|
|
require("gitsigns").setup({
|
|
signs = {
|
|
add = { text = "│" },
|
|
change = { text = "│" },
|
|
delete = { text = "_" },
|
|
topdelete = { text = "‾" },
|
|
changedelete = { text = "~" },
|
|
untracked = { text = "┆" },
|
|
},
|
|
signs_staged_enable = true,
|
|
on_attach = function(bufnr)
|
|
local gs = package.loaded.gitsigns
|
|
local map = function(mode, lhs, rhs, desc, opts)
|
|
opts = opts or {}
|
|
opts.buffer = bufnr
|
|
opts.desc = desc
|
|
vim.keymap.set(mode, lhs, rhs, opts)
|
|
end
|
|
|
|
map("n", "]h", function()
|
|
if vim.wo.diff then
|
|
return "]h"
|
|
end
|
|
vim.schedule(function()
|
|
gs.nav_hunk("next")
|
|
end)
|
|
return "<Ignore>"
|
|
end, "Next git hunk", { expr = true })
|
|
|
|
map("n", "[h", function()
|
|
if vim.wo.diff then
|
|
return "[h"
|
|
end
|
|
vim.schedule(function()
|
|
gs.nav_hunk("prev")
|
|
end)
|
|
return "<Ignore>"
|
|
end, "Previous git hunk", { expr = true })
|
|
|
|
map("n", "<leader>hp", gs.preview_hunk, "Git [H]unk [P]review")
|
|
map("n", "<leader>hs", gs.stage_hunk, "Git [H]unk [S]tage")
|
|
map("n", "<leader>hr", gs.reset_hunk, "Git [H]unk [R]eset")
|
|
map("n", "<leader>hu", gs.undo_stage_hunk, "Git [H]unk [U]ndo stage")
|
|
map("n", "<leader>hS", gs.stage_buffer, "Git [H]unk [S]tage buffer")
|
|
map("n", "<leader>hR", gs.reset_buffer, "Git [H]unk [R]eset buffer")
|
|
map("v", "<leader>hs", function()
|
|
gs.stage_hunk({ vim.fn.line("."), vim.fn.line("v") })
|
|
end, "Git [H]unk [S]tage")
|
|
map("v", "<leader>hr", function()
|
|
gs.reset_hunk({ vim.fn.line("."), vim.fn.line("v") })
|
|
end, "Git [H]unk [R]eset")
|
|
end,
|
|
})
|
|
end,
|
|
},
|
|
{
|
|
"zen-mode.nvim",
|
|
cmd = "ZenMode",
|
|
after = function()
|
|
require("zen-mode").setup({
|
|
window = {
|
|
options = {
|
|
linebreak = true,
|
|
},
|
|
},
|
|
})
|
|
end,
|
|
},
|
|
{
|
|
"which-key.nvim",
|
|
event = "VimEnter",
|
|
before = function()
|
|
require("lz.n").trigger_load("mini.nvim")
|
|
end,
|
|
after = function()
|
|
require("which-key").setup({
|
|
preset = "modern",
|
|
delay = 200,
|
|
icons = {
|
|
mappings = true,
|
|
keys = {},
|
|
},
|
|
|
|
spec = {
|
|
{ "<leader>b", group = "[B]uffer" },
|
|
{ "<leader>s", group = "[S]earch" },
|
|
{ "<leader>t", group = "[T]oggle" },
|
|
{ "<leader>h", group = "Git [H]unk", mode = { "n", "v" } },
|
|
},
|
|
})
|
|
end,
|
|
},
|
|
})
|