MCPcopy Create free account
hub / github.com/langgenius/dify / replace

Method replace

web/public/vs/editor/editor.main.js:697–697  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

695`&&($=2),this._modelData.model.getValue($,B)}setValue(X){try{if(this._beginUpdate(),!this._modelData)return;this._modelData.model.setValue(X)}finally{this._endUpdate()}}getModel(){return this._modelData?this._modelData.model:null}setModel(X=null){try{this._beginUpdate();const B=X;if(this._modelData===null&&B===null||this._modelData&&this._modelData.model===B)return;const $={oldModelUrl:this._modelData?.model.uri||null,newModelUrl:B?.uri||null};this._onWillChangeModel.fire($);const Q=this.hasTextFocus(),Z=this._detachModel();this._attachModel(B),Q&&this.hasModel()&&this.focus(),this._removeDecorationTypes(),this._onDidChangeModel.fire($),this._postDetachModelCleanup(Z),this._contributionsDisposable=this._contributions.onAfterModelAttached()}finally{this._endUpdate()}}_removeDecorationTypes(){if(this._decorationTypeKeysToIds={},this._decorationTypeSubtypes){for(const X in this._decorationTypeSubtypes){const B=this._decorationTypeSubtypes[X];for(const $ in B)this._removeDecorationType(X+"-"+$)}this._decorationTypeSubtypes={}}}getVisibleRanges(){return this._modelData?this._modelData.viewModel.getVisibleRanges():[]}getVisibleRangesPlusViewportAboveBelow(){return this._modelData?this._modelData.viewModel.getVisibleRangesPlusViewportAboveBelow():[]}getWhitespaces(){return this._modelData?this._modelData.viewModel.viewLayout.getWhitespaces():[]}static _getVerticalOffsetAfterPosition(X,B,$,Q){const Z=X.model.validatePosition({lineNumber:B,column:$}),te=X.viewModel.coordinatesConverter.convertModelPositionToViewPosition(Z);return X.viewModel.viewLayout.getVerticalOffsetAfterLineNumber(te.lineNumber,Q)}getTopForLineNumber(X,B=!1){return this._modelData?H._getVerticalOffsetForPosition(this._modelData,X,1,B):-1}getTopForPosition(X,B){return this._modelData?H._getVerticalOffsetForPosition(this._modelData,X,B,!1):-1}static _getVerticalOffsetForPosition(X,B,$,Q=!1){const Z=X.model.validatePosition({lineNumber:B,column:$}),te=X.viewModel.coordinatesConverter.convertModelPositionToViewPosition(Z);return X.viewModel.viewLayout.getVerticalOffsetForLineNumber(te.lineNumber,Q)}getBottomForLineNumber(X,B=!1){if(!this._modelData)return-1;const $=this._modelData.model.getLineMaxColumn(X);return H._getVerticalOffsetAfterPosition(this._modelData,X,$,B)}setHiddenAreas(X,B){this._modelData?.viewModel.setHiddenAreas(X.map($=>r.Range.lift($)),B)}getVisibleColumnFromPosition(X){if(!this._modelData)return X.column;const B=this._modelData.model.validatePosition(X),$=this._modelData.model.getOptions().tabSize;return c.CursorColumns.visibleColumnFromColumn(this._modelData.model.getLineContent(B.lineNumber),B.column,$)+1}getPosition(){return this._modelData?this._modelData.viewModel.getPosition():null}setPosition(X,B="api"){if(this._modelData){if(!a.Position.isIPosition(X))throw new Error("Invalid arguments");this._modelData.viewModel.setSelections(B,[{selectionStartLineNumber:X.lineNumber,selectionStartColumn:X.column,positionLineNumber:X.lineNumber,positionColumn:X.column}])}}_sendRevealRange(X,B,$,Q){if(!this._modelData)return;if(!r.Range.isIRange(X))throw new Error("Invalid arguments");const Z=this._modelData.model.validateRange(X),te=this._modelData.viewModel.coordinatesConverter.convertModelRangeToViewRange(Z);this._modelData.viewModel.revealRange("api",$,te,B,Q)}revealLine(X,B=0){this._revealLine(X,0,B)}revealLineInCenter(X,B=0){this._revealLine(X,1,B)}revealLineInCenterIfOutsideViewport(X,B=0){this._revealLine(X,2,B)}revealLineNearTop(X,B=0){this._revealLine(X,5,B)}_revealLine(X,B,$){if(typeof X!="number")throw new Error("Invalid arguments");this._sendRevealRange(new r.Range(X,1,X,1),B,!1,$)}revealPosition(X,B=0){this._revealPosition(X,0,!0,B)}revealPositionInCenter(X,B=0){this._revealPosition(X,1,!0,B)}revealPositionInCenterIfOutsideViewport(X,B=0){this._revealPosition(X,2,!0,B)}revealPositionNearTop(X,B=0){this._revealPosition(X,5,!0,B)}_revealPosition(X,B,$,Q){if(!a.Position.isIPosition(X))throw new Error("Invalid arguments");this._sendRevealRange(new r.Range(X.lineNumber,X.column,X.lineNumber,X.column),B,$,Q)}getSelection(){return this._modelData?this._modelData.viewModel.getSelection():null}getSelections(){return this._modelData?this._modelData.viewModel.getSelections():null}setSelection(X,B="api"){const $=u.Selection.isISelection(X),Q=r.Range.isIRange(X);if(!$&&!Q)throw new Error("Invalid arguments");if($)this._setSelectionImpl(X,B);else if(Q){const Z={selectionStartLineNumber:X.startLineNumber,selectionStartColumn:X.startColumn,positionLineNumber:X.endLineNumber,positionColumn:X.endColumn};this._setSelectionImpl(Z,B)}}_setSelectionImpl(X,B){if(!this._modelData)return;const $=new u.Selection(X.selectionStartLineNumber,X.selectionStartColumn,X.positionLineNumber,X.positionColumn);this._modelData.viewModel.setSelections(B,[$])}revealLines(X,B,$=0){this._revealLines(X,B,0,$)}revealLinesInCenter(X,B,$=0){this._revealLines(X,B,1,$)}revealLinesInCenterIfOutsideViewport(X,B,$=0){this._revealLines(X,B,2,$)}revealLinesNearTop(X,B,$=0){this._revealLines(X,B,5,$)}_revealLines(X,B,$,Q){if(typeof X!="number"||typeof B!="number")throw new Error("Invalid arguments");this._sendRevealRange(new r.Range(X,1,B,1),$,!1,Q)}revealRange(X,B=0,$=!1,Q=!0){this._revealRange(X,$?1:0,Q,B)}revealRangeInCenter(X,B=0){this._revealRange(X,1,!0,B)}revealRangeInCenterIfOutsideViewport(X,B=0){this._revealRange(X,2,!0,B)}revealRangeNearTop(X,B=0){this._revealRange(X,5,!0,B)}revealRangeNearTopIfOutsideViewport(X,B=0){this._revealRange(X,6,!0,B)}revealRangeAtTop(X,B=0){this._revealRange(X,3,!0,B)}_revealRange(X,B,$,Q){if(!r.Range.isIRange(X))throw new Error("Invalid arguments");this._sendRevealRange(r.Range.lift(X),B,$,Q)}setSelections(X,B="api",$=0){if(this._modelData){if(!X||X.length===0)throw new Error("Invalid arguments");for(let Q=0,Z=X.length;Q<Z;Q++)if(!u.Selection.isISelection(X[Q]))throw new Error("Invalid arguments");this._modelData.viewModel.setSelections(B,X,$)}}getContentWidth(){return this._modelData?this._modelData.viewModel.viewLayout.getContentWidth():-1}getScrollWidth(){return this._modelData?this._modelData.viewModel.viewLayout.getScrollWidth():-1}getScrollLeft(){return this._modelData?this._modelData.viewModel.viewLayout.getCurrentScrollLeft():-1}getContentHeight(){return this._modelData?this._modelData.viewModel.viewLayout.getContentHeight():-1}getScrollHeight(){return this._modelData?this._modelData.viewModel.viewLayout.getScrollHeight():-1}getScrollTop(){return this._modelData?this._modelData.viewModel.viewLayout.getCurrentScrollTop():-1}setScrollLeft(X,B=1){if(this._modelData){if(typeof X!="number")throw new Error("Invalid arguments");this._modelData.viewModel.viewLayout.setScrollPosition({scrollLeft:X},B)}}setScrollTop(X,B=1){if(this._modelData){if(typeof X!="number")throw new Error("Invalid arguments");this._modelData.viewModel.viewLayout.setScrollPosition({scrollTop:X},B)}}setScrollPosition(X,B=1){this._modelData&&this._modelData.viewModel.viewLayout.setScrollPosition(X,B)}hasPendingScrollAnimation(){return this._modelData?this._modelData.viewModel.viewLayout.hasPendingScrollAnimation():!1}saveViewState(){if(!this._modelData)return null;const X=this._contributions.saveViewState(),B=this._modelData.viewModel.saveCursorState(),$=this._modelData.viewModel.saveState();return{cursorState:B,viewState:$,contributionsState:X}}restoreViewState(X){if(!this._modelData||!this._modelData.hasRealView)return;const B=X;if(B&&B.cursorState&&B.viewState){const $=B.cursorState;Array.isArray($)?$.length>0&&this._modelData.viewModel.restoreCursorState($):this._modelData.viewModel.restoreCursorState([$]),this._contributions.restoreViewState(B.contributionsState||{});const Q=this._modelData.viewModel.reduceRestoreState(B.viewState);this._modelData.view.restoreState(Q)}}handleInitialized(){this._getViewModel()?.visibleLinesStabilized()}getContribution(X){return this._contributions.get(X)}getActions(){return Array.from(this._actions.values())}getSupportedActions(){let X=this.getActions();return X=X.filter(B=>B.isSupported()),X}getAction(X){return this._actions.get(X)||null}trigger(X,B,$){$=$||{};try{switch(this._beginUpdate(),B){case"compositionStart":this._startComposition();return;case"compositionEnd":this._endComposition(X);return;case"type":{const Z=$;this._type(X,Z.text||"");return}case"replacePreviousChar":{const Z=$;this._compositionType(X,Z.text||"",Z.replaceCharCnt||0,0,0);return}case"compositionType":{const Z=$;this._compositionType(X,Z.text||"",Z.replacePrevCharCnt||0,Z.replaceNextCharCnt||0,Z.positionDelta||0);return}case"paste":{const Z=$;this._paste(X,Z.text||"",Z.pasteOnNewLine||!1,Z.multicursorText||null,Z.mode||null,Z.clipboardEvent);return}case"cut":this._cut(X);return}const Q=this.getAction(B);if(Q){Promise.resolve(Q.run($)).then(void 0,k.onUnexpectedError);return}if(!this._modelData||this._triggerEditorCommand(X,B,$))return;this._triggerCommand(B,$)}finally{this._endUpdate()}}_triggerCommand(X,B){this._commandService.executeCommand(X,B)}_startComposition(){this._modelData&&(this._modelData.viewModel.startComposition(),this._onDidCompositionStart.fire())}_endComposition(X){this._modelData&&(this._modelData.viewModel.endComposition(X),this._onDidCompositionEnd.fire())}_type(X,B){!this._modelData||B.length===0||(X==="keyboard"&&this._onWillType.fire(B),this._modelData.viewModel.type(B,X),X==="keyboard"&&this._onDidType.fire(B))}_compositionType(X,B,$,Q,Z){this._modelData&&this._modelData.viewModel.compositionType(B,$,Q,Z,X)}_paste(X,B,$,Q,Z,te){if(!this._modelData)return;const re=this._modelData.viewModel,le=re.getSelection().getStartPosition();re.paste(B,$,Q,X);const me=re.getSelection().getStartPosition();X==="keyboard"&&this._onDidPaste.fire({clipboardEvent:te,range:new r.Range(le.lineNumber,le.column,me.lineNumber,me.column),languageId:Z})}_cut(X){this._modelData&&this._modelData.viewModel.cut(X)}_triggerEditorCommand(X,B,$){const Q=p.EditorExtensionsRegistry.getEditorCommand(B);return Q?($=$||{},$.source=X,this._instantiationService.invokeFunction(Z=>{Promise.resolve(Q.runEditorCommand(Z,this,$)).then(void 0,k.onUnexpectedError)}),!0):!1}_getViewModel(){return this._modelData?this._modelData.viewModel:null}pushUndoStop(){return!this._modelData||this._configuration.options.get(92)?!1:(this._modelData.model.pushStackElement(),!0)}popUndoStop(){return!this._modelData||this._configuration.options.get(92)?!1:(this._modelData.model.popStackElement(),!0)}executeEdits(X,B,$){if(!this._modelData||this._configuration.options.get(92))return!1;let Q;return $?Array.isArray($)?Q=()=>$:Q=$:Q=()=>null,this._modelData.viewModel.executeEdits(X,B,Q),!0}executeCommand(X,B){this._modelData&&this._modelData.viewModel.executeCommand(B,X)}executeCommands(X,B){this._modelData&&this._modelData.viewModel.executeCommands(B,X)}createDecorationsCollection(X){return new ie(this,X)}changeDecorations(X){return this._modelData?this._modelData.model.changeDecorations(X,this._id):null}getLineDecorations(X){return this._modelData?this._modelData.model.getLineDecorations(X,this._id,(0,g.filterValidationDecorations)(this._configuration.options)):null}getDecorationsInRange(X){return this._modelData?this._modelData.model.getDecorationsInRange(X,this._id,(0,g.filterValidationDecorations)(this._configuration.options)):null}deltaDecorations(X,B){return this._modelData?X.length===0&&B.length===0?X:this._modelData.model.deltaDecorations(X,B,this._id):[]}removeDecorations(X){!this._modelData||X.length===0||this._modelData.model.changeDecorations(B=>{B.deltaDecorations(X,[])})}removeDecorationsByType(X){const B=this._decorationTypeKeysToIds[X];B&&this.changeDecorations($=>$.deltaDecorations(B,[])),this._decorationTypeKeysToIds.hasOwnProperty(X)&&delete this._decorationTypeKeysToIds[X],this._decorationTypeSubtypes.hasOwnProperty(X)&&delete this._decorationTypeSubtypes[X]}getLayoutInfo(){return this._configuration.options.get(146)}createOverviewRuler(X){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.createOverviewRuler(X)}getContainerDomNode(){return this._domElement}getDomNode(){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.domNode.domNode}delegateVerticalScrollbarPointerDown(X){!this._modelData||!this._modelData.hasRealView||this._modelData.view.delegateVerticalScrollbarPointerDown(X)}delegateScrollFromMouseWheelEvent(X){!this._modelData||!this._modelData.hasRealView||this._modelData.view.delegateScrollFromMouseWheelEvent(X)}layout(X,B=!1){this._configuration.observeContainer(X),B||this.render()}focus(){!this._modelData||!this._modelData.hasRealView||this._modelData.view.focus()}hasTextFocus(){return!this._modelData||!this._modelData.hasRealView?!1:this._modelData.view.isFocused()}hasWidgetFocus(){return this._focusTracker&&this._focusTracker.hasFocus()}addContentWidget(X){const B={widget:X,position:X.getPosition()};this._contentWidgets.hasOwnProperty(X.getId())&&console.warn("Overwriting a content widget with the same id:"+X.getId()),this._contentWidgets[X.getId()]=B,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addContentWidget(B)}layoutContentWidget(X){const B=X.getId();if(this._contentWidgets.hasOwnProperty(B)){const $=this._contentWidgets[B];$.position=X.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutContentWidget($)}}removeContentWidget(X){const B=X.getId();if(this._contentWidgets.hasOwnProperty(B)){const $=this._contentWidgets[B];delete this._contentWidgets[B],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeContentWidget($)}}addOverlayWidget(X){const B={widget:X,position:X.getPosition()};this._overlayWidgets.hasOwnProperty(X.getId())&&console.warn("Overwriting an overlay widget with the same id."),this._overlayWidgets[X.getId()]=B,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addOverlayWidget(B)}layoutOverlayWidget(X){const B=X.getId();if(this._overlayWidgets.hasOwnProperty(B)){const $=this._overlayWidgets[B];$.position=X.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutOverlayWidget($)}}removeOverlayWidget(X){const B=X.getId();if(this._overlayWidgets.hasOwnProperty(B)){const $=this._overlayWidgets[B];delete this._overlayWidgets[B],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeOverlayWidget($)}}addGlyphMarginWidget(X){const B={widget:X,position:X.getPosition()};this._glyphMarginWidgets.hasOwnProperty(X.getId())&&console.warn("Overwriting a glyph margin widget with the same id."),this._glyphMarginWidgets[X.getId()]=B,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addGlyphMarginWidget(B)}layoutGlyphMarginWidget(X){const B=X.getId();if(this._glyphMarginWidgets.hasOwnProperty(B)){const $=this._glyphMarginWidgets[B];$.position=X.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutGlyphMarginWidget($)}}removeGlyphMarginWidget(X){const B=X.getId();if(this._glyphMarginWidgets.hasOwnProperty(B)){const $=this._glyphMarginWidgets[B];delete this._glyphMarginWidgets[B],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeGlyphMarginWidget($)}}changeViewZones(X){!this._modelData||!this._modelData.hasRealView||this._modelData.view.change(X)}getTargetAtClientPoint(X,B){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.getTargetAtClientPoint(X,B)}getScrolledVisiblePosition(X){if(!this._modelData||!this._modelData.hasRealView)return null;const B=this._modelData.model.validatePosition(X),$=this._configuration.options,Q=$.get(146),Z=H._getVerticalOffsetForPosition(this._modelData,B.lineNumber,B.column)-this.getScrollTop(),te=this._modelData.view.getOffsetForColumn(B.lineNumber,B.column)+Q.glyphMarginWidth+Q.lineNumbersWidth+Q.decorationsWidth-this.getScrollLeft();return{top:Z,left:te,height:$.get(67)}}getOffsetForColumn(X,B){return!this._modelData||!this._modelData.hasRealView?-1:this._modelData.view.getOffsetForColumn(X,B)}render(X=!1){!this._modelData||!this._modelData.hasRealView||this._modelData.viewModel.batchEvents(()=>{this._modelData.view.render(!0,X)})}setAriaOptions(X){!this._modelData||!this._modelData.hasRealView||this._modelData.view.setAriaOptions(X)}applyFontInfo(X){(0,m.applyFontInfo)(X,this._configuration.options.get(50))}setBanner(X,B){this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._bannerDomNode.remove(),this._bannerDomNode=X,this._configuration.setReservedHeight(X?B:0),this._bannerDomNode&&this._domElement.prepend(this._bannerDomNode)}_attachModel(X){if(!X){this._modelData=null;return}const B=[];this._domElement.setAttribute("data-mode-id",X.getLanguageId()),this._configuration.setIsDominatedByLongLines(X.isDominatedByLongLines()),this._configuration.setModelLineCount(X.getLineCount());const $=X.onBeforeAttached(),Q=new T.ViewModel(this._id,this._configuration,X,t.DOMLineBreaksComputerFactory.create(d.getWindow(this._domElement)),D.MonospaceLineBreaksComputerFactory.create(this._configuration.options),re=>d.scheduleAtNextAnimationFrame(d.getWindow(this._domElement),re),this.languageConfigurationService,this._themeService,$,{batchChanges:re=>{try{return this._beginUpdate(),re()}finally{this._endUpdate()}}});B.push(X.onWillDispose(()=>this.setModel(null))),B.push(Q.onEvent(re=>{switch(re.kind){case 0:this._onDidContentSizeChange.fire(re);break;case 1:this._editorTextFocus.setValue(re.hasFocus);break;case 2:this._onDidScrollChange.fire(re);break;case 3:this._onDidChangeViewZones.fire();break;case 4:this._onDidChangeHiddenAreas.fire();break;case 5:this._onDidAttemptReadOnlyEdit.fire();break;case 6:{if(re.reachedMaxCursorCount){const ye=this.getOption(80),Le=M.localize(70,"The number of cursors has been limited to {0}. Consider using [find and replace](https://code.visualstudio.com/docs/editor/codebasics#_find-and-replace) for larger changes or increase the editor multi cursor limit setting.",ye);this._notificationService.prompt(x.Severity.Warning,Le,[{label:"Find and Replace",run:()=>{this._commandService.executeCommand("editor.action.startFindReplaceAction")}},{label:M.localize(71,"Increase Multi Cursor Limit"),run:()=>{this._commandService.executeCommand("workbench.action.openSettings2",{query:"editor.multiCursorLimit"})}}])}const le=[];for(let ye=0,Le=re.selections.length;ye<Le;ye++)le[ye]=re.selections[ye].getPosition();const me={position:le[0],secondaryPositions:le.slice(1),reason:re.reason,source:re.source};this._onDidChangeCursorPosition.fire(me);const Ce={selection:re.selections[0],secondarySelections:re.selections.slice(1),modelVersionId:re.modelVersionId,oldSelections:re.oldSelections,oldModelVersionId:re.oldModelVersionId,source:re.source,reason:re.reason};this._onDidChangeCursorSelection.fire(Ce);break}case 7:this._onDidChangeModelDecorations.fire(re.event);break;case 8:this._domElement.setAttribute("data-mode-id",X.getLanguageId()),this._onDidChangeModelLanguage.fire(re.event);break;case 9:this._onDidChangeModelLanguageConfiguration.fire(re.event);break;case 10:this._onDidChangeModelContent.fire(re.event);break;case 11:this._onDidChangeModelOptions.fire(re.event);break;case 12:this._onDidChangeModelTokens.fire(re.event);break}}));const[Z,te]=this._createView(Q);if(te){this._domElement.appendChild(Z.domNode.domNode);let re=Object.keys(this._contentWidgets);for(let le=0,me=re.length;le<me;le++){const Ce=re[le];Z.addContentWidget(this._contentWidgets[Ce])}re=Object.keys(this._overlayWidgets);for(let le=0,me=re.length;le<me;le++){const Ce=re[le];Z.addOverlayWidget(this._overlayWidgets[Ce])}re=Object.keys(this._glyphMarginWidgets);for(let le=0,me=re.length;le<me;le++){const Ce=re[le];Z.addGlyphMarginWidget(this._glyphMarginWidgets[Ce])}Z.render(!1,!0),Z.domNode.domNode.setAttribute("data-uri",X.uri.toString())}this._modelData=new j(X,Q,Z,te,B,$)}_createView(X){let B;this.isSimpleWidget?B={paste:(Z,te,re,le)=>{this._paste("keyboard",Z,te,re,le)},type:Z=>{this._type("keyboard",Z)},compositionType:(Z,te,re,le)=>{this._compositionType("keyboard",Z,te,re,le)},startComposition:()=>{this._startComposition()},endComposition:()=>{this._endComposition("keyboard")},cut:()=>{this._cut("keyboard")}}:B={paste:(Z,te,re,le)=>{const me={text:Z,pasteOnNewLine:te,multicursorText:re,mode:le};this._commandService.executeCommand("paste",me)},type:Z=>{const te={text:Z};this._commandService.executeCommand("type",te)},compositionType:(Z,te,re,le)=>{if(re||le){const me={text:Z,replacePrevCharCnt:te,replaceNextCharCnt:re,positionDelta:le};this._commandService.executeCommand("compositionType",me)}else{const me={text:Z,replaceCharCnt:te};this._commandService.executeCommand("replacePreviousChar",me)}},startComposition:()=>{this._commandService.executeCommand("compositionStart",{})},endComposition:()=>{this._commandService.executeCommand("compositionEnd",{})},cut:()=>{this._commandService.executeCommand("cut",{})}};const $=new i.ViewUserInputEvents(X.coordinatesConverter);return $.onKeyDown=Z=>this._onKeyDown.fire(Z),$.onKeyUp=Z=>this._onKeyUp.fire(Z),$.onContextMenu=Z=>this._onContextMenu.fire(Z),$.onMouseMove=Z=>this._onMouseMove.fire(Z),$.onMouseLeave=Z=>this._onMouseLeave.fire(Z),$.onMouseDown=Z=>this._onMouseDown.fire(Z),$.onMouseUp=Z=>this._onMouseUp.fire(Z),$.onMouseDrag=Z=>this._onMouseDrag.fire(Z),$.onMouseDrop=Z=>this._onMouseDrop.fire(Z),$.onMouseDropCanceled=Z=>this._onMouseDropCanceled.fire(Z),$.onMouseWheel=Z=>this._onMouseWheel.fire(Z),[new o.View(B,this._configuration,this._themeService.getColorTheme(),X,$,this._overflowWidgetsDomNode,this._instantiationService),!0]}_postDetachModelCleanup(X){X?.removeAllDecorationsWithOwnerId(this._id)}_detachModel(){if(this._contributionsDisposable?.dispose(),this._contributionsDisposable=void 0,!this._modelData)return null;const X=this._modelData.model,B=this._modelData.hasRealView?this._modelData.view.domNode.domNode:null;return this._modelData.dispose(),this._modelData=null,this._domElement.removeAttribute("data-mode-id"),B&&this._domElement.contains(B)&&B.remove(),this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._bannerDomNode.remove(),X}_removeDecorationType(X){this._codeEditorService.removeDecorationType(X)}hasModel(){return this._modelData!==null}showDropIndicatorAt(X){const B=[{range:new r.Range(X.lineNumber,X.column,X.lineNumber,X.column),options:H.dropIntoEditorDecorationOptions}];this._dropIntoEditorDecorations.set(B),this.revealPosition(X,1)}removeDropIndicator(){this._dropIntoEditorDecorations.clear()}setContextValue(X,B){this._contextKeyService.createKey(X,B)}_beginUpdate(){this._updateCounter++,this._updateCounter===1&&this._onBeginUpdate.fire()}_endUpdate(){this._updateCounter--,this._updateCounter===0&&this._onEndUpdate.fire()}};e.CodeEditorWidget=z,e.CodeEditorWidget=z=H=ke([ce(3,O.IInstantiationService),ce(4,n.ICodeEditorService),ce(5,P.ICommandService),ce(6,N.IContextKeyService),ce(7,V.IThemeService),ce(8,x.INotificationService),ce(9,A.IAccessibilityService),ce(10,w.ILanguageConfigurationService),ce(11,L.ILanguageFeaturesService)],z);let U=0;class j{constructor(X,B,$,Q,Z,te){this.model=X,this.viewModel=B,this.view=$,this.hasRealView=Q,this.listenersToRemove=Z,this.attachedView=te}dispose(){(0,E.dispose)(this.listenersToRemove),this.model.onBeforeDetached(this.attachedView),this.hasRealView&&this.view.dispose(),this.viewModel.dispose()}}class Y extends E.Disposable{constructor(X){super(),this._emitterOptions=X,this._onDidChangeToTrue=this._register(new I.Emitter(this._emitterOptions)),this.onDidChangeToTrue=this._onDidChangeToTrue.event,this._onDidChangeToFalse=this._register(new I.Emitter(this._emitterOptions)),this.onDidChangeToFalse=this._onDidChangeToFalse.event,this._value=0}setValue(X){const B=X?2:1;this._value!==B&&(this._value=B,this._value===2?this._onDidChangeToTrue.fire():this._value===1&&this._onDidChangeToFalse.fire())}}e.BooleanEventEmitter=Y;class G extends I.Emitter{constructor(X,B){super({deliveryQueue:B}),this._contributions=X}fire(X){this._contributions.onBeforeInteractionEvent(),super.fire(X)}}class K extends E.Disposable{constructor(X,B){super(),this._editor=X,B.createKey("editorId",X.getId()),this._editorSimpleInput=v.EditorContextKeys.editorSimpleInput.bindTo(B),this._editorFocus=v.EditorContextKeys.focus.bindTo(B),this._textInputFocus=v.EditorContextKeys.textInputFocus.bindTo(B),this._editorTextFocus=v.EditorContextKeys.editorTextFocus.bindTo(B),this._tabMovesFocus=v.EditorContextKeys.tabMovesFocus.bindTo(B),this._editorReadonly=v.EditorContextKeys.readOnly.bindTo(B),this._inDiffEditor=v.EditorContextKeys.inDiffEditor.bindTo(B),this._editorColumnSelection=v.EditorContextKeys.columnSelection.bindTo(B),this._hasMultipleSelections=v.EditorContextKeys.hasMultipleSelections.bindTo(B),this._hasNonEmptySelection=v.EditorContextKeys.hasNonEmptySelection.bindTo(B),this._canUndo=v.EditorContextKeys.canUndo.bindTo(B),this._canRedo=v.EditorContextKeys.canRedo.bindTo(B),this._register(this._editor.onDidChangeConfiguration(()=>this._updateFromConfig())),this._register(this._editor.onDidChangeCursorSelection(()=>this._updateFromSelection())),this._register(this._editor.onDidFocusEditorWidget(()=>this._updateFromFocus())),this._register(this._editor.onDidBlurEditorWidget(()=>this._updateFromFocus())),this._register(this._editor.onDidFocusEditorText(()=>this._updateFromFocus())),this._register(this._editor.onDidBlurEditorText(()=>this._updateFromFocus())),this._register(this._editor.onDidChangeModel(()=>this._updateFromModel())),this._register(this._editor.onDidChangeConfiguration(()=>this._updateFromModel())),this._register(b.TabFocus.onDidChangeTabFocus($=>this._tabMovesFocus.set($))),this._updateFromConfig(),this._updateFromSelection(),this._updateFromFocus(),this._updateFromModel(),this._editorSimpleInput.set(this._editor.isSimpleWidget)}_updateFromConfig(){const X=this._editor.getOptions();this._tabMovesFocus.set(b.TabFocus.getTabFocusMode()),this._editorReadonly.set(X.get(92)),this._inDiffEditor.set(X.get(61)),this._editorColumnSelection.set(X.get(22))}_updateFromSelection(){const X=this._editor.getSelections();X?(this._hasMultipleSelections.set(X.length>1),this._hasNonEmptySelection.set(X.some(B=>!B.isEmpty()))):(this._hasMultipleSelections.reset(),this._hasNonEmptySelection.reset())}_updateFromFocus(){this._editorFocus.set(this._editor.hasWidgetFocus()&&!this._editor.isSimpleWidget),this._editorTextFocus.set(this._editor.hasTextFocus()&&!this._editor.isSimpleWidget),this._textInputFocus.set(this._editor.hasTextFocus())}_updateFromModel(){const X=this._editor.getModel();this._canUndo.set(!!(X&&X.canUndo())),this._canRedo.set(!!(X&&X.canRedo()))}}class R extends E.Disposable{constructor(X,B,$){super(),this._editor=X,this._contextKeyService=B,this._languageFeaturesService=$,this._langId=v.EditorContextKeys.languageId.bindTo(B),this._hasCompletionItemProvider=v.EditorContextKeys.hasCompletionItemProvider.bindTo(B),this._hasCodeActionsProvider=v.EditorContextKeys.hasCodeActionsProvider.bindTo(B),this._hasCodeLensProvider=v.EditorContextKeys.hasCodeLensProvider.bindTo(B),this._hasDefinitionProvider=v.EditorContextKeys.hasDefinitionProvider.bindTo(B),this._hasDeclarationProvider=v.EditorContextKeys.hasDeclarationProvider.bindTo(B),this._hasImplementationProvider=v.EditorContextKeys.hasImplementationProvider.bindTo(B),this._hasTypeDefinitionProvider=v.EditorContextKeys.hasTypeDefinitionProvider.bindTo(B),this._hasHoverProvider=v.EditorContextKeys.hasHoverProvider.bindTo(B),this._hasDocumentHighlightProvider=v.EditorContextKeys.hasDocumentHighlightProvider.bindTo(B),this._hasDocumentSymbolProvider=v.EditorContextKeys.hasDocumentSymbolProvider.bindTo(B),this._hasReferenceProvider=v.EditorContextKeys.hasReferenceProvider.bindTo(B),this._hasRenameProvider=v.EditorContextKeys.hasRenameProvider.bindTo(B),this._hasSignatureHelpProvider=v.EditorContextKeys.hasSignatureHelpProvider.bindTo(B),this._hasInlayHintsProvider=v.EditorContextKeys.hasInlayHintsProvider.bindTo(B),this._hasDocumentFormattingProvider=v.EditorContextKeys.hasDocumentFormattingProvider.bindTo(B),this._hasDocumentSelectionFormattingProvider=v.EditorContextKeys.hasDocumentSelectionFormattingProvider.bindTo(B),this._hasMultipleDocumentFormattingProvider=v.EditorContextKeys.hasMultipleDocumentFormattingProvider.bindTo(B),this._hasMultipleDocumentSelectionFormattingProvider=v.EditorContextKeys.hasMultipleDocumentSelectionFormattingProvider.bindTo(B),this._isInEmbeddedEditor=v.EditorContextKeys.isInEmbeddedEditor.bindTo(B);const Q=()=>this._update();this._register(X.onDidChangeModel(Q)),this._register(X.onDidChangeModelLanguage(Q)),this._register($.completionProvider.onDidChange(Q)),this._register($.codeActionProvider.onDidChange(Q)),this._register($.codeLensProvider.onDidChange(Q)),this._register($.definitionProvider.onDidChange(Q)),this._register($.declarationProvider.onDidChange(Q)),this._register($.implementationProvider.onDidChange(Q)),this._register($.typeDefinitionProvider.onDidChange(Q)),this._register($.hoverProvider.onDidChange(Q)),this._register($.documentHighlightProvider.onDidChange(Q)),this._register($.documentSymbolProvider.onDidChange(Q)),this._register($.referenceProvider.onDidChange(Q)),this._register($.renameProvider.onDidChange(Q)),this._register($.documentFormattingEditProvider.onDidChange(Q)),this._register($.documentRangeFormattingEditProvider.onDidChange(Q)),this._register($.signatureHelpProvider.onDidChange(Q)),this._register($.inlayHintsProvider.onDidChange(Q)),Q()}dispose(){super.dispose()}reset(){this._contextKeyService.bufferChangeEvents(()=>{this._langId.reset(),this._hasCompletionItemProvider.reset(),this._hasCodeActionsProvider.reset(),this._hasCodeLensProvider.reset(),this._hasDefinitionProvider.reset(),this._hasDeclarationProvider.reset(),this._hasImplementationProvider.reset(),this._hasTypeDefinitionProvider.reset(),this._hasHoverProvider.reset(),this._hasDocumentHighlightProvider.reset(),this._hasDocumentSymbolProvider.reset(),this._hasReferenceProvider.reset(),this._hasRenameProvider.reset(),this._hasDocumentFormattingProvider.reset(),this._hasDocumentSelectionFormattingProvider.reset(),this._hasSignatureHelpProvider.reset(),this._isInEmbeddedEditor.reset()})}_update(){const X=this._editor.getModel();if(!X){this.reset();return}this._contextKeyService.bufferChangeEvents(()=>{this._langId.set(X.getLanguageId()),this._hasCompletionItemProvider.set(this._languageFeaturesService.completionProvider.has(X)),this._hasCodeActionsProvider.set(this._languageFeaturesService.codeActionProvider.has(X)),this._hasCodeLensProvider.set(this._languageFeaturesService.codeLensProvider.has(X)),this._hasDefinitionProvider.set(this._languageFeaturesService.definitionProvider.has(X)),this._hasDeclarationProvider.set(this._languageFeaturesService.declarationProvider.has(X)),this._hasImplementationProvider.set(this._languageFeaturesService.implementationProvider.has(X)),this._hasTypeDefinitionProvider.set(this._languageFeaturesService.typeDefinitionProvider.has(X)),this._hasHoverProvider.set(this._languageFeaturesService.hoverProvider.has(X)),this._hasDocumentHighlightProvider.set(this._languageFeaturesService.documentHighlightProvider.has(X)),this._hasDocumentSymbolProvider.set(this._languageFeaturesService.documentSymbolProvider.has(X)),this._hasReferenceProvider.set(this._languageFeaturesService.referenceProvider.has(X)),this._hasRenameProvider.set(this._languageFeaturesService.renameProvider.has(X)),this._hasSignatureHelpProvider.set(this._languageFeaturesService.signatureHelpProvider.has(X)),this._hasInlayHintsProvider.set(this._languageFeaturesService.inlayHintsProvider.has(X)),this._hasDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.has(X)||this._languageFeaturesService.documentRangeFormattingEditProvider.has(X)),this._hasDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.has(X)),this._hasMultipleDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.all(X).length+this._languageFeaturesService.documentRangeFormattingEditProvider.all(X).length>1),this._hasMultipleDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.all(X).length>1),this._isInEmbeddedEditor.set(X.uri.scheme===y.Schemas.walkThroughSnippet||X.uri.scheme===y.Schemas.vscodeChatCodeBlock)})}}e.EditorModeContext=R;class J extends E.Disposable{constructor(X,B){super(),this._onChange=this._register(new I.Emitter),this.onChange=this._onChange.event,this._hadFocus=void 0,this._hasDomElementFocus=!1,this._domFocusTracker=this._register(d.trackFocus(X)),this._overflowWidgetsDomNodeHasFocus=!1,this._register(this._domFocusTracker.onDidFocus(()=>{this._hasDomElementFocus=!0,this._update()})),this._register(this._domFocusTracker.onDidBlur(()=>{this._hasDomElementFocus=!1,this._update()})),B&&(this._overflowWidgetsDomNode=this._register(d.trackFocus(B)),this._register(this._overflowWidgetsDomNode.onDidFocus(()=>{this._overflowWidgetsDomNodeHasFocus=!0,this._update()})),this._register(this._overflowWidgetsDomNode.onDidBlur(()=>{this._overflowWidgetsDomNodeHasFocus=!1,this._update()})))}_update(){const X=this._hasDomElementFocus||this._overflowWidgetsDomNodeHasFocus;this._hadFocus!==X&&(this._hadFocus=X,this._onChange.fire(void 0))}hasFocus(){return this._hadFocus??!1}}class ie{get length(){return this._decorationIds.length}constructor(X,B){this._editor=X,this._decorationIds=[],this._isChangingDecorations=!1,Array.isArray(B)&&B.length>0&&this.set(B)}onDidChange(X,B,$){return this._editor.onDidChangeModelDecorations(Q=>{this._isChangingDecorations||X.call(B,Q)},$)}getRange(X){return!this._editor.hasModel()||X>=this._decorationIds.length?null:this._editor.getModel().getDecorationRange(this._decorationIds[X])}getRanges(){if(!this._editor.hasModel())return[];const X=this._editor.getModel(),B=[];for(const $ of this._decorationIds){const Q=X.getDecorationRange($);Q&&B.push(Q)}return B}has(X){return this._decorationIds.includes(X.id)}clear(){this._decorationIds.length!==0&&this.set([])}set(X){try{this._isChangingDecorations=!0,this._editor.changeDecorations(B=>{this._decorationIds=B.deltaDecorations(this._decorationIds,X)})}finally{this._isChangingDecorations=!1}return this._decorationIds}append(X){let B=[];try{this._isChangingDecorations=!0,this._editor.changeDecorations($=>{B=$.deltaDecorations([],X),this._decorationIds=this._decorationIds.concat(B)})}finally{this._isChangingDecorations=!1}return B}}const ue=encodeURIComponent("<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 3' enable-background='new 0 0 6 3' height='3' width='6'><g fill='"),he=encodeURIComponent("'><polygon points='5.5,0 2.5,3 1.1,3 4.1,0'/><polygon points='4,0 6,2 6,0.6 5.4,0'/><polygon points='0,2 1,3 2.4,3 0,0.6'/></g></svg>");function pe(ge){return ue+encodeURIComponent(ge.toString())+he}const ae=encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" height="3" width="12"><g fill="'),ee=encodeURIComponent('"><circle cx="1" cy="1" r="1"/><circle cx="5" cy="1" r="1"/><circle cx="9" cy="1" r="1"/></g></svg>');function de(ge){return ae+encodeURIComponent(ge.toString())+ee}(0,V.registerThemingParticipant)((ge,X)=>{const B=ge.getColor(W.editorErrorForeground);B&&X.addRule(`.monaco-editor .squiggly-error { background: url("data:image/svg+xml,${pe(B)}") repeat-x bottom left; }`);const $=ge.getColor(W.editorWarningForeground);$&&X.addRule(`.monaco-editor .squiggly-warning { background: url("data:image/svg+xml,${pe($)}") repeat-x bottom left; }`);const Q=ge.getColor(W.editorInfoForeground);Q&&X.addRule(`.monaco-editor .squiggly-info { background: url("data:image/svg+xml,${pe(Q)}") repeat-x bottom left; }`);const Z=ge.getColor(W.editorHintForeground);Z&&X.addRule(`.monaco-editor .squiggly-hint { background: url("data:image/svg+xml,${de(Z)}") no-repeat bottom left; }`);const te=ge.getColor(l.editorUnnecessaryCodeOpacity);te&&X.addRule(`.monaco-editor.showUnused .squiggly-inline-unnecessary { opacity: ${te.rgba.a}; }`)})}),define(ne[125],se([1,0,60,34,219,36,17,61,24,12,7,50,25]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EmbeddedCodeEditorWidget=void 0;let t=class extends I.CodeEditorWidget{constructor(s,g,c,l,a,r,u,C,f,h,v,w,S){super(s,{...l.getRawOptions(),overflowWidgetsDomNode:l.getOverflowWidgetsDomNode()},c,a,r,u,C,f,h,v,w,S),this._parentEditor=l,this._overwriteOptions=g,super.updateOptions(this._overwriteOptions),this._register(l.onDidChangeConfiguration(L=>this._onParentConfigurationChanged(L)))}getParentEditor(){return this._parentEditor}_onParentConfigurationChanged(s){super.updateOptions(this._parentEditor.getRawOptions()),super.updateOptions(this._overwriteOptions)}updateOptions(s){d.mixin(this._overwriteOptions,s,!0),super.updateOptions(this._overwriteOptions)}};e.EmbeddedCodeEditorWidget=t,e.EmbeddedCodeEditorWidget=t=ke([ce(4,p.IInstantiationService),ce(5,k.ICodeEditorService),ce(6,_.ICommandService),ce(7,b.IContextKeyService),ce(8,o.IThemeService),ce(9,n.INotificationService),ce(10,m.IAccessibilityService),ce(11,E.ILanguageConfigurationService),ce(12,y.ILanguageFeaturesService)],t)}),define(ne[286],se([1,0,5,67,8,6,2,21,65,15,34,143,219,762,806,363,285,799,383,364,415,653,88,171,397,9,4,198,20,137,12,7,154,96,775,552,807,407,500]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D,T,M,A,P,N,O,F,x){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiffEditorWidget=void 0;let W=class extends O.DelegatingEditor{get onDidContentSizeChange(){return this._editors.onDidContentSizeChange}constructor(H,z,U,j,Y,G,K,R){super(),this._domElement=H,this._parentContextKeyService=j,this._parentInstantiationService=Y,this._accessibilitySignalService=K,this._editorProgressService=R,this.elements=(0,d.h)("div.monaco-diff-editor.side-by-side",{style:{position:"relative",height:"100%"}},[(0,d.h)("div.editor.original@original",{style:{position:"absolute",height:"100%"}}),(0,d.h)("div.editor.modified@modified",{style:{position:"absolute",height:"100%"}}),(0,d.h)("div.accessibleDiffViewer@accessibleDiffViewer",{style:{position:"absolute",height:"100%"}})]),this._diffModelSrc=this._register((0,m.disposableObservableValue)(this,void 0)),this._diffModel=(0,m.derived)(this,$=>this._diffModelSrc.read($)?.object),this.onDidChangeModel=E.Event.fromObservableLight(this._diffModel),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._domElement)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new A.ServiceCollection([T.IContextKeyService,this._contextKeyService]))),this._boundarySashes=(0,m.observableValue)(this,void 0),this._accessibleDiffViewerShouldBeVisible=(0,m.observableValue)(this,!1),this._accessibleDiffViewerVisible=(0,m.derived)(this,$=>this._options.onlyShowAccessibleDiffViewer.read($)?!0:this._accessibleDiffViewerShouldBeVisible.read($)),this._movedBlocksLinesPart=(0,m.observableValue)(this,void 0),this._layoutInfo=(0,m.derived)(this,$=>{const Q=this._rootSizeObserver.width.read($),Z=this._rootSizeObserver.height.read($);this._rootSizeObserver.automaticLayout?this.elements.root.style.height="100%":this.elements.root.style.height=Z+"px";const te=this._sash.read($),re=this._gutter.read($),le=re?.width.read($)??0,me=this._overviewRulerPart.read($)?.width??0;let Ce,ye,Le,Ee,Me;if(!!te){const Ne=te.sashLeft.read($),Ke=this._movedBlocksLinesPart.read($)?.width.read($)??0;Ce=0,ye=Ne-le-Ke,Me=Ne-le,Le=Ne,Ee=Q-Le-me}else{Me=0;const Ne=this._options.inlineViewHideOriginalLineNumbers.read($);Ce=le,Ne?ye=0:ye=Math.max(5,this._editors.originalObs.layoutInfoDecorationsLeft.read($)),Le=le+ye,Ee=Q-Le-me}return this.elements.original.style.left=Ce+"px",this.elements.original.style.width=ye+"px",this._editors.original.layout({width:ye,height:Z},!0),re?.layout(Me),this.elements.modified.style.left=Le+"px",this.elements.modified.style.width=Ee+"px",this._editors.modified.layout({width:Ee,height:Z},!0),{modifiedEditor:this._editors.modified.getLayoutInfo(),originalEditor:this._editors.original.getLayoutInfo()}}),this._diffValue=this._diffModel.map(($,Q)=>$?.diff.read(Q)),this.onDidUpdateDiff=E.Event.fromObservableLight(this._diffValue),G.willCreateDiffEditor(),this._contextKeyService.createKey("isInDiffEditor",!0),this._domElement.appendChild(this.elements.root),this._register((0,y.toDisposable)(()=>this.elements.root.remove())),this._rootSizeObserver=this._register(new C.ObservableElementSizeObserver(this.elements.root,z.dimension)),this._rootSizeObserver.setAutomaticLayout(z.automaticLayout??!1),this._options=this._instantiationService.createInstance(F.DiffEditorOptions,z),this._register((0,m.autorun)($=>{this._options.setWidth(this._rootSizeObserver.width.read($))})),this._contextKeyService.createKey(L.EditorContextKeys.isEmbeddedDiffEditor.key,!1),this._register((0,h.bindContextKey)(L.EditorContextKeys.isEmbeddedDiffEditor,this._contextKeyService,$=>this._options.isInEmbeddedEditor.read($))),this._register((0,h.bindContextKey)(L.EditorContextKeys.comparingMovedCode,this._contextKeyService,$=>!!this._diffModel.read($)?.movedTextToCompare.read($))),this._register((0,h.bindContextKey)(L.EditorContextKeys.diffEditorRenderSideBySideInlineBreakpointReached,this._contextKeyService,$=>this._options.couldShowInlineViewBecauseOfSize.read($))),this._register((0,h.bindContextKey)(L.EditorContextKeys.diffEditorInlineMode,this._contextKeyService,$=>!this._options.renderSideBySide.read($))),this._register((0,h.bindContextKey)(L.EditorContextKeys.hasChanges,this._contextKeyService,$=>(this._diffModel.read($)?.diff.read($)?.mappings.length??0)>0)),this._editors=this._register(this._instantiationService.createInstance(N.DiffEditorEditors,this.elements.original,this.elements.modified,this._options,U,($,Q,Z,te)=>this._createInnerEditor($,Q,Z,te))),this._register((0,h.bindContextKey)(L.EditorContextKeys.diffEditorOriginalWritable,this._contextKeyService,$=>this._options.originalEditable.read($))),this._register((0,h.bindContextKey)(L.EditorContextKeys.diffEditorModifiedWritable,this._contextKeyService,$=>!this._options.readOnly.read($))),this._register((0,h.bindContextKey)(L.EditorContextKeys.diffEditorOriginalUri,this._contextKeyService,$=>this._diffModel.read($)?.model.original.uri.toString()??"")),this._register((0,h.bindContextKey)(L.EditorContextKeys.diffEditorModifiedUri,this._contextKeyService,$=>this._diffModel.read($)?.model.modified.uri.toString()??"")),this._overviewRulerPart=(0,_.derivedDisposable)(this,$=>this._options.renderOverviewRuler.read($)?this._instantiationService.createInstance((0,f.readHotReloadableExport)(r.OverviewRulerFeature,$),this._editors,this.elements.root,this._diffModel,this._rootSizeObserver.width,this._rootSizeObserver.height,this._layoutInfo.map(Q=>Q.modifiedEditor)):void 0).recomputeInitiallyAndOnChange(this._store);const J={height:this._rootSizeObserver.height,width:this._rootSizeObserver.width.map(($,Q)=>$-(this._overviewRulerPart.read(Q)?.width??0))};this._sashLayout=new s.SashLayout(this._options,J),this._sash=(0,_.derivedDisposable)(this,$=>{const Q=this._options.renderSideBySide.read($);return this.elements.root.classList.toggle("side-by-side",Q),Q?new s.DiffEditorSash(this.elements.root,J,this._options.enableSplitViewResizing,this._boundarySashes,this._sashLayout.sashLeft,()=>this._sashLayout.resetSash()):void 0}).recomputeInitiallyAndOnChange(this._store);const ie=(0,_.derivedDisposable)(this,$=>this._instantiationService.createInstance((0,f.readHotReloadableExport)(l.HideUnchangedRegionsFeature,$),this._editors,this._diffModel,this._options)).recomputeInitiallyAndOnChange(this._store);(0,_.derivedDisposable)(this,$=>this._instantiationService.createInstance((0,f.readHotReloadableExport)(i.DiffEditorDecorations,$),this._editors,this._diffModel,this._options,this)).recomputeInitiallyAndOnChange(this._store);const ue=new Set,he=new Set;let pe=!1;const ae=(0,_.derivedDisposable)(this,$=>this._instantiationService.createInstance((0,f.readHotReloadableExport)(g.DiffEditorViewZones,$),(0,d.getWindow)(this._domElement),this._editors,this._diffModel,this._options,this,()=>pe||ie.get().isUpdatingHiddenAreas,ue,he)).recomputeInitiallyAndOnChange(this._store),ee=(0,m.derived)(this,$=>{const Q=ae.read($).viewZones.read($).orig,Z=ie.read($).viewZones.read($).origViewZones;return Q.concat(Z)}),de=(0,m.derived)(this,$=>{const Q=ae.read($).viewZones.read($).mod,Z=ie.read($).viewZones.read($).modViewZones;return Q.concat(Z)});this._register((0,C.applyViewZones)(this._editors.original,ee,$=>{pe=$},ue));let ge;this._register((0,C.applyViewZones)(this._editors.modified,de,$=>{pe=$,pe?ge=n.StableEditorScrollState.capture(this._editors.modified):(ge?.restore(this._editors.modified),ge=void 0)},he)),this._accessibleDiffViewer=(0,_.derivedDisposable)(this,$=>this._instantiationService.createInstance((0,f.readHotReloadableExport)(t.AccessibleDiffViewer,$),this.elements.accessibleDiffViewer,this._accessibleDiffViewerVisible,(Q,Z)=>this._accessibleDiffViewerShouldBeVisible.set(Q,Z),this._options.onlyShowAccessibleDiffViewer.map(Q=>!Q),this._rootSizeObserver.width,this._rootSizeObserver.height,this._diffModel.map((Q,Z)=>Q?.diff.read(Z)?.mappings.map(te=>te.lineRangeMapping)),new t.AccessibleDiffViewerModelFromEditors(this._editors))).recomputeInitiallyAndOnChange(this._store);const X=this._accessibleDiffViewerVisible.map($=>$?"hidden":"visible");this._register((0,C.applyStyle)(this.elements.modified,{visibility:X})),this._register((0,C.applyStyle)(this.elements.original,{visibility:X})),this._createDiffEditorContributions(),G.addDiffEditor(this),this._gutter=(0,_.derivedDisposable)(this,$=>this._options.shouldRenderGutterMenu.read($)?this._instantiationService.createInstance((0,f.readHotReloadableExport)(c.DiffEditorGutter,$),this.elements.root,this._diffModel,this._editors,this._options,this._sashLayout,this._boundarySashes):void 0),this._register((0,m.recomputeInitiallyAndOnChange)(this._layoutInfo)),(0,_.derivedDisposable)(this,$=>new((0,f.readHotReloadableExport)(a.MovedBlocksLinesFeature,$))(this.elements.root,this._diffModel,this._layoutInfo.map(Q=>Q.originalEditor),this._layoutInfo.map(Q=>Q.modifiedEditor),this._editors)).recomputeInitiallyAndOnChange(this._store,$=>{this._movedBlocksLinesPart.set($,void 0)}),this._register(E.Event.runAndSubscribe(this._editors.modified.onDidChangeCursorPosition,$=>this._handleCursorPositionChange($,!0))),this._register(E.Event.runAndSubscribe(this._editors.original.onDidChangeCursorPosition,$=>this._handleCursorPositionChange($,!1)));const B=this._diffModel.map(this,($,Q)=>{if($)return $.diff.read(Q)===void 0&&!$.isDiffUpToDate.read(Q)});this._register((0,m.autorunWithStore)(($,Q)=>{if(B.read($)===!0){const Z=this._editorProgressService.show(!0,1e3);Q.add((0,y.toDisposable)(()=>Z.done()))}})),this._register((0,m.autorunWithStore)(($,Q)=>{Q.add(new((0,f.readHotReloadableExport)(u.RevertButtonsFeature,$))(this._editors,this._diffModel,this._options,this))})),this._register((0,m.autorunWithStore)(($,Q)=>{const Z=this._diffModel.read($);if(Z)for(const te of[Z.model.original,Z.model.modified])Q.add(te.onWillDispose(re=>{(0,I.onUnexpectedError)(new I.BugIndicatingError("TextModel got disposed before DiffEditorWidget model got reset")),this.setModel(null)}))})),this._register((0,m.autorun)($=>{this._options.setModel(this._diffModel.read($))}))}_createInnerEditor(H,z,U,j){return H.createInstance(o.CodeEditorWidget,z,U,j)}_createDiffEditorContributions(){const H=b.EditorExtensionsRegistry.getDiffEditorContributions();for(const z of H)try{this._register(this._instantiationService.createInstance(z.ctor,this))}catch(U){(0,I.onUnexpectedError)(U)}}get _targetEditor(){return this._editors.modified}getEditorType(){return S.EditorType.IDiffEditor}layout(H){this._rootSizeObserver.observe(H)}hasTextFocus(){return this._editors.original.hasTextFocus()||this._editors.modified.hasTextFocus()}saveViewState(){const H=this._editors.original.saveViewState(),z=this._editors.modified.saveViewState();return{original:H,modified:z,modelState:this._diffModel.get()?.serializeState()}}restoreViewState(H){if(H&&H.original&&H.modified){const z=H;this._editors.original.restoreViewState(z.original),this._editors.modified.restoreViewState(z.modified),z.modelState&&this._diffModel.get()?.restoreSerializedState(z.modelState)}}handleInitialized(){this._editors.original.handleInitialized(),this._editors.modified.handleInitialized()}createViewModel(H){return this._instantiationService.createInstance(x.DiffEditorViewModel,H,this._options)}getModel(){return this._diffModel.get()?.model??null}setModel(H){const z=H?"model"in H?C.RefCounted.create(H).createNewRef(this):C.RefCounted.create(this.createViewModel(H),this):null;this.setDiffModel(z)}setDiffModel(H,z){const U=this._diffModel.get();!H&&U&&this._accessibleDiffViewer.get().close(),this._diffModel.get()!==H?.object&&(0,m.subtransaction)(z,j=>{const Y=H?.object;m.observableFromEvent.batchEventsGlobally(j,()=>{this._editors.original.setModel(Y?Y.model.original:null),this._editors.modified.setModel(Y?Y.model.modified:null)});const G=this._diffModelSrc.get()?.createNewRef(this);this._diffModelSrc.set(H?.createNewRef(this),j),setTimeout(()=>{G?.dispose()},0)})}updateOptions(H){this._options.updateOptions(H)}getContainerDomNode(){return this._domElement}getOriginalEditor(){return this._editors.original}getModifiedEditor(){return this._editors.modified}getLineChanges(){const H=this._diffModel.get()?.diff.get();return H?V(H):null}revert(H){const z=this._diffModel.get();!z||!z.isDiffUpToDate.get()||this._editors.modified.executeEdits("diffEditor",[{range:H.modified.toExclusiveRange(),text:z.model.original.getValueInRange(H.original.toExclusiveRange())}])}revertRangeMappings(H){const z=this._diffModel.get();if(!z||!z.isDiffUpToDate.get())return;const U=H.map(j=>({range:j.modifiedRange,text:z.model.original.getValueInRange(j.originalRange)}));this._editors.modified.executeEdits("diffEditor",U)}_goTo(H){this._editors.modified.setPosition(new v.Position(H.lineRangeMapping.modified.startLineNumber,1)),this._editors.modified.revealRangeInCenter(H.lineRangeMapping.modified.toExclusiveRange())}goToDiff(H){const z=this._diffModel.get()?.diff.get()?.mappings;if(!z||z.length===0)return;const U=this._editors.modified.getPosition().lineNumber;let j;H==="next"?j=z.find(Y=>Y.lineRangeMapping.modified.startLineNumber>U)??z[0]:j=(0,k.findLast)(z,Y=>Y.lineRangeMapping.modified.startLineNumber<U)??z[z.length-1],this._goTo(j),j.lineRangeMapping.modified.isEmpty?this._accessibilitySignalService.playSignal(D.AccessibilitySignal.diffLineDeleted,{source:"diffEditor.goToDiff"}):j.lineRangeMapping.original.isEmpty?this._accessibilitySignalService.playSignal(D.AccessibilitySignal.diffLineInserted,{source:"diffEditor.goToDiff"}):j&&this._accessibilitySignalService.playSignal(D.AccessibilitySignal.diffLineModified,{source:"diffEditor.goToDiff"})}revealFirstDiff(){const H=this._diffModel.get();H&&this.waitForDiff().then(()=>{const z=H.diff.get()?.mappings;!z||z.length===0||this._goTo(z[0])})}accessibleDiffViewerNext(){this._accessibleDiffViewer.get().next()}accessibleDiffViewerPrev(){this._accessibleDiffViewer.get().prev()}async waitForDiff(){const H=this._diffModel.get();H&&await H.waitForDiff()}mapToOtherSide(){const H=this._editors.modified.hasWidgetFocus(),z=H?this._editors.modified:this._editors.original,U=H?this._editors.original:this._editors.modified;let j;const Y=z.getSelection();if(Y){const G=this._diffModel.get()?.diff.get()?.mappings.map(K=>H?K.lineRangeMapping.flip():K.lineRangeMapping);if(G){const K=(0,C.translatePosition)(Y.getStartPosition(),G),R=(0,C.translatePosition)(Y.getEndPosition(),G);j=w.Range.plusRange(K,R)}}return{destination:U,destinationSelection:j}}switchSide(){const{destination:H,destinationSelection:z}=this.mapToOtherSide();H.focus(),z&&H.setSelection(z)}exitCompareMove(){const H=this._diffModel.get();H&&H.movedTextToCompare.set(void 0,void 0)}collapseAllUnchangedRegions(){const H=this._diffModel.get()?.unchangedRegions.get();H&&(0,m.transaction)(z=>{for(const U of H)U.collapseAll(z)})}showAllUnchangedRegions(){const H=this._diffModel.get()?.unchangedRegions.get();H&&(0,m.transaction)(z=>{for(const U of H)U.showAll(z)})}_handleCursorPositionChange(H,z){if(H?.reason===3){const U=this._diffModel.get()?.diff.get()?.mappings.find(j=>z?j.lineRangeMapping.modified.contains(H.position.lineNumber):j.lineRangeMapping.original.contains(H.position.lineNumber));U?.lineRangeMapping.modified.isEmpty?this._accessibilitySignalService.playSignal(D.AccessibilitySignal.diffLineDeleted,{source:"diffEditor.cursorPositionChanged"}):U?.lineRangeMapping.original.isEmpty?this._accessibilitySignalService.playSignal(D.AccessibilitySignal.diffLineInserted,{source:"diffEditor.cursorPositionChanged"}):U&&this._accessibilitySignalService.playSignal(D.AccessibilitySignal.diffLineModified,{source:"diffEditor.cursorPositionChanged"})}}};e.DiffEditorWidget=W,e.DiffEditorWidget=W=ke([ce(3,T.IContextKeyService),ce(4,M.IInstantiationService),ce(5,p.ICodeEditorService),ce(6,D.IAccessibilitySignalService),ce(7,P.IEditorProgressService)],W);function V(q){return q.mappings.map(H=>{const z=H.lineRangeMapping;let U,j,Y,G,K=z.innerChanges;return z.original.isEmpty?(U=z.original.startLineNumber-1,j=0,K=void 0):(U=z.original.startLineNumber,j=z.original.endLineNumberExclusive-1),z.modified.isEmpty?(Y=z.modified.startLineNumber-1,G=0,K=void 0):(Y=z.modified.startLineNumber,G=z.modified.endLineNumberExclusive-1),{originalStartLineNumber:U,originalEndLineNumber:j,modifiedStartLineNumber:Y,modifiedEndLineNumber:G,charChanges:K?.map(R=>({originalStartLineNumber:R.originalRange.startLineNumber,originalStartColumn:R.originalRange.startColumn,originalEndLineNumber:R.originalRange.endLineNumber,originalEndColumn:R.originalRange.endColumn,modifiedStartLineNumber:R.modifiedRange.startLineNumber,modifiedStartColumn:R.modifiedRange.startColumn,modifiedEndLineNumber:R.modifiedRange.endLineNumber,modifiedEndColumn:R.modifiedRange.endColumn}))}})}}),define(ne[811],se([1,0,5,26,15,34,286,20,3,29,28,12,139]),function(oe,e,d,k,I,E,y,m,_,b,p,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AccessibleDiffViewerPrev=e.AccessibleDiffViewerNext=e.RevertHunkOrSelection=e.ShowAllUnchangedRegions=e.CollapseAllUnchangedRegions=e.ExitCompareMove=e.SwitchSide=e.ToggleUseInlineViewWhenSpaceIsLimited=e.ToggleShowMovedCodeBlocks=e.ToggleCollapseUnchangedRegions=void 0,e.findDiffEditor=h,e.findFocusedDiffEditor=v;class o extends b.Action2{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:(0,_.localize2)(72,"Toggle Collapse Unchanged Regions"),icon:k.Codicon.map,toggled:n.ContextKeyExpr.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:n.ContextKeyExpr.has("isInDiffEditor"),menu:{when:n.ContextKeyExpr.has("isInDiffEditor"),id:b.MenuId.EditorTitle,order:22,group:"navigation"}})}run(L,...D){const T=L.get(p.IConfigurationService),M=!T.getValue("diffEditor.hideUnchangedRegions.enabled");T.updateValue("diffEditor.hideUnchangedRegions.enabled",M)}}e.ToggleCollapseUnchangedRegions=o;class t extends b.Action2{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:(0,_.localize2)(73,"Toggle Show Moved Code Blocks"),precondition:n.ContextKeyExpr.has("isInDiffEditor")})}run(L,...D){const T=L.get(p.IConfigurationService),M=!T.getValue("diffEditor.experimental.showMoves");T.updateValue("diffEditor.experimental.showMoves",M)}}e.ToggleShowMovedCodeBlocks=t;class i extends b.Action2{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:(0,_.localize2)(74,"Toggle Use Inline View When Space Is Limited"),precondition:n.ContextKeyExpr.has("isInDiffEditor")})}run(L,...D){const T=L.get(p.IConfigurationService),M=!T.getValue("diffEditor.useInlineViewWhenSpaceIsLimited");T.updateValue("diffEditor.useInlineViewWhenSpaceIsLimited",M)}}e.ToggleUseInlineViewWhenSpaceIsLimited=i;const s=(0,_.localize2)(75,"Diff Editor");class g extends I.EditorAction2{constructor(){super({id:"diffEditor.switchSide",title:(0,_.localize2)(76,"Switch Side"),icon:k.Codicon.arrowSwap,precondition:n.ContextKeyExpr.has("isInDiffEditor"),f1:!0,category:s})}runEditorCommand(L,D,T){const M=v(L);if(M instanceof y.DiffEditorWidget){if(T&&T.dryRun)return{destinationSelection:M.mapToOtherSide().destinationSelection};M.switchSide()}}}e.SwitchSide=g;class c extends I.EditorAction2{constructor(){super({id:"diffEditor.exitCompareMove",title:(0,_.localize2)(77,"Exit Compare Move"),icon:k.Codicon.close,precondition:m.EditorContextKeys.comparingMovedCode,f1:!1,category:s,keybinding:{weight:1e4,primary:9}})}runEditorCommand(L,D,...T){const M=v(L);M instanceof y.DiffEditorWidget&&M.exitCompareMove()}}e.ExitCompareMove=c;class l extends I.EditorAction2{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:(0,_.localize2)(78,"Collapse All Unchanged Regions"),icon:k.Codicon.fold,precondition:n.ContextKeyExpr.has("isInDiffEditor"),f1:!0,category:s})}runEditorCommand(L,D,...T){const M=v(L);M instanceof y.DiffEditorWidget&&M.collapseAllUnchangedRegions()}}e.CollapseAllUnchangedRegions=l;class a extends I.EditorAction2{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:(0,_.localize2)(79,"Show All Unchanged Regions"),icon:k.Codicon.unfold,precondition:n.ContextKeyExpr.has("isInDiffEditor"),f1:!0,category:s})}runEditorCommand(L,D,...T){const M=v(L);M instanceof y.DiffEditorWidget&&M.showAllUnchangedRegions()}}e.ShowAllUnchangedRegions=a;class r extends b.Action2{constructor(){super({id:"diffEditor.revert",title:(0,_.localize2)(80,"Revert"),f1:!1,category:s})}run(L,D){const T=h(L,D.originalUri,D.modifiedUri);T instanceof y.DiffEditorWidget&&T.revertRangeMappings(D.mapping.innerChanges??[])}}e.RevertHunkOrSelection=r;const u=(0,_.localize2)(81,"Accessible Diff Viewer");class C extends b.Action2{static{this.id="editor.action.accessibleDiffViewer.next"}constructor(){super({id:C.id,title:(0,_.localize2)(82,"Go to Next Difference"),category:u,precondition:n.ContextKeyExpr.has("isInDiffEditor"),keybinding:{primary:65,weight:100},f1:!0})}run(L){v(L)?.accessibleDiffViewerNext()}}e.AccessibleDiffViewerNext=C;class f extends b.Action2{static{this.id="editor.action.accessibleDiffViewer.prev"}constructor(){super({id:f.id,title:(0,_.localize2)(83,"Go to Previous Difference"),category:u,precondition:n.ContextKeyExpr.has("isInDiffEditor"),keybinding:{primary:1089,weight:100},f1:!0})}run(L){v(L)?.accessibleDiffViewerPrev()}}e.AccessibleDiffViewerPrev=f;function h(S,L,D){return S.get(E.ICodeEditorService).listDiffEditors().find(A=>{const P=A.getModifiedEditor(),N=A.getOriginalEditor();return P&&P.getModel()?.uri.toString()===D.toString()&&N&&N.getModel()?.uri.toString()===L.toString()})||null}function v(S){const D=S.get(E.ICodeEditorService).listDiffEditors(),T=(0,d.getActiveElement)();if(T)for(const M of D){const A=M.getContainerDomNode();if(w(A,T))return M}return null}function w(S,L){let D=L;for(;D;){if(D===S)return!0;D=D.parentElement}return!1}}),define(ne[812],se([1,0,26,811,20,3,29,24,12,139]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,y.registerAction2)(k.ToggleCollapseUnchangedRegions),(0,y.registerAction2)(k.ToggleShowMovedCodeBlocks),(0,y.registerAction2)(k.ToggleUseInlineViewWhenSpaceIsLimited),y.MenuRegistry.appendMenuItem(y.MenuId.EditorTitle,{command:{id:new k.ToggleUseInlineViewWhenSpaceIsLimited().desc.id,title:(0,E.localize)(106,"Use Inline View When Space Is Limited"),toggled:_.ContextKeyExpr.has("config.diffEditor.useInlineViewWhenSpaceIsLimited"),precondition:_.ContextKeyExpr.has("isInDiffEditor")},order:11,group:"1_diff",when:_.ContextKeyExpr.and(I.EditorContextKeys.diffEditorRenderSideBySideInlineBreakpointReached,_.ContextKeyExpr.has("isInDiffEditor"))}),y.MenuRegistry.appendMenuItem(y.MenuId.EditorTitle,{command:{id:new k.ToggleShowMovedCodeBlocks().desc.id,title:(0,E.localize)(107,"Show Moved Code Blocks"),icon:d.Codicon.move,toggled:_.ContextKeyEqualsExpr.create("config.diffEditor.experimental.showMoves",!0),precondition:_.ContextKeyExpr.has("isInDiffEditor")},order:10,group:"1_diff",when:_.ContextKeyExpr.has("isInDiffEditor")}),(0,y.registerAction2)(k.RevertHunkOrSelection);for(const b of[{icon:d.Codicon.arrowRight,key:I.EditorContextKeys.diffEditorInlineMode.toNegated()},{icon:d.Codicon.discard,key:I.EditorContextKeys.diffEditorInlineMode}])y.MenuRegistry.appendMenuItem(y.MenuId.DiffEditorHunkToolbar,{command:{id:new k.RevertHunkOrSelection().desc.id,title:(0,E.localize)(108,"Revert Block"),icon:b.icon},when:_.ContextKeyExpr.and(I.EditorContextKeys.diffEditorModifiedWritable,b.key),order:5,group:"primary"}),y.MenuRegistry.appendMenuItem(y.MenuId.DiffEditorSelectionToolbar,{command:{id:new k.RevertHunkOrSelection().desc.id,title:(0,E.localize)(109,"Revert Selection"),icon:b.icon},when:_.ContextKeyExpr.and(I.EditorContextKeys.diffEditorModifiedWritable,b.key),order:5,group:"primary"});(0,y.registerAction2)(k.SwitchSide),(0,y.registerAction2)(k.ExitCompareMove),(0,y.registerAction2)(k.CollapseAllUnchangedRegions),(0,y.registerAction2)(k.ShowAllUnchangedRegions),y.MenuRegistry.appendMenuItem(y.MenuId.EditorTitle,{command:{id:k.AccessibleDiffViewerNext.id,title:(0,E.localize)(110,"Open Accessible Diff Viewer"),precondition:_.ContextKeyExpr.has("isInDiffEditor")},order:10,group:"2_diff",when:_.ContextKeyExpr.and(I.EditorContextKeys.accessibleDiffViewerVisible.negate(),_.ContextKeyExpr.has("isInDiffEditor"))}),m.CommandsRegistry.registerCommandAlias("editor.action.diffReview.next",k.AccessibleDiffViewerNext.id),(0,y.registerAction2)(k.AccessibleDiffViewerNext),m.CommandsRegistry.registerCommandAlias("editor.action.diffReview.prev",k.AccessibleDiffViewerPrev.id),(0,y.registerAction2)(k.AccessibleDiffViewerPrev)}),define(ne[420],se([1,0,5,258,26,2,21,92,112,286,124,218,29,7,365,12,154]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiffEditorItemTemplate=e.TemplateData=void 0;class c{constructor(r,u){this.viewModel=r,this.deltaScrollVertical=u}getId(){return this.viewModel}}e.TemplateData=c;let l=class extends E.Disposable{constructor(r,u,C,f,h){super(),this._container=r,this._overflowWidgetsDomNode=u,this._workbenchUIElementFactory=C,this._instantiationService=f,this._viewModel=(0,m.observableValue)(this,void 0),this._collapsed=(0,y.derived)(this,S=>this._viewModel.read(S)?.collapsed.read(S)),this._editorContentHeight=(0,m.observableValue)(this,500),this.contentHeight=(0,y.derived)(this,S=>(this._collapsed.read(S)?0:this._editorContentHeight.read(S))+this._outerEditorHeight),this._modifiedContentWidth=(0,m.observableValue)(this,0),this._modifiedWidth=(0,m.observableValue)(this,0),this._originalContentWidth=(0,m.observableValue)(this,0),this._originalWidth=(0,m.observableValue)(this,0),this.maxScroll=(0,y.derived)(this,S=>{const L=this._modifiedContentWidth.read(S)-this._modifiedWidth.read(S),D=this._originalContentWidth.read(S)-this._originalWidth.read(S);return L>D?{maxScroll:L,width:this._modifiedWidth.read(S)}:{maxScroll:D,width:this._originalWidth.read(S)}}),this._elements=(0,d.h)("div.multiDiffEntry",[(0,d.h)("div.header@header",[(0,d.h)("div.header-content",[(0,d.h)("div.collapse-button@collapseButton"),(0,d.h)("div.file-path",[(0,d.h)("div.title.modified.show-file-icons@primaryPath",[]),(0,d.h)("div.status.deleted@status",["R"]),(0,d.h)("div.title.original.show-file-icons@secondaryPath",[])]),(0,d.h)("div.actions@actions")])]),(0,d.h)("div.editorParent",[(0,d.h)("div.editorContainer@editor")])]),this.editor=this._register(this._instantiationService.createInstance(b.DiffEditorWidget,this._elements.editor,{overflowWidgetsDomNode:this._overflowWidgetsDomNode},{})),this.isModifedFocused=(0,_.observableCodeEditor)(this.editor.getModifiedEditor()).isFocused,this.isOriginalFocused=(0,_.observableCodeEditor)(this.editor.getOriginalEditor()).isFocused,this.isFocused=(0,y.derived)(this,S=>this.isModifedFocused.read(S)||this.isOriginalFocused.read(S)),this._resourceLabel=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.primaryPath)):void 0,this._resourceLabel2=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.secondaryPath)):void 0,this._dataStore=this._register(new E.DisposableStore),this._headerHeight=40,this._lastScrollTop=-1,this._isSettingScrollTop=!1;const v=new k.Button(this._elements.collapseButton,{});this._register((0,y.autorun)(S=>{v.element.className="",v.icon=this._collapsed.read(S)?I.Codicon.chevronRight:I.Codicon.chevronDown})),this._register(v.onDidClick(()=>{this._viewModel.get()?.collapsed.set(!this._collapsed.get(),void 0)})),this._register((0,y.autorun)(S=>{this._elements.editor.style.display=this._collapsed.read(S)?"none":"block"})),this._register(this.editor.getModifiedEditor().onDidLayoutChange(S=>{const L=this.editor.getModifiedEditor().getLayoutInfo().contentWidth;this._modifiedWidth.set(L,void 0)})),this._register(this.editor.getOriginalEditor().onDidLayoutChange(S=>{const L=this.editor.getOriginalEditor().getLayoutInfo().contentWidth;this._originalWidth.set(L,void 0)})),this._register(this.editor.onDidContentSizeChange(S=>{(0,m.globalTransaction)(L=>{this._editorContentHeight.set(S.contentHeight,L),this._modifiedContentWidth.set(this.editor.getModifiedEditor().getContentWidth(),L),this._originalContentWidth.set(this.editor.getOriginalEditor().getContentWidth(),L)})})),this._register(this.editor.getOriginalEditor().onDidScrollChange(S=>{if(this._isSettingScrollTop||!S.scrollTopChanged||!this._data)return;const L=S.scrollTop-this._lastScrollTop;this._data.deltaScrollVertical(L)})),this._register((0,y.autorun)(S=>{const L=this._viewModel.read(S)?.isActive.read(S);this._elements.root.classList.toggle("active",L)})),this._container.appendChild(this._elements.root),this._outerEditorHeight=this._headerHeight,this._contextKeyService=this._register(h.createScoped(this._elements.actions));const w=this._register(this._instantiationService.createChild(new g.ServiceCollection([s.IContextKeyService,this._contextKeyService])));this._register(w.createInstance(n.MenuWorkbenchToolBar,this._elements.actions,o.MenuId.MultiDiffEditorFileToolbar,{actionRunner:this._register(new i.ActionRunnerWithContext(()=>this._viewModel.get()?.modifiedUri)),menuOptions:{shouldForwardArgs:!0},toolbarOptions:{primaryGroup:S=>S.startsWith("navigation")},actionViewItemProvider:(S,L)=>(0,p.createActionViewItem)(w,S,L)}))}setScrollLeft(r){this._modifiedContentWidth.get()-this._modifiedWidth.get()>this._originalContentWidth.get()-this._originalWidth.get()?this.editor.getModifiedEditor().setScrollLeft(r):this.editor.getOriginalEditor().setScrollLeft(r)}setData(r){this._data=r;function u(f){return{...f,scrollBeyondLastLine:!1,hideUnchangedRegions:{enabled:!0},scrollbar:{vertical:"hidden",horizontal:"hidden",handleMouseWheel:!1,useShadows:!1},renderOverviewRuler:!1,fixedOverflowWidgets:!0,overviewRulerBorder:!1}}if(!r){(0,m.globalTransaction)(f=>{this._viewModel.set(void 0,f),this.editor.setDiffModel(null,f),this._dataStore.clear()});return}const C=r.viewModel.documentDiffItem;if((0,m.globalTransaction)(f=>{this._resourceLabel?.setUri(r.viewModel.modifiedUri??r.viewModel.originalUri,{strikethrough:r.viewModel.modifiedUri===void 0});let h=!1,v=!1,w=!1,S="";r.viewModel.modifiedUri&&r.viewModel.originalUri&&r.viewModel.modifiedUri.path!==r.viewModel.originalUri.path?(S="R",h=!0):r.viewModel.modifiedUri?r.viewModel.originalUri||(S="A",w=!0):(S="D",v=!0),this._elements.status.classList.toggle("renamed",h),this._elements.status.classList.toggle("deleted",v),this._elements.status.classList.toggle("added",w),this._elements.status.innerText=S,this._resourceLabel2?.setUri(h?r.viewModel.originalUri:void 0,{strikethrough:!0}),this._dataStore.clear(),this._viewModel.set(r.viewModel,f),this.editor.setDiffModel(r.viewModel.diffEditorViewModelRef,f),this.editor.updateOptions(u(C.options??{}))}),C.onOptionsDidChange&&this._dataStore.add(C.onOptionsDidChange(()=>{this.editor.updateOptions(u(C.options??{}))})),r.viewModel.isAlive.recomputeInitiallyAndOnChange(this._dataStore,f=>{f||this.setData(void 0)}),r.viewModel.documentDiffItem.contextKeys)for(const[f,h]of Object.entries(r.viewModel.documentDiffItem.contextKeys))this._contextKeyService.createKey(f,h)}render(r,u,C,f){this._elements.root.style.visibility="visible",this._elements.root.style.top=`${r.start}px`,this._elements.root.style.height=`${r.length}px`,this._elements.root.style.width=`${u}px`,this._elements.root.style.position="absolute";const h=r.length-this._headerHeight,v=Math.max(0,Math.min(f.start-r.start,h));this._elements.header.style.transform=`translateY(${v}px)`,(0,m.globalTransaction)(w=>{this.editor.layout({width:u-2*8-2*1,height:r.length-this._outerEditorHeight})});try{this._isSettingScrollTop=!0,this._lastScrollTop=C,this.editor.getOriginalEditor().setScrollTop(C)}finally{this._isSettingScrollTop=!1}this._elements.header.classList.toggle("shadow",v>0||C>0),this._elements.header.classList.toggle("collapsed",v===h)}hide(){this._elements.root.style.top="-100000px",this._elements.root.style.visibility="hidden"}};e.DiffEditorItemTemplate=l,e.DiffEditorItemTemplate=l=ke([ce(3,t.IInstantiationService),ce(4,s.IContextKeyService)],l)}),define(ne[813],se([1,0,5,86,13,67,8,2,21,92,163,88,68,23,20,12,7,154,420,553,3,502]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MultiDiffEditorWidgetImpl=void 0;let u=class extends m.Disposable{constructor(h,v,w,S,L,D){super(),this._element=h,this._dimension=v,this._viewModel=w,this._workbenchUIElementFactory=S,this._parentContextKeyService=L,this._parentInstantiationService=D,this._scrollableElements=(0,d.h)("div.scrollContent",[(0,d.h)("div@content",{style:{overflow:"hidden"}}),(0,d.h)("div.monaco-editor@overflowWidgetsDomNode",{})]),this._scrollable=this._register(new p.Scrollable({forceIntegerValues:!1,scheduleAtNextAnimationFrame:M=>(0,d.scheduleAtNextAnimationFrame)((0,d.getWindow)(this._element),M),smoothScrollDuration:100})),this._scrollableElement=this._register(new k.SmoothScrollableElement(this._scrollableElements.root,{vertical:1,horizontal:1,useShadows:!1},this._scrollable)),this._elements=(0,d.h)("div.monaco-component.multiDiffEditor",{},[(0,d.h)("div",{},[this._scrollableElement.getDomNode()]),(0,d.h)("div.placeholder@placeholder",{},[(0,d.h)("div",[(0,r.localize)(132,"No Changed Files")])])]),this._sizeObserver=this._register(new n.ObservableElementSizeObserver(this._element,void 0)),this._objectPool=this._register(new a.ObjectPool(M=>{const A=this._instantiationService.createInstance(l.DiffEditorItemTemplate,this._scrollableElements.content,this._scrollableElements.overflowWidgetsDomNode,this._workbenchUIElementFactory);return A.setData(M),A})),this.scrollTop=(0,_.observableFromEvent)(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollTop),this.scrollLeft=(0,_.observableFromEvent)(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollLeft),this._viewItemsInfo=(0,_.derivedWithStore)(this,(M,A)=>{const P=this._viewModel.read(M);if(!P)return{items:[],getItem:x=>{throw new y.BugIndicatingError}};const N=P.items.read(M),O=new Map;return{items:N.map(x=>{const W=A.add(new C(x,this._objectPool,this.scrollLeft,q=>{this._scrollableElement.setScrollPosition({scrollTop:this._scrollableElement.getScrollPosition().scrollTop+q})})),V=this._lastDocStates?.[W.getKey()];return V&&(0,b.transaction)(q=>{W.setViewState(V,q)}),O.set(x,W),W}),getItem:x=>O.get(x)}}),this._viewItems=this._viewItemsInfo.map(this,M=>M.items),this._spaceBetweenPx=0,this._totalHeight=this._viewItems.map(this,(M,A)=>M.reduce((P,N)=>P+N.contentHeight.read(A)+this._spaceBetweenPx,0)),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._element)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new c.ServiceCollection([s.IContextKeyService,this._contextKeyService]))),this._lastDocStates={},this._contextKeyService.createKey(i.EditorContextKeys.inMultiDiffEditor.key,!0),this._register((0,_.autorunWithStore)((M,A)=>{const P=this._viewModel.read(M);if(P&&P.contextKeys)for(const[N,O]of Object.entries(P.contextKeys)){const F=this._contextKeyService.createKey(N,void 0);F.set(O),A.add((0,m.toDisposable)(()=>F.reset()))}}));const T=this._parentContextKeyService.createKey(i.EditorContextKeys.multiDiffEditorAllCollapsed.key,!1);this._register((0,_.autorun)(M=>{const A=this._viewModel.read(M);if(A){const P=A.items.read(M).every(N=>N.collapsed.read(M));T.set(P)}})),this._register((0,_.autorun)(M=>{const A=this._dimension.read(M);this._sizeObserver.observe(A)})),this._register((0,_.autorun)(M=>{const A=this._viewItems.read(M);this._elements.placeholder.classList.toggle("visible",A.length===0)})),this._scrollableElements.content.style.position="relative",this._register((0,_.autorun)(M=>{const A=this._sizeObserver.height.read(M);this._scrollableElements.root.style.height=`${A}px`;const P=this._totalHeight.read(M);this._scrollableElements.content.style.height=`${P}px`;const N=this._sizeObserver.width.read(M);let O=N;const F=this._viewItems.read(M),x=(0,E.findFirstMax)(F,(0,I.compareBy)(W=>W.maxScroll.read(M).maxScroll,I.numberComparator));if(x){const W=x.maxScroll.read(M);O=N+W.maxScroll}this._scrollableElement.setScrollDimensions({width:N,height:A,scrollHeight:P,scrollWidth:O})})),h.replaceChildren(this._elements.root),this._register((0,m.toDisposable)(()=>{h.replaceChildren()})),this._register(this._register((0,_.autorun)(M=>{(0,b.globalTransaction)(A=>{this.render(M)})})))}render(h){const v=this.scrollTop.read(h);let w=0,S=0,L=0;const D=this._sizeObserver.height.read(h),T=o.OffsetRange.ofStartAndLength(v,D),M=this._sizeObserver.width.read(h);for(const A of this._viewItems.read(h)){const P=A.contentHeight.read(h),N=Math.min(P,D),O=o.OffsetRange.ofStartAndLength(S,N),F=o.OffsetRange.ofStartAndLength(L,P);if(F.isBefore(T))w-=P-N,A.hide();else if(F.isAfter(T))A.hide();else{const x=Math.max(0,Math.min(T.start-F.start,P-N));w-=x;const W=o.OffsetRange.ofStartAndLength(v+w,D);A.render(O,x,M,W)}S+=N+this._spaceBetweenPx,L+=P+this._spaceBetweenPx}this._scrollableElements.content.style.transform=`translateY(${-(v+w)}px)`}};e.MultiDiffEditorWidgetImpl=u,e.MultiDiffEditorWidgetImpl=u=ke([ce(4,s.IContextKeyService),ce(5,g.IInstantiationService)],u);class C extends m.Disposable{constructor(h,v,w,S){super(),this.viewModel=h,this._objectPool=v,this._scrollLeft=w,this._deltaScrollVertical=S,this._templateRef=this._register((0,b.disposableObservableValue)(this,void 0)),this.contentHeight=(0,_.derived)(this,L=>this._templateRef.read(L)?.object.contentHeight?.read(L)??this.viewModel.lastTemplateData.read(L).contentHeight),this.maxScroll=(0,_.derived)(this,L=>this._templateRef.read(L)?.object.maxScroll.read(L)??{maxScroll:0,scrollWidth:0}),this.template=(0,_.derived)(this,L=>this._templateRef.read(L)?.object),this._isHidden=(0,_.observableValue)(this,!1),this._isFocused=(0,_.derived)(this,L=>this.template.read(L)?.isFocused.read(L)??!1),this.viewModel.setIsFocused(this._isFocused,void 0),this._register((0,_.autorun)(L=>{const D=this._scrollLeft.read(L);this._templateRef.read(L)?.object.setScrollLeft(D)})),this._register((0,_.autorun)(L=>{const D=this._templateRef.read(L);!D||!this._isHidden.read(L)||D.object.isFocused.read(L)||this._clear()}))}dispose(){this._clear(),super.dispose()}toString(){return`VirtualViewItem(${this.viewModel.documentDiffItem.modified?.uri.toString()})`}getKey(){return this.viewModel.getKey()}setViewState(h,v){this.viewModel.collapsed.set(h.collapsed,v),this._updateTemplateData(v);const w=this.viewModel.lastTemplateData.get(),S=h.selections?.map(t.Selection.liftSelection);this.viewModel.lastTemplateData.set({...w,selections:S},v);const L=this._templateRef.get();L&&S&&L.object.editor.setSelections(S)}_updateTemplateData(h){const v=this._templateRef.get();v&&this.viewModel.lastTemplateData.set({contentHeight:v.object.contentHeight.get(),selections:v.object.editor.getSelections()??void 0},h)}_clear(){const h=this._templateRef.get();h&&(0,b.transaction)(v=>{this._updateTemplateData(v),h.object.hide(),this._templateRef.set(void 0,v)})}hide(){this._isHidden.set(!0,void 0)}render(h,v,w,S){this._isHidden.set(!1,void 0);let L=this._templateRef.get();if(!L){L=this._objectPool.getUnusedObj(new l.TemplateData(this.viewModel,this._deltaScrollVertical)),this._templateRef.set(L,void 0);const D=this.viewModel.lastTemplateData.get().selections;D&&L.object.editor.setSelections(D)}L.object.render(h,w,v,S)}}}),define(ne[814],se([1,0,2,21,171,813,7,420,756]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MultiDiffEditorWidget=void 0;let _=class extends d.Disposable{constructor(p,n,o){super(),this._element=p,this._workbenchUIElementFactory=n,this._instantiationService=o,this._dimension=(0,k.observableValue)(this,void 0),this._viewModel=(0,k.observableValue)(this,void 0),this._widgetImpl=(0,k.derivedWithStore)(this,(t,i)=>((0,I.readHotReloadableExport)(m.DiffEditorItemTemplate,t),i.add(this._instantiationService.createInstance((0,I.readHotReloadableExport)(E.MultiDiffEditorWidgetImpl,t),this._element,this._dimension,this._viewModel,this._workbenchUIElementFactory)))),this._register((0,k.recomputeInitiallyAndOnChange)(this._widgetImpl))}};e.MultiDiffEditorWidget=_,e.MultiDiffEditorWidget=_=ke([ce(2,y.IInstantiationService)],_)}),define(ne[815],se([1,0,14,2,15,9,4,23,20,40,35,3,29,32,25,504]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BracketMatchingController=void 0;const s=(0,t.registerColor)("editorOverviewRuler.bracketMatchForeground","#A0A0A0",n.localize(716,"Overview ruler marker color for matching brackets."));class g extends I.EditorAction{constructor(){super({id:"editor.action.jumpToBracket",label:n.localize(717,"Go to Bracket"),alias:"Go to Bracket",precondition:void 0,kbOpts:{kbExpr:_.EditorContextKeys.editorTextFocus,primary:3165,weight:100}})}run(C,f){r.get(f)?.jumpToBracket()}}class c extends I.EditorAction{constructor(){super({id:"editor.action.selectToBracket",label:n.localize(718,"Select to Bracket"),alias:"Select to Bracket",precondition:void 0,metadata:{description:n.localize2(721,"Select the text inside and including the brackets or curly braces"),args:[{name:"args",schema:{type:"object",properties:{selectBrackets:{type:"boolean",default:!0}}}}]}})}run(C,f,h){let v=!0;h&&h.selectBrackets===!1&&(v=!1),r.get(f)?.selectToBracket(v)}}class l extends I.EditorAction{constructor(){super({id:"editor.action.removeBrackets",label:n.localize(719,"Remove Brackets"),alias:"Remove Brackets",precondition:void 0,kbOpts:{kbExpr:_.EditorContextKeys.editorTextFocus,primary:2561,weight:100}})}run(C,f){r.get(f)?.removeBrackets(this.id)}}class a{constructor(C,f,h){this.position=C,this.brackets=f,this.options=h}}class r extends k.Disposable{static{this.ID="editor.contrib.bracketMatchingController"}static get(C){return C.getContribution(r.ID)}constructor(C){super(),this._editor=C,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new d.RunOnceScheduler(()=>this._updateBrackets(),50)),this._matchBrackets=this._editor.getOption(72),this._updateBracketsSoon.schedule(),this._register(C.onDidChangeCursorPosition(f=>{this._matchBrackets!=="never"&&this._updateBracketsSoon.schedule()})),this._register(C.onDidChangeModelContent(f=>{this._updateBracketsSoon.schedule()})),this._register(C.onDidChangeModel(f=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(C.onDidChangeModelLanguageConfiguration(f=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(C.onDidChangeConfiguration(f=>{f.hasChanged(72)&&(this._matchBrackets=this._editor.getOption(72),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule())})),this._register(C.onDidBlurEditorWidget(()=>{this._updateBracketsSoon.schedule()})),this._register(C.onDidFocusEditorWidget(()=>{this._updateBracketsSoon.schedule()}))}jumpToBracket(){if(!this._editor.hasModel())return;const C=this._editor.getModel(),f=this._editor.getSelections().map(h=>{const v=h.getStartPosition(),w=C.bracketPairs.matchBracket(v);let S=null;if(w)w[0].containsPosition(v)&&!w[1].containsPosition(v)?S=w[1].getStartPosition():w[1].containsPosition(v)&&(S=w[0].getStartPosition());else{const L=C.bracketPairs.findEnclosingBrackets(v);if(L)S=L[1].getStartPosition();else{const D=C.bracketPairs.findNextBracket(v);D&&D.range&&(S=D.range.getStartPosition())}}return S?new m.Selection(S.lineNumber,S.column,S.lineNumber,S.column):new m.Selection(v.lineNumber,v.column,v.lineNumber,v.column)});this._editor.setSelections(f),this._editor.revealRange(f[0])}selectToBracket(C){if(!this._editor.hasModel())return;const f=this._editor.getModel(),h=[];this._editor.getSelections().forEach(v=>{const w=v.getStartPosition();let S=f.bracketPairs.matchBracket(w);if(!S&&(S=f.bracketPairs.findEnclosingBrackets(w),!S)){const T=f.bracketPairs.findNextBracket(w);T&&T.range&&(S=f.bracketPairs.matchBracket(T.range.getStartPosition()))}let L=null,D=null;if(S){S.sort(y.Range.compareRangesUsingStarts);const[T,M]=S;if(L=C?T.getStartPosition():T.getEndPosition(),D=C?M.getEndPosition():M.getStartPosition(),M.containsPosition(w)){const A=L;L=D,D=A}}L&&D&&h.push(new m.Selection(L.lineNumber,L.column,D.lineNumber,D.column))}),h.length>0&&(this._editor.setSelections(h),this._editor.revealRange(h[0]))}removeBrackets(C){if(!this._editor.hasModel())return;const f=this._editor.getModel();this._editor.getSelections().forEach(h=>{const v=h.getPosition();let w=f.bracketPairs.matchBracket(v);w||(w=f.bracketPairs.findEnclosingBrackets(v)),w&&(this._editor.pushUndoStop(),this._editor.executeEdits(C,[{range:w[0],text:""},{range:w[1],text:""}]),this._editor.pushUndoStop())})}static{this._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=p.ModelDecorationOptions.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",overviewRuler:{color:(0,i.themeColorFromId)(s),position:b.OverviewRulerLane.Center}})}static{this._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=p.ModelDecorationOptions.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match"})}_updateBrackets(){if(this._matchBrackets==="never")return;this._recomputeBrackets();const C=[];let f=0;for(const h of this._lastBracketsData){const v=h.brackets;v&&(C[f++]={range:v[0],options:h.options},C[f++]={range:v[1],options:h.options})}this._decorations.set(C)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus()){this._lastBracketsData=[],this._lastVersionId=0;return}const C=this._editor.getSelections();if(C.length>100){this._lastBracketsData=[],this._lastVersionId=0;return}const f=this._editor.getModel(),h=f.getVersionId();let v=[];this._lastVersionId===h&&(v=this._lastBracketsData);const w=[];let S=0;for(let A=0,P=C.length;A<P;A++){const N=C[A];N.isEmpty()&&(w[S++]=N.getStartPosition())}w.length>1&&w.sort(E.Position.compare);const L=[];let D=0,T=0;const M=v.length;for(let A=0,P=w.length;A<P;A++){const N=w[A];for(;T<M&&v[T].position.isBefore(N);)T++;if(T<M&&v[T].position.equals(N))L[D++]=v[T];else{let O=f.bracketPairs.matchBracket(N,20),F=r._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;!O&&this._matchBrackets==="always"&&(O=f.bracketPairs.findEnclosingBrackets(N,20),F=r._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER),L[D++]=new a(N,O,F)}}this._lastBracketsData=L,this._lastVersionId=h}}e.BracketMatchingController=r,(0,I.registerEditorContribution)(r.ID,r,1),(0,I.registerEditorAction)(c),(0,I.registerEditorAction)(g),(0,I.registerEditorAction)(l),o.MenuRegistry.appendMenuItem(o.MenuId.MenubarGoMenu,{group:"5_infile_nav",command:{id:"editor.action.jumpToBracket",title:n.localize(720,"Go to &&Bracket")},order:2})}),define(ne[421],se([1,0,5,69,26,6,2,30,40,35,237,157,3,31,71,4,505]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s){"use strict";var g;Object.defineProperty(e,"__esModule",{value:!0}),e.LightBulbWidget=void 0;const c=(0,i.registerIcon)("gutter-lightbulb",I.Codicon.lightBulb,o.localize(785,"Icon which spawns code actions menu from the gutter when there is no space in the editor.")),l=(0,i.registerIcon)("gutter-lightbulb-auto-fix",I.Codicon.lightbulbAutofix,o.localize(786,"Icon which spawns code actions menu from the gutter when there is no space in the editor and a quick fix is available.")),a=(0,i.registerIcon)("gutter-lightbulb-sparkle",I.Codicon.lightbulbSparkle,o.localize(787,"Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix is available.")),r=(0,i.registerIcon)("gutter-lightbulb-aifix-auto-fix",I.Codicon.lightbulbSparkleAutofix,o.localize(788,"Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix and a quick fix is available.")),u=(0,i.registerIcon)("gutter-lightbulb-sparkle-filled",I.Codicon.sparkleFilled,o.localize(789,"Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix and a quick fix is available."));var C;(function(h){h.Hidden={type:0};class v{constructor(S,L,D,T){this.actions=S,this.trigger=L,this.editorPosition=D,this.widgetPosition=T,this.type=1}}h.Showing=v})(C||(C={}));let f=class extends y.Disposable{static{g=this}static{this.GUTTER_DECORATION=b.ModelDecorationOptions.register({description:"codicon-gutter-lightbulb-decoration",glyphMarginClassName:m.ThemeIcon.asClassName(I.Codicon.lightBulb),glyphMargin:{position:_.GlyphMarginLane.Left},stickiness:1})}static{this.ID="editor.contrib.lightbulbWidget"}static{this._posPref=[0]}constructor(v,w){super(),this._editor=v,this._keybindingService=w,this._onClick=this._register(new E.Emitter),this.onClick=this._onClick.event,this._state=C.Hidden,this._gutterState=C.Hidden,this._iconClasses=[],this.lightbulbClasses=["codicon-"+c.id,"codicon-"+r.id,"codicon-"+l.id,"codicon-"+a.id,"codicon-"+u.id],this.gutterDecoration=g.GUTTER_DECORATION,this._domNode=d.$("div.lightBulbWidget"),this._domNode.role="listbox",this._register(k.Gesture.ignoreTarget(this._domNode)),this._editor.addContentWidget(this),this._register(this._editor.onDidChangeModelContent(S=>{const L=this._editor.getModel();(this.state.type!==1||!L||this.state.editorPosition.lineNumber>=L.getLineCount())&&this.hide(),(this.gutterState.type!==1||!L||this.gutterState.editorPosition.lineNumber>=L.getLineCount())&&this.gutterHide()})),this._register(d.addStandardDisposableGenericMouseDownListener(this._domNode,S=>{if(this.state.type!==1)return;this._editor.focus(),S.preventDefault();const{top:L,height:D}=d.getDomNodePagePosition(this._domNode),T=this._editor.getOption(67);let M=Math.floor(T/3);this.state.widgetPosition.position!==null&&this.state.widgetPosition.position.lineNumber<this.state.editorPosition.lineNumber&&(M+=T),this._onClick.fire({x:S.posx,y:L+D+M,actions:this.state.actions,trigger:this.state.trigger})})),this._register(d.addDisposableListener(this._domNode,"mouseenter",S=>{(S.buttons&1)===1&&this.hide()})),this._register(E.Event.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,()=>{this._preferredKbLabel=this._keybindingService.lookupKeybinding(n.autoFixCommandId)?.getLabel()??void 0,this._quickFixKbLabel=this._keybindingService.lookupKeybinding(n.quickFixCommandId)?.getLabel()??void 0,this._updateLightBulbTitleAndIcon()})),this._register(this._editor.onMouseDown(async S=>{if(!S.target.element||!this.lightbulbClasses.some(A=>S.target.element&&S.target.element.classList.contains(A))||this.gutterState.type!==1)return;this._editor.focus();const{top:L,height:D}=d.getDomNodePagePosition(S.target.element),T=this._editor.getOption(67);let M=Math.floor(T/3);this.gutterState.widgetPosition.position!==null&&this.gutterState.widgetPosition.position.lineNumber<this.gutterState.editorPosition.lineNumber&&(M+=T),this._onClick.fire({x:S.event.posx,y:L+D+M,actions:this.gutterState.actions,trigger:this.gutterState.trigger})}))}dispose(){super.dispose(),this._editor.removeContentWidget(this),this._gutterDecorationID&&this._removeGutterDecoration(this._gutterDecorationID)}getId(){return"LightBulbWidget"}getDomNode(){return this._domNode}getPosition(){return this._state.type===1?this._state.widgetPosition:null}update(v,w,S){if(v.validActions.length<=0)return this.gutterHide(),this.hide();if(!this._editor.hasTextFocus())return this.gutterHide(),this.hide();if(!this._editor.getOptions().get(65).enabled)return this.gutterHide(),this.hide();const T=this._editor.getModel();if(!T)return this.gutterHide(),this.hide();const{lineNumber:M,column:A}=T.validatePosition(S),P=T.getOptions().tabSize,N=this._editor.getOptions().get(50),O=T.getLineContent(M),F=(0,p.computeIndentLevel)(O,P),x=N.spaceWidth*F>22,W=Y=>Y>2&&this._editor.getTopForLineNumber(Y)===this._editor.getTopForLineNumber(Y-1),V=this._editor.getLineDecorations(M);let q=!1;if(V)for(const Y of V){const G=Y.options.glyphMarginClassName;if(G&&!this.lightbulbClasses.some(K=>G.includes(K))){q=!0;break}}let H=M,z=1;if(!x){const Y=G=>{const K=T.getLineContent(G);return/^\s*$|^\s+/.test(K)||K.length<=z};if(M>1&&!W(M-1)){const G=T.getLineCount(),K=M===G,R=M>1&&Y(M-1),J=!K&&Y(M+1),ie=Y(M),ue=!J&&!R;if(!J&&!R&&!q)return this.gutterState=new C.Showing(v,w,S,{position:{lineNumber:H,column:z},preference:g._posPref}),this.renderGutterLightbub(),this.hide();R||K||R&&!ie?H-=1:(J||ue&&ie)&&(H+=1)}else if(M===1&&(M===T.getLineCount()||!Y(M+1)&&!Y(M)))if(this.gutterState=new C.Showing(v,w,S,{position:{lineNumber:H,column:z},preference:g._posPref}),q)this.gutterHide();else return this.renderGutterLightbub(),this.hide();else if(M<T.getLineCount()&&!W(M+1))H+=1;else if(A*N.spaceWidth<22)return this.hide();z=/^\S\s*$/.test(T.getLineContent(H))?2:1}this.state=new C.Showing(v,w,S,{position:{lineNumber:H,column:z},preference:g._posPref}),this._gutterDecorationID&&(this._removeGutterDecoration(this._gutterDecorationID),this.gutterHide());const U=v.validActions,j=v.validActions[0].action.kind;if(U.length!==1||!j){this._editor.layoutContentWidget(this);return}this._editor.layoutContentWidget(this)}hide(){this.state!==C.Hidden&&(this.state=C.Hidden,this._editor.layoutContentWidget(this))}gutterHide(){this.gutterState!==C.Hidden&&(this._gutterDecorationID&&this._removeGutterDecoration(this._gutterDecorationID),this.gutterState=C.Hidden)}get state(){return this._state}set state(v){this._state=v,this._updateLightBulbTitleAndIcon()}get gutterState(){return this._gutterState}set gutterState(v){this._gutterState=v,this._updateGutterLightBulbTitleAndIcon()}_updateLightBulbTitleAndIcon(){if(this._domNode.classList.remove(...this._iconClasses),this._iconClasses=[],this.state.type!==1)return;let v,w=!1;this.state.actions.allAIFixes?(v=I.Codicon.sparkleFilled,this.state.actions.validActions.length===1&&(w=!0)):this.state.actions.hasAutoFix?this.state.actions.hasAIFix?v=I.Codicon.lightbulbSparkleAutofix:v=I.Codicon.lightbulbAutofix:this.state.actions.hasAIFix?v=I.Codicon.lightbulbSparkle:v=I.Codicon.lightBulb,this._updateLightbulbTitle(this.state.actions.hasAutoFix,w),this._iconClasses=m.ThemeIcon.asClassNameArray(v),this._domNode.classList.add(...this._iconClasses)}_updateGutterLightBulbTitleAndIcon(){if(this.gutterState.type!==1)return;let v,w=!1;this.gutterState.actions.allAIFixes?(v=u,this.gutterState.actions.validActions.length===1&&(w=!0)):this.gutterState.actions.hasAutoFix?this.gutterState.actions.hasAIFix?v=r:v=l:this.gutterState.actions.hasAIFix?v=a:v=c,this._updateLightbulbTitle(this.gutterState.actions.hasAutoFix,w);const S=b.ModelDecorationOptions.register({description:"codicon-gutter-lightbulb-decoration",glyphMarginClassName:m.ThemeIcon.asClassName(v),glyphMargin:{position:_.GlyphMarginLane.Left},stickiness:1});this.gutterDecoration=S}renderGutterLightbub(){const v=this._editor.getSelection();v&&(this._gutterDecorationID===void 0?this._addGutterDecoration(v.startLineNumber):this._updateGutterDecoration(this._gutterDecorationID,v.startLineNumber))}_addGutterDecoration(v){this._editor.changeDecorations(w=>{this._gutterDecorationID=w.addDecoration(new s.Range(v,0,v,0),this.gutterDecoration)})}_removeGutterDecoration(v){this._editor.changeDecorations(w=>{w.removeDecoration(v),this._gutterDecorationID=void 0})}_updateGutterDecoration(v,w){this._editor.changeDecorations(S=>{S.changeDecoration(v,new s.Range(w,0,w,0)),S.changeDecorationOptions(v,this.gutterDecoration)})}_updateLightbulbTitle(v,w){this.state.type===1&&(w?this.title=o.localize(790,"Run: {0}",this.state.actions.validActions[0].action.title):v&&this._preferredKbLabel?this.title=o.localize(791,"Show Code Actions. Preferred Quick Fix Available ({0})",this._preferredKbLabel):!v&&this._quickFixKbLabel?this.title=o.localize(792,"Show Code Actions ({0})",this._quickFixKbLabel):v||(this.title=o.localize(793,"Show Code Actions")))}set title(v){this._domNode.title=v}};e.LightBulbWidget=f,e.LightBulbWidget=f=g=ke([ce(1,t.IKeybindingService)],f)}),define(ne[287],se([1,0,5,46,8,98,2,9,35,17,157,733,757,421,184,3,760,24,28,12,7,108,96,32,97,25,134,408,91,63]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D){"use strict";var T;Object.defineProperty(e,"__esModule",{value:!0}),e.CodeActionController=void 0;const M="quickfix-edit-highlight";let A=class extends y.Disposable{static{T=this}static{this.ID="editor.contrib.codeActionController"}static get(N){return N.getContribution(T.ID)}constructor(N,O,F,x,W,V,q,H,z,U,j){super(),this._commandService=q,this._configurationService=H,this._actionWidgetService=z,this._instantiationService=U,this._telemetryService=j,this._activeCodeActions=this._register(new y.MutableDisposable),this._showDisabled=!1,this._disposed=!1,this._editor=N,this._model=this._register(new S.CodeActionModel(this._editor,W.codeActionProvider,O,F,V,H,this._telemetryService)),this._register(this._model.onDidChangeState(Y=>this.update(Y))),this._lightBulbWidget=new E.Lazy(()=>{const Y=this._editor.getContribution(t.LightBulbWidget.ID);return Y&&this._register(Y.onClick(G=>this.showCodeActionsFromLightbulb(G.actions,G))),Y}),this._resolver=x.createInstance(n.CodeActionKeybindingResolver),this._register(this._editor.onDidLayoutChange(()=>this._actionWidgetService.hide()))}dispose(){this._disposed=!0,super.dispose()}async showCodeActionsFromLightbulb(N,O){if(N.allAIFixes&&N.validActions.length===1){const F=N.validActions[0],x=F.action.command;x&&x.id==="inlineChat.start"&&x.arguments&&x.arguments.length>=1&&(x.arguments[0]={...x.arguments[0],autoSend:!1}),await this._applyCodeAction(F,!1,!1,p.ApplyCodeActionReason.FromAILightbulb);return}await this.showCodeActionList(N,O,{includeDisabledActions:!1,fromLightbulb:!0})}showCodeActions(N,O,F){return this.showCodeActionList(O,F,{includeDisabledActions:!1,fromLightbulb:!1})}manualTriggerAtCurrentPosition(N,O,F,x){if(!this._editor.hasModel())return;i.MessageController.get(this._editor)?.closeMessage();const W=this._editor.getPosition();this._trigger({type:1,triggerAction:O,filter:F,autoApply:x,context:{notAvailableMessage:N,position:W}})}_trigger(N){return this._model.trigger(N)}async _applyCodeAction(N,O,F,x){try{await this._instantiationService.invokeFunction(p.applyCodeAction,N,x,{preview:F,editor:this._editor})}finally{O&&this._trigger({type:2,triggerAction:w.CodeActionTriggerSource.QuickFix,filter:{}})}}hideLightBulbWidget(){this._lightBulbWidget.rawValue?.hide(),this._lightBulbWidget.rawValue?.gutterHide()}async update(N){if(N.type!==1){this.hideLightBulbWidget();return}let O;try{O=await N.actions}catch(x){(0,I.onUnexpectedError)(x);return}if(!(this._disposed||this._editor.getSelection()?.startLineNumber!==N.position.lineNumber))if(this._lightBulbWidget.value?.update(O,N.trigger,N.position),N.trigger.type===1){if(N.trigger.filter?.include){const W=this.tryGetValidActionToApply(N.trigger,O);if(W){try{this.hideLightBulbWidget(),await this._applyCodeAction(W,!1,!1,p.ApplyCodeActionReason.FromCodeActions)}finally{O.dispose()}return}if(N.trigger.context){const V=this.getInvalidActionThatWouldHaveBeenApplied(N.trigger,O);if(V&&V.action.disabled){i.MessageController.get(this._editor)?.showMessage(V.action.disabled,N.trigger.context.position),O.dispose();return}}}const x=!!N.trigger.filter?.include;if(N.trigger.context&&(!O.allActions.length||!x&&!O.validActions.length)){i.MessageController.get(this._editor)?.showMessage(N.trigger.context.notAvailableMessage,N.trigger.context.position),this._activeCodeActions.value=O,O.dispose();return}this._activeCodeActions.value=O,this.showCodeActionList(O,this.toCoords(N.position),{includeDisabledActions:x,fromLightbulb:!1})}else this._actionWidgetService.isVisible?O.dispose():this._activeCodeActions.value=O}getInvalidActionThatWouldHaveBeenApplied(N,O){if(O.allActions.length&&(N.autoApply==="first"&&O.validActions.length===0||N.autoApply==="ifSingle"&&O.allActions.length===1))return O.allActions.find(({action:F})=>F.disabled)}tryGetValidActionToApply(N,O){if(O.validActions.length&&(N.autoApply==="first"&&O.validActions.length>0||N.autoApply==="ifSingle"&&O.validActions.length===1))return O.validActions[0]}static{this.DECORATION=_.ModelDecorationOptions.register({description:"quickfix-highlight",className:M})}async showCodeActionList(N,O,F){const x=this._editor.createDecorationsCollection(),W=this._editor.getDomNode();if(!W)return;const V=F.includeDisabledActions&&(this._showDisabled||N.validActions.length===0)?N.allActions:N.validActions;if(!V.length)return;const q=m.Position.isIPosition(O)?this.toCoords(O):O,H={onSelect:async(z,U)=>{this._applyCodeAction(z,!0,!!U,F.fromLightbulb?p.ApplyCodeActionReason.FromAILightbulb:p.ApplyCodeActionReason.FromCodeActions),this._actionWidgetService.hide(!1),x.clear()},onHide:z=>{this._editor?.focus(),x.clear()},onHover:async(z,U)=>{if(U.isCancellationRequested)return;let j=!1;const Y=z.action.kind;if(Y){const G=new L.HierarchicalKind(Y);j=[w.CodeActionKind.RefactorExtract,w.CodeActionKind.RefactorInline,w.CodeActionKind.RefactorRewrite,w.CodeActionKind.RefactorMove,w.CodeActionKind.Source].some(R=>R.contains(G))}return{canPreview:j||!!z.action.edit?.edits.length}},onFocus:z=>{if(z&&z.action){const U=z.action.ranges,j=z.action.diagnostics;if(x.clear(),U&&U.length>0){const Y=j&&j?.length>1?j.map(G=>({range:G,options:T.DECORATION})):U.map(G=>({range:G,options:T.DECORATION}));x.set(Y)}else if(j&&j.length>0){const Y=j.map(K=>({range:K,options:T.DECORATION}));x.set(Y);const G=j[0];if(G.startLineNumber&&G.startColumn){const K=this._editor.getModel()?.getWordAtPosition({lineNumber:G.startLineNumber,column:G.startColumn})?.word;k.status((0,s.localize)(774,"Context: {0} at line {1} and column {2}.",K,G.startLineNumber,G.startColumn))}}}else x.clear()}};this._actionWidgetService.show("codeActionWidget",!0,(0,o.toMenuItems)(V,this._shouldShowHeaders(),this._resolver.getResolver()),H,q,W,this._getActionBarActions(N,O,F))}toCoords(N){if(!this._editor.hasModel())return{x:0,y:0};this._editor.revealPosition(N,1),this._editor.render();const O=this._editor.getScrolledVisiblePosition(N),F=(0,d.getDomNodePagePosition)(this._editor.getDomNode()),x=F.left+O.left,W=F.top+O.top+O.height;return{x,y:W}}_shouldShowHeaders(){const N=this._editor?.getModel();return this._configurationService.getValue("editor.codeActionWidget.showHeaders",{resource:N?.uri})}_getActionBarActions(N,O,F){if(F.fromLightbulb)return[];const x=N.documentation.map(W=>({id:W.id,label:W.title,tooltip:W.tooltip??"",class:void 0,enabled:!0,run:()=>this._commandService.executeCommand(W.id,...W.arguments??[])}));return F.includeDisabledActions&&N.validActions.length>0&&N.allActions.length!==N.validActions.length&&x.push(this._showDisabled?{id:"hideMoreActions",label:(0,s.localize)(775,"Hide Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!1,this.showCodeActionList(N,O,F))}:{id:"showMoreActions",label:(0,s.localize)(776,"Show Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!0,this.showCodeActionList(N,O,F))}),x}};e.CodeActionController=A,e.CodeActionController=A=T=ke([ce(1,u.IMarkerService),ce(2,a.IContextKeyService),ce(3,r.IInstantiationService),ce(4,b.ILanguageFeaturesService),ce(5,C.IEditorProgressService),ce(6,c.ICommandService),ce(7,l.IConfigurationService),ce(8,g.IActionWidgetService),ce(9,r.IInstantiationService),ce(10,D.ITelemetryService)],A),(0,v.registerThemingParticipant)((P,N)=>{((x,W)=>{W&&N.addRule(`.monaco-editor ${x} { background-color: ${W}; }`)})(".quickfix-edit-highlight",P.getColor(f.editorFindMatchHighlight));const F=P.getColor(f.editorFindMatchHighlightBorder);F&&N.addRule(`.monaco-editor .quickfix-edit-highlight { border: 1px ${(0,h.isHighContrast)(P.type)?"dotted":"solid"} ${F}; box-sizing: border-box; }`)})}),define(ne[816],se([1,0,91,11,15,20,157,3,12,134,287,408]),function(oe,e,d,k,I,E,y,m,_,b,p,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AutoFixAction=e.FixAllAction=e.OrganizeImportsAction=e.SourceAction=e.RefactorAction=e.CodeActionCommand=e.QuickFixAction=void 0;function o(C){return _.ContextKeyExpr.regex(n.SUPPORTED_CODE_ACTIONS.keys()[0],new RegExp("(\\s|^)"+(0,k.escapeRegExpCharacters)(C.value)+"\\b"))}const t={type:"object",defaultSnippets:[{body:{kind:""}}],properties:{kind:{type:"string",description:m.localize(743,"Kind of the code action to run.")},apply:{type:"string",description:m.localize(744,"Controls when the returned actions are applied."),default:"ifSingle",enum:["first","ifSingle","never"],enumDescriptions:[m.localize(745,"Always apply the first returned code action."),m.localize(746,"Apply the first returned code action if it is the only one."),m.localize(747,"Do not apply the returned code actions.")]},preferred:{type:"boolean",default:!1,description:m.localize(748,"Controls if only preferred code actions should be returned.")}}};function i(C,f,h,v,w=b.CodeActionTriggerSource.Default){C.hasModel()&&p.CodeActionController.get(C)?.manualTriggerAtCurrentPosition(f,w,h,v)}class s extends I.EditorAction{constructor(){super({id:y.quickFixCommandId,label:m.localize(749,"Quick Fix..."),alias:"Quick Fix...",precondition:_.ContextKeyExpr.and(E.EditorContextKeys.writable,E.EditorContextKeys.hasCodeActionsProvider),kbOpts:{kbExpr:E.EditorContextKeys.textInputFocus,primary:2137,weight:100}})}run(f,h){return i(h,m.localize(750,"No code actions available"),void 0,void 0,b.CodeActionTriggerSource.QuickFix)}}e.QuickFixAction=s;class g extends I.EditorCommand{constructor(){super({id:y.codeActionCommandId,precondition:_.ContextKeyExpr.and(E.EditorContextKeys.writable,E.EditorContextKeys.hasCodeActionsProvider),metadata:{description:"Trigger a code action",args:[{name:"args",schema:t}]}})}runEditorCommand(f,h,v){const w=b.CodeActionCommandArgs.fromUser(v,{kind:d.HierarchicalKind.Empty,apply:"ifSingle"});return i(h,typeof v?.kind=="string"?w.preferred?m.localize(751,"No preferred code actions for '{0}' available",v.kind):m.localize(752,"No code actions for '{0}' available",v.kind):w.preferred?m.localize(753,"No preferred code actions available"):m.localize(754,"No code actions available"),{include:w.kind,includeSourceActions:!0,onlyIncludePreferredActions:w.preferred},w.apply)}}e.CodeActionCommand=g;class c extends I.EditorAction{constructor(){super({id:y.refactorCommandId,label:m.localize(755,"Refactor..."),alias:"Refactor...",precondition:_.ContextKeyExpr.and(E.EditorContextKeys.writable,E.EditorContextKeys.hasCodeActionsProvider),kbOpts:{kbExpr:E.EditorContextKeys.textInputFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:"1_modification",order:2,when:_.ContextKeyExpr.and(E.EditorContextKeys.writable,o(b.CodeActionKind.Refactor))},metadata:{description:"Refactor...",args:[{name:"args",schema:t}]}})}run(f,h,v){const w=b.CodeActionCommandArgs.fromUser(v,{kind:b.CodeActionKind.Refactor,apply:"never"});return i(h,typeof v?.kind=="string"?w.preferred?m.localize(756,"No preferred refactorings for '{0}' available",v.kind):m.localize(757,"No refactorings for '{0}' available",v.kind):w.preferred?m.localize(758,"No preferred refactorings available"):m.localize(759,"No refactorings available"),{include:b.CodeActionKind.Refactor.contains(w.kind)?w.kind:d.HierarchicalKind.None,onlyIncludePreferredActions:w.preferred},w.apply,b.CodeActionTriggerSource.Refactor)}}e.RefactorAction=c;class l extends I.EditorAction{constructor(){super({id:y.sourceActionCommandId,label:m.localize(760,"Source Action..."),alias:"Source Action...",precondition:_.ContextKeyExpr.and(E.EditorContextKeys.writable,E.EditorContextKeys.hasCodeActionsProvider),contextMenuOpts:{group:"1_modification",order:2.1,when:_.ContextKeyExpr.and(E.EditorContextKeys.writable,o(b.CodeActionKind.Source))},metadata:{description:"Source Action...",args:[{name:"args",schema:t}]}})}run(f,h,v){const w=b.CodeActionCommandArgs.fromUser(v,{kind:b.CodeActionKind.Source,apply:"never"});return i(h,typeof v?.kind=="string"?w.preferred?m.localize(761,"No preferred source actions for '{0}' available",v.kind):m.localize(762,"No source actions for '{0}' available",v.kind):w.preferred?m.localize(763,"No preferred source actions available"):m.localize(764,"No source actions available"),{include:b.CodeActionKind.Source.contains(w.kind)?w.kind:d.HierarchicalKind.None,includeSourceActions:!0,onlyIncludePreferredActions:w.preferred},w.apply,b.CodeActionTriggerSource.SourceAction)}}e.SourceAction=l;class a extends I.EditorAction{constructor(){super({id:y.organizeImportsCommandId,label:m.localize(765,"Organize Imports"),alias:"Organize Imports",precondition:_.ContextKeyExpr.and(E.EditorContextKeys.writable,o(b.CodeActionKind.SourceOrganizeImports)),kbOpts:{kbExpr:E.EditorContextKeys.textInputFocus,primary:1581,weight:100}})}run(f,h){return i(h,m.localize(766,"No organize imports action available"),{include:b.CodeActionKind.SourceOrganizeImports,includeSourceActions:!0},"ifSingle",b.CodeActionTriggerSource.OrganizeImports)}}e.OrganizeImportsAction=a;class r extends I.EditorAction{constructor(){super({id:y.fixAllCommandId,label:m.localize(767,"Fix All"),alias:"Fix All",precondition:_.ContextKeyExpr.and(E.EditorContextKeys.writable,o(b.CodeActionKind.SourceFixAll))})}run(f,h){return i(h,m.localize(768,"No fix all action available"),{include:b.CodeActionKind.SourceFixAll,includeSourceActions:!0},"ifSingle",b.CodeActionTriggerSource.FixAll)}}e.FixAllAction=r;class u extends I.EditorAction{constructor(){super({id:y.autoFixCommandId,label:m.localize(769,"Auto Fix..."),alias:"Auto Fix...",precondition:_.ContextKeyExpr.and(E.EditorContextKeys.writable,o(b.CodeActionKind.QuickFix)),kbOpts:{kbExpr:E.EditorContextKeys.textInputFocus,primary:1625,mac:{primary:2649},weight:100}})}run(f,h){return i(h,m.localize(770,"No auto fixes available"),{include:b.CodeActionKind.QuickFix,onlyIncludePreferredActions:!0},"ifSingle",b.CodeActionTriggerSource.AutoFix)}}e.AutoFixAction=u}),define(ne[817],se([1,0,15,274,816,287,421,3,109,38]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,d.registerEditorContribution)(E.CodeActionController.ID,E.CodeActionController,3),(0,d.registerEditorContribution)(y.LightBulbWidget.ID,y.LightBulbWidget,4),(0,d.registerEditorAction)(I.QuickFixAction),(0,d.registerEditorAction)(I.RefactorAction),(0,d.registerEditorAction)(I.SourceAction),(0,d.registerEditorAction)(I.OrganizeImportsAction),(0,d.registerEditorAction)(I.AutoFixAction),(0,d.registerEditorAction)(I.FixAllAction),(0,d.registerEditorCommand)(new I.CodeActionCommand),b.Registry.as(_.Extensions.Configuration).registerConfiguration({...k.editorConfigurationBaseNode,properties:{"editor.codeActionWidget.showHeaders":{type:"boolean",scope:5,description:m.localize(771,"Enable/disable showing group headers in the Code Action menu."),default:!0}}}),b.Registry.as(_.Extensions.Configuration).registerConfiguration({...k.editorConfigurationBaseNode,properties:{"editor.codeActionWidget.includeNearbyQuickFixes":{type:"boolean",scope:5,description:m.localize(772,"Enable/disable showing nearest Quick Fix within a line when not currently on a diagnostic."),default:!0}}}),b.Registry.as(_.Extensions.Configuration).registerConfiguration({...k.editorConfigurationBaseNode,properties:{"editor.codeActions.triggerOnFocusChange":{type:"boolean",scope:5,markdownDescription:m.localize(773,"Enable triggering {0} when {1} is set to {2}. Code Actions must be set to {3} to be triggered for window and focus changes.","`#editor.codeActionsOnSave#`","`#files.autoSave#`","`afterDelay`","`always`"),default:!1}}})}),define(ne[818],se([1,0,5,114,4,35,506]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CodeLensWidget=e.CodeLensHelper=void 0;class y{constructor(o,t,i){this.afterColumn=1073741824,this.afterLineNumber=o,this.heightInPx=t,this._onHeight=i,this.suppressMouseDown=!0,this.domNode=document.createElement("div")}onComputedHeight(o){this._lastHeight===void 0?this._lastHeight=o:this._lastHeight!==o&&(this._lastHeight=o,this._onHeight())}isVisible(){return this._lastHeight!==0&&this.domNode.hasAttribute("monaco-visible-view-zone")}}class m{static{this._idPool=0}constructor(o,t){this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this._commands=new Map,this._isEmpty=!0,this._editor=o,this._id=`codelens.widget-${m._idPool++}`,this.updatePosition(t),this._domNode=document.createElement("span"),this._domNode.className="codelens-decoration"}withCommands(o,t){this._commands.clear();const i=[];let s=!1;for(let g=0;g<o.length;g++){const c=o[g];if(c&&(s=!0,c.command)){const l=(0,k.renderLabelWithIcons)(c.command.title.trim());if(c.command.id){const a=`c${m._idPool++}`;i.push(d.$("a",{id:a,title:c.command.tooltip,role:"button"},...l)),this._commands.set(a,c.command)}else i.push(d.$("span",{title:c.command.tooltip},...l));g+1<o.length&&i.push(d.$("span",void 0,"\xA0|\xA0"))}}s?(d.reset(this._domNode,...i),this._isEmpty&&t&&this._domNode.classList.add("fadein"),this._isEmpty=!1):d.reset(this._domNode,d.$("span",void 0,"no commands"))}getCommand(o){return o.parentElement===this._domNode?this._commands.get(o.id):void 0}getId(){return this._id}getDomNode(){return this._domNode}updatePosition(o){const t=this._editor.getModel().getLineFirstNonWhitespaceColumn(o);this._widgetPosition={position:{lineNumber:o,column:t},preference:[1]}}getPosition(){return this._widgetPosition||null}}class _{constructor(){this._removeDecorations=[],this._addDecorations=[],this._addDecorationsCallbacks=[]}addDecoration(o,t){this._addDecorations.push(o),this._addDecorationsCallbacks.push(t)}removeDecoration(o){this._removeDecorations.push(o)}commit(o){const t=o.deltaDecorations(this._removeDecorations,this._addDecorations);for(let i=0,s=t.length;i<s;i++)this._addDecorationsCallbacks[i](t[i])}}e.CodeLensHelper=_;const b=E.ModelDecorationOptions.register({collapseOnReplaceEdit:!0,description:"codelens"});class p{constructor(o,t,i,s,g,c){this._isDisposed=!1,this._editor=t,this._data=o,this._decorationIds=[];let l;const a=[];this._data.forEach((r,u)=>{r.symbol.command&&a.push(r.symbol),i.addDecoration({range:r.symbol.range,options:b},C=>this._decorationIds[u]=C),l?l=I.Range.plusRange(l,r.symbol.range):l=I.Range.lift(r.symbol.range)}),this._viewZone=new y(l.startLineNumber-1,g,c),this._viewZoneId=s.addZone(this._viewZone),a.length>0&&(this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(a,!1))}_createContentWidgetIfNecessary(){this._contentWidget?this._editor.layoutContentWidget(this._contentWidget):(this._contentWidget=new m(this._editor,this._viewZone.afterLineNumber+1),this._editor.addContentWidget(this._contentWidget))}dispose(o,t){this._decorationIds.forEach(o.removeDecoration,o),this._decorationIds=[],t?.removeZone(this._viewZoneId),this._contentWidget&&(this._editor.removeContentWidget(this._contentWidget),this._contentWidget=void 0),this._isDisposed=!0}isDisposed(){return this._isDisposed}isValid(){return this._decorationIds.some((o,t)=>{const i=this._editor.getModel().getDecorationRange(o),s=this._data[t].symbol;return!!(i&&I.Range.isEmpty(s.range)===i.isEmpty())})}updateCodeLensSymbols(o,t){this._decorationIds.forEach(t.removeDecoration,t),this._decorationIds=[],this._data=o,this._data.forEach((i,s)=>{t.addDecoration({range:i.symbol.range,options:b},g=>this._decorationIds[s]=g)})}updateHeight(o,t){this._viewZone.heightInPx=o,t.layoutZone(this._viewZoneId),this._contentWidget&&this._editor.layoutContentWidget(this._contentWidget)}computeIfNecessary(o){if(!this._viewZone.isVisible())return null;for(let t=0;t<this._decorationIds.length;t++){const i=o.getDecorationRange(this._decorationIds[t]);i&&(this._data[t].symbol.range=i)}return this._data}updateCommands(o){this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(o,!0);for(let t=0;t<this._data.length;t++){const i=o[t];if(i){const{symbol:s}=this._data[t];s.command=i.command||s.command}}}getCommand(o){return this._contentWidget?.getCommand(o)}getLineNumber(){const o=this._editor.getModel().getDecorationRange(this._decorationIds[0]);return o?o.startLineNumber:-1}update(o){if(this.isValid()){const t=this._editor.getModel().getDecorationRange(this._decorationIds[0]);t&&(this._viewZone.afterLineNumber=t.startLineNumber-1,o.layoutZone(this._viewZoneId),this._contentWidget&&(this._contentWidget.updatePosition(t.startLineNumber),this._editor.layoutContentWidget(this._contentWidget)))}}}e.CodeLensWidget=p}),define(ne[819],se([1,0,14,8,2,143,15,37,20,386,724,818,3,24,50,66,79,17]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CodeLensContribution=void 0;let l=class{static{this.ID="css.editor.codeLens"}constructor(r,u,C,f,h,v){this._editor=r,this._languageFeaturesService=u,this._commandService=f,this._notificationService=h,this._codeLensCache=v,this._disposables=new I.DisposableStore,this._localToDispose=new I.DisposableStore,this._lenses=[],this._oldCodeLensModels=new I.DisposableStore,this._provideCodeLensDebounce=C.for(u.codeLensProvider,"CodeLensProvide",{min:250}),this._resolveCodeLensesDebounce=C.for(u.codeLensProvider,"CodeLensResolve",{min:250,salt:"resolve"}),this._resolveCodeLensesScheduler=new d.RunOnceScheduler(()=>this._resolveCodeLensesInViewport(),this._resolveCodeLensesDebounce.default()),this._disposables.add(this._editor.onDidChangeModel(()=>this._onModelChange())),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>this._onModelChange())),this._disposables.add(this._editor.onDidChangeConfiguration(w=>{(w.hasChanged(50)||w.hasChanged(19)||w.hasChanged(18))&&this._updateLensStyle(),w.hasChanged(17)&&this._onModelChange()})),this._disposables.add(u.codeLensProvider.onDidChange(this._onModelChange,this)),this._onModelChange(),this._updateLensStyle()}dispose(){this._localDispose(),this._disposables.dispose(),this._oldCodeLensModels.dispose(),this._currentCodeLensModel?.dispose()}_getLayoutInfo(){const r=Math.max(1.3,this._editor.getOption(67)/this._editor.getOption(52));let u=this._editor.getOption(19);return(!u||u<5)&&(u=this._editor.getOption(52)*.9|0),{fontSize:u,codeLensHeight:u*r|0}}_updateLensStyle(){const{codeLensHeight:r,fontSize:u}=this._getLayoutInfo(),C=this._editor.getOption(18),f=this._editor.getOption(50),{style:h}=this._editor.getContainerDomNode();h.setProperty("--vscode-editorCodeLens-lineHeight",`${r}px`),h.setProperty("--vscode-editorCodeLens-fontSize",`${u}px`),h.setProperty("--vscode-editorCodeLens-fontFeatureSettings",f.fontFeatureSettings),C&&(h.setProperty("--vscode-editorCodeLens-fontFamily",C),h.setProperty("--vscode-editorCodeLens-fontFamilyDefault",m.EDITOR_FONT_DEFAULTS.fontFamily)),this._editor.changeViewZones(v=>{for(const w of this._lenses)w.updateHeight(r,v)})}_localDispose(){this._getCodeLensModelPromise?.cancel(),this._getCodeLensModelPromise=void 0,this._resolveCodeLensesPromise?.cancel(),this._resolveCodeLensesPromise=void 0,this._localToDispose.clear(),this._oldCodeLensModels.clear(),this._currentCodeLensModel?.dispose()}_onModelChange(){this._localDispose();const r=this._editor.getModel();if(!r||!this._editor.getOption(17)||r.isTooLargeForTokenization())return;const u=this._codeLensCache.get(r);if(u&&this._renderCodeLensSymbols(u),!this._languageFeaturesService.codeLensProvider.has(r)){u&&(0,d.disposableTimeout)(()=>{const f=this._codeLensCache.get(r);u===f&&(this._codeLensCache.delete(r),this._onModelChange())},30*1e3,this._localToDispose);return}for(const f of this._languageFeaturesService.codeLensProvider.all(r))if(typeof f.onDidChange=="function"){const h=f.onDidChange(()=>C.schedule());this._localToDispose.add(h)}const C=new d.RunOnceScheduler(()=>{const f=Date.now();this._getCodeLensModelPromise?.cancel(),this._getCodeLensModelPromise=(0,d.createCancelablePromise)(h=>(0,b.getCodeLensModel)(this._languageFeaturesService.codeLensProvider,r,h)),this._getCodeLensModelPromise.then(h=>{this._currentCodeLensModel&&this._oldCodeLensModels.add(this._currentCodeLensModel),this._currentCodeLensModel=h,this._codeLensCache.put(r,h);const v=this._provideCodeLensDebounce.update(r,Date.now()-f);C.delay=v,this._renderCodeLensSymbols(h),this._resolveCodeLensesInViewportSoon()},k.onUnexpectedError)},this._provideCodeLensDebounce.get(r));this._localToDispose.add(C),this._localToDispose.add((0,I.toDisposable)(()=>this._resolveCodeLensesScheduler.cancel())),this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{this._editor.changeDecorations(f=>{this._editor.changeViewZones(h=>{const v=[];let w=-1;this._lenses.forEach(L=>{!L.isValid()||w===L.getLineNumber()?v.push(L):(L.update(h),w=L.getLineNumber())});const S=new n.CodeLensHelper;v.forEach(L=>{L.dispose(S,h),this._lenses.splice(this._lenses.indexOf(L),1)}),S.commit(f)})}),C.schedule(),this._resolveCodeLensesScheduler.cancel(),this._resolveCodeLensesPromise?.cancel(),this._resolveCodeLensesPromise=void 0})),this._localToDispose.add(this._editor.onDidFocusEditorText(()=>{C.schedule()})),this._localToDispose.add(this._editor.onDidBlurEditorText(()=>{C.cancel()})),this._localToDispose.add(this._editor.onDidScrollChange(f=>{f.scrollTopChanged&&this._lenses.length>0&&this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add(this._editor.onDidLayoutChange(()=>{this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add((0,I.toDisposable)(()=>{if(this._editor.getModel()){const f=E.StableEditorScrollState.capture(this._editor);this._editor.changeDecorations(h=>{this._editor.changeViewZones(v=>{this._disposeAllLenses(h,v)})}),f.restore(this._editor)}else this._disposeAllLenses(void 0,void 0)})),this._localToDispose.add(this._editor.onMouseDown(f=>{if(f.target.type!==9)return;let h=f.target.element;if(h?.tagName==="SPAN"&&(h=h.parentElement),h?.tagName==="A")for(const v of this._lenses){const w=v.getCommand(h);if(w){this._commandService.executeCommand(w.id,...w.arguments||[]).catch(S=>this._notificationService.error(S));break}}})),C.schedule()}_disposeAllLenses(r,u){const C=new n.CodeLensHelper;for(const f of this._lenses)f.dispose(C,u);r&&C.commit(r),this._lenses.length=0}_renderCodeLensSymbols(r){if(!this._editor.hasModel())return;const u=this._editor.getModel().getLineCount(),C=[];let f;for(const w of r.lenses){const S=w.symbol.range.startLineNumber;S<1||S>u||(f&&f[f.length-1].symbol.range.startLineNumber===S?f.push(w):(f=[w],C.push(f)))}if(!C.length&&!this._lenses.length)return;const h=E.StableEditorScrollState.capture(this._editor),v=this._getLayoutInfo();this._editor.changeDecorations(w=>{this._editor.changeViewZones(S=>{const L=new n.CodeLensHelper;let D=0,T=0;for(;T<C.length&&D<this._lenses.length;){const M=C[T][0].symbol.range.startLineNumber,A=this._lenses[D].getLineNumber();A<M?(this._lenses[D].dispose(L,S),this._lenses.splice(D,1)):A===M?(this._lenses[D].updateCodeLensSymbols(C[T],L),T++,D++):(this._lenses.splice(D,0,new n.CodeLensWidget(C[T],this._editor,L,S,v.codeLensHeight,()=>this._resolveCodeLensesInViewportSoon())),D++,T++)}for(;D<this._lenses.length;)this._lenses[D].dispose(L,S),this._lenses.splice(D,1);for(;T<C.length;)this._lenses.push(new n.CodeLensWidget(C[T],this._editor,L,S,v.codeLensHeight,()=>this._resolveCodeLensesInViewportSoon())),T++;L.commit(w)})}),h.restore(this._editor)}_resolveCodeLensesInViewportSoon(){this._editor.getModel()&&this._resolveCodeLensesScheduler.schedule()}_resolveCodeLensesInViewport(){this._resolveCodeLensesPromise?.cancel(),this._resolveCodeLensesPromise=void 0;const r=this._editor.getModel();if(!r)return;const u=[],C=[];if(this._lenses.forEach(v=>{const w=v.computeIfNecessary(r);w&&(u.push(w),C.push(v))}),u.length===0)return;const f=Date.now(),h=(0,d.createCancelablePromise)(v=>{const w=u.map((S,L)=>{const D=new Array(S.length),T=S.map((M,A)=>!M.symbol.command&&typeof M.provider.resolveCodeLens=="function"?Promise.resolve(M.provider.resolveCodeLens(r,M.symbol,v)).then(P=>{D[A]=P},k.onUnexpectedExternalError):(D[A]=M.symbol,Promise.resolve(void 0)));return Promise.all(T).then(()=>{!v.isCancellationRequested&&!C[L].isDisposed()&&C[L].updateCommands(D)})});return Promise.all(w)});this._resolveCodeLensesPromise=h,this._resolveCodeLensesPromise.then(()=>{const v=this._resolveCodeLensesDebounce.update(r,Date.now()-f);this._resolveCodeLensesScheduler.delay=v,this._currentCodeLensModel&&this._codeLensCache.put(r,this._currentCodeLensModel),this._oldCodeLensModels.clear(),h===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)},v=>{(0,k.onUnexpectedError)(v),h===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)})}async getModel(){return await this._getCodeLensModelPromise,await this._resolveCodeLensesPromise,this._currentCodeLensModel?.isDisposed?void 0:this._currentCodeLensModel}};e.CodeLensContribution=l,e.CodeLensContribution=l=ke([ce(1,c.ILanguageFeaturesService),ce(2,g.ILanguageFeatureDebounceService),ce(3,t.ICommandService),ce(4,i.INotificationService),ce(5,p.ICodeLensCache)],l),(0,y.registerEditorContribution)(l.ID,l,1),(0,y.registerEditorAction)(class extends y.EditorAction{constructor(){super({id:"codelens.showLensesInCurrentLine",precondition:_.EditorContextKeys.hasCodeLensProvider,label:(0,o.localize)(794,"Show CodeLens Commands For Current Line"),alias:"Show CodeLens Commands For Current Line"})}async run(r,u){if(!u.hasModel())return;const C=r.get(s.IQuickInputService),f=r.get(t.ICommandService),h=r.get(i.INotificationService),v=u.getSelection().positionLineNumber,w=u.getContribution(l.ID);if(!w)return;const S=await w.getModel();if(!S)return;const L=[];for(const M of S.lenses)M.symbol.command&&M.symbol.range.startLineNumber===v&&L.push({label:M.symbol.command.title,command:M.symbol.command});if(L.length===0)return;const D=await C.pick(L,{canPickMany:!1,placeHolder:(0,o.localize)(795,"Select a command")});if(!D)return;let T=D.command;if(S.isDisposed){const A=(await w.getModel())?.lenses.find(P=>P.symbol.range.startLineNumber===v&&P.symbol.command?.title===T.title);if(!A||!A.symbol.command)return;T=A.symbol.command}try{await f.executeCommand(T.id,...T.arguments||[])}catch(M){h.error(M)}}})}),define(ne[422],se([1,0,14,33,8,6,2,54,11,185,15,4,35,79,17,388,28]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g){"use strict";var c;Object.defineProperty(e,"__esModule",{value:!0}),e.DecoratorLimitReporter=e.ColorDetector=e.ColorDecorationInjectedTextMarker=void 0,e.ColorDecorationInjectedTextMarker=Object.create({});let l=class extends y.Disposable{static{c=this}static{this.ID="editor.contrib.colorDetector"}static{this.RECOMPUTE_TIME=1e3}constructor(u,C,f,h){super(),this._editor=u,this._configurationService=C,this._languageFeaturesService=f,this._localToDispose=this._register(new y.DisposableStore),this._decorationsIds=[],this._colorDatas=new Map,this._colorDecoratorIds=this._editor.createDecorationsCollection(),this._ruleFactory=new b.DynamicCssRules(this._editor),this._decoratorLimitReporter=new a,this._colorDecorationClassRefs=this._register(new y.DisposableStore),this._debounceInformation=h.for(f.colorProvider,"Document Colors",{min:c.RECOMPUTE_TIME}),this._register(u.onDidChangeModel(()=>{this._isColorDecoratorsEnabled=this.isEnabled(),this.updateColors()})),this._register(u.onDidChangeModelLanguage(()=>this.updateColors())),this._register(f.colorProvider.onDidChange(()=>this.updateColors())),this._register(u.onDidChangeConfiguration(v=>{const w=this._isColorDecoratorsEnabled;this._isColorDecoratorsEnabled=this.isEnabled(),this._isDefaultColorDecoratorsEnabled=this._editor.getOption(148);const S=w!==this._isColorDecoratorsEnabled||v.hasChanged(21),L=v.hasChanged(148);(S||L)&&(this._isColorDecoratorsEnabled?this.updateColors():this.removeAllDecorations())})),this._timeoutTimer=null,this._computePromise=null,this._isColorDecoratorsEnabled=this.isEnabled(),this._isDefaultColorDecoratorsEnabled=this._editor.getOption(148),this.updateColors()}isEnabled(){const u=this._editor.getModel();if(!u)return!1;const C=u.getLanguageId(),f=this._configurationService.getValue(C);if(f&&typeof f=="object"){const h=f.colorDecorators;if(h&&h.enable!==void 0&&!h.enable)return h.enable}return this._editor.getOption(20)}static get(u){return u.getContribution(this.ID)}dispose(){this.stop(),this.removeAllDecorations(),super.dispose()}updateColors(){if(this.stop(),!this._isColorDecoratorsEnabled)return;const u=this._editor.getModel();!u||!this._languageFeaturesService.colorProvider.has(u)||(this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{this._timeoutTimer||(this._timeoutTimer=new d.TimeoutTimer,this._timeoutTimer.cancelAndSet(()=>{this._timeoutTimer=null,this.beginCompute()},this._debounceInformation.get(u)))})),this.beginCompute())}async beginCompute(){this._computePromise=(0,d.createCancelablePromise)(async u=>{const C=this._editor.getModel();if(!C)return[];const f=new m.StopWatch(!1),h=await(0,s.getColors)(this._languageFeaturesService.colorProvider,C,u,this._isDefaultColorDecoratorsEnabled);return this._debounceInformation.update(C,f.elapsed()),h});try{const u=await this._computePromise;this.updateDecorations(u),this.updateColorDecorators(u),this._computePromise=null}catch(u){(0,I.onUnexpectedError)(u)}}stop(){this._timeoutTimer&&(this._timeoutTimer.cancel(),this._timeoutTimer=null),this._computePromise&&(this._computePromise.cancel(),this._computePromise=null),this._localToDispose.clear()}updateDecorations(u){const C=u.map(f=>({range:{startLineNumber:f.colorInfo.range.startLineNumber,startColumn:f.colorInfo.range.startColumn,endLineNumber:f.colorInfo.range.endLineNumber,endColumn:f.colorInfo.range.endColumn},options:o.ModelDecorationOptions.EMPTY}));this._editor.changeDecorations(f=>{this._decorationsIds=f.deltaDecorations(this._decorationsIds,C),this._colorDatas=new Map,this._decorationsIds.forEach((h,v)=>this._colorDatas.set(h,u[v]))})}updateColorDecorators(u){this._colorDecorationClassRefs.clear();const C=[],f=this._editor.getOption(21);for(let v=0;v<u.length&&C.length<f;v++){const{red:w,green:S,blue:L,alpha:D}=u[v].colorInfo.color,T=new k.RGBA(Math.round(w*255),Math.round(S*255),Math.round(L*255),D),M=`rgba(${T.r}, ${T.g}, ${T.b}, ${T.a})`,A=this._colorDecorationClassRefs.add(this._ruleFactory.createClassNameRef({backgroundColor:M}));C.push({range:{startLineNumber:u[v].colorInfo.range.startLineNumber,startColumn:u[v].colorInfo.range.startColumn,endLineNumber:u[v].colorInfo.range.endLineNumber,endColumn:u[v].colorInfo.range.endColumn},options:{description:"colorDetector",before:{content:_.noBreakWhitespace,inlineClassName:`${A.className} colorpicker-color-decoration`,inlineClassNameAffectsLetterSpacing:!0,attachedData:e.ColorDecorationInjectedTextMarker}}})}const h=f<u.length?f:!1;this._decoratorLimitReporter.update(u.length,h),this._colorDecoratorIds.set(C)}removeAllDecorations(){this._editor.removeDecorations(this._decorationsIds),this._decorationsIds=[],this._colorDecoratorIds.clear(),this._colorDecorationClassRefs.clear()}getColorData(u){const C=this._editor.getModel();if(!C)return null;const f=C.getDecorationsInRange(n.Range.fromPositions(u,u)).filter(h=>this._colorDatas.has(h.id));return f.length===0?null:this._colorDatas.get(f[0].id)}isColorDecoration(u){return this._colorDecoratorIds.has(u)}};e.ColorDetector=l,e.ColorDetector=l=c=ke([ce(1,g.IConfigurationService),ce(2,i.ILanguageFeaturesService),ce(3,t.ILanguageFeatureDebounceService)],l);class a{constructor(){this._onDidChange=new E.Emitter,this._computed=0,this._limited=!1}update(u,C){(u!==this._computed||C!==this._limited)&&(this._computed=u,this._limited=C,this._onDidChange.fire())}}e.DecoratorLimitReporter=a,(0,p.registerEditorContribution)(l.ID,l,1)}),define(ne[288],se([1,0,14,18,33,2,4,388,422,608,763,84,25,5]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandaloneColorPickerParticipant=e.StandaloneColorPickerHover=e.ColorHoverParticipant=e.ColorHover=void 0;class i{constructor(f,h,v,w){this.owner=f,this.range=h,this.model=v,this.provider=w,this.forceShowAtRange=!0}isValidForHoverAnchor(f){return f.type===1&&this.range.startColumn<=f.range.startColumn&&this.range.endColumn>=f.range.endColumn}}e.ColorHover=i;let s=class{constructor(f,h){this._editor=f,this._themeService=h,this.hoverOrdinal=2}computeSync(f,h){return[]}computeAsync(f,h,v){return d.AsyncIterableObject.fromPromise(this._computeAsync(f,h,v))}async _computeAsync(f,h,v){if(!this._editor.hasModel())return[];const w=_.ColorDetector.get(this._editor);if(!w)return[];for(const S of h){if(!w.isColorDecoration(S))continue;const L=w.getColorData(S.range.getStartPosition());if(L)return[await l(this,this._editor.getModel(),L.colorInfo,L.provider)]}return[]}renderHoverParts(f,h){const v=a(this,this._editor,this._themeService,h,f);if(!v)return new n.RenderedHoverParts([]);this._colorPicker=v.colorPicker;const w={hoverPart:v.hoverPart,hoverElement:this._colorPicker.domNode,dispose(){v.disposables.dispose()}};return new n.RenderedHoverParts([w])}handleResize(){this._colorPicker?.layout()}isColorPickerVisible(){return!!this._colorPicker}};e.ColorHoverParticipant=s,e.ColorHoverParticipant=s=ke([ce(1,o.IThemeService)],s);class g{constructor(f,h,v,w){this.owner=f,this.range=h,this.model=v,this.provider=w}}e.StandaloneColorPickerHover=g;let c=class{constructor(f,h){this._editor=f,this._themeService=h,this._color=null}async createColorHover(f,h,v){if(!this._editor.hasModel()||!_.ColorDetector.get(this._editor))return null;const S=await(0,m.getColors)(v,this._editor.getModel(),k.CancellationToken.None);let L=null,D=null;for(const P of S){const N=P.colorInfo;y.Range.containsRange(N.range,f.range)&&(L=N,D=P.provider)}const T=L??f,M=D??h,A=!!L;return{colorHover:await l(this,this._editor.getModel(),T,M),foundInEditor:A}}async updateEditorModel(f){if(!this._editor.hasModel())return;const h=f.model;let v=new y.Range(f.range.startLineNumber,f.range.startColumn,f.range.endLineNumber,f.range.endColumn);this._color&&(await u(this._editor.getModel(),h,this._color,v,f),v=r(this._editor,v,h))}renderHoverParts(f,h){return a(this,this._editor,this._themeService,h,f)}set color(f){this._color=f}get color(){return this._color}};e.StandaloneColorPickerParticipant=c,e.StandaloneColorPickerParticipant=c=ke([ce(1,o.IThemeService)],c);async function l(C,f,h,v){const w=f.getValueInRange(h.range),{red:S,green:L,blue:D,alpha:T}=h.color,M=new I.RGBA(Math.round(S*255),Math.round(L*255),Math.round(D*255),T),A=new I.Color(M),P=await(0,m.getColorPresentations)(f,h,v,k.CancellationToken.None),N=new b.ColorPickerModel(A,[],0);return N.colorPresentations=P||[],N.guessColorPresentation(A,w),C instanceof s?new i(C,y.Range.lift(h.range),N,v):new g(C,y.Range.lift(h.range),N,v)}function a(C,f,h,v,w){if(v.length===0||!f.hasModel())return;if(w.setMinimumDimensions){const N=f.getOption(67)+8;w.setMinimumDimensions(new t.Dimension(302,N))}const S=new E.DisposableStore,L=v[0],D=f.getModel(),T=L.model,M=S.add(new p.ColorPickerWidget(w.fragment,T,f.getOption(144),h,C instanceof c));let A=!1,P=new y.Range(L.range.startLineNumber,L.range.startColumn,L.range.endLineNumber,L.range.endColumn);if(C instanceof c){const N=L.model.color;C.color=N,u(D,T,N,P,L),S.add(T.onColorFlushed(O=>{C.color=O}))}else S.add(T.onColorFlushed(async N=>{await u(D,T,N,P,L),A=!0,P=r(f,P,T)}));return S.add(T.onDidChangeColor(N=>{u(D,T,N,P,L)})),S.add(f.onDidChangeModelContent(N=>{A?A=!1:(w.hide(),f.focus())})),{hoverPart:L,colorPicker:M,disposables:S}}function r(C,f,h){const v=[],w=h.presentation.textEdit??{range:f,text:h.presentation.label,forceMoveMarkers:!1};v.push(w),h.presentation.additionalTextEdits&&v.push(...h.presentation.additionalTextEdits);const S=y.Range.lift(w.range),L=C.getModel()._setTrackedRange(null,S,3);return C.executeEdits("colorpicker",v),C.pushUndoStop(),C.getModel()._getTrackedRange(L)??S}async function u(C,f,h,v,w){const S=await(0,m.getColorPresentations)(C,{range:v,color:{red:h.rgba.r/255,green:h.rgba.g/255,blue:h.rgba.b/255,alpha:h.rgba.a}},w.provider,k.CancellationToken.None);f.colorPresentations=S||[]}}),define(ne[820],se([1,0,2,288,7,391,31,6,17,15,20,12,385,5,100,227]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";var s,g;Object.defineProperty(e,"__esModule",{value:!0}),e.StandaloneColorPickerWidget=e.StandaloneColorPickerController=void 0;let c=class extends d.Disposable{static{s=this}static{this.ID="editor.contrib.standaloneColorPickerController"}constructor(f,h,v){super(),this._editor=f,this._instantiationService=v,this._standaloneColorPickerWidget=null,this._standaloneColorPickerVisible=p.EditorContextKeys.standaloneColorPickerVisible.bindTo(h),this._standaloneColorPickerFocused=p.EditorContextKeys.standaloneColorPickerFocused.bindTo(h)}showOrFocus(){this._editor.hasModel()&&(this._standaloneColorPickerVisible.get()?this._standaloneColorPickerFocused.get()||this._standaloneColorPickerWidget?.focus():this._standaloneColorPickerWidget=this._instantiationService.createInstance(r,this._editor,this._standaloneColorPickerVisible,this._standaloneColorPickerFocused))}hide(){this._standaloneColorPickerFocused.set(!1),this._standaloneColorPickerVisible.set(!1),this._standaloneColorPickerWidget?.hide(),this._editor.focus()}insertColor(){this._standaloneColorPickerWidget?.updateEditor(),this.hide()}static get(f){return f.getContribution(s.ID)}};e.StandaloneColorPickerController=c,e.StandaloneColorPickerController=c=s=ke([ce(1,n.IContextKeyService),ce(2,I.IInstantiationService)],c),(0,b.registerEditorContribution)(c.ID,c,1);const l=8,a=22;let r=class extends d.Disposable{static{g=this}static{this.ID="editor.contrib.standaloneColorPickerWidget"}constructor(f,h,v,w,S,L,D){super(),this._editor=f,this._standaloneColorPickerVisible=h,this._standaloneColorPickerFocused=v,this._keybindingService=S,this._languageFeaturesService=L,this._editorWorkerService=D,this.allowEditorOverflow=!0,this._position=void 0,this._body=document.createElement("div"),this._colorHover=null,this._selectionSetInEditor=!1,this._onResult=this._register(new m.Emitter),this.onResult=this._onResult.event,this._standaloneColorPickerVisible.set(!0),this._standaloneColorPickerParticipant=w.createInstance(k.StandaloneColorPickerParticipant,this._editor),this._position=this._editor._getViewModel()?.getPrimaryCursorState().modelState.position;const T=this._editor.getSelection(),M=T?{startLineNumber:T.startLineNumber,startColumn:T.startColumn,endLineNumber:T.endLineNumber,endColumn:T.endColumn}:{startLineNumber:0,endLineNumber:0,endColumn:0,startColumn:0},A=this._register(t.trackFocus(this._body));this._register(A.onDidBlur(P=>{this.hide()})),this._register(A.onDidFocus(P=>{this.focus()})),this._register(this._editor.onDidChangeCursorPosition(()=>{this._selectionSetInEditor?this._selectionSetInEditor=!1:this.hide()})),this._register(this._editor.onMouseMove(P=>{const N=P.target.element?.classList;N&&N.contains("colorpicker-color-decoration")&&this.hide()})),this._register(this.onResult(P=>{this._render(P.value,P.foundInEditor)})),this._start(M),this._body.style.zIndex="50",this._editor.addContentWidget(this)}updateEditor(){this._colorHover&&this._standaloneColorPickerParticipant.updateEditorModel(this._colorHover)}getId(){return g.ID}getDomNode(){return this._body}getPosition(){if(!this._position)return null;const f=this._editor.getOption(60).above;return{position:this._position,secondaryPosition:this._position,preference:f?[1,2]:[2,1],positionAffinity:2}}hide(){this.dispose(),this._standaloneColorPickerVisible.set(!1),this._standaloneColorPickerFocused.set(!1),this._editor.removeContentWidget(this),this._editor.focus()}focus(){this._standaloneColorPickerFocused.set(!0),this._body.focus()}async _start(f){const h=await this._computeAsync(f);h&&this._onResult.fire(new u(h.result,h.foundInEditor))}async _computeAsync(f){if(!this._editor.hasModel())return null;const h={range:f,color:{red:0,green:0,blue:0,alpha:1}},v=await this._standaloneColorPickerParticipant.createColorHover(h,new o.DefaultDocumentColorProvider(this._editorWorkerService),this._languageFeaturesService.colorProvider);return v?{result:v.colorHover,foundInEditor:v.foundInEditor}:null}_render(f,h){const v=document.createDocumentFragment(),w=this._register(new E.EditorHoverStatusBar(this._keybindingService)),S={fragment:v,statusBar:w,onContentsChanged:()=>{},hide:()=>this.hide()};this._colorHover=f;const L=this._standaloneColorPickerParticipant.renderHoverParts(S,[f]);if(!L)return;this._register(L.disposables);const D=L.colorPicker;this._body.classList.add("standalone-colorpicker-body"),this._body.style.maxHeight=Math.max(this._editor.getLayoutInfo().height/4,250)+"px",this._body.style.maxWidth=Math.max(this._editor.getLayoutInfo().width*.66,500)+"px",this._body.tabIndex=0,this._body.appendChild(v),D.layout();const T=D.body,M=T.saturationBox.domNode.clientWidth,A=T.domNode.clientWidth-M-a-l,P=D.body.enterButton;P?.onClicked(()=>{this.updateEditor(),this.hide()});const N=D.header,O=N.pickedColorNode;O.style.width=M+l+"px";const F=N.originalColorNode;F.style.width=A+"px",D.header.closeButton?.onClicked(()=>{this.hide()}),h&&(P&&(P.button.textContent="Replace"),this._selectionSetInEditor=!0,this._editor.setSelection(f.range)),this._editor.layoutContentWidget(this)}};e.StandaloneColorPickerWidget=r,e.StandaloneColorPickerWidget=r=g=ke([ce(3,I.IInstantiationService),ce(4,y.IKeybindingService),ce(5,_.ILanguageFeaturesService),ce(6,i.IEditorWorkerService)],r);class u{constructor(f,h){this.value=f,this.foundInEditor=h}}}),define(ne[821],se([1,0,15,3,820,20,29,227]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ShowOrFocusStandaloneColorPicker=void 0;class m extends d.EditorAction2{constructor(){super({id:"editor.action.showOrFocusStandaloneColorPicker",title:{...(0,k.localize2)(801,"Show or Focus Standalone Color Picker"),mnemonicTitle:(0,k.localize)(798,"&&Show or Focus Standalone Color Picker")},precondition:void 0,menu:[{id:y.MenuId.CommandPalette}],metadata:{description:(0,k.localize2)(802,"Show or focus a standalone color picker which uses the default color provider. It displays hex/rgb/hsl colors.")}})}runEditorCommand(n,o){I.StandaloneColorPickerController.get(o)?.showOrFocus()}}e.ShowOrFocusStandaloneColorPicker=m;class _ extends d.EditorAction{constructor(){super({id:"editor.action.hideColorPicker",label:(0,k.localize)(799,"Hide the Color Picker"),alias:"Hide the Color Picker",precondition:E.EditorContextKeys.standaloneColorPickerVisible.isEqualTo(!0),kbOpts:{primary:9,weight:100},metadata:{description:(0,k.localize2)(803,"Hide the standalone color picker.")}})}run(n,o){I.StandaloneColorPickerController.get(o)?.hide()}}class b extends d.EditorAction{constructor(){super({id:"editor.action.insertColorWithStandaloneColorPicker",label:(0,k.localize)(800,"Insert Color with Standalone Color Picker"),alias:"Insert Color with Standalone Color Picker",precondition:E.EditorContextKeys.standaloneColorPickerFocused.isEqualTo(!0),kbOpts:{primary:3,weight:100},metadata:{description:(0,k.localize2)(804,"Insert hex/rgb/hsl colors with the focused standalone color picker.")}})}run(n,o){I.StandaloneColorPickerController.get(o)?.insertColor()}}(0,d.registerEditorAction)(_),(0,d.registerEditorAction)(b),(0,y.registerAction2)(m)}),define(ne[822],se([1,0,2,16,15,9,4,23,35,610,507]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DragAndDropController=void 0;function p(o){return k.isMacintosh?o.altKey:o.ctrlKey}class n extends d.Disposable{static{this.ID="editor.contrib.dragAndDrop"}static{this.TRIGGER_KEY_VALUE=k.isMacintosh?6:5}constructor(t){super(),this._editor=t,this._dndDecorationIds=this._editor.createDecorationsCollection(),this._register(this._editor.onMouseDown(i=>this._onEditorMouseDown(i))),this._register(this._editor.onMouseUp(i=>this._onEditorMouseUp(i))),this._register(this._editor.onMouseDrag(i=>this._onEditorMouseDrag(i))),this._register(this._editor.onMouseDrop(i=>this._onEditorMouseDrop(i))),this._register(this._editor.onMouseDropCanceled(()=>this._onEditorMouseDropCanceled())),this._register(this._editor.onKeyDown(i=>this.onEditorKeyDown(i))),this._register(this._editor.onKeyUp(i=>this.onEditorKeyUp(i))),this._register(this._editor.onDidBlurEditorWidget(()=>this.onEditorBlur())),this._register(this._editor.onDidBlurEditorText(()=>this.onEditorBlur())),this._mouseDown=!1,this._modifierPressed=!1,this._dragSelection=null}onEditorBlur(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1}onEditorKeyDown(t){!this._editor.getOption(35)||this._editor.getOption(22)||(p(t)&&(this._modifierPressed=!0),this._mouseDown&&p(t)&&this._editor.updateOptions({mouseStyle:"copy"}))}onEditorKeyUp(t){!this._editor.getOption(35)||this._editor.getOption(22)||(p(t)&&(this._modifierPressed=!1),this._mouseDown&&t.keyCode===n.TRIGGER_KEY_VALUE&&this._editor.updateOptions({mouseStyle:"default"}))}_onEditorMouseDown(t){this._mouseDown=!0}_onEditorMouseUp(t){this._mouseDown=!1,this._editor.updateOptions({mouseStyle:"text"})}_onEditorMouseDrag(t){const i=t.target;if(this._dragSelection===null){const g=(this._editor.getSelections()||[]).filter(c=>i.position&&c.containsPosition(i.position));if(g.length===1)this._dragSelection=g[0];else return}p(t.event)?this._editor.updateOptions({mouseStyle:"copy"}):this._editor.updateOptions({mouseStyle:"default"}),i.position&&(this._dragSelection.containsPosition(i.position)?this._removeDecoration():this.showAt(i.position))}_onEditorMouseDropCanceled(){this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}_onEditorMouseDrop(t){if(t.target&&(this._hitContent(t.target)||this._hitMargin(t.target))&&t.target.position){const i=new E.Position(t.target.position.lineNumber,t.target.position.column);if(this._dragSelection===null){let s=null;if(t.event.shiftKey){const g=this._editor.getSelection();if(g){const{selectionStartLineNumber:c,selectionStartColumn:l}=g;s=[new m.Selection(c,l,i.lineNumber,i.column)]}}else s=(this._editor.getSelections()||[]).map(g=>g.containsPosition(i)?new m.Selection(i.lineNumber,i.column,i.lineNumber,i.column):g);this._editor.setSelections(s||[],"mouse",3)}else(!this._dragSelection.containsPosition(i)||(p(t.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(i)||this._dragSelection.getStartPosition().equals(i)))&&(this._editor.pushUndoStop(),this._editor.executeCommand(n.ID,new b.DragAndDropCommand(this._dragSelection,i,p(t.event)||this._modifierPressed)),this._editor.pushUndoStop())}this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}static{this._DECORATION_OPTIONS=_.ModelDecorationOptions.register({description:"dnd-target",className:"dnd-target"})}showAt(t){this._dndDecorationIds.set([{range:new y.Range(t.lineNumber,t.column,t.lineNumber,t.column),options:n._DECORATION_OPTIONS}]),this._editor.revealPosition(t,1)}_removeDecoration(){this._dndDecorationIds.clear()}_hitContent(t){return t.type===6||t.type===7}_hitMargin(t){return t.type===2||t.type===3||t.type===4}dispose(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,super.dispose()}}e.DragAndDropController=n,(0,I.registerEditorContribution)(n.ID,n,2)}),define(ne[823],se([1,0,4,40,35,32,25]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FindDecorations=void 0;class m{constructor(b){this._editor=b,this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null,this._startPosition=this._editor.getPosition()}dispose(){this._editor.removeDecorations(this._allDecorations()),this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}reset(){this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}getCount(){return this._decorations.length}getFindScope(){return this._findScopeDecorationIds[0]?this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]):null}getFindScopes(){if(this._findScopeDecorationIds.length){const b=this._findScopeDecorationIds.map(p=>this._editor.getModel().getDecorationRange(p)).filter(p=>!!p);if(b.length)return b}return null}getStartPosition(){return this._startPosition}setStartPosition(b){this._startPosition=b,this.setCurrentFindMatch(null)}_getDecorationIndex(b){const p=this._decorations.indexOf(b);return p>=0?p+1:1}getDecorationRangeAt(b){const p=b<this._decorations.length?this._decorations[b]:null;return p?this._editor.getModel().getDecorationRange(p):null}getCurrentMatchesPosition(b){const p=this._editor.getModel().getDecorationsInRange(b);for(const n of p){const o=n.options;if(o===m._FIND_MATCH_DECORATION||o===m._CURRENT_FIND_MATCH_DECORATION)return this._getDecorationIndex(n.id)}return 0}setCurrentFindMatch(b){let p=null,n=0;if(b)for(let o=0,t=this._decorations.length;o<t;o++){const i=this._editor.getModel().getDecorationRange(this._decorations[o]);if(b.equalsRange(i)){p=this._decorations[o],n=o+1;break}}return(this._highlightedDecorationId!==null||p!==null)&&this._editor.changeDecorations(o=>{if(this._highlightedDecorationId!==null&&(o.changeDecorationOptions(this._highlightedDecorationId,m._FIND_MATCH_DECORATION),this._highlightedDecorationId=null),p!==null&&(this._highlightedDecorationId=p,o.changeDecorationOptions(this._highlightedDecorationId,m._CURRENT_FIND_MATCH_DECORATION)),this._rangeHighlightDecorationId!==null&&(o.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),p!==null){let t=this._editor.getModel().getDecorationRange(p);if(t.startLineNumber!==t.endLineNumber&&t.endColumn===1){const i=t.endLineNumber-1,s=this._editor.getModel().getLineMaxColumn(i);t=new d.Range(t.startLineNumber,t.startColumn,i,s)}this._rangeHighlightDecorationId=o.addDecoration(t,m._RANGE_HIGHLIGHT_DECORATION)}}),n}set(b,p){this._editor.changeDecorations(n=>{let o=m._FIND_MATCH_DECORATION;const t=[];if(b.length>1e3){o=m._FIND_MATCH_NO_OVERVIEW_DECORATION;const s=this._editor.getModel().getLineCount(),c=this._editor.getLayoutInfo().height/s,l=Math.max(2,Math.ceil(3/c));let a=b[0].range.startLineNumber,r=b[0].range.endLineNumber;for(let u=1,C=b.length;u<C;u++){const f=b[u].range;r+l>=f.startLineNumber?f.endLineNumber>r&&(r=f.endLineNumber):(t.push({range:new d.Range(a,1,r,1),options:m._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),a=f.startLineNumber,r=f.endLineNumber)}t.push({range:new d.Range(a,1,r,1),options:m._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}const i=new Array(b.length);for(let s=0,g=b.length;s<g;s++)i[s]={range:b[s].range,options:o};this._decorations=n.deltaDecorations(this._decorations,i),this._overviewRulerApproximateDecorations=n.deltaDecorations(this._overviewRulerApproximateDecorations,t),this._rangeHighlightDecorationId&&(n.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),this._findScopeDecorationIds.length&&(this._findScopeDecorationIds.forEach(s=>n.removeDecoration(s)),this._findScopeDecorationIds=[]),p?.length&&(this._findScopeDecorationIds=p.map(s=>n.addDecoration(s,m._FIND_SCOPE_DECORATION)))})}matchBeforePosition(b){if(this._decorations.length===0)return null;for(let p=this._decorations.length-1;p>=0;p--){const n=this._decorations[p],o=this._editor.getModel().getDecorationRange(n);if(!(!o||o.endLineNumber>b.lineNumber)){if(o.endLineNumber<b.lineNumber)return o;if(!(o.endColumn>b.column))return o}}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}matchAfterPosition(b){if(this._decorations.length===0)return null;for(let p=0,n=this._decorations.length;p<n;p++){const o=this._decorations[p],t=this._editor.getModel().getDecorationRange(o);if(!(!t||t.startLineNumber<b.lineNumber)){if(t.startLineNumber>b.lineNumber)return t;if(!(t.startColumn<b.column))return t}}return this._editor.getModel().getDecorationRange(this._decorations[0])}_allDecorations(){let b=[];return b=b.concat(this._decorations),b=b.concat(this._overviewRulerApproximateDecorations),this._findScopeDecorationIds.length&&b.push(...this._findScopeDecorationIds),this._rangeHighlightDecorationId&&b.push(this._rangeHighlightDecorationId),b}static{this._CURRENT_FIND_MATCH_DECORATION=I.ModelDecorationOptions.register({description:"current-find-match",stickiness:1,zIndex:13,className:"currentFindMatch",inlineClassName:"currentFindMatchInline",showIfCollapsed:!0,overviewRuler:{color:(0,y.themeColorFromId)(E.overviewRulerFindMatchForeground),position:k.OverviewRulerLane.Center},minimap:{color:(0,y.themeColorFromId)(E.minimapFindMatch),position:1}})}static{this._FIND_MATCH_DECORATION=I.ModelDecorationOptions.register({description:"find-match",stickiness:1,zIndex:10,className:"findMatch",inlineClassName:"findMatchInline",showIfCollapsed:!0,overviewRuler:{color:(0,y.themeColorFromId)(E.overviewRulerFindMatchForeground),position:k.OverviewRulerLane.Center},minimap:{color:(0,y.themeColorFromId)(E.minimapFindMatch),position:1}})}static{this._FIND_MATCH_NO_OVERVIEW_DECORATION=I.ModelDecorationOptions.register({description:"find-match-no-overview",stickiness:1,className:"findMatch",showIfCollapsed:!0})}static{this._FIND_MATCH_ONLY_OVERVIEW_DECORATION=I.ModelDecorationOptions.register({description:"find-match-only-overview",stickiness:1,overviewRuler:{color:(0,y.themeColorFromId)(E.overviewRulerFindMatchForeground),position:k.OverviewRulerLane.Center}})}static{this._RANGE_HIGHLIGHT_DECORATION=I.ModelDecorationOptions.register({description:"find-range-highlight",stickiness:1,className:"rangeHighlight",isWholeLine:!0})}static{this._FIND_SCOPE_DECORATION=I.ModelDecorationOptions.register({description:"find-scope",className:"findScope",isWholeLine:!0})}}e.FindDecorations=m}),define(ne[220],se([1,0,67,14,2,146,9,4,23,202,823,611,612,12]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FindModelBoundToEditorModel=e.MATCHES_LIMIT=e.FIND_IDS=e.TogglePreserveCaseKeybinding=e.ToggleSearchScopeKeybinding=e.ToggleRegexKeybinding=e.ToggleWholeWordKeybinding=e.ToggleCaseSensitiveKeybinding=e.CONTEXT_REPLACE_INPUT_FOCUSED=e.CONTEXT_FIND_INPUT_FOCUSED=e.CONTEXT_FIND_WIDGET_NOT_VISIBLE=e.CONTEXT_FIND_WIDGET_VISIBLE=void 0,e.CONTEXT_FIND_WIDGET_VISIBLE=new t.RawContextKey("findWidgetVisible",!1),e.CONTEXT_FIND_WIDGET_NOT_VISIBLE=e.CONTEXT_FIND_WIDGET_VISIBLE.toNegated(),e.CONTEXT_FIND_INPUT_FOCUSED=new t.RawContextKey("findInputFocussed",!1),e.CONTEXT_REPLACE_INPUT_FOCUSED=new t.RawContextKey("replaceInputFocussed",!1),e.ToggleCaseSensitiveKeybinding={primary:545,mac:{primary:2593}},e.ToggleWholeWordKeybinding={primary:565,mac:{primary:2613}},e.ToggleRegexKeybinding={primary:560,mac:{primary:2608}},e.ToggleSearchScopeKeybinding={primary:554,mac:{primary:2602}},e.TogglePreserveCaseKeybinding={primary:558,mac:{primary:2606}},e.FIND_IDS={StartFindAction:"actions.find",StartFindWithSelection:"actions.findWithSelection",StartFindWithArgs:"editor.actions.findWithArgs",NextMatchFindAction:"editor.action.nextMatchFindAction",PreviousMatchFindAction:"editor.action.previousMatchFindAction",GoToMatchFindAction:"editor.action.goToMatchFindAction",NextSelectionMatchFindAction:"editor.action.nextSelectionMatchFindAction",PreviousSelectionMatchFindAction:"editor.action.previousSelectionMatchFindAction",StartFindReplaceAction:"editor.action.startFindReplaceAction",CloseFindWidgetCommand:"closeFindWidget",ToggleCaseSensitiveCommand:"toggleFindCaseSensitive",ToggleWholeWordCommand:"toggleFindWholeWord",ToggleRegexCommand:"toggleFindRegex",ToggleSearchScopeCommand:"toggleFindInSelection",TogglePreserveCaseCommand:"togglePreserveCase",ReplaceOneAction:"editor.action.replaceOne",ReplaceAllAction:"editor.action.replaceAll",SelectAllMatchesAction:"editor.action.selectAllMatches"},e.MATCHES_LIMIT=19999;const i=240;class s{constructor(c,l){this._toDispose=new I.DisposableStore,this._editor=c,this._state=l,this._isDisposed=!1,this._startSearchingTimer=new k.TimeoutTimer,this._decorations=new p.FindDecorations(c),this._toDispose.add(this._decorations),this._updateDecorationsScheduler=new k.RunOnceScheduler(()=>{if(this._editor.hasModel())return this.research(!1)},100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition(a=>{(a.reason===3||a.reason===5||a.reason===6)&&this._decorations.setStartPosition(this._editor.getPosition())})),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent(a=>{this._ignoreModelContentChanged||(a.isFlush&&this._decorations.reset(),this._decorations.setStartPosition(this._editor.getPosition()),this._updateDecorationsScheduler.schedule())})),this._toDispose.add(this._state.onFindReplaceStateChange(a=>this._onStateChanged(a))),this.research(!1,this._state.searchScope)}dispose(){this._isDisposed=!0,(0,I.dispose)(this._startSearchingTimer),this._toDispose.dispose()}_onStateChanged(c){this._isDisposed||this._editor.hasModel()&&(c.searchString||c.isReplaceRevealed||c.isRegex||c.wholeWord||c.matchCase||c.searchScope)&&(this._editor.getModel().isTooLargeForSyncing()?(this._startSearchingTimer.cancel(),this._startSearchingTimer.setIfNotSet(()=>{c.searchScope?this.research(c.moveCursor,this._state.searchScope):this.research(c.moveCursor)},i)):c.searchScope?this.research(c.moveCursor,this._state.searchScope):this.research(c.moveCursor))}static _getSearchRange(c,l){return l||c.getFullModelRange()}research(c,l){let a=null;typeof l<"u"?l!==null&&(Array.isArray(l)?a=l:a=[l]):a=this._decorations.getFindScopes(),a!==null&&(a=a.map(f=>{if(f.startLineNumber!==f.endLineNumber){let h=f.endLineNumber;return f.endColumn===1&&(h=h-1),new m.Range(f.startLineNumber,1,h,this._editor.getModel().getLineMaxColumn(h))}return f}));const r=this._findMatches(a,!1,e.MATCHES_LIMIT);this._decorations.set(r,a);const u=this._editor.getSelection();let C=this._decorations.getCurrentMatchesPosition(u);if(C===0&&r.length>0){const f=(0,d.findFirstIdxMonotonousOrArrLen)(r.map(h=>h.range),h=>m.Range.compareRangesUsingStarts(h,u)>=0);C=f>0?f-1+1:C}this._state.changeMatchInfo(C,this._decorations.getCount(),void 0),c&&this._editor.getOption(41).cursorMoveOnType&&this._moveToNextMatch(this._decorations.getStartPosition())}_hasMatches(){return this._state.matchesCount>0}_cannotFind(){if(!this._hasMatches()){const c=this._decorations.getFindScope();return c&&this._editor.revealRangeInCenterIfOutsideViewport(c,0),!0}return!1}_setCurrentFindMatch(c){const l=this._decorations.setCurrentFindMatch(c);this._state.changeMatchInfo(l,this._decorations.getCount(),c),this._editor.setSelection(c),this._editor.revealRangeInCenterIfOutsideViewport(c,0)}_prevSearchPosition(c){const l=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:a,column:r}=c;const u=this._editor.getModel();return l||r===1?(a===1?a=u.getLineCount():a--,r=u.getLineMaxColumn(a)):r--,new y.Position(a,r)}_moveToPrevMatch(c,l=!1){if(!this._state.canNavigateBack()){const w=this._decorations.matchAfterPosition(c);w&&this._setCurrentFindMatch(w);return}if(this._decorations.getCount()<e.MATCHES_LIMIT){let w=this._decorations.matchBeforePosition(c);w&&w.isEmpty()&&w.getStartPosition().equals(c)&&(c=this._prevSearchPosition(c),w=this._decorations.matchBeforePosition(c)),w&&this._setCurrentFindMatch(w);return}if(this._cannotFind())return;const a=this._decorations.getFindScope(),r=s._getSearchRange(this._editor.getModel(),a);r.getEndPosition().isBefore(c)&&(c=r.getEndPosition()),c.isBefore(r.getStartPosition())&&(c=r.getEndPosition());const{lineNumber:u,column:C}=c,f=this._editor.getModel();let h=new y.Position(u,C),v=f.findPreviousMatch(this._state.searchString,h,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(132):null,!1);if(v&&v.range.isEmpty()&&v.range.getStartPosition().equals(h)&&(h=this._prevSearchPosition(h),v=f.findPreviousMatch(this._state.searchString,h,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(132):null,!1)),!!v){if(!l&&!r.containsRange(v.range))return this._moveToPrevMatch(v.range.getStartPosition(),!0);this._setCurrentFindMatch(v.range)}}moveToPrevMatch(){this._moveToPrevMatch(this._editor.getSelection().getStartPosition())}_nextSearchPosition(c){const l=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:a,column:r}=c;const u=this._editor.getModel();return l||r===u.getLineMaxColumn(a)?(a===u.getLineCount()?a=1:a++,r=1):r++,new y.Position(a,r)}_moveToNextMatch(c){if(!this._state.canNavigateForward()){const a=this._decorations.matchBeforePosition(c);a&&this._setCurrentFindMatch(a);return}if(this._decorations.getCount()<e.MATCHES_LIMIT){let a=this._decorations.matchAfterPosition(c);a&&a.isEmpty()&&a.getStartPosition().equals(c)&&(c=this._nextSearchPosition(c),a=this._decorations.matchAfterPosition(c)),a&&this._setCurrentFindMatch(a);return}const l=this._getNextMatch(c,!1,!0);l&&this._setCurrentFindMatch(l.range)}_getNextMatch(c,l,a,r=!1){if(this._cannotFind())return null;const u=this._decorations.getFindScope(),C=s._getSearchRange(this._editor.getModel(),u);C.getEndPosition().isBefore(c)&&(c=C.getStartPosition()),c.isBefore(C.getStartPosition())&&(c=C.getStartPosition());const{lineNumber:f,column:h}=c,v=this._editor.getModel();let w=new y.Position(f,h),S=v.findNextMatch(this._state.searchString,w,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(132):null,l);return a&&S&&S.range.isEmpty()&&S.range.getStartPosition().equals(w)&&(w=this._nextSearchPosition(w),S=v.findNextMatch(this._state.searchString,w,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(132):null,l)),S?!r&&!C.containsRange(S.range)?this._getNextMatch(S.range.getEndPosition(),l,a,!0):S:null}moveToNextMatch(){this._moveToNextMatch(this._editor.getSelection().getEndPosition())}_moveToMatch(c){const l=this._decorations.getDecorationRangeAt(c);l&&this._setCurrentFindMatch(l)}moveToMatch(c){this._moveToMatch(c)}_getReplacePattern(){return this._state.isRegex?(0,o.parseReplaceString)(this._state.replaceString):o.ReplacePattern.fromStaticValue(this._state.replaceString)}replace(){if(!this._hasMatches())return;const c=this._getReplacePattern(),l=this._editor.getSelection(),a=this._getNextMatch(l.getStartPosition(),!0,!1);if(a)if(l.equalsRange(a.range)){const r=c.buildReplaceString(a.matches,this._state.preserveCase),u=new E.ReplaceCommand(l,r);this._executeEditorCommand("replace",u),this._decorations.setStartPosition(new y.Position(l.startLineNumber,l.startColumn+r.length)),this.research(!0)}else this._decorations.setStartPosition(this._editor.getPosition()),this._setCurrentFindMatch(a.range)}_findMatches(c,l,a){const r=(c||[null]).map(u=>s._getSearchRange(this._editor.getModel(),u));return this._editor.getModel().findMatches(this._state.searchString,r,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(132):null,l,a)}replaceAll(){if(!this._hasMatches())return;const c=this._decorations.getFindScopes();c===null&&this._state.matchesCount>=e.MATCHES_LIMIT?this._largeReplaceAll():this._regularReplaceAll(c),this.research(!1)}_largeReplaceAll(){const l=new b.SearchParams(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(132):null).parseSearchRequest();if(!l)return;let a=l.regex;if(!a.multiline){let S="mu";a.ignoreCase&&(S+="i"),a.global&&(S+="g"),a=new RegExp(a.source,S)}const r=this._editor.getModel(),u=r.getValue(1),C=r.getFullModelRange(),f=this._getReplacePattern();let h;const v=this._state.preserveCase;f.hasReplacementPatterns||v?h=u.replace(a,function(){return f.buildReplaceString(arguments,v)}):h=u.replace(a,f.buildReplaceString(null,v));const w=new E.ReplaceCommandThatPreservesSelection(C,h,this._editor.getSelection());this._executeEditorCommand("replaceAll",w)}_regularReplaceAll(c){const l=this._getReplacePattern(),a=this._findMatches(c,l.hasReplacementPatterns||this._state.preserveCase,1073741824),r=[];for(let C=0,f=a.length;C<f;C++)r[C]=l.buildReplaceString(a[C].matches,this._state.preserveCase);const u=new n.ReplaceAllCommand(this._editor.getSelection(),a.map(C=>C.range),r);this._executeEditorCommand("replaceAll",u)}selectAllMatches(){if(!this._hasMatches())return;const c=this._decorations.getFindScopes();let a=this._findMatches(c,!1,1073741824).map(u=>new _.Selection(u.range.startLineNumber,u.range.startColumn,u.range.endLineNumber,u.range.endColumn));const r=this._editor.getSelection();for(let u=0,C=a.length;u<C;u++)if(a[u].equalsRange(r)){a=[r].concat(a.slice(0,u)).concat(a.slice(u+1));break}this._editor.setSelections(a)}_executeEditorCommand(c,l){try{this._ignoreModelContentChanged=!0,this._editor.pushUndoStop(),this._editor.executeCommand(c,l),this._editor.pushUndoStop()}finally{this._ignoreModelContentChanged=!1}}}e.FindModelBoundToEditorModel=s}),define(ne[824],se([1,0,5,358,85,14,220,32,44,509]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FindOptionsWidget=void 0;class b extends I.Widget{static{this.ID="editor.contrib.findOptionsWidget"}constructor(n,o,t){super(),this._hideSoon=this._register(new E.RunOnceScheduler(()=>this._hide(),2e3)),this._isVisible=!1,this._editor=n,this._state=o,this._keybindingService=t,this._domNode=document.createElement("div"),this._domNode.className="findOptionsWidget",this._domNode.style.display="none",this._domNode.style.top="10px",this._domNode.style.zIndex="12",this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true");const i={inputActiveOptionBorder:(0,m.asCssVariable)(m.inputActiveOptionBorder),inputActiveOptionForeground:(0,m.asCssVariable)(m.inputActiveOptionForeground),inputActiveOptionBackground:(0,m.asCssVariable)(m.inputActiveOptionBackground)},s=this._register((0,_.createInstantHoverDelegate)());this.caseSensitive=this._register(new k.CaseSensitiveToggle({appendTitle:this._keybindingLabelFor(y.FIND_IDS.ToggleCaseSensitiveCommand),isChecked:this._state.matchCase,hoverDelegate:s,...i})),this._domNode.appendChild(this.caseSensitive.domNode),this._register(this.caseSensitive.onChange(()=>{this._state.change({matchCase:this.caseSensitive.checked},!1)})),this.wholeWords=this._register(new k.WholeWordsToggle({appendTitle:this._keybindingLabelFor(y.FIND_IDS.ToggleWholeWordCommand),isChecked:this._state.wholeWord,hoverDelegate:s,...i})),this._domNode.appendChild(this.wholeWords.domNode),this._register(this.wholeWords.onChange(()=>{this._state.change({wholeWord:this.wholeWords.checked},!1)})),this.regex=this._register(new k.RegexToggle({appendTitle:this._keybindingLabelFor(y.FIND_IDS.ToggleRegexCommand),isChecked:this._state.isRegex,hoverDelegate:s,...i})),this._domNode.appendChild(this.regex.domNode),this._register(this.regex.onChange(()=>{this._state.change({isRegex:this.regex.checked},!1)})),this._editor.addOverlayWidget(this),this._register(this._state.onFindReplaceStateChange(g=>{let c=!1;g.isRegex&&(this.regex.checked=this._state.isRegex,c=!0),g.wholeWord&&(this.wholeWords.checked=this._state.wholeWord,c=!0),g.matchCase&&(this.caseSensitive.checked=this._state.matchCase,c=!0),!this._state.isRevealed&&c&&this._revealTemporarily()})),this._register(d.addDisposableListener(this._domNode,d.EventType.MOUSE_LEAVE,g=>this._onMouseLeave())),this._register(d.addDisposableListener(this._domNode,"mouseover",g=>this._onMouseOver()))}_keybindingLabelFor(n){const o=this._keybindingService.lookupKeybinding(n);return o?` (${o.getLabel()})`:""}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return b.ID}getDomNode(){return this._domNode}getPosition(){return{preference:0}}highlightFindOptions(){this._revealTemporarily()}_revealTemporarily(){this._show(),this._hideSoon.schedule()}_onMouseLeave(){this._hideSoon.schedule()}_onMouseOver(){this._hideSoon.cancel()}_show(){this._isVisible||(this._isVisible=!0,this._domNode.style.display="block")}_hide(){this._isVisible&&(this._isVisible=!1,this._domNode.style.display="none")}}e.FindOptionsWidget=b}),define(ne[825],se([1,0,6,2,4,220]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FindReplaceState=void 0;function y(_,b){return _===1?!0:_===2?!1:b}class m extends k.Disposable{get searchString(){return this._searchString}get replaceString(){return this._replaceString}get isRevealed(){return this._isRevealed}get isReplaceRevealed(){return this._isReplaceRevealed}get isRegex(){return y(this._isRegexOverride,this._isRegex)}get wholeWord(){return y(this._wholeWordOverride,this._wholeWord)}get matchCase(){return y(this._matchCaseOverride,this._matchCase)}get preserveCase(){return y(this._preserveCaseOverride,this._preserveCase)}get actualIsRegex(){return this._isRegex}get actualWholeWord(){return this._wholeWord}get actualMatchCase(){return this._matchCase}get actualPreserveCase(){return this._preserveCase}get searchScope(){return this._searchScope}get matchesPosition(){return this._matchesPosition}get matchesCount(){return this._matchesCount}get currentMatch(){return this._currentMatch}constructor(){super(),this._onFindReplaceStateChange=this._register(new d.Emitter),this.onFindReplaceStateChange=this._onFindReplaceStateChange.event,this._searchString="",this._replaceString="",this._isRevealed=!1,this._isReplaceRevealed=!1,this._isRegex=!1,this._isRegexOverride=0,this._wholeWord=!1,this._wholeWordOverride=0,this._matchCase=!1,this._matchCaseOverride=0,this._preserveCase=!1,this._preserveCaseOverride=0,this._searchScope=null,this._matchesPosition=0,this._matchesCount=0,this._currentMatch=null,this._loop=!0,this._isSearching=!1,this._filters=null}changeMatchInfo(b,p,n){const o={moveCursor:!1,updateHistory:!1,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1};let t=!1;p===0&&(b=0),b>p&&(b=p),this._matchesPosition!==b&&(this._matchesPosition=b,o.matchesPosition=!0,t=!0),this._matchesCount!==p&&(this._matchesCount=p,o.matchesCount=!0,t=!0),typeof n<"u"&&(I.Range.equalsRange(this._currentMatch,n)||(this._currentMatch=n,o.currentMatch=!0,t=!0)),t&&this._onFindReplaceStateChange.fire(o)}change(b,p,n=!0){const o={moveCursor:p,updateHistory:n,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1};let t=!1;const i=this.isRegex,s=this.wholeWord,g=this.matchCase,c=this.preserveCase;typeof b.searchString<"u"&&this._searchString!==b.searchString&&(this._searchString=b.searchString,o.searchString=!0,t=!0),typeof b.replaceString<"u"&&this._replaceString!==b.replaceString&&(this._replaceString=b.replaceString,o.replaceString=!0,t=!0),typeof b.isRevealed<"u"&&this._isRevealed!==b.isRevealed&&(this._isRevealed=b.isRevealed,o.isRevealed=!0,t=!0),typeof b.isReplaceRevealed<"u"&&this._isReplaceRevealed!==b.isReplaceRevealed&&(this._isReplaceRevealed=b.isReplaceRevealed,o.isReplaceRevealed=!0,t=!0),typeof b.isRegex<"u"&&(this._isRegex=b.isRegex),typeof b.wholeWord<"u"&&(this._wholeWord=b.wholeWord),typeof b.matchCase<"u"&&(this._matchCase=b.matchCase),typeof b.preserveCase<"u"&&(this._preserveCase=b.preserveCase),typeof b.searchScope<"u"&&(b.searchScope?.every(l=>this._searchScope?.some(a=>!I.Range.equalsRange(a,l)))||(this._searchScope=b.searchScope,o.searchScope=!0,t=!0)),typeof b.loop<"u"&&this._loop!==b.loop&&(this._loop=b.loop,o.loop=!0,t=!0),typeof b.isSearching<"u"&&this._isSearching!==b.isSearching&&(this._isSearching=b.isSearching,o.isSearching=!0,t=!0),typeof b.filters<"u"&&(this._filters?this._filters.update(b.filters):this._filters=b.filters,o.filters=!0,t=!0),this._isRegexOverride=typeof b.isRegexOverride<"u"?b.isRegexOverride:0,this._wholeWordOverride=typeof b.wholeWordOverride<"u"?b.wholeWordOverride:0,this._matchCaseOverride=typeof b.matchCaseOverride<"u"?b.matchCaseOverride:0,this._preserveCaseOverride=typeof b.preserveCaseOverride<"u"?b.preserveCaseOverride:0,i!==this.isRegex&&(t=!0,o.isRegex=!0),s!==this.wholeWord&&(t=!0,o.wholeWord=!0),g!==this.matchCase&&(t=!0,o.matchCase=!0),c!==this.preserveCase&&(t=!0,o.preserveCase=!0),t&&this._onFindReplaceStateChange.fire(o)}canNavigateBack(){return this.canNavigateInLoop()||this.matchesPosition!==1}canNavigateForward(){return this.canNavigateInLoop()||this.matchesPosition<this.matchesCount}canNavigateInLoop(){return this._loop||this.matchesCount>=E.MATCHES_LIMIT}}e.FindReplaceState=m}),define(ne[826],se([1,0,5,46,175,173,85,14,26,8,2,16,11,4,220,3,404,675,32,71,25,30,97,19,110,44,510]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SimpleButton=e.FindWidget=e.FindWidgetViewZone=e.NLS_NO_RESULTS=e.NLS_MATCHES_LOCATION=e.findNextMatchIcon=e.findPreviousMatchIcon=e.findReplaceAllIcon=e.findReplaceIcon=e.findSelectionIcon=void 0;const w=(0,a.registerIcon)("find-collapsed",_.Codicon.chevronRight,s.localize(864,"Icon to indicate that the editor find widget is collapsed.")),S=(0,a.registerIcon)("find-expanded",_.Codicon.chevronDown,s.localize(865,"Icon to indicate that the editor find widget is expanded."));e.findSelectionIcon=(0,a.registerIcon)("find-selection",_.Codicon.selection,s.localize(866,"Icon for 'Find in Selection' in the editor find widget.")),e.findReplaceIcon=(0,a.registerIcon)("find-replace",_.Codicon.replace,s.localize(867,"Icon for 'Replace' in the editor find widget.")),e.findReplaceAllIcon=(0,a.registerIcon)("find-replace-all",_.Codicon.replaceAll,s.localize(868,"Icon for 'Replace All' in the editor find widget.")),e.findPreviousMatchIcon=(0,a.registerIcon)("find-previous-match",_.Codicon.arrowUp,s.localize(869,"Icon for 'Find Previous' in the editor find widget.")),e.findNextMatchIcon=(0,a.registerIcon)("find-next-match",_.Codicon.arrowDown,s.localize(870,"Icon for 'Find Next' in the editor find widget."));const L=s.localize(871,"Find / Replace"),D=s.localize(872,"Find"),T=s.localize(873,"Find"),M=s.localize(874,"Previous Match"),A=s.localize(875,"Next Match"),P=s.localize(876,"Find in Selection"),N=s.localize(877,"Close"),O=s.localize(878,"Replace"),F=s.localize(879,"Replace"),x=s.localize(880,"Replace"),W=s.localize(881,"Replace All"),V=s.localize(882,"Toggle Replace"),q=s.localize(883,"Only the first {0} results are highlighted, but all find operations work on the entire text.",i.MATCHES_LIMIT);e.NLS_MATCHES_LOCATION=s.localize(884,"{0} of {1}"),e.NLS_NO_RESULTS=s.localize(885,"No results");const H=419,U=275-54;let j=69;const Y=33,G="ctrlEnterReplaceAll.windows.donotask",K=n.isMacintosh?256:2048;class R{constructor(ae){this.afterLineNumber=ae,this.heightInPx=Y,this.suppressMouseDown=!1,this.domNode=document.createElement("div"),this.domNode.className="dock-find-viewzone"}}e.FindWidgetViewZone=R;function J(pe,ae,ee){const de=!!ae.match(/\n/);if(ee&&de&&ee.selectionStart>0){pe.stopPropagation();return}}function ie(pe,ae,ee){const de=!!ae.match(/\n/);if(ee&&de&&ee.selectionEnd<ee.value.length){pe.stopPropagation();return}}class ue extends y.Widget{static{this.ID="editor.contrib.findWidget"}constructor(ae,ee,de,ge,X,B,$,Q,Z,te){super(),this._hoverService=te,this._cachedHeight=null,this._revealTimeouts=[],this._codeEditor=ae,this._controller=ee,this._state=de,this._contextViewProvider=ge,this._keybindingService=X,this._contextKeyService=B,this._storageService=Q,this._notificationService=Z,this._ctrlEnterReplaceAllWarningPrompted=!!Q.getBoolean(G,0),this._isVisible=!1,this._isReplaceVisible=!1,this._ignoreChangeEvent=!1,this._updateHistoryDelayer=new m.Delayer(500),this._register((0,p.toDisposable)(()=>this._updateHistoryDelayer.cancel())),this._register(this._state.onFindReplaceStateChange(re=>this._onStateChanged(re))),this._buildDomNode(),this._updateButtons(),this._tryUpdateWidgetWidth(),this._findInput.inputBox.layout(),this._register(this._codeEditor.onDidChangeConfiguration(re=>{if(re.hasChanged(92)&&(this._codeEditor.getOption(92)&&this._state.change({isReplaceRevealed:!1},!1),this._updateButtons()),re.hasChanged(146)&&this._tryUpdateWidgetWidth(),re.hasChanged(2)&&this.updateAccessibilitySupport(),re.hasChanged(41)){const le=this._codeEditor.getOption(41).loop;this._state.change({loop:le},!1);const me=this._codeEditor.getOption(41).addExtraSpaceOnTop;me&&!this._viewZone&&(this._viewZone=new R(0),this._showViewZone()),!me&&this._viewZone&&this._removeViewZone()}})),this.updateAccessibilitySupport(),this._register(this._codeEditor.onDidChangeCursorSelection(()=>{this._isVisible&&this._updateToggleSelectionFindButton()})),this._register(this._codeEditor.onDidFocusEditorWidget(async()=>{if(this._isVisible){const re=await this._controller.getGlobalBufferTerm();re&&re!==this._state.searchString&&(this._state.change({searchString:re},!1),this._findInput.select())}})),this._findInputFocused=i.CONTEXT_FIND_INPUT_FOCUSED.bindTo(B),this._findFocusTracker=this._register(d.trackFocus(this._findInput.inputBox.inputElement)),this._register(this._findFocusTracker.onDidFocus(()=>{this._findInputFocused.set(!0),this._updateSearchScope()})),this._register(this._findFocusTracker.onDidBlur(()=>{this._findInputFocused.set(!1)})),this._replaceInputFocused=i.CONTEXT_REPLACE_INPUT_FOCUSED.bindTo(B),this._replaceFocusTracker=this._register(d.trackFocus(this._replaceInput.inputBox.inputElement)),this._register(this._replaceFocusTracker.onDidFocus(()=>{this._replaceInputFocused.set(!0),this._updateSearchScope()})),this._register(this._replaceFocusTracker.onDidBlur(()=>{this._replaceInputFocused.set(!1)})),this._codeEditor.addOverlayWidget(this),this._codeEditor.getOption(41).addExtraSpaceOnTop&&(this._viewZone=new R(0)),this._register(this._codeEditor.onDidChangeModel(()=>{this._isVisible&&(this._viewZoneId=void 0)})),this._register(this._codeEditor.onDidScrollChange(re=>{if(re.scrollTopChanged){this._layoutViewZone();return}setTimeout(()=>{this._layoutViewZone()},0)}))}getId(){return ue.ID}getDomNode(){return this._domNode}getPosition(){return this._isVisible?{preference:0}:null}_onStateChanged(ae){if(ae.searchString){try{this._ignoreChangeEvent=!0,this._findInput.setValue(this._state.searchString)}finally{this._ignoreChangeEvent=!1}this._updateButtons()}if(ae.replaceString&&(this._replaceInput.inputBox.value=this._state.replaceString),ae.isRevealed&&(this._state.isRevealed?this._reveal():this._hide(!0)),ae.isReplaceRevealed&&(this._state.isReplaceRevealed?!this._codeEditor.getOption(92)&&!this._isReplaceVisible&&(this._isReplaceVisible=!0,this._replaceInput.width=d.getTotalWidth(this._findInput.domNode),this._updateButtons(),this._replaceInput.inputBox.layout()):this._isReplaceVisible&&(this._isReplaceVisible=!1,this._updateButtons())),(ae.isRevealed||ae.isReplaceRevealed)&&(this._state.isRevealed||this._state.isReplaceRevealed)&&this._tryUpdateHeight()&&this._showViewZone(),ae.isRegex&&this._findInput.setRegex(this._state.isRegex),ae.wholeWord&&this._findInput.setWholeWords(this._state.wholeWord),ae.matchCase&&this._findInput.setCaseSensitive(this._state.matchCase),ae.preserveCase&&this._replaceInput.setPreserveCase(this._state.preserveCase),ae.searchScope&&(this._state.searchScope?this._toggleSelectionFind.checked=!0:this._toggleSelectionFind.checked=!1,this._updateToggleSelectionFindButton()),ae.searchString||ae.matchesCount||ae.matchesPosition){const ee=this._state.searchString.length>0&&this._state.matchesCount===0;this._domNode.classList.toggle("no-results",ee),this._updateMatchesCount(),this._updateButtons()}(ae.searchString||ae.currentMatch)&&this._layoutViewZone(),ae.updateHistory&&this._delayedUpdateHistory(),ae.loop&&this._updateButtons()}_delayedUpdateHistory(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(void 0,b.onUnexpectedError)}_updateHistory(){this._state.searchString&&this._findInput.inputBox.addToHistory(),this._state.replaceString&&this._replaceInput.inputBox.addToHistory()}_updateMatchesCount(){this._matchesCount.style.minWidth=j+"px",this._state.matchesCount>=i.MATCHES_LIMIT?this._matchesCount.title=q:this._matchesCount.title="",this._matchesCount.firstChild?.remove();let ae;if(this._state.matchesCount>0){let ee=String(this._state.matchesCount);this._state.matchesCount>=i.MATCHES_LIMIT&&(ee+="+");let de=String(this._state.matchesPosition);de==="0"&&(de="?"),ae=o.format(e.NLS_MATCHES_LOCATION,de,ee)}else ae=e.NLS_NO_RESULTS;this._matchesCount.appendChild(document.createTextNode(ae)),(0,k.alert)(this._getAriaLabel(ae,this._state.currentMatch,this._state.searchString)),j=Math.max(j,this._matchesCount.clientWidth)}_getAriaLabel(ae,ee,de){if(ae===e.NLS_NO_RESULTS)return de===""?s.localize(886,"{0} found",ae):s.localize(887,"{0} found for '{1}'",ae,de);if(ee){const ge=s.localize(888,"{0} found for '{1}', at {2}",ae,de,ee.startLineNumber+":"+ee.startColumn),X=this._codeEditor.getModel();return X&&ee.startLineNumber<=X.getLineCount()&&ee.startLineNumber>=1?`${X.getLineContent(ee.startLineNumber)}, ${ge}`:ge}return s.localize(889,"{0} found for '{1}'",ae,de)}_updateToggleSelectionFindButton(){const ae=this._codeEditor.getSelection(),ee=ae?ae.startLineNumber!==ae.endLineNumber||ae.startColumn!==ae.endColumn:!1,de=this._toggleSelectionFind.checked;this._isVisible&&(de||ee)?this._toggleSelectionFind.enable():this._toggleSelectionFind.disable()}_updateButtons(){this._findInput.setEnabled(this._isVisible),this._replaceInput.setEnabled(this._isVisible&&this._isReplaceVisible),this._updateToggleSelectionFindButton(),this._closeBtn.setEnabled(this._isVisible);const ae=this._state.searchString.length>0,ee=!!this._state.matchesCount;this._prevBtn.setEnabled(this._isVisible&&ae&&ee&&this._state.canNavigateBack()),this._nextBtn.setEnabled(this._isVisible&&ae&&ee&&this._state.canNavigateForward()),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&ae),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&ae),this._domNode.classList.toggle("replaceToggled",this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);const de=!this._codeEditor.getOption(92);this._toggleReplaceBtn.setEnabled(this._isVisible&&de)}_reveal(){if(this._revealTimeouts.forEach(ae=>{clearTimeout(ae)}),this._revealTimeouts=[],!this._isVisible){this._isVisible=!0;const ae=this._codeEditor.getSelection();switch(this._codeEditor.getOption(41).autoFindInSelection){case"always":this._toggleSelectionFind.checked=!0;break;case"never":this._toggleSelectionFind.checked=!1;break;case"multiline":{const de=!!ae&&ae.startLineNumber!==ae.endLineNumber;this._toggleSelectionFind.checked=de;break}default:break}this._tryUpdateWidgetWidth(),this._updateButtons(),this._revealTimeouts.push(setTimeout(()=>{this._domNode.classList.add("visible"),this._domNode.setAttribute("aria-hidden","false")},0)),this._revealTimeouts.push(setTimeout(()=>{this._findInput.validate()},200)),this._codeEditor.layoutOverlayWidget(this);let ee=!0;if(this._codeEditor.getOption(41).seedSearchStringFromSelection&&ae){const de=this._codeEditor.getDomNode();if(de){const ge=d.getDomNodePagePosition(de),X=this._codeEditor.getScrolledVisiblePosition(ae.getStartPosition()),B=ge.left+(X?X.left:0),$=X?X.top:0;if(this._viewZone&&$<this._viewZone.heightInPx){ae.endLineNumber>ae.startLineNumber&&(ee=!1);const Q=d.getTopLeftOffset(this._domNode).left;B>Q&&(ee=!1);const Z=this._codeEditor.getScrolledVisiblePosition(ae.getEndPosition());ge.left+(Z?Z.left:0)>Q&&(ee=!1)}}}this._showViewZone(ee)}}_hide(ae){this._revealTimeouts.forEach(ee=>{clearTimeout(ee)}),this._revealTimeouts=[],this._isVisible&&(this._isVisible=!1,this._updateButtons(),this._domNode.classList.remove("visible"),this._domNode.setAttribute("aria-hidden","true"),this._findInput.clearMessage(),ae&&this._codeEditor.focus(),this._codeEditor.layoutOverlayWidget(this),this._removeViewZone())}_layoutViewZone(ae){if(!this._codeEditor.getOption(41).addExtraSpaceOnTop){this._removeViewZone();return}if(!this._isVisible)return;const de=this._viewZone;this._viewZoneId!==void 0||!de||this._codeEditor.changeViewZones(ge=>{de.heightInPx=this._getHeight(),this._viewZoneId=ge.addZone(de),this._codeEditor.setScrollTop(ae||this._codeEditor.getScrollTop()+de.heightInPx)})}_showViewZone(ae=!0){if(!this._isVisible||!this._codeEditor.getOption(41).addExtraSpaceOnTop)return;this._viewZone===void 0&&(this._viewZone=new R(0));const de=this._viewZone;this._codeEditor.changeViewZones(ge=>{if(this._viewZoneId!==void 0){const X=this._getHeight();if(X===de.heightInPx)return;const B=X-de.heightInPx;de.heightInPx=X,ge.layoutZone(this._viewZoneId),ae&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+B);return}else{let X=this._getHeight();if(X-=this._codeEditor.getOption(84).top,X<=0)return;de.heightInPx=X,this._viewZoneId=ge.addZone(de),ae&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+X)}})}_removeViewZone(){this._codeEditor.changeViewZones(ae=>{this._viewZoneId!==void 0&&(ae.removeZone(this._viewZoneId),this._viewZoneId=void 0,this._viewZone&&(this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()-this._viewZone.heightInPx),this._viewZone=void 0))})}_tryUpdateWidgetWidth(){if(!this._isVisible||!this._domNode.isConnected)return;const ae=this._codeEditor.getLayoutInfo();if(ae.contentWidth<=0){this._domNode.classList.add("hiddenEditor");return}else this._domNode.classList.contains("hiddenEditor")&&this._domNode.classList.remove("hiddenEditor");const de=ae.width,ge=ae.minimap.minimapWidth;let X=!1,B=!1,$=!1;if(this._resized&&d.getTotalWidth(this._domNode)>H){this._domNode.style.maxWidth=`${de-28-ge-15}px`,this._replaceInput.width=d.getTotalWidth(this._findInput.domNode);return}if(H+28+ge>=de&&(B=!0),H+28+ge-j>=de&&($=!0),H+28+ge-j>=de+50&&(X=!0),this._domNode.classList.toggle("collapsed-find-widget",X),this._domNode.classList.toggle("narrow-find-widget",$),this._domNode.classList.toggle("reduced-find-widget",B),!$&&!X&&(this._domNode.style.maxWidth=`${de-28-ge-15}px`),this._findInput.layout({collapsedFindWidget:X,narrowFindWidget:$,reducedFindWidget:B}),this._resized){const Q=this._findInput.inputBox.element.clientWidth;Q>0&&(this._replaceInput.width=Q)}else this._isReplaceVisible&&(this._replaceInput.width=d.getTotalWidth(this._findInput.domNode))}_getHeight(){let ae=0;return ae+=4,ae+=this._findInput.inputBox.height+2,this._isReplaceVisible&&(ae+=4,ae+=this._replaceInput.inputBox.height+2),ae+=4,ae}_tryUpdateHeight(){const ae=this._getHeight();return this._cachedHeight!==null&&this._cachedHeight===ae?!1:(this._cachedHeight=ae,this._domNode.style.height=`${ae}px`,!0)}focusFindInput(){this._findInput.select(),this._findInput.focus()}focusReplaceInput(){this._replaceInput.select(),this._replaceInput.focus()}highlightFindOptions(){this._findInput.highlightFindOptions()}_updateSearchScope(){if(this._codeEditor.hasModel()&&this._toggleSelectionFind.checked){const ae=this._codeEditor.getSelections();ae.map(ee=>{ee.endColumn===1&&ee.endLineNumber>ee.startLineNumber&&(ee=ee.setEndPosition(ee.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(ee.endLineNumber-1)));const de=this._state.currentMatch;return ee.startLineNumber!==ee.endLineNumber&&!t.Range.equalsRange(ee,de)?ee:null}).filter(ee=>!!ee),ae.length&&this._state.change({searchScope:ae},!0)}}_onFindInputMouseDown(ae){ae.middleButton&&ae.stopPropagation()}_onFindInputKeyDown(ae){if(ae.equals(K|3))if(this._keybindingService.dispatchEvent(ae,ae.target)){ae.preventDefault();return}else{this._findInput.inputBox.insertAtCursor(`
696`),ae.preventDefault();return}if(ae.equals(2)){this._isReplaceVisible?this._replaceInput.focus():this._findInput.focusOnCaseSensitive(),ae.preventDefault();return}if(ae.equals(2066)){this._codeEditor.focus(),ae.preventDefault();return}if(ae.equals(16))return J(ae,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"));if(ae.equals(18))return ie(ae,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"))}_onReplaceInputKeyDown(ae){if(ae.equals(K|3))if(this._keybindingService.dispatchEvent(ae,ae.target)){ae.preventDefault();return}else{n.isWindows&&n.isNative&&!this._ctrlEnterReplaceAllWarningPrompted&&(this._notificationService.info(s.localize(890,"Ctrl+Enter now inserts line break instead of replacing all. You can modify the keybinding for editor.action.replaceAll to override this behavior.")),this._ctrlEnterReplaceAllWarningPrompted=!0,this._storageService.store(G,!0,0,0)),this._replaceInput.inputBox.insertAtCursor(`
697`),ae.preventDefault();return}if(ae.equals(2)){this._findInput.focusOnCaseSensitive(),ae.preventDefault();return}if(ae.equals(1026)){this._findInput.focus(),ae.preventDefault();return}if(ae.equals(2066)){this._codeEditor.focus(),ae.preventDefault();return}if(ae.equals(16))return J(ae,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"));if(ae.equals(18))return ie(ae,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"))}getVerticalSashLeft(ae){return 0}_keybindingLabelFor(ae){const ee=this._keybindingService.lookupKeybinding(ae);return ee?` (${ee.getLabel()})`:""}_buildDomNode(){this._findInput=this._register(new g.ContextScopedFindInput(null,this._contextViewProvider,{width:U,label:D,placeholder:T,appendCaseSensitiveLabel:this._keybindingLabelFor(i.FIND_IDS.ToggleCaseSensitiveCommand),appendWholeWordsLabel:this._keybindingLabelFor(i.FIND_IDS.ToggleWholeWordCommand),appendRegexLabel:this._keybindingLabelFor(i.FIND_IDS.ToggleRegexCommand),validation:te=>{if(te.length===0||!this._findInput.getRegex())return null;try{return new RegExp(te,"gu"),null}catch(re){return{content:re.message}}},flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showCommonFindToggles:!0,showHistoryHint:()=>(0,c.showHistoryKeybindingHint)(this._keybindingService),inputBoxStyles:h.defaultInputBoxStyles,toggleStyles:h.defaultToggleStyles},this._contextKeyService)),this._findInput.setRegex(!!this._state.isRegex),this._findInput.setCaseSensitive(!!this._state.matchCase),this._findInput.setWholeWords(!!this._state.wholeWord),this._register(this._findInput.onKeyDown(te=>this._onFindInputKeyDown(te))),this._register(this._findInput.inputBox.onDidChange(()=>{this._ignoreChangeEvent||this._state.change({searchString:this._findInput.getValue()},!0)})),this._register(this._findInput.onDidOptionChange(()=>{this._state.change({isRegex:this._findInput.getRegex(),wholeWord:this._findInput.getWholeWords(),matchCase:this._findInput.getCaseSensitive()},!0)})),this._register(this._findInput.onCaseSensitiveKeyDown(te=>{te.equals(1026)&&this._isReplaceVisible&&(this._replaceInput.focus(),te.preventDefault())})),this._register(this._findInput.onRegexKeyDown(te=>{te.equals(2)&&this._isReplaceVisible&&(this._replaceInput.focusOnPreserve(),te.preventDefault())})),this._register(this._findInput.inputBox.onDidHeightChange(te=>{this._tryUpdateHeight()&&this._showViewZone()})),n.isLinux&&this._register(this._findInput.onMouseDown(te=>this._onFindInputMouseDown(te))),this._matchesCount=document.createElement("div"),this._matchesCount.className="matchesCount",this._updateMatchesCount();const de=this._register((0,v.createInstantHoverDelegate)());this._prevBtn=this._register(new he({label:M+this._keybindingLabelFor(i.FIND_IDS.PreviousMatchFindAction),icon:e.findPreviousMatchIcon,hoverDelegate:de,onTrigger:()=>{(0,f.assertIsDefined)(this._codeEditor.getAction(i.FIND_IDS.PreviousMatchFindAction)).run().then(void 0,b.onUnexpectedError)}},this._hoverService)),this._nextBtn=this._register(new he({label:A+this._keybindingLabelFor(i.FIND_IDS.NextMatchFindAction),icon:e.findNextMatchIcon,hoverDelegate:de,onTrigger:()=>{(0,f.assertIsDefined)(this._codeEditor.getAction(i.FIND_IDS.NextMatchFindAction)).run().then(void 0,b.onUnexpectedError)}},this._hoverService));const ge=document.createElement("div");ge.className="find-part",ge.appendChild(this._findInput.domNode);const X=document.createElement("div");X.className="find-actions",ge.appendChild(X),X.appendChild(this._matchesCount),X.appendChild(this._prevBtn.domNode),X.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new I.Toggle({icon:e.findSelectionIcon,title:P+this._keybindingLabelFor(i.FIND_IDS.ToggleSearchScopeCommand),isChecked:!1,hoverDelegate:de,inputActiveOptionBackground:(0,l.asCssVariable)(l.inputActiveOptionBackground),inputActiveOptionBorder:(0,l.asCssVariable)(l.inputActiveOptionBorder),inputActiveOptionForeground:(0,l.asCssVariable)(l.inputActiveOptionForeground)})),this._register(this._toggleSelectionFind.onChange(()=>{if(this._toggleSelectionFind.checked){if(this._codeEditor.hasModel()){let te=this._codeEditor.getSelections();te=te.map(re=>(re.endColumn===1&&re.endLineNumber>re.startLineNumber&&(re=re.setEndPosition(re.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(re.endLineNumber-1))),re.isEmpty()?null:re)).filter(re=>!!re),te.length&&this._state.change({searchScope:te},!0)}}else this._state.change({searchScope:null},!0)})),X.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new he({label:N+this._keybindingLabelFor(i.FIND_IDS.CloseFindWidgetCommand),icon:a.widgetClose,hoverDelegate:de,onTrigger:()=>{this._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:te=>{te.equals(2)&&this._isReplaceVisible&&(this._replaceBtn.isEnabled()?this._replaceBtn.focus():this._codeEditor.focus(),te.preventDefault())}},this._hoverService)),this._replaceInput=this._register(new g.ContextScopedReplaceInput(null,void 0,{label:O,placeholder:F,appendPreserveCaseLabel:this._keybindingLabelFor(i.FIND_IDS.TogglePreserveCaseCommand),history:[],flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showHistoryHint:()=>(0,c.showHistoryKeybindingHint)(this._keybindingService),inputBoxStyles:h.defaultInputBoxStyles,toggleStyles:h.defaultToggleStyles},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown(te=>this._onReplaceInputKeyDown(te))),this._register(this._replaceInput.inputBox.onDidChange(()=>{this._state.change({replaceString:this._replaceInput.inputBox.value},!1)})),this._register(this._replaceInput.inputBox.onDidHeightChange(te=>{this._isReplaceVisible&&this._tryUpdateHeight()&&this._showViewZone()})),this._register(this._replaceInput.onDidOptionChange(()=>{this._state.change({preserveCase:this._replaceInput.getPreserveCase()},!0)})),this._register(this._replaceInput.onPreserveCaseKeyDown(te=>{te.equals(2)&&(this._prevBtn.isEnabled()?this._prevBtn.focus():this._nextBtn.isEnabled()?this._nextBtn.focus():this._toggleSelectionFind.enabled?this._toggleSelectionFind.focus():this._closeBtn.isEnabled()&&this._closeBtn.focus(),te.preventDefault())}));const B=this._register((0,v.createInstantHoverDelegate)());this._replaceBtn=this._register(new he({label:x+this._keybindingLabelFor(i.FIND_IDS.ReplaceOneAction),icon:e.findReplaceIcon,hoverDelegate:B,onTrigger:()=>{this._controller.replace()},onKeyDown:te=>{te.equals(1026)&&(this._closeBtn.focus(),te.preventDefault())}},this._hoverService)),this._replaceAllBtn=this._register(new he({label:W+this._keybindingLabelFor(i.FIND_IDS.ReplaceAllAction),icon:e.findReplaceAllIcon,hoverDelegate:B,onTrigger:()=>{this._controller.replaceAll()}},this._hoverService));const $=document.createElement("div");$.className="replace-part",$.appendChild(this._replaceInput.domNode);const Q=document.createElement("div");Q.className="replace-actions",$.appendChild(Q),Q.appendChild(this._replaceBtn.domNode),Q.appendChild(this._replaceAllBtn.domNode),this._toggleReplaceBtn=this._register(new he({label:V,className:"codicon toggle left",onTrigger:()=>{this._state.change({isReplaceRevealed:!this._isReplaceVisible},!1),this._isReplaceVisible&&(this._replaceInput.width=d.getTotalWidth(this._findInput.domNode),this._replaceInput.inputBox.layout()),this._showViewZone()}},this._hoverService)),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible),this._domNode=document.createElement("div"),this._domNode.className="editor-widget find-widget",this._domNode.setAttribute("aria-hidden","true"),this._domNode.ariaLabel=L,this._domNode.role="dialog",this._domNode.style.width=`${H}px`,this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(ge),this._domNode.appendChild(this._closeBtn.domNode),this._domNode.appendChild($),this._resizeSash=this._register(new E.Sash(this._domNode,this,{orientation:0,size:2})),this._resized=!1;let Z=H;this._register(this._resizeSash.onDidStart(()=>{Z=d.getTotalWidth(this._domNode)})),this._register(this._resizeSash.onDidChange(te=>{this._resized=!0;const re=Z+te.startX-te.currentX;if(re<H)return;const le=parseFloat(d.getComputedStyle(this._domNode).maxWidth)||0;re>le||(this._domNode.style.width=`${re}px`,this._isReplaceVisible&&(this._replaceInput.width=d.getTotalWidth(this._findInput.domNode)),this._findInput.inputBox.layout(),this._tryUpdateHeight())})),this._register(this._resizeSash.onDidReset(()=>{const te=d.getTotalWidth(this._domNode);if(te<H)return;let re=H;if(!this._resized||te===H){const le=this._codeEditor.getLayoutInfo();re=le.width-28-le.minimap.minimapWidth-15,this._resized=!0}this._domNode.style.width=`${re}px`,this._isReplaceVisible&&(this._replaceInput.width=d.getTotalWidth(this._findInput.domNode)),this._findInput.inputBox.layout()}))}updateAccessibilitySupport(){const ae=this._codeEditor.getOption(2);this._findInput.setFocusInputOnOptionClick(ae!==2)}}e.FindWidget=ue;class he extends y.Widget{constructor(ae,ee){super(),this._opts=ae;let de="button";this._opts.className&&(de=de+" "+this._opts.className),this._opts.icon&&(de=de+" "+u.ThemeIcon.asClassName(this._opts.icon)),this._domNode=document.createElement("div"),this._domNode.tabIndex=0,this._domNode.className=de,this._domNode.setAttribute("role","button"),this._domNode.setAttribute("aria-label",this._opts.label),this._register(ee.setupManagedHover(ae.hoverDelegate??(0,v.getDefaultHoverDelegate)("element"),this._domNode,this._opts.label)),this.onclick(this._domNode,ge=>{this._opts.onTrigger(),ge.preventDefault()}),this.onkeydown(this._domNode,ge=>{if(ge.equals(10)||ge.equals(3)){this._opts.onTrigger(),ge.preventDefault();return}this._opts.onKeyDown?.(ge)})}get domNode(){return this._domNode}isEnabled(){return this._domNode.tabIndex>=0}focus(){this._domNode.focus()}setEnabled(ae){this._domNode.classList.toggle("disabled",!ae),this._domNode.setAttribute("aria-disabled",String(!ae)),this._domNode.tabIndex=ae?0:-1}setExpanded(ae){this._domNode.setAttribute("aria-expanded",String(!!ae)),ae?(this._domNode.classList.remove(...u.ThemeIcon.asClassNameArray(w)),this._domNode.classList.add(...u.ThemeIcon.asClassNameArray(S))):(this._domNode.classList.remove(...u.ThemeIcon.asClassNameArray(S)),this._domNode.classList.add(...u.ThemeIcon.asClassNameArray(w)))}}e.SimpleButton=he,(0,r.registerThemingParticipant)((pe,ae)=>{const ee=pe.getColor(l.editorFindMatchHighlightBorder);ee&&ae.addRule(`.monaco-editor .findMatch { border: 1px ${(0,C.isHighContrast)(pe.type)?"dotted":"solid"} ${ee}; box-sizing: border-box; }`);const de=pe.getColor(l.editorFindRangeHighlightBorder);de&&ae.addRule(`.monaco-editor .findScope { border: 1px ${(0,C.isHighContrast)(pe.type)?"dashed":"solid"} ${de}; }`);const ge=pe.getColor(l.contrastBorder);ge&&ae.addRule(`.monaco-editor .find-widget { border: 1px solid ${ge}; }`);const X=pe.getColor(l.editorFindMatchForeground);X&&ae.addRule(`.monaco-editor .findMatchInline { color: ${X}; }`);const B=pe.getColor(l.editorFindMatchHighlightForeground);B&&ae.addRule(`.monaco-editor .currentFindMatchInline { color: ${B}; }`)})}),define(ne[423],se([1,0,14,2,11,15,80,20,40,220,824,825,826,3,29,117,12,58,31,50,66,101,25,118]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f){"use strict";var h;Object.defineProperty(e,"__esModule",{value:!0}),e.StartFindReplaceAction=e.PreviousSelectionMatchFindAction=e.NextSelectionMatchFindAction=e.SelectionMatchFindAction=e.MoveToMatchFindAction=e.PreviousMatchFindAction=e.NextMatchFindAction=e.MatchFindAction=e.StartFindWithSelectionAction=e.StartFindWithArgsAction=e.StartFindAction=e.FindController=e.CommonFindController=void 0,e.getSelectionSearchString=w;const v=524288;function w(q,H="single",z=!1){if(!q.hasModel())return null;const U=q.getSelection();if(H==="single"&&U.startLineNumber===U.endLineNumber||H==="multiple"){if(U.isEmpty()){const j=q.getConfiguredWordAtPosition(U.getStartPosition());if(j&&z===!1)return j.word}else if(q.getModel().getValueLengthInRange(U)<v)return q.getModel().getValueInRange(U)}return null}let S=class extends k.Disposable{static{h=this}static{this.ID="editor.contrib.findController"}get editor(){return this._editor}static get(H){return H.getContribution(h.ID)}constructor(H,z,U,j,Y,G){super(),this._editor=H,this._findWidgetVisible=b.CONTEXT_FIND_WIDGET_VISIBLE.bindTo(z),this._contextKeyService=z,this._storageService=U,this._clipboardService=j,this._notificationService=Y,this._hoverService=G,this._updateHistoryDelayer=new d.Delayer(500),this._state=this._register(new n.FindReplaceState),this.loadQueryState(),this._register(this._state.onFindReplaceStateChange(K=>this._onStateChanged(K))),this._model=null,this._register(this._editor.onDidChangeModel(()=>{const K=this._editor.getModel()&&this._state.isRevealed;this.disposeModel(),this._state.change({searchScope:null,matchCase:this._storageService.getBoolean("editor.matchCase",1,!1),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,!1),isRegex:this._storageService.getBoolean("editor.isRegex",1,!1),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,!1)},!1),K&&this._start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1,updateSearchScope:!1,loop:this._editor.getOption(41).loop})}))}dispose(){this.disposeModel(),super.dispose()}disposeModel(){this._model&&(this._model.dispose(),this._model=null)}_onStateChanged(H){this.saveQueryState(H),H.isRevealed&&(this._state.isRevealed?this._findWidgetVisible.set(!0):(this._findWidgetVisible.reset(),this.disposeModel())),H.searchString&&this.setGlobalBufferTerm(this._state.searchString)}saveQueryState(H){H.isRegex&&this._storageService.store("editor.isRegex",this._state.actualIsRegex,1,1),H.wholeWord&&this._storageService.store("editor.wholeWord",this._state.actualWholeWord,1,1),H.matchCase&&this._storageService.store("editor.matchCase",this._state.actualMatchCase,1,1),H.preserveCase&&this._storageService.store("editor.preserveCase",this._state.actualPreserveCase,1,1)}loadQueryState(){this._state.change({matchCase:this._storageService.getBoolean("editor.matchCase",1,this._state.matchCase),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,this._state.wholeWord),isRegex:this._storageService.getBoolean("editor.isRegex",1,this._state.isRegex),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,this._state.preserveCase)},!1)}isFindInputFocused(){return!!b.CONTEXT_FIND_INPUT_FOCUSED.getValue(this._contextKeyService)}getState(){return this._state}closeFindWidget(){this._state.change({isRevealed:!1,searchScope:null},!1),this._editor.focus()}toggleCaseSensitive(){this._state.change({matchCase:!this._state.matchCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleWholeWords(){this._state.change({wholeWord:!this._state.wholeWord},!1),this._state.isRevealed||this.highlightFindOptions()}toggleRegex(){this._state.change({isRegex:!this._state.isRegex},!1),this._state.isRevealed||this.highlightFindOptions()}togglePreserveCase(){this._state.change({preserveCase:!this._state.preserveCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleSearchScope(){if(this._state.searchScope)this._state.change({searchScope:null},!0);else if(this._editor.hasModel()){let H=this._editor.getSelections();H=H.map(z=>(z.endColumn===1&&z.endLineNumber>z.startLineNumber&&(z=z.setEndPosition(z.endLineNumber-1,this._editor.getModel().getLineMaxColumn(z.endLineNumber-1))),z.isEmpty()?null:z)).filter(z=>!!z),H.length&&this._state.change({searchScope:H},!0)}}setSearchString(H){this._state.isRegex&&(H=I.escapeRegExpCharacters(H)),this._state.change({searchString:H},!1)}highlightFindOptions(H=!1){}async _start(H,z){if(this.disposeModel(),!this._editor.hasModel())return;const U={...z,isRevealed:!0};if(H.seedSearchStringFromSelection==="single"){const j=w(this._editor,H.seedSearchStringFromSelection,H.seedSearchStringFromNonEmptySelection);j&&(this._state.isRegex?U.searchString=I.escapeRegExpCharacters(j):U.searchString=j)}else if(H.seedSearchStringFromSelection==="multiple"&&!H.updateSearchScope){const j=w(this._editor,H.seedSearchStringFromSelection);j&&(U.searchString=j)}if(!U.searchString&&H.seedSearchStringFromGlobalClipboard){const j=await this.getGlobalBufferTerm();if(!this._editor.hasModel())return;j&&(U.searchString=j)}if(H.forceRevealReplace||U.isReplaceRevealed?U.isReplaceRevealed=!0:this._findWidgetVisible.get()||(U.isReplaceRevealed=!1),H.updateSearchScope){const j=this._editor.getSelections();j.some(Y=>!Y.isEmpty())&&(U.searchScope=j)}U.loop=H.loop,this._state.change(U,!1),this._model||(this._model=new b.FindModelBoundToEditorModel(this._editor,this._state))}start(H,z){return this._start(H,z)}moveToNextMatch(){return this._model?(this._model.moveToNextMatch(),!0):!1}moveToPrevMatch(){return this._model?(this._model.moveToPrevMatch(),!0):!1}goToMatch(H){return this._model?(this._model.moveToMatch(H),!0):!1}replace(){return this._model?(this._model.replace(),!0):!1}replaceAll(){return this._model?this._editor.getModel()?.isTooLargeForHeapOperation()?(this._notificationService.warn(t.localize(848,"The file is too large to perform a replace all operation.")),!1):(this._model.replaceAll(),!0):!1}selectAllMatches(){return this._model?(this._model.selectAllMatches(),this._editor.focus(),!0):!1}async getGlobalBufferTerm(){return this._editor.getOption(41).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()?this._clipboardService.readFindText():""}setGlobalBufferTerm(H){this._editor.getOption(41).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()&&this._clipboardService.writeFindText(H)}};e.CommonFindController=S,e.CommonFindController=S=h=ke([ce(1,g.IContextKeyService),ce(2,u.IStorageService),ce(3,s.IClipboardService),ce(4,a.INotificationService),ce(5,f.IHoverService)],S);let L=class extends S{constructor(H,z,U,j,Y,G,K,R,J){super(H,U,K,R,G,J),this._contextViewService=z,this._keybindingService=j,this._themeService=Y,this._widget=null,this._findOptionsWidget=null}async _start(H,z){this._widget||this._createFindWidget();const U=this._editor.getSelection();let j=!1;switch(this._editor.getOption(41).autoFindInSelection){case"always":j=!0;break;case"never":j=!1;break;case"multiline":{j=!!U&&U.startLineNumber!==U.endLineNumber;break}default:break}H.updateSearchScope=H.updateSearchScope||j,await super._start(H,z),this._widget&&(H.shouldFocus===2?this._widget.focusReplaceInput():H.shouldFocus===1&&this._widget.focusFindInput())}highlightFindOptions(H=!1){this._widget||this._createFindWidget(),this._state.isRevealed&&!H?this._widget.highlightFindOptions():this._findOptionsWidget.highlightFindOptions()}_createFindWidget(){this._widget=this._register(new o.FindWidget(this._editor,this,this._state,this._contextViewService,this._keybindingService,this._contextKeyService,this._themeService,this._storageService,this._notificationService,this._hoverService)),this._findOptionsWidget=this._register(new p.FindOptionsWidget(this._editor,this._state,this._keybindingService))}};e.FindController=L,e.FindController=L=ke([ce(1,c.IContextViewService),ce(2,g.IContextKeyService),ce(3,l.IKeybindingService),ce(4,C.IThemeService),ce(5,a.INotificationService),ce(6,u.IStorageService),ce(7,s.IClipboardService),ce(8,f.IHoverService)],L),e.StartFindAction=(0,E.registerMultiEditorAction)(new E.MultiEditorAction({id:b.FIND_IDS.StartFindAction,label:t.localize(849,"Find"),alias:"Find",precondition:g.ContextKeyExpr.or(m.EditorContextKeys.focus,g.ContextKeyExpr.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:i.MenuId.MenubarEditMenu,group:"3_find",title:t.localize(850,"&&Find"),order:1}})),e.StartFindAction.addImplementation(0,(q,H,z)=>{const U=S.get(H);return U?U.start({forceRevealReplace:!1,seedSearchStringFromSelection:H.getOption(41).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:H.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:H.getOption(41).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1,loop:H.getOption(41).loop}):!1});const D={description:"Open a new In-Editor Find Widget.",args:[{name:"Open a new In-Editor Find Widget args",schema:{properties:{searchString:{type:"string"},replaceString:{type:"string"},isRegex:{type:"boolean"},matchWholeWord:{type:"boolean"},isCaseSensitive:{type:"boolean"},preserveCase:{type:"boolean"},findInSelection:{type:"boolean"}}}}]};class T extends E.EditorAction{constructor(){super({id:b.FIND_IDS.StartFindWithArgs,label:t.localize(851,"Find With Arguments"),alias:"Find With Arguments",precondition:void 0,kbOpts:{kbExpr:null,primary:0,weight:100},metadata:D})}async run(H,z,U){const j=S.get(z);if(j){const Y=U?{searchString:U.searchString,replaceString:U.replaceString,isReplaceRevealed:U.replaceString!==void 0,isRegex:U.isRegex,wholeWord:U.matchWholeWord,matchCase:U.isCaseSensitive,preserveCase:U.preserveCase}:{};await j.start({forceRevealReplace:!1,seedSearchStringFromSelection:j.getState().searchString.length===0&&z.getOption(41).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:z.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:1,shouldAnimate:!0,updateSearchScope:U?.findInSelection||!1,loop:z.getOption(41).loop},Y),j.setGlobalBufferTerm(j.getState().searchString)}}}e.StartFindWithArgsAction=T;class M extends E.EditorAction{constructor(){super({id:b.FIND_IDS.StartFindWithSelection,label:t.localize(852,"Find With Selection"),alias:"Find With Selection",precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}async run(H,z){const U=S.get(z);U&&(await U.start({forceRevealReplace:!1,seedSearchStringFromSelection:"multiple",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:z.getOption(41).loop}),U.setGlobalBufferTerm(U.getState().searchString))}}e.StartFindWithSelectionAction=M;class A extends E.EditorAction{async run(H,z){const U=S.get(z);U&&!this._run(U)&&(await U.start({forceRevealReplace:!1,seedSearchStringFromSelection:U.getState().searchString.length===0&&z.getOption(41).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:z.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:z.getOption(41).loop}),this._run(U))}}e.MatchFindAction=A;class P extends A{constructor(){super({id:b.FIND_IDS.NextMatchFindAction,label:t.localize(853,"Find Next"),alias:"Find Next",precondition:void 0,kbOpts:[{kbExpr:m.EditorContextKeys.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100},{kbExpr:g.ContextKeyExpr.and(m.EditorContextKeys.focus,b.CONTEXT_FIND_INPUT_FOCUSED),primary:3,weight:100}]})}_run(H){return H.moveToNextMatch()?(H.editor.pushUndoStop(),!0):!1}}e.NextMatchFindAction=P;class N extends A{constructor(){super({id:b.FIND_IDS.PreviousMatchFindAction,label:t.localize(854,"Find Previous"),alias:"Find Previous",precondition:void 0,kbOpts:[{kbExpr:m.EditorContextKeys.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100},{kbExpr:g.ContextKeyExpr.and(m.EditorContextKeys.focus,b.CONTEXT_FIND_INPUT_FOCUSED),primary:1027,weight:100}]})}_run(H){return H.moveToPrevMatch()}}e.PreviousMatchFindAction=N;class O extends E.EditorAction{constructor(){super({id:b.FIND_IDS.GoToMatchFindAction,label:t.localize(855,"Go to Match..."),alias:"Go to Match...",precondition:b.CONTEXT_FIND_WIDGET_VISIBLE}),this._highlightDecorations=[]}run(H,z,U){const j=S.get(z);if(!j)return;const Y=j.getState().matchesCount;if(Y<1){H.get(a.INotificationService).notify({severity:a.Severity.Warning,message:t.localize(856,"No matches. Try searching for something else.")});return}const G=H.get(r.IQuickInputService),K=new k.DisposableStore,R=K.add(G.createInputBox());R.placeholder=t.localize(857,"Type a number to go to a specific match (between 1 and {0})",Y);const J=ue=>{const he=parseInt(ue);if(isNaN(he))return;const pe=j.getState().matchesCount;if(he>0&&he<=pe)return he-1;if(he<0&&he>=-pe)return pe+he},ie=ue=>{const he=J(ue);if(typeof he=="number"){R.validationMessage=void 0,j.goToMatch(he);const pe=j.getState().currentMatch;pe&&this.addDecorations(z,pe)}else R.validationMessage=t.localize(858,"Please type a number between 1 and {0}",j.getState().matchesCount),this.clearDecorations(z)};K.add(R.onDidChangeValue(ue=>{ie(ue)})),K.add(R.onDidAccept(()=>{const ue=J(R.value);typeof ue=="number"?(j.goToMatch(ue),R.hide()):R.validationMessage=t.localize(859,"Please type a number between 1 and {0}",j.getState().matchesCount)})),K.add(R.onDidHide(()=>{this.clearDecorations(z),K.dispose()})),R.show()}clearDecorations(H){H.changeDecorations(z=>{this._highlightDecorations=z.deltaDecorations(this._highlightDecorations,[])})}addDecorations(H,z){H.changeDecorations(U=>{this._highlightDecorations=U.deltaDecorations(this._highlightDecorations,[{range:z,options:{description:"find-match-quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:z,options:{description:"find-match-quick-access-range-highlight-overview",overviewRuler:{color:(0,C.themeColorFromId)(y.overviewRulerRangeHighlight),position:_.OverviewRulerLane.Full}}}])})}}e.MoveToMatchFindAction=O;class F extends E.EditorAction{async run(H,z){const U=S.get(z);if(!U)return;const j=w(z,"single",!1);j&&U.setSearchString(j),this._run(U)||(await U.start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:z.getOption(41).loop}),this._run(U))}}e.SelectionMatchFindAction=F;class x extends F{constructor(){super({id:b.FIND_IDS.NextSelectionMatchFindAction,label:t.localize(860,"Find Next Selection"),alias:"Find Next Selection",precondition:void 0,kbOpts:{kbExpr:m.EditorContextKeys.focus,primary:2109,weight:100}})}_run(H){return H.moveToNextMatch()}}e.NextSelectionMatchFindAction=x;class W extends F{constructor(){super({id:b.FIND_IDS.PreviousSelectionMatchFindAction,label:t.localize(861,"Find Previous Selection"),alias:"Find Previous Selection",precondition:void 0,kbOpts:{kbExpr:m.EditorContextKeys.focus,primary:3133,weight:100}})}_run(H){return H.moveToPrevMatch()}}e.PreviousSelectionMatchFindAction=W,e.StartFindReplaceAction=(0,E.registerMultiEditorAction)(new E.MultiEditorAction({id:b.FIND_IDS.StartFindReplaceAction,label:t.localize(862,"Replace"),alias:"Replace",precondition:g.ContextKeyExpr.or(m.EditorContextKeys.focus,g.ContextKeyExpr.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:i.MenuId.MenubarEditMenu,group:"3_find",title:t.localize(863,"&&Replace"),order:2}})),e.StartFindReplaceAction.addImplementation(0,(q,H,z)=>{if(!H.hasModel()||H.getOption(92))return!1;const U=S.get(H);if(!U)return!1;const j=H.getSelection(),Y=U.isFindInputFocused(),G=!j.isEmpty()&&j.startLineNumber===j.endLineNumber&&H.getOption(41).seedSearchStringFromSelection!=="never"&&!Y,K=Y||G?2:1;return U.start({forceRevealReplace:!0,seedSearchStringFromSelection:G?"single":"none",seedSearchStringFromNonEmptySelection:H.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:H.getOption(41).seedSearchStringFromSelection!=="never",shouldFocus:K,shouldAnimate:!0,updateSearchScope:!1,loop:H.getOption(41).loop})}),(0,E.registerEditorContribution)(S.ID,L,0),(0,E.registerEditorAction)(T),(0,E.registerEditorAction)(M),(0,E.registerEditorAction)(P),(0,E.registerEditorAction)(N),(0,E.registerEditorAction)(O),(0,E.registerEditorAction)(x),(0,E.registerEditorAction)(W);const V=E.EditorCommand.bindToContribution(S.get);(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.CloseFindWidgetCommand,precondition:b.CONTEXT_FIND_WIDGET_VISIBLE,handler:q=>q.closeFindWidget(),kbOpts:{weight:105,kbExpr:g.ContextKeyExpr.and(m.EditorContextKeys.focus,g.ContextKeyExpr.not("isComposing")),primary:9,secondary:[1033]}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.ToggleCaseSensitiveCommand,precondition:void 0,handler:q=>q.toggleCaseSensitive(),kbOpts:{weight:105,kbExpr:m.EditorContextKeys.focus,primary:b.ToggleCaseSensitiveKeybinding.primary,mac:b.ToggleCaseSensitiveKeybinding.mac,win:b.ToggleCaseSensitiveKeybinding.win,linux:b.ToggleCaseSensitiveKeybinding.linux}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.ToggleWholeWordCommand,precondition:void 0,handler:q=>q.toggleWholeWords(),kbOpts:{weight:105,kbExpr:m.EditorContextKeys.focus,primary:b.ToggleWholeWordKeybinding.primary,mac:b.ToggleWholeWordKeybinding.mac,win:b.ToggleWholeWordKeybinding.win,linux:b.ToggleWholeWordKeybinding.linux}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.ToggleRegexCommand,precondition:void 0,handler:q=>q.toggleRegex(),kbOpts:{weight:105,kbExpr:m.EditorContextKeys.focus,primary:b.ToggleRegexKeybinding.primary,mac:b.ToggleRegexKeybinding.mac,win:b.ToggleRegexKeybinding.win,linux:b.ToggleRegexKeybinding.linux}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.ToggleSearchScopeCommand,precondition:void 0,handler:q=>q.toggleSearchScope(),kbOpts:{weight:105,kbExpr:m.EditorContextKeys.focus,primary:b.ToggleSearchScopeKeybinding.primary,mac:b.ToggleSearchScopeKeybinding.mac,win:b.ToggleSearchScopeKeybinding.win,linux:b.ToggleSearchScopeKeybinding.linux}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.TogglePreserveCaseCommand,precondition:void 0,handler:q=>q.togglePreserveCase(),kbOpts:{weight:105,kbExpr:m.EditorContextKeys.focus,primary:b.TogglePreserveCaseKeybinding.primary,mac:b.TogglePreserveCaseKeybinding.mac,win:b.TogglePreserveCaseKeybinding.win,linux:b.TogglePreserveCaseKeybinding.linux}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.ReplaceOneAction,precondition:b.CONTEXT_FIND_WIDGET_VISIBLE,handler:q=>q.replace(),kbOpts:{weight:105,kbExpr:m.EditorContextKeys.focus,primary:3094}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.ReplaceOneAction,precondition:b.CONTEXT_FIND_WIDGET_VISIBLE,handler:q=>q.replace(),kbOpts:{weight:105,kbExpr:g.ContextKeyExpr.and(m.EditorContextKeys.focus,b.CONTEXT_REPLACE_INPUT_FOCUSED),primary:3}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.ReplaceAllAction,precondition:b.CONTEXT_FIND_WIDGET_VISIBLE,handler:q=>q.replaceAll(),kbOpts:{weight:105,kbExpr:m.EditorContextKeys.focus,primary:2563}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.ReplaceAllAction,precondition:b.CONTEXT_FIND_WIDGET_VISIBLE,handler:q=>q.replaceAll(),kbOpts:{weight:105,kbExpr:g.ContextKeyExpr.and(m.EditorContextKeys.focus,b.CONTEXT_REPLACE_INPUT_FOCUSED),primary:void 0,mac:{primary:2051}}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.SelectAllMatchesAction,precondition:b.CONTEXT_FIND_WIDGET_VISIBLE,handler:q=>q.selectAllMatches(),kbOpts:{weight:105,kbExpr:m.EditorContextKeys.focus,primary:515}}))}),define(ne[424],se([1,0,26,35,3,32,71,25,30]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FoldingDecorationProvider=e.foldingManualExpandedIcon=e.foldingManualCollapsedIcon=e.foldingCollapsedIcon=e.foldingExpandedIcon=void 0;const b=(0,E.registerColor)("editor.foldBackground",{light:(0,E.transparent)(E.editorSelectionBackground,.3),dark:(0,E.transparent)(E.editorSelectionBackground,.3),hcDark:null,hcLight:null},(0,I.localize)(910,"Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations."),!0);(0,E.registerColor)("editor.foldPlaceholderForeground",{light:"#808080",dark:"#808080",hcDark:null,hcLight:null},(0,I.localize)(911,"Color of the collapsed text after the first line of a folded range.")),(0,E.registerColor)("editorGutter.foldingControlForeground",E.iconForeground,(0,I.localize)(912,"Color of the folding control in the editor gutter.")),e.foldingExpandedIcon=(0,y.registerIcon)("folding-expanded",d.Codicon.chevronDown,(0,I.localize)(913,"Icon for expanded ranges in the editor glyph margin.")),e.foldingCollapsedIcon=(0,y.registerIcon)("folding-collapsed",d.Codicon.chevronRight,(0,I.localize)(914,"Icon for collapsed ranges in the editor glyph margin.")),e.foldingManualCollapsedIcon=(0,y.registerIcon)("folding-manual-collapsed",e.foldingCollapsedIcon,(0,I.localize)(915,"Icon for manually collapsed ranges in the editor glyph margin.")),e.foldingManualExpandedIcon=(0,y.registerIcon)("folding-manual-expanded",e.foldingExpandedIcon,(0,I.localize)(916,"Icon for manually expanded ranges in the editor glyph margin."));const p={color:(0,m.themeColorFromId)(b),position:1},n=(0,I.localize)(917,"Click to expand the range."),o=(0,I.localize)(918,"Click to collapse the range.");class t{static{this.COLLAPSED_VISUAL_DECORATION=k.ModelDecorationOptions.register({description:"folding-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:n,firstLineDecorationClassName:_.ThemeIcon.asClassName(e.foldingCollapsedIcon)})}static{this.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=k.ModelDecorationOptions.register({description:"folding-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:p,isWholeLine:!0,linesDecorationsTooltip:n,firstLineDecorationClassName:_.ThemeIcon.asClassName(e.foldingCollapsedIcon)})}static{this.MANUALLY_COLLAPSED_VISUAL_DECORATION=k.ModelDecorationOptions.register({description:"folding-manually-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:n,firstLineDecorationClassName:_.ThemeIcon.asClassName(e.foldingManualCollapsedIcon)})}static{this.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=k.ModelDecorationOptions.register({description:"folding-manually-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:p,isWholeLine:!0,linesDecorationsTooltip:n,firstLineDecorationClassName:_.ThemeIcon.asClassName(e.foldingManualCollapsedIcon)})}static{this.NO_CONTROLS_COLLAPSED_RANGE_DECORATION=k.ModelDecorationOptions.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:n})}static{this.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION=k.ModelDecorationOptions.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:p,isWholeLine:!0,linesDecorationsTooltip:n})}static{this.EXPANDED_VISUAL_DECORATION=k.ModelDecorationOptions.register({description:"folding-expanded-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+_.ThemeIcon.asClassName(e.foldingExpandedIcon),linesDecorationsTooltip:o})}static{this.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=k.ModelDecorationOptions.register({description:"folding-expanded-auto-hide-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:_.ThemeIcon.asClassName(e.foldingExpandedIcon),linesDecorationsTooltip:o})}static{this.MANUALLY_EXPANDED_VISUAL_DECORATION=k.ModelDecorationOptions.register({description:"folding-manually-expanded-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+_.ThemeIcon.asClassName(e.foldingManualExpandedIcon),linesDecorationsTooltip:o})}static{this.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION=k.ModelDecorationOptions.register({description:"folding-manually-expanded-auto-hide-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:_.ThemeIcon.asClassName(e.foldingManualExpandedIcon),linesDecorationsTooltip:o})}static{this.NO_CONTROLS_EXPANDED_RANGE_DECORATION=k.ModelDecorationOptions.register({description:"folding-no-controls-range-decoration",stickiness:0,isWholeLine:!0})}static{this.HIDDEN_RANGE_DECORATION=k.ModelDecorationOptions.register({description:"folding-hidden-range-decoration",stickiness:1})}constructor(s){this.editor=s,this.showFoldingControls="mouseover",this.showFoldingHighlights=!0}getDecorationOption(s,g,c){return g?t.HIDDEN_RANGE_DECORATION:this.showFoldingControls==="never"?s?this.showFoldingHighlights?t.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION:t.NO_CONTROLS_COLLAPSED_RANGE_DECORATION:t.NO_CONTROLS_EXPANDED_RANGE_DECORATION:s?c?this.showFoldingHighlights?t.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:t.MANUALLY_COLLAPSED_VISUAL_DECORATION:this.showFoldingHighlights?t.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:t.COLLAPSED_VISUAL_DECORATION:this.showFoldingControls==="mouseover"?c?t.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION:t.EXPANDED_AUTO_HIDE_VISUAL_DECORATION:c?t.MANUALLY_EXPANDED_VISUAL_DECORATION:t.EXPANDED_VISUAL_DECORATION}changeDecorations(s){return this.editor.changeDecorations(s)}removeDecorations(s){this.editor.removeDecorations(s)}}e.FoldingDecorationProvider=t}),define(ne[289],se([1,0,14,18,8,72,2,11,19,143,15,20,27,36,334,613,335,3,12,424,203,336,50,79,54,17,6,24,22,51,28,511]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D,T){"use strict";var M;Object.defineProperty(e,"__esModule",{value:!0}),e.RangesLimitReporter=e.FoldingController=void 0,e.toSelectedLines=F;const A=new l.RawContextKey("foldingEnabled",!1);let P=class extends y.Disposable{static{M=this}static{this.ID="editor.contrib.folding"}static get(X){return X.getContribution(M.ID)}static getFoldingRangeProviders(X,B){const $=X.foldingRangeProvider.ordered(B);return M._foldingRangeSelector?.($,B)??$}constructor(X,B,$,Q,Z,te){super(),this.contextKeyService=B,this.languageConfigurationService=$,this.languageFeaturesService=te,this.localToDispose=this._register(new y.DisposableStore),this.editor=X,this._foldingLimitReporter=new N(X);const re=this.editor.getOptions();this._isEnabled=re.get(43),this._useFoldingProviders=re.get(44)!=="indentation",this._unfoldOnClickAfterEndOfLine=re.get(48),this._restoringViewState=!1,this._currentModelHasFoldedImports=!1,this._foldingImportsByDefault=re.get(46),this.updateDebounceInfo=Z.for(te.foldingRangeProvider,"Folding",{min:200}),this.foldingModel=null,this.hiddenRangeModel=null,this.rangeProvider=null,this.foldingRegionPromise=null,this.foldingModelPromise=null,this.updateScheduler=null,this.cursorChangedScheduler=null,this.mouseDownInfo=null,this.foldingDecorationProvider=new a.FoldingDecorationProvider(X),this.foldingDecorationProvider.showFoldingControls=re.get(111),this.foldingDecorationProvider.showFoldingHighlights=re.get(45),this.foldingEnabled=A.bindTo(this.contextKeyService),this.foldingEnabled.set(this._isEnabled),this._register(this.editor.onDidChangeModel(()=>this.onModelChanged())),this._register(this.editor.onDidChangeConfiguration(le=>{if(le.hasChanged(43)&&(this._isEnabled=this.editor.getOptions().get(43),this.foldingEnabled.set(this._isEnabled),this.onModelChanged()),le.hasChanged(47)&&this.onModelChanged(),le.hasChanged(111)||le.hasChanged(45)){const me=this.editor.getOptions();this.foldingDecorationProvider.showFoldingControls=me.get(111),this.foldingDecorationProvider.showFoldingHighlights=me.get(45),this.triggerFoldingModelChanged()}le.hasChanged(44)&&(this._useFoldingProviders=this.editor.getOptions().get(44)!=="indentation",this.onFoldingStrategyChanged()),le.hasChanged(48)&&(this._unfoldOnClickAfterEndOfLine=this.editor.getOptions().get(48)),le.hasChanged(46)&&(this._foldingImportsByDefault=this.editor.getOptions().get(46))})),this.onModelChanged()}saveViewState(){const X=this.editor.getModel();if(!X||!this._isEnabled||X.isTooLargeForTokenization())return{};if(this.foldingModel){const B=this.foldingModel.getMemento(),$=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:B,lineCount:X.getLineCount(),provider:$,foldedImports:this._currentModelHasFoldedImports}}}restoreViewState(X){const B=this.editor.getModel();if(!(!B||!this._isEnabled||B.isTooLargeForTokenization()||!this.hiddenRangeModel)&&X&&(this._currentModelHasFoldedImports=!!X.foldedImports,X.collapsedRegions&&X.collapsedRegions.length>0&&this.foldingModel)){this._restoringViewState=!0;try{this.foldingModel.applyMemento(X.collapsedRegions)}finally{this._restoringViewState=!1}}}onModelChanged(){this.localToDispose.clear();const X=this.editor.getModel();!this._isEnabled||!X||X.isTooLargeForTokenization()||(this._currentModelHasFoldedImports=!1,this.foldingModel=new i.FoldingModel(X,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new s.HiddenRangeModel(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange(B=>this.onHiddenRangesChanges(B))),this.updateScheduler=new d.Delayer(this.updateDebounceInfo.get(X)),this.cursorChangedScheduler=new d.RunOnceScheduler(()=>this.revealCursor(),200),this.localToDispose.add(this.cursorChangedScheduler),this.localToDispose.add(this.languageFeaturesService.foldingRangeProvider.onDidChange(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelContent(B=>this.onDidChangeModelContent(B))),this.localToDispose.add(this.editor.onDidChangeCursorPosition(()=>this.onCursorPositionChanged())),this.localToDispose.add(this.editor.onMouseDown(B=>this.onEditorMouseDown(B))),this.localToDispose.add(this.editor.onMouseUp(B=>this.onEditorMouseUp(B))),this.localToDispose.add({dispose:()=>{this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),this.updateScheduler?.cancel(),this.updateScheduler=null,this.foldingModel=null,this.foldingModelPromise=null,this.hiddenRangeModel=null,this.cursorChangedScheduler=null,this.rangeProvider?.dispose(),this.rangeProvider=null}}),this.triggerFoldingModelChanged())}onFoldingStrategyChanged(){this.rangeProvider?.dispose(),this.rangeProvider=null,this.triggerFoldingModelChanged()}getRangeProvider(X){if(this.rangeProvider)return this.rangeProvider;const B=new g.IndentRangeProvider(X,this.languageConfigurationService,this._foldingLimitReporter);if(this.rangeProvider=B,this._useFoldingProviders&&this.foldingModel){const $=M.getFoldingRangeProviders(this.languageFeaturesService,X);$.length>0&&(this.rangeProvider=new u.SyntaxRangeProvider(X,$,()=>this.triggerFoldingModelChanged(),this._foldingLimitReporter,B))}return this.rangeProvider}getFoldingModel(){return this.foldingModelPromise}onDidChangeModelContent(X){this.hiddenRangeModel?.notifyChangeModelContent(X),this.triggerFoldingModelChanged()}triggerFoldingModelChanged(){this.updateScheduler&&(this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),this.foldingModelPromise=this.updateScheduler.trigger(()=>{const X=this.foldingModel;if(!X)return null;const B=new h.StopWatch,$=this.getRangeProvider(X.textModel),Q=this.foldingRegionPromise=(0,d.createCancelablePromise)(Z=>$.compute(Z));return Q.then(Z=>{if(Z&&Q===this.foldingRegionPromise){let te;if(this._foldingImportsByDefault&&!this._currentModelHasFoldedImports){const me=Z.setCollapsedAllOfType(o.FoldingRangeKind.Imports.value,!0);me&&(te=b.StableEditorScrollState.capture(this.editor),this._currentModelHasFoldedImports=me)}const re=this.editor.getSelections();X.update(Z,F(re)),te?.restore(this.editor);const le=this.updateDebounceInfo.update(X.textModel,B.elapsed());this.updateScheduler&&(this.updateScheduler.defaultDelay=le)}return X})}).then(void 0,X=>((0,I.onUnexpectedError)(X),null)))}onHiddenRangesChanges(X){if(this.hiddenRangeModel&&X.length&&!this._restoringViewState){const B=this.editor.getSelections();B&&this.hiddenRangeModel.adjustSelections(B)&&this.editor.setSelections(B)}this.editor.setHiddenAreas(X,this)}onCursorPositionChanged(){this.hiddenRangeModel&&this.hiddenRangeModel.hasRanges()&&this.cursorChangedScheduler.schedule()}revealCursor(){const X=this.getFoldingModel();X&&X.then(B=>{if(B){const $=this.editor.getSelections();if($&&$.length>0){const Q=[];for(const Z of $){const te=Z.selectionStartLineNumber;this.hiddenRangeModel&&this.hiddenRangeModel.isHidden(te)&&Q.push(...B.getAllRegionsAtLine(te,re=>re.isCollapsed&&te>re.startLineNumber))}Q.length&&(B.toggleCollapseState(Q),this.reveal($[0].getPosition()))}}}).then(void 0,I.onUnexpectedError)}onEditorMouseDown(X){if(this.mouseDownInfo=null,!this.hiddenRangeModel||!X.target||!X.target.range||!X.event.leftButton&&!X.event.middleButton)return;const B=X.target.range;let $=!1;switch(X.target.type){case 4:{const Q=X.target.detail,Z=X.target.element.offsetLeft;if(Q.offsetX-Z<4)return;$=!0;break}case 7:{if(this._unfoldOnClickAfterEndOfLine&&this.hiddenRangeModel.hasRanges()&&!X.target.detail.isAfterLines)break;return}case 6:{if(this.hiddenRangeModel.hasRanges()){const Q=this.editor.getModel();if(Q&&B.startColumn===Q.getLineMaxColumn(B.startLineNumber))break}return}default:return}this.mouseDownInfo={lineNumber:B.startLineNumber,iconClicked:$}}onEditorMouseUp(X){const B=this.foldingModel;if(!B||!this.mouseDownInfo||!X.target)return;const $=this.mouseDownInfo.lineNumber,Q=this.mouseDownInfo.iconClicked,Z=X.target.range;if(!Z||Z.startLineNumber!==$)return;if(Q){if(X.target.type!==4)return}else{const re=this.editor.getModel();if(!re||Z.startColumn!==re.getLineMaxColumn($))return}const te=B.getRegionAtLine($);if(te&&te.startLineNumber===$){const re=te.isCollapsed;if(Q||re){const le=X.event.altKey;let me=[];if(le){const Ce=Le=>!Le.containedBy(te)&&!te.containedBy(Le),ye=B.getRegionsInside(null,Ce);for(const Le of ye)Le.isCollapsed&&me.push(Le);me.length===0&&(me=ye)}else{const Ce=X.event.middleButton||X.event.shiftKey;if(Ce)for(const ye of B.getRegionsInside(te))ye.isCollapsed===re&&me.push(ye);(re||!Ce||me.length===0)&&me.push(te)}B.toggleCollapseState(me),this.reveal({lineNumber:$,column:1})}}}reveal(X){this.editor.revealPositionInCenterIfOutsideViewport(X,0)}};e.FoldingController=P,e.FoldingController=P=M=ke([ce(1,l.IContextKeyService),ce(2,t.ILanguageConfigurationService),ce(3,C.INotificationService),ce(4,f.ILanguageFeatureDebounceService),ce(5,v.ILanguageFeaturesService)],P);class N{constructor(X){this.editor=X,this._onDidChange=new w.Emitter,this._computed=0,this._limited=!1}get limit(){return this.editor.getOptions().get(47)}update(X,B){(X!==this._computed||B!==this._limited)&&(this._computed=X,this._limited=B,this._onDidChange.fire())}}e.RangesLimitReporter=N;class O extends p.EditorAction{runEditorCommand(X,B,$){const Q=X.get(t.ILanguageConfigurationService),Z=P.get(B);if(!Z)return;const te=Z.getFoldingModel();if(te)return this.reportTelemetry(X,B),te.then(re=>{if(re){this.invoke(Z,re,B,$,Q);const le=B.getSelection();le&&Z.reveal(le.getStartPosition())}})}getSelectedLines(X){const B=X.getSelections();return B?B.map($=>$.startLineNumber):[]}getLineNumbers(X,B){return X&&X.selectionLines?X.selectionLines.map($=>$+1):this.getSelectedLines(B)}run(X,B){}}function F(ge){return!ge||ge.length===0?{startsInside:()=>!1}:{startsInside(X,B){for(const $ of ge){const Q=$.startLineNumber;if(Q>=X&&Q<=B)return!0}return!1}}}function x(ge){if(!_.isUndefined(ge)){if(!_.isObject(ge))return!1;const X=ge;if(!_.isUndefined(X.levels)&&!_.isNumber(X.levels)||!_.isUndefined(X.direction)&&!_.isString(X.direction)||!_.isUndefined(X.selectionLines)&&(!Array.isArray(X.selectionLines)||!X.selectionLines.every(_.isNumber)))return!1}return!0}class W extends O{constructor(){super({id:"editor.unfold",label:c.localize(891,"Unfold"),alias:"Unfold",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:3166,mac:{primary:2654},weight:100},metadata:{description:"Unfold the content in the editor",args:[{name:"Unfold editor argument",description:`Property-value pairs that can be passed through this argument:
698 * 'levels': Number of levels to unfold. If not set, defaults to 1.
699 * 'direction': If 'up', unfold given number of levels up otherwise unfolds down.
700 * 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the unfold action to. If not set, the active selection(s) will be used.

Callers 15

FuzzyHighlightFunction · 0.45
stripSecureCookiePrefixFunction · 0.45
buildUpstreamUrlFunction · 0.45
stripConsoleApiPrefixFunction · 0.45
stripSchemaNamePrefixFunction · 0.45
contractNameSegmentsFunction · 0.45
toWordsFunction · 0.45
toWordsFunction · 0.45
buildRequestUrlFunction · 0.45
redactFunction · 0.45

Calls

no outgoing calls

Tested by 2

pwshFunction · 0.36
_run_import_checkFunction · 0.36