diff options
| author | Christian Chiarulli <[email protected]> | 2022-09-30 16:21:17 +0000 | 
|---|---|---|
| committer | GitHub <[email protected]> | 2022-09-30 12:21:17 -0400 | 
| commit | c38957538ddae0c600224cdf1e8389683a63c6d3 (patch) | |
| tree | e077a1bb4e9574090c06ae7b1eba4e5183c0d6fc | |
| parent | 9930fc3ae45ebd30ea491e615dd4fed3973b38ce (diff) | |
feat(terminal): better mappings (#3104)
| -rw-r--r-- | lua/lvim/core/terminal.lua | 33 | ||||
| -rw-r--r-- | lua/lvim/core/which-key.lua | 1 | 
2 files changed, 28 insertions, 6 deletions
| diff --git a/lua/lvim/core/terminal.lua b/lua/lvim/core/terminal.lua index 8b44ec19..57d44c9a 100644 --- a/lua/lvim/core/terminal.lua +++ b/lua/lvim/core/terminal.lua @@ -7,7 +7,6 @@ M.config = function()      -- size can be a number or function which is passed the current terminal      size = 20,      open_mapping = [[<c-\>]], -    -- open_mapping = [[<c-t>]],      hide_numbers = true, -- hide the number column in toggleterm buffers      shade_filetypes = {},      shade_terminals = true, @@ -41,7 +40,9 @@ M.config = function()      -- lvim.builtin.terminal.execs[#lvim.builtin.terminal.execs+1] = {"gdb", "tg", "GNU Debugger"}      -- TODO: pls add mappings in which key and refactor this      execs = { -      { "lazygit", "<leader>gg", "LazyGit", "float" }, +      { vim.o.shell, "<M-1>", "Horizontal Terminal", "horizontal", 10 }, +      { vim.o.shell, "<M-2>", "Vertical Terminal", "vertical", 60 }, +      { vim.o.shell, "<M-3>", "Float Terminal", "float", nil },      },    }  end @@ -58,7 +59,7 @@ M.setup = function()        -- NOTE: unable to consistently bind id/count <= 9, see #2146        count = i + 100,        direction = exec[4] or lvim.builtin.terminal.direction, -      size = lvim.builtin.terminal.size, +      size = exec[5] or lvim.builtin.terminal.size,      }      M.add_exec(opts) @@ -76,15 +77,15 @@ M.add_exec = function(opts)      return    end -  vim.keymap.set({ "n" }, opts.keymap, function() -    M._exec_toggle { cmd = opts.cmd, count = opts.count, direction = opts.direction } +  vim.keymap.set({ "n", "t" }, opts.keymap, function() +    M._exec_toggle { cmd = opts.cmd, count = opts.count, direction = opts.direction, size = opts.size }    end, { desc = opts.label, noremap = true, silent = true })  end  M._exec_toggle = function(opts)    local Terminal = require("toggleterm.terminal").Terminal    local term = Terminal:new { cmd = opts.cmd, count = opts.count, direction = opts.direction } -  term:toggle(lvim.builtin.terminal.size, opts.direction) +  term:toggle(opts.size, opts.direction)  end  ---Toggles a log viewer according to log.viewer.layout_config @@ -110,4 +111,24 @@ M.toggle_log_view = function(logfile)    log_view:toggle()  end +M.lazygit_toggle = function() +  local Terminal = require("toggleterm.terminal").Terminal +  local lazygit = Terminal:new { +    cmd = "lazygit", +    hidden = true, +    direction = "float", +    float_opts = { +      border = "none", +      width = 100000, +      height = 100000, +    }, +    on_open = function(_) +      vim.cmd "startinsert!" +    end, +    on_close = function(_) end, +    count = 99, +  } +  lazygit:toggle() +end +  return M diff --git a/lua/lvim/core/which-key.lua b/lua/lvim/core/which-key.lua index 8b4f7b8b..588ecce5 100644 --- a/lua/lvim/core/which-key.lua +++ b/lua/lvim/core/which-key.lua @@ -130,6 +130,7 @@ M.config = function()        -- " Debugging        g = {          name = "Git", +        g = { "<cmd>lua require 'lvim.core.terminal'.lazygit_toggle()<cr>", "Lazygit" },          j = { "<cmd>lua require 'gitsigns'.next_hunk()<cr>", "Next Hunk" },          k = { "<cmd>lua require 'gitsigns'.prev_hunk()<cr>", "Prev Hunk" },          l = { "<cmd>lua require 'gitsigns'.blame_line()<cr>", "Blame" }, | 
