monaco-editor-core 0.55.0-dev-20251104 → 0.55.0-dev-20251105

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.
Files changed (111) hide show
  1. package/esm/nls.keys.json +1 -1
  2. package/esm/nls.messages.cs.js +2 -2
  3. package/esm/nls.messages.de.js +2 -2
  4. package/esm/nls.messages.es.js +2 -2
  5. package/esm/nls.messages.fr.js +2 -2
  6. package/esm/nls.messages.it.js +2 -2
  7. package/esm/nls.messages.ja.js +2 -2
  8. package/esm/nls.messages.js +1 -1
  9. package/esm/nls.messages.json +1 -1
  10. package/esm/nls.messages.ko.js +2 -2
  11. package/esm/nls.messages.pl.js +2 -2
  12. package/esm/nls.messages.pt-br.js +2 -2
  13. package/esm/nls.messages.ru.js +2 -2
  14. package/esm/nls.messages.tr.js +2 -2
  15. package/esm/nls.messages.zh-cn.js +2 -2
  16. package/esm/nls.messages.zh-tw.js +2 -2
  17. package/esm/nls.metadata.json +12 -8
  18. package/esm/vs/editor/contrib/hover/browser/hover.css +1 -0
  19. package/esm/vs/editor/contrib/hover/browser/hoverCopyButton.js +2 -0
  20. package/esm/vs/editor/contrib/hover/browser/hoverCopyButton.js.map +1 -1
  21. package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +9 -9
  22. package/esm/vs/editor/contrib/hover/browser/markerHoverParticipant.js +5 -5
  23. package/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
  24. package/esm/vs/editor/contrib/indentation/browser/indentation.js +20 -20
  25. package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +8 -8
  26. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +20 -20
  27. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +12 -12
  28. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +1 -1
  29. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +2 -2
  30. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +5 -5
  31. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +6 -6
  32. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js +1 -1
  33. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +20 -20
  34. package/esm/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js +1 -1
  35. package/esm/vs/editor/contrib/lineSelection/browser/lineSelection.js +1 -1
  36. package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js +31 -31
  37. package/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +2 -2
  38. package/esm/vs/editor/contrib/links/browser/links.js +10 -10
  39. package/esm/vs/editor/contrib/message/browser/messageController.js +1 -1
  40. package/esm/vs/editor/contrib/multicursor/browser/multicursor.js +22 -22
  41. package/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
  42. package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +4 -4
  43. package/esm/vs/editor/contrib/peekView/browser/peekView.js +18 -18
  44. package/esm/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
  45. package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +16 -25
  46. package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js.map +1 -1
  47. package/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +32 -32
  48. package/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +2 -2
  49. package/esm/vs/editor/contrib/rename/browser/rename.js +11 -11
  50. package/esm/vs/editor/contrib/rename/browser/renameWidget.js +7 -7
  51. package/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js +4 -4
  52. package/esm/vs/editor/contrib/snippet/browser/snippetController2.js +4 -4
  53. package/esm/vs/editor/contrib/snippet/browser/snippetVariables.js +4 -4
  54. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
  55. package/esm/vs/editor/contrib/suggest/browser/suggest.js +8 -8
  56. package/esm/vs/editor/contrib/suggest/browser/suggestController.js +10 -10
  57. package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js +17 -17
  58. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +2 -2
  59. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +2 -2
  60. package/esm/vs/editor/contrib/suggest/browser/wordContextKey.js +1 -1
  61. package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
  62. package/esm/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
  63. package/esm/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
  64. package/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
  65. package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +24 -24
  66. package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +5 -5
  67. package/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
  68. package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +3 -3
  69. package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js +1 -1
  70. package/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +62 -62
  71. package/esm/vs/platform/action/common/actionCommonCategories.js +6 -6
  72. package/esm/vs/platform/actionWidget/browser/actionList.js +4 -4
  73. package/esm/vs/platform/actionWidget/browser/actionWidget.js +7 -7
  74. package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js +5 -5
  75. package/esm/vs/platform/actions/browser/toolbar.js +2 -2
  76. package/esm/vs/platform/actions/common/menuService.js +2 -2
  77. package/esm/vs/platform/configuration/common/configurationRegistry.js +10 -10
  78. package/esm/vs/platform/contextkey/browser/contextKeyService.js +1 -1
  79. package/esm/vs/platform/contextkey/common/contextkey.js +9 -9
  80. package/esm/vs/platform/contextkey/common/contextkeys.js +9 -9
  81. package/esm/vs/platform/contextkey/common/scanner.js +5 -5
  82. package/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
  83. package/esm/vs/platform/hover/browser/hoverWidget.js +1 -1
  84. package/esm/vs/platform/hover/browser/updatableHoverWidget.js +1 -1
  85. package/esm/vs/platform/keybinding/common/abstractKeybindingService.js +4 -4
  86. package/esm/vs/platform/list/browser/listService.js +27 -27
  87. package/esm/vs/platform/markers/common/markerService.js +2 -2
  88. package/esm/vs/platform/markers/common/markers.js +6 -6
  89. package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +7 -7
  90. package/esm/vs/platform/quickinput/browser/helpQuickAccess.js +1 -1
  91. package/esm/vs/platform/quickinput/browser/quickInput.js +10 -10
  92. package/esm/vs/platform/quickinput/browser/quickInputActions.js +5 -5
  93. package/esm/vs/platform/quickinput/browser/quickInputController.js +6 -6
  94. package/esm/vs/platform/quickinput/browser/quickInputList.js +1 -1
  95. package/esm/vs/platform/quickinput/browser/quickInputUtils.js +1 -1
  96. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js +1 -1
  97. package/esm/vs/platform/theme/common/colorUtils.js +2 -2
  98. package/esm/vs/platform/theme/common/colors/baseColors.js +17 -17
  99. package/esm/vs/platform/theme/common/colors/chartsColors.js +8 -8
  100. package/esm/vs/platform/theme/common/colors/editorColors.js +95 -95
  101. package/esm/vs/platform/theme/common/colors/inputColors.js +47 -47
  102. package/esm/vs/platform/theme/common/colors/listColors.js +36 -36
  103. package/esm/vs/platform/theme/common/colors/menuColors.js +7 -7
  104. package/esm/vs/platform/theme/common/colors/minimapColors.js +11 -11
  105. package/esm/vs/platform/theme/common/colors/miscColors.js +16 -16
  106. package/esm/vs/platform/theme/common/colors/quickpickColors.js +9 -9
  107. package/esm/vs/platform/theme/common/colors/searchColors.js +3 -3
  108. package/esm/vs/platform/theme/common/iconRegistry.js +6 -6
  109. package/esm/vs/platform/undoRedo/common/undoRedoService.js +20 -20
  110. package/esm/vs/platform/workspace/common/workspace.js +1 -1
  111. package/package.json +2 -2
