add zen mode

master
blob42 9 months ago
parent 896a05b16d
commit 0c1681d104

@ -1,6 +1,9 @@
-- n, v, i, t, c = mode name.s
local opt = vim.opt
local g = vim.g
local function termcodes(str)
return vim.api.nvim_replace_termcodes(str, true, true, true)
end
@ -97,11 +100,37 @@ M.general = { --{{{
["<leader>Y"] = { "<cmd> %y+ <CR>", "copy whole file" },
-- line numbers
["<BS>n"] = { "<cmd> set nu!<CR><cmd> set rnu!<CR>", "toggle line number" },
["<BS>N"] = { "<cmd> set nu!<CR><cmd> set rnu!<CR>", "toggle line number" },
["<BS>ts"] = {function()
if g.sign_column_enbaled then
opt.signcolumn="no"
g.sign_column_enbaled = false
else
opt.signcolumn="yes"
g.sign_column_enbaled = true
end
end, "toggle sign column" },
["<BS>z"] = { function()
require("spike.utils").zenmode()
end, "silent mode (no distraction)" },
["<BS>Z"] = { function()
require("spike.utils").zenmode(true)
end, "maximum zen" },
["<BS>qz"] = { function()
require("spike.utils").exitzen()
end, "exit zen" },
["<BS>zz"] = { function()
require("spike.utils").togglezen()
end, "toggle zen" },
-- option toggle cursor line
["<BS>l"] = { "<cmd> set cul!<CR>", "toggle cursor line" },
["<BS>c"] = { "<cmd>cclose<CR><cmd>lclose<CR>", "close quickfix" },
["<BS>d"] = { "<cmd>DelayTrainToggle<CR>", "disable delay train" },
@ -1122,9 +1151,20 @@ M.navigator = {
M.refactoring = {
plugin = true,
v = {
["<leader>rr"] = {":lua require'refactoring'.select_refactor()<CR>", "refactoring using telescope", opts = { expr = false }},
}
x = {
["<leader>rr"] = {
function()
require('telescope').extensions.refactoring.refactors()
end,
"refactoring using telescope", opts = { expr = false }},
},
n = {
["<leader>rr"] = {
function()
require('telescope').extensions.refactoring.refactors()
end,
"refactoring using telescope", opts = { expr = false }},
},
}
M.null_ls = {

@ -1,5 +1,7 @@
local autocmd = vim.api.nvim_create_autocmd
local api = vim.api
local opt = vim.opt
local g = vim.g
local M = {}
M["unload_lua_ns"] = function (prefix)
@ -86,6 +88,52 @@ M.lazy_load_module = function(patterns, plugin)
})
end
M.togglezen = function()
if g.zenmode then
M.exitzen()
else
M.zenmode(true)
end
end
--- disable all clutter from UI
---@param full? boolean maximum zen
M.zenmode = function(full)
opt.colorcolumn= '0'
opt.signcolumn = 'no'
g.indent_blankline_show_current_context = false
local ok, indent = pcall(require, "indent_blankline")
if ok then
indent.refresh()
end
opt.listchars:remove("eol")
opt.listchars:append("tab: ")
if full then
opt.number = false
opt.relativenumber = false
-- opt.listchars:append("tab: ")
-- opt.listchars:remove("eol")
opt.fillchars:append("eob: ")
end
g.zenmode = true
end
--- cancel zenmode
M.exitzen = function()
opt.colorcolumn= '+0'
opt.signcolumn = 'yes'
g.indent_blankline_show_current_context = true
local ok, indent = pcall(require, "indent_blankline")
if ok then
indent.refresh()
end
opt.listchars:append("eol:↴")
opt.listchars:append("tab: ")
opt.number = true
opt.relativenumber = true
opt.fillchars:append("eob:")
g.zenmode = false
end
return M

Loading…
Cancel
Save