refactor: clean & re-organise default_config + chadrc
this completely overhauls the design of the two configuration files, aiming to move options & various tables into a more sensible table structure BREAKING CHANGE: this will break any user modificiations to the current config
This commit is contained in:
parent
80c8bf4243
commit
9961cc0113
|
@ -2,32 +2,87 @@
|
||||||
-- use custom/chadrc.lua instead
|
-- use custom/chadrc.lua instead
|
||||||
|
|
||||||
local M = {}
|
local M = {}
|
||||||
M.ui, M.options, M.plugin_status, M.mappings, M.custom = {}, {}, {}, {}, {}
|
M.options, M.ui, M.mappings, M.plugin = {}, {}, {}, {}
|
||||||
|
|
||||||
-- non plugin ui configs, available without any plugins
|
-- non plugin normal, available without any plugins
|
||||||
|
M.options = {
|
||||||
|
-- NeoVim/Vim options
|
||||||
|
clipboard = "unnamedplus",
|
||||||
|
cmdheight = 1,
|
||||||
|
ruler = false,
|
||||||
|
hidden = true,
|
||||||
|
ignorecase = true,
|
||||||
|
mapleader = " ",
|
||||||
|
mouse = "a",
|
||||||
|
number = true,
|
||||||
|
-- relative numbers in normal mode tool at the bottom of options.lua
|
||||||
|
numberwidth = 2,
|
||||||
|
relativenumber = false,
|
||||||
|
expandtab = true,
|
||||||
|
shiftwidth = 2,
|
||||||
|
smartindent = true,
|
||||||
|
tabstop = 8, -- Number of spaces that a <Tab> in the file counts for
|
||||||
|
timeoutlen = 400,
|
||||||
|
-- interval for writing swap file to disk, also used by gitsigns
|
||||||
|
updatetime = 250,
|
||||||
|
undofile = true, -- keep a permanent undo (across restarts)
|
||||||
|
-- NvChad options
|
||||||
|
nvChad = {
|
||||||
|
copy_cut = true, -- copy cut text ( x key ), visual and normal mode
|
||||||
|
copy_del = true, -- copy deleted text ( dd key ), visual and normal mode
|
||||||
|
insert_nav = true, -- navigation in insertmode
|
||||||
|
window_nav = true,
|
||||||
|
theme_toggler = false,
|
||||||
|
-- used for updater
|
||||||
|
update_url = "https://github.com/NvChad/NvChad",
|
||||||
|
update_branch = "main",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
-- ui configs
|
||||||
M.ui = {
|
M.ui = {
|
||||||
italic_comments = false,
|
italic_comments = false,
|
||||||
-- theme to be used, to see all available themes, open the theme switcher by <leader> + th
|
-- theme to be used, check available themes with `<leader> + t + h`
|
||||||
theme = "onedark",
|
theme = "onedark",
|
||||||
-- theme toggler, toggle between two themes, see theme_toggleer mappings
|
-- toggle between two themes, see theme_toggler mappings
|
||||||
theme_toggler = {
|
theme_toggler = {
|
||||||
enabled = false,
|
|
||||||
fav_themes = {
|
|
||||||
"onedark",
|
"onedark",
|
||||||
"one-light",
|
"gruvchad",
|
||||||
},
|
|
||||||
},
|
},
|
||||||
-- Enable this only if your terminal has the colorscheme set which nvchad uses
|
-- Enable this only if your terminal has the colorscheme set which nvchad uses
|
||||||
-- For Ex : if you have onedark set in nvchad, set onedark's bg color on your terminal
|
-- For Ex : if you have onedark set in nvchad, set onedark's bg color on your terminal
|
||||||
transparency = false,
|
transparency = false,
|
||||||
}
|
}
|
||||||
|
|
||||||
-- plugin related ui options
|
-- these are plugin related options
|
||||||
M.ui.plugin = {
|
M.plugins = {
|
||||||
-- statusline related options
|
-- enable and disable plugins (false for disable)
|
||||||
statusline = {
|
plugin_status = {
|
||||||
|
autosave = false, -- to autosave files
|
||||||
|
blankline = true, -- show code scope with symbols
|
||||||
|
bufferline = true, -- list open buffers up the top, easy switching too
|
||||||
|
cheatsheet = true, -- search your commands/keymappings
|
||||||
|
colorizer = true, -- color RGB, HEX, CSS, NAME color codes
|
||||||
|
comment = true, -- easily (un)comment code, language aware
|
||||||
|
dashboard = false, -- NeoVim 'home screen' on open
|
||||||
|
esc_insertmode = true, -- map to <ESC> with no lag
|
||||||
|
feline = true, -- statusline
|
||||||
|
gitsigns = true, -- gitsigns in statusline
|
||||||
|
lspsignature = true, -- lsp enhancements
|
||||||
|
neoformat = true, -- universal code formatter
|
||||||
|
neoscroll = true, -- smooth scroll
|
||||||
|
telescope_media = false, -- media previews within telescope finders
|
||||||
|
truezen = false, -- distraction free & minimalist UI mode
|
||||||
|
vim_fugitive = false, -- git integration & tooling
|
||||||
|
vim_matchup = true, -- % operator enhancements
|
||||||
|
},
|
||||||
|
options = {
|
||||||
|
lspconfig = {
|
||||||
|
servers = {} -- eg: "HTML"
|
||||||
|
},
|
||||||
|
statusline = { -- statusline related options
|
||||||
-- these are filetypes, not pattern matched
|
-- these are filetypes, not pattern matched
|
||||||
-- if a filetype is present in shown, it will always show the statusline, irrespective of filetypes in hidden
|
-- shown filetypes will overrule hidden filetypes
|
||||||
hidden = {
|
hidden = {
|
||||||
"help",
|
"help",
|
||||||
"dashboard",
|
"dashboard",
|
||||||
|
@ -38,71 +93,25 @@ M.ui.plugin = {
|
||||||
-- default, round , slant , block , arrow
|
-- default, round , slant , block , arrow
|
||||||
style = "default",
|
style = "default",
|
||||||
},
|
},
|
||||||
}
|
|
||||||
|
|
||||||
-- non plugin normal, available without any plugins
|
|
||||||
M.options = {
|
|
||||||
clipboard = "unnamedplus",
|
|
||||||
cmdheight = 1,
|
|
||||||
copy_cut = true, -- copy cut text ( x key ), visual and normal mode
|
|
||||||
copy_del = true, -- copy deleted text ( dd key ), visual and normal mode
|
|
||||||
expandtab = true,
|
|
||||||
hidden = true,
|
|
||||||
ignorecase = true,
|
|
||||||
insert_nav = true, -- navigation in insertmode
|
|
||||||
window_nav = true,
|
|
||||||
mapleader = " ",
|
|
||||||
mouse = "a",
|
|
||||||
number = true,
|
|
||||||
-- relative numbers in normal mode tool at the bottom of options.lua
|
|
||||||
numberwidth = 2,
|
|
||||||
permanent_undo = true,
|
|
||||||
shiftwidth = 2,
|
|
||||||
smartindent = true,
|
|
||||||
tabstop = 8, -- Number of spaces that a <Tab> in the file counts for
|
|
||||||
timeoutlen = 400,
|
|
||||||
relativenumber = false,
|
|
||||||
ruler = false,
|
|
||||||
updatetime = 250,
|
|
||||||
-- used for updater
|
|
||||||
update_url = "https://github.com/NvChad/NvChad",
|
|
||||||
update_branch = "main",
|
|
||||||
}
|
|
||||||
|
|
||||||
-- these are plugin related options
|
|
||||||
M.options.plugin = {
|
|
||||||
autosave = false, -- autosave on changed text or insert mode leave
|
autosave = false, -- autosave on changed text or insert mode leave
|
||||||
-- timeout to be used for using escape with a key combination, see mappings.plugin.better_escape
|
-- timeout to be used for using escape with a key combination, see mappings.plugin.better_escape
|
||||||
esc_insertmode_timeout = 300,
|
esc_insertmode_timeout = 300,
|
||||||
}
|
},
|
||||||
|
default_plugin_config_replace = {},
|
||||||
-- enable and disable plugins (false for disable)
|
|
||||||
M.plugin_status = {
|
|
||||||
autosave = false, -- to autosave files
|
|
||||||
blankline = true, -- beautified blank lines
|
|
||||||
bufferline = true, -- buffer shown as tabs
|
|
||||||
cheatsheet = true, -- fuzzy search your commands/keymappings
|
|
||||||
colorizer = true,
|
|
||||||
comment = true, -- universal commentor
|
|
||||||
dashboard = false, -- a nice looking dashboard
|
|
||||||
esc_insertmode = true, -- escape from insert mode using custom keys
|
|
||||||
feline = true, -- statusline
|
|
||||||
gitsigns = true, -- gitsigns in statusline
|
|
||||||
lspsignature = true, -- lsp enhancements
|
|
||||||
neoformat = true, -- universal formatter
|
|
||||||
neoscroll = true, -- smooth scroll
|
|
||||||
telescope_media = false, -- see media files in telescope picker
|
|
||||||
truezen = false, -- no distraction mode for nvim
|
|
||||||
vim_fugitive = false, -- git in nvim
|
|
||||||
vim_matchup = true, -- % magic, match it but improved
|
|
||||||
}
|
}
|
||||||
|
|
||||||
-- mappings -- don't use a single keymap twice --
|
-- mappings -- don't use a single keymap twice --
|
||||||
-- non plugin mappings
|
-- non plugin mappings
|
||||||
M.mappings = {
|
M.mappings = {
|
||||||
|
-- custom = {}, -- all custom user mappings
|
||||||
-- close current focused buffer
|
-- close current focused buffer
|
||||||
close_buffer = "<leader>x",
|
close_buffer = "<leader>x",
|
||||||
copy_whole_file = "<C-a>", -- copy all contents of the current buffer
|
copy_whole_file = "<C-a>", -- copy all contents of the current buffer
|
||||||
|
line_number_toggle = "<leader>n", -- show or hide line number
|
||||||
|
new_buffer = "<S-t>", -- open a new buffer
|
||||||
|
new_tab = "<C-t>b", -- open a new vim tab
|
||||||
|
save_file = "<C-s>", -- save file using :w
|
||||||
|
theme_toggler = "<leader>tt", -- for theme toggler, see in ui.theme_toggler
|
||||||
-- navigation in insert mode, only if enabled in options
|
-- navigation in insert mode, only if enabled in options
|
||||||
insert_nav = {
|
insert_nav = {
|
||||||
backward = "<C-h>",
|
backward = "<C-h>",
|
||||||
|
@ -112,27 +121,21 @@ M.mappings = {
|
||||||
prev_line = "<C-j>",
|
prev_line = "<C-j>",
|
||||||
top_of_line = "<C-a>",
|
top_of_line = "<C-a>",
|
||||||
},
|
},
|
||||||
window_nav = {
|
|
||||||
--better window movement
|
--better window movement
|
||||||
|
window_nav = {
|
||||||
moveLeft = "<C-h>",
|
moveLeft = "<C-h>",
|
||||||
moveRight = "<C-l>",
|
moveRight = "<C-l>",
|
||||||
moveUp = "<C-k>",
|
moveUp = "<C-k>",
|
||||||
moveDown = "<C-j>",
|
moveDown = "<C-j>",
|
||||||
},
|
},
|
||||||
line_number_toggle = "<leader>n", -- show or hide line number
|
|
||||||
new_buffer = "<S-t>", -- open a new buffer
|
|
||||||
new_tab = "<C-t>b", -- open a new vim tab
|
|
||||||
save_file = "<C-s>", -- save file using :w
|
|
||||||
theme_toggler = "<leader>tt", -- for theme toggler, see in ui.theme_toggler
|
|
||||||
-- terminal related mappings
|
-- terminal related mappings
|
||||||
terminal = {
|
terminal = {
|
||||||
-- multiple mappings can be given for esc_termmode and esc_hide_termmode
|
-- multiple mappings can be given for esc_termmode and esc_hide_termmode
|
||||||
-- get out of terminal mode
|
-- get out of terminal mode
|
||||||
esc_termmode = { "jk" }, -- multiple mappings allowed
|
esc_termmode = { "jk" }, -- multiple mappings allowed
|
||||||
-- get out of terminal mode and hide it
|
-- get out of terminal mode and hide it
|
||||||
-- it does not close it, see pick_term mapping to see hidden terminals
|
|
||||||
esc_hide_termmode = { "JK" }, -- multiple mappings allowed
|
esc_hide_termmode = { "JK" }, -- multiple mappings allowed
|
||||||
-- show hidden terminal buffers in a telescope picker
|
-- show & recover hidden terminal buffers in a telescope picker
|
||||||
pick_term = "<leader>W",
|
pick_term = "<leader>W",
|
||||||
-- below three are for spawning terminals
|
-- below three are for spawning terminals
|
||||||
new_horizontal = "<leader>h",
|
new_horizontal = "<leader>h",
|
||||||
|
@ -144,19 +147,22 @@ M.mappings = {
|
||||||
}
|
}
|
||||||
|
|
||||||
-- all plugins related mappings
|
-- all plugins related mappings
|
||||||
-- to get short info about a plugin, see the respective string in plugin_status, if not present, then info here
|
M.mappings.plugins = {
|
||||||
M.mappings.plugin = {
|
-- list open buffers up the top, easy switching too
|
||||||
bufferline = {
|
bufferline = {
|
||||||
next_buffer = "<TAB>", -- next buffer
|
next_buffer = "<TAB>", -- next buffer
|
||||||
prev_buffer = "<S-Tab>", -- previous buffer
|
prev_buffer = "<S-Tab>", -- previous buffer
|
||||||
},
|
},
|
||||||
|
-- search your commands/keymappings
|
||||||
cheatsheet = {
|
cheatsheet = {
|
||||||
default_keys = "<leader>dk",
|
default_keys = "<leader>dk",
|
||||||
user_keys = "<leader>uk",
|
user_keys = "<leader>uk",
|
||||||
},
|
},
|
||||||
|
-- easily (un)comment code, language aware
|
||||||
comment = {
|
comment = {
|
||||||
toggle = "<leader>/", -- trigger comment on a single/selected lines/number prefix
|
toggle = "<leader>/", -- toggle comment (works on multiple lines)
|
||||||
},
|
},
|
||||||
|
-- NeoVim 'home screen' on open
|
||||||
dashboard = {
|
dashboard = {
|
||||||
bookmarks = "<leader>bm",
|
bookmarks = "<leader>bm",
|
||||||
new_file = "<leader>fn", -- basically create a new buffer
|
new_file = "<leader>fn", -- basically create a new buffer
|
||||||
|
@ -164,18 +170,20 @@ M.mappings.plugin = {
|
||||||
session_load = "<leader>l", -- load a saved session
|
session_load = "<leader>l", -- load a saved session
|
||||||
session_save = "<leader>s", -- save a session
|
session_save = "<leader>s", -- save a session
|
||||||
},
|
},
|
||||||
-- note: this is an edditional mapping to escape, escape key will still work
|
-- map to <ESC> with no lag
|
||||||
better_escape = {
|
better_escape = { -- <ESC> will still work
|
||||||
esc_insertmode = { "jk" }, -- multiple mappings allowed
|
esc_insertmode = { "jk" }, -- multiple mappings allowed
|
||||||
},
|
},
|
||||||
|
-- file explorer/tree
|
||||||
nvimtree = {
|
nvimtree = {
|
||||||
-- file tree
|
|
||||||
toggle = "<C-n>",
|
toggle = "<C-n>",
|
||||||
focus = "<leader>e",
|
focus = "<leader>e",
|
||||||
},
|
},
|
||||||
|
-- universal code formatter
|
||||||
neoformat = {
|
neoformat = {
|
||||||
format = "<leader>fm",
|
format = "<leader>fm",
|
||||||
},
|
},
|
||||||
|
-- multitool for finding & picking things
|
||||||
telescope = {
|
telescope = {
|
||||||
buffers = "<leader>fb",
|
buffers = "<leader>fb",
|
||||||
find_files = "<leader>ff",
|
find_files = "<leader>ff",
|
||||||
|
@ -185,16 +193,19 @@ M.mappings.plugin = {
|
||||||
help_tags = "<leader>fh",
|
help_tags = "<leader>fh",
|
||||||
live_grep = "<leader>fw",
|
live_grep = "<leader>fw",
|
||||||
oldfiles = "<leader>fo",
|
oldfiles = "<leader>fo",
|
||||||
themes = "<leader>th",
|
themes = "<leader>th", -- NvChad theme picker
|
||||||
},
|
-- media previews within telescope finders
|
||||||
telescope_media = {
|
telescope_media = {
|
||||||
media_files = "<leader>fp",
|
media_files = "<leader>fp",
|
||||||
},
|
},
|
||||||
truezen = { -- distraction free modes mapping, hide statusline, tabline, line numbers
|
},
|
||||||
|
-- distraction free & minimalist UI mode
|
||||||
|
truezen = {
|
||||||
ataraxis_mode = "<leader>zz", -- center
|
ataraxis_mode = "<leader>zz", -- center
|
||||||
focus_mode = "<leader>zf",
|
focus_mode = "<leader>zf",
|
||||||
minimalistic_mode = "<leader>zm", -- as it is
|
minimalistic_mode = "<leader>zm", -- as it is
|
||||||
},
|
},
|
||||||
|
-- git integration & tooling
|
||||||
vim_fugitive = {
|
vim_fugitive = {
|
||||||
diff_get_2 = "<leader>gh",
|
diff_get_2 = "<leader>gh",
|
||||||
diff_get_3 = "<leader>gl",
|
diff_get_3 = "<leader>gl",
|
||||||
|
@ -203,26 +214,5 @@ M.mappings.plugin = {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
-- user custom mappings
|
|
||||||
-- e.g: name = { "mode" , "keys" , "cmd" , "options"}
|
|
||||||
-- name: can be empty or something unique with repect to other custom mappings
|
|
||||||
-- { mode, key, cmd } or name = { mode, key, cmd }
|
|
||||||
-- mode: usage: mode or { mode1, mode2 }, multiple modes allowed, available modes => :h map-modes,
|
|
||||||
-- keys: multiple keys allowed, same synxtax as modes
|
|
||||||
-- cmd: for vim commands, must use ':' at start and add <CR> at the end if want to execute
|
|
||||||
-- options: see :h nvim_set_keymap() opts section
|
|
||||||
M.custom.mappings = {
|
|
||||||
-- clear_all = {
|
|
||||||
-- "n",
|
|
||||||
-- "<leader>cc",
|
|
||||||
-- "gg0vG$d",
|
|
||||||
-- },
|
|
||||||
}
|
|
||||||
|
|
||||||
M.plugins = {
|
|
||||||
lspconfig = {
|
|
||||||
-- servers = {"html", "cssls"}
|
|
||||||
servers = {},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
return M
|
return M
|
||||||
|
|
|
@ -5,7 +5,8 @@ local config = utils.load_config()
|
||||||
local map = utils.map
|
local map = utils.map
|
||||||
|
|
||||||
local maps = config.mappings
|
local maps = config.mappings
|
||||||
local plugin_maps = maps.plugin
|
local plugin_maps = maps.plugins
|
||||||
|
local nvChad_options = config.options.nvChad
|
||||||
|
|
||||||
local cmd = vim.cmd
|
local cmd = vim.cmd
|
||||||
|
|
||||||
|
@ -32,17 +33,17 @@ M.misc = function()
|
||||||
|
|
||||||
local function optional_mappings()
|
local function optional_mappings()
|
||||||
-- don't yank text on cut ( x )
|
-- don't yank text on cut ( x )
|
||||||
if not config.options.copy_cut then
|
if not nvChad_options.copy_cut then
|
||||||
map({ "n", "v" }, "x", '"_x')
|
map({ "n", "v" }, "x", '"_x')
|
||||||
end
|
end
|
||||||
|
|
||||||
-- don't yank text on delete ( dd )
|
-- don't yank text on delete ( dd )
|
||||||
if not config.options.copy_del then
|
if not nvChad_options.copy_del then
|
||||||
map({ "n", "v" }, "dd", '"_dd')
|
map({ "n", "v" }, "dd", '"_dd')
|
||||||
end
|
end
|
||||||
|
|
||||||
-- navigation within insert mode
|
-- navigation within insert mode
|
||||||
if config.options.insert_nav then
|
if nvChad_options.insert_nav then
|
||||||
local inav = maps.insert_nav
|
local inav = maps.insert_nav
|
||||||
|
|
||||||
map("i", inav.backward, "<Left>")
|
map("i", inav.backward, "<Left>")
|
||||||
|
@ -54,7 +55,7 @@ M.misc = function()
|
||||||
end
|
end
|
||||||
|
|
||||||
-- easier navigation between windows
|
-- easier navigation between windows
|
||||||
if config.options.window_nav then
|
if nvChad_options.window_nav then
|
||||||
local wnav = maps.window_nav
|
local wnav = maps.window_nav
|
||||||
|
|
||||||
map("n", wnav.moveLeft, "<C-w>h")
|
map("n", wnav.moveLeft, "<C-w>h")
|
||||||
|
@ -64,11 +65,11 @@ M.misc = function()
|
||||||
end
|
end
|
||||||
|
|
||||||
-- check the theme toggler
|
-- check the theme toggler
|
||||||
if config.ui.theme_toggler.enabled then
|
if nvChad_options.theme_toggler then
|
||||||
map(
|
map(
|
||||||
"n",
|
"n",
|
||||||
maps.theme_toggler,
|
maps.theme_toggler,
|
||||||
":lua require('nvchad').toggle_theme(require('core.utils').load_config().ui.theme_toggler.fav_themes) <CR>"
|
":lua require('nvchad').toggle_theme(require('core.utils').load_config().ui.theme_toggler) <CR>"
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -113,7 +114,7 @@ M.misc = function()
|
||||||
end
|
end
|
||||||
|
|
||||||
local function user_config_mappings()
|
local function user_config_mappings()
|
||||||
local custom_maps = config.custom.mappings or ""
|
local custom_maps = config.mappings.custom or ""
|
||||||
if type(custom_maps) ~= "table" then
|
if type(custom_maps) ~= "table" then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
@ -190,7 +191,7 @@ M.telescope = function()
|
||||||
end
|
end
|
||||||
|
|
||||||
M.telescope_media = function()
|
M.telescope_media = function()
|
||||||
local m = plugin_maps.telescope_media
|
local m = plugin_maps.telescope.telescope_media
|
||||||
|
|
||||||
map("n", m.media_files, ":Telescope media_files <CR>")
|
map("n", m.media_files, ":Telescope media_files <CR>")
|
||||||
end
|
end
|
||||||
|
|
|
@ -37,7 +37,7 @@ opt.splitright = true
|
||||||
opt.tabstop = options.tabstop
|
opt.tabstop = options.tabstop
|
||||||
opt.termguicolors = true
|
opt.termguicolors = true
|
||||||
opt.timeoutlen = options.timeoutlen
|
opt.timeoutlen = options.timeoutlen
|
||||||
opt.undofile = options.permanent_undo
|
opt.undofile = options.undofile
|
||||||
|
|
||||||
-- interval for writing swap file to disk, also used by gitsigns
|
-- interval for writing swap file to disk, also used by gitsigns
|
||||||
opt.updatetime = options.updatetime
|
opt.updatetime = options.updatetime
|
||||||
|
|
|
@ -117,8 +117,8 @@ end
|
||||||
-- hide statusline
|
-- hide statusline
|
||||||
-- tables fetched from load_config function
|
-- tables fetched from load_config function
|
||||||
M.hide_statusline = function()
|
M.hide_statusline = function()
|
||||||
local hidden = require("core.utils").load_config().ui.plugin.statusline.hidden
|
local hidden = require("core.utils").load_config().plugins.options.statusline.hidden
|
||||||
local shown = require("core.utils").load_config().ui.plugin.statusline.shown
|
local shown = require("core.utils").load_config().plugins.options.statusline.shown
|
||||||
local api = vim.api
|
local api = vim.api
|
||||||
local buftype = api.nvim_buf_get_option("%", "ft")
|
local buftype = api.nvim_buf_get_option("%", "ft")
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
-- IMPORTANT NOTE : This is the user config, can be edited. Will be preserved if updated with internal updater
|
-- IMPORTANT NOTE : This is the user config, can be edited. Will be preserved if updated with internal updater
|
||||||
|
|
||||||
local M = {}
|
local M = {}
|
||||||
M.ui, M.options, M.plugin_status, M.mappings, M.custom = {}, {}, {}, {}, {}
|
M.options, M.ui, M.mappings, M.plugins = {}, {}, {}, {}
|
||||||
|
|
||||||
-- To use this file, copy the strucutre of `core/default_config.lua`,
|
-- To use this file, copy the strucutre of `core/default_config.lua`,
|
||||||
-- then define your new var, an example of setting relative number:
|
-- then define your new var, an example of setting relative number:
|
||||||
|
@ -11,25 +11,15 @@ M.ui, M.options, M.plugin_status, M.mappings, M.custom = {}, {}, {}, {}, {}
|
||||||
-- }
|
-- }
|
||||||
|
|
||||||
|
|
||||||
-- To change the Packer `config` of a plugin that comes with NvChad,
|
|
||||||
-- add a table entry below matching the plugin github name
|
|
||||||
-- '-' -> '_', remove any '.lua', '.nvim' extensions
|
|
||||||
-- this string will be called in a `require`
|
|
||||||
-- use "(custom.configs).my_func()" to call a function
|
|
||||||
-- use "custom.blankline" to call a file
|
|
||||||
M.custom.default_plugin_overrides = {
|
|
||||||
-- indent_blankline = "custom.blankline",
|
|
||||||
}
|
|
||||||
|
|
||||||
-- user custom mappings
|
-- user custom mappings
|
||||||
-- e.g: name = { "mode" , "keys" , "cmd" , "options"}
|
-- format: name = { "mode" , "keys" , "cmd" , "options"}
|
||||||
-- name: can be empty or something unique with repect to other custom mappings
|
-- name: can be empty or something unique with repect to other custom mappings
|
||||||
-- { mode, key, cmd } or name = { mode, key, cmd }
|
-- { mode, key, cmd } or name = { mode, key, cmd }
|
||||||
-- mode: usage: mode or { mode1, mode2 }, multiple modes allowed, available modes => :h map-modes,
|
-- mode: usage: mode or { mode1, mode2 }, multiple modes allowed, available modes => :h map-modes,
|
||||||
-- keys: multiple keys allowed, same synxtax as modes
|
-- keys: multiple keys allowed, same synxtax as modes
|
||||||
-- cmd: for vim commands, must use ':' at start and add <CR> at the end if want to execute
|
-- cmd: for vim commands, must use ':' at start and add <CR> at the end if want to execute
|
||||||
-- options: see :h nvim_set_keymap() opts section
|
-- options: see :h nvim_set_keymap() opts section
|
||||||
M.custom.mappings = {
|
M.mappings.custom = {
|
||||||
-- clear_all = {
|
-- clear_all = {
|
||||||
-- "n",
|
-- "n",
|
||||||
-- "<leader>cc",
|
-- "<leader>cc",
|
||||||
|
@ -37,4 +27,23 @@ M.custom.mappings = {
|
||||||
-- },
|
-- },
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- NvChad included plugin options & overrides
|
||||||
|
M.plugins = {
|
||||||
|
options = {
|
||||||
|
-- lspconfig = {
|
||||||
|
-- -- servers = {"html", "cssls"}
|
||||||
|
-- servers = {},
|
||||||
|
-- },
|
||||||
|
},
|
||||||
|
-- To change the Packer `config` of a plugin that comes with NvChad,
|
||||||
|
-- add a table entry below matching the plugin github name
|
||||||
|
-- '-' -> '_', remove any '.lua', '.nvim' extensions
|
||||||
|
-- this string will be called in a `require`
|
||||||
|
-- use "(custom.configs).my_func()" to call a function
|
||||||
|
-- use "custom.blankline" to call a file
|
||||||
|
default_plugin_config_replace = {
|
||||||
|
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
@ -57,7 +57,7 @@ capabilities.textDocument.completion.completionItem.resolveSupport = {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
local servers = require("core.utils").load_config().plugins.lspconfig.servers
|
local servers = require("core.utils").load_config().plugins.options.lspconfig.servers
|
||||||
|
|
||||||
for _, lsp in ipairs(servers) do
|
for _, lsp in ipairs(servers) do
|
||||||
nvim_lsp[lsp].setup {
|
nvim_lsp[lsp].setup {
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
local config = require("core.utils").load_config()
|
|
||||||
|
|
||||||
M.autopairs = function()
|
M.autopairs = function()
|
||||||
local present1, autopairs = pcall(require, "nvim-autopairs")
|
local present1, autopairs = pcall(require, "nvim-autopairs")
|
||||||
local present2, autopairs_completion = pcall(require, "nvim-autopairs.completion.cmp")
|
local present2, autopairs_completion = pcall(require, "nvim-autopairs.completion.cmp")
|
||||||
|
@ -25,7 +23,7 @@ M.autosave = function()
|
||||||
end
|
end
|
||||||
|
|
||||||
autosave.setup {
|
autosave.setup {
|
||||||
enabled = config.options.plugin.autosave, -- takes boolean value from chadrc.lua
|
enabled = config.plugins.options.autosave, -- takes boolean value from init.lua
|
||||||
execution_message = "autosaved at : " .. vim.fn.strftime "%H:%M:%S",
|
execution_message = "autosaved at : " .. vim.fn.strftime "%H:%M:%S",
|
||||||
events = { "InsertLeave", "TextChanged" },
|
events = { "InsertLeave", "TextChanged" },
|
||||||
conditions = {
|
conditions = {
|
||||||
|
@ -40,10 +38,10 @@ M.autosave = function()
|
||||||
end
|
end
|
||||||
|
|
||||||
M.better_escape = function()
|
M.better_escape = function()
|
||||||
local m = require("core.utils").load_config().mappings.plugin.better_escape.esc_insertmode
|
local config = require("core.utils").load_config()
|
||||||
require("better_escape").setup {
|
require("better_escape").setup {
|
||||||
mapping = m,
|
mapping = config.mappings.plugins.better_escape.esc_insertmode,
|
||||||
timeout = config.options.plugin.esc_insertmode_timeout or 300,
|
timeout = config.plugins.options.esc_insertmode_timeout,
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ local icon_styles = {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
local user_statusline_style = require("core.utils").load_config().ui.plugin.statusline.style
|
local user_statusline_style = require("core.utils").load_config().plugins.options.statusline.style
|
||||||
local statusline_style = icon_styles[user_statusline_style]
|
local statusline_style = icon_styles[user_statusline_style]
|
||||||
|
|
||||||
-- Initialize the components table
|
-- Initialize the components table
|
||||||
|
|
|
@ -7,16 +7,14 @@ end
|
||||||
local use = packer.use
|
local use = packer.use
|
||||||
|
|
||||||
return packer.startup(function()
|
return packer.startup(function()
|
||||||
local plugin_status = require("core.utils").load_config().plugin_status
|
local plugin_status = require("core.utils").load_config().plugins.plugin_status
|
||||||
|
|
||||||
-- local plugin_overrides = require("core.utils").load_config().custom.plugin_overrides
|
|
||||||
|
|
||||||
-- FUNCTION: override_req, use `chadrc` plugin config override if present
|
-- FUNCTION: override_req, use `chadrc` plugin config override if present
|
||||||
-- name = name inside `default_config` / `chadrc`
|
-- name = name inside `default_config` / `chadrc`
|
||||||
-- default_req = run this if 'name' does not exist in `default_config` / `chadrc`
|
-- default_req = run this if 'name' does not exist in `default_config` / `chadrc`
|
||||||
-- if override or default_req start with `(`, then strip that and assume override calls a function, not a whole file
|
-- if override or default_req start with `(`, then strip that and assume override calls a function, not a whole file
|
||||||
local override_req = function(name, default_req)
|
local override_req = function(name, default_req)
|
||||||
local override = require("core.utils").load_config().custom.default_plugin_overrides[name]
|
local override = require("core.utils").load_config().plugins.default_plugin_config_replace[name]
|
||||||
local result
|
local result
|
||||||
|
|
||||||
if override == nil then
|
if override == nil then
|
||||||
|
@ -166,7 +164,7 @@ return packer.startup(function()
|
||||||
"Pocco81/AutoSave.nvim",
|
"Pocco81/AutoSave.nvim",
|
||||||
config = override_req("autosave", "(plugins.configs.others).autosave()"),
|
config = override_req("autosave", "(plugins.configs.others).autosave()"),
|
||||||
cond = function()
|
cond = function()
|
||||||
return require("core.utils").load_config().options.plugin.autosave == true
|
return require("core.utils").load_config().plugins.options.autosave == true
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue