Prechádzať zdrojové kódy

user toggleterm instead of fterm

christianchiarulli 4 rokov pred
rodič
commit
f58782563e

+ 1 - 1
README.md

@@ -69,7 +69,7 @@ O.leader_key = ' '
 
 -- After changing plugin config it is recommended to run :PackerCompile
 O.plugin.dashboard.active = true
-O.plugin.floatterm.active = true
+O.plugin.terminal.active = true
 O.plugin.zen.active = true
 
 -- if you don't want all the parsers change this to a table of the ones you want

+ 0 - 76
lua/core/floatterm.lua

@@ -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

+ 68 - 0
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

+ 1 - 1
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()

+ 12 - 3
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

+ 1 - 2
utils/installer/lv-config.example-no-ts.lua

@@ -21,7 +21,7 @@ O.leader_key = " "
 -- TODO: User Config for predefined plugins
 -- After changing plugin config exit and reopen LunarVim, Run :PackerInstall :PackerCompile
 O.plugin.dashboard.active = true
-O.plugin.floatterm.active = true
+O.plugin.terminal.active = true
 O.plugin.zen.active = false
 O.plugin.zen.window.height = 0.90
 
@@ -50,7 +50,6 @@ O.lang.tsserver.linter = nil
 -- O.lang.latex.auto_save = false
 -- O.lang.latex.ignore_errors = { }
 
-
 -- Additional Plugins
 -- O.user_plugins = {
 --     {"folke/tokyonight.nvim"}, {

+ 2 - 2
utils/installer/lv-config.example.lua

@@ -21,7 +21,7 @@ O.leader_key = " "
 -- TODO: User Config for predefined plugins
 -- After changing plugin config exit and reopen LunarVim, Run :PackerInstall :PackerCompile
 O.plugin.dashboard.active = true
-O.plugin.floatterm.active = true
+O.plugin.terminal.active = true
 O.plugin.zen.active = false
 O.plugin.zen.window.height = 0.90
 
@@ -57,7 +57,7 @@ O.lang.tsserver.linter = nil
 O.lang.latex.active = true
 O.lang.latex.aux_directory = "."
 O.lang.latex.bibtex_formatter = "texlab"
-O.lang.latex.build.args = { '-pdf', '-interaction=nonstopmode', '-synctex=1', '%f' }
+O.lang.latex.build.args = { "-pdf", "-interaction=nonstopmode", "-synctex=1", "%f" }
 O.lang.latex.build.executable = "latexmk"
 O.lang.latex.build.forward_search_after = false
 O.lang.latex.build.on_save = false