From f6e377fcfed932b71456a0b0780c1f5ed22cabd4 Mon Sep 17 00:00:00 2001 From: Jonathan Raines Date: Tue, 6 Jul 2021 12:40:10 -0500 Subject: Replace LazyGit Plugin with FTerm Instance (#717) * Replace LazyGit Plugin with FTerm Instance * Added gg keybind to FTerm LazyGit * Added check to see if lazygit is installed * Changed lazyload event to prevent error when called from dashboard on startup * Removed lazygit plugin. Changed Fterm lazy loading * Made the executable check more universal for when we include other terminal applications Co-authored-by: rebuilt --- lua/default-config.lua | 1 - lua/lv-floatterm/init.lua | 39 +++++++++++++++++++++++++++++++++++++++ lua/lv-which-key/init.lua | 8 ++++++-- lua/plugins.lua | 14 ++------------ 4 files changed, 47 insertions(+), 15 deletions(-) create mode 100644 lua/lv-floatterm/init.lua diff --git a/lua/default-config.lua b/lua/default-config.lua index fcf33799..47ee86a1 100644 --- a/lua/default-config.lua +++ b/lua/default-config.lua @@ -78,7 +78,6 @@ O = { symbol_outline = { active = false }, debug = { active = false }, dap_install = { active = false }, - lazygit = { active = false }, lush = { active = false }, diffview = { active = false }, floatterm = { active = false }, diff --git a/lua/lv-floatterm/init.lua b/lua/lv-floatterm/init.lua new file mode 100644 index 00000000..0901c1f6 --- /dev/null +++ b/lua/lv-floatterm/init.lua @@ -0,0 +1,39 @@ +local M = {} + +M.config = function() + require'FTerm'.setup({ + dimensions = { + height = 0.8, + width = 0.8, + x = 0.5, + y = 0.5 + }, + border = 'single' -- or 'double' + }) + + -- Create LazyGit Terminal + local term = require("FTerm.terminal") + local lazy = term:new():setup({ + cmd = "lazygit", + dimensions = { + height = 0.9, + width = 0.9 + } + }) + + local function is_installed(exe) + return vim.fn.executable(exe) == 1 + end + + -- Use this to toggle gitui in a floating terminal + function _G.__fterm_lazygit() + if is_installed("lazygit") ~= true then + print("Please install lazygit. Check documentation for more information") + return + end + lazy:toggle() + end +end + +return M + diff --git a/lua/lv-which-key/init.lua b/lua/lv-which-key/init.lua index 5fb3c92d..a14a82b6 100644 --- a/lua/lv-which-key/init.lua +++ b/lua/lv-which-key/init.lua @@ -263,8 +263,12 @@ if O.plugin.zen.active then vim.api.nvim_set_keymap("n", "z", ":ZenMode", { noremap = true, silent = true }) mappings["z"] = "Zen" end -if O.plugin.lazygit.active then - vim.api.nvim_set_keymap("n", "gg", ":LazyGit", { noremap = true, silent = true }) +if O.plugin.floatterm.active then + vim.api.nvim_set_keymap("n", "gg", "lua _G.__fterm_lazygit()", { noremap = true, silent = true }) + vim.api.nvim_set_keymap("n", "", "lua require('FTerm').toggle()", { noremap = true, silent = true }) + vim.api.nvim_set_keymap("t", "", "lua require('FTerm').toggle()", { noremap = true, silent = true }) + vim.api.nvim_set_keymap("n", "", "lua _G.__fterm_lazygit()", { noremap = true, silent = true }) + vim.api.nvim_set_keymap("t", "", "lua _G.__fterm_lazygit()", { noremap = true, silent = true }) mappings["gg"] = "LazyGit" end if O.plugin.telescope_project.active then diff --git a/lua/plugins.lua b/lua/plugins.lua index 69542b94..50f96517 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -217,12 +217,9 @@ return require("packer").startup(function(use) -- Floating terminal use { "numToStr/FTerm.nvim", - event = "BufRead", + event = "BufWinEnter", config = function() - require("FTerm").setup { - dimensions = { height = 0.8, width = 0.8, x = 0.5, y = 0.5 }, - border = "single", -- or 'double' - } + require('lv-floatterm').config() end, disable = not O.plugin.floatterm.active, } @@ -249,13 +246,6 @@ return require("packer").startup(function(use) disable = not O.plugin.sanegx.active, } - -- Lazygit - use { - "kdheepak/lazygit.nvim", - cmd = "LazyGit", - disable = not O.plugin.lazygit.active, - } - -- Diffview use { "sindrets/diffview.nvim", -- cgit v1.2.3