diff options
Diffstat (limited to '.config/nvim/lua/user/toggleterm.lua')
-rw-r--r-- | .config/nvim/lua/user/toggleterm.lua | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/.config/nvim/lua/user/toggleterm.lua b/.config/nvim/lua/user/toggleterm.lua new file mode 100644 index 0000000..567c12f --- /dev/null +++ b/.config/nvim/lua/user/toggleterm.lua @@ -0,0 +1,92 @@ +require("toggleterm").setup { + autochdir = true, + shade_terminals = true, + shading_factor = -100, + start_in_insert = true, + insert_mappings = true, + terminal_mappings = true, + persist_size = true, + persist_mode = false, + direction = 'float', + close_on_exit = true, + auto_scroll = true, + float_opts = { + border = 'single', + title_pos = 'left' + }, + winbar = { + enabled = true, + }, +} + +-- from documentation: +-- +--[[ +require("toggleterm").setup{ + -- size can be a number or function which is passed the current terminal + size = 20 | function(term) + if term.direction == "horizontal" then + return 15 + elseif term.direction == "vertical" then + return vim.o.columns * 0.4 + end + end, + on_create = fun(t: Terminal), -- function to run when the terminal is first created + on_open = fun(t: Terminal), -- function to run when the terminal opens + on_close = fun(t: Terminal), -- function to run when the terminal closes + on_stdout = fun(t: Terminal, job: number, data: string[], name: string) -- callback for processing output on stdout + on_stderr = fun(t: Terminal, job: number, data: string[], name: string) -- callback for processing output on stderr + on_exit = fun(t: Terminal, job: number, exit_code: number, name: string) -- function to run when terminal process exits + hide_numbers = true, -- hide the number column in toggleterm buffers + shade_filetypes = {}, + autochdir = false, -- when neovim changes it current directory the terminal will change it's own when next it's opened + highlights = { + -- highlights which map to a highlight group name and a table of it's values + -- NOTE: this is only a subset of values, any group placed here will be set for the terminal window split + Normal = { + guibg = "<VALUE-HERE>", + }, + NormalFloat = { + link = 'Normal' + }, + FloatBorder = { + guifg = "<VALUE-HERE>", + guibg = "<VALUE-HERE>", + }, + }, + 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 = '<number>', -- 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 = 'vertical' | 'horizontal' | 'tab' | '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, + auto_scroll = true, -- automatically scroll to the bottom on terminal output + -- 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 = 'single' | 'double' | 'shadow' | 'curved' | ... other options supported by win open + -- like `size`, width, height, row, and col can be a number or function which is passed the current terminal + width = <value>, + height = <value>, + row = <value>, + col = <value>, + winblend = 3, + zindex = <value>, + title_pos = 'left' | 'center' | 'right', position of the title of the floating window + }, + winbar = { + enabled = false, + name_formatter = function(term) -- term: Terminal + return term.name + end + }, +} +]]-- |