@@ -67,7 +67,7 @@ export class TriggerParameterHintsAction extends EditorAction {
67
67
  constructor() {
68
68
  super({
69
69
  id: 'editor.action.triggerParameterHints',
70
- label: nls.localize2(1311, "Trigger Parameter Hints"),
70
+ label: nls.localize2(1312, "Trigger Parameter Hints"),
71
71
  precondition: EditorContextKeys.hasSignatureHelpProvider,
72
72
  kbOpts: {
73
73
  kbExpr: EditorContextKeys.editorTextFocus,
@@ -30,8 +30,8 @@ import { listHighlightForeground, registerColor } from '../../../../platform/the
30
30
  import { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';
31
31
  import { ThemeIcon } from '../../../../base/common/themables.js';
32
32
  const $ = dom.$;
33
- const parameterHintsNextIcon = registerIcon('parameter-hints-next', Codicon.chevronDown, nls.localize(1312, 'Icon for show next parameter hint.'));
34
- const parameterHintsPreviousIcon = registerIcon('parameter-hints-previous', Codicon.chevronUp, nls.localize(1313, 'Icon for show previous parameter hint.'));
33
+ const parameterHintsNextIcon = registerIcon('parameter-hints-next', Codicon.chevronDown, nls.localize(1313, 'Icon for show next parameter hint.'));
34
+ const parameterHintsPreviousIcon = registerIcon('parameter-hints-previous', Codicon.chevronUp, nls.localize(1314, 'Icon for show previous parameter hint.'));
35
35
  let ParameterHintsWidget = class ParameterHintsWidget extends Disposable {
36
36
  static { ParameterHintsWidget_1 = this; }
37
37
  static { this.ID = 'editor.widget.parameterHintsWidget'; }
@@ -206,7 +206,7 @@ let ParameterHintsWidget = class ParameterHintsWidget extends Disposable {
206
206
  // Select method gets called on every user type while parameter hints are visible.
207
207
  // We do not want to spam the user with same announcements, so we only announce if the current parameter changed.
208
208
  if (this.announcedLabel !== labelToAnnounce) {
209
- aria.alert(nls.localize(1314, "{0}, hint", labelToAnnounce));
209
+ aria.alert(nls.localize(1315, "{0}, hint", labelToAnnounce));
210
210
  this.announcedLabel = labelToAnnounce;
211
211
  }
212
212
  }
@@ -305,5 +305,5 @@ ParameterHintsWidget = ParameterHintsWidget_1 = __decorate([
305
305
  __param(3, IMarkdownRendererService)
306
306
  ], ParameterHintsWidget);
307
307
  export { ParameterHintsWidget };
308
- registerColor('editorHoverWidget.highlightForeground', listHighlightForeground, nls.localize(1315, 'Foreground color of the active item in the parameter hint.'));
308
+ registerColor('editorHoverWidget.highlightForeground', listHighlightForeground, nls.localize(1316, 'Foreground color of the active item in the parameter hint.'));
309
309
  //# sourceMappingURL=parameterHintsWidget.js.map
@@ -53,7 +53,7 @@ registerSingleton(IPeekViewService, class {
53
53
  }, 1 /* InstantiationType.Delayed */);
54
54
  export var PeekContext;
55
55
  (function (PeekContext) {
56
- PeekContext.inPeekEditor = new RawContextKey('inReferenceSearchEditor', true, nls.localize(1316, "Whether the current code editor is embedded inside peek"));
56
+ PeekContext.inPeekEditor = new RawContextKey('inReferenceSearchEditor', true, nls.localize(1317, "Whether the current code editor is embedded inside peek"));
57
57
  PeekContext.notInPeekEditor = PeekContext.inPeekEditor.toNegated();
58
58
  })(PeekContext || (PeekContext = {}));
59
59
  let PeekContextController = class PeekContextController {
@@ -149,7 +149,7 @@ let PeekViewWidget = class PeekViewWidget extends ZoneWidget {
149
149
  this._actionbarWidget = new ActionBar(actionsContainer, actionBarOptions);
150
150
  this._disposables.add(this._actionbarWidget);
151
151
  if (!noCloseAction) {
152
- this._actionbarWidget.push(this._disposables.add(new Action('peekview.close', nls.localize(1317, "Close"), ThemeIcon.asClassName(Codicon.close), true, () => {
152
+ this._actionbarWidget.push(this._disposables.add(new Action('peekview.close', nls.localize(1318, "Close"), ThemeIcon.asClassName(Codicon.close), true, () => {
153
153
  this.dispose();
154
154
  return Promise.resolve();
155
155
  })), { label: false, icon: true });
@@ -216,20 +216,20 @@ PeekViewWidget = __decorate([
216
216
  __param(2, IInstantiationService)
217
217
  ], PeekViewWidget);
218
218
  export { PeekViewWidget };
219
- export const peekViewTitleBackground = registerColor('peekViewTitle.background', { dark: '#252526', light: '#F3F3F3', hcDark: Color.black, hcLight: Color.white }, nls.localize(1318, 'Background color of the peek view title area.'));
220
- export const peekViewTitleForeground = registerColor('peekViewTitleLabel.foreground', { dark: Color.white, light: Color.black, hcDark: Color.white, hcLight: editorForeground }, nls.localize(1319, 'Color of the peek view title.'));
221
- export const peekViewTitleInfoForeground = registerColor('peekViewTitleDescription.foreground', { dark: '#ccccccb3', light: '#616161', hcDark: '#FFFFFF99', hcLight: '#292929' }, nls.localize(1320, 'Color of the peek view title info.'));
222
- export const peekViewBorder = registerColor('peekView.border', { dark: editorInfoForeground, light: editorInfoForeground, hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize(1321, 'Color of the peek view borders and arrow.'));
223
- export const peekViewResultsBackground = registerColor('peekViewResult.background', { dark: '#252526', light: '#F3F3F3', hcDark: Color.black, hcLight: Color.white }, nls.localize(1322, 'Background color of the peek view result list.'));
224
- export const peekViewResultsMatchForeground = registerColor('peekViewResult.lineForeground', { dark: '#bbbbbb', light: '#646465', hcDark: Color.white, hcLight: editorForeground }, nls.localize(1323, 'Foreground color for line nodes in the peek view result list.'));
225
- export const peekViewResultsFileForeground = registerColor('peekViewResult.fileForeground', { dark: Color.white, light: '#1E1E1E', hcDark: Color.white, hcLight: editorForeground }, nls.localize(1324, 'Foreground color for file nodes in the peek view result list.'));
226
- export const peekViewResultsSelectionBackground = registerColor('peekViewResult.selectionBackground', { dark: '#3399ff33', light: '#3399ff33', hcDark: null, hcLight: null }, nls.localize(1325, 'Background color of the selected entry in the peek view result list.'));
227
- export const peekViewResultsSelectionForeground = registerColor('peekViewResult.selectionForeground', { dark: Color.white, light: '#6C6C6C', hcDark: Color.white, hcLight: editorForeground }, nls.localize(1326, 'Foreground color of the selected entry in the peek view result list.'));
228
- export const peekViewEditorBackground = registerColor('peekViewEditor.background', { dark: '#001F33', light: '#F2F8FC', hcDark: Color.black, hcLight: Color.white }, nls.localize(1327, 'Background color of the peek view editor.'));
229
- export const peekViewEditorGutterBackground = registerColor('peekViewEditorGutter.background', peekViewEditorBackground, nls.localize(1328, 'Background color of the gutter in the peek view editor.'));
230
- export const peekViewEditorStickyScrollBackground = registerColor('peekViewEditorStickyScroll.background', peekViewEditorBackground, nls.localize(1329, 'Background color of sticky scroll in the peek view editor.'));
231
- export const peekViewEditorStickyScrollGutterBackground = registerColor('peekViewEditorStickyScrollGutter.background', peekViewEditorBackground, nls.localize(1330, 'Background color of the gutter part of sticky scroll in the peek view editor.'));
232
- export const peekViewResultsMatchHighlight = registerColor('peekViewResult.matchHighlightBackground', { dark: '#ea5c004d', light: '#ea5c004d', hcDark: null, hcLight: null }, nls.localize(1331, 'Match highlight color in the peek view result list.'));
233
- export const peekViewEditorMatchHighlight = registerColor('peekViewEditor.matchHighlightBackground', { dark: '#ff8f0099', light: '#f5d802de', hcDark: null, hcLight: null }, nls.localize(1332, 'Match highlight color in the peek view editor.'));
234
- export const peekViewEditorMatchHighlightBorder = registerColor('peekViewEditor.matchHighlightBorder', { dark: null, light: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize(1333, 'Match highlight border in the peek view editor.'));
219
+ export const peekViewTitleBackground = registerColor('peekViewTitle.background', { dark: '#252526', light: '#F3F3F3', hcDark: Color.black, hcLight: Color.white }, nls.localize(1319, 'Background color of the peek view title area.'));
220
+ export const peekViewTitleForeground = registerColor('peekViewTitleLabel.foreground', { dark: Color.white, light: Color.black, hcDark: Color.white, hcLight: editorForeground }, nls.localize(1320, 'Color of the peek view title.'));
221
+ export const peekViewTitleInfoForeground = registerColor('peekViewTitleDescription.foreground', { dark: '#ccccccb3', light: '#616161', hcDark: '#FFFFFF99', hcLight: '#292929' }, nls.localize(1321, 'Color of the peek view title info.'));
222
+ export const peekViewBorder = registerColor('peekView.border', { dark: editorInfoForeground, light: editorInfoForeground, hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize(1322, 'Color of the peek view borders and arrow.'));
223
+ export const peekViewResultsBackground = registerColor('peekViewResult.background', { dark: '#252526', light: '#F3F3F3', hcDark: Color.black, hcLight: Color.white }, nls.localize(1323, 'Background color of the peek view result list.'));
224
+ export const peekViewResultsMatchForeground = registerColor('peekViewResult.lineForeground', { dark: '#bbbbbb', light: '#646465', hcDark: Color.white, hcLight: editorForeground }, nls.localize(1324, 'Foreground color for line nodes in the peek view result list.'));
225
+ export const peekViewResultsFileForeground = registerColor('peekViewResult.fileForeground', { dark: Color.white, light: '#1E1E1E', hcDark: Color.white, hcLight: editorForeground }, nls.localize(1325, 'Foreground color for file nodes in the peek view result list.'));
226
+ export const peekViewResultsSelectionBackground = registerColor('peekViewResult.selectionBackground', { dark: '#3399ff33', light: '#3399ff33', hcDark: null, hcLight: null }, nls.localize(1326, 'Background color of the selected entry in the peek view result list.'));
227
+ export const peekViewResultsSelectionForeground = registerColor('peekViewResult.selectionForeground', { dark: Color.white, light: '#6C6C6C', hcDark: Color.white, hcLight: editorForeground }, nls.localize(1327, 'Foreground color of the selected entry in the peek view result list.'));
228
+ export const peekViewEditorBackground = registerColor('peekViewEditor.background', { dark: '#001F33', light: '#F2F8FC', hcDark: Color.black, hcLight: Color.white }, nls.localize(1328, 'Background color of the peek view editor.'));
229
+ export const peekViewEditorGutterBackground = registerColor('peekViewEditorGutter.background', peekViewEditorBackground, nls.localize(1329, 'Background color of the gutter in the peek view editor.'));
230
+ export const peekViewEditorStickyScrollBackground = registerColor('peekViewEditorStickyScroll.background', peekViewEditorBackground, nls.localize(1330, 'Background color of sticky scroll in the peek view editor.'));
231
+ export const peekViewEditorStickyScrollGutterBackground = registerColor('peekViewEditorStickyScrollGutter.background', peekViewEditorBackground, nls.localize(1331, 'Background color of the gutter part of sticky scroll in the peek view editor.'));
232
+ export const peekViewResultsMatchHighlight = registerColor('peekViewResult.matchHighlightBackground', { dark: '#ea5c004d', light: '#ea5c004d', hcDark: null, hcLight: null }, nls.localize(1332, 'Match highlight color in the peek view result list.'));
233
+ export const peekViewEditorMatchHighlight = registerColor('peekViewEditor.matchHighlightBackground', { dark: '#ff8f0099', light: '#f5d802de', hcDark: null, hcLight: null }, nls.localize(1333, 'Match highlight color in the peek view editor.'));
234
+ export const peekViewEditorMatchHighlightBorder = registerColor('peekViewEditor.matchHighlightBorder', { dark: null, light: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize(1334, 'Match highlight border in the peek view editor.'));
235
235
  //# sourceMappingURL=peekView.js.map
@@ -10,5 +10,5 @@ import { registerColor } from '../../../../platform/theme/common/colorUtils.js';
10
10
  import { PlaceholderTextContribution } from './placeholderTextContribution.js';
11
11
  import { wrapInReloadableClass1 } from '../../../../platform/observable/common/wrapInReloadableClass.js';
12
12
  registerEditorContribution(PlaceholderTextContribution.ID, wrapInReloadableClass1(() => PlaceholderTextContribution), 0 /* EditorContributionInstantiation.Eager */);
13
- registerColor('editor.placeholder.foreground', ghostTextForeground, localize(1334, 'Foreground color of the placeholder text in the editor.'));
13
+ registerColor('editor.placeholder.foreground', ghostTextForeground, localize(1335, 'Foreground color of the placeholder text in the editor.'));
14
14
  //# sourceMappingURL=placeholderText.contribution.js.map
@@ -12,23 +12,12 @@ import { getCodeEditor } from '../../../browser/editorBrowser.js';
12
12
  import { AbstractEditorNavigationQuickAccessProvider } from './editorNavigationQuickAccess.js';
13
13
  export class AbstractGotoLineQuickAccessProvider extends AbstractEditorNavigationQuickAccessProvider {
14
14
  static { this.PREFIX = ':'; }
15
- constructor(useZeroBasedOffsetSetting) {
15
+ constructor(useZeroBasedOffset = { value: false }) {
16
16
  super({ canAcceptInBackground: true });
17
- this.useZeroBasedOffsetSetting = useZeroBasedOffsetSetting;
18
- this._useZeroBasedOffset = useZeroBasedOffsetSetting?.value === true;
19
- }
20
- get useZeroBasedOffset() {
21
- return this._useZeroBasedOffset;
22
- }
23
- set useZeroBasedOffset(value) {
24
- this._useZeroBasedOffset = value;
25
- if (this.useZeroBasedOffsetSetting) {
26
- // Asynchronously persist the setting change
27
- this.useZeroBasedOffsetSetting.value = value;
28
- }
17
+ this.useZeroBasedOffset = useZeroBasedOffset;
29
18
  }
30
19
  provideWithoutTextEditor(picker) {
31
- const label = localize(1335, "Open a text editor first to go to a line.");
20
+ const label = localize(1336, "Open a text editor first to go to a line.");
32
21
  picker.items = [{ label }];
33
22
  picker.ariaLabel = label;
34
23
  return Disposable.None;
@@ -76,15 +65,15 @@ export class AbstractGotoLineQuickAccessProvider extends AbstractEditorNavigatio
76
65
  };
77
66
  // Add a toggle to switch between 1- and 0-based offsets.
78
67
  const toggle = new Toggle({
79
- title: localize(1336, "Use Zero-Based Offset"),
68
+ title: localize(1337, "Use Zero-Based Offset"),
80
69
  icon: Codicon.indexZero,
81
- isChecked: this.useZeroBasedOffset,
70
+ isChecked: this.useZeroBasedOffset.value,
82
71
  inputActiveOptionBorder: asCssVariable(inputActiveOptionBorder),
83
72
  inputActiveOptionForeground: asCssVariable(inputActiveOptionForeground),
84
73
  inputActiveOptionBackground: asCssVariable(inputActiveOptionBackground)
85
74
  });
86
75
  disposables.add(toggle.onChange(() => {
87
- this.useZeroBasedOffset = !this.useZeroBasedOffset;
76
+ this.useZeroBasedOffset.value = !this.useZeroBasedOffset.value;
88
77
  updatePickerAndEditor();
89
78
  }));
90
79
  picker.toggles = [toggle];
@@ -114,7 +103,7 @@ export class AbstractGotoLineQuickAccessProvider extends AbstractEditorNavigatio
114
103
  const model = this.getModel(editor);
115
104
  if (!model) {
116
105
  return {
117
- label: localize(1337, "Open a text editor first to go to a line.")
106
+ label: localize(1338, "Open a text editor first to go to a line.")
118
107
  };
119
108
  }
120
109
  // Support ::<offset> notation to navigate to a specific offset in the model.
@@ -125,12 +114,14 @@ export class AbstractGotoLineQuickAccessProvider extends AbstractEditorNavigatio
125
114
  // No valid offset specified.
126
115
  return {
127
116
  inOffsetMode: true,
128
- label: localize(1338, "Type a character number in the file from 1 to {0} to go to.", maxOffset)
117
+ label: this.useZeroBasedOffset.value ?
118
+ localize(1339, "Type a character position to go to (from 0 to {0}).", maxOffset - 1) :
119
+ localize(1340, "Type a character position to go to (from 1 to {0}).", maxOffset)
129
120
  };
130
121
  }
131
122
  else {
132
123
  const reverse = offset < 0;
133
- if (!this.useZeroBasedOffset) {
124
+ if (!this.useZeroBasedOffset.value) {
134
125
  // Convert 1-based offset to model's 0-based.
135
126
  offset -= Math.sign(offset);
136
127
  }
@@ -142,7 +133,7 @@ export class AbstractGotoLineQuickAccessProvider extends AbstractEditorNavigatio
142
133
  return {
143
134
  ...pos,
144
135
  inOffsetMode: true,
145
- label: localize(1339, "Press Enter to go to line {0} and column {1}.", pos.lineNumber, pos.column)
136
+ label: localize(1341, "Press 'Enter' to go to line {0} at column {1}.", pos.lineNumber, pos.column)
146
137
  };
147
138
  }
148
139
  }
@@ -153,7 +144,7 @@ export class AbstractGotoLineQuickAccessProvider extends AbstractEditorNavigatio
153
144
  let lineNumber = parseInt(parts[0]?.trim(), 10);
154
145
  if (parts.length < 1 || isNaN(lineNumber)) {
155
146
  return {
156
- label: localize(1340, "Type a line number from 1 to {0} to go to.", maxLine)
147
+ label: localize(1342, "Type a line number to go to (from 1 to {0}).", maxLine)
157
148
  };
158
149
  }
159
150
  // Handle negative line numbers and clip to valid range.
@@ -166,8 +157,8 @@ export class AbstractGotoLineQuickAccessProvider extends AbstractEditorNavigatio
166
157
  lineNumber,
167
158
  column: 1,
168
159
  label: parts.length < 2 ?
169
- localize(1341, "Press Enter to go to line {0}. Type : to enter column number.", lineNumber) :
170
- localize(1342, "Press Enter to go to line {0} or enter column number from 1 to {1}.", lineNumber, maxColumn)
160
+ localize(1343, "Press 'Enter' to go to line {0} or enter : to add a column number.", lineNumber) :
161
+ localize(1344, "Press 'Enter' to go to line {0} or enter a column number (from 1 to {1}).", lineNumber, maxColumn)
171
162
  };
172
163
  }
173
164
  // Handle negative column numbers and clip to valid range.
@@ -176,7 +167,7 @@ export class AbstractGotoLineQuickAccessProvider extends AbstractEditorNavigatio
176
167
  return {
177
168
  lineNumber,
178
169
  column,
179
- label: localize(1343, "Press Enter to go to line {0} and column {1}.", lineNumber, column)
170
+ label: localize(1345, "Press 'Enter' to go to line {0} at column {1}.", lineNumber, column)
180
171
  };
181
172
  }
182
173
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.ts"],"names":[],"mappings":"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","file":"gotoLineQuickAccess.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 { Toggle } from '../../../../base/browser/ui/toggle/toggle.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { Disposable, DisposableStore, IDisposable, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { localize } from '../../../../nls.js';\nimport { IQuickPick, IQuickPickItem } from '../../../../platform/quickinput/common/quickInput.js';\nimport { inputActiveOptionBackground, inputActiveOptionBorder, inputActiveOptionForeground } from '../../../../platform/theme/common/colors/inputColors.js';\nimport { asCssVariable } from '../../../../platform/theme/common/colorUtils.js';\nimport { getCodeEditor } from '../../../browser/editorBrowser.js';\nimport { EditorOption, RenderLineNumbersType } from '../../../common/config/editorOptions.js';\nimport { IPosition } from '../../../common/core/position.js';\nimport { IRange } from '../../../common/core/range.js';\nimport { IEditor, ScrollType } from '../../../common/editorCommon.js';\nimport { AbstractEditorNavigationQuickAccessProvider, IQuickAccessTextEditorContext } from './editorNavigationQuickAccess.js';\n\ninterface IGotoLineQuickPickItem extends IQuickPickItem, Partial<IPosition> { }\n\nexport abstract class AbstractGotoLineQuickAccessProvider extends AbstractEditorNavigationQuickAccessProvider {\n\n\tstatic PREFIX = ':';\n\n\tprivate _useZeroBasedOffset: boolean;\n\n\tconstructor(private useZeroBasedOffsetSetting?: { value: boolean }) {\n\t\tsuper({ canAcceptInBackground: true });\n\t\tthis._useZeroBasedOffset = useZeroBasedOffsetSetting?.value === true;\n\t}\n\n\tprivate get useZeroBasedOffset() {\n\t\treturn this._useZeroBasedOffset;\n\t}\n\n\tprivate set useZeroBasedOffset(value: boolean) {\n\t\tthis._useZeroBasedOffset = value;\n\t\tif (this.useZeroBasedOffsetSetting) {\n\t\t\t// Asynchronously persist the setting change\n\t\t\tthis.useZeroBasedOffsetSetting.value = value;\n\t\t}\n\t}\n\n\tprotected provideWithoutTextEditor(picker: IQuickPick<IGotoLineQuickPickItem, { useSeparators: true }>): IDisposable {\n\t\tconst label = localize('cannotRunGotoLine', \"Open a text editor first to go to a line.\");\n\n\t\tpicker.items = [{ label }];\n\t\tpicker.ariaLabel = label;\n\n\t\treturn Disposable.None;\n\t}\n\n\tprotected provideWithTextEditor(context: IQuickAccessTextEditorContext, picker: IQuickPick<IGotoLineQuickPickItem, { useSeparators: true }>, token: CancellationToken): IDisposable {\n\t\tconst editor = context.editor;\n\t\tconst disposables = new DisposableStore();\n\n\t\t// Goto line once picked\n\t\tdisposables.add(picker.onDidAccept(event => {\n\t\t\tconst [item] = picker.selectedItems;\n\t\t\tif (item) {\n\t\t\t\tif (!item.lineNumber) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.gotoLocation(context, { range: this.toRange(item.lineNumber, item.column), keyMods: picker.keyMods, preserveFocus: event.inBackground });\n\n\t\t\t\tif (!event.inBackground) {\n\t\t\t\t\tpicker.hide();\n\t\t\t\t}\n\t\t\t}\n\t\t}));\n\n\t\t// React to picker changes\n\t\tconst updatePickerAndEditor = () => {\n\t\t\tconst inputText = picker.value.trim().substring(AbstractGotoLineQuickAccessProvider.PREFIX.length);\n\t\t\tconst { inOffsetMode, lineNumber, column, label } = this.parsePosition(editor, inputText);\n\n\t\t\t// Show toggle only when input text starts with '::'.\n\t\t\ttoggle.visible = !!inOffsetMode;\n\n\t\t\t// Picker\n\t\t\tpicker.items = [{\n\t\t\t\tlineNumber,\n\t\t\t\tcolumn,\n\t\t\t\tlabel,\n\t\t\t}];\n\n\t\t\t// ARIA Label\n\t\t\tpicker.ariaLabel = label;\n\n\t\t\t// Clear decorations for invalid range\n\t\t\tif (!lineNumber) {\n\t\t\t\tthis.clearDecorations(editor);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Reveal\n\t\t\tconst range = this.toRange(lineNumber, column);\n\t\t\teditor.revealRangeInCenter(range, ScrollType.Smooth);\n\n\t\t\t// Decorate\n\t\t\tthis.addDecorations(editor, range);\n\t\t};\n\n\t\t// Add a toggle to switch between 1- and 0-based offsets.\n\t\tconst toggle = new Toggle({\n\t\t\ttitle: localize('gotoLineToggle', \"Use Zero-Based Offset\"),\n\t\t\ticon: Codicon.indexZero,\n\t\t\tisChecked: this.useZeroBasedOffset,\n\t\t\tinputActiveOptionBorder: asCssVariable(inputActiveOptionBorder),\n\t\t\tinputActiveOptionForeground: asCssVariable(inputActiveOptionForeground),\n\t\t\tinputActiveOptionBackground: asCssVariable(inputActiveOptionBackground)\n\t\t});\n\n\t\tdisposables.add(\n\t\t\ttoggle.onChange(() => {\n\t\t\t\tthis.useZeroBasedOffset = !this.useZeroBasedOffset;\n\t\t\t\tupdatePickerAndEditor();\n\t\t\t}));\n\n\t\tpicker.toggles = [toggle];\n\n\t\tupdatePickerAndEditor();\n\t\tdisposables.add(picker.onDidChangeValue(() => updatePickerAndEditor()));\n\n\t\t// Adjust line number visibility as needed\n\t\tconst codeEditor = getCodeEditor(editor);\n\t\tif (codeEditor) {\n\t\t\tconst options = codeEditor.getOptions();\n\t\t\tconst lineNumbers = options.get(EditorOption.lineNumbers);\n\t\t\tif (lineNumbers.renderType === RenderLineNumbersType.Relative) {\n\t\t\t\tcodeEditor.updateOptions({ lineNumbers: 'on' });\n\n\t\t\t\tdisposables.add(toDisposable(() => codeEditor.updateOptions({ lineNumbers: 'relative' })));\n\t\t\t}\n\t\t}\n\n\t\treturn disposables;\n\t}\n\n\tprivate toRange(lineNumber = 1, column = 1): IRange {\n\t\treturn {\n\t\t\tstartLineNumber: lineNumber,\n\t\t\tstartColumn: column,\n\t\t\tendLineNumber: lineNumber,\n\t\t\tendColumn: column\n\t\t};\n\t}\n\n\tprotected parsePosition(editor: IEditor, value: string): Partial<IPosition> & { inOffsetMode?: boolean; label: string } {\n\t\tconst model = this.getModel(editor);\n\t\tif (!model) {\n\t\t\treturn {\n\t\t\t\tlabel: localize('gotoLine.noEditor', \"Open a text editor first to go to a line.\")\n\t\t\t};\n\t\t}\n\n\t\t// Support ::<offset> notation to navigate to a specific offset in the model.\n\t\tif (value.startsWith(':')) {\n\t\t\tlet offset = parseInt(value.substring(1), 10);\n\t\t\tconst maxOffset = model.getValueLength();\n\t\t\tif (isNaN(offset)) {\n\t\t\t\t// No valid offset specified.\n\t\t\t\treturn {\n\t\t\t\t\tinOffsetMode: true,\n\t\t\t\t\tlabel: localize('gotoLine.offsetPrompt', \"Type a character number in the file from 1 to {0} to go to.\", maxOffset)\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tconst reverse = offset < 0;\n\t\t\t\tif (!this.useZeroBasedOffset) {\n\t\t\t\t\t// Convert 1-based offset to model's 0-based.\n\t\t\t\t\toffset -= Math.sign(offset);\n\t\t\t\t}\n\t\t\t\tif (reverse) {\n\t\t\t\t\t// Offset from the end of the buffer\n\t\t\t\t\toffset += maxOffset;\n\t\t\t\t}\n\t\t\t\tconst pos = model.getPositionAt(offset);\n\t\t\t\treturn {\n\t\t\t\t\t...pos,\n\t\t\t\t\tinOffsetMode: true,\n\t\t\t\t\tlabel: localize('gotoLine.goToPosition', \"Press Enter to go to line {0} and column {1}.\", pos.lineNumber, pos.column)\n\t\t\t\t};\n\t\t\t}\n\t\t} else {\n\t\t\t// Support line-col formats of `line,col`, `line:col`, `line#col`\n\t\t\tconst parts = value.split(/,|:|#/);\n\n\t\t\tconst maxLine = model.getLineCount();\n\t\t\tlet lineNumber = parseInt(parts[0]?.trim(), 10);\n\t\t\tif (parts.length < 1 || isNaN(lineNumber)) {\n\t\t\t\treturn {\n\t\t\t\t\tlabel: localize('gotoLine.linePrompt', \"Type a line number from 1 to {0} to go to.\", maxLine)\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Handle negative line numbers and clip to valid range.\n\t\t\tlineNumber = lineNumber >= 0 ? lineNumber : (maxLine + 1) + lineNumber;\n\t\t\tlineNumber = Math.min(Math.max(1, lineNumber), maxLine);\n\n\t\t\tconst maxColumn = model.getLineMaxColumn(lineNumber);\n\t\t\tlet column = parseInt(parts[1]?.trim(), 10);\n\t\t\tif (parts.length < 2 || isNaN(column)) {\n\t\t\t\treturn {\n\t\t\t\t\tlineNumber,\n\t\t\t\t\tcolumn: 1,\n\t\t\t\t\tlabel: parts.length < 2 ?\n\t\t\t\t\t\tlocalize('gotoLine.lineColumnPrompt', \"Press Enter to go to line {0}. Type : to enter column number.\", lineNumber) :\n\t\t\t\t\t\tlocalize('gotoLine.columnPrompt', \"Press Enter to go to line {0} or enter column number from 1 to {1}.\", lineNumber, maxColumn)\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Handle negative column numbers and clip to valid range.\n\t\t\tcolumn = column >= 0 ? column : maxColumn + column;\n\t\t\tcolumn = Math.min(Math.max(1, column), maxColumn);\n\n\t\t\treturn {\n\t\t\t\tlineNumber,\n\t\t\t\tcolumn,\n\t\t\t\tlabel: localize('gotoLine.goToPosition', \"Press Enter to go to line {0} and column {1}.\", lineNumber, column)\n\t\t\t};\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"sources":["vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,MAAM,EAAE,MAAM,8CAA8C,CAAC;AAEtE,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,eAAe,EAAe,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAC9G,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,yDAAyD,CAAC;AAC5J,OAAO,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAKlE,OAAO,EAAE,2CAA2C,EAAiC,MAAM,kCAAkC,CAAC;AAI9H,MAAM,OAAgB,mCAAoC,SAAQ,2CAA2C;aAErG,WAAM,GAAG,GAAG,CAAC;IAEpB,YAAoB,qBAAqB,EAAE,KAAK,EAAE,KAAK,EAAE;QACxD,KAAK,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC;QADpB,uBAAkB,GAAlB,kBAAkB,CAAmB;IAEzD,CAAC;IAES,wBAAwB,CAAC,MAAmE;QACrG,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAmB,EAAE,2CAA2C,CAAC,CAAC;QAEzF,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3B,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;QAEzB,OAAO,UAAU,CAAC,IAAI,CAAC;IACxB,CAAC;IAES,qBAAqB,CAAC,OAAsC,EAAE,MAAmE,EAAE,KAAwB;QACpK,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;QAE1C,wBAAwB;QACxB,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;YAC1C,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC;YACpC,IAAI,IAAI,EAAE,CAAC;gBACV,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oBACtB,OAAO;gBACR,CAAC;gBAED,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;gBAE9I,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;oBACzB,MAAM,CAAC,IAAI,EAAE,CAAC;gBACf,CAAC;YACF,CAAC;QACF,CAAC,CAAC,CAAC,CAAC;QAEJ,0BAA0B;QAC1B,MAAM,qBAAqB,GAAG,GAAG,EAAE;YAClC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,mCAAmC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnG,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAE1F,qDAAqD;YACrD,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,YAAY,CAAC;YAEhC,SAAS;YACT,MAAM,CAAC,KAAK,GAAG,CAAC;oBACf,UAAU;oBACV,MAAM;oBACN,KAAK;iBACL,CAAC,CAAC;YAEH,aAAa;YACb,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;YAEzB,sCAAsC;YACtC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAC9B,OAAO;YACR,CAAC;YAED,SAAS;YACT,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC/C,MAAM,CAAC,mBAAmB,CAAC,KAAK,4BAAoB,CAAC;YAErD,WAAW;YACX,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC,CAAC;QAEF,yDAAyD;QACzD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;YACzB,KAAK,EAAE,QAAQ,CAAC,IAAgB,EAAE,uBAAuB,CAAC;YAC1D,IAAI,EAAE,OAAO,CAAC,SAAS;YACvB,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK;YACxC,uBAAuB,EAAE,aAAa,CAAC,uBAAuB,CAAC;YAC/D,2BAA2B,EAAE,aAAa,CAAC,2BAA2B,CAAC;YACvE,2BAA2B,EAAE,aAAa,CAAC,2BAA2B,CAAC;SACvE,CAAC,CAAC;QAEH,WAAW,CAAC,GAAG,CACd,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE;YACpB,IAAI,CAAC,kBAAkB,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;YAC/D,qBAAqB,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC,CAAC;QAEL,MAAM,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;QAE1B,qBAAqB,EAAE,CAAC;QACxB,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;QAExE,0CAA0C;QAC1C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,UAAU,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC;YACxC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,mCAA0B,CAAC;YAC1D,IAAI,WAAW,CAAC,UAAU,2CAAmC,EAAE,CAAC;gBAC/D,UAAU,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;gBAEhD,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5F,CAAC;QACF,CAAC;QAED,OAAO,WAAW,CAAC;IACpB,CAAC;IAEO,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC;QACzC,OAAO;YACN,eAAe,EAAE,UAAU;YAC3B,WAAW,EAAE,MAAM;YACnB,aAAa,EAAE,UAAU;YACzB,SAAS,EAAE,MAAM;SACjB,CAAC;IACH,CAAC;IAES,aAAa,CAAC,MAAe,EAAE,KAAa;QACrD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,OAAO;gBACN,KAAK,EAAE,QAAQ,CAAC,IAAmB,EAAE,2CAA2C,CAAC;aACjF,CAAC;QACH,CAAC;QAED,6EAA6E;QAC7E,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;YACzC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnB,6BAA6B;gBAC7B,OAAO;oBACN,YAAY,EAAE,IAAI;oBAClB,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;wBACrC,QAAQ,CAAC,IAA2B,EAAE,qDAAqD,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;wBAC7G,QAAQ,CAAC,IAAuB,EAAE,qDAAqD,EAAE,SAAS,CAAC;iBACpG,CAAC;YACH,CAAC;iBAAM,CAAC;gBACP,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;oBACpC,6CAA6C;oBAC7C,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC7B,CAAC;gBACD,IAAI,OAAO,EAAE,CAAC;oBACb,oCAAoC;oBACpC,MAAM,IAAI,SAAS,CAAC;gBACrB,CAAC;gBACD,MAAM,GAAG,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBACxC,OAAO;oBACN,GAAG,GAAG;oBACN,YAAY,EAAE,IAAI;oBAClB,KAAK,EAAE,QAAQ,CAAC,IAAuB,EAAE,gDAAgD,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC;iBACtH,CAAC;YACH,CAAC;QACF,CAAC;aAAM,CAAC;YACP,iEAAiE;YACjE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEnC,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;YACrC,IAAI,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAChD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3C,OAAO;oBACN,KAAK,EAAE,QAAQ,CAAC,IAAqB,EAAE,8CAA8C,EAAE,OAAO,CAAC;iBAC/F,CAAC;YACH,CAAC;YAED,wDAAwD;YACxD,UAAU,GAAG,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC;YACvE,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;YAExD,MAAM,SAAS,GAAG,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YACrD,IAAI,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvC,OAAO;oBACN,UAAU;oBACV,MAAM,EAAE,CAAC;oBACT,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBACxB,QAAQ,CAAC,IAA2B,EAAE,oEAAoE,EAAE,UAAU,CAAC,CAAC,CAAC;wBACzH,QAAQ,CAAC,IAAuB,EAAE,2EAA2E,EAAE,UAAU,EAAE,SAAS,CAAC;iBACtI,CAAC;YACH,CAAC;YAED,0DAA0D;YAC1D,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC;YACnD,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;YAElD,OAAO;gBACN,UAAU;gBACV,MAAM;gBACN,KAAK,EAAE,QAAQ,CAAC,IAAuB,EAAE,gDAAgD,EAAE,UAAU,EAAE,MAAM,CAAC;aAC9G,CAAC;QACH,CAAC;IACF,CAAC","file":"gotoLineQuickAccess.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 { Toggle } from '../../../../base/browser/ui/toggle/toggle.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { Disposable, DisposableStore, IDisposable, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { localize } from '../../../../nls.js';\nimport { IQuickPick, IQuickPickItem } from '../../../../platform/quickinput/common/quickInput.js';\nimport { inputActiveOptionBackground, inputActiveOptionBorder, inputActiveOptionForeground } from '../../../../platform/theme/common/colors/inputColors.js';\nimport { asCssVariable } from '../../../../platform/theme/common/colorUtils.js';\nimport { getCodeEditor } from '../../../browser/editorBrowser.js';\nimport { EditorOption, RenderLineNumbersType } from '../../../common/config/editorOptions.js';\nimport { IPosition } from '../../../common/core/position.js';\nimport { IRange } from '../../../common/core/range.js';\nimport { IEditor, ScrollType } from '../../../common/editorCommon.js';\nimport { AbstractEditorNavigationQuickAccessProvider, IQuickAccessTextEditorContext } from './editorNavigationQuickAccess.js';\n\ninterface IGotoLineQuickPickItem extends IQuickPickItem, Partial<IPosition> { }\n\nexport abstract class AbstractGotoLineQuickAccessProvider extends AbstractEditorNavigationQuickAccessProvider {\n\n\tstatic PREFIX = ':';\n\n\tconstructor(private useZeroBasedOffset = { value: false }) {\n\t\tsuper({ canAcceptInBackground: true });\n\t}\n\n\tprotected provideWithoutTextEditor(picker: IQuickPick<IGotoLineQuickPickItem, { useSeparators: true }>): IDisposable {\n\t\tconst label = localize('cannotRunGotoLine', \"Open a text editor first to go to a line.\");\n\n\t\tpicker.items = [{ label }];\n\t\tpicker.ariaLabel = label;\n\n\t\treturn Disposable.None;\n\t}\n\n\tprotected provideWithTextEditor(context: IQuickAccessTextEditorContext, picker: IQuickPick<IGotoLineQuickPickItem, { useSeparators: true }>, token: CancellationToken): IDisposable {\n\t\tconst editor = context.editor;\n\t\tconst disposables = new DisposableStore();\n\n\t\t// Goto line once picked\n\t\tdisposables.add(picker.onDidAccept(event => {\n\t\t\tconst [item] = picker.selectedItems;\n\t\t\tif (item) {\n\t\t\t\tif (!item.lineNumber) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.gotoLocation(context, { range: this.toRange(item.lineNumber, item.column), keyMods: picker.keyMods, preserveFocus: event.inBackground });\n\n\t\t\t\tif (!event.inBackground) {\n\t\t\t\t\tpicker.hide();\n\t\t\t\t}\n\t\t\t}\n\t\t}));\n\n\t\t// React to picker changes\n\t\tconst updatePickerAndEditor = () => {\n\t\t\tconst inputText = picker.value.trim().substring(AbstractGotoLineQuickAccessProvider.PREFIX.length);\n\t\t\tconst { inOffsetMode, lineNumber, column, label } = this.parsePosition(editor, inputText);\n\n\t\t\t// Show toggle only when input text starts with '::'.\n\t\t\ttoggle.visible = !!inOffsetMode;\n\n\t\t\t// Picker\n\t\t\tpicker.items = [{\n\t\t\t\tlineNumber,\n\t\t\t\tcolumn,\n\t\t\t\tlabel,\n\t\t\t}];\n\n\t\t\t// ARIA Label\n\t\t\tpicker.ariaLabel = label;\n\n\t\t\t// Clear decorations for invalid range\n\t\t\tif (!lineNumber) {\n\t\t\t\tthis.clearDecorations(editor);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Reveal\n\t\t\tconst range = this.toRange(lineNumber, column);\n\t\t\teditor.revealRangeInCenter(range, ScrollType.Smooth);\n\n\t\t\t// Decorate\n\t\t\tthis.addDecorations(editor, range);\n\t\t};\n\n\t\t// Add a toggle to switch between 1- and 0-based offsets.\n\t\tconst toggle = new Toggle({\n\t\t\ttitle: localize('gotoLineToggle', \"Use Zero-Based Offset\"),\n\t\t\ticon: Codicon.indexZero,\n\t\t\tisChecked: this.useZeroBasedOffset.value,\n\t\t\tinputActiveOptionBorder: asCssVariable(inputActiveOptionBorder),\n\t\t\tinputActiveOptionForeground: asCssVariable(inputActiveOptionForeground),\n\t\t\tinputActiveOptionBackground: asCssVariable(inputActiveOptionBackground)\n\t\t});\n\n\t\tdisposables.add(\n\t\t\ttoggle.onChange(() => {\n\t\t\t\tthis.useZeroBasedOffset.value = !this.useZeroBasedOffset.value;\n\t\t\t\tupdatePickerAndEditor();\n\t\t\t}));\n\n\t\tpicker.toggles = [toggle];\n\n\t\tupdatePickerAndEditor();\n\t\tdisposables.add(picker.onDidChangeValue(() => updatePickerAndEditor()));\n\n\t\t// Adjust line number visibility as needed\n\t\tconst codeEditor = getCodeEditor(editor);\n\t\tif (codeEditor) {\n\t\t\tconst options = codeEditor.getOptions();\n\t\t\tconst lineNumbers = options.get(EditorOption.lineNumbers);\n\t\t\tif (lineNumbers.renderType === RenderLineNumbersType.Relative) {\n\t\t\t\tcodeEditor.updateOptions({ lineNumbers: 'on' });\n\n\t\t\t\tdisposables.add(toDisposable(() => codeEditor.updateOptions({ lineNumbers: 'relative' })));\n\t\t\t}\n\t\t}\n\n\t\treturn disposables;\n\t}\n\n\tprivate toRange(lineNumber = 1, column = 1): IRange {\n\t\treturn {\n\t\t\tstartLineNumber: lineNumber,\n\t\t\tstartColumn: column,\n\t\t\tendLineNumber: lineNumber,\n\t\t\tendColumn: column\n\t\t};\n\t}\n\n\tprotected parsePosition(editor: IEditor, value: string): Partial<IPosition> & { inOffsetMode?: boolean; label: string } {\n\t\tconst model = this.getModel(editor);\n\t\tif (!model) {\n\t\t\treturn {\n\t\t\t\tlabel: localize('gotoLine.noEditor', \"Open a text editor first to go to a line.\")\n\t\t\t};\n\t\t}\n\n\t\t// Support ::<offset> notation to navigate to a specific offset in the model.\n\t\tif (value.startsWith(':')) {\n\t\t\tlet offset = parseInt(value.substring(1), 10);\n\t\t\tconst maxOffset = model.getValueLength();\n\t\t\tif (isNaN(offset)) {\n\t\t\t\t// No valid offset specified.\n\t\t\t\treturn {\n\t\t\t\t\tinOffsetMode: true,\n\t\t\t\t\tlabel: this.useZeroBasedOffset.value ?\n\t\t\t\t\t\tlocalize('gotoLine.offsetPromptZero', \"Type a character position to go to (from 0 to {0}).\", maxOffset - 1) :\n\t\t\t\t\t\tlocalize('gotoLine.offsetPrompt', \"Type a character position to go to (from 1 to {0}).\", maxOffset)\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tconst reverse = offset < 0;\n\t\t\t\tif (!this.useZeroBasedOffset.value) {\n\t\t\t\t\t// Convert 1-based offset to model's 0-based.\n\t\t\t\t\toffset -= Math.sign(offset);\n\t\t\t\t}\n\t\t\t\tif (reverse) {\n\t\t\t\t\t// Offset from the end of the buffer\n\t\t\t\t\toffset += maxOffset;\n\t\t\t\t}\n\t\t\t\tconst pos = model.getPositionAt(offset);\n\t\t\t\treturn {\n\t\t\t\t\t...pos,\n\t\t\t\t\tinOffsetMode: true,\n\t\t\t\t\tlabel: localize('gotoLine.goToPosition', \"Press 'Enter' to go to line {0} at column {1}.\", pos.lineNumber, pos.column)\n\t\t\t\t};\n\t\t\t}\n\t\t} else {\n\t\t\t// Support line-col formats of `line,col`, `line:col`, `line#col`\n\t\t\tconst parts = value.split(/,|:|#/);\n\n\t\t\tconst maxLine = model.getLineCount();\n\t\t\tlet lineNumber = parseInt(parts[0]?.trim(), 10);\n\t\t\tif (parts.length < 1 || isNaN(lineNumber)) {\n\t\t\t\treturn {\n\t\t\t\t\tlabel: localize('gotoLine.linePrompt', \"Type a line number to go to (from 1 to {0}).\", maxLine)\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Handle negative line numbers and clip to valid range.\n\t\t\tlineNumber = lineNumber >= 0 ? lineNumber : (maxLine + 1) + lineNumber;\n\t\t\tlineNumber = Math.min(Math.max(1, lineNumber), maxLine);\n\n\t\t\tconst maxColumn = model.getLineMaxColumn(lineNumber);\n\t\t\tlet column = parseInt(parts[1]?.trim(), 10);\n\t\t\tif (parts.length < 2 || isNaN(column)) {\n\t\t\t\treturn {\n\t\t\t\t\tlineNumber,\n\t\t\t\t\tcolumn: 1,\n\t\t\t\t\tlabel: parts.length < 2 ?\n\t\t\t\t\t\tlocalize('gotoLine.lineColumnPrompt', \"Press 'Enter' to go to line {0} or enter : to add a column number.\", lineNumber) :\n\t\t\t\t\t\tlocalize('gotoLine.columnPrompt', \"Press 'Enter' to go to line {0} or enter a column number (from 1 to {1}).\", lineNumber, maxColumn)\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Handle negative column numbers and clip to valid range.\n\t\t\tcolumn = column >= 0 ? column : maxColumn + column;\n\t\t\tcolumn = Math.min(Math.max(1, column), maxColumn);\n\n\t\t\treturn {\n\t\t\t\tlineNumber,\n\t\t\t\tcolumn,\n\t\t\t\tlabel: localize('gotoLine.goToPosition', \"Press 'Enter' to go to line {0} at column {1}.\", lineNumber, column)\n\t\t\t};\n\t\t}\n\t}\n}\n"]}
@@ -39,7 +39,7 @@ let AbstractGotoSymbolQuickAccessProvider = class AbstractGotoSymbolQuickAccessP
39
39
  this.options.canAcceptInBackground = true;
40
40
  }
41
41
  provideWithoutTextEditor(picker) {
42
- this.provideLabelPick(picker, localize(1344, "To go to a symbol, first open a text editor with symbol information."));
42
+ this.provideLabelPick(picker, localize(1346, "To go to a symbol, first open a text editor with symbol information."));
43
43
  return Disposable.None;
44
44
  }
45
45
  provideWithTextEditor(context, picker, token, runOptions) {
@@ -60,7 +60,7 @@ let AbstractGotoSymbolQuickAccessProvider = class AbstractGotoSymbolQuickAccessP
60
60
  doProvideWithoutEditorSymbols(context, model, picker, token) {
61
61
  const disposables = new DisposableStore();
62
62
  // Generic pick for not having any symbol information
63
- this.provideLabelPick(picker, localize(1345, "The active text editor does not provide symbol information."));
63
+ this.provideLabelPick(picker, localize(1347, "The active text editor does not provide symbol information."));
64
64
  // Wait for changes to the registry and see if eventually
65
65
  // we do get symbols. This can happen if the picker is opened
66
66
  // very early after the model has loaded but before the
@@ -146,10 +146,10 @@ let AbstractGotoSymbolQuickAccessProvider = class AbstractGotoSymbolQuickAccessP
146
146
  }
147
147
  else {
148
148
  if (query.original.length > 0) {
149
- this.provideLabelPick(picker, localize(1346, "No matching editor symbols"));
149
+ this.provideLabelPick(picker, localize(1348, "No matching editor symbols"));
150
150
  }
151
151
  else {
152
- this.provideLabelPick(picker, localize(1347, "No editor symbols"));
152
+ this.provideLabelPick(picker, localize(1349, "No editor symbols"));
153
153
  }
154
154
  }
155
155
  }
@@ -196,7 +196,7 @@ let AbstractGotoSymbolQuickAccessProvider = class AbstractGotoSymbolQuickAccessP
196
196
  if (openSideBySideDirection) {
197
197
  buttons = [{
198
198
  iconClass: openSideBySideDirection === 'right' ? ThemeIcon.asClassName(Codicon.splitHorizontal) : ThemeIcon.asClassName(Codicon.splitVertical),
199
- tooltip: openSideBySideDirection === 'right' ? localize(1348, "Open to the Side") : localize(1349, "Open to the Bottom")
199
+ tooltip: openSideBySideDirection === 'right' ? localize(1350, "Open to the Side") : localize(1351, "Open to the Bottom")
200
200
  }];
201
201
  }
202
202
  const filteredSymbolPicks = [];
@@ -312,7 +312,7 @@ let AbstractGotoSymbolQuickAccessProvider = class AbstractGotoSymbolQuickAccessP
312
312
  }
313
313
  else if (sortedFilteredSymbolPicks.length > 0) {
314
314
  symbolPicks = [
315
- { label: localize(1350, "symbols ({0})", filteredSymbolPicks.length), type: 'separator' },
315
+ { label: localize(1352, "symbols ({0})", filteredSymbolPicks.length), type: 'separator' },
316
316
  ...sortedFilteredSymbolPicks
317
317
  ];
318
318
  }
@@ -362,33 +362,33 @@ AbstractGotoSymbolQuickAccessProvider = AbstractGotoSymbolQuickAccessProvider_1
362
362
  ], AbstractGotoSymbolQuickAccessProvider);
363
363
  export { AbstractGotoSymbolQuickAccessProvider };
364
364
  // #region NLS Helpers
365
- const FALLBACK_NLS_SYMBOL_KIND = localize(1351, "properties ({0})");
365
+ const FALLBACK_NLS_SYMBOL_KIND = localize(1353, "properties ({0})");
366
366
  const NLS_SYMBOL_KIND_CACHE = {
367
- [5 /* SymbolKind.Method */]: localize(1352, "methods ({0})"),
368
- [11 /* SymbolKind.Function */]: localize(1353, "functions ({0})"),
369
- [8 /* SymbolKind.Constructor */]: localize(1354, "constructors ({0})"),
370
- [12 /* SymbolKind.Variable */]: localize(1355, "variables ({0})"),
371
- [4 /* SymbolKind.Class */]: localize(1356, "classes ({0})"),
372
- [22 /* SymbolKind.Struct */]: localize(1357, "structs ({0})"),
373
- [23 /* SymbolKind.Event */]: localize(1358, "events ({0})"),
374
- [24 /* SymbolKind.Operator */]: localize(1359, "operators ({0})"),
375
- [10 /* SymbolKind.Interface */]: localize(1360, "interfaces ({0})"),
376
- [2 /* SymbolKind.Namespace */]: localize(1361, "namespaces ({0})"),
377
- [3 /* SymbolKind.Package */]: localize(1362, "packages ({0})"),
378
- [25 /* SymbolKind.TypeParameter */]: localize(1363, "type parameters ({0})"),
379
- [1 /* SymbolKind.Module */]: localize(1364, "modules ({0})"),
380
- [6 /* SymbolKind.Property */]: localize(1365, "properties ({0})"),
381
- [9 /* SymbolKind.Enum */]: localize(1366, "enumerations ({0})"),
382
- [21 /* SymbolKind.EnumMember */]: localize(1367, "enumeration members ({0})"),
383
- [14 /* SymbolKind.String */]: localize(1368, "strings ({0})"),
384
- [0 /* SymbolKind.File */]: localize(1369, "files ({0})"),
385
- [17 /* SymbolKind.Array */]: localize(1370, "arrays ({0})"),
386
- [15 /* SymbolKind.Number */]: localize(1371, "numbers ({0})"),
387
- [16 /* SymbolKind.Boolean */]: localize(1372, "booleans ({0})"),
388
- [18 /* SymbolKind.Object */]: localize(1373, "objects ({0})"),
389
- [19 /* SymbolKind.Key */]: localize(1374, "keys ({0})"),
390
- [7 /* SymbolKind.Field */]: localize(1375, "fields ({0})"),
391
- [13 /* SymbolKind.Constant */]: localize(1376, "constants ({0})")
367
+ [5 /* SymbolKind.Method */]: localize(1354, "methods ({0})"),
368
+ [11 /* SymbolKind.Function */]: localize(1355, "functions ({0})"),
369
+ [8 /* SymbolKind.Constructor */]: localize(1356, "constructors ({0})"),
370
+ [12 /* SymbolKind.Variable */]: localize(1357, "variables ({0})"),
371
+ [4 /* SymbolKind.Class */]: localize(1358, "classes ({0})"),
372
+ [22 /* SymbolKind.Struct */]: localize(1359, "structs ({0})"),
373
+ [23 /* SymbolKind.Event */]: localize(1360, "events ({0})"),
374
+ [24 /* SymbolKind.Operator */]: localize(1361, "operators ({0})"),
375
+ [10 /* SymbolKind.Interface */]: localize(1362, "interfaces ({0})"),
376
+ [2 /* SymbolKind.Namespace */]: localize(1363, "namespaces ({0})"),
377
+ [3 /* SymbolKind.Package */]: localize(1364, "packages ({0})"),
378
+ [25 /* SymbolKind.TypeParameter */]: localize(1365, "type parameters ({0})"),
379
+ [1 /* SymbolKind.Module */]: localize(1366, "modules ({0})"),
380
+ [6 /* SymbolKind.Property */]: localize(1367, "properties ({0})"),
381
+ [9 /* SymbolKind.Enum */]: localize(1368, "enumerations ({0})"),
382
+ [21 /* SymbolKind.EnumMember */]: localize(1369, "enumeration members ({0})"),
383
+ [14 /* SymbolKind.String */]: localize(1370, "strings ({0})"),
384
+ [0 /* SymbolKind.File */]: localize(1371, "files ({0})"),
385
+ [17 /* SymbolKind.Array */]: localize(1372, "arrays ({0})"),
386
+ [15 /* SymbolKind.Number */]: localize(1373, "numbers ({0})"),
387
+ [16 /* SymbolKind.Boolean */]: localize(1374, "booleans ({0})"),
388
+ [18 /* SymbolKind.Object */]: localize(1375, "objects ({0})"),
389
+ [19 /* SymbolKind.Key */]: localize(1376, "keys ({0})"),
390
+ [7 /* SymbolKind.Field */]: localize(1377, "fields ({0})"),
391
+ [13 /* SymbolKind.Constant */]: localize(1378, "constants ({0})")
392
392
  };
393
393
  //#endregion
394
394
  //# sourceMappingURL=gotoSymbolQuickAccess.js.map
@@ -20,10 +20,10 @@ export class ReadOnlyMessageController extends Disposable {
20
20
  let message = this.editor.getOptions().get(105 /* EditorOption.readOnlyMessage */);
21
21
  if (!message) {
22
22
  if (this.editor.isSimpleWidget) {
23
- message = new MarkdownString(nls.localize(1377, "Cannot edit in read-only input"));
23
+ message = new MarkdownString(nls.localize(1379, "Cannot edit in read-only input"));
24
24
  }
25
25
  else {
26
- message = new MarkdownString(nls.localize(1378, "Cannot edit in read-only editor"));
26
+ message = new MarkdownString(nls.localize(1380, "Cannot edit in read-only editor"));
27
27
  }
28
28
  }
29
29
  messageController.showMessage(message, this.editor.getPosition());
@@ -99,7 +99,7 @@ class RenameSkeleton {
99
99
  }
100
100
  const result = await provider.provideRenameEdits(this.model, this.position, newName, token);
101
101
  if (!result) {
102
- return this._provideRenameEdits(newName, i + 1, rejects.concat(nls.localize(1379, "No result.")), token);
102
+ return this._provideRenameEdits(newName, i + 1, rejects.concat(nls.localize(1381, "No result.")), token);
103
103
  }
104
104
  else if (result.rejectReason) {
105
105
  return this._provideRenameEdits(newName, i + 1, rejects.concat(result.rejectReason), token);
@@ -172,7 +172,7 @@ let RenameController = class RenameController {
172
172
  else {
173
173
  trace('resolve rename location failed', e instanceof Error ? e : JSON.stringify(e, null, '\t'));
174
174
  if (typeof e === 'string' || isMarkdownString(e)) {
175
- MessageController.get(this.editor)?.showMessage(e || nls.localize(1380, "An unknown error occurred while resolving rename location"), position);
175
+ MessageController.get(this.editor)?.showMessage(e || nls.localize(1382, "An unknown error occurred while resolving rename location"), position);
176
176
  }
177
177
  }
178
178
  return undefined;
@@ -240,24 +240,24 @@ let RenameController = class RenameController {
240
240
  this._bulkEditService.apply(renameResult, {
241
241
  editor: this.editor,
242
242
  showPreview: inputFieldResult.wantsPreview,
243
- label: nls.localize(1381, "Renaming '{0}' to '{1}'", loc?.text, inputFieldResult.newName),
243
+ label: nls.localize(1383, "Renaming '{0}' to '{1}'", loc?.text, inputFieldResult.newName),
244
244
  code: 'undoredo.rename',
245
- quotableLabel: nls.localize(1382, "Renaming {0} to {1}", loc?.text, inputFieldResult.newName),
245
+ quotableLabel: nls.localize(1384, "Renaming {0} to {1}", loc?.text, inputFieldResult.newName),
246
246
  respectAutoSaveConfig: true,
247
247
  reason: EditSources.rename(),
248
248
  }).then(result => {
249
249
  trace('edits applied');
250
250
  if (result.ariaSummary) {
251
- alert(nls.localize(1383, "Successfully renamed '{0}' to '{1}'. Summary: {2}", loc.text, inputFieldResult.newName, result.ariaSummary));
251
+ alert(nls.localize(1385, "Successfully renamed '{0}' to '{1}'. Summary: {2}", loc.text, inputFieldResult.newName, result.ariaSummary));
252
252
  }
253
253
  }).catch(err => {
254
254
  trace(`error when applying edits ${JSON.stringify(err, null, '\t')}`);
255
- this._notificationService.error(nls.localize(1384, "Rename failed to apply edits"));
255
+ this._notificationService.error(nls.localize(1386, "Rename failed to apply edits"));
256
256
  this._logService.error(err);
257
257
  });
258
258
  }, err => {
259
259
  trace('error when providing rename edits', JSON.stringify(err, null, '\t'));
260
- this._notificationService.error(nls.localize(1385, "Rename failed to compute edits"));
260
+ this._notificationService.error(nls.localize(1387, "Rename failed to compute edits"));
261
261
  this._logService.error(err);
262
262
  }).finally(() => {
263
263
  cts2.dispose();
@@ -293,7 +293,7 @@ export class RenameAction extends EditorAction {
293
293
  constructor() {
294
294
  super({
295
295
  id: 'editor.action.rename',
296
- label: nls.localize2(1387, "Rename Symbol"),
296
+ label: nls.localize2(1389, "Rename Symbol"),
297
297
  precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasRenameProvider),
298
298
  kbOpts: {
299
299
  kbExpr: EditorContextKeys.editorTextFocus,
@@ -374,7 +374,7 @@ registerAction2(class FocusNextRenameSuggestion extends Action2 {
374
374
  super({
375
375
  id: 'focusNextRenameSuggestion',
376
376
  title: {
377
- ...nls.localize2(1388, "Focus Next Rename Suggestion"),
377
+ ...nls.localize2(1390, "Focus Next Rename Suggestion"),
378
378
  },
379
379
  precondition: CONTEXT_RENAME_INPUT_VISIBLE,
380
380
  keybinding: [
@@ -402,7 +402,7 @@ registerAction2(class FocusPreviousRenameSuggestion extends Action2 {
402
402
  super({
403
403
  id: 'focusPreviousRenameSuggestion',
404
404
  title: {
405
- ...nls.localize2(1389, "Focus Previous Rename Suggestion"),
405
+ ...nls.localize2(1391, "Focus Previous Rename Suggestion"),
406
406
  },
407
407
  precondition: CONTEXT_RENAME_INPUT_VISIBLE,
408
408
  keybinding: [
@@ -447,7 +447,7 @@ Registry.as(Extensions.Configuration).registerConfiguration({
447
447
  properties: {
448
448
  'editor.rename.enablePreview': {
449
449
  scope: 6 /* ConfigurationScope.LANGUAGE_OVERRIDABLE */,
450
- description: nls.localize(1386, "Enable/disable the ability to preview changes before renaming"),
450
+ description: nls.localize(1388, "Enable/disable the ability to preview changes before renaming"),
451
451
  default: true,
452
452
  type: 'boolean'
453
453
  }
@@ -39,8 +39,8 @@ import { editorWidgetBackground, inputBackground, inputBorder, inputForeground,
39
39
  import { IThemeService } from '../../../../platform/theme/common/themeService.js';
40
40
  /** for debugging */
41
41
  const _sticky = false;
42
- export const CONTEXT_RENAME_INPUT_VISIBLE = new RawContextKey('renameInputVisible', false, nls.localize(1390, "Whether the rename input widget is visible"));
43
- export const CONTEXT_RENAME_INPUT_FOCUSED = new RawContextKey('renameInputFocused', false, nls.localize(1391, "Whether the rename input widget is focused"));
42
+ export const CONTEXT_RENAME_INPUT_VISIBLE = new RawContextKey('renameInputVisible', false, nls.localize(1392, "Whether the rename input widget is visible"));
43
+ export const CONTEXT_RENAME_INPUT_FOCUSED = new RawContextKey('renameInputFocused', false, nls.localize(1393, "Whether the rename input widget is focused"));
44
44
  let RenameWidget = class RenameWidget {
45
45
  constructor(_editor, _acceptKeybindings, _themeService, _keybindingService, contextKeyService, _logService) {
46
46
  this._editor = _editor;
@@ -163,7 +163,7 @@ let RenameWidget = class RenameWidget {
163
163
  }
164
164
  beforeRender() {
165
165
  const [accept, preview] = this._acceptKeybindings;
166
- this._label.innerText = nls.localize(1392, "{0} to Rename, {1} to Preview", this._keybindingService.lookupKeybinding(accept)?.getLabel(), this._keybindingService.lookupKeybinding(preview)?.getLabel());
166
+ this._label.innerText = nls.localize(1394, "{0} to Rename, {1} to Preview", this._keybindingService.lookupKeybinding(accept)?.getLabel(), this._keybindingService.lookupKeybinding(preview)?.getLabel());
167
167
  this._domNode.style.minWidth = `200px`; // to prevent from widening when candidates come in
168
168
  return null;
169
169
  }
@@ -477,7 +477,7 @@ class RenameCandidateListView {
477
477
  // adjust list container layout
478
478
  this._listContainer.style.height = `${height}px`;
479
479
  this._listContainer.style.width = `${width}px`;
480
- aria.status(nls.localize(1393, "Received {0} rename suggestions", candidates.length));
480
+ aria.status(nls.localize(1395, "Received {0} rename suggestions", candidates.length));
481
481
  }
482
482
  clearCandidates() {
483
483
  this._listContainer.style.height = '0px';
@@ -619,13 +619,13 @@ class InputWithButton {
619
619
  this._inputNode.className = 'rename-input';
620
620
  this._inputNode.type = 'text';
621
621
  this._inputNode.style.border = 'none';
622
- this._inputNode.setAttribute('aria-label', nls.localize(1394, "Rename input. Type new name and press Enter to commit."));
622
+ this._inputNode.setAttribute('aria-label', nls.localize(1396, "Rename input. Type new name and press Enter to commit."));
623
623
  this._domNode.appendChild(this._inputNode);
624
624
  this._buttonNode = document.createElement('div');
625
625
  this._buttonNode.className = 'rename-suggestions-button';
626
626
  this._buttonNode.setAttribute('tabindex', '0');
627
- this._buttonGenHoverText = nls.localize(1395, "Generate New Name Suggestions");
628
- this._buttonCancelHoverText = nls.localize(1396, "Cancel");
627
+ this._buttonGenHoverText = nls.localize(1397, "Generate New Name Suggestions");
628
+ this._buttonCancelHoverText = nls.localize(1398, "Cancel");
629
629
  this._buttonHoverContent = this._buttonGenHoverText;
630
630
  this._disposables.add(getBaseLayerHoverDelegate().setupDelayedHover(this._buttonNode, () => ({
631
631
  content: this._buttonHoverContent,
@@ -131,7 +131,7 @@ class GrowSelectionAction extends AbstractSmartSelect {
131
131
  constructor() {
132
132
  super(true, {
133
133
  id: 'editor.action.smartSelect.expand',
134
- label: nls.localize2(1399, "Expand Selection"),
134
+ label: nls.localize2(1401, "Expand Selection"),
135
135
  precondition: undefined,
136
136
  kbOpts: {
137
137
  kbExpr: EditorContextKeys.editorTextFocus,
@@ -145,7 +145,7 @@ class GrowSelectionAction extends AbstractSmartSelect {
145
145
  menuOpts: {
146
146
  menuId: MenuId.MenubarSelectionMenu,
147
147
  group: '1_basic',
148
- title: nls.localize(1397, "&&Expand Selection"),
148
+ title: nls.localize(1399, "&&Expand Selection"),
149
149
  order: 2
150
150
  }
151
151
  });
@@ -157,7 +157,7 @@ class ShrinkSelectionAction extends AbstractSmartSelect {
157
157
  constructor() {
158
158
  super(false, {
159
159
  id: 'editor.action.smartSelect.shrink',
160
- label: nls.localize2(1400, "Shrink Selection"),
160
+ label: nls.localize2(1402, "Shrink Selection"),
161
161
  precondition: undefined,
162
162
  kbOpts: {
163
163
  kbExpr: EditorContextKeys.editorTextFocus,
@@ -171,7 +171,7 @@ class ShrinkSelectionAction extends AbstractSmartSelect {
171
171
  menuOpts: {
172
172
  menuId: MenuId.MenubarSelectionMenu,
173
173
  group: '1_basic',
174
- title: nls.localize(1398, "&&Shrink Selection"),
174
+ title: nls.localize(1400, "&&Shrink Selection"),
175
175
  order: 3
176
176
  }
177
177
  });
@@ -40,9 +40,9 @@ let SnippetController2 = class SnippetController2 {
40
40
  static get(editor) {
41
41
  return editor.getContribution(SnippetController2_1.ID);
42
42
  }
43
- static { this.InSnippetMode = new RawContextKey('inSnippetMode', false, localize(1401, "Whether the editor in current in snippet mode")); }
44
- static { this.HasNextTabstop = new RawContextKey('hasNextTabstop', false, localize(1402, "Whether there is a next tab stop when in snippet mode")); }
45
- static { this.HasPrevTabstop = new RawContextKey('hasPrevTabstop', false, localize(1403, "Whether there is a previous tab stop when in snippet mode")); }
43
+ static { this.InSnippetMode = new RawContextKey('inSnippetMode', false, localize(1403, "Whether the editor in current in snippet mode")); }
44
+ static { this.HasNextTabstop = new RawContextKey('hasNextTabstop', false, localize(1404, "Whether there is a next tab stop when in snippet mode")); }
45
+ static { this.HasPrevTabstop = new RawContextKey('hasPrevTabstop', false, localize(1405, "Whether there is a previous tab stop when in snippet mode")); }
46
46
  constructor(_editor, _logService, _languageFeaturesService, contextKeyService, _languageConfigurationService) {
47
47
  this._editor = _editor;
48
48
  this._logService = _logService;
@@ -128,7 +128,7 @@ let SnippetController2 = class SnippetController2 {
128
128
  sortText: 'a'.repeat(i + 1),
129
129
  range: activeChoice.range,
130
130
  filterText: isAnyOfOptions ? `${word}_${option.value}` : undefined,
131
- command: { id: 'jumpToNextSnippetPlaceholder', title: localize(1404, 'Go to next placeholder...') }
131
+ command: { id: 'jumpToNextSnippetPlaceholder', title: localize(1406, 'Go to next placeholder...') }
132
132
  });
133
133
  }
134
134
  return { suggestions };