feat(LazyVSCode): operations on Groups

This commit is contained in:
2025-04-16 16:21:20 +08:00
parent 871d8bd7cc
commit 438c84d57e
2 changed files with 52 additions and 20 deletions

View File

@@ -98,12 +98,6 @@ vim.keymap.set("n", "<leader>cf", function()
vscode.action("editor.action.formatDocument")
end, { desc = "Format Code" })
-- Editor Groups
-- TODO: <leader><leader>g to toggle between two groups
-- TODO: <leader>gv to split vertically
-- TODO: <leader>gs to split horizontally
-- TODO: <leader>gd to delete a group
-- Editor
local tabs = {
toggleInGroup = function()
@@ -133,14 +127,46 @@ local tabs = {
vscode.action("workbench.action.moveEditorToPreviousGroup")
end,
}
vim.keymap.set("n", "<leader><leader>e", tabs.toggleInGroup, { desc = "Toggle Between Two Tabs inside Group" })
vim.keymap.set("n", "<leader><leader>E", tabs.toggleCrossGroups, { desc = "Toggle Between Two Tabs Cross-Groups" })
vim.keymap.set("n", "<leader>es", tabs.select, { desc = "Select Tab Cross-Groups" })
vim.keymap.set("n", "<leader>ep", tabs.previous, { desc = "Select Tab in Group: Previous" })
vim.keymap.set("n", "<leader>el", tabs.least, { desc = "Select Tab in Group: Least" })
vim.keymap.set("n", "<leader>ed", tabs.close, { desc = "Close Tab" })
vim.keymap.set('n', "<leader>emn", tabs.moveToNextGroup, { desc = "Move Editor to the Next Group" })
vim.keymap.set('n', "<leader>emp", tabs.moveToPreviousGroup, { desc = "Move Editor to the Previous Group" })
vim.keymap.set("n", "<leader><leader>e", tabs.toggleInGroup, { desc = "Toggle Between Two Editors inside Group" })
vim.keymap.set("n", "<leader><leader>E", tabs.toggleCrossGroups, { desc = "Toggle Between Two Editors Cross-Groups" })
vim.keymap.set("n", "<leader>eg", tabs.select, { desc = "Select Editor Cross-Groups" })
vim.keymap.set("n", "<leader>ei", tabs.previous, { desc = "Select Editor Inside Group" })
-- vim.keymap.set("n", "<leader>ep", tabs.previous, { desc = "Select Editor in Group: Previous" })
-- vim.keymap.set("n", "<leader>el", tabs.least, { desc = "Select Editor in Group: Least" })
vim.keymap.set("n", "<leader>ed", tabs.close, { desc = "Close Editor" })
vim.keymap.set('n', "<leader>en", tabs.moveToNextGroup, { desc = "Move Editor to the Next Group" })
vim.keymap.set('n', "<leader>ep", tabs.moveToPreviousGroup, { desc = "Move Editor to the Previous Group" })
-- Editor Groups
-- TODO: <leader>gd to delete a group
local groups = {
toggle = function()
vscode.action("workbench.action.focusNextGroup")
end,
vertical = function()
vscode.action("workbench.action.splitEditorRight")
-- vscode.action("workbench.action.moveEditorToNextGroup")
end,
horizontal = function()
vscode.action("workbench.action.splitEditorDown")
-- vscode.action("workbench.action.moveEditorToPreviousGroup")
end,
equalGroupSize = function ()
vscode.action("workbench.action.evenEditorWidths")
end,
close = function ()
vscode.action("workbench.action.closeGroup")
end,
alsoCloseEditors = function ()
vscode.action("workbench.action.closeEditorsAndGroup")
end,
}
vim.keymap.set("n", "<leader><leader>g", groups.toggle, { desc = "Focus Next Group" })
vim.keymap.set("n", "<leader>gv", groups.vertical, { desc = "Split Editor Group Vertically" })
vim.keymap.set("n", "<leader>gs", groups.horizontal, { desc = "Split Editor Group Horizontally" })
vim.keymap.set("n", "<leader>g=", groups.equalGroupSize, { desc = "Equal Group Size" })
vim.keymap.set("n", "<leader>gd", groups.close, { desc = "Close Group, Remain Editors" })
vim.keymap.set("n", "<leader>gD", groups.alsoCloseEditors, { desc = "Close Group and Editors" })
-- Files
local files = {