feat: add toggleterm

This commit is contained in:
Matthew Leong 2024-06-11 10:12:05 -07:00
parent 982c79ebc1
commit 5f50067512
6 changed files with 28 additions and 51 deletions

View file

@ -1,8 +0,0 @@
local set_highlight = require('cosmic.utils.theme').set_highlight
-- terminal highlights
set_highlight('FloatBorder', {
guibg = 'None',
})
vim.cmd('hi! link FloatermBorder FloatBorder')

View file

@ -1,23 +0,0 @@
local user_config = require('cosmic.core.user')
return {
'voldikss/vim-floaterm',
cmd = { 'FloatermToggle', 'FloatermNew' },
--[[ keys = { ]]
--[[ { '<C-l>', '<cmd>FloatermToggle<cr>', desc = 'Floating Terminal' }, ]]
--[[ }, ]]
config = function()
local g = vim.g
local title = vim.env.SHELL
g.floaterm_width = 0.7
g.floaterm_height = 0.8
g.floaterm_title = '[' .. title .. ']:($1/$2)'
g.floaterm_borderchars = '─│─│╭╮╯╰'
g.floaterm_opener = 'vsplit'
require('cosmic.plugins.terminal.highlights')
--[[ require('cosmic.plugins.terminal.mappings') ]]
end,
enabled = not vim.tbl_contains(user_config.disable_builtin_plugins, 'terminal'),
}

View file

@ -1,8 +0,0 @@
local map = require('cosmic.utils').set_keymap
map('n', '<C-l>', ':FloatermToggle<CR>', { desc = 'Toggle Floaterm' })
map('t', '<C-l>', [[<C-\><C-n>]], { desc = 'Close Floaterm' })
map('t', '<C-w>l', [[<C-\><C-n>:FloatermNext<CR>]], { desc = 'Next terminal' })
map('t', '<C-w>h', [[<C-\><C-n>:FloatermPrev<CR>]], { desc = 'Prev terminal' })
map('t', '<C-w>n', [[<C-\><C-n>:FloatermNew<CR>]], { desc = 'New terminal' })
map('t', '<C-w>c', [[<C-\><C-n>:FloatermKill<CR>]], { desc = 'Kill current terminal' })

View file

@ -15,24 +15,28 @@ return {
},
},
})
local terminal_utils = require('cosmic.plugins.toggleterm.utils')
local Terminal = require('toggleterm.terminal').Terminal
local function new_terminal()
local terminal = Terminal:new()
terminal:toggle()
end
map('n', '<leader>kn', new_terminal, { desc = 'New terminal' })
map('t', '<esc>', [[<C-\><C-n>]], { desc = 'Visual mode' })
-- toggle terminals
map('n', '<leader>k', ':ToggleTerm<CR>', { desc = 'Toggle Terminal' })
map('t', '<leader>k', [[<C-\><C-n>]] .. ':ToggleTerm<CR>', { desc = 'Toggle Terminal' })
-- new terminal
map('n', '<leader>kn', terminal_utils.new_terminal, { desc = 'New terminal' })
map('t', '<leader>kn', terminal_utils.new_terminal, { desc = 'New terminal' })
-- select terminal to open
map('n', '<leader>kk', ':TermSelect<CR>', { desc = 'Choose open terminal' })
map('t', '<leader>kk', [[<C-\><C-n>]] .. ':TermSelect<CR>', { desc = 'Choose open terminal' })
map('t', '<esc>', [[<C-\><C-n>]], { desc = 'Visual mode' })
map('t', '<leader>kn', new_terminal, { desc = 'New terminal' })
map('n', '<leader>kr', ':ToggleTermSetName<CR>', { desc = 'Rename terminal' })
-- rename terminal
map('n', '<leader>kr', ':ToggleTermSetName<CR>', { desc = 'Rename terminal', buffer = 0 })
map('t', '<leader>kr', [[<C-\><C-n>]] .. ':ToggleTermSetName<CR>', { desc = 'Rename terminal', buffer = 0 })
-- terminal only mappings
vim.cmd("autocmd! TermOpen term://* lua require('cosmic.plugins.toggleterm.utils').set_terminal_keymaps()")
-- @TODO: close all
end,

View file

@ -0,0 +1,12 @@
local M = {}
local map = require('cosmic.utils').set_keymap
local Terminal = require('toggleterm.terminal').Terminal
function M.new_terminal()
local terminal = Terminal:new()
terminal:toggle()
end
function M.set_terminal_keymaps() end
return M

View file

@ -38,7 +38,7 @@ Full featured native LSP functionality!
- Custom statusline via [lualine](https://github.com/nvim-lualine/lualine.nvim)
- Explore files via [nvim-tree](https://github.com/kyazdani42/nvim-tree.lua)
- Fuzzy finder via [Telescope](https://github.com/nvim-telescope/telescope.nvim)
- Floating terminal with [vim-floaterm](https://github.com/voldikss/vim-floaterm)
- Floating terminal with [toggleterm.nvim](https://github.com/akinsho/toggleterm.nvim)
- Auto LSP/formatter/linter installation via [mason.nvim](https://github.com/williamboman/mason.nvim)
- Autocompletion via [nvim-cmp](https://github.com/hrsh7th/nvim-cmp)
- Snippet support via [LuaSnip](https://github.com/L3MON4D3/LuaSnip)