From 0c1681d10480364a205612825cdec486b85bb3eb Mon Sep 17 00:00:00 2001 From: blob42 Date: Sun, 6 Aug 2023 14:15:33 +0200 Subject: [PATCH] add zen mode --- lua/core/mappings.lua | 48 ++++++++++++++++++++++++++++++++++++---- lua/spike/utils/init.lua | 48 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+), 4 deletions(-) diff --git a/lua/core/mappings.lua b/lua/core/mappings.lua index 3fd254d..2e1e972 100644 --- a/lua/core/mappings.lua +++ b/lua/core/mappings.lua @@ -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 = { --{{{ ["Y"] = { " %y+ ", "copy whole file" }, -- line numbers - ["n"] = { " set nu! set rnu!", "toggle line number" }, + ["N"] = { " set nu! set rnu!", "toggle line number" }, + + ["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" }, + + ["z"] = { function() + require("spike.utils").zenmode() + end, "silent mode (no distraction)" }, + ["Z"] = { function() + require("spike.utils").zenmode(true) + end, "maximum zen" }, + ["qz"] = { function() + require("spike.utils").exitzen() + end, "exit zen" }, + ["zz"] = { function() + require("spike.utils").togglezen() + end, "toggle zen" }, -- option toggle cursor line ["l"] = { " set cul!", "toggle cursor line" }, + + ["c"] = { "ccloselclose", "close quickfix" }, ["d"] = { "DelayTrainToggle", "disable delay train" }, @@ -1122,9 +1151,20 @@ M.navigator = { M.refactoring = { plugin = true, - v = { - ["rr"] = {":lua require'refactoring'.select_refactor()", "refactoring using telescope", opts = { expr = false }}, - } + x = { + ["rr"] = { + function() + require('telescope').extensions.refactoring.refactors() + end, + "refactoring using telescope", opts = { expr = false }}, + }, + n = { + ["rr"] = { + function() + require('telescope').extensions.refactoring.refactors() + end, + "refactoring using telescope", opts = { expr = false }}, + }, } M.null_ls = { diff --git a/lua/spike/utils/init.lua b/lua/spike/utils/init.lua index 475697c..19991b0 100644 --- a/lua/spike/utils/init.lua +++ b/lua/spike/utils/init.lua @@ -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