mappings|init: Move init mappings to a function, only call when required | Show err message for init

because mappings.lua is called from multiple places, so there should't be any code that executes without calling a specific function

show error message when something fails in init.lua
makes no sense to not

rearrange plugin functions alphabetically, but keep misc at top
This commit is contained in:
Akianonymus 2021-08-19 08:45:59 +05:30
parent 978e672038
commit 439832a588
2 changed files with 119 additions and 115 deletions

View File

@ -4,5 +4,9 @@ local chad_modules = {
} }
for i = 1, #chad_modules, 1 do for i = 1, #chad_modules, 1 do
pcall(require, chad_modules[i]) if not pcall(require, chad_modules[i]) then
error("Error loading " .. chad_modules[i] .. "\n")
end
end end
require("mappings").misc()

View File

@ -1,7 +1,6 @@
local user_map = require("chadrc").mappings local user_map = require("chadrc").mappings
local miscMap = user_map.misc local miscMap = user_map.misc
local M = {}
local cmd = vim.cmd local cmd = vim.cmd
local function map(mode, lhs, rhs, opts) local function map(mode, lhs, rhs, opts)
@ -12,64 +11,113 @@ local function map(mode, lhs, rhs, opts)
vim.api.nvim_set_keymap(mode, lhs, rhs, options) vim.api.nvim_set_keymap(mode, lhs, rhs, options)
end end
local M = {}
local opt = {} local opt = {}
-- dont copy any deleted text , this is disabled by default so uncomment the below mappings if you want them -- these mappings will only be called during initialization
--[[ remove this line M.misc = function()
-- dont copy any deleted text , this is disabled by default so uncomment the below mappings if you want them
-- map("n", "dd", [=[ "_dd ]=], opt)
-- map("v", "dd", [=[ "_dd ]=], opt)
-- map("v", "x", [=[ "_x ]=], opt)
-- todo: this should be configurable via chadrc
map("n", "dd", [=[ "_dd ]=], opt) -- Don't copy the replaced text after pasting in visual mode
map("v", "dd", [=[ "_dd ]=], opt) map("v", "p", '"_dP', opt)
map("v", "x", [=[ "_x ]=], opt)
this line too ]] -- Allow moving the cursor through wrapped lines with j, k, <Up> and <Down>
-- -- http://www.reddit.com/r/vim/comments/2k4cbr/problem_with_gj_and_gk/
-- empty mode is same as using :map
map("", "j", 'v:count ? "j" : "gj"', { expr = true })
map("", "k", 'v:count ? "k" : "gk"', { expr = true })
map("", "<Down>", 'v:count ? "j" : "gj"', { expr = true })
map("", "<Up>", 'v:count ? "k" : "gk"', { expr = true })
-- Don't copy the replaced text after pasting in visual mode -- copy whole file content
map("v", "p", '"_dP', opt) map("n", miscMap.copywhole_file, ":%y+<CR>", opt)
-- Allow moving the cursor through wrapped lines with j, k, <Up> and <Down> -- toggle numbers
-- http://www.reddit.com/r/vim/comments/2k4cbr/problem_with_gj_and_gk/ map("n", miscMap.toggle_linenr, ":set nu!<CR>", opt)
-- empty mode is same as using :map
map("", "j", 'v:count ? "j" : "gj"', { expr = true })
map("", "k", 'v:count ? "k" : "gk"', { expr = true })
map("", "<Down>", 'v:count ? "j" : "gj"', { expr = true })
map("", "<Up>", 'v:count ? "k" : "gk"', { expr = true })
-- copy whole file content -- terminals
map("n", miscMap.copywhole_file, ":%y+<CR>", opt) local function terms()
local m = user_map.terms
-- toggle numbers -- get out of terminal mode
map("n", miscMap.toggle_linenr, ":set nu!<CR>", opt) map("t", m.esc_termmode, "<C-\\><C-n>", opt)
-- hide a term from within terminal mode
map("t", m.esc_hide_termmode, "<C-\\><C-n> :lua require('utils').close_buffer() <CR>", opt)
-- pick a hidden term
map("n", m.pick_term, ":Telescope terms <CR>", opt)
-- terminals -- Open terminals
local function terms() -- TODO this opens on top of an existing vert/hori term, fixme
local m = user_map.terms map("n", m.new_wind, ":execute 'terminal' | let b:term_type = 'wind' | startinsert <CR>", opt)
map("n", m.new_vert, ":execute 'vnew +terminal' | let b:term_type = 'vert' | startinsert <CR>", opt)
map("n", m.new_hori, ":execute 15 .. 'new +terminal' | let b:term_type = 'hori' | startinsert <CR>", opt)
end
terms()
-- get out of terminal mode -- ctrl + s to save file
map("t", m.esc_termmode, "<C-\\><C-n>", opt) map("n", "<C-s>", ":w <CR>", opt)
-- hide a term from within terminal mode
map("t", m.esc_hide_termmode, "<C-\\><C-n> :lua require('utils').close_buffer() <CR>", opt)
-- pick a hidden term
map("n", m.pick_term, ":Telescope terms <CR>", opt)
-- Open terminals -- use ESC to turn off search highlighting
-- TODO this opens on top of an existing vert/hori term, fixme map("n", "<Esc>", ":noh<CR>", opt)
map("n", m.new_wind, ":execute 'terminal' | let b:term_type = 'wind' | startinsert <CR>", opt)
map("n", m.new_vert, ":execute 'vnew +terminal' | let b:term_type = 'vert' | startinsert <CR>", opt) -- navigation within insert mode
map("n", m.new_hori, ":execute 15 .. 'new +terminal' | let b:term_type = 'hori' | startinsert <CR>", opt) local check_insertNav = require("chadrc").options.enable_insertNav
if check_insertNav == true then
local m = user_map.insert_nav
map("i", m.forward, "<Right>", opt)
map("i", m.backward, "<Left>", opt)
map("i", m.top_of_line, "<ESC>^i", opt)
map("i", m.end_of_line, "<End>", opt)
map("i", m.next_line, "<Up>", opt)
map("i", m.prev_line, "<Down>", opt)
end
-- check the theme toggler
local theme_toggler = require("chadrc").ui.theme_toggler
if theme_toggler == true then
local m = user_map.misc.theme_toggle
map("n", m, ":lua require('utils').toggle_theme(require('chadrc').ui.fav_themes)<CR>", opt)
end
-- Packer commands till because we are not loading it at startup
cmd "silent! command PackerCompile lua require 'pluginList' require('packer').compile()"
cmd "silent! command PackerInstall lua require 'pluginList' require('packer').install()"
cmd "silent! command PackerStatus lua require 'pluginList' require('packer').status()"
cmd "silent! command PackerSync lua require 'pluginList' require('packer').sync()"
cmd "silent! command PackerUpdate lua require 'pluginList' require('packer').update()"
end end
terms() M.bufferline = function()
local m = user_map.bufferline
M.truezen = function() map("n", m.new_buffer, ":enew<CR>", opt) -- new buffer
local m = user_map.truezen map("n", m.newtab, ":tabnew<CR>", opt) -- new tab
map("n", m.close, ":lua require('utils').close_buffer() <CR>", opt) -- close buffer
map("n", m.ataraxisMode, ":TZAtaraxis<CR>", opt) -- move between tabs
map("n", m.minimalisticmode, ":TZMinimalist<CR>", opt)
map("n", m.focusmode, ":TZFocus<CR>", opt) map("n", m.cycleNext, ":BufferLineCycleNext<CR>", opt)
map("n", m.cyclePrev, ":BufferLineCyclePrev<CR>", opt)
end end
map("n", "<C-s>", ":w <CR>", opt) M.chadsheet = function()
local m = user_map.chadsheet
map("n", m.default_keys, ":lua require('cheatsheet').show_cheatsheet_telescope()<CR>", opt)
map(
"n",
m.user_keys,
":lua require('cheatsheet').show_cheatsheet_telescope{bundled_cheatsheets = false, bundled_plugin_cheatsheets = false }<CR>",
opt
)
end
M.comment_nvim = function() M.comment_nvim = function()
local m = user_map.comment_nvim.comment_toggle local m = user_map.comment_nvim.comment_toggle
@ -77,6 +125,25 @@ M.comment_nvim = function()
map("v", m, ":CommentToggle<CR>", opt) map("v", m, ":CommentToggle<CR>", opt)
end end
M.dashboard = function()
local m = user_map.dashboard
map("n", m.open, ":Dashboard<CR>", opt)
map("n", m.newfile, ":DashboardNewFile<CR>", opt)
map("n", m.bookmarks, ":DashboardJumpMarks<CR>", opt)
map("n", m.sessionload, ":SessionLoad<CR>", opt)
map("n", m.sessionsave, ":SessionSave<CR>", opt)
end
M.fugitive = function()
local m = user_map.fugitive
map("n", m.Git, ":Git<CR>", opt)
map("n", m.diffget_2, ":diffget //2<CR>", opt)
map("n", m.diffget_3, ":diffget //3<CR>", opt)
map("n", m.git_blame, ":Git blame<CR>", opt)
end
M.nvimtree = function() M.nvimtree = function()
local m = user_map.nvimtree.treetoggle local m = user_map.nvimtree.treetoggle
@ -88,14 +155,12 @@ M.neoformat = function()
map("n", m, ":Neoformat<CR>", opt) map("n", m, ":Neoformat<CR>", opt)
end end
M.dashboard = function() M.truezen = function()
local m = user_map.dashboard local m = user_map.truezen
map("n", m.open, ":Dashboard<CR>", opt) map("n", m.ataraxisMode, ":TZAtaraxis<CR>", opt)
map("n", m.newfile, ":DashboardNewFile<CR>", opt) map("n", m.minimalisticmode, ":TZMinimalist<CR>", opt)
map("n", m.bookmarks, ":DashboardJumpMarks<CR>", opt) map("n", m.focusmode, ":TZFocus<CR>", opt)
map("n", m.sessionload, ":SessionLoad<CR>", opt)
map("n", m.sessionsave, ":SessionSave<CR>", opt)
end end
M.telescope = function() M.telescope = function()
@ -116,69 +181,4 @@ M.telescope_media = function()
map("n", m.media_files, ":Telescope media_files <CR>", opt) map("n", m.media_files, ":Telescope media_files <CR>", opt)
end end
M.chadsheet = function()
local m = user_map.chadsheet
map("n", m.default_keys, ":lua require('cheatsheet').show_cheatsheet_telescope()<CR>", opt)
map(
"n",
m.user_keys,
":lua require('cheatsheet').show_cheatsheet_telescope{bundled_cheatsheets = false, bundled_plugin_cheatsheets = false }<CR>",
opt
)
end
M.bufferline = function()
local m = user_map.bufferline
map("n", m.new_buffer, ":enew<CR>", opt) -- new buffer
map("n", m.newtab, ":tabnew<CR>", opt) -- new tab
map("n", m.close, ":lua require('utils').close_buffer() <CR>", opt) -- close buffer
-- move between tabs
map("n", m.cycleNext, ":BufferLineCycleNext<CR>", opt)
map("n", m.cyclePrev, ":BufferLineCyclePrev<CR>", opt)
end
-- use ESC to turn off search highlighting
map("n", "<Esc>", ":noh<CR>", opt)
-- Packer commands till because we are not loading it at startup
cmd "silent! command PackerCompile lua require 'pluginList' require('packer').compile()"
cmd "silent! command PackerInstall lua require 'pluginList' require('packer').install()"
cmd "silent! command PackerStatus lua require 'pluginList' require('packer').status()"
cmd "silent! command PackerSync lua require 'pluginList' require('packer').sync()"
cmd "silent! command PackerUpdate lua require 'pluginList' require('packer').update()"
M.fugitive = function()
local m = user_map.fugitive
map("n", m.Git, ":Git<CR>", opt)
map("n", m.diffget_2, ":diffget //2<CR>", opt)
map("n", m.diffget_3, ":diffget //3<CR>", opt)
map("n", m.git_blame, ":Git blame<CR>", opt)
end
-- navigation within insert mode
local check_insertNav = require("chadrc").options.enable_insertNav
if check_insertNav == true then
local m = user_map.insert_nav
map("i", m.forward, "<Right>", opt)
map("i", m.backward, "<Left>", opt)
map("i", m.top_of_line, "<ESC>^i", opt)
map("i", m.end_of_line, "<End>", opt)
map("i", m.next_line, "<Up>", opt)
map("i", m.prev_line, "<Down>", opt)
end
local theme_toggler = require("chadrc").ui.theme_toggler
if theme_toggler == true then
local m = user_map.misc.theme_toggle
map("n", m, ":lua require('utils').toggle_theme(require('chadrc').ui.fav_themes)<CR>", opt)
end
return M return M