- Add comprehensive file type filtering to prevent LSP errors on non-text files - Fix image freezing issues during file searches in Telescope - Optimize leader key response time (500ms → 200ms) - Add performance monitoring tools and LSP health checks - Implement safe file search commands to prevent crashes - Add startup optimization and deferred heavy operations - Enhance LSP error handling with timeouts and graceful fallbacks - Optimize Treesitter, completion, and search performance - Add comprehensive troubleshooting guide for LSP issues Performance improvements: - Faster scrolling and UI responsiveness - Better memory management and startup times - Reduced diagnostic updates and LSP overhead - Automatic exclusion of problematic file types New keymaps: - <leader>pp - Performance monitoring - <leader>pl - LSP health check - <leader>pr - Restart LSP - <leader>ff - Safe file search (prevents LSP errors) - <leader>ft - Text files only search
228 lines
6.5 KiB
JSON
228 lines
6.5 KiB
JSON
[
|
|
{
|
|
"key": "cmd+i",
|
|
"command": "composerMode.agent"
|
|
},
|
|
{
|
|
"key": "ctrl-h",
|
|
"command": "workbench.action.navigateLeft"
|
|
},
|
|
{
|
|
"key": "ctrl-l",
|
|
"command": "workbench.action.navigateRight"
|
|
},
|
|
{
|
|
"key": "ctrl-k",
|
|
"command": "workbench.action.navigateUp"
|
|
},
|
|
{
|
|
"key": "ctrl-j",
|
|
"command": "workbench.action.navigateDown"
|
|
},
|
|
{
|
|
"key": "space e",
|
|
"command": "runCommands",
|
|
"args": {
|
|
"commands": [
|
|
"workbench.action.toggleSidebarVisibility",
|
|
"workbench.files.action.focusFilesExplorer"
|
|
]
|
|
},
|
|
"when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus) && !sideBarFocus"
|
|
},
|
|
{
|
|
"key": "space e",
|
|
"command": "runCommands",
|
|
"args": {
|
|
"commands": [
|
|
"workbench.action.toggleSidebarVisibility",
|
|
"workbench.action.focusActiveEditorGroup"
|
|
]
|
|
},
|
|
"when": "vim.mode == 'Normal' && sideBarFocus && !inputFocus"
|
|
},
|
|
{
|
|
"key": "space e",
|
|
"when": "vim.mode == 'Normal' && editorTextFocus && foldersViewVisible",
|
|
"command": "workbench.action.toggleSidebarVisibility"
|
|
},
|
|
{
|
|
"key": "ctrl-w h",
|
|
"command": "workbench.action.navigateLeft",
|
|
"when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus)"
|
|
},
|
|
{
|
|
"key": "ctrl-w l",
|
|
"command": "workbench.action.navigateRight",
|
|
"when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus)"
|
|
},
|
|
{
|
|
"key": "ctrl-w k",
|
|
"command": "workbench.action.navigateUp",
|
|
"when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus)"
|
|
},
|
|
{
|
|
"key": "ctrl-w j",
|
|
"command": "workbench.action.navigateDown",
|
|
"when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus)"
|
|
},
|
|
{
|
|
"key": "space r",
|
|
"command": "renameFile",
|
|
"when": "vim.mode == 'Normal' && filesExplorerFocus && !inputFocus"
|
|
},
|
|
{
|
|
"key": "space x",
|
|
"command": "filesExplorer.cut",
|
|
"when": "vim.mode == 'Normal' && filesExplorerFocus && !inputFocus"
|
|
},
|
|
{
|
|
"key": "space d",
|
|
"command": "deleteFile",
|
|
"when": "vim.mode == 'Normal' && filesExplorerFocus && !inputFocus"
|
|
},
|
|
{
|
|
"key": "space a",
|
|
"command": "explorer.newFile",
|
|
"when": "vim.mode == 'Normal' && filesExplorerFocus && !inputFocus"
|
|
},
|
|
{
|
|
"key": "space s",
|
|
"command": "explorer.openToSide",
|
|
"when": "vim.mode == 'Normal' && filesExplorerFocus && !inputFocus"
|
|
},
|
|
{
|
|
"key": "enter",
|
|
"command": "explorer.openAndPassFocus",
|
|
"when": "filesExplorerFocus && !explorerResourceIsFolder && !inputFocus"
|
|
},
|
|
{
|
|
"key": "enter",
|
|
"command": "list.toggleExpand",
|
|
"when": "filesExplorerFocus && explorerResourceIsFolder && !inputFocus"
|
|
},
|
|
{
|
|
"key": "space d a",
|
|
"command": "workbench.action.debug.selectandstart",
|
|
"when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus) && debuggersAvailable"
|
|
},
|
|
{
|
|
"key": "space d t",
|
|
"command": "workbench.action.debug.stop",
|
|
"when": "vim.mode == 'Normal' && editorTextFocus && inDebugMode && !focusedSessionIsAttached"
|
|
},
|
|
{
|
|
"key": "space shift-s",
|
|
"command": "runCommands",
|
|
"when": "vim.mode == 'Normal' && filesExplorerFocus && !inputFocus",
|
|
"args": {
|
|
"commands": [
|
|
"workbench.action.splitEditorDown",
|
|
"explorer.openAndPassFocus",
|
|
"workbench.action.closeOtherEditors"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key": "space d o",
|
|
"command": "workbench.action.debug.stepOver",
|
|
"when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus) && inDebugMode && debugState == 'stopped'"
|
|
},
|
|
{
|
|
"key": "space d b",
|
|
"command": "editor.debug.action.toggleBreakpoint",
|
|
"when": "vim.mode == 'Normal' && editorTextFocus"
|
|
},
|
|
{
|
|
"key": "space d e",
|
|
"command": "editor.debug.action.showDebugHover",
|
|
"when": "vim.mode == 'Normal' && editorTextFocus && inDebugMode && debugState == 'stopped'"
|
|
},
|
|
{
|
|
"key": "space d c",
|
|
"command": "workbench.action.debug.continue",
|
|
"when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus) && inDebugMode && debugState == 'stopped'"
|
|
},
|
|
{
|
|
"key": "space w",
|
|
"command": "workbench.action.files.save",
|
|
"when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus)"
|
|
},
|
|
{
|
|
"key": "space q",
|
|
"command": "workbench.action.closeActiveEditor",
|
|
"when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus)"
|
|
},
|
|
{
|
|
"key": "space x a",
|
|
"command": "workbench.action.closeAllEditors",
|
|
"when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus)"
|
|
},
|
|
{
|
|
"key": "ctrl-e",
|
|
"command": "editorScroll",
|
|
"args": { "to": "down", "by": "line", "value": 10, "revealCursor": true },
|
|
"when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus)"
|
|
},
|
|
{
|
|
"key": "ctrl-y",
|
|
"command": "editorScroll",
|
|
"args": { "to": "up", "by": "line", "value": 10, "revealCursor": true },
|
|
"when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus)"
|
|
},
|
|
{
|
|
"key": "space n t",
|
|
"command": "workbench.view.explorer",
|
|
"when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus)"
|
|
},
|
|
{
|
|
"key": "space o",
|
|
"command": "workbench.action.splitEditorRight",
|
|
"when": "vim.mode == 'Normal' && filesExplorerFocus && !inputFocus"
|
|
},
|
|
{
|
|
"key": "space i",
|
|
"command": "workbench.action.splitEditorDown",
|
|
"when": "vim.mode == 'Normal' && filesExplorerFocus && !inputFocus"
|
|
},
|
|
{
|
|
"key": "ctrl-p",
|
|
"command": "workbench.action.previousEditor",
|
|
"when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus)"
|
|
},
|
|
{
|
|
"key": "ctrl-n",
|
|
"command": "workbench.action.nextEditor",
|
|
"when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus)"
|
|
},
|
|
{
|
|
"key": "space c c",
|
|
"command": "workbench.action.openChat",
|
|
"when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus)"
|
|
},
|
|
{
|
|
"key": "space c q",
|
|
"command": "workbench.action.closeChat",
|
|
"when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus)"
|
|
},
|
|
{
|
|
"key": "space c i",
|
|
"command": "workbench.action.focusChatInput",
|
|
"when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus)"
|
|
},
|
|
{
|
|
"key": "space c n",
|
|
"command": "workbench.action.newChat",
|
|
"when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus)"
|
|
},
|
|
{
|
|
"key": "space c k",
|
|
"command": "workbench.action.keepChat",
|
|
"when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus)"
|
|
},
|
|
{
|
|
"key": "space c u",
|
|
"command": "workbench.action.undoChatChanges",
|
|
"when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus)"
|
|
}
|
|
] |