feat(nvim): added toggleterm manager

This commit is contained in:
Sergio Laín 2023-11-26 23:55:36 +01:00
parent 4280546c48
commit d5e8e84a79
No known key found for this signature in database
GPG key ID: 14C9B8080681777B

View file

@ -1,48 +1,58 @@
return {
"akinsho/toggleterm.nvim",
cmd = {
"ToggleTerm",
"ToggleTermSetName",
"ToggleTermToggleAll",
"ToggleTermSendVisualLines",
"ToggleTermSendCurrentLine",
"ToggleTermSendVisualSelection",
},
opts = {
size = function(term)
if term.direction == "horizontal" then
return 15
elseif term.direction == "vertical" then
return vim.o.columns * 0.4
end
end,
open_mapping = [[<c-\>]],
hide_numbers = true, -- hide the number column in toggleterm buffers
shade_filetypes = {},
shade_terminals = true, -- NOTE: this option takes priority over highlights specified so if you specify Normal highlights you should set this to false
shading_factor = "-10", -- the percentage by which to lighten terminal background, default: -30 (gets multiplied by -3 if background is light)
start_in_insert = true,
insert_mappings = true, -- whether or not the open mapping applies in insert mode
terminal_mappings = true, -- whether or not the open mapping applies in the opened terminals
persist_size = true,
persist_mode = true, -- if set to true (default) the previous terminal mode will be remembered
direction = "float",
close_on_exit = true, -- close the terminal window when the process exits
-- Change the default shell. Can be a string or a function returning a string
shell = vim.o.shell,
-- This field is only relevant if direction is set to 'float'
float_opts = {
-- The border key is *almost* the same as 'nvim_open_win'
-- see :h nvim_open_win for details on borders however
-- the 'curved' border is a custom border type
-- not natively supported but implemented in this plugin.
border = "curved",
-- like `size`, width and height can be a number or function which is passed the current terminal
highlights = { border = "Normal", background = "Normal" },
winblend = 3,
{
"akinsho/toggleterm.nvim",
cmd = {
"ToggleTerm",
"ToggleTermSetName",
"ToggleTermToggleAll",
"ToggleTermSendVisualLines",
"ToggleTermSendCurrentLine",
"ToggleTermSendVisualSelection",
},
opts = {
size = function(term)
if term.direction == "horizontal" then
return 30
elseif term.direction == "vertical" then
return vim.o.columns * 0.4
end
end,
open_mapping = [[<c-\>]],
hide_numbers = true, -- hide the number column in toggleterm buffers
shade_filetypes = {},
shade_terminals = true, -- NOTE: this option takes priority over highlights specified so if you specify Normal highlights you should set this to false
shading_factor = "-10", -- the percentage by which to lighten terminal background, default: -30 (gets multiplied by -3 if background is light)
start_in_insert = true,
insert_mappings = true, -- whether or not the open mapping applies in insert mode
terminal_mappings = true, -- whether or not the open mapping applies in the opened terminals
persist_size = true,
persist_mode = true, -- if set to true (default) the previous terminal mode will be remembered
direction = "float",
close_on_exit = true, -- close the terminal window when the process exits
-- Change the default shell. Can be a string or a function returning a string
shell = vim.o.shell,
-- This field is only relevant if direction is set to 'float'
float_opts = {
-- The border key is *almost* the same as 'nvim_open_win'
-- see :h nvim_open_win for details on borders however
-- the 'curved' border is a custom border type
-- not natively supported but implemented in this plugin.
border = "curved",
-- like `size`, width and height can be a number or function which is passed the current terminal
highlights = { border = "Normal", background = "Normal" },
winblend = 3,
},
},
-- stylua: ignore
keys = {
{ [[<c-\>]], "<cmd>ToggleTerm<cr>", mode = "n", desc = "Toggle Terminal" },
},
},
keys = {
{ [[<c-\>]], "<cmd>ToggleTerm<cr>", mode = "n", desc = "Toggle Terminal" },
{
"ryanmsnyder/toggleterm-manager.nvim",
opts = {},
keys = {
{ "<leader>st", "<cmd>Telescope toggleterm_manager<cr>", desc = "Terminals" },
},
},
}