From 9f20c1f313e20102dd83adeaf091284be1fd82d0 Mon Sep 17 00:00:00 2001 From: "eric.marin" Date: Wed, 11 Sep 2024 14:49:39 +0200 Subject: config --- nvim/lua/plugins/toggleterm.lua | 64 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 nvim/lua/plugins/toggleterm.lua (limited to 'nvim/lua/plugins/toggleterm.lua') 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", "", ":ToggleTerm:startinsert", + { noremap = true, silent = true, desc = "Terminal (ToggleTerm)" }) -- Terminal + keymap.set("t", "", ":ToggleTerm") + keymap.set("n", "g", ":ToggleLazyGit", + { noremap = true, silent = true, desc = "LazyGit (ToggleTerm)" }) -- LazyGit +end + +local config = function() + require("toggleterm").setup { + autochdir = false, + direction = "float", + -- open_mapping = [[]], + -- 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", 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, +} -- cgit v1.2.3