refactor: restructure config files
This commit is contained in:
@@ -0,0 +1,201 @@
|
||||
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,
|
||||
},
|
||||
{
|
||||
"kulala.nvim",
|
||||
after = function()
|
||||
require("kulala").setup({
|
||||
global_keymaps = true,
|
||||
global_keymaps_prefix = "<leader>R",
|
||||
})
|
||||
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,
|
||||
},
|
||||
})
|
||||
Reference in New Issue
Block a user