From 5f50067512a47faffa8519a4a7f55d7499fa2af7 Mon Sep 17 00:00:00 2001 From: Matthew Leong Date: Tue, 11 Jun 2024 10:12:05 -0700 Subject: [PATCH] feat: add toggleterm --- lua/cosmic/plugins/terminal/highlights.lua | 8 ------- lua/cosmic/plugins/terminal/init.lua | 23 ------------------- lua/cosmic/plugins/terminal/mappings.lua | 8 ------- lua/cosmic/plugins/toggleterm/init.lua | 26 +++++++++++++--------- lua/cosmic/plugins/toggleterm/utils.lua | 12 ++++++++++ readme.md | 2 +- 6 files changed, 28 insertions(+), 51 deletions(-) delete mode 100644 lua/cosmic/plugins/terminal/highlights.lua delete mode 100644 lua/cosmic/plugins/terminal/init.lua delete mode 100644 lua/cosmic/plugins/terminal/mappings.lua create mode 100644 lua/cosmic/plugins/toggleterm/utils.lua diff --git a/lua/cosmic/plugins/terminal/highlights.lua b/lua/cosmic/plugins/terminal/highlights.lua deleted file mode 100644 index fa23506..0000000 --- a/lua/cosmic/plugins/terminal/highlights.lua +++ /dev/null @@ -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') diff --git a/lua/cosmic/plugins/terminal/init.lua b/lua/cosmic/plugins/terminal/init.lua deleted file mode 100644 index c66062a..0000000 --- a/lua/cosmic/plugins/terminal/init.lua +++ /dev/null @@ -1,23 +0,0 @@ -local user_config = require('cosmic.core.user') - -return { - 'voldikss/vim-floaterm', - cmd = { 'FloatermToggle', 'FloatermNew' }, - --[[ keys = { ]] - --[[ { '', 'FloatermToggle', 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'), -} diff --git a/lua/cosmic/plugins/terminal/mappings.lua b/lua/cosmic/plugins/terminal/mappings.lua deleted file mode 100644 index 614ae55..0000000 --- a/lua/cosmic/plugins/terminal/mappings.lua +++ /dev/null @@ -1,8 +0,0 @@ -local map = require('cosmic.utils').set_keymap - -map('n', '', ':FloatermToggle', { desc = 'Toggle Floaterm' }) -map('t', '', [[]], { desc = 'Close Floaterm' }) -map('t', 'l', [[:FloatermNext]], { desc = 'Next terminal' }) -map('t', 'h', [[:FloatermPrev]], { desc = 'Prev terminal' }) -map('t', 'n', [[:FloatermNew]], { desc = 'New terminal' }) -map('t', 'c', [[:FloatermKill]], { desc = 'Kill current terminal' }) diff --git a/lua/cosmic/plugins/toggleterm/init.lua b/lua/cosmic/plugins/toggleterm/init.lua index f837bcb..05ddb31 100644 --- a/lua/cosmic/plugins/toggleterm/init.lua +++ b/lua/cosmic/plugins/toggleterm/init.lua @@ -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', 'kn', new_terminal, { desc = 'New terminal' }) + map('t', '', [[]], { desc = 'Visual mode' }) + -- toggle terminals map('n', 'k', ':ToggleTerm', { desc = 'Toggle Terminal' }) map('t', 'k', [[]] .. ':ToggleTerm', { desc = 'Toggle Terminal' }) + + -- new terminal + map('n', 'kn', terminal_utils.new_terminal, { desc = 'New terminal' }) + map('t', 'kn', terminal_utils.new_terminal, { desc = 'New terminal' }) + + -- select terminal to open map('n', 'kk', ':TermSelect', { desc = 'Choose open terminal' }) map('t', 'kk', [[]] .. ':TermSelect', { desc = 'Choose open terminal' }) - map('t', '', [[]], { desc = 'Visual mode' }) - map('t', 'kn', new_terminal, { desc = 'New terminal' }) - map('n', 'kr', ':ToggleTermSetName', { desc = 'Rename terminal' }) + -- rename terminal + map('n', 'kr', ':ToggleTermSetName', { desc = 'Rename terminal', buffer = 0 }) + map('t', 'kr', [[]] .. ':ToggleTermSetName', { 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, diff --git a/lua/cosmic/plugins/toggleterm/utils.lua b/lua/cosmic/plugins/toggleterm/utils.lua new file mode 100644 index 0000000..79ff942 --- /dev/null +++ b/lua/cosmic/plugins/toggleterm/utils.lua @@ -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 diff --git a/readme.md b/readme.md index 74bf6db..8c38f32 100644 --- a/readme.md +++ b/readme.md @@ -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)