From ca1ad15ad259d09ea8abec5a68c66452f04b71ad Mon Sep 17 00:00:00 2001 From: Galen Rowell Date: Sat, 4 Sep 2021 00:03:25 +1000 Subject: [PATCH] refactor: Cleaning chadrc, moved to custom & moved default_config to core --- lua/chadrc.lua | 224 ------------------ lua/{ => core}/default_config.lua | 13 +- lua/core/mappings.lua | 4 +- lua/core/utils.lua | 6 +- lua/custom/chadrc.lua | 29 +++ .../configs/{chadsheet.lua => cheatsheet.lua} | 14 +- lua/plugins/init.lua | 4 +- 7 files changed, 53 insertions(+), 241 deletions(-) delete mode 100644 lua/chadrc.lua rename lua/{ => core}/default_config.lua (96%) create mode 100644 lua/custom/chadrc.lua rename lua/plugins/configs/{chadsheet.lua => cheatsheet.lua} (66%) diff --git a/lua/chadrc.lua b/lua/chadrc.lua deleted file mode 100644 index 1fea4ad..0000000 --- a/lua/chadrc.lua +++ /dev/null @@ -1,224 +0,0 @@ --- IMPORTANT NOTE : This is the user config, can be edited. Will be preserved if updated with internal updater - -local M = {} -M.ui, M.options, M.plugin_status, M.mappings, M.custom = {}, {}, {}, {}, {} - --- non plugin ui configs, available without any plugins -M.ui = { - italic_comments = false, - - -- theme to be used, to see all available themes, open the theme switcher by + th - theme = "onedark", - - -- theme toggler, toggle between two themes, see theme_toggleer mappings - theme_toggler = { - enabled = false, - fav_themes = { - "onedark", - "one-light", - }, - }, - - -- 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 - transparency = false, -} - --- plugin related ui options -M.ui.plugin = { - -- statusline related options - statusline = { - -- these are filetypes, not pattern matched - -- if a filetype is present in shown, it will always show the statusline, irrespective of filetypes in hidden - hidden = {}, - shown = {}, - -- default, round , slant , block , arrow - 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 - 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 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 - -- timeout to be used for using escape with a key combination, see mappings.plugin.better_escape - esc_insertmode_timeout = 300, -} - --- 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 -- --- non plugin mappings -M.mappings = { - -- close current focused buffer - close_buffer = "x", - copy_whole_file = "", -- copy all contents of the current buffer - - -- navigation in insert mode, only if enabled in options - insert_nav = { - backward = "", - end_of_line = "", - forward = "", - next_line = "", - prev_line = "", - top_of_line = "", - }, - - line_number_toggle = "n", -- show or hide line number - new_buffer = "", -- open a new buffer - new_tab = "b", -- open a new vim tab - save_file = "", -- save file using :w - theme_toggler = "tt", -- for theme toggler, see in ui.theme_toggler - - -- terminal related mappings - terminal = { - -- multiple mappings can be given for esc_termmode and esc_hide_termmode - -- get out of terminal mode - esc_termmode = { "jk" }, -- multiple mappings allowed - -- 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 - -- show hidden terminal buffers in a telescope picker - pick_term = "W", - -- below three are for spawning terminals - new_horizontal = "h", - new_vertical = "v", - new_window = "w", - }, - - -- update nvchad from nvchad, chadness 101 - update_nvchad = "uu", -} - --- 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.plugin = { - bufferline = { - next_buffer = "", -- next buffer - prev_buffer = "", -- previous buffer - --better window movement - moveLeft = "", - moveRight = "", - moveUp = "", - moveDown = "", - }, - chadsheet = { - default_keys = "dk", - user_keys = "uk", - }, - comment = { - toggle = "/", -- trigger comment on a single/selected lines/number prefix - }, - dashboard = { - bookmarks = "bm", - new_file = "fn", -- basically create a new buffer - open = "db", -- open dashboard - session_load = "l", -- load a saved session - session_save = "s", -- save a session - }, - -- note: this is an edditional mapping to escape, escape key will still work - better_escape = { - esc_insertmode = { "jk" }, -- multiple mappings allowed - }, - nvimtree = { - toggle = "", -- file manager - }, - neoformat = { - format = "fm", - }, - telescope = { - buffers = "fb", - find_files = "ff", - git_commits = "cm", - git_status = "gt", - help_tags = "fh", - live_grep = "fw", - oldfiles = "fo", - themes = "th", - }, - telescope_media = { - media_files = "fp", - }, - truezen = { -- distraction free modes mapping, hide statusline, tabline, line numbers - ataraxis_mode = "zz", -- center - focus_mode = "zf", - minimalistic_mode = "zm", -- as it is - }, - vim_fugitive = { - diff_get_2 = "gh", - diff_get_3 = "gl", - git = "gs", - git_blame = "gb", - }, -} - --- 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 at the end if want to execute --- options: see :h nvim_set_keymap() opts section -M.custom.mappings = { - -- clear_all = { - -- "n", - -- "cc", - -- "gg0vG$d", - -- }, -} - -M.plugins = { - lspconfig = { - -- servers = {"html", "cssls"} - servers = {}, - }, -} - -return M diff --git a/lua/default_config.lua b/lua/core/default_config.lua similarity index 96% rename from lua/default_config.lua rename to lua/core/default_config.lua index c8a9a36..069faeb 100644 --- a/lua/default_config.lua +++ b/lua/core/default_config.lua @@ -1,4 +1,5 @@ --- IMPORTANT NOTE : This is default config, so dont change anything here. (check chadrc.lua instead) +-- IMPORTANT NOTE : This is default config, so dont change anything here. +-- use custom/chadrc.lua instead local M = {} M.ui, M.options, M.plugin_status, M.mappings, M.custom = {}, {}, {}, {}, {} @@ -147,8 +148,14 @@ M.mappings.plugin = { bufferline = { next_buffer = "", -- next buffer prev_buffer = "", -- previous buffer + --TODO move out of bufferline + --better window movement + moveLeft = "", + moveRight = "", + moveUp = "", + moveDown = "", }, - chadsheet = { + cheatsheet = { default_keys = "dk", user_keys = "uk", }, @@ -160,7 +167,7 @@ M.mappings.plugin = { new_file = "fn", -- basically create a new buffer open = "db", -- open dashboard session_load = "l", -- load a saved session - session_save = "s", + session_save = "s", -- save a session }, -- note: this is an edditional mapping to escape, escape key will still work better_escape = { diff --git a/lua/core/mappings.lua b/lua/core/mappings.lua index 568b2af..2e86198 100644 --- a/lua/core/mappings.lua +++ b/lua/core/mappings.lua @@ -131,8 +131,8 @@ M.bufferline = function() map("n", m.moveDown, "j") end -M.chadsheet = function() - local m = plugin_maps.chadsheet +M.cheatsheet = function() + local m = plugin_maps.cheatsheet map("n", m.default_keys, ":lua require('cheatsheet').show_cheatsheet_telescope() ") map( diff --git a/lua/core/utils.lua b/lua/core/utils.lua index 91e31d6..df3f81d 100644 --- a/lua/core/utils.lua +++ b/lua/core/utils.lua @@ -152,9 +152,9 @@ M.load_config = function(reload) "['mappings']['terminal']['esc_hide_termmode']", } - local default_config = "default_config" + local default_config = "core.default_config" local config_name = vim.g.nvchad_user_config or "chadrc" - local config_file = vim.fn.stdpath "config" .. "/lua/" .. config_name .. ".lua" + local config_file = vim.fn.stdpath "config" .. "/lua/custom/" .. config_name .. ".lua" -- unload the modules if force reload if reload then @@ -170,7 +170,7 @@ M.load_config = function(reload) -- print warning texts if user config file is present -- check if the user config is present if vim.fn.filereadable(vim.fn.glob(config_file)) == 1 then - local present, config = pcall(require, config_name) + local present, config = pcall(require, "custom/" .. config_name) if present then -- make sure the returned value is table if type(config) == "table" then diff --git a/lua/custom/chadrc.lua b/lua/custom/chadrc.lua new file mode 100644 index 0000000..3f3d168 --- /dev/null +++ b/lua/custom/chadrc.lua @@ -0,0 +1,29 @@ +-- IMPORTANT NOTE : This is the user config, can be edited. Will be preserved if updated with internal updater + +local M = {} +M.ui, M.options, M.plugin_status, M.mappings, M.custom = {}, {}, {}, {}, {} + +-- To use this file, copy the strucutre of `core/default_config.lua`, +-- then define your new var, an example of setting relative number: + +-- M.options = { +-- relativenumber = true, +-- } + +-- 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 at the end if want to execute +-- options: see :h nvim_set_keymap() opts section +M.custom.mappings = { + -- clear_all = { + -- "n", + -- "cc", + -- "gg0vG$d", + -- }, +} + +return M diff --git a/lua/plugins/configs/chadsheet.lua b/lua/plugins/configs/cheatsheet.lua similarity index 66% rename from lua/plugins/configs/chadsheet.lua rename to lua/plugins/configs/cheatsheet.lua index 0a6cc02..39d0b1f 100644 --- a/lua/plugins/configs/chadsheet.lua +++ b/lua/plugins/configs/cheatsheet.lua @@ -1,4 +1,4 @@ -local present, chadsheet = pcall(require, "cheatsheet") +local present, cheatsheet = pcall(require, "cheatsheet") if not present then return @@ -8,28 +8,28 @@ local mappings = require("core.utils").load_config().mappings -- add user mappings to the cheetsheet -- improve this function to not hardcode plugin -local function add_to_chadsheet(section, keymap, desc) +local function add_to_cheatsheet(section, keymap, desc) if section == "plugin" then for sec, key in pairs(mappings.plugin) do - add_to_chadsheet(sec, key, sec) + add_to_cheatsheet(sec, key, sec) end else if type(keymap) == "table" then for sec, key in pairs(keymap) do if type(sec) == "number" then - add_to_chadsheet(section, key, desc or section) + add_to_cheatsheet(section, key, desc or section) else - add_to_chadsheet(sec, key, desc or section) + add_to_cheatsheet(sec, key, desc or section) end end else - chadsheet.add_cheat(section, keymap, desc or "Misc") + cheatsheet.add_cheat(section, keymap, desc or "Misc") end end end for section, keymap in pairs(mappings) do - add_to_chadsheet(section, keymap) + add_to_cheatsheet(section, keymap) end require("cheatsheet").setup { diff --git a/lua/plugins/init.lua b/lua/plugins/init.lua index 01456ce..e9e23a1 100644 --- a/lua/plugins/init.lua +++ b/lua/plugins/init.lua @@ -280,10 +280,10 @@ return packer.startup(function() disable = not plugin_status.cheatsheet, after = "telescope.nvim", config = function() - require "plugins.configs.chadsheet" + require "plugins.configs.cheatsheet" end, setup = function() - require("core.mappings").chadsheet() + require("core.mappings").cheatsheet() end, }, {