local M = {} function M.setup(vscode) local fold = { unfold_all = function() vscode.action("editor.unfoldAll") end, fold_all = function() vscode.action("editor.foldAll") end, toggle = function() vscode.action("editor.toggleFold") end, } vim.keymap.set("n", "zR", fold.unfold_all, { desc = "Unfold All" }) vim.keymap.set("n", "zM", fold.fold_all, { desc = "Fold All" }) vim.keymap.set("n", "za", fold.toggle, { desc = "Toggle Fold" }) vim.keymap.set("n", "z", function() vscode.action("workbench.action.toggleZenMode") end, { desc = "Toggle Zen Mode" }) vim.keymap.set("n", "b", function() vscode.action("workbench.action.toggleSidebarVisibility") end, { desc = "Toggle Sidebar Visibility" }) vim.keymap.set("n", "B", function() vscode.action("workbench.action.toggleSidebarPosition") end, { desc = "Toggle Sidebar Position" }) vim.keymap.set("n", "be", function() vscode.action("workbench.view.explorer") end, { desc = "Open Sidebar Explorer" }) vim.keymap.set("n", "bs", function() vscode.action("workbench.view.search") end, { desc = "Open Sidebar Search" }) vim.keymap.set("n", "l", function() local line_numbers = vscode.get_config("editor.lineNumbers") local next_value = line_numbers == "on" and "relative" or "on" vscode.update_config("editor.lineNumbers", next_value, "workspace") end, { desc = "Toggle Line Number Mode" }) vim.keymap.set("n", "w", function() local wrap_mode = vscode.get_config("editor.wordWrap") local next_value = wrap_mode == "on" and "off" or "on" vscode.update_config("editor.wordWrap", next_value, "workspace") end, { desc = "Toggle Word Wrap Mode" }) vim.keymap.set("n", "cf", function() vscode.action("editor.action.formatDocument") end, { desc = "Format Code" }) vim.keymap.set("n", "e", function() vscode.action("workbench.action.quickOpenPreviousRecentlyUsedEditorInGroup") vscode.action("list.select") end, { desc = "Toggle Between Two Editors Inside Group" }) vim.keymap.set("n", "E", function() vscode.action("workbench.action.quickOpenPreviousRecentlyUsedEditor") vscode.action("list.select") end, { desc = "Toggle Between Two Editors Cross Groups" }) vim.keymap.set("n", "eg", function() vscode.action("workbench.action.quickOpenPreviousRecentlyUsedEditor") end, { desc = "Select Editor Cross Groups" }) vim.keymap.set("n", "ei", function() vscode.action("workbench.action.quickOpenPreviousRecentlyUsedEditorInGroup") end, { desc = "Select Editor Inside Group" }) vim.keymap.set("n", "eh", function() vscode.action("workbench.action.previousEditorInGroup") end, { desc = "Previous Editor In Group" }) vim.keymap.set("n", "el", function() vscode.action("workbench.action.nextEditorInGroup") end, { desc = "Next Editor In Group" }) vim.keymap.set("n", "ed", function() vscode.action("workbench.action.closeActiveEditor") end, { desc = "Close Editor" }) vim.keymap.set("n", "emn", function() vscode.action("workbench.action.moveEditorToNextGroup") end, { desc = "Move Editor To Next Group" }) vim.keymap.set("n", "emp", function() vscode.action("workbench.action.moveEditorToPreviousGroup") end, { desc = "Move Editor To Previous Group" }) vim.keymap.set("n", "g", function() vscode.action("workbench.action.focusNextGroup") end, { desc = "Focus Next Group" }) vim.keymap.set("n", "gv", function() vscode.action("workbench.action.splitEditorRight") end, { desc = "Split Editor Group Vertically" }) vim.keymap.set("n", "gs", function() vscode.action("workbench.action.splitEditorDown") end, { desc = "Split Editor Group Horizontally" }) vim.keymap.set("n", "g=", function() vscode.action("workbench.action.evenEditorWidths") end, { desc = "Equal Group Size" }) vim.keymap.set("n", "gd", function() vscode.action("workbench.action.closeGroup") end, { desc = "Close Group, Keep Editors" }) vim.keymap.set("n", "gD", function() vscode.action("workbench.action.closeEditorsAndGroup") end, { desc = "Close Group And Editors" }) vim.keymap.set("n", "sf", function() vscode.action("workbench.action.quickOpen") vscode.action("workbench.action.quickOpenSelectNext") end, { desc = "Search Files" }) vim.keymap.set("n", "ss", function() vscode.action("workbench.action.gotoSymbol") end, { desc = "Search Symbols" }) vim.keymap.set("n", "sb", function() vscode.action("breadcrumbs.focusAndSelect") end, { desc = "Search Breadcrumbs" }) vim.keymap.set("n", "se", function() vscode.action("workbench.action.quickOpenPreviousRecentlyUsedEditor") end, { desc = "Search Editors Cross Groups" }) end return M