فهرست منبع

refactor: remove abstraction

opalmay 2 سال پیش
والد
کامیت
ba572a97bb
1فایلهای تغییر یافته به همراه23 افزوده شده و 35 حذف شده
  1. 23 35
      lua/lvim/core/terminal.lua

+ 23 - 35
lua/lvim/core/terminal.lua

@@ -79,35 +79,26 @@ local function get_dynamic_terminal_size(direction, size)
 end
 
 M.init = function()
-  -- vim.pretty_print(lvim.builtin.terminal.execs)
   for i, exec in ipairs(lvim.builtin.terminal.execs) do
     if exec.size == 1 then
       exec.direction = "float"
     end
-    local direction = exec.direction or lvim.builtin.terminal.execs.defaults.direction
-    local size = exec.size or lvim.builtin.terminal.execs.defaults[direction .. "_size"]
-    size = get_dynamic_terminal_size(direction, size)
-    local cmd = exec.cmd or lvim.builtin.terminal.shell
-    local desc = exec.desc
-    if desc == nil then
+    exec.direction = exec.direction or lvim.builtin.terminal.execs.defaults.direction
+    exec.size = exec.size or lvim.builtin.terminal.execs.defaults[exec.direction .. "_size"]
+    exec.size = get_dynamic_terminal_size(exec.direction, exec.size)
+    exec.cmd = exec.cmd or lvim.builtin.terminal.shell
+    exec.desc = exec.desc
+    if exec.desc == nil then
       if exec.cmd == nil then
-        desc = "Toggle Terminal(" .. direction .. ")"
+        exec.desc = "Toggle Terminal(" .. exec.direction .. ")"
       else
-        desc = exec.cmd
+        exec.desc = exec.cmd
       end
     end
 
-    local opts = {
-      cmd = cmd,
-      keymap = exec.keymap,
-      desc = desc,
-      -- NOTE: unable to consistently bind id/count <= 9, see #2146
-      count = i + 100,
-      direction = direction,
-      size = size,
-    }
+    exec.count = i + 100
 
-    M.add_exec(opts)
+    M.add_exec(exec)
   end
 end
 
@@ -119,31 +110,28 @@ M.setup = function()
   end
 end
 
-M.add_exec = function(opts)
-  local binary = opts.cmd:match "(%S+)"
+M.add_exec = function(exec)
+  local binary = exec.cmd:match "(%S+)"
   if vim.fn.executable(binary) ~= 1 then
     Log:debug("Skipping configuring executable " .. binary .. ". Please make sure it is installed properly.")
     return
   end
 
-  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.desc, noremap = true, silent = true })
+  vim.keymap.set({ "n", "t" }, exec.keymap, function()
+    M._exec_toggle(exec)
+  end, { desc = exec.desc, noremap = true, silent = true })
 end
 
-M._exec_toggle = function(opts)
+M._exec_toggle = function(exec)
   local Terminal = require("toggleterm.terminal").Terminal
-  local term = Terminal:new {
-    cmd = opts.cmd,
-    count = opts.count,
-    direction = opts.direction,
-    float_opts = {
-      border = "none" and opts.size == 1,
-      width = opts.size == 1 and 100000,
-      height = opts.size == 1 and 100000,
-    },
+  exec.float_opts = {
+    border = "none" and exec.size == 1,
+    width = exec.size == 1 and 100000,
+    height = exec.size == 1 and 100000,
   }
-  term:toggle(opts.size, opts.direction)
+  vim.pretty_print(exec)
+  local term = Terminal:new(exec)
+  term:toggle(exec.size, exec.direction)
 end
 
 ---Toggles a log viewer according to log.viewer.layout_config