@codingame/monaco-vscode-api 15.0.0 → 15.0.2

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 (198) hide show
  1. package/missing-services.js +53 -4
  2. package/package.json +8 -8
  3. package/services.js +5 -5
  4. package/vscode/src/vs/editor/browser/observableCodeEditor.js +1 -1
  5. package/vscode/src/vs/editor/browser/services/hoverService/hoverService.js +2 -4
  6. package/vscode/src/vs/editor/browser/widget/diffEditor/diffProviderFactoryService.js +125 -0
  7. package/vscode/src/vs/editor/common/languages/languageConfigurationRegistry.js +2 -3
  8. package/vscode/src/vs/editor/common/services/languageFeatureDebounce.js +2 -3
  9. package/vscode/src/vs/editor/common/services/languageFeaturesService.js +2 -3
  10. package/vscode/src/vs/editor/common/services/semanticTokensStylingService.js +2 -3
  11. package/vscode/src/vs/editor/contrib/codelens/browser/codeLensCache.d.ts +15 -0
  12. package/vscode/src/vs/editor/contrib/codelens/browser/codeLensCache.js +93 -0
  13. package/vscode/src/vs/editor/contrib/documentSymbols/browser/outlineModel.js +2 -3
  14. package/vscode/src/vs/editor/contrib/editorState/browser/keybindingCancellation.d.ts +7 -0
  15. package/vscode/src/vs/editor/contrib/editorState/browser/keybindingCancellation.js +4 -4
  16. package/vscode/src/vs/editor/contrib/gotoError/browser/markerNavigationService.d.ts +45 -0
  17. package/vscode/src/vs/editor/contrib/gotoError/browser/markerNavigationService.js +215 -0
  18. package/vscode/src/vs/editor/contrib/gotoError/browser/markerNavigationService.service.d.ts +1 -1
  19. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/symbolNavigation.d.ts +26 -0
  20. package/vscode/src/vs/editor/contrib/gotoSymbol/browser/symbolNavigation.js +178 -0
  21. package/vscode/src/vs/editor/contrib/gpu/browser/gpuActions.js +4 -4
  22. package/vscode/src/vs/editor/contrib/hover/browser/contentHoverRendered.js +3 -3
  23. package/vscode/src/vs/editor/contrib/hover/browser/hoverAccessibleViews.js +2 -2
  24. package/vscode/src/vs/editor/contrib/hover/browser/hoverActionIds.js +2 -2
  25. package/vscode/src/vs/editor/contrib/hover/browser/hoverActions.js +24 -24
  26. package/vscode/src/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +9 -9
  27. package/vscode/src/vs/editor/contrib/hover/browser/markerHoverParticipant.js +5 -5
  28. package/vscode/src/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
  29. package/vscode/src/vs/editor/contrib/indentation/browser/indentation.js +20 -20
  30. package/vscode/src/vs/editor/contrib/inlayHints/browser/inlayHintsController.js +1 -2
  31. package/vscode/src/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +8 -8
  32. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +20 -20
  33. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +11 -11
  34. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +1 -1
  35. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +2 -2
  36. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +5 -5
  37. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +5 -5
  38. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/indicatorView.js +3 -3
  39. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js +1 -1
  40. package/vscode/src/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +18 -18
  41. package/vscode/src/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js +1 -1
  42. package/vscode/src/vs/editor/contrib/lineSelection/browser/lineSelection.js +1 -1
  43. package/vscode/src/vs/editor/contrib/linesOperations/browser/linesOperations.js +30 -30
  44. package/vscode/src/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +2 -2
  45. package/vscode/src/vs/editor/contrib/links/browser/links.js +10 -10
  46. package/vscode/src/vs/editor/contrib/message/browser/messageController.js +1 -1
  47. package/vscode/src/vs/editor/contrib/multicursor/browser/multicursor.js +22 -22
  48. package/vscode/src/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
  49. package/vscode/src/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +4 -4
  50. package/vscode/src/vs/editor/contrib/peekView/browser/peekView.d.ts +6 -0
  51. package/vscode/src/vs/editor/contrib/peekView/browser/peekView.js +21 -22
  52. package/vscode/src/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
  53. package/vscode/src/vs/editor/contrib/readOnlyMessage/browser/contribution.js +2 -2
  54. package/vscode/src/vs/editor/contrib/rename/browser/rename.js +11 -11
  55. package/vscode/src/vs/editor/contrib/rename/browser/renameWidget.js +6 -6
  56. package/vscode/src/vs/editor/contrib/smartSelect/browser/smartSelect.js +4 -4
  57. package/vscode/src/vs/editor/contrib/snippet/browser/snippetController2.js +4 -4
  58. package/vscode/src/vs/editor/contrib/snippet/browser/snippetVariables.js +4 -4
  59. package/vscode/src/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
  60. package/vscode/src/vs/editor/contrib/suggest/browser/suggest.js +8 -8
  61. package/vscode/src/vs/editor/contrib/suggest/browser/suggestController.js +10 -10
  62. package/vscode/src/vs/editor/contrib/suggest/browser/suggestMemory.d.ts +67 -0
  63. package/vscode/src/vs/editor/contrib/suggest/browser/suggestMemory.js +232 -0
  64. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidget.js +16 -16
  65. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +2 -2
  66. package/vscode/src/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +2 -2
  67. package/vscode/src/vs/editor/contrib/suggest/browser/wordContextKey.js +1 -1
  68. package/vscode/src/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
  69. package/vscode/src/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
  70. package/vscode/src/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
  71. package/vscode/src/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +24 -24
  72. package/vscode/src/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +5 -5
  73. package/vscode/src/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
  74. package/vscode/src/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +3 -3
  75. package/vscode/src/vs/editor/contrib/wordOperations/browser/wordOperations.js +1 -1
  76. package/vscode/src/vs/editor/standalone/browser/standaloneServices.js +12 -8
  77. package/vscode/src/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +54 -54
  78. package/vscode/src/vs/platform/action/common/actionCommonCategories.js +6 -6
  79. package/vscode/src/vs/platform/actionWidget/browser/actionList.js +255 -13
  80. package/vscode/src/vs/platform/actionWidget/browser/actionWidget.d.ts +26 -0
  81. package/vscode/src/vs/platform/actionWidget/browser/actionWidget.js +230 -0
  82. package/vscode/src/vs/platform/actions/browser/menuEntryActionViewItem.js +5 -5
  83. package/vscode/src/vs/platform/actions/browser/toolbar.js +2 -2
  84. package/vscode/src/vs/platform/actions/common/menuResetAction.js +1 -1
  85. package/vscode/src/vs/platform/actions/common/menuService.js +2 -2
  86. package/vscode/src/vs/platform/configuration/common/configurationRegistry.js +10 -10
  87. package/vscode/src/vs/platform/contextkey/browser/contextKeyService.js +1 -1
  88. package/vscode/src/vs/platform/contextkey/common/contextkey.js +11 -11
  89. package/vscode/src/vs/platform/contextkey/common/contextkeys.js +9 -9
  90. package/vscode/src/vs/platform/contextkey/common/scanner.js +5 -5
  91. package/vscode/src/vs/platform/dnd/browser/dnd.js +1 -1
  92. package/vscode/src/vs/platform/extensionManagement/common/extensionManagement.js +2 -2
  93. package/vscode/src/vs/platform/extensionManagement/common/extensionNls.js +1 -1
  94. package/vscode/src/vs/platform/extensionManagement/common/extensionsScannerService.js +7 -7
  95. package/vscode/src/vs/platform/extensions/common/extensionValidator.js +20 -20
  96. package/vscode/src/vs/platform/files/browser/htmlFileSystemProvider.js +2 -2
  97. package/vscode/src/vs/platform/files/common/files.js +6 -6
  98. package/vscode/src/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
  99. package/vscode/src/vs/platform/keybinding/common/abstractKeybindingService.js +4 -4
  100. package/vscode/src/vs/platform/list/browser/listService.js +27 -27
  101. package/vscode/src/vs/platform/log/common/log.js +6 -6
  102. package/vscode/src/vs/platform/markers/common/markers.js +6 -6
  103. package/vscode/src/vs/platform/quickinput/browser/quickInput.js +10 -10
  104. package/vscode/src/vs/platform/quickinput/browser/quickInputActions.js +3 -3
  105. package/vscode/src/vs/platform/quickinput/browser/quickInputController.js +6 -6
  106. package/vscode/src/vs/platform/quickinput/browser/quickInputTree.js +1 -1
  107. package/vscode/src/vs/platform/quickinput/browser/quickInputUtils.js +1 -1
  108. package/vscode/src/vs/platform/request/common/request.js +18 -18
  109. package/vscode/src/vs/platform/telemetry/common/telemetryUtils.js +1 -1
  110. package/vscode/src/vs/platform/theme/common/colorUtils.js +2 -2
  111. package/vscode/src/vs/platform/theme/common/colors/baseColors.js +17 -17
  112. package/vscode/src/vs/platform/theme/common/colors/chartsColors.js +8 -8
  113. package/vscode/src/vs/platform/theme/common/colors/editorColors.js +94 -94
  114. package/vscode/src/vs/platform/theme/common/colors/inputColors.js +45 -45
  115. package/vscode/src/vs/platform/theme/common/colors/listColors.js +36 -36
  116. package/vscode/src/vs/platform/theme/common/colors/menuColors.js +7 -7
  117. package/vscode/src/vs/platform/theme/common/colors/minimapColors.js +11 -11
  118. package/vscode/src/vs/platform/theme/common/colors/miscColors.js +15 -15
  119. package/vscode/src/vs/platform/theme/common/colors/quickpickColors.js +9 -9
  120. package/vscode/src/vs/platform/theme/common/colors/searchColors.js +3 -3
  121. package/vscode/src/vs/platform/theme/common/iconRegistry.js +6 -6
  122. package/vscode/src/vs/platform/undoRedo/common/undoRedoService.js +22 -23
  123. package/vscode/src/vs/platform/userDataProfile/common/userDataProfile.js +1 -1
  124. package/vscode/src/vs/platform/userDataSync/common/userDataSync.js +5 -5
  125. package/vscode/src/vs/platform/workspace/common/workspace.js +1 -1
  126. package/vscode/src/vs/workbench/api/common/extHostDiagnostics.js +1 -1
  127. package/vscode/src/vs/workbench/api/common/extHostExtensionService.js +2 -2
  128. package/vscode/src/vs/workbench/api/common/extHostLanguageFeatures.js +2 -2
  129. package/vscode/src/vs/workbench/api/common/extHostLanguageModels.js +1 -1
  130. package/vscode/src/vs/workbench/api/common/extHostLogService.js +1 -1
  131. package/vscode/src/vs/workbench/api/common/extHostNotebook.js +2 -2
  132. package/vscode/src/vs/workbench/api/common/extHostStatusBar.js +2 -2
  133. package/vscode/src/vs/workbench/api/common/extHostTelemetry.js +1 -1
  134. package/vscode/src/vs/workbench/api/common/extHostTerminalService.js +1 -1
  135. package/vscode/src/vs/workbench/api/common/extHostTreeViews.js +1 -1
  136. package/vscode/src/vs/workbench/api/common/extHostTunnelService.js +2 -2
  137. package/vscode/src/vs/workbench/api/common/extHostWorkspace.js +1 -1
  138. package/vscode/src/vs/workbench/api/common/jsonValidationExtensionPoint.js +12 -12
  139. package/vscode/src/vs/workbench/browser/actions/developerActions.js +31 -31
  140. package/vscode/src/vs/workbench/browser/actions/textInputActions.js +6 -6
  141. package/vscode/src/vs/workbench/common/configuration.js +10 -10
  142. package/vscode/src/vs/workbench/common/contextkeys.js +70 -70
  143. package/vscode/src/vs/workbench/common/editor/editorOptions.d.ts +3 -0
  144. package/vscode/src/vs/workbench/common/editor/editorOptions.js +52 -0
  145. package/vscode/src/vs/workbench/common/editor.js +4 -4
  146. package/vscode/src/vs/workbench/common/theme.js +160 -160
  147. package/vscode/src/vs/workbench/common/views.js +4 -4
  148. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibilityConfiguration.js +141 -141
  149. package/vscode/src/vs/workbench/contrib/accessibility/browser/accessibleViewActions.js +12 -12
  150. package/vscode/src/vs/workbench/contrib/chat/browser/chatEditing/chatEditingEditorContextKeys.js +5 -5
  151. package/vscode/src/vs/workbench/contrib/chat/common/chatContextKeys.js +32 -32
  152. package/vscode/src/vs/workbench/contrib/chat/common/chatEditingService.js +3 -3
  153. package/vscode/src/vs/workbench/contrib/chat/common/languageModels.js +6 -6
  154. package/vscode/src/vs/workbench/contrib/chat/common/tools/editFileTool.js +1 -1
  155. package/vscode/src/vs/workbench/contrib/codeActions/browser/codeActionsContribution.js +13 -13
  156. package/vscode/src/vs/workbench/contrib/codeEditor/browser/dictation/editorDictation.js +4 -4
  157. package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorAccessibilityHelp.js +5 -5
  158. package/vscode/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.js +3 -3
  159. package/vscode/src/vs/workbench/contrib/codeEditor/browser/largeFileOptimizations.js +3 -3
  160. package/vscode/src/vs/workbench/contrib/codeEditor/browser/saveParticipants.js +4 -4
  161. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMinimap.js +2 -2
  162. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleMultiCursorModifier.js +4 -4
  163. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleRenderControlCharacter.js +2 -2
  164. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleRenderWhitespace.js +2 -2
  165. package/vscode/src/vs/workbench/contrib/codeEditor/browser/toggleWordWrap.js +5 -5
  166. package/vscode/src/vs/workbench/contrib/comments/browser/commentsAccessibility.js +12 -12
  167. package/vscode/src/vs/workbench/contrib/comments/common/commentContextKeys.js +11 -11
  168. package/vscode/src/vs/workbench/contrib/debug/common/abstractDebugAdapter.js +1 -1
  169. package/vscode/src/vs/workbench/contrib/debug/common/debug.js +64 -64
  170. package/vscode/src/vs/workbench/contrib/files/browser/fileConstants.js +6 -6
  171. package/vscode/src/vs/workbench/contrib/folding/browser/folding.contribution.js +3 -3
  172. package/vscode/src/vs/workbench/contrib/format/browser/formatActionsMultiple.js +20 -20
  173. package/vscode/src/vs/workbench/contrib/format/browser/formatActionsNone.js +4 -4
  174. package/vscode/src/vs/workbench/contrib/format/browser/formatModified.js +1 -1
  175. package/vscode/src/vs/workbench/contrib/inlayHints/browser/inlayHintsAccessibilty.js +4 -4
  176. package/vscode/src/vs/workbench/contrib/list/browser/listResizeColumnAction.js +2 -2
  177. package/vscode/src/vs/workbench/contrib/list/browser/tableColumnResizeQuickPick.js +5 -5
  178. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetCompletionProvider.js +3 -3
  179. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetsFile.js +3 -3
  180. package/vscode/src/vs/workbench/contrib/snippets/browser/snippetsService.js +9 -9
  181. package/vscode/src/vs/workbench/contrib/speech/common/speechService.js +29 -29
  182. package/vscode/src/vs/workbench/contrib/tasks/common/taskDefinitionRegistry.js +5 -5
  183. package/vscode/src/vs/workbench/contrib/tasks/common/tasks.js +4 -4
  184. package/vscode/src/vs/workbench/contrib/testing/common/constants.js +11 -11
  185. package/vscode/src/vs/workbench/contrib/testing/common/testTypes.js +3 -3
  186. package/vscode/src/vs/workbench/services/configurationResolver/common/variableResolver.js +16 -16
  187. package/vscode/src/vs/workbench/services/editor/browser/codeEditorService.d.ts +13 -0
  188. package/vscode/src/vs/workbench/services/editor/browser/codeEditorService.js +87 -0
  189. package/vscode/src/vs/workbench/services/editor/common/editorResolverService.js +1 -1
  190. package/vscode/src/vs/workbench/services/extensions/common/extensionsRegistry.js +83 -83
  191. package/vscode/src/vs/workbench/services/language/common/languageService.js +28 -28
  192. package/vscode/src/vs/workbench/services/log/common/logConstants.js +1 -1
  193. package/vscode/src/vs/workbench/services/remote/common/remoteExplorerService.js +8 -8
  194. package/vscode/src/vs/workbench/services/remote/common/tunnelModel.js +6 -6
  195. package/vscode/src/vs/workbench/services/search/common/queryBuilder.js +1 -1
  196. package/vscode/src/vs/workbench/services/themes/common/colorExtensionPoint.js +22 -22
  197. package/vscode/src/vs/workbench/services/themes/common/iconExtensionPoint.js +13 -13
  198. package/vscode/src/vs/workbench/services/userDataSync/common/userDataSync.js +12 -12
