monaco-editor-core 0.55.1 → 0.56.0-dev-20251122
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/nls.keys.json +1 -1
- package/esm/nls.messages.cs.js +2 -2
- package/esm/nls.messages.de.js +2 -2
- package/esm/nls.messages.es.js +2 -2
- package/esm/nls.messages.fr.js +2 -2
- package/esm/nls.messages.it.js +2 -2
- package/esm/nls.messages.ja.js +2 -2
- package/esm/nls.messages.js +1 -1
- package/esm/nls.messages.json +1 -1
- package/esm/nls.messages.ko.js +2 -2
- package/esm/nls.messages.pl.js +2 -2
- package/esm/nls.messages.pt-br.js +2 -2
- package/esm/nls.messages.ru.js +2 -2
- package/esm/nls.messages.tr.js +2 -2
- package/esm/nls.messages.zh-cn.js +2 -2
- package/esm/nls.messages.zh-tw.js +2 -2
- package/esm/nls.metadata.json +29 -8
- package/esm/vs/base/browser/dom.js +31 -34
- package/esm/vs/base/browser/dom.js.map +1 -1
- package/esm/vs/base/browser/dompurify/dompurify.js +0 -1
- package/esm/vs/base/browser/keyboardEvent.js +3 -3
- package/esm/vs/base/browser/keyboardEvent.js.map +1 -1
- package/esm/vs/base/browser/markdownRenderer.js +5 -2
- package/esm/vs/base/browser/markdownRenderer.js.map +1 -1
- package/esm/vs/base/browser/pixelRatio.js +5 -5
- package/esm/vs/base/browser/pixelRatio.js.map +1 -1
- package/esm/vs/base/browser/trustedTypes.js +1 -1
- package/esm/vs/base/browser/trustedTypes.js.map +1 -1
- package/esm/vs/base/browser/ui/actionbar/actionbar.js +3 -0
- package/esm/vs/base/browser/ui/actionbar/actionbar.js.map +1 -1
- package/esm/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
- package/esm/vs/base/browser/ui/dropdown/dropdownActionViewItem.js +7 -0
- package/esm/vs/base/browser/ui/dropdown/dropdownActionViewItem.js.map +1 -1
- package/esm/vs/base/browser/ui/hover/hoverWidget.css +0 -13
- package/esm/vs/base/browser/ui/inputbox/inputBox.js +7 -0
- package/esm/vs/base/browser/ui/inputbox/inputBox.js.map +1 -1
- package/esm/vs/base/browser/ui/keybindingLabel/keybindingLabel.css +4 -2
- package/esm/vs/base/browser/ui/list/listView.js +7 -2
- package/esm/vs/base/browser/ui/list/listView.js.map +1 -1
- package/esm/vs/base/browser/ui/list/rowCache.js +1 -4
- package/esm/vs/base/browser/ui/list/rowCache.js.map +1 -1
- package/esm/vs/base/browser/ui/menu/menu.js +14 -12
- package/esm/vs/base/browser/ui/menu/menu.js.map +1 -1
- package/esm/vs/base/browser/ui/selectBox/selectBox.js +4 -0
- package/esm/vs/base/browser/ui/selectBox/selectBox.js.map +1 -1
- package/esm/vs/base/browser/ui/selectBox/selectBoxCustom.css +12 -32
- package/esm/vs/base/browser/ui/selectBox/selectBoxCustom.js +8 -18
- package/esm/vs/base/browser/ui/selectBox/selectBoxCustom.js.map +1 -1
- package/esm/vs/base/browser/ui/toolbar/toolbar.js +41 -14
- package/esm/vs/base/browser/ui/toolbar/toolbar.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/abstractTree.js +11 -0
- package/esm/vs/base/browser/ui/tree/abstractTree.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/asyncDataTree.js +1 -0
- package/esm/vs/base/browser/ui/tree/asyncDataTree.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/compressedObjectTreeModel.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/dataTree.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/indexTreeModel.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/objectTree.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/objectTreeModel.js.map +1 -1
- package/esm/vs/base/browser/ui/tree/tree.js.map +1 -1
- package/esm/vs/base/common/arrays.js +10 -0
- package/esm/vs/base/common/arrays.js.map +1 -1
- package/esm/vs/base/common/async.js +34 -0
- package/esm/vs/base/common/async.js.map +1 -1
- package/esm/vs/base/common/buffer.js +1 -1
- package/esm/vs/base/common/buffer.js.map +1 -1
- package/esm/vs/base/common/cancellation.js.map +1 -1
- package/esm/vs/base/common/codiconsLibrary.js +3 -0
- package/esm/vs/base/common/codiconsLibrary.js.map +1 -1
- package/esm/vs/base/common/collections.js.map +1 -1
- package/esm/vs/base/common/equals.js.map +1 -1
- package/esm/vs/base/common/event.js +32 -15
- package/esm/vs/base/common/event.js.map +1 -1
- package/esm/vs/base/common/filters.js +22 -3
- package/esm/vs/base/common/filters.js.map +1 -1
- package/esm/vs/base/common/hotReload.js +2 -2
- package/esm/vs/base/common/hotReload.js.map +1 -1
- package/esm/vs/base/common/iterator.js +1 -1
- package/esm/vs/base/common/iterator.js.map +1 -1
- package/esm/vs/base/common/keyCodes.js +7 -6
- package/esm/vs/base/common/keyCodes.js.map +1 -1
- package/esm/vs/base/common/linkedList.js.map +1 -1
- package/esm/vs/base/common/map.js +8 -5
- package/esm/vs/base/common/map.js.map +1 -1
- package/esm/vs/base/common/marked/marked.js +0 -1
- package/esm/vs/base/common/network.js +26 -1
- package/esm/vs/base/common/network.js.map +1 -1
- package/esm/vs/base/common/normalization.js +19 -6
- package/esm/vs/base/common/normalization.js.map +1 -1
- package/esm/vs/base/common/observableInternal/debugLocation.js +1 -2
- package/esm/vs/base/common/observableInternal/debugLocation.js.map +1 -1
- package/esm/vs/base/common/observableInternal/debugName.js +0 -1
- package/esm/vs/base/common/observableInternal/debugName.js.map +1 -1
- package/esm/vs/base/common/observableInternal/index.js +4 -4
- package/esm/vs/base/common/observableInternal/index.js.map +1 -1
- package/esm/vs/base/common/observableInternal/logging/debugGetDependencyGraph.js +38 -10
- package/esm/vs/base/common/observableInternal/logging/debugGetDependencyGraph.js.map +1 -1
- package/esm/vs/base/common/observableInternal/observables/baseObservable.js +3 -3
- package/esm/vs/base/common/observableInternal/observables/baseObservable.js.map +1 -1
- package/esm/vs/base/common/observableInternal/observables/derivedImpl.js +1 -4
- package/esm/vs/base/common/observableInternal/observables/derivedImpl.js.map +1 -1
- package/esm/vs/base/common/observableInternal/utils/utils.js +46 -5
- package/esm/vs/base/common/observableInternal/utils/utils.js.map +1 -1
- package/esm/vs/base/common/path.js +1 -0
- package/esm/vs/base/common/path.js.map +1 -1
- package/esm/vs/base/common/strings.js +27 -19
- package/esm/vs/base/common/strings.js.map +1 -1
- package/esm/vs/base/common/worker/webWorker.js +10 -7
- package/esm/vs/base/common/worker/webWorker.js.map +1 -1
- package/esm/vs/editor/browser/config/elementSizeObserver.js +5 -5
- package/esm/vs/editor/browser/config/elementSizeObserver.js.map +1 -1
- package/esm/vs/editor/browser/config/fontMeasurements.js.map +1 -1
- package/esm/vs/editor/browser/config/migrateOptions.js +6 -0
- package/esm/vs/editor/browser/config/migrateOptions.js.map +1 -1
- package/esm/vs/editor/browser/config/tabFocus.js +4 -2
- package/esm/vs/editor/browser/config/tabFocus.js.map +1 -1
- package/esm/vs/editor/browser/controller/editContext/native/nativeEditContext.js +8 -0
- package/esm/vs/editor/browser/controller/editContext/native/nativeEditContext.js.map +1 -1
- package/esm/vs/editor/browser/coreCommands.js +1 -2
- package/esm/vs/editor/browser/coreCommands.js.map +1 -1
- package/esm/vs/editor/browser/editorBrowser.js.map +1 -1
- package/esm/vs/editor/browser/observableCodeEditor.js +32 -1
- package/esm/vs/editor/browser/observableCodeEditor.js.map +1 -1
- package/esm/vs/editor/browser/services/contribution.js +9 -0
- package/esm/vs/editor/browser/services/contribution.js.map +1 -0
- package/esm/vs/editor/browser/services/editorWorkerService.js +27 -14
- package/esm/vs/editor/browser/services/editorWorkerService.js.map +1 -1
- package/esm/vs/editor/browser/services/openerService.js +5 -1
- package/esm/vs/editor/browser/services/openerService.js.map +1 -1
- package/esm/vs/editor/browser/view/domLineBreaksComputer.js +1 -1
- package/esm/vs/editor/browser/view/domLineBreaksComputer.js.map +1 -1
- package/esm/vs/editor/browser/view/renderingContext.js +1 -1
- package/esm/vs/editor/browser/view/renderingContext.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.js +10 -3
- package/esm/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js +3 -4
- package/esm/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/minimap/minimap.js +1 -1
- package/esm/vs/editor/browser/viewParts/minimap/minimap.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.js +1 -1
- package/esm/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/overviewRuler/overviewRuler.js +4 -2
- package/esm/vs/editor/browser/viewParts/overviewRuler/overviewRuler.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/rulers/rulers.js +1 -3
- package/esm/vs/editor/browser/viewParts/rulers/rulers.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.js +1 -1
- package/esm/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/viewLines/domReadingContext.js +2 -1
- package/esm/vs/editor/browser/viewParts/viewLines/domReadingContext.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/viewLines/viewLines.js +6 -18
- package/esm/vs/editor/browser/viewParts/viewLines/viewLines.js.map +1 -1
- package/esm/vs/editor/browser/viewParts/whitespace/whitespace.js +0 -7
- package/esm/vs/editor/browser/viewParts/whitespace/whitespace.js.map +1 -1
- package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js +7 -2
- package/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js.map +1 -1
- package/esm/vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature.js +1 -0
- package/esm/vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature.js.map +1 -1
- package/esm/vs/editor/common/commands/replaceCommand.js +2 -2
- package/esm/vs/editor/common/commands/replaceCommand.js.map +1 -1
- package/esm/vs/editor/common/config/editorOptions.js +374 -360
- package/esm/vs/editor/common/config/editorOptions.js.map +1 -1
- package/esm/vs/editor/common/core/2d/rect.js +7 -0
- package/esm/vs/editor/common/core/2d/rect.js.map +1 -1
- package/esm/vs/editor/common/core/2d/size.js +20 -0
- package/esm/vs/editor/common/core/2d/size.js.map +1 -0
- package/esm/vs/editor/common/core/editorColorRegistry.js +69 -68
- package/esm/vs/editor/common/core/editorColorRegistry.js.map +1 -1
- package/esm/vs/editor/common/core/ranges/offsetRange.js +9 -0
- package/esm/vs/editor/common/core/ranges/offsetRange.js.map +1 -1
- package/esm/vs/editor/common/cursor/cursorMoveCommands.js +4 -4
- package/esm/vs/editor/common/cursor/cursorMoveCommands.js.map +1 -1
- package/esm/vs/editor/common/editorContextKeys.js +47 -47
- package/esm/vs/editor/common/languages/modesRegistry.js +1 -1
- package/esm/vs/editor/common/languages.js +56 -56
- package/esm/vs/editor/common/languages.js.map +1 -1
- package/esm/vs/editor/common/model/editStack.js +1 -1
- package/esm/vs/editor/common/services/languagesAssociations.js +6 -8
- package/esm/vs/editor/common/services/languagesAssociations.js.map +1 -1
- package/esm/vs/editor/common/standaloneStrings.js +11 -10
- package/esm/vs/editor/common/standaloneStrings.js.map +1 -1
- package/esm/vs/editor/common/textModelEditSource.js +1 -1
- package/esm/vs/editor/common/textModelEditSource.js.map +1 -1
- package/esm/vs/editor/common/viewLayout/viewLineRenderer.js +2 -2
- package/esm/vs/editor/contrib/anchorSelect/browser/anchorSelect.js +6 -6
- package/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js +6 -6
- package/esm/vs/editor/contrib/caretOperations/browser/caretOperations.js +2 -2
- package/esm/vs/editor/contrib/caretOperations/browser/transpose.js +1 -1
- package/esm/vs/editor/contrib/clipboard/browser/clipboard.js +17 -17
- package/esm/vs/editor/contrib/codeAction/browser/codeAction.js +1 -1
- package/esm/vs/editor/contrib/codeAction/browser/codeActionCommands.js +29 -29
- package/esm/vs/editor/contrib/codeAction/browser/codeActionContributions.js +3 -3
- package/esm/vs/editor/contrib/codeAction/browser/codeActionController.js +3 -3
- package/esm/vs/editor/contrib/codeAction/browser/codeActionMenu.js +8 -8
- package/esm/vs/editor/contrib/codeAction/browser/lightBulbWidget.js +9 -9
- package/esm/vs/editor/contrib/codelens/browser/codelens.js.map +1 -1
- package/esm/vs/editor/contrib/codelens/browser/codelensController.js +2 -2
- package/esm/vs/editor/contrib/codelens/browser/codelensController.js.map +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerCloseButton.js +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerHeader.js +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerParticipant.js +1 -1
- package/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerActions.js +7 -7
- package/esm/vs/editor/contrib/comment/browser/comment.js +6 -6
- package/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js +10 -10
- package/esm/vs/editor/contrib/cursorUndo/browser/cursorUndo.js +2 -2
- package/esm/vs/editor/contrib/diffEditorBreadcrumbs/browser/contribution.js +14 -0
- package/esm/vs/editor/contrib/diffEditorBreadcrumbs/browser/contribution.js.map +1 -1
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +4 -4
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +9 -9
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +8 -8
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +3 -3
- package/esm/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js +2 -2
- package/esm/vs/editor/contrib/editorState/browser/keybindingCancellation.js +1 -1
- package/esm/vs/editor/contrib/find/browser/findController.js +17 -17
- package/esm/vs/editor/contrib/find/browser/findController.js.map +1 -1
- package/esm/vs/editor/contrib/find/browser/findWidget.js +26 -26
- package/esm/vs/editor/contrib/find/browser/findWidgetSearchHistory.js.map +1 -1
- package/esm/vs/editor/contrib/find/browser/replaceWidgetHistory.js.map +1 -1
- package/esm/vs/editor/contrib/floatingMenu/browser/floatingMenu.css +1 -1
- package/esm/vs/editor/contrib/folding/browser/folding.js +20 -20
- package/esm/vs/editor/contrib/folding/browser/folding.js.map +1 -1
- package/esm/vs/editor/contrib/folding/browser/foldingDecorations.js +9 -9
- package/esm/vs/editor/contrib/fontZoom/browser/fontZoom.js +3 -3
- package/esm/vs/editor/contrib/format/browser/format.js +21 -6
- package/esm/vs/editor/contrib/format/browser/format.js.map +1 -1
- package/esm/vs/editor/contrib/format/browser/formatActions.js +2 -2
- package/esm/vs/editor/contrib/gotoError/browser/gotoError.js +8 -8
- package/esm/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js +14 -14
- package/esm/vs/editor/contrib/gotoSymbol/browser/goToCommands.js +39 -39
- package/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js +1 -1
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js +3 -3
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesTree.js +3 -3
- package/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js +3 -3
- package/esm/vs/editor/contrib/gotoSymbol/browser/referencesModel.js +8 -8
- package/esm/vs/editor/contrib/gotoSymbol/browser/symbolNavigation.js +3 -3
- package/esm/vs/editor/contrib/gpu/browser/gpuActions.js +4 -4
- package/esm/vs/editor/contrib/hover/browser/contentHoverController.js +5 -10
- package/esm/vs/editor/contrib/hover/browser/contentHoverController.js.map +1 -1
- package/esm/vs/editor/contrib/hover/browser/glyphHoverController.js +11 -6
- package/esm/vs/editor/contrib/hover/browser/glyphHoverController.js.map +1 -1
- package/esm/vs/editor/contrib/hover/browser/hoverActionIds.js +2 -2
- package/esm/vs/editor/contrib/hover/browser/hoverActions.js +24 -24
- package/esm/vs/editor/contrib/hover/browser/hoverCopyButton.js +2 -2
- package/esm/vs/editor/contrib/hover/browser/hoverUtils.js +24 -0
- package/esm/vs/editor/contrib/hover/browser/hoverUtils.js.map +1 -1
- package/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js +9 -9
- package/esm/vs/editor/contrib/hover/browser/markerHoverParticipant.js +5 -5
- package/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
- package/esm/vs/editor/contrib/indentation/browser/indentation.js +20 -20
- package/esm/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js +8 -8
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +20 -20
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +12 -12
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +18 -16
- package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +2 -2
- package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +5 -5
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +42 -37
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineEdit.js +3 -3
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineEdit.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineSuggestionItem.js +8 -8
- package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineSuggestionItem.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js +54 -43
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +12 -12
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js +74 -48
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js +8 -36
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsNewUsers.js +10 -11
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsNewUsers.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js +105 -119
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewInterface.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewProducer.js +8 -36
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewProducer.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/debugVisualization.js +95 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/debugVisualization.js.map +1 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsInsertionView.js +17 -9
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsInsertionView.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/inlineEditsLongDistanceHint.js +428 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/inlineEditsLongDistanceHint.js.map +1 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/longDistancePreviewEditor.js +290 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/longDistanceHint/longDistancePreviewEditor.js.map +1 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +20 -20
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/flexBoxLayout.js +103 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/flexBoxLayout.js.map +1 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/towersLayout.js +32 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/towersLayout.js.map +1 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/utils.js +44 -11
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/utils.js.map +1 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/view.css +10 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineSuggestionsView.js +181 -0
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineSuggestionsView.js.map +1 -0
- package/esm/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js +1 -1
- package/esm/vs/editor/contrib/lineSelection/browser/lineSelection.js +1 -1
- package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js +32 -31
- package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js.map +1 -1
- package/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +2 -2
- package/esm/vs/editor/contrib/links/browser/links.js +10 -10
- package/esm/vs/editor/contrib/message/browser/messageController.js +1 -1
- package/esm/vs/editor/contrib/multicursor/browser/multicursor.js +22 -22
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
- package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +4 -4
- package/esm/vs/editor/contrib/peekView/browser/peekView.js +18 -18
- package/esm/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
- package/esm/vs/editor/contrib/quickAccess/browser/editorNavigationQuickAccess.js +2 -2
- package/esm/vs/editor/contrib/quickAccess/browser/editorNavigationQuickAccess.js.map +1 -1
- package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +18 -13
- package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js.map +1 -1
- package/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +32 -32
- package/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +2 -2
- package/esm/vs/editor/contrib/rename/browser/rename.js +12 -12
- package/esm/vs/editor/contrib/rename/browser/rename.js.map +1 -1
- package/esm/vs/editor/contrib/rename/browser/renameWidget.js +7 -7
- package/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js +4 -4
- package/esm/vs/editor/contrib/snippet/browser/snippetController2.js +4 -4
- package/esm/vs/editor/contrib/snippet/browser/snippetVariables.js +4 -4
- package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
- package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js +1 -1
- package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js.map +1 -1
- package/esm/vs/editor/contrib/suggest/browser/suggest.js +8 -8
- package/esm/vs/editor/contrib/suggest/browser/suggestController.js +10 -10
- package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js +17 -17
- package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +2 -2
- package/esm/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +2 -2
- package/esm/vs/editor/contrib/suggest/browser/wordContextKey.js +1 -1
- package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
- package/esm/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
- package/esm/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +29 -29
- package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js.map +1 -1
- package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +5 -5
- package/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
- package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +4 -4
- package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js.map +1 -1
- package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js +1 -1
- package/esm/vs/editor/editor.all.js +1 -0
- package/esm/vs/editor/editor.all.js.map +1 -1
- package/esm/vs/editor/editor.api.d.ts +9 -5
- package/esm/vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.js +22 -2
- package/esm/vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.js.map +1 -1
- package/esm/vs/editor/standalone/browser/services/standaloneWebWorkerService.js +39 -0
- package/esm/vs/editor/standalone/browser/services/standaloneWebWorkerService.js.map +1 -0
- package/esm/vs/editor/standalone/browser/standaloneEditor.js +2 -1
- package/esm/vs/editor/standalone/browser/standaloneEditor.js.map +1 -1
- package/esm/vs/editor/standalone/browser/standaloneServices.js +3 -21
- package/esm/vs/editor/standalone/browser/standaloneServices.js.map +1 -1
- package/esm/vs/editor/standalone/browser/standaloneWebWorker.js +4 -4
- package/esm/vs/editor/standalone/browser/standaloneWebWorker.js.map +1 -1
- package/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +62 -62
- package/esm/vs/platform/action/common/actionCommonCategories.js +6 -6
- package/esm/vs/platform/actionWidget/browser/actionList.js +4 -4
- package/esm/vs/platform/actionWidget/browser/actionWidget.css +7 -0
- package/esm/vs/platform/actionWidget/browser/actionWidget.js +7 -7
- package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js +7 -9
- package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js.map +1 -1
- package/esm/vs/platform/actions/browser/toolbar.js +2 -2
- package/esm/vs/platform/actions/common/actions.js +2 -0
- package/esm/vs/platform/actions/common/actions.js.map +1 -1
- package/esm/vs/platform/actions/common/menuService.js +2 -2
- package/esm/vs/platform/configuration/common/configuration.js +5 -4
- package/esm/vs/platform/configuration/common/configuration.js.map +1 -1
- package/esm/vs/platform/configuration/common/configurationModels.js +21 -10
- package/esm/vs/platform/configuration/common/configurationModels.js.map +1 -1
- package/esm/vs/platform/configuration/common/configurationRegistry.js +10 -10
- package/esm/vs/platform/configuration/common/configurationRegistry.js.map +1 -1
- package/esm/vs/platform/configuration/common/configurations.js.map +1 -1
- package/esm/vs/platform/contextkey/browser/contextKeyService.js +3 -3
- package/esm/vs/platform/contextkey/browser/contextKeyService.js.map +1 -1
- package/esm/vs/platform/contextkey/common/contextkey.js +9 -9
- package/esm/vs/platform/contextkey/common/contextkeys.js +9 -9
- package/esm/vs/platform/contextkey/common/scanner.js +5 -5
- package/esm/vs/platform/contextview/browser/contextViewService.js.map +1 -1
- package/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
- package/esm/vs/platform/hover/browser/hoverService.js +17 -8
- package/esm/vs/platform/hover/browser/hoverService.js.map +1 -1
- package/esm/vs/platform/hover/browser/hoverWidget.js +1 -1
- package/esm/vs/platform/hover/browser/updatableHoverWidget.js +1 -1
- package/esm/vs/platform/keybinding/common/abstractKeybindingService.js +4 -4
- package/esm/vs/platform/list/browser/listService.js +27 -27
- package/esm/vs/platform/list/browser/listService.js.map +1 -1
- package/esm/vs/platform/markers/common/markerService.js +2 -2
- package/esm/vs/platform/markers/common/markers.js +6 -6
- package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +51 -39
- package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/helpQuickAccess.js +1 -1
- package/esm/vs/platform/quickinput/browser/media/quickInput.css +9 -3
- package/esm/vs/platform/quickinput/browser/quickInput.js +10 -10
- package/esm/vs/platform/quickinput/browser/quickInputActions.js +5 -5
- package/esm/vs/platform/quickinput/browser/quickInputController.js +35 -14
- package/esm/vs/platform/quickinput/browser/quickInputController.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/quickInputList.js +4 -1
- package/esm/vs/platform/quickinput/browser/quickInputList.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/quickInputUtils.js +1 -1
- package/esm/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js +1 -1
- package/esm/vs/platform/quickinput/browser/tree/quickInputTreeController.js +78 -39
- package/esm/vs/platform/quickinput/browser/tree/quickInputTreeController.js.map +1 -1
- package/esm/vs/platform/quickinput/browser/tree/quickInputTreeRenderer.js +21 -8
- package/esm/vs/platform/quickinput/browser/tree/quickInputTreeRenderer.js.map +1 -1
- package/esm/vs/platform/telemetry/common/gdprTypings.js.map +1 -1
- package/esm/vs/platform/telemetry/common/telemetry.js.map +1 -1
- package/esm/vs/platform/theme/common/colorUtils.js +2 -2
- package/esm/vs/platform/theme/common/colors/baseColors.js +17 -17
- package/esm/vs/platform/theme/common/colors/chartsColors.js +8 -8
- package/esm/vs/platform/theme/common/colors/editorColors.js +95 -95
- package/esm/vs/platform/theme/common/colors/editorColors.js.map +1 -1
- package/esm/vs/platform/theme/common/colors/inputColors.js +47 -47
- package/esm/vs/platform/theme/common/colors/listColors.js +36 -36
- package/esm/vs/platform/theme/common/colors/menuColors.js +7 -7
- package/esm/vs/platform/theme/common/colors/minimapColors.js +11 -11
- package/esm/vs/platform/theme/common/colors/miscColors.js +16 -16
- package/esm/vs/platform/theme/common/colors/miscColors.js.map +1 -1
- package/esm/vs/platform/theme/common/colors/quickpickColors.js +9 -9
- package/esm/vs/platform/theme/common/colors/searchColors.js +3 -3
- package/esm/vs/platform/theme/common/iconRegistry.js +6 -6
- package/esm/vs/platform/undoRedo/common/undoRedoService.js +20 -20
- package/esm/vs/platform/webWorker/browser/webWorkerDescriptor.js +12 -0
- package/esm/vs/platform/webWorker/browser/webWorkerDescriptor.js.map +1 -0
- package/esm/vs/platform/webWorker/browser/webWorkerService.js +7 -0
- package/esm/vs/platform/webWorker/browser/webWorkerService.js.map +1 -0
- package/esm/vs/{base/browser/webWorkerFactory.js → platform/webWorker/browser/webWorkerServiceImpl.js} +47 -66
- package/esm/vs/platform/webWorker/browser/webWorkerServiceImpl.js.map +1 -0
- package/esm/vs/platform/workspace/common/workspace.js +1 -1
- package/monaco.d.ts +9 -5
- package/package.json +2 -2
- package/esm/vs/base/browser/webWorkerFactory.js.map +0 -1
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineCompletionsView.js +0 -82
- package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineCompletionsView.js.map +0 -1
|
@@ -12,12 +12,14 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
12
12
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
13
|
};
|
|
14
14
|
var AbstractCommandsQuickAccessProvider_1, CommandsHistory_1;
|
|
15
|
+
import { Codicon } from '../../../base/common/codicons.js';
|
|
15
16
|
import { toErrorMessage } from '../../../base/common/errorMessage.js';
|
|
16
17
|
import { isCancellationError } from '../../../base/common/errors.js';
|
|
17
|
-
import {
|
|
18
|
+
import { matchesBaseContiguousSubString, matchesWords, or } from '../../../base/common/filters.js';
|
|
18
19
|
import { createSingleCallFunction } from '../../../base/common/functional.js';
|
|
19
20
|
import { Disposable } from '../../../base/common/lifecycle.js';
|
|
20
21
|
import { LRUCache } from '../../../base/common/map.js';
|
|
22
|
+
import { ThemeIcon } from '../../../base/common/themables.js';
|
|
21
23
|
import { TfIdfCalculator, normalizeTfIdfScores } from '../../../base/common/tfIdf.js';
|
|
22
24
|
import { localize } from '../../../nls.js';
|
|
23
25
|
import { ICommandService } from '../../commands/common/commands.js';
|
|
@@ -26,17 +28,16 @@ import { IDialogService } from '../../dialogs/common/dialogs.js';
|
|
|
26
28
|
import { IInstantiationService } from '../../instantiation/common/instantiation.js';
|
|
27
29
|
import { IKeybindingService } from '../../keybinding/common/keybinding.js';
|
|
28
30
|
import { ILogService } from '../../log/common/log.js';
|
|
29
|
-
import { PickerQuickAccessProvider } from './pickerQuickAccess.js';
|
|
31
|
+
import { PickerQuickAccessProvider, TriggerAction } from './pickerQuickAccess.js';
|
|
30
32
|
import { IStorageService, WillSaveStateReason } from '../../storage/common/storage.js';
|
|
31
33
|
import { ITelemetryService } from '../../telemetry/common/telemetry.js';
|
|
32
|
-
import { removeAccents } from '../../../base/common/normalization.js';
|
|
33
34
|
import { Categories } from '../../action/common/actionCommonCategories.js';
|
|
34
35
|
let AbstractCommandsQuickAccessProvider = class AbstractCommandsQuickAccessProvider extends PickerQuickAccessProvider {
|
|
35
36
|
static { AbstractCommandsQuickAccessProvider_1 = this; }
|
|
36
37
|
static { this.PREFIX = '>'; }
|
|
37
38
|
static { this.TFIDF_THRESHOLD = 0.5; }
|
|
38
39
|
static { this.TFIDF_MAX_RESULTS = 5; }
|
|
39
|
-
static { this.WORD_FILTER = or(
|
|
40
|
+
static { this.WORD_FILTER = or(matchesBaseContiguousSubString, matchesWords); }
|
|
40
41
|
constructor(options, instantiationService, keybindingService, commandService, telemetryService, dialogService) {
|
|
41
42
|
super(AbstractCommandsQuickAccessProvider_1.PREFIX, options);
|
|
42
43
|
this.keybindingService = keybindingService;
|
|
@@ -63,16 +64,13 @@ let AbstractCommandsQuickAccessProvider = class AbstractCommandsQuickAccessProvi
|
|
|
63
64
|
.filter(score => score.score > AbstractCommandsQuickAccessProvider_1.TFIDF_THRESHOLD)
|
|
64
65
|
.slice(0, AbstractCommandsQuickAccessProvider_1.TFIDF_MAX_RESULTS);
|
|
65
66
|
});
|
|
66
|
-
const noAccentsFilter = this.normalizeForFiltering(filter);
|
|
67
67
|
// Filter
|
|
68
68
|
const filteredCommandPicks = [];
|
|
69
69
|
for (const commandPick of allCommandPicks) {
|
|
70
|
-
|
|
71
|
-
const labelHighlights = AbstractCommandsQuickAccessProvider_1.WORD_FILTER(noAccentsFilter, commandPick.labelNoAccents) ?? undefined;
|
|
70
|
+
const labelHighlights = AbstractCommandsQuickAccessProvider_1.WORD_FILTER(filter, commandPick.label) ?? undefined;
|
|
72
71
|
let aliasHighlights;
|
|
73
72
|
if (commandPick.commandAlias) {
|
|
74
|
-
|
|
75
|
-
aliasHighlights = AbstractCommandsQuickAccessProvider_1.WORD_FILTER(noAccentsFilter, commandPick.aliasNoAccents) ?? undefined;
|
|
73
|
+
aliasHighlights = AbstractCommandsQuickAccessProvider_1.WORD_FILTER(filter, commandPick.commandAlias) ?? undefined;
|
|
76
74
|
}
|
|
77
75
|
// Add if matching in label or alias
|
|
78
76
|
if (labelHighlights || aliasHighlights) {
|
|
@@ -169,28 +167,29 @@ let AbstractCommandsQuickAccessProvider = class AbstractCommandsQuickAccessProvi
|
|
|
169
167
|
let addCommonlyUsedSeparator = !!this.options.suggestedCommandIds;
|
|
170
168
|
for (let i = 0; i < filteredCommandPicks.length; i++) {
|
|
171
169
|
const commandPick = filteredCommandPicks[i];
|
|
170
|
+
const isInHistory = !!this.commandsHistory.peek(commandPick.commandId);
|
|
172
171
|
// Separator: recently used
|
|
173
|
-
if (i === 0 &&
|
|
174
|
-
commandPicks.push({ type: 'separator', label: localize(
|
|
172
|
+
if (i === 0 && isInHistory) {
|
|
173
|
+
commandPicks.push({ type: 'separator', label: localize(1747, "recently used") });
|
|
175
174
|
addOtherSeparator = true;
|
|
176
175
|
}
|
|
177
176
|
if (addSuggestedSeparator && commandPick.tfIdfScore !== undefined) {
|
|
178
|
-
commandPicks.push({ type: 'separator', label: localize(
|
|
177
|
+
commandPicks.push({ type: 'separator', label: localize(1748, "similar commands") });
|
|
179
178
|
addSuggestedSeparator = false;
|
|
180
179
|
}
|
|
181
180
|
// Separator: commonly used
|
|
182
|
-
if (addCommonlyUsedSeparator && commandPick.tfIdfScore === undefined && !
|
|
183
|
-
commandPicks.push({ type: 'separator', label: localize(
|
|
181
|
+
if (addCommonlyUsedSeparator && commandPick.tfIdfScore === undefined && !isInHistory && this.options.suggestedCommandIds?.has(commandPick.commandId)) {
|
|
182
|
+
commandPicks.push({ type: 'separator', label: localize(1749, "commonly used") });
|
|
184
183
|
addOtherSeparator = true;
|
|
185
184
|
addCommonlyUsedSeparator = false;
|
|
186
185
|
}
|
|
187
186
|
// Separator: other commands
|
|
188
|
-
if (addOtherSeparator && commandPick.tfIdfScore === undefined && !
|
|
189
|
-
commandPicks.push({ type: 'separator', label: localize(
|
|
187
|
+
if (addOtherSeparator && commandPick.tfIdfScore === undefined && !isInHistory && !this.options.suggestedCommandIds?.has(commandPick.commandId)) {
|
|
188
|
+
commandPicks.push({ type: 'separator', label: localize(1750, "other commands") });
|
|
190
189
|
addOtherSeparator = false;
|
|
191
190
|
}
|
|
192
191
|
// Command
|
|
193
|
-
commandPicks.push(this.toCommandPick(commandPick, runOptions));
|
|
192
|
+
commandPicks.push(this.toCommandPick(commandPick, runOptions, isInHistory));
|
|
194
193
|
}
|
|
195
194
|
if (!this.hasAdditionalCommandPicks(filter, token)) {
|
|
196
195
|
return commandPicks;
|
|
@@ -206,25 +205,35 @@ let AbstractCommandsQuickAccessProvider = class AbstractCommandsQuickAccessProvi
|
|
|
206
205
|
// Basically, if we haven't already added a separator, we add one before the additional picks so long
|
|
207
206
|
// as one hasn't been added to the start of the array.
|
|
208
207
|
if (addSuggestedSeparator && commandPicks[0]?.type !== 'separator') {
|
|
209
|
-
commandPicks.unshift({ type: 'separator', label: localize(
|
|
208
|
+
commandPicks.unshift({ type: 'separator', label: localize(1751, "similar commands") });
|
|
210
209
|
}
|
|
211
210
|
return commandPicks;
|
|
212
211
|
})()
|
|
213
212
|
};
|
|
214
213
|
}
|
|
215
|
-
toCommandPick(commandPick, runOptions) {
|
|
214
|
+
toCommandPick(commandPick, runOptions, isRecentlyUsed = false) {
|
|
216
215
|
if (commandPick.type === 'separator') {
|
|
217
216
|
return commandPick;
|
|
218
217
|
}
|
|
219
218
|
const keybinding = this.keybindingService.lookupKeybinding(commandPick.commandId);
|
|
220
219
|
const ariaLabel = keybinding ?
|
|
221
|
-
localize(
|
|
220
|
+
localize(1752, "{0}, {1}", commandPick.label, keybinding.getAriaLabel()) :
|
|
222
221
|
commandPick.label;
|
|
222
|
+
// Add remove button for recently used items (as the last button, to the right)
|
|
223
|
+
const existingButtons = commandPick.buttons || [];
|
|
224
|
+
const buttons = isRecentlyUsed ? [
|
|
225
|
+
...existingButtons,
|
|
226
|
+
{
|
|
227
|
+
iconClass: ThemeIcon.asClassName(Codicon.close),
|
|
228
|
+
tooltip: localize(1753, "Remove from Recently Used")
|
|
229
|
+
}
|
|
230
|
+
] : commandPick.buttons;
|
|
223
231
|
return {
|
|
224
232
|
...commandPick,
|
|
225
233
|
ariaLabel,
|
|
226
234
|
detail: this.options.showAlias && commandPick.commandAlias !== commandPick.label ? commandPick.commandAlias : undefined,
|
|
227
235
|
keybinding,
|
|
236
|
+
buttons,
|
|
228
237
|
accept: async () => {
|
|
229
238
|
// Add to history
|
|
230
239
|
this.commandsHistory.push(commandPick.commandId);
|
|
@@ -241,10 +250,23 @@ let AbstractCommandsQuickAccessProvider = class AbstractCommandsQuickAccessProvi
|
|
|
241
250
|
}
|
|
242
251
|
catch (error) {
|
|
243
252
|
if (!isCancellationError(error)) {
|
|
244
|
-
this.dialogService.error(localize(
|
|
253
|
+
this.dialogService.error(localize(1754, "Command '{0}' resulted in an error", commandPick.label), toErrorMessage(error));
|
|
245
254
|
}
|
|
246
255
|
}
|
|
247
|
-
}
|
|
256
|
+
},
|
|
257
|
+
trigger: isRecentlyUsed ? (buttonIndex, keyMods) => {
|
|
258
|
+
// The remove button is now the last button
|
|
259
|
+
const removeButtonIndex = existingButtons.length;
|
|
260
|
+
if (buttonIndex === removeButtonIndex) {
|
|
261
|
+
this.commandsHistory.remove(commandPick.commandId);
|
|
262
|
+
return TriggerAction.REMOVE_ITEM;
|
|
263
|
+
}
|
|
264
|
+
// Handle other buttons (e.g., configure keybinding button)
|
|
265
|
+
if (commandPick.trigger) {
|
|
266
|
+
return commandPick.trigger(buttonIndex, keyMods);
|
|
267
|
+
}
|
|
268
|
+
return TriggerAction.NO_ACTION;
|
|
269
|
+
} : commandPick.trigger
|
|
248
270
|
};
|
|
249
271
|
}
|
|
250
272
|
// TF-IDF string to be indexed
|
|
@@ -259,23 +281,6 @@ let AbstractCommandsQuickAccessProvider = class AbstractCommandsQuickAccessProvi
|
|
|
259
281
|
}
|
|
260
282
|
return chunk;
|
|
261
283
|
}
|
|
262
|
-
/**
|
|
263
|
-
* Normalizes a string for filtering by removing accents, but only if
|
|
264
|
-
* the result has the same length, otherwise returns the original string.
|
|
265
|
-
*/
|
|
266
|
-
normalizeForFiltering(value) {
|
|
267
|
-
const withoutAccents = removeAccents(value);
|
|
268
|
-
if (withoutAccents.length !== value.length) {
|
|
269
|
-
this.telemetryService.publicLog2('QuickAccess:FilterLengthMismatch', {
|
|
270
|
-
originalLength: value.length,
|
|
271
|
-
normalizedLength: withoutAccents.length
|
|
272
|
-
});
|
|
273
|
-
return value;
|
|
274
|
-
}
|
|
275
|
-
else {
|
|
276
|
-
return withoutAccents;
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
284
|
};
|
|
280
285
|
AbstractCommandsQuickAccessProvider = AbstractCommandsQuickAccessProvider_1 = __decorate([
|
|
281
286
|
__param(1, IInstantiationService),
|
|
@@ -357,6 +362,13 @@ let CommandsHistory = class CommandsHistory extends Disposable {
|
|
|
357
362
|
peek(commandId) {
|
|
358
363
|
return CommandsHistory_1.cache?.peek(commandId);
|
|
359
364
|
}
|
|
365
|
+
remove(commandId) {
|
|
366
|
+
if (!CommandsHistory_1.cache) {
|
|
367
|
+
return;
|
|
368
|
+
}
|
|
369
|
+
CommandsHistory_1.cache.delete(commandId);
|
|
370
|
+
CommandsHistory_1.hasChanges = true;
|
|
371
|
+
}
|
|
360
372
|
saveState() {
|
|
361
373
|
if (!CommandsHistory_1.cache) {
|
|
362
374
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["vs/platform/quickinput/browser/commandsQuickAccess.ts"],"names":[],"mappings":"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","file":"commandsQuickAccess.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 { WorkbenchActionExecutedClassification, WorkbenchActionExecutedEvent } from '../../../base/common/actions.js';\nimport { CancellationToken } from '../../../base/common/cancellation.js';\nimport { toErrorMessage } from '../../../base/common/errorMessage.js';\nimport { isCancellationError } from '../../../base/common/errors.js';\nimport { IMatch, matchesContiguousSubString, matchesPrefix, matchesWords, or } from '../../../base/common/filters.js';\nimport { createSingleCallFunction } from '../../../base/common/functional.js';\nimport { Disposable, DisposableStore, IDisposable } from '../../../base/common/lifecycle.js';\nimport { LRUCache } from '../../../base/common/map.js';\nimport { TfIdfCalculator, normalizeTfIdfScores } from '../../../base/common/tfIdf.js';\nimport { localize } from '../../../nls.js';\nimport { ILocalizedString } from '../../action/common/action.js';\nimport { ICommandService } from '../../commands/common/commands.js';\nimport { IConfigurationChangeEvent, IConfigurationService } from '../../configuration/common/configuration.js';\nimport { IDialogService } from '../../dialogs/common/dialogs.js';\nimport { IInstantiationService } from '../../instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../keybinding/common/keybinding.js';\nimport { ILogService } from '../../log/common/log.js';\nimport { FastAndSlowPicks, IPickerQuickAccessItem, IPickerQuickAccessProviderOptions, PickerQuickAccessProvider, Picks } from './pickerQuickAccess.js';\nimport { IQuickAccessProviderRunOptions } from '../common/quickAccess.js';\nimport { IQuickPickSeparator } from '../common/quickInput.js';\nimport { IStorageService, StorageScope, StorageTarget, WillSaveStateReason } from '../../storage/common/storage.js';\nimport { ITelemetryService } from '../../telemetry/common/telemetry.js';\nimport { removeAccents } from '../../../base/common/normalization.js';\nimport { Categories } from '../../action/common/actionCommonCategories.js';\n\nexport interface ICommandQuickPick extends IPickerQuickAccessItem {\n\treadonly commandId: string;\n\treadonly commandAlias?: string;\n\treadonly commandDescription?: ILocalizedString;\n\treadonly commandCategory?: string;\n\n\treadonly args?: unknown[];\n\n\ttfIdfScore?: number;\n\n\t// These fields are lazy initialized during filtering process.\n\tlabelNoAccents?: string;\n\taliasNoAccents?: string;\n}\n\nexport interface ICommandsQuickAccessOptions extends IPickerQuickAccessProviderOptions<ICommandQuickPick> {\n\treadonly showAlias: boolean;\n\tsuggestedCommandIds?: Set<string>;\n}\n\nexport abstract class AbstractCommandsQuickAccessProvider extends PickerQuickAccessProvider<ICommandQuickPick> implements IDisposable {\n\n\tstatic PREFIX = '>';\n\n\tprivate static readonly TFIDF_THRESHOLD = 0.5;\n\tprivate static readonly TFIDF_MAX_RESULTS = 5;\n\n\tprivate static WORD_FILTER = or(matchesPrefix, matchesWords, matchesContiguousSubString);\n\n\tprivate readonly commandsHistory: CommandsHistory;\n\n\tprotected override readonly options: ICommandsQuickAccessOptions;\n\n\tconstructor(\n\t\toptions: ICommandsQuickAccessOptions,\n\t\t@IInstantiationService instantiationService: IInstantiationService,\n\t\t@IKeybindingService protected readonly keybindingService: IKeybindingService,\n\t\t@ICommandService private readonly commandService: ICommandService,\n\t\t@ITelemetryService private readonly telemetryService: ITelemetryService,\n\t\t@IDialogService private readonly dialogService: IDialogService\n\t) {\n\t\tsuper(AbstractCommandsQuickAccessProvider.PREFIX, options);\n\n\t\tthis.commandsHistory = this._register(instantiationService.createInstance(CommandsHistory));\n\n\t\tthis.options = options;\n\t}\n\n\tprotected async _getPicks(filter: string, _disposables: DisposableStore, token: CancellationToken, runOptions?: IQuickAccessProviderRunOptions): Promise<Picks<ICommandQuickPick> | FastAndSlowPicks<ICommandQuickPick>> {\n\n\t\t// Ask subclass for all command picks\n\t\tconst allCommandPicks = await this.getCommandPicks(token);\n\n\t\tif (token.isCancellationRequested) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst runTfidf = createSingleCallFunction(() => {\n\t\t\tconst tfidf = new TfIdfCalculator();\n\t\t\ttfidf.updateDocuments(allCommandPicks.map(commandPick => ({\n\t\t\t\tkey: commandPick.commandId,\n\t\t\t\ttextChunks: [this.getTfIdfChunk(commandPick)]\n\t\t\t})));\n\t\t\tconst result = tfidf.calculateScores(filter, token);\n\n\t\t\treturn normalizeTfIdfScores(result)\n\t\t\t\t.filter(score => score.score > AbstractCommandsQuickAccessProvider.TFIDF_THRESHOLD)\n\t\t\t\t.slice(0, AbstractCommandsQuickAccessProvider.TFIDF_MAX_RESULTS);\n\t\t});\n\n\t\tconst noAccentsFilter = this.normalizeForFiltering(filter);\n\n\t\t// Filter\n\t\tconst filteredCommandPicks: ICommandQuickPick[] = [];\n\t\tfor (const commandPick of allCommandPicks) {\n\t\t\tcommandPick.labelNoAccents ??= this.normalizeForFiltering(commandPick.label);\n\t\t\tconst labelHighlights = AbstractCommandsQuickAccessProvider.WORD_FILTER(noAccentsFilter, commandPick.labelNoAccents) ?? undefined;\n\n\t\t\tlet aliasHighlights: IMatch[] | undefined;\n\t\t\tif (commandPick.commandAlias) {\n\t\t\t\tcommandPick.aliasNoAccents ??= this.normalizeForFiltering(commandPick.commandAlias);\n\t\t\t\taliasHighlights = AbstractCommandsQuickAccessProvider.WORD_FILTER(noAccentsFilter, commandPick.aliasNoAccents) ?? undefined;\n\t\t\t}\n\n\t\t\t// Add if matching in label or alias\n\t\t\tif (labelHighlights || aliasHighlights) {\n\t\t\t\tcommandPick.highlights = {\n\t\t\t\t\tlabel: labelHighlights,\n\t\t\t\t\tdetail: this.options.showAlias ? aliasHighlights : undefined\n\t\t\t\t};\n\n\t\t\t\tfilteredCommandPicks.push(commandPick);\n\t\t\t}\n\n\t\t\t// Also add if we have a 100% command ID match\n\t\t\telse if (filter === commandPick.commandId) {\n\t\t\t\tfilteredCommandPicks.push(commandPick);\n\t\t\t}\n\n\t\t\t// Handle tf-idf scoring for the rest if there's a filter\n\t\t\telse if (filter.length >= 3) {\n\t\t\t\tconst tfidf = runTfidf();\n\t\t\t\tif (token.isCancellationRequested) {\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\n\t\t\t\t// Add if we have a tf-idf score\n\t\t\t\tconst tfidfScore = tfidf.find(score => score.key === commandPick.commandId);\n\t\t\t\tif (tfidfScore) {\n\t\t\t\t\tcommandPick.tfIdfScore = tfidfScore.score;\n\t\t\t\t\tfilteredCommandPicks.push(commandPick);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add description to commands that have duplicate labels\n\t\tconst mapLabelToCommand = new Map<string, ICommandQuickPick>();\n\t\tfor (const commandPick of filteredCommandPicks) {\n\t\t\tconst existingCommandForLabel = mapLabelToCommand.get(commandPick.label);\n\t\t\tif (existingCommandForLabel) {\n\t\t\t\tcommandPick.description = commandPick.commandId;\n\t\t\t\texistingCommandForLabel.description = existingCommandForLabel.commandId;\n\t\t\t} else {\n\t\t\t\tmapLabelToCommand.set(commandPick.label, commandPick);\n\t\t\t}\n\t\t}\n\n\t\t// Sort by MRU order and fallback to name otherwise\n\t\tfilteredCommandPicks.sort((commandPickA, commandPickB) => {\n\n\t\t\t// If a result came from tf-idf, we want to put that towards the bottom\n\t\t\tif (commandPickA.tfIdfScore && commandPickB.tfIdfScore) {\n\t\t\t\tif (commandPickA.tfIdfScore === commandPickB.tfIdfScore) {\n\t\t\t\t\treturn commandPickA.label.localeCompare(commandPickB.label); // prefer lexicographically smaller command\n\t\t\t\t}\n\n\t\t\t\treturn commandPickB.tfIdfScore - commandPickA.tfIdfScore; // prefer higher tf-idf score\n\t\t\t} else if (commandPickA.tfIdfScore) {\n\t\t\t\treturn 1; // first command has a score but other doesn't so other wins\n\t\t\t} else if (commandPickB.tfIdfScore) {\n\t\t\t\treturn -1; // other command has a score but first doesn't so first wins\n\t\t\t}\n\n\t\t\tconst commandACounter = this.commandsHistory.peek(commandPickA.commandId);\n\t\t\tconst commandBCounter = this.commandsHistory.peek(commandPickB.commandId);\n\n\t\t\tif (commandACounter && commandBCounter) {\n\t\t\t\treturn commandACounter > commandBCounter ? -1 : 1; // use more recently used command before older\n\t\t\t}\n\n\t\t\tif (commandACounter) {\n\t\t\t\treturn -1; // first command was used, so it wins over the non used one\n\t\t\t}\n\n\t\t\tif (commandBCounter) {\n\t\t\t\treturn 1; // other command was used so it wins over the command\n\t\t\t}\n\n\t\t\tif (this.options.suggestedCommandIds) {\n\t\t\t\tconst commandASuggestion = this.options.suggestedCommandIds.has(commandPickA.commandId);\n\t\t\t\tconst commandBSuggestion = this.options.suggestedCommandIds.has(commandPickB.commandId);\n\t\t\t\tif (commandASuggestion && commandBSuggestion) {\n\t\t\t\t\treturn 0; // honor the order of the array\n\t\t\t\t}\n\n\t\t\t\tif (commandASuggestion) {\n\t\t\t\t\treturn -1; // first command was suggested, so it wins over the non suggested one\n\t\t\t\t}\n\n\t\t\t\tif (commandBSuggestion) {\n\t\t\t\t\treturn 1; // other command was suggested so it wins over the command\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// if one is Developer and the other isn't, put non-Developer first\n\t\t\tconst isDeveloperA = commandPickA.commandCategory === Categories.Developer.value;\n\t\t\tconst isDeveloperB = commandPickB.commandCategory === Categories.Developer.value;\n\t\t\tif (isDeveloperA && !isDeveloperB) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\tif (!isDeveloperA && isDeveloperB) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// both commands were never used, so we sort by name\n\t\t\treturn commandPickA.label.localeCompare(commandPickB.label);\n\t\t});\n\n\t\tconst commandPicks: Array<ICommandQuickPick | IQuickPickSeparator> = [];\n\n\t\tlet addOtherSeparator = false;\n\t\tlet addSuggestedSeparator = true;\n\t\tlet addCommonlyUsedSeparator = !!this.options.suggestedCommandIds;\n\t\tfor (let i = 0; i < filteredCommandPicks.length; i++) {\n\t\t\tconst commandPick = filteredCommandPicks[i];\n\n\t\t\t// Separator: recently used\n\t\t\tif (i === 0 && this.commandsHistory.peek(commandPick.commandId)) {\n\t\t\t\tcommandPicks.push({ type: 'separator', label: localize('recentlyUsed', \"recently used\") });\n\t\t\t\taddOtherSeparator = true;\n\t\t\t}\n\n\t\t\tif (addSuggestedSeparator && commandPick.tfIdfScore !== undefined) {\n\t\t\t\tcommandPicks.push({ type: 'separator', label: localize('suggested', \"similar commands\") });\n\t\t\t\taddSuggestedSeparator = false;\n\t\t\t}\n\n\t\t\t// Separator: commonly used\n\t\t\tif (addCommonlyUsedSeparator && commandPick.tfIdfScore === undefined && !this.commandsHistory.peek(commandPick.commandId) && this.options.suggestedCommandIds?.has(commandPick.commandId)) {\n\t\t\t\tcommandPicks.push({ type: 'separator', label: localize('commonlyUsed', \"commonly used\") });\n\t\t\t\taddOtherSeparator = true;\n\t\t\t\taddCommonlyUsedSeparator = false;\n\t\t\t}\n\n\t\t\t// Separator: other commands\n\t\t\tif (addOtherSeparator && commandPick.tfIdfScore === undefined && !this.commandsHistory.peek(commandPick.commandId) && !this.options.suggestedCommandIds?.has(commandPick.commandId)) {\n\t\t\t\tcommandPicks.push({ type: 'separator', label: localize('morecCommands', \"other commands\") });\n\t\t\t\taddOtherSeparator = false;\n\t\t\t}\n\n\t\t\t// Command\n\t\t\tcommandPicks.push(this.toCommandPick(commandPick, runOptions));\n\t\t}\n\n\t\tif (!this.hasAdditionalCommandPicks(filter, token)) {\n\t\t\treturn commandPicks;\n\t\t}\n\n\t\treturn {\n\t\t\tpicks: commandPicks,\n\t\t\tadditionalPicks: (async (): Promise<Picks<ICommandQuickPick>> => {\n\t\t\t\tconst additionalCommandPicks = await this.getAdditionalCommandPicks(allCommandPicks, filteredCommandPicks, filter, token);\n\t\t\t\tif (token.isCancellationRequested) {\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\n\t\t\t\tconst commandPicks: Array<ICommandQuickPick | IQuickPickSeparator> = additionalCommandPicks.map(commandPick => this.toCommandPick(commandPick, runOptions));\n\t\t\t\t// Basically, if we haven't already added a separator, we add one before the additional picks so long\n\t\t\t\t// as one hasn't been added to the start of the array.\n\t\t\t\tif (addSuggestedSeparator && commandPicks[0]?.type !== 'separator') {\n\t\t\t\t\tcommandPicks.unshift({ type: 'separator', label: localize('suggested', \"similar commands\") });\n\t\t\t\t}\n\t\t\t\treturn commandPicks;\n\t\t\t})()\n\t\t};\n\t}\n\n\tprivate toCommandPick(commandPick: ICommandQuickPick | IQuickPickSeparator, runOptions?: IQuickAccessProviderRunOptions): ICommandQuickPick | IQuickPickSeparator {\n\t\tif (commandPick.type === 'separator') {\n\t\t\treturn commandPick;\n\t\t}\n\n\t\tconst keybinding = this.keybindingService.lookupKeybinding(commandPick.commandId);\n\t\tconst ariaLabel = keybinding ?\n\t\t\tlocalize('commandPickAriaLabelWithKeybinding', \"{0}, {1}\", commandPick.label, keybinding.getAriaLabel()) :\n\t\t\tcommandPick.label;\n\n\t\treturn {\n\t\t\t...commandPick,\n\t\t\tariaLabel,\n\t\t\tdetail: this.options.showAlias && commandPick.commandAlias !== commandPick.label ? commandPick.commandAlias : undefined,\n\t\t\tkeybinding,\n\t\t\taccept: async () => {\n\n\t\t\t\t// Add to history\n\t\t\t\tthis.commandsHistory.push(commandPick.commandId);\n\n\t\t\t\t// Telementry\n\t\t\t\tthis.telemetryService.publicLog2<WorkbenchActionExecutedEvent, WorkbenchActionExecutedClassification>('workbenchActionExecuted', {\n\t\t\t\t\tid: commandPick.commandId,\n\t\t\t\t\tfrom: runOptions?.from ?? 'quick open'\n\t\t\t\t});\n\n\t\t\t\t// Run\n\t\t\t\ttry {\n\t\t\t\t\tcommandPick.args?.length\n\t\t\t\t\t\t? await this.commandService.executeCommand(commandPick.commandId, ...commandPick.args)\n\t\t\t\t\t\t: await this.commandService.executeCommand(commandPick.commandId);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (!isCancellationError(error)) {\n\t\t\t\t\t\tthis.dialogService.error(localize('canNotRun', \"Command '{0}' resulted in an error\", commandPick.label), toErrorMessage(error));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\t// TF-IDF string to be indexed\n\tprivate getTfIdfChunk({ label, commandAlias, commandDescription }: ICommandQuickPick) {\n\t\tlet chunk = label;\n\t\tif (commandAlias && commandAlias !== label) {\n\t\t\tchunk += ` - ${commandAlias}`;\n\t\t}\n\t\tif (commandDescription && commandDescription.value !== label) {\n\t\t\t// If the original is the same as the value, don't add it\n\t\t\tchunk += ` - ${commandDescription.value === commandDescription.original ? commandDescription.value : `${commandDescription.value} (${commandDescription.original})`}`;\n\t\t}\n\t\treturn chunk;\n\t}\n\n\t/**\n\t * Normalizes a string for filtering by removing accents, but only if\n\t * the result has the same length, otherwise returns the original string.\n\t */\n\tprivate normalizeForFiltering(value: string): string {\n\t\tconst withoutAccents = removeAccents(value);\n\t\tif (withoutAccents.length !== value.length) {\n\t\t\ttype QuickAccessTelemetry = {\n\t\t\t\toriginalLength: number;\n\t\t\t\tnormalizedLength: number;\n\t\t\t};\n\n\t\t\ttype QuickAccessTelemetryMeta = {\n\t\t\t\toriginalLength: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; comment: 'Length of the original filter string' };\n\t\t\t\tnormalizedLength: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; comment: 'Length of the normalized filter string' };\n\t\t\t\towner: 'dmitriv';\n\t\t\t\tcomment: 'Helps to gain insights on cases where the normalized filter string length differs from the original';\n\t\t\t};\n\n\t\t\tthis.telemetryService.publicLog2<QuickAccessTelemetry, QuickAccessTelemetryMeta>('QuickAccess:FilterLengthMismatch', {\n\t\t\t\toriginalLength: value.length,\n\t\t\t\tnormalizedLength: withoutAccents.length\n\t\t\t});\n\n\t\t\treturn value;\n\t\t} else {\n\t\t\treturn withoutAccents;\n\t\t}\n\t}\n\n\tprotected abstract getCommandPicks(token: CancellationToken): Promise<Array<ICommandQuickPick>>;\n\n\tprotected abstract hasAdditionalCommandPicks(filter: string, token: CancellationToken): boolean;\n\tprotected abstract getAdditionalCommandPicks(allPicks: ICommandQuickPick[], picksSoFar: ICommandQuickPick[], filter: string, token: CancellationToken): Promise<Array<ICommandQuickPick | IQuickPickSeparator>>;\n}\n\ninterface ISerializedCommandHistory {\n\treadonly usesLRU?: boolean;\n\treadonly entries: { key: string; value: number }[];\n}\n\ninterface ICommandsQuickAccessConfiguration {\n\treadonly workbench: {\n\t\treadonly commandPalette: {\n\t\t\treadonly history: number;\n\t\t\treadonly preserveInput: boolean;\n\t\t};\n\t};\n}\n\nexport class CommandsHistory extends Disposable {\n\n\tstatic readonly DEFAULT_COMMANDS_HISTORY_LENGTH = 50;\n\n\tprivate static readonly PREF_KEY_CACHE = 'commandPalette.mru.cache';\n\tprivate static readonly PREF_KEY_COUNTER = 'commandPalette.mru.counter';\n\n\tprivate static cache: LRUCache<string, number> | undefined;\n\tprivate static counter = 1;\n\tprivate static hasChanges = false;\n\n\tprivate configuredCommandsHistoryLength = 0;\n\n\tconstructor(\n\t\t@IStorageService private readonly storageService: IStorageService,\n\t\t@IConfigurationService private readonly configurationService: IConfigurationService,\n\t\t@ILogService private readonly logService: ILogService\n\t) {\n\t\tsuper();\n\n\t\tthis.updateConfiguration();\n\t\tthis.load();\n\n\t\tthis.registerListeners();\n\t}\n\n\tprivate registerListeners(): void {\n\t\tthis._register(this.configurationService.onDidChangeConfiguration(e => this.updateConfiguration(e)));\n\t\tthis._register(this.storageService.onWillSaveState(e => {\n\t\t\tif (e.reason === WillSaveStateReason.SHUTDOWN) {\n\t\t\t\t// Commands history is very dynamic and so we limit impact\n\t\t\t\t// on storage to only save on shutdown. This helps reduce\n\t\t\t\t// the overhead of syncing this data across machines.\n\t\t\t\tthis.saveState();\n\t\t\t}\n\t\t}));\n\t}\n\n\tprivate updateConfiguration(e?: IConfigurationChangeEvent): void {\n\t\tif (e && !e.affectsConfiguration('workbench.commandPalette.history')) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.configuredCommandsHistoryLength = CommandsHistory.getConfiguredCommandHistoryLength(this.configurationService);\n\n\t\tif (CommandsHistory.cache && CommandsHistory.cache.limit !== this.configuredCommandsHistoryLength) {\n\t\t\tCommandsHistory.cache.limit = this.configuredCommandsHistoryLength;\n\t\t\tCommandsHistory.hasChanges = true;\n\t\t}\n\t}\n\n\tprivate load(): void {\n\t\tconst raw = this.storageService.get(CommandsHistory.PREF_KEY_CACHE, StorageScope.PROFILE);\n\t\tlet serializedCache: ISerializedCommandHistory | undefined;\n\t\tif (raw) {\n\t\t\ttry {\n\t\t\t\tserializedCache = JSON.parse(raw);\n\t\t\t} catch (error) {\n\t\t\t\tthis.logService.error(`[CommandsHistory] invalid data: ${error}`);\n\t\t\t}\n\t\t}\n\n\t\tconst cache = CommandsHistory.cache = new LRUCache<string, number>(this.configuredCommandsHistoryLength, 1);\n\t\tif (serializedCache) {\n\t\t\tlet entries: { key: string; value: number }[];\n\t\t\tif (serializedCache.usesLRU) {\n\t\t\t\tentries = serializedCache.entries;\n\t\t\t} else {\n\t\t\t\tentries = serializedCache.entries.sort((a, b) => a.value - b.value);\n\t\t\t}\n\t\t\tentries.forEach(entry => cache.set(entry.key, entry.value));\n\t\t}\n\n\t\tCommandsHistory.counter = this.storageService.getNumber(CommandsHistory.PREF_KEY_COUNTER, StorageScope.PROFILE, CommandsHistory.counter);\n\t}\n\n\tpush(commandId: string): void {\n\t\tif (!CommandsHistory.cache) {\n\t\t\treturn;\n\t\t}\n\n\t\tCommandsHistory.cache.set(commandId, CommandsHistory.counter++); // set counter to command\n\t\tCommandsHistory.hasChanges = true;\n\t}\n\n\tpeek(commandId: string): number | undefined {\n\t\treturn CommandsHistory.cache?.peek(commandId);\n\t}\n\n\tprivate saveState(): void {\n\t\tif (!CommandsHistory.cache) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!CommandsHistory.hasChanges) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst serializedCache: ISerializedCommandHistory = { usesLRU: true, entries: [] };\n\t\tCommandsHistory.cache.forEach((value, key) => serializedCache.entries.push({ key, value }));\n\n\t\tthis.storageService.store(CommandsHistory.PREF_KEY_CACHE, JSON.stringify(serializedCache), StorageScope.PROFILE, StorageTarget.USER);\n\t\tthis.storageService.store(CommandsHistory.PREF_KEY_COUNTER, CommandsHistory.counter, StorageScope.PROFILE, StorageTarget.USER);\n\t\tCommandsHistory.hasChanges = false;\n\t}\n\n\tstatic getConfiguredCommandHistoryLength(configurationService: IConfigurationService): number {\n\t\tconst config = configurationService.getValue<ICommandsQuickAccessConfiguration>();\n\n\t\tconst configuredCommandHistoryLength = config.workbench?.commandPalette?.history;\n\t\tif (typeof configuredCommandHistoryLength === 'number') {\n\t\t\treturn configuredCommandHistoryLength;\n\t\t}\n\n\t\treturn CommandsHistory.DEFAULT_COMMANDS_HISTORY_LENGTH;\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["vs/platform/quickinput/browser/commandsQuickAccess.ts"],"names":[],"mappings":"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","file":"commandsQuickAccess.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 { WorkbenchActionExecutedClassification, WorkbenchActionExecutedEvent } from '../../../base/common/actions.js';\nimport { CancellationToken } from '../../../base/common/cancellation.js';\nimport { Codicon } from '../../../base/common/codicons.js';\nimport { toErrorMessage } from '../../../base/common/errorMessage.js';\nimport { isCancellationError } from '../../../base/common/errors.js';\nimport { IMatch, matchesBaseContiguousSubString, matchesWords, or } from '../../../base/common/filters.js';\nimport { createSingleCallFunction } from '../../../base/common/functional.js';\nimport { Disposable, DisposableStore, IDisposable } from '../../../base/common/lifecycle.js';\nimport { LRUCache } from '../../../base/common/map.js';\nimport { ThemeIcon } from '../../../base/common/themables.js';\nimport { TfIdfCalculator, normalizeTfIdfScores } from '../../../base/common/tfIdf.js';\nimport { localize } from '../../../nls.js';\nimport { ILocalizedString } from '../../action/common/action.js';\nimport { ICommandService } from '../../commands/common/commands.js';\nimport { IConfigurationChangeEvent, IConfigurationService } from '../../configuration/common/configuration.js';\nimport { IDialogService } from '../../dialogs/common/dialogs.js';\nimport { IInstantiationService } from '../../instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../keybinding/common/keybinding.js';\nimport { ILogService } from '../../log/common/log.js';\nimport { FastAndSlowPicks, IPickerQuickAccessItem, IPickerQuickAccessProviderOptions, PickerQuickAccessProvider, Picks, TriggerAction } from './pickerQuickAccess.js';\nimport { IQuickAccessProviderRunOptions } from '../common/quickAccess.js';\nimport { IKeyMods, IQuickPickSeparator } from '../common/quickInput.js';\nimport { IStorageService, StorageScope, StorageTarget, WillSaveStateReason } from '../../storage/common/storage.js';\nimport { ITelemetryService } from '../../telemetry/common/telemetry.js';\nimport { Categories } from '../../action/common/actionCommonCategories.js';\n\nexport interface ICommandQuickPick extends IPickerQuickAccessItem {\n\treadonly commandId: string;\n\treadonly commandAlias?: string;\n\treadonly commandDescription?: ILocalizedString;\n\treadonly commandCategory?: string;\n\n\treadonly args?: unknown[];\n\n\ttfIdfScore?: number;\n}\n\nexport interface ICommandsQuickAccessOptions extends IPickerQuickAccessProviderOptions<ICommandQuickPick> {\n\treadonly showAlias: boolean;\n\tsuggestedCommandIds?: Set<string>;\n}\n\nexport abstract class AbstractCommandsQuickAccessProvider extends PickerQuickAccessProvider<ICommandQuickPick> implements IDisposable {\n\n\tstatic PREFIX = '>';\n\n\tprivate static readonly TFIDF_THRESHOLD = 0.5;\n\tprivate static readonly TFIDF_MAX_RESULTS = 5;\n\n\tprivate static WORD_FILTER = or(matchesBaseContiguousSubString, matchesWords);\n\n\tprivate readonly commandsHistory: CommandsHistory;\n\n\tprotected override readonly options: ICommandsQuickAccessOptions;\n\n\tconstructor(\n\t\toptions: ICommandsQuickAccessOptions,\n\t\t@IInstantiationService instantiationService: IInstantiationService,\n\t\t@IKeybindingService protected readonly keybindingService: IKeybindingService,\n\t\t@ICommandService private readonly commandService: ICommandService,\n\t\t@ITelemetryService private readonly telemetryService: ITelemetryService,\n\t\t@IDialogService private readonly dialogService: IDialogService\n\t) {\n\t\tsuper(AbstractCommandsQuickAccessProvider.PREFIX, options);\n\n\t\tthis.commandsHistory = this._register(instantiationService.createInstance(CommandsHistory));\n\n\t\tthis.options = options;\n\t}\n\n\tprotected async _getPicks(filter: string, _disposables: DisposableStore, token: CancellationToken, runOptions?: IQuickAccessProviderRunOptions): Promise<Picks<ICommandQuickPick> | FastAndSlowPicks<ICommandQuickPick>> {\n\n\t\t// Ask subclass for all command picks\n\t\tconst allCommandPicks = await this.getCommandPicks(token);\n\n\t\tif (token.isCancellationRequested) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst runTfidf = createSingleCallFunction(() => {\n\t\t\tconst tfidf = new TfIdfCalculator();\n\t\t\ttfidf.updateDocuments(allCommandPicks.map(commandPick => ({\n\t\t\t\tkey: commandPick.commandId,\n\t\t\t\ttextChunks: [this.getTfIdfChunk(commandPick)]\n\t\t\t})));\n\t\t\tconst result = tfidf.calculateScores(filter, token);\n\n\t\t\treturn normalizeTfIdfScores(result)\n\t\t\t\t.filter(score => score.score > AbstractCommandsQuickAccessProvider.TFIDF_THRESHOLD)\n\t\t\t\t.slice(0, AbstractCommandsQuickAccessProvider.TFIDF_MAX_RESULTS);\n\t\t});\n\n\t\t// Filter\n\t\tconst filteredCommandPicks: ICommandQuickPick[] = [];\n\t\tfor (const commandPick of allCommandPicks) {\n\t\t\tconst labelHighlights = AbstractCommandsQuickAccessProvider.WORD_FILTER(filter, commandPick.label) ?? undefined;\n\n\t\t\tlet aliasHighlights: IMatch[] | undefined;\n\t\t\tif (commandPick.commandAlias) {\n\t\t\t\taliasHighlights = AbstractCommandsQuickAccessProvider.WORD_FILTER(filter, commandPick.commandAlias) ?? undefined;\n\t\t\t}\n\n\t\t\t// Add if matching in label or alias\n\t\t\tif (labelHighlights || aliasHighlights) {\n\t\t\t\tcommandPick.highlights = {\n\t\t\t\t\tlabel: labelHighlights,\n\t\t\t\t\tdetail: this.options.showAlias ? aliasHighlights : undefined\n\t\t\t\t};\n\n\t\t\t\tfilteredCommandPicks.push(commandPick);\n\t\t\t}\n\n\t\t\t// Also add if we have a 100% command ID match\n\t\t\telse if (filter === commandPick.commandId) {\n\t\t\t\tfilteredCommandPicks.push(commandPick);\n\t\t\t}\n\n\t\t\t// Handle tf-idf scoring for the rest if there's a filter\n\t\t\telse if (filter.length >= 3) {\n\t\t\t\tconst tfidf = runTfidf();\n\t\t\t\tif (token.isCancellationRequested) {\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\n\t\t\t\t// Add if we have a tf-idf score\n\t\t\t\tconst tfidfScore = tfidf.find(score => score.key === commandPick.commandId);\n\t\t\t\tif (tfidfScore) {\n\t\t\t\t\tcommandPick.tfIdfScore = tfidfScore.score;\n\t\t\t\t\tfilteredCommandPicks.push(commandPick);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add description to commands that have duplicate labels\n\t\tconst mapLabelToCommand = new Map<string, ICommandQuickPick>();\n\t\tfor (const commandPick of filteredCommandPicks) {\n\t\t\tconst existingCommandForLabel = mapLabelToCommand.get(commandPick.label);\n\t\t\tif (existingCommandForLabel) {\n\t\t\t\tcommandPick.description = commandPick.commandId;\n\t\t\t\texistingCommandForLabel.description = existingCommandForLabel.commandId;\n\t\t\t} else {\n\t\t\t\tmapLabelToCommand.set(commandPick.label, commandPick);\n\t\t\t}\n\t\t}\n\n\t\t// Sort by MRU order and fallback to name otherwise\n\t\tfilteredCommandPicks.sort((commandPickA, commandPickB) => {\n\n\t\t\t// If a result came from tf-idf, we want to put that towards the bottom\n\t\t\tif (commandPickA.tfIdfScore && commandPickB.tfIdfScore) {\n\t\t\t\tif (commandPickA.tfIdfScore === commandPickB.tfIdfScore) {\n\t\t\t\t\treturn commandPickA.label.localeCompare(commandPickB.label); // prefer lexicographically smaller command\n\t\t\t\t}\n\n\t\t\t\treturn commandPickB.tfIdfScore - commandPickA.tfIdfScore; // prefer higher tf-idf score\n\t\t\t} else if (commandPickA.tfIdfScore) {\n\t\t\t\treturn 1; // first command has a score but other doesn't so other wins\n\t\t\t} else if (commandPickB.tfIdfScore) {\n\t\t\t\treturn -1; // other command has a score but first doesn't so first wins\n\t\t\t}\n\n\t\t\tconst commandACounter = this.commandsHistory.peek(commandPickA.commandId);\n\t\t\tconst commandBCounter = this.commandsHistory.peek(commandPickB.commandId);\n\n\t\t\tif (commandACounter && commandBCounter) {\n\t\t\t\treturn commandACounter > commandBCounter ? -1 : 1; // use more recently used command before older\n\t\t\t}\n\n\t\t\tif (commandACounter) {\n\t\t\t\treturn -1; // first command was used, so it wins over the non used one\n\t\t\t}\n\n\t\t\tif (commandBCounter) {\n\t\t\t\treturn 1; // other command was used so it wins over the command\n\t\t\t}\n\n\t\t\tif (this.options.suggestedCommandIds) {\n\t\t\t\tconst commandASuggestion = this.options.suggestedCommandIds.has(commandPickA.commandId);\n\t\t\t\tconst commandBSuggestion = this.options.suggestedCommandIds.has(commandPickB.commandId);\n\t\t\t\tif (commandASuggestion && commandBSuggestion) {\n\t\t\t\t\treturn 0; // honor the order of the array\n\t\t\t\t}\n\n\t\t\t\tif (commandASuggestion) {\n\t\t\t\t\treturn -1; // first command was suggested, so it wins over the non suggested one\n\t\t\t\t}\n\n\t\t\t\tif (commandBSuggestion) {\n\t\t\t\t\treturn 1; // other command was suggested so it wins over the command\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// if one is Developer and the other isn't, put non-Developer first\n\t\t\tconst isDeveloperA = commandPickA.commandCategory === Categories.Developer.value;\n\t\t\tconst isDeveloperB = commandPickB.commandCategory === Categories.Developer.value;\n\t\t\tif (isDeveloperA && !isDeveloperB) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\tif (!isDeveloperA && isDeveloperB) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// both commands were never used, so we sort by name\n\t\t\treturn commandPickA.label.localeCompare(commandPickB.label);\n\t\t});\n\n\t\tconst commandPicks: Array<ICommandQuickPick | IQuickPickSeparator> = [];\n\n\t\tlet addOtherSeparator = false;\n\t\tlet addSuggestedSeparator = true;\n\t\tlet addCommonlyUsedSeparator = !!this.options.suggestedCommandIds;\n\t\tfor (let i = 0; i < filteredCommandPicks.length; i++) {\n\t\t\tconst commandPick = filteredCommandPicks[i];\n\t\t\tconst isInHistory = !!this.commandsHistory.peek(commandPick.commandId);\n\n\t\t\t// Separator: recently used\n\t\t\tif (i === 0 && isInHistory) {\n\t\t\t\tcommandPicks.push({ type: 'separator', label: localize('recentlyUsed', \"recently used\") });\n\t\t\t\taddOtherSeparator = true;\n\t\t\t}\n\n\t\t\tif (addSuggestedSeparator && commandPick.tfIdfScore !== undefined) {\n\t\t\t\tcommandPicks.push({ type: 'separator', label: localize('suggested', \"similar commands\") });\n\t\t\t\taddSuggestedSeparator = false;\n\t\t\t}\n\n\t\t\t// Separator: commonly used\n\t\t\tif (addCommonlyUsedSeparator && commandPick.tfIdfScore === undefined && !isInHistory && this.options.suggestedCommandIds?.has(commandPick.commandId)) {\n\t\t\t\tcommandPicks.push({ type: 'separator', label: localize('commonlyUsed', \"commonly used\") });\n\t\t\t\taddOtherSeparator = true;\n\t\t\t\taddCommonlyUsedSeparator = false;\n\t\t\t}\n\n\t\t\t// Separator: other commands\n\t\t\tif (addOtherSeparator && commandPick.tfIdfScore === undefined && !isInHistory && !this.options.suggestedCommandIds?.has(commandPick.commandId)) {\n\t\t\t\tcommandPicks.push({ type: 'separator', label: localize('morecCommands', \"other commands\") });\n\t\t\t\taddOtherSeparator = false;\n\t\t\t}\n\n\t\t\t// Command\n\t\t\tcommandPicks.push(this.toCommandPick(commandPick, runOptions, isInHistory));\n\t\t}\n\n\t\tif (!this.hasAdditionalCommandPicks(filter, token)) {\n\t\t\treturn commandPicks;\n\t\t}\n\n\t\treturn {\n\t\t\tpicks: commandPicks,\n\t\t\tadditionalPicks: (async (): Promise<Picks<ICommandQuickPick>> => {\n\t\t\t\tconst additionalCommandPicks = await this.getAdditionalCommandPicks(allCommandPicks, filteredCommandPicks, filter, token);\n\t\t\t\tif (token.isCancellationRequested) {\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\n\t\t\t\tconst commandPicks: Array<ICommandQuickPick | IQuickPickSeparator> = additionalCommandPicks.map(commandPick => this.toCommandPick(commandPick, runOptions));\n\t\t\t\t// Basically, if we haven't already added a separator, we add one before the additional picks so long\n\t\t\t\t// as one hasn't been added to the start of the array.\n\t\t\t\tif (addSuggestedSeparator && commandPicks[0]?.type !== 'separator') {\n\t\t\t\t\tcommandPicks.unshift({ type: 'separator', label: localize('suggested', \"similar commands\") });\n\t\t\t\t}\n\t\t\t\treturn commandPicks;\n\t\t\t})()\n\t\t};\n\t}\n\n\tprivate toCommandPick(commandPick: ICommandQuickPick | IQuickPickSeparator, runOptions?: IQuickAccessProviderRunOptions, isRecentlyUsed: boolean = false): ICommandQuickPick | IQuickPickSeparator {\n\t\tif (commandPick.type === 'separator') {\n\t\t\treturn commandPick;\n\t\t}\n\n\t\tconst keybinding = this.keybindingService.lookupKeybinding(commandPick.commandId);\n\t\tconst ariaLabel = keybinding ?\n\t\t\tlocalize('commandPickAriaLabelWithKeybinding', \"{0}, {1}\", commandPick.label, keybinding.getAriaLabel()) :\n\t\t\tcommandPick.label;\n\n\t\t// Add remove button for recently used items (as the last button, to the right)\n\t\tconst existingButtons = commandPick.buttons || [];\n\t\tconst buttons = isRecentlyUsed ? [\n\t\t\t...existingButtons,\n\t\t\t{\n\t\t\t\ticonClass: ThemeIcon.asClassName(Codicon.close),\n\t\t\t\ttooltip: localize('removeFromRecentlyUsed', \"Remove from Recently Used\")\n\t\t\t}\n\t\t] : commandPick.buttons;\n\n\t\treturn {\n\t\t\t...commandPick,\n\t\t\tariaLabel,\n\t\t\tdetail: this.options.showAlias && commandPick.commandAlias !== commandPick.label ? commandPick.commandAlias : undefined,\n\t\t\tkeybinding,\n\t\t\tbuttons,\n\t\t\taccept: async () => {\n\n\t\t\t\t// Add to history\n\t\t\t\tthis.commandsHistory.push(commandPick.commandId);\n\n\t\t\t\t// Telementry\n\t\t\t\tthis.telemetryService.publicLog2<WorkbenchActionExecutedEvent, WorkbenchActionExecutedClassification>('workbenchActionExecuted', {\n\t\t\t\t\tid: commandPick.commandId,\n\t\t\t\t\tfrom: runOptions?.from ?? 'quick open'\n\t\t\t\t});\n\n\t\t\t\t// Run\n\t\t\t\ttry {\n\t\t\t\t\tcommandPick.args?.length\n\t\t\t\t\t\t? await this.commandService.executeCommand(commandPick.commandId, ...commandPick.args)\n\t\t\t\t\t\t: await this.commandService.executeCommand(commandPick.commandId);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (!isCancellationError(error)) {\n\t\t\t\t\t\tthis.dialogService.error(localize('canNotRun', \"Command '{0}' resulted in an error\", commandPick.label), toErrorMessage(error));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ttrigger: isRecentlyUsed ? (buttonIndex: number, keyMods: IKeyMods): TriggerAction | Promise<TriggerAction> => {\n\t\t\t\t// The remove button is now the last button\n\t\t\t\tconst removeButtonIndex = existingButtons.length;\n\t\t\t\tif (buttonIndex === removeButtonIndex) {\n\t\t\t\t\tthis.commandsHistory.remove(commandPick.commandId);\n\t\t\t\t\treturn TriggerAction.REMOVE_ITEM;\n\t\t\t\t}\n\t\t\t\t// Handle other buttons (e.g., configure keybinding button)\n\t\t\t\tif (commandPick.trigger) {\n\t\t\t\t\treturn commandPick.trigger(buttonIndex, keyMods);\n\t\t\t\t}\n\t\t\t\treturn TriggerAction.NO_ACTION;\n\t\t\t} : commandPick.trigger\n\t\t};\n\t}\n\n\t// TF-IDF string to be indexed\n\tprivate getTfIdfChunk({ label, commandAlias, commandDescription }: ICommandQuickPick) {\n\t\tlet chunk = label;\n\t\tif (commandAlias && commandAlias !== label) {\n\t\t\tchunk += ` - ${commandAlias}`;\n\t\t}\n\t\tif (commandDescription && commandDescription.value !== label) {\n\t\t\t// If the original is the same as the value, don't add it\n\t\t\tchunk += ` - ${commandDescription.value === commandDescription.original ? commandDescription.value : `${commandDescription.value} (${commandDescription.original})`}`;\n\t\t}\n\t\treturn chunk;\n\t}\n\n\tprotected abstract getCommandPicks(token: CancellationToken): Promise<Array<ICommandQuickPick>>;\n\n\tprotected abstract hasAdditionalCommandPicks(filter: string, token: CancellationToken): boolean;\n\tprotected abstract getAdditionalCommandPicks(allPicks: ICommandQuickPick[], picksSoFar: ICommandQuickPick[], filter: string, token: CancellationToken): Promise<Array<ICommandQuickPick | IQuickPickSeparator>>;\n}\n\ninterface ISerializedCommandHistory {\n\treadonly usesLRU?: boolean;\n\treadonly entries: { key: string; value: number }[];\n}\n\ninterface ICommandsQuickAccessConfiguration {\n\treadonly workbench: {\n\t\treadonly commandPalette: {\n\t\t\treadonly history: number;\n\t\t\treadonly preserveInput: boolean;\n\t\t};\n\t};\n}\n\nexport class CommandsHistory extends Disposable {\n\n\tstatic readonly DEFAULT_COMMANDS_HISTORY_LENGTH = 50;\n\n\tprivate static readonly PREF_KEY_CACHE = 'commandPalette.mru.cache';\n\tprivate static readonly PREF_KEY_COUNTER = 'commandPalette.mru.counter';\n\n\tprivate static cache: LRUCache<string, number> | undefined;\n\tprivate static counter = 1;\n\tprivate static hasChanges = false;\n\n\tprivate configuredCommandsHistoryLength = 0;\n\n\tconstructor(\n\t\t@IStorageService private readonly storageService: IStorageService,\n\t\t@IConfigurationService private readonly configurationService: IConfigurationService,\n\t\t@ILogService private readonly logService: ILogService\n\t) {\n\t\tsuper();\n\n\t\tthis.updateConfiguration();\n\t\tthis.load();\n\n\t\tthis.registerListeners();\n\t}\n\n\tprivate registerListeners(): void {\n\t\tthis._register(this.configurationService.onDidChangeConfiguration(e => this.updateConfiguration(e)));\n\t\tthis._register(this.storageService.onWillSaveState(e => {\n\t\t\tif (e.reason === WillSaveStateReason.SHUTDOWN) {\n\t\t\t\t// Commands history is very dynamic and so we limit impact\n\t\t\t\t// on storage to only save on shutdown. This helps reduce\n\t\t\t\t// the overhead of syncing this data across machines.\n\t\t\t\tthis.saveState();\n\t\t\t}\n\t\t}));\n\t}\n\n\tprivate updateConfiguration(e?: IConfigurationChangeEvent): void {\n\t\tif (e && !e.affectsConfiguration('workbench.commandPalette.history')) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.configuredCommandsHistoryLength = CommandsHistory.getConfiguredCommandHistoryLength(this.configurationService);\n\n\t\tif (CommandsHistory.cache && CommandsHistory.cache.limit !== this.configuredCommandsHistoryLength) {\n\t\t\tCommandsHistory.cache.limit = this.configuredCommandsHistoryLength;\n\t\t\tCommandsHistory.hasChanges = true;\n\t\t}\n\t}\n\n\tprivate load(): void {\n\t\tconst raw = this.storageService.get(CommandsHistory.PREF_KEY_CACHE, StorageScope.PROFILE);\n\t\tlet serializedCache: ISerializedCommandHistory | undefined;\n\t\tif (raw) {\n\t\t\ttry {\n\t\t\t\tserializedCache = JSON.parse(raw);\n\t\t\t} catch (error) {\n\t\t\t\tthis.logService.error(`[CommandsHistory] invalid data: ${error}`);\n\t\t\t}\n\t\t}\n\n\t\tconst cache = CommandsHistory.cache = new LRUCache<string, number>(this.configuredCommandsHistoryLength, 1);\n\t\tif (serializedCache) {\n\t\t\tlet entries: { key: string; value: number }[];\n\t\t\tif (serializedCache.usesLRU) {\n\t\t\t\tentries = serializedCache.entries;\n\t\t\t} else {\n\t\t\t\tentries = serializedCache.entries.sort((a, b) => a.value - b.value);\n\t\t\t}\n\t\t\tentries.forEach(entry => cache.set(entry.key, entry.value));\n\t\t}\n\n\t\tCommandsHistory.counter = this.storageService.getNumber(CommandsHistory.PREF_KEY_COUNTER, StorageScope.PROFILE, CommandsHistory.counter);\n\t}\n\n\tpush(commandId: string): void {\n\t\tif (!CommandsHistory.cache) {\n\t\t\treturn;\n\t\t}\n\n\t\tCommandsHistory.cache.set(commandId, CommandsHistory.counter++); // set counter to command\n\t\tCommandsHistory.hasChanges = true;\n\t}\n\n\tpeek(commandId: string): number | undefined {\n\t\treturn CommandsHistory.cache?.peek(commandId);\n\t}\n\n\tremove(commandId: string): void {\n\t\tif (!CommandsHistory.cache) {\n\t\t\treturn;\n\t\t}\n\n\t\tCommandsHistory.cache.delete(commandId);\n\t\tCommandsHistory.hasChanges = true;\n\t}\n\n\tprivate saveState(): void {\n\t\tif (!CommandsHistory.cache) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!CommandsHistory.hasChanges) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst serializedCache: ISerializedCommandHistory = { usesLRU: true, entries: [] };\n\t\tCommandsHistory.cache.forEach((value, key) => serializedCache.entries.push({ key, value }));\n\n\t\tthis.storageService.store(CommandsHistory.PREF_KEY_CACHE, JSON.stringify(serializedCache), StorageScope.PROFILE, StorageTarget.USER);\n\t\tthis.storageService.store(CommandsHistory.PREF_KEY_COUNTER, CommandsHistory.counter, StorageScope.PROFILE, StorageTarget.USER);\n\t\tCommandsHistory.hasChanges = false;\n\t}\n\n\tstatic getConfiguredCommandHistoryLength(configurationService: IConfigurationService): number {\n\t\tconst config = configurationService.getValue<ICommandsQuickAccessConfiguration>();\n\n\t\tconst configuredCommandHistoryLength = config.workbench?.commandPalette?.history;\n\t\tif (typeof configuredCommandHistoryLength === 'number') {\n\t\t\treturn configuredCommandHistoryLength;\n\t\t}\n\n\t\treturn CommandsHistory.DEFAULT_COMMANDS_HISTORY_LENGTH;\n\t}\n}\n"]}
|
|
@@ -62,7 +62,7 @@ let HelpQuickAccessProvider = class HelpQuickAccessProvider {
|
|
|
62
62
|
prefix,
|
|
63
63
|
label,
|
|
64
64
|
keybinding: helpEntry.commandId ? this.keybindingService.lookupKeybinding(helpEntry.commandId) : undefined,
|
|
65
|
-
ariaLabel: localize(
|
|
65
|
+
ariaLabel: localize(1755, "{0}, {1}", label, helpEntry.description),
|
|
66
66
|
description: helpEntry.description
|
|
67
67
|
};
|
|
68
68
|
});
|
|
@@ -23,7 +23,6 @@
|
|
|
23
23
|
.quick-input-left-action-bar {
|
|
24
24
|
display: flex;
|
|
25
25
|
margin-left: 4px;
|
|
26
|
-
flex: 1;
|
|
27
26
|
}
|
|
28
27
|
|
|
29
28
|
/* give some space between input and action bar */
|
|
@@ -42,12 +41,12 @@
|
|
|
42
41
|
text-align: center;
|
|
43
42
|
text-overflow: ellipsis;
|
|
44
43
|
overflow: hidden;
|
|
44
|
+
flex: 1;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
.quick-input-right-action-bar {
|
|
48
48
|
display: flex;
|
|
49
49
|
margin-right: 4px;
|
|
50
|
-
flex: 1;
|
|
51
50
|
}
|
|
52
51
|
|
|
53
52
|
.quick-input-right-action-bar > .actions-container {
|
|
@@ -349,6 +348,8 @@
|
|
|
349
348
|
|
|
350
349
|
.quick-input-list .monaco-list-row.focused .monaco-keybinding-key {
|
|
351
350
|
background: none;
|
|
351
|
+
border-color: inherit;
|
|
352
|
+
opacity: 0.8;
|
|
352
353
|
}
|
|
353
354
|
|
|
354
355
|
.quick-input-list .quick-input-list-separator-as-item {
|
|
@@ -389,11 +390,16 @@
|
|
|
389
390
|
padding-bottom: 5px;
|
|
390
391
|
}
|
|
391
392
|
|
|
393
|
+
.quick-input-tree.quick-input-tree-flat .monaco-tl-indent,
|
|
394
|
+
.quick-input-tree.quick-input-tree-flat .monaco-tl-twistie {
|
|
395
|
+
display: none !important;
|
|
396
|
+
}
|
|
397
|
+
|
|
392
398
|
.quick-input-tree .quick-input-tree-entry {
|
|
393
399
|
box-sizing: border-box;
|
|
394
400
|
overflow: hidden;
|
|
395
401
|
display: flex;
|
|
396
|
-
padding:
|
|
402
|
+
padding-right: 6px;
|
|
397
403
|
}
|
|
398
404
|
|
|
399
405
|
.quick-input-tree .quick-input-tree-label {
|
|
@@ -31,22 +31,22 @@ import { IHoverService, WorkbenchHoverDelegate } from '../../hover/browser/hover
|
|
|
31
31
|
import { ContextKeyExpr, RawContextKey } from '../../contextkey/common/contextkey.js';
|
|
32
32
|
import { observableValue } from '../../../base/common/observable.js';
|
|
33
33
|
export const inQuickInputContextKeyValue = 'inQuickInput';
|
|
34
|
-
export const InQuickInputContextKey = new RawContextKey(inQuickInputContextKeyValue, false, localize(
|
|
34
|
+
export const InQuickInputContextKey = new RawContextKey(inQuickInputContextKeyValue, false, localize(1756, "Whether keyboard focus is inside the quick input control"));
|
|
35
35
|
export const inQuickInputContext = ContextKeyExpr.has(inQuickInputContextKeyValue);
|
|
36
36
|
export const quickInputAlignmentContextKeyValue = 'quickInputAlignment';
|
|
37
|
-
export const QuickInputAlignmentContextKey = new RawContextKey(quickInputAlignmentContextKeyValue, 'top', localize(
|
|
37
|
+
export const QuickInputAlignmentContextKey = new RawContextKey(quickInputAlignmentContextKeyValue, 'top', localize(1757, "The alignment of the quick input"));
|
|
38
38
|
export const quickInputTypeContextKeyValue = 'quickInputType';
|
|
39
|
-
export const QuickInputTypeContextKey = new RawContextKey(quickInputTypeContextKeyValue, undefined, localize(
|
|
39
|
+
export const QuickInputTypeContextKey = new RawContextKey(quickInputTypeContextKeyValue, undefined, localize(1758, "The type of the currently visible quick input"));
|
|
40
40
|
export const endOfQuickInputBoxContextKeyValue = 'cursorAtEndOfQuickInputBox';
|
|
41
|
-
export const EndOfQuickInputBoxContextKey = new RawContextKey(endOfQuickInputBoxContextKeyValue, false, localize(
|
|
41
|
+
export const EndOfQuickInputBoxContextKey = new RawContextKey(endOfQuickInputBoxContextKeyValue, false, localize(1759, "Whether the cursor in the quick input is at the end of the input box"));
|
|
42
42
|
export const endOfQuickInputBoxContext = ContextKeyExpr.has(endOfQuickInputBoxContextKeyValue);
|
|
43
43
|
export const backButton = {
|
|
44
44
|
iconClass: ThemeIcon.asClassName(Codicon.quickInputBack),
|
|
45
|
-
tooltip: localize(
|
|
45
|
+
tooltip: localize(1760, "Back"),
|
|
46
46
|
handle: -1 // TODO
|
|
47
47
|
};
|
|
48
48
|
export class QuickInput extends Disposable {
|
|
49
|
-
static { this.noPromptMessage = localize(
|
|
49
|
+
static { this.noPromptMessage = localize(1761, "Press 'Enter' to confirm your input or 'Escape' to cancel"); }
|
|
50
50
|
constructor(ui) {
|
|
51
51
|
super();
|
|
52
52
|
this.ui = ui;
|
|
@@ -322,7 +322,7 @@ export class QuickInput extends Disposable {
|
|
|
322
322
|
}
|
|
323
323
|
getSteps() {
|
|
324
324
|
if (this.step && this.totalSteps) {
|
|
325
|
-
return localize(
|
|
325
|
+
return localize(1762, "{0}/{1}", this.step, this.totalSteps);
|
|
326
326
|
}
|
|
327
327
|
if (this.step) {
|
|
328
328
|
return String(this.step);
|
|
@@ -352,7 +352,7 @@ export class QuickInput extends Disposable {
|
|
|
352
352
|
}
|
|
353
353
|
}
|
|
354
354
|
export class QuickPick extends QuickInput {
|
|
355
|
-
static { this.DEFAULT_ARIA_LABEL = localize(
|
|
355
|
+
static { this.DEFAULT_ARIA_LABEL = localize(1763, "Type to narrow down results."); }
|
|
356
356
|
constructor(ui) {
|
|
357
357
|
super(ui);
|
|
358
358
|
this._value = '';
|
|
@@ -586,7 +586,7 @@ export class QuickPick extends QuickInput {
|
|
|
586
586
|
this.update();
|
|
587
587
|
}
|
|
588
588
|
get okLabel() {
|
|
589
|
-
return this._okLabel ?? localize(
|
|
589
|
+
return this._okLabel ?? localize(1764, "OK");
|
|
590
590
|
}
|
|
591
591
|
set okLabel(okLabel) {
|
|
592
592
|
this._okLabel = okLabel;
|
|
@@ -932,7 +932,7 @@ export class InputBox extends QuickInput {
|
|
|
932
932
|
set prompt(prompt) {
|
|
933
933
|
this._prompt = prompt;
|
|
934
934
|
this.noValidationMessage = prompt
|
|
935
|
-
? localize(
|
|
935
|
+
? localize(1765, "{0} (Press 'Enter' to confirm or 'Escape' to cancel)", prompt)
|
|
936
936
|
: QuickInput.noPromptMessage;
|
|
937
937
|
this.update();
|
|
938
938
|
}
|
|
@@ -13,7 +13,7 @@ function registerQuickInputCommandAndKeybindingRule(rule, options = {}) {
|
|
|
13
13
|
KeybindingsRegistry.registerCommandAndKeybindingRule({
|
|
14
14
|
weight: 200 /* KeybindingWeight.WorkbenchContrib */,
|
|
15
15
|
when: inQuickInputContext,
|
|
16
|
-
metadata: { description: localize(
|
|
16
|
+
metadata: { description: localize(1766, "Used while in the context of any kind of quick input. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.") },
|
|
17
17
|
...rule,
|
|
18
18
|
secondary: getSecondary(rule.primary, rule.secondary ?? [], options)
|
|
19
19
|
});
|
|
@@ -24,7 +24,7 @@ function registerQuickPickCommandAndKeybindingRule(rule, options = {}) {
|
|
|
24
24
|
when: ContextKeyExpr.and(ContextKeyExpr.or(
|
|
25
25
|
// Only things that use Tree widgets
|
|
26
26
|
ContextKeyExpr.equals(quickInputTypeContextKeyValue, "quickPick" /* QuickInputType.QuickPick */), ContextKeyExpr.equals(quickInputTypeContextKeyValue, "quickTree" /* QuickInputType.QuickTree */)), inQuickInputContext),
|
|
27
|
-
metadata: { description: localize(
|
|
27
|
+
metadata: { description: localize(1767, "Used while in the context of the quick pick. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.") },
|
|
28
28
|
...rule,
|
|
29
29
|
secondary: getSecondary(rule.primary, rule.secondary ?? [], options)
|
|
30
30
|
});
|
|
@@ -79,8 +79,8 @@ registerQuickPickCommandAndKeybindingRule({ id: 'quickInput.previous', primary:
|
|
|
79
79
|
// In this case, we want that modifier key+up/down to navigate to the next/previous item, not the next/previous separator.
|
|
80
80
|
// To handle this, we have a separate command for navigating to the next/previous separator when we are not in quick access mode.
|
|
81
81
|
// If, however, we are in quick access mode, and you hold down an additional modifier key, we will navigate to the next/previous separator.
|
|
82
|
-
const nextSeparatorFallbackDesc = localize(
|
|
83
|
-
const prevSeparatorFallbackDesc = localize(
|
|
82
|
+
const nextSeparatorFallbackDesc = localize(1768, "If we're in quick access mode, this will navigate to the next item. If we are not in quick access mode, this will navigate to the next separator.");
|
|
83
|
+
const prevSeparatorFallbackDesc = localize(1769, "If we're in quick access mode, this will navigate to the previous item. If we are not in quick access mode, this will navigate to the previous separator.");
|
|
84
84
|
if (isMacintosh) {
|
|
85
85
|
registerQuickPickCommandAndKeybindingRule({
|
|
86
86
|
id: 'quickInput.nextSeparatorWithQuickAccessFallback',
|
|
@@ -145,7 +145,7 @@ KeybindingsRegistry.registerCommandAndKeybindingRule({
|
|
|
145
145
|
// All other kinds of Quick things handle Accept, except Widget. In other words, Accepting is a detail on the things
|
|
146
146
|
// that extend IQuickInput
|
|
147
147
|
ContextKeyExpr.notEquals(quickInputTypeContextKeyValue, "quickWidget" /* QuickInputType.QuickWidget */), inQuickInputContext, ContextKeyExpr.not('isComposing')),
|
|
148
|
-
metadata: { description: localize(
|
|
148
|
+
metadata: { description: localize(1770, "Used while in the context of some quick input. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.") },
|
|
149
149
|
handler: (accessor) => {
|
|
150
150
|
const currentQuickPick = accessor.get(IQuickInputService).currentQuickInput;
|
|
151
151
|
currentQuickPick?.accept();
|