有没有一种方法可以获取Monaco可用命令/操作及其ID的列表,例如editor.action.formatDocument
?
在文档中似乎没有任何内容,并且我很难在VS Code存储库中找到已注册的操作和命令。命令面板显示了大部分内容,但如果您想使用executeCommand
手动调用它们,则没有它们的ID指示。
有没有一种方法可以获取Monaco可用命令/操作及其ID的列表,例如editor.action.formatDocument
?
在文档中似乎没有任何内容,并且我很难在VS Code存储库中找到已注册的操作和命令。命令面板显示了大部分内容,但如果您想使用executeCommand
手动调用它们,则没有它们的ID指示。
editor.getSupportedActions()
是我在寻找的东西。
您可以像这样使用它来获取操作 ID 列表:
let actions = editor.getSupportedActions().map((a) => a.id);
console.log(actions);
在我目前的 Monaco 设置中,它返回了这样的列表:
[
"actions.find",
"actions.findWithSelection",
"cursorRedo",
"cursorUndo",
"deleteAllLeft",
"deleteAllRight",
"editor.action.addCommentLine",
"editor.action.addCursorsToBottom",
"editor.action.addCursorsToTop",
"editor.action.addSelectionToNextFindMatch",
"editor.action.addSelectionToPreviousFindMatch",
"editor.action.blockComment",
"editor.action.clipboardCopyWithSyntaxHighlightingAction",
"editor.action.commentLine",
"editor.action.copyLinesDownAction",
"editor.action.copyLinesUpAction",
"editor.action.deleteLines",
"editor.action.detectIndentation",
"editor.action.duplicateSelection",
"editor.action.fontZoomIn",
"editor.action.fontZoomOut",
"editor.action.fontZoomReset",
"editor.action.formatDocument",
"editor.action.formatSelection",
"editor.action.gotoLine",
"editor.action.goToReferences",
"editor.action.indentationToSpaces",
"editor.action.indentationToTabs",
"editor.action.indentLines",
"editor.action.indentUsingSpaces",
"editor.action.indentUsingTabs",
"editor.action.inPlaceReplace.down",
"editor.action.inPlaceReplace.up",
"editor.action.insertCursorAbove",
"editor.action.insertCursorAtEndOfEachLineSelected",
"editor.action.insertCursorBelow",
"editor.action.insertLineAfter",
"editor.action.insertLineBefore",
"editor.action.inspectTokens",
"editor.action.joinLines",
"editor.action.jumpToBracket",
"editor.action.marker.next",
"editor.action.marker.nextInFiles",
"editor.action.marker.prev",
"editor.action.marker.prevInFiles",
"editor.action.moveCarretLeftAction",
"editor.action.moveCarretRightAction",
"editor.action.moveLinesDownAction",
"editor.action.moveLinesUpAction",
"editor.action.moveSelectionToNextFindMatch",
"editor.action.moveSelectionToPreviousFindMatch",
"editor.action.nextMatchFindAction",
"editor.action.nextSelectionMatchFindAction",
"editor.action.onTypeRename",
"editor.action.openLink",
"editor.action.outdentLines",
"editor.action.peekDefinition",
"editor.action.previousMatchFindAction",
"editor.action.previousSelectionMatchFindAction",
"editor.action.quickCommand",
"editor.action.quickFix",
"editor.action.quickOutline",
"editor.action.refactor",
"editor.action.referenceSearch.trigger",
"editor.action.reindentlines",
"editor.action.reindentselectedlines",
"editor.action.removeCommentLine",
"editor.action.rename",
"editor.action.revealDefinition",
"editor.action.revealDefinitionAside",
"editor.action.selectHighlights",
"editor.action.selectToBracket",
"editor.action.setSelectionAnchor",
"editor.action.showAccessibilityHelp",
"editor.action.showContextMenu",
"editor.action.showDefinitionPreviewHover",
"editor.action.showHover",
"editor.action.smartSelect.expand",
"editor.action.smartSelect.shrink",
"editor.action.sortLinesAscending",
"editor.action.sortLinesDescending",
"editor.action.sourceAction",
"editor.action.startFindReplaceAction",
"editor.action.toggleHighContrast",
"editor.action.toggleTabFocusMode",
"editor.action.transformToLowercase",
"editor.action.transformToTitlecase",
"editor.action.transformToUppercase",
"editor.action.transpose",
"editor.action.transposeLetters",
"editor.action.triggerParameterHints",
"editor.action.triggerSuggest",
"editor.action.trimTrailingWhitespace",
"editor.action.wordHighlight.trigger",
"editor.fold",
"editor.foldAll",
"editor.foldAllBlockComments",
"editor.foldAllMarkerRegions",
"editor.foldLevel1",
"editor.foldLevel2",
"editor.foldLevel3",
"editor.foldLevel4",
"editor.foldLevel5",
"editor.foldLevel6",
"editor.foldLevel7",
"editor.foldRecursively",
"editor.toggleFold",
"editor.unfold",
"editor.unfoldAll",
"editor.unfoldAllMarkerRegions",
"editor.unfoldRecursively"
]
或者你可以使用:
let actions = editor.getActions();
console.log(actions);
let actions = editor._actions;
console.log(actions);
editor.getSupportedActions()
可以正常工作。如果您过早地调用它,可能不会显示所有命令。一旦您获得了操作 ID,就可以使用editor.trigger()
来调用它们。 - shshaw