summary refs log tree commit diff
path: root/.vim/lua/split_term/init.lua
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.vim/lua/split_term/init.lua46
1 files changed, 46 insertions, 0 deletions
diff --git a/.vim/lua/split_term/init.lua b/.vim/lua/split_term/init.lua
new file mode 100644
index 0000000..7dcb044
--- /dev/null
+++ b/.vim/lua/split_term/init.lua
@@ -0,0 +1,46 @@
+local spt = {}
+
+function spt:create()
+    self = {
+        height = 80,
+        buf_nr = nil,
+        win_id = nil,
+        visible = false,
+    }
+end
+
+function spt:show()
+    vim.eval('botright new')
+    if self.buf_nr then
+        vim.eval('buffer ' .. self.buf_nr)
+    else
+        vim.termopen(self.exec, { detach=0 })
+        self.buf_nr = vim.bufnr('%')
+    end
+end
+
+function spt:open()
+end
+
+function spt:hide()
+end
+
+function spt:close()
+    local force = true
+    vim.api.nvim_win_close(self.win_id, force)
+    self.buf_nr = nil
+    self.win_id = nil
+end
+
+function spt_toggle()
+    if spt.win_id then
+        if spt.visible then
+            spt:hide()
+        else
+            spt:show()
+        end
+    else
+        spt:create()
+        spt:show()
+    end
+end