summaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
authorchristianchiarulli <[email protected]>2021-07-14 23:15:12 -0400
committerchristianchiarulli <[email protected]>2021-07-14 23:15:12 -0400
commitf58782563ea933f31e8886f511ec2b5824def19b (patch)
treee6cfaf7f5a980cfe19b2a9d884a75e363e1e78e8 /lua
parentf95e150518e40f08a2cb31365e90895e31465d7e (diff)
user toggleterm instead of fterm
Diffstat (limited to 'lua')
-rw-r--r--lua/core/floatterm.lua76
-rw-r--r--lua/core/terminal.lua68
-rw-r--r--lua/default-config.lua2
-rw-r--r--lua/plugins.lua15
4 files changed, 81 insertions, 80 deletions
diff --git a/lua/core/floatterm.lua b/lua/core/floatterm.lua
deleted file mode 100644
index 3d7e0e6e..00000000
--- a/lua/core/floatterm.lua
+++ /dev/null
@@ -1,76 +0,0 @@
-local M = {}
-M.config = function()
- O.plugin.floatterm = {
- active = false,
- dimensions = {
- height = 0.9,
- width = 0.9,
- x = 0.5,
- y = 0.3,
- },
- border = "single", -- or 'double'
- }
-end
-
-M.setup = function()
- local status_ok, fterm = pcall(require, "FTerm")
- if not status_ok then
- return
- end
-
- fterm.setup(O.plugin.floatterm)
-
- -- Create LazyGit Terminal
- local term = require "FTerm.terminal"
- local lazy = term:new():setup {
- cmd = "lazygit",
- dimensions = O.plugin.floatterm.dimensions,
- }
-
- 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
-
- -- Map esc to exit inside lazygit
- -- vim.api.nvim_exec(
- -- [[
- -- function LazyGitNativation()
- -- echom &filetype
- -- if &filetype ==# 'FTerm'
- -- tnoremap <Esc> q
- -- tnoremap <C-v><Esc> <Esc>
- -- endif
- -- endfunction
- -- ]],
- -- false
- -- )
-
- O.plugin.which_key.mappings["gg"] = "LazyGit"
- vim.api.nvim_set_keymap("n", "<A-i>", "<CMD>lua require('FTerm').toggle()<CR>", { noremap = true, silent = true })
- vim.api.nvim_set_keymap("n", "<leader>gg", "<CMD>lua _G.__fterm_lazygit()<CR>", { noremap = true, silent = true })
-
- vim.api.nvim_set_keymap(
- "t",
- "<A-i>",
- "<C-\\><C-n><CMD>lua require('FTerm').toggle()<CR>",
- { noremap = true, silent = true }
- )
- vim.api.nvim_set_keymap("n", "<A-l>", "<CMD>lua _G.__fterm_lazygit()<CR>", { noremap = true, silent = true })
- vim.api.nvim_set_keymap(
- "t",
- "<A-l>",
- "<C-\\><C-n><CMD>lua _G.__fterm_lazygit()<CR>",
- { noremap = true, silent = true }
- )
-end
-
-return M
diff --git a/lua/core/terminal.lua b/lua/core/terminal.lua
new file mode 100644
index 00000000..0f930453
--- /dev/null
+++ b/lua/core/terminal.lua
@@ -0,0 +1,68 @@
+local M = {}
+M.config = function()
+ O.plugin["terminal"] = {
+ -- size can be a number or function which is passed the current terminal
+ size = 5,
+ -- open_mapping = [[<c-\>]],
+ open_mapping = [[<c-t>]],
+ hide_numbers = true, -- hide the number column in toggleterm buffers
+ shade_filetypes = {},
+ shade_terminals = true,
+ shading_factor = 2, -- the degree by which to darken to terminal colour, default: 1 for dark backgrounds, 3 for light
+ start_in_insert = true,
+ insert_mappings = true, -- whether or not the open mapping applies in insert mode
+ persist_size = true,
+ -- direction = 'vertical' | 'horizontal' | 'window' | 'float',
+ direction = "float",
+ close_on_exit = true, -- close the terminal window when the process exits
+ shell = vim.o.shell, -- change the default shell
+ -- This field is only relevant if direction is set to 'float'
+ float_opts = {
+ -- The border key is *almost* the same as 'nvim_win_open'
+ -- see :h nvim_win_open for details on borders however
+ -- the 'curved' border is a custom border type
+ -- not natively supported but implemented in this plugin.
+ -- border = 'single' | 'double' | 'shadow' | 'curved' | ... other options supported by win open
+ border = "curved",
+ -- width = <value>,
+ -- height = <value>,
+ winblend = 3,
+ highlights = {
+ border = "Normal",
+ background = "Normal",
+ },
+ },
+ }
+end
+
+M.setup = function()
+ local status_ok, terminal = pcall(require, "toggleterm")
+ if not status_ok then
+ print(terminal)
+ return
+ end
+ vim.api.nvim_set_keymap(
+ "n",
+ "<leader>gg",
+ "<cmd>lua require('core.terminal')._lazygit_toggle()<CR>",
+ { noremap = true, silent = true }
+ )
+ O.plugin.which_key.mappings["gg"] = "LazyGit"
+ terminal.setup(O.plugin.terminal)
+end
+
+local function is_installed(exe)
+ return vim.fn.executable(exe) == 1
+end
+
+M._lazygit_toggle = function()
+ if is_installed "lazygit" ~= true then
+ print "Please install lazygit. Check documentation for more information"
+ return
+ end
+ local Terminal = require("toggleterm.terminal").Terminal
+ local lazygit = Terminal:new { cmd = "lazygit", hidden = true }
+ lazygit:toggle()
+end
+
+return M
diff --git a/lua/default-config.lua b/lua/default-config.lua
index 903606ed..e968d6bb 100644
--- a/lua/default-config.lua
+++ b/lua/default-config.lua
@@ -121,7 +121,7 @@ require("core.gitsigns").config()
require("core.compe").config()
require("core.dashboard").config()
require("core.dap").config()
-require("core.floatterm").config()
+require("core.terminal").config()
require("core.zen").config()
require("core.telescope").config()
require("core.treesitter").config()
diff --git a/lua/plugins.lua b/lua/plugins.lua
index e7092787..a867cfbe 100644
--- a/lua/plugins.lua
+++ b/lua/plugins.lua
@@ -189,13 +189,22 @@ return require("packer").startup(function(use)
-- TODO: remove in favor of akinsho/nvim-toggleterm.lua
-- Floating terminal
+ -- use {
+ -- "numToStr/FTerm.nvim",
+ -- event = "BufWinEnter",
+ -- config = function()
+ -- require("core.floatterm").setup()
+ -- end,
+ -- disable = not O.plugin.floatterm.active,
+ -- }
+
use {
- "numToStr/FTerm.nvim",
+ "akinsho/nvim-toggleterm.lua",
event = "BufWinEnter",
config = function()
- require("core.floatterm").setup()
+ require("core.terminal").setup()
end,
- disable = not O.plugin.floatterm.active,
+ disable = not O.plugin.terminal.active,
}
-- Zen Mode