diff options
| author | christianchiarulli <[email protected]> | 2021-07-14 23:15:12 -0400 | 
|---|---|---|
| committer | christianchiarulli <[email protected]> | 2021-07-14 23:15:12 -0400 | 
| commit | f58782563ea933f31e8886f511ec2b5824def19b (patch) | |
| tree | e6cfaf7f5a980cfe19b2a9d884a75e363e1e78e8 /lua/core | |
| parent | f95e150518e40f08a2cb31365e90895e31465d7e (diff) | |
user toggleterm instead of fterm
Diffstat (limited to 'lua/core')
| -rw-r--r-- | lua/core/floatterm.lua | 76 | ||||
| -rw-r--r-- | lua/core/terminal.lua | 68 | 
2 files changed, 68 insertions, 76 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 | 
