monaco-editor-core 0.56.0-dev-20251219 → 0.56.0-dev-20251221
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/nls.keys.json +1 -1
- package/esm/nls.messages.cs.js +2 -2
- package/esm/nls.messages.de.js +2 -2
- package/esm/nls.messages.es.js +2 -2
- package/esm/nls.messages.fr.js +2 -2
- package/esm/nls.messages.it.js +2 -2
- package/esm/nls.messages.ja.js +2 -2
- package/esm/nls.messages.js +1 -1
- package/esm/nls.messages.json +1 -1
- package/esm/nls.messages.ko.js +2 -2
- package/esm/nls.messages.pl.js +2 -2
- package/esm/nls.messages.pt-br.js +2 -2
- package/esm/nls.messages.ru.js +2 -2
- package/esm/nls.messages.tr.js +2 -2
- package/esm/nls.messages.zh-cn.js +2 -2
- package/esm/nls.messages.zh-tw.js +2 -2
- package/esm/nls.metadata.json +0 -2
- package/esm/vs/editor/common/core/editorColorRegistry.js +33 -34
- package/esm/vs/editor/common/core/editorColorRegistry.js.map +1 -1
- package/esm/vs/editor/common/editorContextKeys.js +47 -47
- package/esm/vs/editor/common/languages/modesRegistry.js +1 -1
- package/esm/vs/editor/common/languages.js +56 -56
- package/esm/vs/editor/common/model/editStack.js +1 -1
- package/esm/vs/editor/common/standaloneStrings.js +11 -11
- package/esm/vs/editor/common/viewLayout/viewLineRenderer.js +2 -2
- package/esm/vs/editor/contrib/anchorSelect/browser/anchorSelect.js +6 -6
- package/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +9 -18
- package/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js.map +1 -1
- package/esm/vs/editor/contrib/caretOperations/browser/caretOperations.js +2 -2
- package/esm/vs/editor/contrib/caretOperations/browser/transpose.js +1 -1
- package/esm/vs/editor/contrib/clipboard/browser/clipboard.js +17 -17
- package/esm/vs/editor/contrib/codeAction/browser/codeAction.js +1 -1
- package/esm/vs/editor/contrib/codeAction/browser/codeActionCommands.js +29 -29
- package/esm/vs/editor/contrib/codeAction/browser/codeActionContributions.js +3 -3
- package/esm/vs/editor/contrib/codeAction/browser/codeActionController.js +3 -3
- package/esm/vs/editor/contrib/codeAction/browser/codeActionMenu.js +8 -8
- package/esm/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +9 -9
- package/esm/vs/editor/contrib/codelens/browser/codelensController.js +2 -2
- package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerCloseButton.js +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerHeader.js +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerParticipant.js +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerActions.js +7 -7
- package/esm/vs/editor/contrib/comment/browser/comment.js +6 -6
- package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js +10 -10
- package/esm/vs/editor/contrib/cursorUndo/browser/cursorUndo.js +2 -2
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +4 -4
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +9 -9
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +8 -8
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +3 -3
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js +2 -2
- package/esm/vs/editor/contrib/editorState/browser/keybindingCancellation.js +1 -1
- package/esm/vs/editor/contrib/find/browser/findController.js +16 -16
- package/esm/vs/editor/contrib/find/browser/findWidget.js +26 -26
- package/esm/vs/editor/contrib/folding/browser/folding.js +20 -20
- package/esm/vs/editor/contrib/folding/browser/folding.js.map +1 -1
- package/esm/vs/editor/contrib/folding/browser/foldingDecorations.js +9 -9
- package/esm/vs/editor/contrib/fontZoom/browser/fontZoom.js +3 -3
- package/esm/vs/editor/contrib/format/browser/formatActions.js +2 -2
- package/esm/vs/editor/contrib/gotoError/browser/gotoError.js +8 -8
- package/esm/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +14 -14
- package/esm/vs/editor/contrib/gotoSymbol/browser/goToCommands.js +39 -39
- package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +1 -1
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js +3 -3
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesTree.js +3 -3
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +3 -3
- package/esm/vs/editor/contrib/gotoSymbol/browser/referencesModel.js +8 -8
- package/esm/vs/editor/contrib/gotoSymbol/browser/symbolNavigation.js +3 -3
- package/esm/vs/editor/contrib/gpu/browser/gpuActions.js +4 -4
- package/esm/vs/editor/contrib/hover/browser/hoverActionIds.js +2 -2
- package/esm/vs/editor/contrib/hover/browser/hoverActions.js +24 -24
- package/esm/vs/editor/contrib/hover/browser/hoverCopyButton.js +2 -2
- package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +9 -9
- package/esm/vs/editor/contrib/hover/browser/markerHoverParticipant.js +5 -5
- package/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
- package/esm/vs/editor/contrib/indentation/browser/indentation.js +20 -20
- package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +8 -8
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +21 -21
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +13 -13
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +2 -2
- package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +5 -5
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +2 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/renameSymbolProcessor.js +2 -2
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +6 -6
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js +7 -7
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js +13 -11
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsCustomView.js +5 -7
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsCustomView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsDeletionView.js +6 -5
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsDeletionView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsInsertionView.js +6 -5
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsInsertionView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsLineReplacementView.js +9 -7
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsLineReplacementView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsSideBySideView.js +14 -9
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsSideBySideView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsWordReplacementView.js +12 -10
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsWordReplacementView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/inlineEditsLongDistanceHint.js +5 -4
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/inlineEditsLongDistanceHint.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/originalEditorInlineDiffView.js +2 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/originalEditorInlineDiffView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +40 -21
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js.map +1 -1
- package/esm/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js +1 -1
- package/esm/vs/editor/contrib/lineSelection/browser/lineSelection.js +1 -1
- package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js +31 -31
- package/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +2 -2
- package/esm/vs/editor/contrib/links/browser/links.js +10 -10
- package/esm/vs/editor/contrib/message/browser/messageController.js +1 -1
- package/esm/vs/editor/contrib/multicursor/browser/multicursor.js +22 -22
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +4 -4
- package/esm/vs/editor/contrib/peekView/browser/peekView.js +18 -18
- package/esm/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
- package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +11 -11
- package/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +32 -32
- package/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +2 -2
- package/esm/vs/editor/contrib/rename/browser/rename.js +11 -11
- package/esm/vs/editor/contrib/rename/browser/renameWidget.js +7 -7
- package/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js +4 -4
- package/esm/vs/editor/contrib/snippet/browser/snippetController2.js +4 -4
- package/esm/vs/editor/contrib/snippet/browser/snippetVariables.js +4 -4
- package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
- package/esm/vs/editor/contrib/suggest/browser/suggest.js +9 -9
- package/esm/vs/editor/contrib/suggest/browser/suggestController.js +11 -11
- package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js +17 -17
- package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +2 -2
- package/esm/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +2 -2
- package/esm/vs/editor/contrib/suggest/browser/wordContextKey.js +1 -1
- package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
- package/esm/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
- package/esm/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +24 -24
- package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +5 -5
- package/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
- package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +3 -3
- package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js +3 -3
- package/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +62 -62
- package/esm/vs/platform/action/common/actionCommonCategories.js +6 -6
- package/esm/vs/platform/actionWidget/browser/actionList.js +4 -4
- package/esm/vs/platform/actionWidget/browser/actionWidget.js +7 -7
- package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js +5 -5
- package/esm/vs/platform/actions/browser/toolbar.js +2 -2
- package/esm/vs/platform/actions/common/menuService.js +2 -2
- package/esm/vs/platform/configuration/common/configurationRegistry.js +10 -10
- package/esm/vs/platform/contextkey/browser/contextKeyService.js +1 -1
- package/esm/vs/platform/contextkey/common/contextkey.js +9 -9
- package/esm/vs/platform/contextkey/common/contextkeys.js +9 -9
- package/esm/vs/platform/contextkey/common/scanner.js +5 -5
- package/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
- package/esm/vs/platform/hover/browser/hoverWidget.js +1 -1
- package/esm/vs/platform/hover/browser/updatableHoverWidget.js +1 -1
- package/esm/vs/platform/keybinding/common/abstractKeybindingService.js +4 -4
- package/esm/vs/platform/list/browser/listService.js +27 -27
- package/esm/vs/platform/markers/common/markerService.js +2 -2
- package/esm/vs/platform/markers/common/markers.js +6 -6
- package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +8 -8
- package/esm/vs/platform/quickinput/browser/helpQuickAccess.js +1 -1
- package/esm/vs/platform/quickinput/browser/quickInput.js +13 -47
- package/esm/vs/platform/quickinput/browser/quickInput.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/quickInputActions.js +5 -5
- package/esm/vs/platform/quickinput/browser/quickInputController.js +7 -6
- package/esm/vs/platform/quickinput/browser/quickInputController.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/quickInputList.js +1 -1
- package/esm/vs/platform/quickinput/browser/quickInputUtils.js +1 -1
- package/esm/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js +1 -1
- package/esm/vs/platform/quickinput/common/quickInput.js.map +1 -1
- package/esm/vs/platform/theme/common/colorUtils.js +2 -2
- package/esm/vs/platform/theme/common/colors/baseColors.js +18 -18
- package/esm/vs/platform/theme/common/colors/chartsColors.js +8 -8
- package/esm/vs/platform/theme/common/colors/editorColors.js +95 -95
- package/esm/vs/platform/theme/common/colors/inputColors.js +47 -47
- package/esm/vs/platform/theme/common/colors/listColors.js +36 -36
- package/esm/vs/platform/theme/common/colors/menuColors.js +7 -7
- package/esm/vs/platform/theme/common/colors/minimapColors.js +11 -11
- package/esm/vs/platform/theme/common/colors/miscColors.js +16 -16
- package/esm/vs/platform/theme/common/colors/quickpickColors.js +9 -9
- package/esm/vs/platform/theme/common/colors/searchColors.js +3 -3
- package/esm/vs/platform/theme/common/iconRegistry.js +6 -6
- package/esm/vs/platform/undoRedo/common/undoRedoService.js +20 -20
- package/esm/vs/platform/workspace/common/workspace.js +1 -1
- package/package.json +2 -2
|
@@ -5,37 +5,37 @@
|
|
|
5
5
|
import * as nls from '../../nls.js';
|
|
6
6
|
export var InspectTokensNLS;
|
|
7
7
|
(function (InspectTokensNLS) {
|
|
8
|
-
InspectTokensNLS.inspectTokensAction = nls.localize(
|
|
8
|
+
InspectTokensNLS.inspectTokensAction = nls.localize(792, "Developer: Inspect Tokens");
|
|
9
9
|
})(InspectTokensNLS || (InspectTokensNLS = {}));
|
|
10
10
|
export var GoToLineNLS;
|
|
11
11
|
(function (GoToLineNLS) {
|
|
12
|
-
GoToLineNLS.gotoLineActionLabel = nls.localize(
|
|
13
|
-
GoToLineNLS.gotoOffsetActionLabel = nls.localize(
|
|
12
|
+
GoToLineNLS.gotoLineActionLabel = nls.localize(793, "Go to Line/Column...");
|
|
13
|
+
GoToLineNLS.gotoOffsetActionLabel = nls.localize(794, "Go to Offset...");
|
|
14
14
|
})(GoToLineNLS || (GoToLineNLS = {}));
|
|
15
15
|
export var QuickHelpNLS;
|
|
16
16
|
(function (QuickHelpNLS) {
|
|
17
|
-
QuickHelpNLS.helpQuickAccessActionLabel = nls.localize(
|
|
17
|
+
QuickHelpNLS.helpQuickAccessActionLabel = nls.localize(795, "Show all Quick Access Providers");
|
|
18
18
|
})(QuickHelpNLS || (QuickHelpNLS = {}));
|
|
19
19
|
export var QuickCommandNLS;
|
|
20
20
|
(function (QuickCommandNLS) {
|
|
21
|
-
QuickCommandNLS.quickCommandActionLabel = nls.localize(
|
|
22
|
-
QuickCommandNLS.quickCommandHelp = nls.localize(
|
|
21
|
+
QuickCommandNLS.quickCommandActionLabel = nls.localize(796, "Command Palette");
|
|
22
|
+
QuickCommandNLS.quickCommandHelp = nls.localize(797, "Show And Run Commands");
|
|
23
23
|
})(QuickCommandNLS || (QuickCommandNLS = {}));
|
|
24
24
|
export var QuickOutlineNLS;
|
|
25
25
|
(function (QuickOutlineNLS) {
|
|
26
|
-
QuickOutlineNLS.quickOutlineActionLabel = nls.localize(
|
|
27
|
-
QuickOutlineNLS.quickOutlineByCategoryActionLabel = nls.localize(
|
|
26
|
+
QuickOutlineNLS.quickOutlineActionLabel = nls.localize(798, "Go to Symbol...");
|
|
27
|
+
QuickOutlineNLS.quickOutlineByCategoryActionLabel = nls.localize(799, "Go to Symbol by Category...");
|
|
28
28
|
})(QuickOutlineNLS || (QuickOutlineNLS = {}));
|
|
29
29
|
export var StandaloneCodeEditorNLS;
|
|
30
30
|
(function (StandaloneCodeEditorNLS) {
|
|
31
|
-
StandaloneCodeEditorNLS.editorViewAccessibleLabel = nls.localize(
|
|
31
|
+
StandaloneCodeEditorNLS.editorViewAccessibleLabel = nls.localize(800, "Editor content");
|
|
32
32
|
})(StandaloneCodeEditorNLS || (StandaloneCodeEditorNLS = {}));
|
|
33
33
|
export var ToggleHighContrastNLS;
|
|
34
34
|
(function (ToggleHighContrastNLS) {
|
|
35
|
-
ToggleHighContrastNLS.toggleHighContrast = nls.localize(
|
|
35
|
+
ToggleHighContrastNLS.toggleHighContrast = nls.localize(801, "Toggle High Contrast Theme");
|
|
36
36
|
})(ToggleHighContrastNLS || (ToggleHighContrastNLS = {}));
|
|
37
37
|
export var StandaloneServicesNLS;
|
|
38
38
|
(function (StandaloneServicesNLS) {
|
|
39
|
-
StandaloneServicesNLS.bulkEditServiceSummary = nls.localize(
|
|
39
|
+
StandaloneServicesNLS.bulkEditServiceSummary = nls.localize(802, "Made {0} edits in {1} files");
|
|
40
40
|
})(StandaloneServicesNLS || (StandaloneServicesNLS = {}));
|
|
41
41
|
//# sourceMappingURL=standaloneStrings.js.map
|
|
@@ -925,7 +925,7 @@ function _renderLine(input, sb) {
|
|
|
925
925
|
}
|
|
926
926
|
if (isOverflowing) {
|
|
927
927
|
sb.appendString('<span class="mtkoverflow">');
|
|
928
|
-
sb.appendString(nls.localize(
|
|
928
|
+
sb.appendString(nls.localize(803, "Show more ({0})", renderOverflowingCharCount(overflowingCharCount)));
|
|
929
929
|
sb.appendString('</span>');
|
|
930
930
|
}
|
|
931
931
|
sb.appendString('</span>');
|
|
@@ -936,7 +936,7 @@ function to4CharHex(n) {
|
|
|
936
936
|
}
|
|
937
937
|
function renderOverflowingCharCount(n) {
|
|
938
938
|
if (n < 1024) {
|
|
939
|
-
return nls.localize(
|
|
939
|
+
return nls.localize(804, "{0} chars", n);
|
|
940
940
|
}
|
|
941
941
|
if (n < 1024 * 1024) {
|
|
942
942
|
return `${(n / 1024).toFixed(1)} KB`;
|
|
@@ -43,12 +43,12 @@ let SelectionAnchorController = class SelectionAnchorController {
|
|
|
43
43
|
this.decorationId = accessor.addDecoration(Selection.fromPositions(position, position), {
|
|
44
44
|
description: 'selection-anchor',
|
|
45
45
|
stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,
|
|
46
|
-
hoverMessage: new MarkdownString().appendText(localize(
|
|
46
|
+
hoverMessage: new MarkdownString().appendText(localize(805, "Selection Anchor")),
|
|
47
47
|
className: 'selection-anchor'
|
|
48
48
|
});
|
|
49
49
|
});
|
|
50
50
|
this.selectionAnchorSetContextKey.set(!!this.decorationId);
|
|
51
|
-
alert(localize(
|
|
51
|
+
alert(localize(806, "Anchor set at {0}:{1}", position.lineNumber, position.column));
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
goToSelectionAnchor() {
|
|
@@ -91,7 +91,7 @@ class SetSelectionAnchor extends EditorAction {
|
|
|
91
91
|
constructor() {
|
|
92
92
|
super({
|
|
93
93
|
id: 'editor.action.setSelectionAnchor',
|
|
94
|
-
label: localize2(
|
|
94
|
+
label: localize2(807, "Set Selection Anchor"),
|
|
95
95
|
precondition: undefined,
|
|
96
96
|
kbOpts: {
|
|
97
97
|
kbExpr: EditorContextKeys.editorTextFocus,
|
|
@@ -108,7 +108,7 @@ class GoToSelectionAnchor extends EditorAction {
|
|
|
108
108
|
constructor() {
|
|
109
109
|
super({
|
|
110
110
|
id: 'editor.action.goToSelectionAnchor',
|
|
111
|
-
label: localize2(
|
|
111
|
+
label: localize2(808, "Go to Selection Anchor"),
|
|
112
112
|
precondition: SelectionAnchorSet,
|
|
113
113
|
});
|
|
114
114
|
}
|
|
@@ -120,7 +120,7 @@ class SelectFromAnchorToCursor extends EditorAction {
|
|
|
120
120
|
constructor() {
|
|
121
121
|
super({
|
|
122
122
|
id: 'editor.action.selectFromAnchorToCursor',
|
|
123
|
-
label: localize2(
|
|
123
|
+
label: localize2(809, "Select from Anchor to Cursor"),
|
|
124
124
|
precondition: SelectionAnchorSet,
|
|
125
125
|
kbOpts: {
|
|
126
126
|
kbExpr: EditorContextKeys.editorTextFocus,
|
|
@@ -137,7 +137,7 @@ class CancelSelectionAnchor extends EditorAction {
|
|
|
137
137
|
constructor() {
|
|
138
138
|
super({
|
|
139
139
|
id: 'editor.action.cancelSelectionAnchor',
|
|
140
|
-
label: localize2(
|
|
140
|
+
label: localize2(810, "Cancel Selection Anchor"),
|
|
141
141
|
precondition: SelectionAnchorSet,
|
|
142
142
|
kbOpts: {
|
|
143
143
|
kbExpr: EditorContextKeys.editorTextFocus,
|
|
@@ -15,14 +15,13 @@ import { ModelDecorationOptions } from '../../../common/model/textModel.js';
|
|
|
15
15
|
import * as nls from '../../../../nls.js';
|
|
16
16
|
import { MenuId, MenuRegistry } from '../../../../platform/actions/common/actions.js';
|
|
17
17
|
import { registerColor } from '../../../../platform/theme/common/colorRegistry.js';
|
|
18
|
-
import {
|
|
19
|
-
|
|
20
|
-
const overviewRulerBracketMatchForeground = registerColor('editorOverviewRuler.bracketMatchForeground', '#A0A0A0', nls.localize(812, 'Overview ruler marker color for matching brackets.'));
|
|
18
|
+
import { themeColorFromId } from '../../../../platform/theme/common/themeService.js';
|
|
19
|
+
const overviewRulerBracketMatchForeground = registerColor('editorOverviewRuler.bracketMatchForeground', '#A0A0A0', nls.localize(811, 'Overview ruler marker color for matching brackets.'));
|
|
21
20
|
class JumpToBracketAction extends EditorAction {
|
|
22
21
|
constructor() {
|
|
23
22
|
super({
|
|
24
23
|
id: 'editor.action.jumpToBracket',
|
|
25
|
-
label: nls.localize2(
|
|
24
|
+
label: nls.localize2(813, "Go to Bracket"),
|
|
26
25
|
precondition: undefined,
|
|
27
26
|
kbOpts: {
|
|
28
27
|
kbExpr: EditorContextKeys.editorTextFocus,
|
|
@@ -39,10 +38,10 @@ class SelectToBracketAction extends EditorAction {
|
|
|
39
38
|
constructor() {
|
|
40
39
|
super({
|
|
41
40
|
id: 'editor.action.selectToBracket',
|
|
42
|
-
label: nls.localize2(
|
|
41
|
+
label: nls.localize2(814, "Select to Bracket"),
|
|
43
42
|
precondition: undefined,
|
|
44
43
|
metadata: {
|
|
45
|
-
description: nls.localize2(
|
|
44
|
+
description: nls.localize2(815, "Select the text inside and including the brackets or curly braces"),
|
|
46
45
|
args: [{
|
|
47
46
|
name: 'args',
|
|
48
47
|
schema: {
|
|
@@ -70,7 +69,7 @@ class RemoveBracketsAction extends EditorAction {
|
|
|
70
69
|
constructor() {
|
|
71
70
|
super({
|
|
72
71
|
id: 'editor.action.removeBrackets',
|
|
73
|
-
label: nls.localize2(
|
|
72
|
+
label: nls.localize2(816, "Remove Brackets"),
|
|
74
73
|
precondition: undefined,
|
|
75
74
|
kbOpts: {
|
|
76
75
|
kbExpr: EditorContextKeys.editorTextFocus,
|
|
@@ -245,7 +244,7 @@ export class BracketMatchingController extends Disposable {
|
|
|
245
244
|
static { this._DECORATION_OPTIONS_WITH_OVERVIEW_RULER = ModelDecorationOptions.register({
|
|
246
245
|
description: 'bracket-match-overview',
|
|
247
246
|
stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,
|
|
248
|
-
|
|
247
|
+
className: 'bracket-match',
|
|
249
248
|
overviewRuler: {
|
|
250
249
|
color: themeColorFromId(overviewRulerBracketMatchForeground),
|
|
251
250
|
position: OverviewRulerLane.Center
|
|
@@ -254,7 +253,7 @@ export class BracketMatchingController extends Disposable {
|
|
|
254
253
|
static { this._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER = ModelDecorationOptions.register({
|
|
255
254
|
description: 'bracket-match-no-overview',
|
|
256
255
|
stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,
|
|
257
|
-
|
|
256
|
+
className: 'bracket-match'
|
|
258
257
|
}); }
|
|
259
258
|
_updateBrackets() {
|
|
260
259
|
if (this._matchBrackets === 'never') {
|
|
@@ -341,16 +340,8 @@ MenuRegistry.appendMenuItem(MenuId.MenubarGoMenu, {
|
|
|
341
340
|
group: '5_infile_nav',
|
|
342
341
|
command: {
|
|
343
342
|
id: 'editor.action.jumpToBracket',
|
|
344
|
-
title: nls.localize(
|
|
343
|
+
title: nls.localize(812, "Go to &&Bracket")
|
|
345
344
|
},
|
|
346
345
|
order: 2
|
|
347
346
|
});
|
|
348
|
-
// Theming participant to ensure bracket-match color overrides bracket pair colorization
|
|
349
|
-
registerThemingParticipant((theme, collector) => {
|
|
350
|
-
const bracketMatchForeground = theme.getColor(editorBracketMatchForeground);
|
|
351
|
-
if (bracketMatchForeground) {
|
|
352
|
-
// Use higher specificity to override bracket pair colorization
|
|
353
|
-
collector.addRule(`.monaco-editor .bracket-match { color: ${bracketMatchForeground} !important; }`);
|
|
354
|
-
}
|
|
355
|
-
});
|
|
356
347
|
//# sourceMappingURL=bracketMatching.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["vs/editor/contrib/bracketMatching/browser/bracketMatching.ts"],"names":[],"mappings":"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","file":"bracketMatching.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { KeyCode, KeyMod } from '../../../../base/common/keyCodes.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport './bracketMatching.css';\nimport { ICodeEditor } from '../../../browser/editorBrowser.js';\nimport { EditorAction, EditorContributionInstantiation, registerEditorAction, registerEditorContribution, ServicesAccessor } from '../../../browser/editorExtensions.js';\nimport { EditorOption } from '../../../common/config/editorOptions.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { IEditorContribution, IEditorDecorationsCollection } from '../../../common/editorCommon.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { IModelDeltaDecoration, OverviewRulerLane, TrackedRangeStickiness } from '../../../common/model.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport * as nls from '../../../../nls.js';\nimport { MenuId, MenuRegistry } from '../../../../platform/actions/common/actions.js';\nimport { KeybindingWeight } from '../../../../platform/keybinding/common/keybindingsRegistry.js';\nimport { registerColor } from '../../../../platform/theme/common/colorRegistry.js';\nimport { registerThemingParticipant, themeColorFromId } from '../../../../platform/theme/common/themeService.js';\nimport { editorBracketMatchForeground } from '../../../common/core/editorColorRegistry.js';\n\nconst overviewRulerBracketMatchForeground = registerColor('editorOverviewRuler.bracketMatchForeground', '#A0A0A0', nls.localize('overviewRulerBracketMatchForeground', 'Overview ruler marker color for matching brackets.'));\n\nclass JumpToBracketAction extends EditorAction {\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'editor.action.jumpToBracket',\n\t\t\tlabel: nls.localize2('smartSelect.jumpBracket', \"Go to Bracket\"),\n\t\t\tprecondition: undefined,\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: EditorContextKeys.editorTextFocus,\n\t\t\t\tprimary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.Backslash,\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic run(accessor: ServicesAccessor, editor: ICodeEditor): void {\n\t\tBracketMatchingController.get(editor)?.jumpToBracket();\n\t}\n}\n\nclass SelectToBracketAction extends EditorAction {\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'editor.action.selectToBracket',\n\t\t\tlabel: nls.localize2('smartSelect.selectToBracket', \"Select to Bracket\"),\n\t\t\tprecondition: undefined,\n\t\t\tmetadata: {\n\t\t\t\tdescription: nls.localize2('smartSelect.selectToBracketDescription', \"Select the text inside and including the brackets or curly braces\"),\n\t\t\t\targs: [{\n\t\t\t\t\tname: 'args',\n\t\t\t\t\tschema: {\n\t\t\t\t\t\ttype: 'object',\n\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t'selectBrackets': {\n\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\tdefault: true\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t}]\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): void {\n\t\tlet selectBrackets = true;\n\t\tif (args && args.selectBrackets === false) {\n\t\t\tselectBrackets = false;\n\t\t}\n\t\tBracketMatchingController.get(editor)?.selectToBracket(selectBrackets);\n\t}\n}\n\nclass RemoveBracketsAction extends EditorAction {\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'editor.action.removeBrackets',\n\t\t\tlabel: nls.localize2('smartSelect.removeBrackets', \"Remove Brackets\"),\n\t\t\tprecondition: undefined,\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: EditorContextKeys.editorTextFocus,\n\t\t\t\tprimary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.Backspace,\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t},\n\t\t\tcanTriggerInlineEdits: true,\n\t\t});\n\t}\n\n\tpublic run(accessor: ServicesAccessor, editor: ICodeEditor): void {\n\t\tBracketMatchingController.get(editor)?.removeBrackets(this.id);\n\t}\n}\n\ntype Brackets = [Range, Range];\n\nclass BracketsData {\n\tpublic readonly position: Position;\n\tpublic readonly brackets: Brackets | null;\n\tpublic readonly options: ModelDecorationOptions;\n\n\tconstructor(position: Position, brackets: Brackets | null, options: ModelDecorationOptions) {\n\t\tthis.position = position;\n\t\tthis.brackets = brackets;\n\t\tthis.options = options;\n\t}\n}\n\nexport class BracketMatchingController extends Disposable implements IEditorContribution {\n\tpublic static readonly ID = 'editor.contrib.bracketMatchingController';\n\n\tpublic static get(editor: ICodeEditor): BracketMatchingController | null {\n\t\treturn editor.getContribution<BracketMatchingController>(BracketMatchingController.ID);\n\t}\n\n\tprivate readonly _editor: ICodeEditor;\n\n\tprivate _lastBracketsData: BracketsData[];\n\tprivate _lastVersionId: number;\n\tprivate readonly _decorations: IEditorDecorationsCollection;\n\tprivate readonly _updateBracketsSoon: RunOnceScheduler;\n\tprivate _matchBrackets: 'never' | 'near' | 'always';\n\n\tconstructor(\n\t\teditor: ICodeEditor\n\t) {\n\t\tsuper();\n\t\tthis._editor = editor;\n\t\tthis._lastBracketsData = [];\n\t\tthis._lastVersionId = 0;\n\t\tthis._decorations = this._editor.createDecorationsCollection();\n\t\tthis._updateBracketsSoon = this._register(new RunOnceScheduler(() => this._updateBrackets(), 50));\n\t\tthis._matchBrackets = this._editor.getOption(EditorOption.matchBrackets);\n\n\t\tthis._updateBracketsSoon.schedule();\n\t\tthis._register(editor.onDidChangeCursorPosition((e) => {\n\n\t\t\tif (this._matchBrackets === 'never') {\n\t\t\t\t// Early exit if nothing needs to be done!\n\t\t\t\t// Leave some form of early exit check here if you wish to continue being a cursor position change listener ;)\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._updateBracketsSoon.schedule();\n\t\t}));\n\t\tthis._register(editor.onDidChangeModelContent((e) => {\n\t\t\tthis._updateBracketsSoon.schedule();\n\t\t}));\n\t\tthis._register(editor.onDidChangeModel((e) => {\n\t\t\tthis._lastBracketsData = [];\n\t\t\tthis._updateBracketsSoon.schedule();\n\t\t}));\n\t\tthis._register(editor.onDidChangeModelLanguageConfiguration((e) => {\n\t\t\tthis._lastBracketsData = [];\n\t\t\tthis._updateBracketsSoon.schedule();\n\t\t}));\n\t\tthis._register(editor.onDidChangeConfiguration((e) => {\n\t\t\tif (e.hasChanged(EditorOption.matchBrackets)) {\n\t\t\t\tthis._matchBrackets = this._editor.getOption(EditorOption.matchBrackets);\n\t\t\t\tthis._decorations.clear();\n\t\t\t\tthis._lastBracketsData = [];\n\t\t\t\tthis._lastVersionId = 0;\n\t\t\t\tthis._updateBracketsSoon.schedule();\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(editor.onDidBlurEditorWidget(() => {\n\t\t\tthis._updateBracketsSoon.schedule();\n\t\t}));\n\n\t\tthis._register(editor.onDidFocusEditorWidget(() => {\n\t\t\tthis._updateBracketsSoon.schedule();\n\t\t}));\n\t}\n\n\tpublic jumpToBracket(): void {\n\t\tif (!this._editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = this._editor.getModel();\n\t\tconst newSelections = this._editor.getSelections().map(selection => {\n\t\t\tconst position = selection.getStartPosition();\n\n\t\t\t// find matching brackets if position is on a bracket\n\t\t\tconst brackets = model.bracketPairs.matchBracket(position);\n\t\t\tlet newCursorPosition: Position | null = null;\n\t\t\tif (brackets) {\n\t\t\t\tif (brackets[0].containsPosition(position) && !brackets[1].containsPosition(position)) {\n\t\t\t\t\tnewCursorPosition = brackets[1].getStartPosition();\n\t\t\t\t} else if (brackets[1].containsPosition(position)) {\n\t\t\t\t\tnewCursorPosition = brackets[0].getStartPosition();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// find the enclosing brackets if the position isn't on a matching bracket\n\t\t\t\tconst enclosingBrackets = model.bracketPairs.findEnclosingBrackets(position);\n\t\t\t\tif (enclosingBrackets) {\n\t\t\t\t\tnewCursorPosition = enclosingBrackets[1].getStartPosition();\n\t\t\t\t} else {\n\t\t\t\t\t// no enclosing brackets, try the very first next bracket\n\t\t\t\t\tconst nextBracket = model.bracketPairs.findNextBracket(position);\n\t\t\t\t\tif (nextBracket && nextBracket.range) {\n\t\t\t\t\t\tnewCursorPosition = nextBracket.range.getStartPosition();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newCursorPosition) {\n\t\t\t\treturn new Selection(newCursorPosition.lineNumber, newCursorPosition.column, newCursorPosition.lineNumber, newCursorPosition.column);\n\t\t\t}\n\t\t\treturn new Selection(position.lineNumber, position.column, position.lineNumber, position.column);\n\t\t});\n\n\t\tthis._editor.setSelections(newSelections);\n\t\tthis._editor.revealRange(newSelections[0]);\n\t}\n\n\tpublic selectToBracket(selectBrackets: boolean): void {\n\t\tif (!this._editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = this._editor.getModel();\n\t\tconst newSelections: Selection[] = [];\n\n\t\tthis._editor.getSelections().forEach(selection => {\n\t\t\tconst position = selection.getStartPosition();\n\t\t\tlet brackets = model.bracketPairs.matchBracket(position);\n\n\t\t\tif (!brackets) {\n\t\t\t\tbrackets = model.bracketPairs.findEnclosingBrackets(position);\n\t\t\t\tif (!brackets) {\n\t\t\t\t\tconst nextBracket = model.bracketPairs.findNextBracket(position);\n\t\t\t\t\tif (nextBracket && nextBracket.range) {\n\t\t\t\t\t\tbrackets = model.bracketPairs.matchBracket(nextBracket.range.getStartPosition());\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet selectFrom: Position | null = null;\n\t\t\tlet selectTo: Position | null = null;\n\n\t\t\tif (brackets) {\n\t\t\t\tbrackets.sort(Range.compareRangesUsingStarts);\n\t\t\t\tconst [open, close] = brackets;\n\t\t\t\tselectFrom = selectBrackets ? open.getStartPosition() : open.getEndPosition();\n\t\t\t\tselectTo = selectBrackets ? close.getEndPosition() : close.getStartPosition();\n\n\t\t\t\tif (close.containsPosition(position)) {\n\t\t\t\t\t// select backwards if the cursor was on the closing bracket\n\t\t\t\t\tconst tmp = selectFrom;\n\t\t\t\t\tselectFrom = selectTo;\n\t\t\t\t\tselectTo = tmp;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (selectFrom && selectTo) {\n\t\t\t\tnewSelections.push(new Selection(selectFrom.lineNumber, selectFrom.column, selectTo.lineNumber, selectTo.column));\n\t\t\t}\n\t\t});\n\n\t\tif (newSelections.length > 0) {\n\t\t\tthis._editor.setSelections(newSelections);\n\t\t\tthis._editor.revealRange(newSelections[0]);\n\t\t}\n\t}\n\tpublic removeBrackets(editSource?: string): void {\n\t\tif (!this._editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = this._editor.getModel();\n\t\tthis._editor.getSelections().forEach((selection) => {\n\t\t\tconst position = selection.getPosition();\n\n\t\t\tlet brackets = model.bracketPairs.matchBracket(position);\n\t\t\tif (!brackets) {\n\t\t\t\tbrackets = model.bracketPairs.findEnclosingBrackets(position);\n\t\t\t}\n\t\t\tif (brackets) {\n\t\t\t\tthis._editor.pushUndoStop();\n\t\t\t\tthis._editor.executeEdits(\n\t\t\t\t\teditSource,\n\t\t\t\t\t[\n\t\t\t\t\t\t{ range: brackets[0], text: '' },\n\t\t\t\t\t\t{ range: brackets[1], text: '' }\n\t\t\t\t\t]\n\t\t\t\t);\n\t\t\t\tthis._editor.pushUndoStop();\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate static readonly _DECORATION_OPTIONS_WITH_OVERVIEW_RULER = ModelDecorationOptions.register({\n\t\tdescription: 'bracket-match-overview',\n\t\tstickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,\n\t\tinlineClassName: 'bracket-match',\n\t\toverviewRuler: {\n\t\t\tcolor: themeColorFromId(overviewRulerBracketMatchForeground),\n\t\t\tposition: OverviewRulerLane.Center\n\t\t}\n\t});\n\n\tprivate static readonly _DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER = ModelDecorationOptions.register({\n\t\tdescription: 'bracket-match-no-overview',\n\t\tstickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,\n\t\tinlineClassName: 'bracket-match'\n\t});\n\n\tprivate _updateBrackets(): void {\n\t\tif (this._matchBrackets === 'never') {\n\t\t\treturn;\n\t\t}\n\t\tthis._recomputeBrackets();\n\n\t\tconst newDecorations: IModelDeltaDecoration[] = [];\n\t\tlet newDecorationsLen = 0;\n\t\tfor (const bracketData of this._lastBracketsData) {\n\t\t\tconst brackets = bracketData.brackets;\n\t\t\tif (brackets) {\n\t\t\t\tnewDecorations[newDecorationsLen++] = { range: brackets[0], options: bracketData.options };\n\t\t\t\tnewDecorations[newDecorationsLen++] = { range: brackets[1], options: bracketData.options };\n\t\t\t}\n\t\t}\n\n\t\tthis._decorations.set(newDecorations);\n\t}\n\n\tprivate _recomputeBrackets(): void {\n\t\tif (!this._editor.hasModel() || !this._editor.hasWidgetFocus()) {\n\t\t\t// no model or no focus => no brackets!\n\t\t\tthis._lastBracketsData = [];\n\t\t\tthis._lastVersionId = 0;\n\t\t\treturn;\n\t\t}\n\n\t\tconst selections = this._editor.getSelections();\n\t\tif (selections.length > 100) {\n\t\t\t// no bracket matching for high numbers of selections\n\t\t\tthis._lastBracketsData = [];\n\t\t\tthis._lastVersionId = 0;\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = this._editor.getModel();\n\t\tconst versionId = model.getVersionId();\n\t\tlet previousData: BracketsData[] = [];\n\t\tif (this._lastVersionId === versionId) {\n\t\t\t// use the previous data only if the model is at the same version id\n\t\t\tpreviousData = this._lastBracketsData;\n\t\t}\n\n\t\tconst positions: Position[] = [];\n\t\tlet positionsLen = 0;\n\t\tfor (let i = 0, len = selections.length; i < len; i++) {\n\t\t\tconst selection = selections[i];\n\n\t\t\tif (selection.isEmpty()) {\n\t\t\t\t// will bracket match a cursor only if the selection is collapsed\n\t\t\t\tpositions[positionsLen++] = selection.getStartPosition();\n\t\t\t}\n\t\t}\n\n\t\t// sort positions for `previousData` cache hits\n\t\tif (positions.length > 1) {\n\t\t\tpositions.sort(Position.compare);\n\t\t}\n\n\t\tconst newData: BracketsData[] = [];\n\t\tlet newDataLen = 0;\n\t\tlet previousIndex = 0;\n\t\tconst previousLen = previousData.length;\n\t\tfor (let i = 0, len = positions.length; i < len; i++) {\n\t\t\tconst position = positions[i];\n\n\t\t\twhile (previousIndex < previousLen && previousData[previousIndex].position.isBefore(position)) {\n\t\t\t\tpreviousIndex++;\n\t\t\t}\n\n\t\t\tif (previousIndex < previousLen && previousData[previousIndex].position.equals(position)) {\n\t\t\t\tnewData[newDataLen++] = previousData[previousIndex];\n\t\t\t} else {\n\t\t\t\tlet brackets = model.bracketPairs.matchBracket(position, 20 /* give at most 20ms to compute */);\n\t\t\t\tlet options = BracketMatchingController._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;\n\t\t\t\tif (!brackets && this._matchBrackets === 'always') {\n\t\t\t\t\tbrackets = model.bracketPairs.findEnclosingBrackets(position, 20 /* give at most 20ms to compute */);\n\t\t\t\t\toptions = BracketMatchingController._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER;\n\t\t\t\t}\n\t\t\t\tnewData[newDataLen++] = new BracketsData(position, brackets, options);\n\t\t\t}\n\t\t}\n\n\t\tthis._lastBracketsData = newData;\n\t\tthis._lastVersionId = versionId;\n\t}\n}\n\nregisterEditorContribution(BracketMatchingController.ID, BracketMatchingController, EditorContributionInstantiation.AfterFirstRender);\nregisterEditorAction(SelectToBracketAction);\nregisterEditorAction(JumpToBracketAction);\nregisterEditorAction(RemoveBracketsAction);\n\n// Go to menu\nMenuRegistry.appendMenuItem(MenuId.MenubarGoMenu, {\n\tgroup: '5_infile_nav',\n\tcommand: {\n\t\tid: 'editor.action.jumpToBracket',\n\t\ttitle: nls.localize({ key: 'miGoToBracket', comment: ['&& denotes a mnemonic'] }, \"Go to &&Bracket\")\n\t},\n\torder: 2\n});\n\n// Theming participant to ensure bracket-match color overrides bracket pair colorization\nregisterThemingParticipant((theme, collector) => {\n\tconst bracketMatchForeground = theme.getColor(editorBracketMatchForeground);\n\tif (bracketMatchForeground) {\n\t\t// Use higher specificity to override bracket pair colorization\n\t\tcollector.addRule(`.monaco-editor .bracket-match { color: ${bracketMatchForeground} !important; }`);\n\t}\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["vs/editor/contrib/bracketMatching/browser/bracketMatching.ts"],"names":[],"mappings":"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","file":"bracketMatching.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nimport { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { KeyCode, KeyMod } from '../../../../base/common/keyCodes.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport './bracketMatching.css';\nimport { ICodeEditor } from '../../../browser/editorBrowser.js';\nimport { EditorAction, EditorContributionInstantiation, registerEditorAction, registerEditorContribution, ServicesAccessor } from '../../../browser/editorExtensions.js';\nimport { EditorOption } from '../../../common/config/editorOptions.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { IEditorContribution, IEditorDecorationsCollection } from '../../../common/editorCommon.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { IModelDeltaDecoration, OverviewRulerLane, TrackedRangeStickiness } from '../../../common/model.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport * as nls from '../../../../nls.js';\nimport { MenuId, MenuRegistry } from '../../../../platform/actions/common/actions.js';\nimport { KeybindingWeight } from '../../../../platform/keybinding/common/keybindingsRegistry.js';\nimport { registerColor } from '../../../../platform/theme/common/colorRegistry.js';\nimport { themeColorFromId } from '../../../../platform/theme/common/themeService.js';\n\nconst overviewRulerBracketMatchForeground = registerColor('editorOverviewRuler.bracketMatchForeground', '#A0A0A0', nls.localize('overviewRulerBracketMatchForeground', 'Overview ruler marker color for matching brackets.'));\n\nclass JumpToBracketAction extends EditorAction {\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'editor.action.jumpToBracket',\n\t\t\tlabel: nls.localize2('smartSelect.jumpBracket', \"Go to Bracket\"),\n\t\t\tprecondition: undefined,\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: EditorContextKeys.editorTextFocus,\n\t\t\t\tprimary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.Backslash,\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic run(accessor: ServicesAccessor, editor: ICodeEditor): void {\n\t\tBracketMatchingController.get(editor)?.jumpToBracket();\n\t}\n}\n\nclass SelectToBracketAction extends EditorAction {\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'editor.action.selectToBracket',\n\t\t\tlabel: nls.localize2('smartSelect.selectToBracket', \"Select to Bracket\"),\n\t\t\tprecondition: undefined,\n\t\t\tmetadata: {\n\t\t\t\tdescription: nls.localize2('smartSelect.selectToBracketDescription', \"Select the text inside and including the brackets or curly braces\"),\n\t\t\t\targs: [{\n\t\t\t\t\tname: 'args',\n\t\t\t\t\tschema: {\n\t\t\t\t\t\ttype: 'object',\n\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t'selectBrackets': {\n\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\tdefault: true\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t}]\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic run(accessor: ServicesAccessor, editor: ICodeEditor, args: any): void {\n\t\tlet selectBrackets = true;\n\t\tif (args && args.selectBrackets === false) {\n\t\t\tselectBrackets = false;\n\t\t}\n\t\tBracketMatchingController.get(editor)?.selectToBracket(selectBrackets);\n\t}\n}\n\nclass RemoveBracketsAction extends EditorAction {\n\tconstructor() {\n\t\tsuper({\n\t\t\tid: 'editor.action.removeBrackets',\n\t\t\tlabel: nls.localize2('smartSelect.removeBrackets', \"Remove Brackets\"),\n\t\t\tprecondition: undefined,\n\t\t\tkbOpts: {\n\t\t\t\tkbExpr: EditorContextKeys.editorTextFocus,\n\t\t\t\tprimary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.Backspace,\n\t\t\t\tweight: KeybindingWeight.EditorContrib\n\t\t\t},\n\t\t\tcanTriggerInlineEdits: true,\n\t\t});\n\t}\n\n\tpublic run(accessor: ServicesAccessor, editor: ICodeEditor): void {\n\t\tBracketMatchingController.get(editor)?.removeBrackets(this.id);\n\t}\n}\n\ntype Brackets = [Range, Range];\n\nclass BracketsData {\n\tpublic readonly position: Position;\n\tpublic readonly brackets: Brackets | null;\n\tpublic readonly options: ModelDecorationOptions;\n\n\tconstructor(position: Position, brackets: Brackets | null, options: ModelDecorationOptions) {\n\t\tthis.position = position;\n\t\tthis.brackets = brackets;\n\t\tthis.options = options;\n\t}\n}\n\nexport class BracketMatchingController extends Disposable implements IEditorContribution {\n\tpublic static readonly ID = 'editor.contrib.bracketMatchingController';\n\n\tpublic static get(editor: ICodeEditor): BracketMatchingController | null {\n\t\treturn editor.getContribution<BracketMatchingController>(BracketMatchingController.ID);\n\t}\n\n\tprivate readonly _editor: ICodeEditor;\n\n\tprivate _lastBracketsData: BracketsData[];\n\tprivate _lastVersionId: number;\n\tprivate readonly _decorations: IEditorDecorationsCollection;\n\tprivate readonly _updateBracketsSoon: RunOnceScheduler;\n\tprivate _matchBrackets: 'never' | 'near' | 'always';\n\n\tconstructor(\n\t\teditor: ICodeEditor\n\t) {\n\t\tsuper();\n\t\tthis._editor = editor;\n\t\tthis._lastBracketsData = [];\n\t\tthis._lastVersionId = 0;\n\t\tthis._decorations = this._editor.createDecorationsCollection();\n\t\tthis._updateBracketsSoon = this._register(new RunOnceScheduler(() => this._updateBrackets(), 50));\n\t\tthis._matchBrackets = this._editor.getOption(EditorOption.matchBrackets);\n\n\t\tthis._updateBracketsSoon.schedule();\n\t\tthis._register(editor.onDidChangeCursorPosition((e) => {\n\n\t\t\tif (this._matchBrackets === 'never') {\n\t\t\t\t// Early exit if nothing needs to be done!\n\t\t\t\t// Leave some form of early exit check here if you wish to continue being a cursor position change listener ;)\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._updateBracketsSoon.schedule();\n\t\t}));\n\t\tthis._register(editor.onDidChangeModelContent((e) => {\n\t\t\tthis._updateBracketsSoon.schedule();\n\t\t}));\n\t\tthis._register(editor.onDidChangeModel((e) => {\n\t\t\tthis._lastBracketsData = [];\n\t\t\tthis._updateBracketsSoon.schedule();\n\t\t}));\n\t\tthis._register(editor.onDidChangeModelLanguageConfiguration((e) => {\n\t\t\tthis._lastBracketsData = [];\n\t\t\tthis._updateBracketsSoon.schedule();\n\t\t}));\n\t\tthis._register(editor.onDidChangeConfiguration((e) => {\n\t\t\tif (e.hasChanged(EditorOption.matchBrackets)) {\n\t\t\t\tthis._matchBrackets = this._editor.getOption(EditorOption.matchBrackets);\n\t\t\t\tthis._decorations.clear();\n\t\t\t\tthis._lastBracketsData = [];\n\t\t\t\tthis._lastVersionId = 0;\n\t\t\t\tthis._updateBracketsSoon.schedule();\n\t\t\t}\n\t\t}));\n\n\t\tthis._register(editor.onDidBlurEditorWidget(() => {\n\t\t\tthis._updateBracketsSoon.schedule();\n\t\t}));\n\n\t\tthis._register(editor.onDidFocusEditorWidget(() => {\n\t\t\tthis._updateBracketsSoon.schedule();\n\t\t}));\n\t}\n\n\tpublic jumpToBracket(): void {\n\t\tif (!this._editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = this._editor.getModel();\n\t\tconst newSelections = this._editor.getSelections().map(selection => {\n\t\t\tconst position = selection.getStartPosition();\n\n\t\t\t// find matching brackets if position is on a bracket\n\t\t\tconst brackets = model.bracketPairs.matchBracket(position);\n\t\t\tlet newCursorPosition: Position | null = null;\n\t\t\tif (brackets) {\n\t\t\t\tif (brackets[0].containsPosition(position) && !brackets[1].containsPosition(position)) {\n\t\t\t\t\tnewCursorPosition = brackets[1].getStartPosition();\n\t\t\t\t} else if (brackets[1].containsPosition(position)) {\n\t\t\t\t\tnewCursorPosition = brackets[0].getStartPosition();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// find the enclosing brackets if the position isn't on a matching bracket\n\t\t\t\tconst enclosingBrackets = model.bracketPairs.findEnclosingBrackets(position);\n\t\t\t\tif (enclosingBrackets) {\n\t\t\t\t\tnewCursorPosition = enclosingBrackets[1].getStartPosition();\n\t\t\t\t} else {\n\t\t\t\t\t// no enclosing brackets, try the very first next bracket\n\t\t\t\t\tconst nextBracket = model.bracketPairs.findNextBracket(position);\n\t\t\t\t\tif (nextBracket && nextBracket.range) {\n\t\t\t\t\t\tnewCursorPosition = nextBracket.range.getStartPosition();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newCursorPosition) {\n\t\t\t\treturn new Selection(newCursorPosition.lineNumber, newCursorPosition.column, newCursorPosition.lineNumber, newCursorPosition.column);\n\t\t\t}\n\t\t\treturn new Selection(position.lineNumber, position.column, position.lineNumber, position.column);\n\t\t});\n\n\t\tthis._editor.setSelections(newSelections);\n\t\tthis._editor.revealRange(newSelections[0]);\n\t}\n\n\tpublic selectToBracket(selectBrackets: boolean): void {\n\t\tif (!this._editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = this._editor.getModel();\n\t\tconst newSelections: Selection[] = [];\n\n\t\tthis._editor.getSelections().forEach(selection => {\n\t\t\tconst position = selection.getStartPosition();\n\t\t\tlet brackets = model.bracketPairs.matchBracket(position);\n\n\t\t\tif (!brackets) {\n\t\t\t\tbrackets = model.bracketPairs.findEnclosingBrackets(position);\n\t\t\t\tif (!brackets) {\n\t\t\t\t\tconst nextBracket = model.bracketPairs.findNextBracket(position);\n\t\t\t\t\tif (nextBracket && nextBracket.range) {\n\t\t\t\t\t\tbrackets = model.bracketPairs.matchBracket(nextBracket.range.getStartPosition());\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet selectFrom: Position | null = null;\n\t\t\tlet selectTo: Position | null = null;\n\n\t\t\tif (brackets) {\n\t\t\t\tbrackets.sort(Range.compareRangesUsingStarts);\n\t\t\t\tconst [open, close] = brackets;\n\t\t\t\tselectFrom = selectBrackets ? open.getStartPosition() : open.getEndPosition();\n\t\t\t\tselectTo = selectBrackets ? close.getEndPosition() : close.getStartPosition();\n\n\t\t\t\tif (close.containsPosition(position)) {\n\t\t\t\t\t// select backwards if the cursor was on the closing bracket\n\t\t\t\t\tconst tmp = selectFrom;\n\t\t\t\t\tselectFrom = selectTo;\n\t\t\t\t\tselectTo = tmp;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (selectFrom && selectTo) {\n\t\t\t\tnewSelections.push(new Selection(selectFrom.lineNumber, selectFrom.column, selectTo.lineNumber, selectTo.column));\n\t\t\t}\n\t\t});\n\n\t\tif (newSelections.length > 0) {\n\t\t\tthis._editor.setSelections(newSelections);\n\t\t\tthis._editor.revealRange(newSelections[0]);\n\t\t}\n\t}\n\tpublic removeBrackets(editSource?: string): void {\n\t\tif (!this._editor.hasModel()) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = this._editor.getModel();\n\t\tthis._editor.getSelections().forEach((selection) => {\n\t\t\tconst position = selection.getPosition();\n\n\t\t\tlet brackets = model.bracketPairs.matchBracket(position);\n\t\t\tif (!brackets) {\n\t\t\t\tbrackets = model.bracketPairs.findEnclosingBrackets(position);\n\t\t\t}\n\t\t\tif (brackets) {\n\t\t\t\tthis._editor.pushUndoStop();\n\t\t\t\tthis._editor.executeEdits(\n\t\t\t\t\teditSource,\n\t\t\t\t\t[\n\t\t\t\t\t\t{ range: brackets[0], text: '' },\n\t\t\t\t\t\t{ range: brackets[1], text: '' }\n\t\t\t\t\t]\n\t\t\t\t);\n\t\t\t\tthis._editor.pushUndoStop();\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate static readonly _DECORATION_OPTIONS_WITH_OVERVIEW_RULER = ModelDecorationOptions.register({\n\t\tdescription: 'bracket-match-overview',\n\t\tstickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,\n\t\tclassName: 'bracket-match',\n\t\toverviewRuler: {\n\t\t\tcolor: themeColorFromId(overviewRulerBracketMatchForeground),\n\t\t\tposition: OverviewRulerLane.Center\n\t\t}\n\t});\n\n\tprivate static readonly _DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER = ModelDecorationOptions.register({\n\t\tdescription: 'bracket-match-no-overview',\n\t\tstickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,\n\t\tclassName: 'bracket-match'\n\t});\n\n\tprivate _updateBrackets(): void {\n\t\tif (this._matchBrackets === 'never') {\n\t\t\treturn;\n\t\t}\n\t\tthis._recomputeBrackets();\n\n\t\tconst newDecorations: IModelDeltaDecoration[] = [];\n\t\tlet newDecorationsLen = 0;\n\t\tfor (const bracketData of this._lastBracketsData) {\n\t\t\tconst brackets = bracketData.brackets;\n\t\t\tif (brackets) {\n\t\t\t\tnewDecorations[newDecorationsLen++] = { range: brackets[0], options: bracketData.options };\n\t\t\t\tnewDecorations[newDecorationsLen++] = { range: brackets[1], options: bracketData.options };\n\t\t\t}\n\t\t}\n\n\t\tthis._decorations.set(newDecorations);\n\t}\n\n\tprivate _recomputeBrackets(): void {\n\t\tif (!this._editor.hasModel() || !this._editor.hasWidgetFocus()) {\n\t\t\t// no model or no focus => no brackets!\n\t\t\tthis._lastBracketsData = [];\n\t\t\tthis._lastVersionId = 0;\n\t\t\treturn;\n\t\t}\n\n\t\tconst selections = this._editor.getSelections();\n\t\tif (selections.length > 100) {\n\t\t\t// no bracket matching for high numbers of selections\n\t\t\tthis._lastBracketsData = [];\n\t\t\tthis._lastVersionId = 0;\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = this._editor.getModel();\n\t\tconst versionId = model.getVersionId();\n\t\tlet previousData: BracketsData[] = [];\n\t\tif (this._lastVersionId === versionId) {\n\t\t\t// use the previous data only if the model is at the same version id\n\t\t\tpreviousData = this._lastBracketsData;\n\t\t}\n\n\t\tconst positions: Position[] = [];\n\t\tlet positionsLen = 0;\n\t\tfor (let i = 0, len = selections.length; i < len; i++) {\n\t\t\tconst selection = selections[i];\n\n\t\t\tif (selection.isEmpty()) {\n\t\t\t\t// will bracket match a cursor only if the selection is collapsed\n\t\t\t\tpositions[positionsLen++] = selection.getStartPosition();\n\t\t\t}\n\t\t}\n\n\t\t// sort positions for `previousData` cache hits\n\t\tif (positions.length > 1) {\n\t\t\tpositions.sort(Position.compare);\n\t\t}\n\n\t\tconst newData: BracketsData[] = [];\n\t\tlet newDataLen = 0;\n\t\tlet previousIndex = 0;\n\t\tconst previousLen = previousData.length;\n\t\tfor (let i = 0, len = positions.length; i < len; i++) {\n\t\t\tconst position = positions[i];\n\n\t\t\twhile (previousIndex < previousLen && previousData[previousIndex].position.isBefore(position)) {\n\t\t\t\tpreviousIndex++;\n\t\t\t}\n\n\t\t\tif (previousIndex < previousLen && previousData[previousIndex].position.equals(position)) {\n\t\t\t\tnewData[newDataLen++] = previousData[previousIndex];\n\t\t\t} else {\n\t\t\t\tlet brackets = model.bracketPairs.matchBracket(position, 20 /* give at most 20ms to compute */);\n\t\t\t\tlet options = BracketMatchingController._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;\n\t\t\t\tif (!brackets && this._matchBrackets === 'always') {\n\t\t\t\t\tbrackets = model.bracketPairs.findEnclosingBrackets(position, 20 /* give at most 20ms to compute */);\n\t\t\t\t\toptions = BracketMatchingController._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER;\n\t\t\t\t}\n\t\t\t\tnewData[newDataLen++] = new BracketsData(position, brackets, options);\n\t\t\t}\n\t\t}\n\n\t\tthis._lastBracketsData = newData;\n\t\tthis._lastVersionId = versionId;\n\t}\n}\n\nregisterEditorContribution(BracketMatchingController.ID, BracketMatchingController, EditorContributionInstantiation.AfterFirstRender);\nregisterEditorAction(SelectToBracketAction);\nregisterEditorAction(JumpToBracketAction);\nregisterEditorAction(RemoveBracketsAction);\n\n// Go to menu\nMenuRegistry.appendMenuItem(MenuId.MenubarGoMenu, {\n\tgroup: '5_infile_nav',\n\tcommand: {\n\t\tid: 'editor.action.jumpToBracket',\n\t\ttitle: nls.localize({ key: 'miGoToBracket', comment: ['&& denotes a mnemonic'] }, \"Go to &&Bracket\")\n\t},\n\torder: 2\n});\n"]}
|
|
@@ -29,7 +29,7 @@ class MoveCaretLeftAction extends MoveCaretAction {
|
|
|
29
29
|
constructor() {
|
|
30
30
|
super(true, {
|
|
31
31
|
id: 'editor.action.moveCarretLeftAction',
|
|
32
|
-
label: nls.localize2(
|
|
32
|
+
label: nls.localize2(817, "Move Selected Text Left"),
|
|
33
33
|
precondition: EditorContextKeys.writable
|
|
34
34
|
});
|
|
35
35
|
}
|
|
@@ -38,7 +38,7 @@ class MoveCaretRightAction extends MoveCaretAction {
|
|
|
38
38
|
constructor() {
|
|
39
39
|
super(false, {
|
|
40
40
|
id: 'editor.action.moveCarretRightAction',
|
|
41
|
-
label: nls.localize2(
|
|
41
|
+
label: nls.localize2(818, "Move Selected Text Right"),
|
|
42
42
|
precondition: EditorContextKeys.writable
|
|
43
43
|
});
|
|
44
44
|
}
|
|
@@ -12,7 +12,7 @@ class TransposeLettersAction extends EditorAction {
|
|
|
12
12
|
constructor() {
|
|
13
13
|
super({
|
|
14
14
|
id: 'editor.action.transposeLetters',
|
|
15
|
-
label: nls.localize2(
|
|
15
|
+
label: nls.localize2(819, "Transpose Letters"),
|
|
16
16
|
precondition: EditorContextKeys.writable,
|
|
17
17
|
kbOpts: {
|
|
18
18
|
kbExpr: EditorContextKeys.textInputFocus,
|
|
@@ -41,23 +41,23 @@ export const CutAction = supportsCut ? registerCommand(new MultiCommand({
|
|
|
41
41
|
menuOpts: [{
|
|
42
42
|
menuId: MenuId.MenubarEditMenu,
|
|
43
43
|
group: '2_ccp',
|
|
44
|
-
title: nls.localize(
|
|
44
|
+
title: nls.localize(820, "Cu&&t"),
|
|
45
45
|
order: 1
|
|
46
46
|
}, {
|
|
47
47
|
menuId: MenuId.EditorContext,
|
|
48
48
|
group: CLIPBOARD_CONTEXT_MENU_GROUP,
|
|
49
|
-
title: nls.localize(
|
|
49
|
+
title: nls.localize(821, "Cut"),
|
|
50
50
|
when: EditorContextKeys.writable,
|
|
51
51
|
order: 1,
|
|
52
52
|
}, {
|
|
53
53
|
menuId: MenuId.CommandPalette,
|
|
54
54
|
group: '',
|
|
55
|
-
title: nls.localize(
|
|
55
|
+
title: nls.localize(822, "Cut"),
|
|
56
56
|
order: 1
|
|
57
57
|
}, {
|
|
58
58
|
menuId: MenuId.SimpleEditorContext,
|
|
59
59
|
group: CLIPBOARD_CONTEXT_MENU_GROUP,
|
|
60
|
-
title: nls.localize(
|
|
60
|
+
title: nls.localize(823, "Cut"),
|
|
61
61
|
when: EditorContextKeys.writable,
|
|
62
62
|
order: 1,
|
|
63
63
|
}]
|
|
@@ -76,29 +76,29 @@ export const CopyAction = supportsCopy ? registerCommand(new MultiCommand({
|
|
|
76
76
|
menuOpts: [{
|
|
77
77
|
menuId: MenuId.MenubarEditMenu,
|
|
78
78
|
group: '2_ccp',
|
|
79
|
-
title: nls.localize(
|
|
79
|
+
title: nls.localize(824, "&&Copy"),
|
|
80
80
|
order: 2
|
|
81
81
|
}, {
|
|
82
82
|
menuId: MenuId.EditorContext,
|
|
83
83
|
group: CLIPBOARD_CONTEXT_MENU_GROUP,
|
|
84
|
-
title: nls.localize(
|
|
84
|
+
title: nls.localize(825, "Copy"),
|
|
85
85
|
order: 2,
|
|
86
86
|
}, {
|
|
87
87
|
menuId: MenuId.CommandPalette,
|
|
88
88
|
group: '',
|
|
89
|
-
title: nls.localize(
|
|
89
|
+
title: nls.localize(826, "Copy"),
|
|
90
90
|
order: 1
|
|
91
91
|
}, {
|
|
92
92
|
menuId: MenuId.SimpleEditorContext,
|
|
93
93
|
group: CLIPBOARD_CONTEXT_MENU_GROUP,
|
|
94
|
-
title: nls.localize(
|
|
94
|
+
title: nls.localize(827, "Copy"),
|
|
95
95
|
order: 2,
|
|
96
96
|
}]
|
|
97
97
|
})) : undefined;
|
|
98
|
-
MenuRegistry.appendMenuItem(MenuId.MenubarEditMenu, { submenu: MenuId.MenubarCopy, title: nls.localize2(
|
|
99
|
-
MenuRegistry.appendMenuItem(MenuId.EditorContext, { submenu: MenuId.EditorContextCopy, title: nls.localize2(
|
|
100
|
-
MenuRegistry.appendMenuItem(MenuId.EditorContext, { submenu: MenuId.EditorContextShare, title: nls.localize2(
|
|
101
|
-
MenuRegistry.appendMenuItem(MenuId.ExplorerContext, { submenu: MenuId.ExplorerContextShare, title: nls.localize2(
|
|
98
|
+
MenuRegistry.appendMenuItem(MenuId.MenubarEditMenu, { submenu: MenuId.MenubarCopy, title: nls.localize2(832, "Copy As"), group: '2_ccp', order: 3 });
|
|
99
|
+
MenuRegistry.appendMenuItem(MenuId.EditorContext, { submenu: MenuId.EditorContextCopy, title: nls.localize2(833, "Copy As"), group: CLIPBOARD_CONTEXT_MENU_GROUP, order: 3 });
|
|
100
|
+
MenuRegistry.appendMenuItem(MenuId.EditorContext, { submenu: MenuId.EditorContextShare, title: nls.localize2(834, "Share"), group: '11_share', order: -1, when: ContextKeyExpr.and(ContextKeyExpr.notEquals('resourceScheme', 'output'), EditorContextKeys.editorTextFocus) });
|
|
101
|
+
MenuRegistry.appendMenuItem(MenuId.ExplorerContext, { submenu: MenuId.ExplorerContextShare, title: nls.localize2(835, "Share"), group: '11_share', order: -1 });
|
|
102
102
|
export const PasteAction = supportsPaste ? registerCommand(new MultiCommand({
|
|
103
103
|
id: 'editor.action.clipboardPasteAction',
|
|
104
104
|
precondition: undefined,
|
|
@@ -114,23 +114,23 @@ export const PasteAction = supportsPaste ? registerCommand(new MultiCommand({
|
|
|
114
114
|
menuOpts: [{
|
|
115
115
|
menuId: MenuId.MenubarEditMenu,
|
|
116
116
|
group: '2_ccp',
|
|
117
|
-
title: nls.localize(
|
|
117
|
+
title: nls.localize(828, "&&Paste"),
|
|
118
118
|
order: 4
|
|
119
119
|
}, {
|
|
120
120
|
menuId: MenuId.EditorContext,
|
|
121
121
|
group: CLIPBOARD_CONTEXT_MENU_GROUP,
|
|
122
|
-
title: nls.localize(
|
|
122
|
+
title: nls.localize(829, "Paste"),
|
|
123
123
|
when: EditorContextKeys.writable,
|
|
124
124
|
order: 4,
|
|
125
125
|
}, {
|
|
126
126
|
menuId: MenuId.CommandPalette,
|
|
127
127
|
group: '',
|
|
128
|
-
title: nls.localize(
|
|
128
|
+
title: nls.localize(830, "Paste"),
|
|
129
129
|
order: 1
|
|
130
130
|
}, {
|
|
131
131
|
menuId: MenuId.SimpleEditorContext,
|
|
132
132
|
group: CLIPBOARD_CONTEXT_MENU_GROUP,
|
|
133
|
-
title: nls.localize(
|
|
133
|
+
title: nls.localize(831, "Paste"),
|
|
134
134
|
when: EditorContextKeys.writable,
|
|
135
135
|
order: 4,
|
|
136
136
|
}]
|
|
@@ -139,7 +139,7 @@ class ExecCommandCopyWithSyntaxHighlightingAction extends EditorAction {
|
|
|
139
139
|
constructor() {
|
|
140
140
|
super({
|
|
141
141
|
id: 'editor.action.clipboardCopyWithSyntaxHighlightingAction',
|
|
142
|
-
label: nls.localize2(
|
|
142
|
+
label: nls.localize2(836, "Copy with Syntax Highlighting"),
|
|
143
143
|
precondition: undefined,
|
|
144
144
|
kbOpts: {
|
|
145
145
|
kbExpr: EditorContextKeys.textInputFocus,
|
|
@@ -252,7 +252,7 @@ export async function applyCodeAction(accessor, item, codeActionReason, options,
|
|
|
252
252
|
const message = asMessage(err);
|
|
253
253
|
notificationService.error(typeof message === 'string'
|
|
254
254
|
? message
|
|
255
|
-
: nls.localize(
|
|
255
|
+
: nls.localize(837, "An unknown error occurred while applying the code action"));
|
|
256
256
|
}
|
|
257
257
|
}
|
|
258
258
|
// ensure the start sound and end sound do not overlap
|