@@ -21,21 +21,21 @@ import { StandardTokenType } from '../../../common/encodedTokenAttributes.js';
21
21
 
22
22
  const Context = {
23
23
  Visible: historyNavigationVisible,
24
- HasFocusedSuggestion: ( new RawContextKey('suggestWidgetHasFocusedSuggestion', false, ( localize(1472, "Whether any suggestion is focused")))),
25
- DetailsVisible: ( new RawContextKey('suggestWidgetDetailsVisible', false, ( localize(1473, "Whether suggestion details are visible")))),
26
- MultipleSuggestions: ( new RawContextKey('suggestWidgetMultipleSuggestions', false, ( localize(1474, "Whether there are multiple suggestions to pick from")))),
24
+ HasFocusedSuggestion: ( new RawContextKey('suggestWidgetHasFocusedSuggestion', false, ( localize(1475, "Whether any suggestion is focused")))),
25
+ DetailsVisible: ( new RawContextKey('suggestWidgetDetailsVisible', false, ( localize(1476, "Whether suggestion details are visible")))),
26
+ MultipleSuggestions: ( new RawContextKey('suggestWidgetMultipleSuggestions', false, ( localize(1477, "Whether there are multiple suggestions to pick from")))),
27
27
  MakesTextEdit: ( new RawContextKey('suggestionMakesTextEdit', true, ( localize(
28
- 1475,
28
+ 1478,
29
29
  "Whether inserting the current suggestion yields in a change or has everything already been typed"
30
30
  )))),
31
- AcceptSuggestionsOnEnter: ( new RawContextKey('acceptSuggestionOnEnter', true, ( localize(1476, "Whether suggestions are inserted when pressing Enter")))),
32
- HasInsertAndReplaceRange: ( new RawContextKey('suggestionHasInsertAndReplaceRange', false, ( localize(1477, "Whether the current suggestion has insert and replace behaviour")))),
31
+ AcceptSuggestionsOnEnter: ( new RawContextKey('acceptSuggestionOnEnter', true, ( localize(1479, "Whether suggestions are inserted when pressing Enter")))),
32
+ HasInsertAndReplaceRange: ( new RawContextKey('suggestionHasInsertAndReplaceRange', false, ( localize(1480, "Whether the current suggestion has insert and replace behaviour")))),
33
33
  InsertMode: ( new RawContextKey(
34
34
  'suggestionInsertMode',
35
35
  undefined,
36
- { type: 'string', description: ( localize(1478, "Whether the default behaviour is to insert or replace")) }
36
+ { type: 'string', description: ( localize(1481, "Whether the default behaviour is to insert or replace")) }
37
37
  )),
38
- CanResolve: ( new RawContextKey('suggestionCanResolve', false, ( localize(1479, "Whether the current suggestion supports to resolve further details")))),
38
+ CanResolve: ( new RawContextKey('suggestionCanResolve', false, ( localize(1482, "Whether the current suggestion supports to resolve further details")))),
39
39
  };
