aboutsummaryrefslogtreecommitdiff
path: root/nvim/lua/plugins/toggleterm.lua
diff options
context:
space:
mode:
authoreric.marin <maarin.eric@gmail.com>2024-09-11 14:49:39 +0200
committereric.marin <maarin.eric@gmail.com>2024-09-11 14:59:47 +0200
commit9f20c1f313e20102dd83adeaf091284be1fd82d0 (patch)
treed3db386875af532f4fc55c275312c7c787e88f55 /nvim/lua/plugins/toggleterm.lua
downloaddotfiles-9f20c1f313e20102dd83adeaf091284be1fd82d0.tar.gz
dotfiles-9f20c1f313e20102dd83adeaf091284be1fd82d0.zip
config
Diffstat (limited to 'nvim/lua/plugins/toggleterm.lua')
-rw-r--r--nvim/lua/plugins/toggleterm.lua64
1 files changed, 64 insertions, 0 deletions
diff --git a/nvim/lua/plugins/toggleterm.lua b/nvim/lua/plugins/toggleterm.lua
new file mode 100644
index 0000000..f47d0ab
--- /dev/null
+++ b/nvim/lua/plugins/toggleterm.lua
@@ -0,0 +1,64 @@
+local init = function()
+ local keymap = vim.keymap
+ keymap.set("n", "<C-t>", ":ToggleTerm<Enter>:startinsert<Enter>",
+ { noremap = true, silent = true, desc = "Terminal (ToggleTerm)" }) -- Terminal
+ keymap.set("t", "<C-t>", "<C-\\><C-n>:ToggleTerm<Enter>")
+ keymap.set("n", "<Space>g", ":ToggleLazyGit<Enter>",
+ { noremap = true, silent = true, desc = "LazyGit (ToggleTerm)" }) -- LazyGit
+end
+
+local config = function()
+ require("toggleterm").setup {
+ autochdir = false,
+ direction = "float",
+ -- open_mapping = [[<c-t>]],
+ -- terminal_mappings = true,
+ start_in_insert = false,
+ float_opts = {
+ border = "curved",
+ },
+ on_open = function(term)
+ local cwd = vim.fn.getcwd()
+ if term.dir ~= cwd then
+ term:send("cd " .. cwd .. " && clear")
+ term.dir = cwd
+ end
+ end,
+ }
+ local Terminal = require("toggleterm.terminal").Terminal
+ local opts = {
+ noremap = true, -- non-recursive
+ silent = true, -- do not show message
+ }
+
+ -- LazyGit
+ local lazygit = Terminal:new({
+ cmd = "lazygit",
+ dir = "git_dir",
+ direction = "float",
+ float_opts = {
+ border = "curved",
+ },
+ -- function to run on opening the terminal
+ on_open = function(term)
+ vim.cmd("startinsert!")
+ vim.api.nvim_buf_set_keymap(term.bufnr, "n", "q", ":close<Enter>", opts)
+ end,
+ -- function to run on closing the terminal
+ on_close = function()
+ vim.cmd("startinsert!")
+ end,
+ })
+ local function toggle_lazygit()
+ lazygit:toggle()
+ end
+ vim.api.nvim_create_user_command("ToggleLazyGit", toggle_lazygit, {})
+end
+
+return {
+ "akinsho/toggleterm.nvim",
+ lazy = true,
+ cmd = { "ToggleTerm", "ToggleLazyGit" },
+ init = init,
+ config = config,
+}