♻️ refactor(types): allow plugins to reference file/buffer types and other options from a single file
Allow plugins to use data.types for various tables/functions
This commit is contained in:
@@ -0,0 +1,262 @@
|
||||
-- ╭─────────────────────────────────────────────────────────╮
|
||||
-- │ TYPES │
|
||||
-- ╰─────────────────────────────────────────────────────────╯
|
||||
|
||||
local M = {}
|
||||
|
||||
M.general = {
|
||||
-- Excluded buffer types
|
||||
buf = {
|
||||
"help",
|
||||
"alpha",
|
||||
"dashboard",
|
||||
"neo-tree",
|
||||
"Trouble",
|
||||
"trouble",
|
||||
"lazy",
|
||||
"mason",
|
||||
"notify",
|
||||
"toggleterm",
|
||||
"lazyterm",
|
||||
},
|
||||
-- excluded filetypes
|
||||
ft = {
|
||||
"help",
|
||||
"dashboard",
|
||||
"neorg",
|
||||
},
|
||||
}
|
||||
|
||||
-- Filetypes for Alternate plugin
|
||||
M.alternate = {
|
||||
"cpp",
|
||||
"h",
|
||||
"hpp",
|
||||
"c",
|
||||
}
|
||||
|
||||
M.arrow = {
|
||||
show_icons = true,
|
||||
leader_key = ";", -- Recommended to be a single key
|
||||
buffer_leader_key = "m", -- Per Buffer Mappings
|
||||
}
|
||||
|
||||
-- Bufferline configuration options
|
||||
M.bufferline = {
|
||||
themable = true,
|
||||
color_icons = true,
|
||||
numbers = "ordinal",
|
||||
separator_style = "slant",
|
||||
auto_toggle_bufferline = true,
|
||||
buffer_close_icon = "",
|
||||
modified_icon = "●",
|
||||
close_icon = "",
|
||||
left_trunc_marker = "",
|
||||
right_trunc_marker = "",
|
||||
diagnostics_indicator = function(_, _, diagnostics_dict, _)
|
||||
local s = " "
|
||||
for e, n in pairs(diagnostics_dict) do
|
||||
local sym = e == "error" and " "
|
||||
or (e == "warning" and " " or " ")
|
||||
s = s .. sym .. n
|
||||
end
|
||||
return s
|
||||
end,
|
||||
}
|
||||
|
||||
-- Nvim-cmp excluded filetypes
|
||||
M.cmp = {
|
||||
"dashboard",
|
||||
"qalc",
|
||||
}
|
||||
|
||||
-- Git-Blame configuration
|
||||
M.gitblame = {
|
||||
display_virtual_text = 0, -- Disable virtual text
|
||||
date_format = "%r", -- Relative date format
|
||||
message_when_not_committed = " Not yet committed",
|
||||
message_template = "<author> • <date> • <summary>",
|
||||
}
|
||||
|
||||
-- Git-Graph plugin options
|
||||
M.gitgraph = {
|
||||
-- Git-graph symbols check for kitty
|
||||
symbols = function()
|
||||
if require("data.func").is_kitty() then
|
||||
return {
|
||||
merge_commit = "",
|
||||
commit = "",
|
||||
merge_commit_end = "",
|
||||
commit_end = "",
|
||||
|
||||
-- Advanced symbols
|
||||
GVER = "",
|
||||
GHOR = "",
|
||||
GCLD = "",
|
||||
GCRD = "╭",
|
||||
GCLU = "",
|
||||
GCRU = "",
|
||||
GLRU = "",
|
||||
GLRD = "",
|
||||
GLUD = "",
|
||||
GRUD = "",
|
||||
GFORKU = "",
|
||||
GFORKD = "",
|
||||
GRUDCD = "",
|
||||
GRUDCU = "",
|
||||
GLUDCD = "",
|
||||
GLUDCU = "",
|
||||
GLRDCL = "",
|
||||
GLRDCR = "",
|
||||
GLRUCL = "",
|
||||
GLRUCR = "",
|
||||
}
|
||||
else
|
||||
-- Fallback
|
||||
return {
|
||||
merge_commit = "M",
|
||||
commit = "*",
|
||||
}
|
||||
end
|
||||
end,
|
||||
-- Git graph timestamp style
|
||||
timestamp = "%H:%M:%S %d-%m-%Y",
|
||||
-- Git graph fields to display
|
||||
fields = { "hash", "timestamp", "author", "branch_name", "tag" },
|
||||
}
|
||||
|
||||
-- Highlights module options
|
||||
M.highlights = {
|
||||
-- Excluded buffer types
|
||||
exclude = {
|
||||
-- +general.buf
|
||||
},
|
||||
}
|
||||
|
||||
-- Indent characters
|
||||
M.indent_char = {
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
}
|
||||
|
||||
M.minimap = {
|
||||
-- Width of minimap
|
||||
width = 20,
|
||||
-- excluded buffer types
|
||||
buf = {
|
||||
"nofile",
|
||||
"nowrite",
|
||||
"quickfix",
|
||||
"terminal",
|
||||
"prompt",
|
||||
"alpha",
|
||||
"dashboard",
|
||||
-- +general.buf
|
||||
},
|
||||
-- excluded filetypes
|
||||
ft = {
|
||||
"help",
|
||||
"dashboard",
|
||||
"neorg",
|
||||
},
|
||||
|
||||
-- Function to initialize or manipulate minimap settings
|
||||
init = function()
|
||||
M.setup()
|
||||
vim.g.neominimap = {
|
||||
auto_enable = true,
|
||||
layout = "float",
|
||||
exclude_filetypes = require("data.types").minimap.file,
|
||||
exclude_buftypes = require("data.types").minimap.buf,
|
||||
x_multiplier = 4,
|
||||
y_multiplier = 1,
|
||||
click = {
|
||||
enabled = true,
|
||||
},
|
||||
search = {
|
||||
enabled = true,
|
||||
mode = "line",
|
||||
},
|
||||
split = {
|
||||
minimap_width = M.minimap.width,
|
||||
fix_width = false,
|
||||
},
|
||||
float = {
|
||||
window_border = "none",
|
||||
minimap_width = M.minimap.width,
|
||||
},
|
||||
}
|
||||
end,
|
||||
|
||||
-- Function to check if minimap should be enabled
|
||||
cond = function()
|
||||
M.setup()
|
||||
local ex_ft = M.minimap.ft
|
||||
local ex_buf = M.minimap.buf
|
||||
local ft = vim.bo.filetype
|
||||
local buf = vim.bo.buftype
|
||||
local mod = vim.bo.modifiable
|
||||
return not vim.tbl_contains(ex_ft, ft)
|
||||
and not vim.tbl_contains(ex_buf, buf)
|
||||
and mod == true
|
||||
end,
|
||||
}
|
||||
|
||||
-- Image.nvim filetypes
|
||||
M.image = "markdown"
|
||||
|
||||
-- Toggleterm plugin options
|
||||
M.toggleterm = {
|
||||
size = function(term)
|
||||
if term.direction == "horizontal" then
|
||||
return 10
|
||||
elseif term.direction == "vertical" then
|
||||
return vim.o.columns * 0.4
|
||||
end
|
||||
end,
|
||||
open_mapping = [[<c-\>]],
|
||||
hide_numbers = true,
|
||||
autochdir = true,
|
||||
shade_terminals = false,
|
||||
start_in_insert = true,
|
||||
insert_mappings = true,
|
||||
terminal_mappings = true,
|
||||
persist_size = true,
|
||||
persist_mode = true,
|
||||
direction = "horizontal",
|
||||
close_on_exit = true,
|
||||
shell = vim.o.shell,
|
||||
auto_scroll = true,
|
||||
float_opts = {
|
||||
border = "curved",
|
||||
winblend = 3,
|
||||
title_pos = "center",
|
||||
},
|
||||
winbar = {
|
||||
enabled = true,
|
||||
name_formatter = function(term)
|
||||
return term.name
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
||||
function M.setup()
|
||||
-- Extend minimap.buf with general exclusions
|
||||
for _, v in ipairs(M.general.buf) do
|
||||
table.insert(M.minimap.buf, v)
|
||||
table.insert(M.highlights.exclude, v)
|
||||
end
|
||||
for _, v in ipairs(M.general.ft) do
|
||||
table.insert(M.minimap.ft, v)
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
||||
Reference in New Issue
Block a user