if vim.g.vscode then local vscode = require 'vscode' --n: normal mode, x: visual mode, i: insert mode vim.keymap.set({ 'n', 'x' }, ',', function() vscode.action 'workbench.action.showCommands' end) vim.keymap.set({ 'n', 'x' }, '', function() vscode.action 'workbench.action.quickOpen' end) vim.keymap.set({ 'n', 'x' }, 'ts', function() vscode.action 'workbench.action.toggleSidebarVisibility' end) vim.keymap.set({ 'n', 'x' }, 'x', function() vscode.action 'workbench.view.explorer' end) vim.keymap.set({ 'n', 'x' }, 'wr', function() vscode.action 'workbench.action.reloadWindow' end) vim.keymap.set({ 'n', 'x' }, 'wq', function() vscode.action 'workbench.action.quit' end) -- find key vim.keymap.set({ 'n', 'x' }, 'sf', function() vscode.action 'workbench.action.findInFiles' end) vim.keymap.set({ 'n', 'x' }, 'sn', function() vscode.action 'workbench.action.focusNextSearchResult' end) vim.keymap.set({ 'n', 'x' }, 'sp', function() vscode.action 'workbench.action.focusPreviousSearchResult' end) -- document keys vim.keymap.set({ 'n', 'x' }, 'f', function() vscode.action 'editor.action.formatDocument' end) vim.keymap.set('n', 'ds', function() vscode.action 'cSpell.toggleEnableSpellChecker' vscode.call 'workbench.action.quickOpenNavigateNextInEditorPicker' vscode.call 'workbench.action.quickOpenNavigateNextInEditorPicker' end) vim.keymap.set({ 'n', 'x' }, '.', function() vscode.action 'editor.action.quickFix' end) vim.keymap.set({ 'n', 'x' }, 'rn', function() vscode.action 'editor.action.rename' end) vim.keymap.set({ 'n', 'x' }, 'rr', function() vscode.action 'editor.action.refactor' end) vim.keymap.set({ 'n', 'x' }, 'ri', function() vscode.action 'editor.action.organizeImports' end) vim.keymap.set('n', 'gd', function() vscode.action 'editor.action.revealDefinition' end) vim.keymap.set('n', 'gi', function() vscode.action 'editor.action.goToImplementation' end) vim.keymap.set('n', 'K', function() vscode.action 'editor.action.scrollUpHover' end) vim.keymap.set('n', '', function() vscode.action 'editor.action.triggerParameterHints' end) vim.keymap.set('n', 'gr', function() vscode.action 'references-view.findReferences' end) -- editor.action.findReferences vim.keymap.set('n', '[d', function() vscode.action 'editor.action.marker.prev' end) vim.keymap.set('n', ']d', function() vscode.action 'editor.action.marker.next' end) vim.keymap.set('n', 'e', function() vscode.action 'workbench.actions.view.problems' end) -- editor keys vim.keymap.set({ 'n', 'x' }, 'ep', function() vscode.action 'workbench.action.pinEditor' end) vim.keymap.set({ 'n', 'x' }, 'eP', function() vscode.action 'workbench.action.unpinEditor' end) vim.keymap.set({ 'n', 'x' }, 'es', function() vscode.action 'workbench.action.splitEditor' end) vim.keymap.set({ 'n', 'x' }, 'ev', function() vscode.action 'workbench.action.splitEditorDown' end) vim.keymap.set({ 'n', 'x' }, 'et', function() vscode.action 'workbench.action.closeOtherEditors' end) vim.keymap.set({ 'n', 'x' }, 'el', function() vscode.action 'workbench.action.moveEditorLeftInGroup' end) vim.keymap.set({ 'n', 'x' }, 'el', function() vscode.action 'workbench.action.moveEditorRightInGroup' end) vim.keymap.set({ 'n', 'x' }, 'Q', function() vscode.call 'workbench.action.files.save' vscode.call 'workbench.action.unpinEditor' vscode.action 'workbench.action.closeActiveEditor' end) -- vscode-harpoon vim.keymap.set('n', 'ha', function() vscode.action 'vscode-harpoon.addEditor' end) vim.keymap.set('n', 'hp', function() vscode.action 'vscode-harpoon.editorQuickPick' end) vim.keymap.set('n', 'he', function() vscode.action 'vscode-harpoon.editEditors' end) vim.keymap.set('n', 'h1', function() vscode.action 'vscode-harpoon.goToEditor1' end) vim.keymap.set('n', 'h2', function() vscode.action 'vscode-harpoon.goToEditor2' end) vim.keymap.set('n', 'h3', function() vscode.action 'vscode-harpoon.goToEditor3' end) vim.keymap.set('n', 'h4', function() vscode.action 'vscode-harpoon.goToEditor4' end) vim.keymap.set('n', 'h5', function() vscode.action 'vscode-harpoon.goToEditor5' end) end