40
40
  const suggestWidgetStatusbarMenu = ( new MenuId('suggestWidgetStatusBar'));
41
41
  class CompletionItem {
@@ -449,7 +449,7 @@ let SuggestController = class SuggestController {
449
449
  _alertCompletionItem(item) {
450
450
  if (isNonEmptyArray(item.completion.additionalTextEdits)) {
451
451
  const msg = ( localize(
452
- 1480,
452
+ 1483,
453
453
  "Accepting '{0}' made {1} additional edits",
454
454
  item.textLabel,
455
455
  item.completion.additionalTextEdits.length
@@ -626,7 +626,7 @@ class TriggerSuggestAction extends EditorAction {
626
626
  constructor() {
627
627
  super({
628
628
  id: TriggerSuggestAction.id,
629
- label: ( localize2(1481, "Trigger Suggest")),
629
+ label: ( localize2(1484, "Trigger Suggest")),
630
630
  precondition: ( ContextKeyExpr.and(
631
631
  EditorContextKeys.writable,
632
632
  EditorContextKeys.hasCompletionItemProvider,
@@ -681,19 +681,19 @@ registerEditorCommand(( new SuggestCommand({
681
681
  }],
682
682
  menuOpts: [{
683
683
  menuId: suggestWidgetStatusbarMenu,
684
- title: ( localize(1482, "Insert")),
684
+ title: ( localize(1485, "Insert")),
685
685
  group: 'left',
686
686
  order: 1,
687
687
  when: ( Context.HasInsertAndReplaceRange.toNegated())
688
688
  }, {
689
689
  menuId: suggestWidgetStatusbarMenu,
690
- title: ( localize(1482, "Insert")),
690
+ title: ( localize(1485, "Insert")),
691
691
  group: 'left',
692
692
  order: 1,
693
693
  when: ( ContextKeyExpr.and(Context.HasInsertAndReplaceRange, ( Context.InsertMode.isEqualTo('insert'))))
694
694
  }, {
695
695
  menuId: suggestWidgetStatusbarMenu,
696
- title: ( localize(1483, "Replace")),
696
+ title: ( localize(1486, "Replace")),
697
697
  group: 'left',
698
698
  order: 1,
699
699
  when: ( ContextKeyExpr.and(Context.HasInsertAndReplaceRange, ( Context.InsertMode.isEqualTo('replace'))))
@@ -720,13 +720,13 @@ registerEditorCommand(( new SuggestCommand({
720
720
  group: 'left',
721
721
  order: 2,
722
722
  when: ( ContextKeyExpr.and(Context.HasInsertAndReplaceRange, ( Context.InsertMode.isEqualTo('insert')))),
723
- title: ( localize(1483, "Replace"))
723
+ title: ( localize(1486, "Replace"))
724
724
  }, {
725
725
  menuId: suggestWidgetStatusbarMenu,
726
726
  group: 'left',
727
727
  order: 2,
728
728
  when: ( ContextKeyExpr.and(Context.HasInsertAndReplaceRange, ( Context.InsertMode.isEqualTo('replace')))),
729
- title: ( localize(1482, "Insert"))
729
+ title: ( localize(1485, "Insert"))
730
730
  }]
731
731
  })));
732
732
  CommandsRegistry.registerCommandAlias('acceptSelectedSuggestionOnEnter', 'acceptSelectedSuggestion');
@@ -833,13 +833,13 @@ registerEditorCommand(( new SuggestCommand({
833
833
  group: 'right',
834
834
  order: 1,
835
835
  when: ( ContextKeyExpr.and(Context.DetailsVisible, Context.CanResolve)),
836
- title: ( localize(1484, "Show Less"))
836
+ title: ( localize(1487, "Show Less"))
837
837
  }, {
838
838
  menuId: suggestWidgetStatusbarMenu,
839
839
  group: 'right',
840
840
  order: 1,
841
841
  when: ( ContextKeyExpr.and(( Context.DetailsVisible.toNegated()), Context.CanResolve)),
842
- title: ( localize(1485, "Show More"))
842
+ title: ( localize(1488, "Show More"))
843
843
  }]
844
844
  })));
845
845
  registerEditorCommand(( new SuggestCommand({
@@ -897,7 +897,7 @@ registerEditorAction(class extends EditorAction {
897
897
  constructor() {
898
898
  super({
899
899
  id: 'editor.action.resetSuggestSize',
900
- label: ( localize2(1486, "Reset Suggest Widget Size")),
900
+ label: ( localize2(1489, "Reset Suggest Widget Size")),
901
901
  precondition: undefined
902
902
  });
903
903
  }
@@ -0,0 +1,67 @@
1
+ import { IPosition } from "../../../common/core/position.js";
2
+ import { ITextModel } from "../../../common/model.js";
3
+ import { CompletionItemKind } from "../../../common/languages.js";
4
+ import { CompletionItem } from "./suggest.js";
5
+ import { IConfigurationService } from "../../../../platform/configuration/common/configuration.service.js";
6
+ import { IStorageService } from "../../../../platform/storage/common/storage.service.js";
7
+ import { ISuggestMemoryService } from "./suggestMemory.service.js";
8
+ export declare abstract class Memory {
9
+ readonly name: MemMode;
10
+ constructor(name: MemMode);
11
+ select(model: ITextModel, pos: IPosition, items: CompletionItem[]): number;
12
+ abstract memorize(model: ITextModel, pos: IPosition, item: CompletionItem): void;
13
+ abstract toJSON(): object | undefined;
14
+ abstract fromJSON(data: object): void;
15
+ }
16
+ export declare class NoMemory extends Memory {
17
+ constructor();
18
+ memorize(model: ITextModel, pos: IPosition, item: CompletionItem): void;
19
+ toJSON(): undefined;
20
+ fromJSON(): void;
21
+ }
22
+ export interface MemItem {
23
+ type: string | CompletionItemKind;
24
+ insertText: string;
25
+ touch: number;
26
+ }
27
+ export declare class LRUMemory extends Memory {
28
+ constructor();
29
+ private _cache;
30
+ private _seq;
31
+ memorize(model: ITextModel, pos: IPosition, item: CompletionItem): void;
32
+ select(model: ITextModel, pos: IPosition, items: CompletionItem[]): number;
33
+ toJSON(): object;
34
+ fromJSON(data: [
35
+ string,
36
+ MemItem
37
+ ][]): void;
38
+ }
39
+ export declare class PrefixMemory extends Memory {
40
+ constructor();
41
+ private _trie;
42
+ private _seq;
43
+ memorize(model: ITextModel, pos: IPosition, item: CompletionItem): void;
44
+ select(model: ITextModel, pos: IPosition, items: CompletionItem[]): number;
45
+ toJSON(): object;
46
+ fromJSON(data: [
47
+ string,
48
+ MemItem
49
+ ][]): void;
50
+ }
51
+ export type MemMode = "first" | "recentlyUsed" | "recentlyUsedByPrefix";
52
+ export declare class SuggestMemoryService implements ISuggestMemoryService {
53
+ private readonly _storageService;
54
+ private readonly _configService;
55
+ private static readonly _strategyCtors;
56
+ private static readonly _storagePrefix;
57
+ readonly _serviceBrand: undefined;
58
+ private readonly _persistSoon;
59
+ private readonly _disposables;
60
+ private _strategy?;
61
+ constructor(_storageService: IStorageService, _configService: IConfigurationService);
62
+ dispose(): void;
63
+ memorize(model: ITextModel, pos: IPosition, item: CompletionItem): void;
64
+ select(model: ITextModel, pos: IPosition, items: CompletionItem[]): number;
65
+ private _withStrategy;
66
+ private _saveState;
67
+ }
@@ -0,0 +1,232 @@
1
+
2
+ import { __decorate, __param } from '../../../../../../../external/tslib/tslib.es6.js';
3
+ import { RunOnceScheduler } from '../../../../base/common/async.js';
4
+ import { DisposableStore } from '../../../../base/common/lifecycle.js';
5
+ import { LRUCache } from '../../../../base/common/map.js';
6
+ import { TernarySearchTree } from '../../../../base/common/ternarySearchTree.js';
7
+ import { CompletionItemKinds } from '../../../common/languages.js';
8
+ import { IConfigurationService } from '../../../../platform/configuration/common/configuration.service.js';
9
+ import '../../../../platform/instantiation/common/extensions.js';
10
+ import { WillSaveStateReason, StorageScope, StorageTarget } from '../../../../platform/storage/common/storage.js';
11
+ import { IStorageService } from '../../../../platform/storage/common/storage.service.js';
12
+ import '../../../../platform/instantiation/common/instantiation.js';
13
+
14
+ var SuggestMemoryService_1;
15
+ class Memory {
16
+ constructor(name) {
17
+ this.name = name;
18
+ }
19
+ select(model, pos, items) {
20
+ if (items.length === 0) {
21
+ return 0;
22
+ }
23
+ const topScore = items[0].score[0];
24
+ for (let i = 0; i < items.length; i++) {
25
+ const { score, completion: suggestion } = items[i];
26
+ if (score[0] !== topScore) {
27
+ break;
28
+ }
29
+ if (suggestion.preselect) {
30
+ return i;
31
+ }
32
+ }
33
+ return 0;
34
+ }
35
+ }
36
+ class NoMemory extends Memory {
37
+ constructor() {
38
+ super('first');
39
+ }
40
+ memorize(model, pos, item) {
41
+ }
42
+ toJSON() {
43
+ return undefined;
44
+ }
45
+ fromJSON() {
46
+ }
47
+ }
48
+ class LRUMemory extends Memory {
49
+ constructor() {
50
+ super('recentlyUsed');
51
+ this._cache = ( new LRUCache(300, 0.66));
52
+ this._seq = 0;
53
+ }
54
+ memorize(model, pos, item) {
55
+ const key = `${model.getLanguageId()}/${item.textLabel}`;
56
+ this._cache.set(key, {
57
+ touch: this._seq++,
58
+ type: item.completion.kind,
59
+ insertText: item.completion.insertText
60
+ });
61
+ }
62
+ select(model, pos, items) {
63
+ if (items.length === 0) {
64
+ return 0;
65
+ }
66
+ const lineSuffix = model.getLineContent(pos.lineNumber).substr(pos.column - 10, pos.column - 1);
67
+ if (/\s$/.test(lineSuffix)) {
68
+ return super.select(model, pos, items);
69
+ }
70
+ const topScore = items[0].score[0];
71
+ let indexPreselect = -1;
72
+ let indexRecency = -1;
73
+ let seq = -1;
74
+ for (let i = 0; i < items.length; i++) {
75
+ if (items[i].score[0] !== topScore) {
76
+ break;
77
+ }
78
+ const key = `${model.getLanguageId()}/${items[i].textLabel}`;
79
+ const item = this._cache.peek(key);
80
+ if (item && item.touch > seq && item.type === items[i].completion.kind && item.insertText === items[i].completion.insertText) {
81
+ seq = item.touch;
82
+ indexRecency = i;
83
+ }
84
+ if (items[i].completion.preselect && indexPreselect === -1) {
85
+ return indexPreselect = i;
86
+ }
87
+ }
88
+ if (indexRecency !== -1) {
89
+ return indexRecency;
90
+ }
91
+ else if (indexPreselect !== -1) {
92
+ return indexPreselect;
93
+ }
94
+ else {
95
+ return 0;
96
+ }
97
+ }
98
+ toJSON() {
99
+ return this._cache.toJSON();
100
+ }
101
+ fromJSON(data) {
102
+ this._cache.clear();
103
+ const seq = 0;
104
+ for (const [key, value] of data) {
105
+ value.touch = seq;
106
+ value.type = typeof value.type === 'number' ? value.type : CompletionItemKinds.fromString(value.type);
107
+ this._cache.set(key, value);
108
+ }
109
+ this._seq = this._cache.size;
110
+ }
111
+ }
112
+ class PrefixMemory extends Memory {
113
+ constructor() {
114
+ super('recentlyUsedByPrefix');
115
+ this._trie = TernarySearchTree.forStrings();
116
+ this._seq = 0;
117
+ }
118
+ memorize(model, pos, item) {
119
+ const { word } = model.getWordUntilPosition(pos);
120
+ const key = `${model.getLanguageId()}/${word}`;
121
+ this._trie.set(key, {
122
+ type: item.completion.kind,
123
+ insertText: item.completion.insertText,
124
+ touch: this._seq++
125
+ });
126
+ }
127
+ select(model, pos, items) {
128
+ const { word } = model.getWordUntilPosition(pos);
129
+ if (!word) {
130
+ return super.select(model, pos, items);
131
+ }
132
+ const key = `${model.getLanguageId()}/${word}`;
133
+ let item = this._trie.get(key);
134
+ if (!item) {
135
+ item = this._trie.findSubstr(key);
136
+ }
137
+ if (item) {
138
+ for (let i = 0; i < items.length; i++) {
139
+ const { kind, insertText } = items[i].completion;
140
+ if (kind === item.type && insertText === item.insertText) {
141
+ return i;
142
+ }
143
+ }
144
+ }
145
+ return super.select(model, pos, items);
146
+ }
147
+ toJSON() {
148
+ const entries = [];
149
+ this._trie.forEach((value, key) => entries.push([key, value]));
150
+ entries
151
+ .sort((a, b) => -(a[1].touch - b[1].touch))
152
+ .forEach((value, i) => value[1].touch = i);
153
+ return entries.slice(0, 200);
154
+ }
155
+ fromJSON(data) {
156
+ this._trie.clear();
157
+ if (data.length > 0) {
158
+ this._seq = data[0][1].touch + 1;
159
+ for (const [key, value] of data) {
160
+ value.type = typeof value.type === 'number' ? value.type : CompletionItemKinds.fromString(value.type);
161
+ this._trie.set(key, value);
162
+ }
163
+ }
164
+ }
165
+ }
166
+ let SuggestMemoryService = class SuggestMemoryService {
167
+ static { SuggestMemoryService_1 = this; }
168
+ static { this._strategyCtors = ( new Map([
169
+ ['recentlyUsedByPrefix', PrefixMemory],
170
+ ['recentlyUsed', LRUMemory],
171
+ ['first', NoMemory]
172
+ ])); }
173
+ static { this._storagePrefix = 'suggest/memories'; }
174
+ constructor(_storageService, _configService) {
175
+ this._storageService = _storageService;
176
+ this._configService = _configService;
177
+ this._disposables = ( new DisposableStore());
178
+ this._persistSoon = ( new RunOnceScheduler(() => this._saveState(), 500));
179
+ this._disposables.add(_storageService.onWillSaveState(e => {
180
+ if (e.reason === WillSaveStateReason.SHUTDOWN) {
181
+ this._saveState();
182
+ }
183
+ }));
184
+ }
185
+ dispose() {
186
+ this._disposables.dispose();
187
+ this._persistSoon.dispose();
188
+ }
189
+ memorize(model, pos, item) {
190
+ this._withStrategy(model, pos).memorize(model, pos, item);
191
+ this._persistSoon.schedule();
192
+ }
193
+ select(model, pos, items) {
194
+ return this._withStrategy(model, pos).select(model, pos, items);
195
+ }
196
+ _withStrategy(model, pos) {
197
+ const mode = this._configService.getValue('editor.suggestSelection', {
198
+ overrideIdentifier: model.getLanguageIdAtPosition(pos.lineNumber, pos.column),
199
+ resource: model.uri
200
+ });
201
+ if (this._strategy?.name !== mode) {
202
+ this._saveState();
203
+ const ctor = SuggestMemoryService_1._strategyCtors.get(mode) || NoMemory;
204
+ this._strategy = ( new ctor());
205
+ try {
206
+ const share = this._configService.getValue('editor.suggest.shareSuggestSelections');
207
+ const scope = share ? StorageScope.PROFILE : StorageScope.WORKSPACE;
208
+ const raw = this._storageService.get(`${SuggestMemoryService_1._storagePrefix}/${mode}`, scope);
209
+ if (raw) {
210
+ this._strategy.fromJSON(JSON.parse(raw));
211
+ }
212
+ }
213
+ catch (e) {
214
+ }
215
+ }
216
+ return this._strategy;
217
+ }
218
+ _saveState() {
219
+ if (this._strategy) {
220
+ const share = this._configService.getValue('editor.suggest.shareSuggestSelections');
221
+ const scope = share ? StorageScope.PROFILE : StorageScope.WORKSPACE;
222
+ const raw = JSON.stringify(this._strategy);
223
+ this._storageService.store(`${SuggestMemoryService_1._storagePrefix}/${this._strategy.name}`, raw, scope, StorageTarget.MACHINE);
224
+ }
225
+ }
226
+ };
227
+ SuggestMemoryService = SuggestMemoryService_1 = ( __decorate([
228
+ ( __param(0, IStorageService)),
229
+ ( __param(1, IConfigurationService))
230
+ ], SuggestMemoryService));
231
+
232
+ export { LRUMemory, Memory, NoMemory, PrefixMemory, SuggestMemoryService };
@@ -42,18 +42,18 @@ import { getListStyles } from '../../../../platform/theme/browser/defaultStyles.
42
42
  import { status } from '../../../../base/browser/ui/aria/aria.js';
43
43
 
44
44
  var SuggestWidget_1;
45
- registerColor('editorSuggestWidget.background', editorWidgetBackground, ( localize(1487, 'Background color of the suggest widget.')));
46
- registerColor('editorSuggestWidget.border', editorWidgetBorder, ( localize(1488, 'Border color of the suggest widget.')));
47
- const editorSuggestWidgetForeground = registerColor('editorSuggestWidget.foreground', editorForeground, ( localize(1489, 'Foreground color of the suggest widget.')));
48
- registerColor('editorSuggestWidget.selectedForeground', quickInputListFocusForeground, ( localize(1490, 'Foreground color of the selected entry in the suggest widget.')));
49
- registerColor('editorSuggestWidget.selectedIconForeground', quickInputListFocusIconForeground, ( localize(1491, 'Icon foreground color of the selected entry in the suggest widget.')));
50
- const editorSuggestWidgetSelectedBackground = registerColor('editorSuggestWidget.selectedBackground', quickInputListFocusBackground, ( localize(1492, 'Background color of the selected entry in the suggest widget.')));
51
- registerColor('editorSuggestWidget.highlightForeground', listHighlightForeground, ( localize(1493, 'Color of the match highlights in the suggest widget.')));
45
+ registerColor('editorSuggestWidget.background', editorWidgetBackground, ( localize(1490, 'Background color of the suggest widget.')));
46
+ registerColor('editorSuggestWidget.border', editorWidgetBorder, ( localize(1491, 'Border color of the suggest widget.')));
47
+ const editorSuggestWidgetForeground = registerColor('editorSuggestWidget.foreground', editorForeground, ( localize(1492, 'Foreground color of the suggest widget.')));
48
+ registerColor('editorSuggestWidget.selectedForeground', quickInputListFocusForeground, ( localize(1493, 'Foreground color of the selected entry in the suggest widget.')));
49
+ registerColor('editorSuggestWidget.selectedIconForeground', quickInputListFocusIconForeground, ( localize(1494, 'Icon foreground color of the selected entry in the suggest widget.')));
50
+ const editorSuggestWidgetSelectedBackground = registerColor('editorSuggestWidget.selectedBackground', quickInputListFocusBackground, ( localize(1495, 'Background color of the selected entry in the suggest widget.')));
51
+ registerColor('editorSuggestWidget.highlightForeground', listHighlightForeground, ( localize(1496, 'Color of the match highlights in the suggest widget.')));
52
52
  registerColor('editorSuggestWidget.focusHighlightForeground', listFocusHighlightForeground, ( localize(
53
- 1494,
53
+ 1497,
54
54
  'Color of the match highlights in the suggest widget when an item is focused.'
55
55
  )));
56
- registerColor('editorSuggestWidgetStatus.foreground', ( transparent(editorSuggestWidgetForeground, .5)), ( localize(1495, 'Foreground color of the suggest widget status.')));
56
+ registerColor('editorSuggestWidgetStatus.foreground', ( transparent(editorSuggestWidgetForeground, .5)), ( localize(1498, 'Foreground color of the suggest widget status.')));
57
57
  var State;
58
58
  (function (State) {
59
59
  State[State["Hidden"] = 0] = "Hidden";
@@ -90,8 +90,8 @@ class PersistedWidgetSize {
90
90
  }
91
91
  let SuggestWidget = class SuggestWidget {
92
92
  static { SuggestWidget_1 = this; }
93
- static { this.LOADING_MESSAGE = ( localize(1496, "Loading...")); }
94
- static { this.NO_SUGGESTIONS_MESSAGE = ( localize(1497, "No suggestions.")); }
93
+ static { this.LOADING_MESSAGE = ( localize(1499, "Loading...")); }
94
+ static { this.NO_SUGGESTIONS_MESSAGE = ( localize(1500, "No suggestions.")); }
95
95
  constructor(editor, _storageService, _contextKeyService, _themeService, instantiationService) {
96
96
  this.editor = editor;
97
97
  this._storageService = _storageService;
@@ -175,20 +175,20 @@ let SuggestWidget = class SuggestWidget {
175
175
  multipleSelectionSupport: false,
176
176
  accessibilityProvider: {
177
177
  getRole: () => 'option',
178
- getWidgetAriaLabel: () => ( localize(1498, "Suggest")),
178
+ getWidgetAriaLabel: () => ( localize(1501, "Suggest")),
179
179
  getWidgetRole: () => 'listbox',
180
180
  getAriaLabel: (item) => {
181
181
  let label = item.textLabel;
182
182
  if (typeof item.completion.label !== 'string') {
183
183
  const { detail, description } = item.completion.label;
184
184
  if (detail && description) {
185
- label = ( localize(1499, '{0} {1}, {2}', label, detail, description));
185
+ label = ( localize(1502, '{0} {1}, {2}', label, detail, description));
186
186
  }
187
187
  else if (detail) {
188
- label = ( localize(1500, '{0} {1}', label, detail));
188
+ label = ( localize(1503, '{0} {1}', label, detail));
189
189
  }
190
190
  else if (description) {
191
- label = ( localize(1501, '{0}, {1}', label, description));
191
+ label = ( localize(1504, '{0}, {1}', label, description));
192
192
  }
193
193
  }
194
194
  if (!item.isResolved || !this._isDetailsVisible()) {
@@ -196,7 +196,7 @@ let SuggestWidget = class SuggestWidget {
196
196
  }
197
197
  const { documentation, detail } = item.completion;
198
198
  const docs = format('{0}{1}', detail || '', documentation ? (typeof documentation === 'string' ? documentation : documentation.value) : '');
199
- return localize(1502, "{0}, docs: {1}", label, docs);
199
+ return localize(1505, "{0}, docs: {1}", label, docs);
200
200
  },
201
201
  }
202
202
  }));
@@ -38,7 +38,7 @@ let SuggestDetailsWidget = class SuggestDetailsWidget {
38
38
  this._disposables.add(this._scrollbar);
39
39
  this._header = append(this._body, $('.header'));
40
40
  this._close = append(this._header, $('span' + ThemeIcon.asCSSSelector(Codicon.close)));
41
- this._close.title = ( localize(1503, "Close"));
41
+ this._close.title = ( localize(1506, "Close"));
42
42
  this._close.role = 'button';
43
43
  this._close.tabIndex = -1;
44
44
  this._type = append(this._header, $('p.type'));
@@ -84,7 +84,7 @@ let SuggestDetailsWidget = class SuggestDetailsWidget {
84
84
  };
85
85
  }
86
86
  renderLoading() {
87
- this._type.textContent = ( localize(1504, "Loading..."));
87
+ this._type.textContent = ( localize(1507, "Loading..."));
88
88
  this._docs.textContent = '';
89
89
  this.domNode.classList.remove('no-docs', 'no-type');
90
90
  this.layout(this.size.width, this.getLayoutInfo().lineHeight * 2);
@@ -19,7 +19,7 @@ import { registerIcon } from '../../../../platform/theme/common/iconRegistry.js'
19
19
  import { IThemeService } from '../../../../platform/theme/common/themeService.service.js';
20
20
  import { canExpandCompletionItem } from './suggestWidgetDetails.js';
21
21
 
22
- const suggestMoreInfoIcon = registerIcon('suggest-more-info', Codicon.chevronRight, ( localize(1505, 'Icon for more information in the suggest widget.')));
22
+ const suggestMoreInfoIcon = registerIcon('suggest-more-info', Codicon.chevronRight, ( localize(1508, 'Icon for more information in the suggest widget.')));
23
23
  const _completionItemColor = new (class ColorExtractor {
24
24
  static { this._regexRelaxed = /(#([\da-fA-F]{3}){1,2}|(rgb|hsl)a\(\s*(\d{1,3}%?\s*,\s*){3}(1|0?\.\d+)\)|(rgb|hsl)\(\s*\d{1,3}%?(\s*,\s*\d{1,3}%?){2}\s*\))/; }
25
25
  static { this._regexStrict = ( new RegExp(`^${ColorExtractor._regexRelaxed.source}$`, 'i')); }
@@ -75,7 +75,7 @@ let ItemRenderer = class ItemRenderer {
75
75
  const qualifierLabel = append(left, $('span.qualifier-label'));
76
76
  const detailsLabel = append(right, $('span.details-label'));
77
77
  const readMore = append(right, $('span.readMore' + ThemeIcon.asCSSSelector(suggestMoreInfoIcon)));
78
- readMore.title = ( localize(1506, "Read More"));
78
+ readMore.title = ( localize(1509, "Read More"));
79
79
  const configureFont = () => {
80
80
  const options = this._editor.getOptions();
81
81
  const fontInfo = options.get(EditorOption.fontInfo);
@@ -9,7 +9,7 @@ var WordContextKey_1;
9
9
  let WordContextKey = class WordContextKey {
10
10
  static { WordContextKey_1 = this; }
11
11
  static { this.AtEnd = ( new RawContextKey('atEndOfWord', false, { type: 'boolean', description: ( localize(
12
- 1507,
12
+ 1510,
13
13
  "A context key that is true when at the end of a word. Note that this is only defined when tab-completions are enabled"
14
14
  )) })); }
15
15
  constructor(_editor, contextKeyService) {