@kekonic/diagrams-studio 1.0.0-rc.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +47 -0
  3. package/dist/browser/assets/SourceEditor-CTsSCxbb.js +23 -0
  4. package/dist/browser/assets/codicon-Brq4_Ui5.ttf +0 -0
  5. package/dist/browser/assets/dist-xSRpPWs-.js +49 -0
  6. package/dist/browser/assets/editor-CPgU7loC.css +1 -0
  7. package/dist/browser/assets/editor.api-Pc7YbpSQ.js +423 -0
  8. package/dist/browser/assets/editor.worker-r79G8Edd.js +30 -0
  9. package/dist/browser/assets/format-CEbYvQUd.css +1 -0
  10. package/dist/browser/assets/format-CX-V5tOl.js +425 -0
  11. package/dist/browser/assets/github-dark-C-LZuMrd.js +1 -0
  12. package/dist/browser/assets/github-light-EUqPIrTm.js +1 -0
  13. package/dist/browser/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff +0 -0
  14. package/dist/browser/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2 +0 -0
  15. package/dist/browser/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff +0 -0
  16. package/dist/browser/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2 +0 -0
  17. package/dist/browser/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2 +0 -0
  18. package/dist/browser/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff +0 -0
  19. package/dist/browser/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2 +0 -0
  20. package/dist/browser/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff +0 -0
  21. package/dist/browser/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff +0 -0
  22. package/dist/browser/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2 +0 -0
  23. package/dist/browser/assets/index-D15KDLkg.css +1 -0
  24. package/dist/browser/assets/index-D4UABSTV.js +3411 -0
  25. package/dist/browser/assets/inter-latin-500-normal-BL9OpVg8.woff +0 -0
  26. package/dist/browser/assets/inter-latin-500-normal-DIm8MnOp.js +1 -0
  27. package/dist/browser/assets/language-BHyJ3vcB.js +11 -0
  28. package/dist/browser/assets/monaco-features-DiflRtGt.css +1 -0
  29. package/dist/browser/assets/monaco-features-i8AvDstT.js +28 -0
  30. package/dist/browser/assets/wasm-BnjxR4X6.js +1 -0
  31. package/dist/browser/favicon.svg +8 -0
  32. package/dist/browser/index.html +17 -0
  33. package/dist/index.d.mts +173 -0
  34. package/dist/index.mjs +457 -0
  35. package/dist/index.mjs.map +1 -0
  36. package/package.json +72 -0
@@ -0,0 +1,28 @@
1
+ import{$ as e,$l as t,$n as n,$o as r,$r as i,$t as a,A as o,Ad as s,As as c,B as l,Bf as u,Bi as d,Bn as f,Br as p,Ca as m,Cc as h,Cf as ee,Co as te,Cr as ne,Cs as g,Ct as re,D as ie,Da as ae,Dc as oe,Dd as _,Dn as se,E as v,Ec as ce,Ed as y,Ef as le,En as ue,Er as de,Es as fe,F as pe,Fa as me,Fi as he,Fl as ge,Fn as _e,Fo as ve,G as ye,Gc as be,Gf as xe,Gn as Se,Go as b,Gr as x,Gs as Ce,H as we,Hd as Te,Hf as Ee,Hi as De,Hn as Oe,Ho as ke,Hr as Ae,Hs as je,I as Me,Ic as Ne,Ii as Pe,Il as Fe,Io as Ie,Is as Le,Jd as Re,Jf as ze,Jn as Be,Jo as Ve,Jr as He,Js as Ue,Kc as We,Kf as Ge,Ki as Ke,Kn as qe,Ko as Je,Kr as Ye,Ks as Xe,L as Ze,Ld as Qe,Lf as $e,Lr as et,Ls as tt,M as nt,Ma as rt,Mf as S,Ml as it,Ms as C,Na as at,Nc as ot,Nl as st,No as ct,Nr as lt,Ns as w,Oa as ut,Oc as dt,Od as T,Or as ft,P as pt,Pd as E,Pi as mt,Pl as ht,Pn as gt,Ps as D,Q as _t,Qf as vt,Ql as yt,Qo as bt,Qr as xt,R as St,Rd as Ct,Rf as wt,Ri as Tt,Rl as Et,Rs as O,Sc as Dt,Sf as Ot,Sl as kt,Sn as At,So as jt,Sr as Mt,Ss as Nt,T as Pt,Tf as Ft,Ti as It,Tl as Lt,Tn as Rt,To as zt,Ts as Bt,Tt as Vt,U as Ht,Ua as Ut,Uc as Wt,Un as Gt,Ur as k,Us as Kt,V as qt,Vc as Jt,Vi as Yt,Vn as Xt,W as Zt,Wc as Qt,Wf as $t,Wi as en,Wn as tn,Wr as nn,Ws as rn,X as an,Xn as on,Xo as A,Xr as sn,Xs as cn,Yl as ln,Yn as un,Yo as dn,Yr as fn,Z as pn,Za as j,Zf as mn,Zn as hn,Zo as M,Zr as gn,_a as _n,_c as vn,_f as yn,_i as bn,_s as xn,_t as Sn,_u as Cn,a as wn,aa as Tn,ac as En,af as Dn,ai as On,al as kn,au as An,b as jn,bc as Mn,bf as Nn,bn as Pn,bo as Fn,bs as In,ca as Ln,cf as Rn,ci as zn,cn as Bn,cs as Vn,cu as Hn,da as Un,dc as N,df as P,di as Wn,dn as Gn,ds as Kn,du as qn,ec as F,ef as I,ei as Jn,el as Yn,en as Xn,ep as Zn,es as Qn,et as $n,eu as er,f as tr,fa as nr,fc as rr,fd as ir,fi as ar,fn as or,ft as sr,fu as cr,g as lr,ga as ur,gc as dr,gd as fr,gf as pr,gs as mr,gt as hr,h as gr,hc as _r,hf as vr,hi as yr,hn as br,ho as xr,hp as Sr,ht as Cr,i as wr,ia as Tr,ii as Er,in as Dr,ip as Or,iu as kr,jd as Ar,jf as L,jl as jr,jo as R,jr as Mr,js as Nr,k as Pr,kd as Fr,ki as Ir,kl as Lr,kn as Rr,ks as zr,l as Br,la as Vr,lc as z,lf as B,li as Hr,ln as Ur,lo as Wr,ls as Gr,lu as Kr,m as qr,mc as Jr,md as Yr,mi as Xr,mp as Zr,mr as Qr,ms as $r,n as ei,na as ti,nc as ni,ni as ri,nn as ii,np as ai,o as oi,oc as si,oi as ci,on as li,op as ui,ou as di,p as fi,pa as pi,pc as mi,pd as hi,pf as gi,pi as _i,pp as vi,pr as yi,ps as bi,pu as xi,q as Si,qf as Ci,qn as wi,qr as Ti,qs as Ei,r as Di,ra as Oi,rc as ki,ri as Ai,rn as ji,rr as V,rs as Mi,s as Ni,sf as Pi,si as Fi,sn as Ii,ss as Li,su as H,ta as Ri,tc as U,tf as zi,ti as Bi,tn as Vi,tp as Hi,ts as Ui,tt as Wi,u as Gi,ua as Ki,uc as qi,ui as Ji,up as Yi,us as Xi,ut as Zi,uu as Qi,v as $i,va as W,vc as ea,vd as ta,vn as na,vo as ra,wa as ia,wd as G,wf as aa,wl as oa,wr as sa,ws as ca,x as la,xa as ua,xc as da,xf as fa,xi as pa,xl as ma,xo as ha,xs as ga,y as _a,ya as va,yf as ya,yl as ba,yn as xa,yp as Sa,z as Ca,zf as wa,zi as Ta,zn as Ea}from"./format-CX-V5tOl.js";var Da=m(`editorOverviewRuler.bracketMatchForeground`,`#A0A0A0`,L(840,`Overview ruler marker color for matching brackets.`)),Oa=class extends b{constructor(){super({id:`editor.action.jumpToBracket`,label:S(842,`Go to Bracket`),precondition:void 0,kbOpts:{kbExpr:x.editorTextFocus,primary:3165,weight:100}})}run(e,t){Ma.get(t)?.jumpToBracket()}},ka=class extends b{constructor(){super({id:`editor.action.selectToBracket`,label:S(843,`Select to Bracket`),precondition:void 0,metadata:{description:S(844,`Select the text inside and including the brackets or curly braces`),args:[{name:`args`,schema:{type:`object`,properties:{selectBrackets:{type:`boolean`,default:!0}}}}]}})}run(e,t,n){let r=!0;n&&n.selectBrackets===!1&&(r=!1),Ma.get(t)?.selectToBracket(r)}},Aa=class extends b{constructor(){super({id:`editor.action.removeBrackets`,label:S(845,`Remove Brackets`),precondition:void 0,kbOpts:{kbExpr:x.editorTextFocus,primary:2561,weight:100},canTriggerInlineEdits:!0})}run(e,t){Ma.get(t)?.removeBrackets(this.id)}},ja=class{constructor(e,t,n){this.position=e,this.brackets=t,this.options=n}},Ma=class e extends B{static{this.ID=`editor.contrib.bracketMatchingController`}static get(t){return t.getContribution(e.ID)}constructor(e){super(),this._editor=e,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new Lr(()=>this._updateBrackets(),50)),this._matchBrackets=this._editor.getOption(80),this._updateBracketsSoon.schedule(),this._register(e.onDidChangeCursorPosition(e=>{this._matchBrackets!==`never`&&this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModelContent(e=>{this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModel(e=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModelLanguageConfiguration(e=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeConfiguration(e=>{e.hasChanged(80)&&(this._matchBrackets=this._editor.getOption(80),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule())})),this._register(e.onDidBlurEditorWidget(()=>{this._updateBracketsSoon.schedule()})),this._register(e.onDidFocusEditorWidget(()=>{this._updateBracketsSoon.schedule()}))}jumpToBracket(){if(!this._editor.hasModel())return;let e=this._editor.getModel(),t=this._editor.getSelections().map(t=>{let n=t.getStartPosition(),r=e.bracketPairs.matchBracket(n),i=null;if(r)r[0].containsPosition(n)&&!r[1].containsPosition(n)?i=r[1].getStartPosition():r[1].containsPosition(n)&&(i=r[0].getStartPosition());else{let t=e.bracketPairs.findEnclosingBrackets(n);if(t)i=t[1].getStartPosition();else{let t=e.bracketPairs.findNextBracket(n);t&&t.range&&(i=t.range.getStartPosition())}}return i?new y(i.lineNumber,i.column,i.lineNumber,i.column):new y(n.lineNumber,n.column,n.lineNumber,n.column)});this._editor.setSelections(t),this._editor.revealRange(t[0])}selectToBracket(e){if(!this._editor.hasModel())return;let t=this._editor.getModel(),n=[];this._editor.getSelections().forEach(r=>{let i=r.getStartPosition(),a=t.bracketPairs.matchBracket(i);if(!a&&(a=t.bracketPairs.findEnclosingBrackets(i),!a)){let e=t.bracketPairs.findNextBracket(i);e&&e.range&&(a=t.bracketPairs.matchBracket(e.range.getStartPosition()))}let o=null,s=null;if(a){a.sort(_.compareRangesUsingStarts);let[t,n]=a;if(o=e?t.getStartPosition():t.getEndPosition(),s=e?n.getEndPosition():n.getStartPosition(),n.containsPosition(i)){let e=o;o=s,s=e}}o&&s&&n.push(new y(o.lineNumber,o.column,s.lineNumber,s.column))}),n.length>0&&(this._editor.setSelections(n),this._editor.revealRange(n[0]))}removeBrackets(e){if(!this._editor.hasModel())return;let t=this._editor.getModel();this._editor.getSelections().forEach(n=>{let r=n.getPosition(),i=t.bracketPairs.matchBracket(r);i||=t.bracketPairs.findEnclosingBrackets(r),i&&(this._editor.pushUndoStop(),this._editor.executeEdits(e,[{range:i[0],text:``},{range:i[1],text:``}]),this._editor.pushUndoStop())})}static{this._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=V.register({description:`bracket-match-overview`,stickiness:1,className:`bracket-match`,inlineClassName:`bracket-match-inline`,overviewRuler:{color:k(Da),position:ra.Center}})}static{this._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=V.register({description:`bracket-match-no-overview`,stickiness:1,className:`bracket-match`,inlineClassName:`bracket-match-inline`})}_updateBrackets(){if(this._matchBrackets===`never`)return;this._recomputeBrackets();let e=[],t=0;for(let n of this._lastBracketsData){let r=n.brackets;r&&(e[t++]={range:r[0],options:n.options},e[t++]={range:r[1],options:n.options})}this._decorations.set(e)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus()){this._lastBracketsData=[],this._lastVersionId=0;return}let t=this._editor.getSelections();if(t.length>100){this._lastBracketsData=[],this._lastVersionId=0;return}let n=this._editor.getModel(),r=n.getVersionId(),i=[];this._lastVersionId===r&&(i=this._lastBracketsData);let a=[],o=0;for(let e=0,n=t.length;e<n;e++){let n=t[e];n.isEmpty()&&(a[o++]=n.getStartPosition())}a.length>1&&a.sort(T.compare);let s=[],c=0,l=0,u=i.length;for(let t=0,r=a.length;t<r;t++){let r=a[t];for(;l<u&&i[l].position.isBefore(r);)l++;if(l<u&&i[l].position.equals(r))s[c++]=i[l];else{let t=n.bracketPairs.matchBracket(r,20),i=e._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;!t&&this._matchBrackets===`always`&&(t=n.bracketPairs.findEnclosingBrackets(r,20),i=e._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER),s[c++]=new ja(r,t,i)}}this._lastBracketsData=s,this._lastVersionId=r}};bt(Ma.ID,Ma,1),A(ka),A(Oa),A(Aa),Bt.appendMenuItem(g.MenubarGoMenu,{group:`5_infile_nav`,command:{id:`editor.action.jumpToBracket`,title:L(841,`Go to &&Bracket`)},order:2}),Ae((e,t)=>{let n=e.getColor(lt);n&&t.addRule(`.monaco-editor .bracket-match-inline { color: ${n} !important; }`)});var Na=class{constructor(e,t){this._selection=e,this._isMovingLeft=t}getEditOperations(e,t){if(this._selection.startLineNumber!==this._selection.endLineNumber||this._selection.isEmpty())return;let n=this._selection.startLineNumber,r=this._selection.startColumn,i=this._selection.endColumn;if(!(this._isMovingLeft&&r===1)&&!(!this._isMovingLeft&&i===e.getLineMaxColumn(n)))if(this._isMovingLeft){let a=new _(n,r-1,n,r),o=e.getValueInRange(a);t.addEditOperation(a,null),t.addEditOperation(new _(n,i,n,i),o)}else{let a=new _(n,i,n,i+1),o=e.getValueInRange(a);t.addEditOperation(a,null),t.addEditOperation(new _(n,r,n,r),o)}}computeCursorState(e,t){return this._isMovingLeft?new y(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new y(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}},Pa=class extends b{constructor(e,t){super(t),this.left=e}run(e,t){if(!t.hasModel())return;let n=[],r=t.getSelections();for(let e of r)n.push(new Na(e,this.left));t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop()}},Fa=class extends Pa{constructor(){super(!0,{id:`editor.action.moveCarretLeftAction`,label:S(846,`Move Selected Text Left`),precondition:x.writable})}},Ia=class extends Pa{constructor(){super(!1,{id:`editor.action.moveCarretRightAction`,label:S(847,`Move Selected Text Right`),precondition:x.writable})}};A(Fa),A(Ia),A(class extends b{constructor(){super({id:`editor.action.transposeLetters`,label:S(848,`Transpose Letters`),precondition:x.writable,kbOpts:{kbExpr:x.textInputFocus,primary:0,mac:{primary:306},weight:100}})}run(e,t){if(!t.hasModel())return;let n=t.getModel(),r=[],i=t.getSelections();for(let e of i){if(!e.isEmpty())continue;let t=e.startLineNumber,i=e.startColumn,a=n.getLineMaxColumn(t);if(t===1&&(i===1||i===2&&a===2))continue;let o=i===a?e.getPosition():ri.rightPosition(n,e.getPosition().lineNumber,e.getPosition().column),s=ri.leftPosition(n,o),c=ri.leftPosition(n,s),l=n.getValueInRange(_.fromPositions(c,s)),u=n.getValueInRange(_.fromPositions(s,o)),d=_.fromPositions(c,o);r.push(new Ai(d,u+l))}r.length>0&&(t.pushUndoStop(),t.executeCommands(this.id,r),t.pushUndoStop())}});var La=class e{static{this.sep=`.`}static{this.None=new e(`@@none@@`)}static{this.Empty=new e(``)}constructor(e){this.value=e}equals(e){return this.value===e.value}contains(t){return this.equals(t)||this.value===``||t.value.startsWith(this.value+e.sep)}intersects(e){return this.contains(e)||e.contains(this)}append(...t){return new e((this.value?[this.value,...t]:t).join(e.sep))}},Ra=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},za=function(e,t){return function(n,r){t(n,r,e)}},Ba=V.register({description:`inline-progress-widget`,stickiness:1,showIfCollapsed:!0,after:{content:`\xA0`,inlineClassName:`inline-editor-progress-decoration`,inlineClassNameAffectsLetterSpacing:!0}}),Va=class e extends B{static{this.baseId=`editor.widget.inlineProgressWidget`}constructor(e,t,n,r,i){super(),this.typeId=e,this.editor=t,this.range=n,this.delegate=i,this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this.create(r),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this)}create(e){this.domNode=F(`.inline-progress-widget`),this.domNode.role=`button`,this.domNode.title=e;let t=F(`span.icon`);this.domNode.append(t),t.classList.add(...O.asClassNameArray(G.loading),`codicon-modifier-spin`);let n=()=>{let e=this.editor.getOption(75);this.domNode.style.height=`${e}px`,this.domNode.style.width=`${Math.ceil(.8*e)}px`};n(),this._register(this.editor.onDidChangeConfiguration(e=>{(e.hasChanged(61)||e.hasChanged(75))&&n()})),this._register(z(this.domNode,ki.CLICK,e=>{this.delegate.cancel()}))}getId(){return e.baseId+`.`+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:{lineNumber:this.range.startLineNumber,column:this.range.startColumn},preference:[0]}}dispose(){super.dispose(),this.editor.removeContentWidget(this)}},Ha=class extends B{constructor(e,t,n){super(),this.id=e,this._editor=t,this._instantiationService=n,this._showDelay=500,this._showPromise=this._register(new gi),this._currentWidget=this._register(new gi),this._operationIdPool=0,this._currentDecorations=t.createDecorationsCollection()}dispose(){super.dispose(),this._currentDecorations.clear()}async showWhile(e,t,n,r,i){let a=this._operationIdPool++;this._currentOperation=a,this.clear(),this._showPromise.value=st(()=>{let n=_.fromPositions(e);this._currentDecorations.set([{range:n,options:Ba}]).length>0&&(this._currentWidget.value=this._instantiationService.createInstance(Va,this.id,this._editor,n,t,r))},i??this._showDelay);try{return await n}finally{this._currentOperation===a&&(this.clear(),this._currentOperation=void 0)}}clear(){this._showPromise.clear(),this._currentDecorations.clear(),this._currentWidget.clear()}};Ha=Ra([za(2,Ue)],Ha);var Ua=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Wa=function(e,t){return function(n,r){t(n,r,e)}},Ga,Ka=class{static{Ga=this}static{this.ID=`editor.contrib.messageController`}static{this.MESSAGE_VISIBLE=new D(`messageVisible`,!1,L(1333,`Whether the editor is currently showing an inline message`))}static get(e){return e.getContribution(Ga.ID)}constructor(e,t,n){this._openerService=n,this._messageWidget=new gi,this._messageListeners=new P,this._mouseOverMessage=!1,this._editor=e,this._visible=Ga.MESSAGE_VISIBLE.bindTo(t)}dispose(){this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}showMessage(e,t){if(at(_e(e)?e.value:e),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),_e(e)){let n=this._messageListeners.add(Rr(e,{actionHandler:(e,t)=>{this.closeMessage(),ue(this._openerService,e,t.isTrusted)}}));this._messageWidget.value=new qa(this._editor,t,n.element)}else this._messageWidget.value=new qa(this._editor,t,e);this._messageListeners.add(zi.debounce(this._editor.onDidBlurEditorText,(e,t)=>t,0)(()=>{this._mouseOverMessage||this._messageWidget.value&&dt(Jr(),this._messageWidget.value.getDomNode())||this.closeMessage()})),this._messageListeners.add(this._editor.onDidChangeCursorPosition(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidDispose(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidChangeModel(()=>this.closeMessage())),this._messageListeners.add(z(this._messageWidget.value.getDomNode(),ki.MOUSE_ENTER,()=>this._mouseOverMessage=!0,!0)),this._messageListeners.add(z(this._messageWidget.value.getDomNode(),ki.MOUSE_LEAVE,()=>this._mouseOverMessage=!1,!0));let n;this._messageListeners.add(this._editor.onMouseMove(e=>{e.target.position&&(n?n.containsPosition(e.target.position)||this.closeMessage():n=new _(t.lineNumber-3,1,e.target.position.lineNumber+3,1))}))}closeMessage(){this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value&&this._messageListeners.add(qa.fadeOut(this._messageWidget.value))}};Ka=Ga=Ua([Wa(1,w),Wa(2,se)],Ka),M(new(Je.bindToContribution(Ka.get))({id:`leaveEditorMessage`,precondition:Ka.MESSAGE_VISIBLE,handler:e=>e.closeMessage(),kbOpts:{weight:130,primary:9}}));var qa=class{static fadeOut(e){let t=()=>{e.dispose(),clearTimeout(n),e.getDomNode().removeEventListener(`animationend`,t)},n=setTimeout(t,110);return e.getDomNode().addEventListener(`animationend`,t),e.getDomNode().classList.add(`fadeOut`),{dispose:t}}constructor(e,{lineNumber:t,column:n},r){this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=e,this._editor.revealLinesInCenterIfOutsideViewport(t,t,0),this._position={lineNumber:t,column:n},this._domNode=document.createElement(`div`),this._domNode.classList.add(`monaco-editor-overlaymessage`),this._domNode.style.marginLeft=`-6px`;let i=document.createElement(`div`);i.classList.add(`anchor`,`top`),this._domNode.appendChild(i);let a=document.createElement(`div`);typeof r==`string`?(a.classList.add(`message`),a.textContent=r):(r.classList.add(`message`),a.appendChild(r)),this._domNode.appendChild(a);let o=document.createElement(`div`);o.classList.add(`anchor`,`below`),this._domNode.appendChild(o),this._editor.addContentWidget(this),this._domNode.classList.add(`fadeIn`)}dispose(){this._editor.removeContentWidget(this)}getId(){return`messageoverlay`}getDomNode(){return this._domNode}getPosition(){return{position:this._position,preference:[1,2],positionAffinity:1}}afterRender(e){this._domNode.classList.toggle(`below`,e===2)}};bt(Ka.ID,Ka,4);var Ja=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Ya=function(e,t){return function(n,r){t(n,r,e)}},Xa=class{constructor(e){this.copyMimeTypes=[],this.kind=e,this.providedDropEditKinds=[this.kind],this.providedPasteEditKinds=[this.kind]}async provideDocumentPasteEdits(e,t,n,r,i){let a=await this.getEdit(n,i);if(a)return{edits:[{insertText:a.insertText,title:a.title,kind:a.kind,handledMimeType:a.handledMimeType,yieldTo:a.yieldTo}],dispose(){}}}async provideDocumentDropEdits(e,t,n,r){let i=await this.getEdit(n,r);if(i)return{edits:[{insertText:i.insertText,title:i.title,kind:i.kind,handledMimeType:i.handledMimeType,yieldTo:i.yieldTo}],dispose(){}}}},Za=class e extends Xa{static{this.id=`text`}constructor(){super(La.Empty.append(`text`,`plain`)),this.id=e.id,this.dropMimeTypes=[R.text],this.pasteMimeTypes=[R.text]}async getEdit(e,t){let n=e.get(R.text);if(!n||e.has(R.uriList))return;let r=await n.asString();return{handledMimeType:R.text,title:L(965,`Insert Plain Text`),insertText:r,kind:this.kind}}},Qa=class extends Xa{constructor(){super(La.Empty.append(`uri`,`path`,`absolute`)),this.dropMimeTypes=[R.uriList],this.pasteMimeTypes=[R.uriList]}async getEdit(e,t){let n=await to(e);if(!n.length||t.isCancellationRequested)return;let r=0,i=n.map(({uri:e,originalText:t})=>e.scheme===ma.file?e.fsPath:(r++,t)).join(` `),a;return a=r>0?n.length>1?L(966,`Insert Uris`):L(967,`Insert Uri`):n.length>1?L(968,`Insert Paths`):L(969,`Insert Path`),{handledMimeType:R.uriList,insertText:i,title:a,kind:this.kind}}},$a=class extends Xa{constructor(e){super(La.Empty.append(`uri`,`path`,`relative`)),this._workspaceContextService=e,this.dropMimeTypes=[R.uriList],this.pasteMimeTypes=[R.uriList]}async getEdit(e,t){let n=await to(e);if(!n.length||t.isCancellationRequested)return;let r=ui(n.map(({uri:e})=>{let t=this._workspaceContextService.getWorkspaceFolder(e);return t?bi(t.uri,e):void 0}));if(r.length)return{handledMimeType:R.uriList,insertText:r.join(` `),title:n.length>1?L(970,`Insert Relative Paths`):L(971,`Insert Relative Path`),kind:this.kind}}};$a=Ja([Ya(0,o)],$a);var eo=class{constructor(){this.kind=new La(`html`),this.providedPasteEditKinds=[this.kind],this.copyMimeTypes=[],this.pasteMimeTypes=[`text/html`],this._yieldTo=[{mimeType:R.text}]}async provideDocumentPasteEdits(e,t,n,r,i){if(r.triggerKind!==Yr.PasteAs&&!r.only?.contains(this.kind))return;let a=await n.get(`text/html`)?.asString();if(!(!a||i.isCancellationRequested))return{dispose(){},edits:[{insertText:a,yieldTo:this._yieldTo,title:L(972,`Insert HTML`),kind:this.kind}]}}};async function to(e){let t=e.get(R.uriList);if(!t)return[];let n=await t.asString(),r=[];for(let e of Wn.parse(n))try{r.push({uri:Fr.parse(e),originalText:e})}catch{}return r}var no={scheme:`*`,hasAccessToAllModels:!0},ro=class extends B{constructor(e,t){super(),this._register(e.documentDropEditProvider.register(no,new Za)),this._register(e.documentDropEditProvider.register(no,new Qa)),this._register(e.documentDropEditProvider.register(no,new $a(t)))}};ro=Ja([Ya(0,j),Ya(1,o)],ro);var io=class extends B{constructor(e,t){super(),this._register(e.documentPasteEditProvider.register(no,new Za)),this._register(e.documentPasteEditProvider.register(no,new Qa)),this._register(e.documentPasteEditProvider.register(no,new $a(t))),this._register(e.documentPasteEditProvider.register(no,new eo))}};io=Ja([Ya(0,j),Ya(1,o)],io);var ao=class e{constructor(){this.value=``,this.pos=0}static{this._table={36:0,58:1,44:2,123:3,125:4,92:5,47:6,124:7,43:11,45:12,63:13}}static isDigitCharacter(e){return e>=48&&e<=57}static isVariableCharacter(e){return e===95||e>=97&&e<=122||e>=65&&e<=90}text(e){this.value=e,this.pos=0}tokenText(e){return this.value.substr(e.pos,e.len)}next(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};let t=this.pos,n=0,r=this.value.charCodeAt(t),i;if(i=e._table[r],typeof i==`number`)return this.pos+=1,{type:i,pos:t,len:1};if(e.isDigitCharacter(r)){i=8;do n+=1,r=this.value.charCodeAt(t+n);while(e.isDigitCharacter(r));return this.pos+=n,{type:i,pos:t,len:n}}if(e.isVariableCharacter(r)){i=9;do r=this.value.charCodeAt(t+ ++n);while(e.isVariableCharacter(r)||e.isDigitCharacter(r));return this.pos+=n,{type:i,pos:t,len:n}}i=10;do n+=1,r=this.value.charCodeAt(t+n);while(!isNaN(r)&&e._table[r]===void 0&&!e.isDigitCharacter(r)&&!e.isVariableCharacter(r));return this.pos+=n,{type:i,pos:t,len:n}}},oo=class{constructor(){this._children=[]}appendChild(e){return e instanceof so&&this._children[this._children.length-1]instanceof so?this._children[this._children.length-1].value+=e.value:(e.parent=this,this._children.push(e)),this}replace(e,t){let{parent:n}=e,r=n.children.indexOf(e),i=n.children.slice(0);i.splice(r,1,...t),n._children=i,(function e(t,n){for(let r of t)r.parent=n,e(r.children,r)})(t,n)}get children(){return this._children}get rightMostDescendant(){return this._children.length>0?this._children[this._children.length-1].rightMostDescendant:this}get snippet(){let e=this;for(;;){if(!e)return;if(e instanceof go)return e;e=e.parent}}toString(){return this.children.reduce((e,t)=>e+t.toString(),``)}len(){return 0}},so=class e extends oo{constructor(e){super(),this.value=e}toString(){return this.value}len(){return this.value.length}clone(){return new e(this.value)}},co=class extends oo{},lo=class e extends co{static compareByIndex(e,t){return e.index===t.index?0:e.isFinalTabstop?1:t.isFinalTabstop||e.index<t.index?-1:+(e.index>t.index)}constructor(e){super(),this.index=e}get isFinalTabstop(){return this.index===0}get choice(){return this._children.length===1&&this._children[0]instanceof uo?this._children[0]:void 0}clone(){let t=new e(this.index);return this.transform&&(t.transform=this.transform.clone()),t._children=this.children.map(e=>e.clone()),t}},uo=class e extends oo{constructor(){super(...arguments),this.options=[]}appendChild(e){return e instanceof so&&(e.parent=this,this.options.push(e)),this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){let t=new e;return this.options.forEach(t.appendChild,t),t}},fo=class e extends oo{constructor(){super(...arguments),this.regexp=RegExp(``)}resolve(e){let t=this,n=!1,r=e.replace(this.regexp,function(){return n=!0,t._replace(Array.prototype.slice.call(arguments,0,-2))});return!n&&this._children.some(e=>e instanceof po&&!!e.elseValue)&&(r=this._replace([])),r}_replace(e){let t=``;for(let n of this._children)if(n instanceof po){let r=e[n.index]||``;r=n.resolve(r),t+=r}else t+=n.toString();return t}toString(){return``}clone(){let t=new e;return t.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?`i`:``)+(this.regexp.global?`g`:``)),t._children=this.children.map(e=>e.clone()),t}},po=class e extends oo{constructor(e,t,n,r){super(),this.index=e,this.shorthandName=t,this.ifValue=n,this.elseValue=r}resolve(e){return this.shorthandName===`upcase`?e?e.toLocaleUpperCase():``:this.shorthandName===`downcase`?e?e.toLocaleLowerCase():``:this.shorthandName===`capitalize`?e?e[0].toLocaleUpperCase()+e.substr(1):``:this.shorthandName===`pascalcase`?e?this._toPascalCase(e):``:this.shorthandName===`camelcase`?e?this._toCamelCase(e):``:this.shorthandName===`kebabcase`?e?this._toKebabCase(e):``:this.shorthandName===`snakecase`?e?this._toSnakeCase(e):``:e&&typeof this.ifValue==`string`?this.ifValue:!e&&typeof this.elseValue==`string`?this.elseValue:e||``}_toKebabCase(e){if(!e.match(/[\p{L}0-9]+/gu))return e;if(!e.match(/[\p{L}0-9]/u))return e.trim().toLowerCase().replace(/^_+|_+$/g,``).replace(/[\s_]+/g,`-`);let t=e.trim().replace(/^_+|_+$/g,``),n=t.match(/\p{Lu}{2,}(?=\p{Lu}\p{Ll}+[0-9]*|[\s_-]|$)|\p{Lu}?\p{Ll}+[0-9]*|\p{Lu}(?=\p{Lu}\p{Ll})|\p{Lu}(?=[\s_-]|$)|[0-9]+/gu);return n?n.map(e=>e.toLowerCase()).join(`-`):t.split(/[\s_-]+/).filter(e=>e.length>0).map(e=>e.toLowerCase()).join(`-`)}_toPascalCase(e){let t=e.match(/[\p{L}0-9]+/gu);return t?t.map(e=>e.charAt(0).toUpperCase()+e.substr(1)).join(``):e}_toCamelCase(e){let t=e.match(/[\p{L}0-9]+/gu);return t?t.map((e,t)=>t===0?e.charAt(0).toLowerCase()+e.substr(1):e.charAt(0).toUpperCase()+e.substr(1)).join(``):e}_toSnakeCase(e){return e.replace(/(\p{Ll})(\p{Lu})/gu,`$1_$2`).replace(/[\s\-]+/g,`_`).toLowerCase()}clone(){return new e(this.index,this.shorthandName,this.ifValue,this.elseValue)}},mo=class e extends co{constructor(e){super(),this.name=e}resolve(e){let t=e.resolve(this);return this.transform&&(t=this.transform.resolve(t||``)),t===void 0?!1:(this._children=[new so(t)],!0)}clone(){let t=new e(this.name);return this.transform&&(t.transform=this.transform.clone()),t._children=this.children.map(e=>e.clone()),t}};function ho(e,t){let n=[...e];for(;n.length>0;){let e=n.shift();if(!t(e))break;n.unshift(...e.children)}}var go=class e extends oo{get placeholderInfo(){if(!this._placeholders){let e=[],t;this.walk(function(n){return n instanceof lo&&(e.push(n),t=!t||t.index<n.index?n:t),!0}),this._placeholders={all:e,last:t}}return this._placeholders}get placeholders(){let{all:e}=this.placeholderInfo;return e}offset(e){let t=0,n=!1;return this.walk(r=>r===e?(n=!0,!1):(t+=r.len(),!0)),n?t:-1}fullLen(e){let t=0;return ho([e],e=>(t+=e.len(),!0)),t}enclosingPlaceholders(e){let t=[],{parent:n}=e;for(;n;)n instanceof lo&&t.push(n),n=n.parent;return t}resolveVariables(e){return this.walk(t=>(t instanceof mo&&t.resolve(e)&&(this._placeholders=void 0),!0)),this}appendChild(e){return this._placeholders=void 0,super.appendChild(e)}replace(e,t){return this._placeholders=void 0,super.replace(e,t)}clone(){let t=new e;return t._children=this.children.map(e=>e.clone()),t}walk(e){ho(this.children,e)}},_o=class{constructor(){this._scanner=new ao,this._token={type:14,pos:0,len:0}}static escape(e){return e.replace(/\$|}|\\/g,`\\$&`)}static guessNeedsClipboard(e){return/\${?CLIPBOARD/.test(e)}parse(e,t,n){let r=new go;return this.parseFragment(e,r),this.ensureFinalTabstop(r,n??!1,t??!1),r}parseFragment(e,t){let n=t.children.length;for(this._scanner.text(e),this._token=this._scanner.next();this._parse(t););let r=new Map,i=[];t.walk(e=>(e instanceof lo&&(e.isFinalTabstop?r.set(0,void 0):!r.has(e.index)&&e.children.length>0?r.set(e.index,e.children):i.push(e)),!0));let a=(e,n)=>{let i=r.get(e.index);if(!i)return;let o=new lo(e.index);o.transform=e.transform;for(let e of i){let t=e.clone();o.appendChild(t),t instanceof lo&&r.has(t.index)&&!n.has(t.index)&&(n.add(t.index),a(t,n),n.delete(t.index))}t.replace(e,[o])},o=new Set;for(let e of i)a(e,o);return t.children.slice(n)}ensureFinalTabstop(e,t,n){(t||n&&e.placeholders.length>0)&&(e.placeholders.find(e=>e.index===0)||e.appendChild(new lo(0)))}_accept(e,t){if(e===void 0||this._token.type===e){let e=t?this._scanner.tokenText(this._token):!0;return this._token=this._scanner.next(),e}return!1}_backTo(e){return this._scanner.pos=e.pos+e.len,this._token=e,!1}_until(e){let t=this._token;for(;this._token.type!==e;){if(this._token.type===14)return!1;if(this._token.type===5){let e=this._scanner.next();if(e.type!==0&&e.type!==4&&e.type!==5)return!1}this._token=this._scanner.next()}let n=this._scanner.value.substring(t.pos,this._token.pos).replace(/\\(\$|}|\\)/g,`$1`);return this._token=this._scanner.next(),n}_parse(e){return this._parseEscaped(e)||this._parseTabstopOrVariableName(e)||this._parseComplexPlaceholder(e)||this._parseComplexVariable(e)||this._parseAnything(e)}_parseEscaped(e){let t;return(t=this._accept(5,!0))?(t=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||t,e.appendChild(new so(t)),!0):!1}_parseTabstopOrVariableName(e){let t,n=this._token;return this._accept(0)&&(t=this._accept(9,!0)||this._accept(8,!0))?(e.appendChild(/^\d+$/.test(t)?new lo(Number(t)):new mo(t)),!0):this._backTo(n)}_parseComplexPlaceholder(e){let t,n=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(8,!0))))return this._backTo(n);let r=new lo(Number(t));if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(r),!0;if(!this._parse(r))return e.appendChild(new so("${"+t+`:`)),r.children.forEach(e.appendChild,e),!0}else if(r.index>0&&this._accept(7)){let t=new uo;for(;;){if(this._parseChoiceElement(t)){if(this._accept(2))continue;if(this._accept(7)&&(r.appendChild(t),this._accept(4)))return e.appendChild(r),!0}return this._backTo(n),!1}}else if(this._accept(6))return this._parseTransform(r)?(e.appendChild(r),!0):(this._backTo(n),!1);else if(this._accept(4))return e.appendChild(r),!0;else return this._backTo(n)}_parseChoiceElement(e){let t=this._token,n=[];for(;!(this._token.type===2||this._token.type===7);){let e;if(e=(e=this._accept(5,!0))?this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||e:this._accept(void 0,!0),!e)return this._backTo(t),!1;n.push(e)}return n.length===0?(this._backTo(t),!1):(e.appendChild(new so(n.join(``))),!0)}_parseComplexVariable(e){let t,n=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(9,!0))))return this._backTo(n);let r=new mo(t);if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(r),!0;if(!this._parse(r))return e.appendChild(new so("${"+t+`:`)),r.children.forEach(e.appendChild,e),!0}else if(this._accept(6))return this._parseTransform(r)?(e.appendChild(r),!0):(this._backTo(n),!1);else if(this._accept(4))return e.appendChild(r),!0;else return this._backTo(n)}_parseTransform(e){let t=new fo,n=``,r=``;for(;!this._accept(6);){let e;if(e=this._accept(5,!0)){e=this._accept(6,!0)||e,n+=e;continue}if(this._token.type!==14){n+=this._accept(void 0,!0);continue}return!1}for(;!this._accept(6);){let e;if(e=this._accept(5,!0)){e=this._accept(5,!0)||this._accept(6,!0)||e,t.appendChild(new so(e));continue}if(!(this._parseFormatString(t)||this._parseAnything(t)))return!1}for(;!this._accept(4);){if(this._token.type!==14){r+=this._accept(void 0,!0);continue}return!1}try{t.regexp=new RegExp(n,r)}catch{return!1}return e.transform=t,!0}_parseFormatString(e){let t=this._token;if(!this._accept(0))return!1;let n=!1;this._accept(3)&&(n=!0);let r=this._accept(8,!0);if(!r)return this._backTo(t),!1;if(!n||this._accept(4))return e.appendChild(new po(Number(r))),!0;if(!this._accept(1))return this._backTo(t),!1;if(this._accept(6)){let n=this._accept(9,!0);return!n||!this._accept(4)?(this._backTo(t),!1):(e.appendChild(new po(Number(r),n)),!0)}else if(this._accept(11)){let t=this._until(4);if(t)return e.appendChild(new po(Number(r),void 0,t,void 0)),!0}else if(this._accept(12)){let t=this._until(4);if(t)return e.appendChild(new po(Number(r),void 0,void 0,t)),!0}else if(this._accept(13)){let t=this._until(1);if(t){let n=this._until(4);if(n)return e.appendChild(new po(Number(r),void 0,t,n)),!0}}else{let t=this._until(4);if(t)return e.appendChild(new po(Number(r),void 0,void 0,t)),!0}return this._backTo(t),!1}_parseAnything(e){return this._token.type===14?!1:(e.appendChild(new so(this._scanner.tokenText(this._token))),this._accept(void 0),!0)}};function vo(e,t,n){return(typeof n.insertText==`string`?n.insertText===``:n.insertText.snippet===``)?{edits:n.additionalEdit?.edits??[]}:{edits:[...t.map(t=>new Pr(e,{range:t,text:typeof n.insertText==`string`?_o.escape(n.insertText)+`$0`:n.insertText.snippet,insertAsSnippet:!0})),...n.additionalEdit?.edits??[]]}}function yo(e){function t(e,t){return`mimeType`in e?e.mimeType===t.handledMimeType:!!t.kind&&e.kind.contains(t.kind)}let n=new Map;for(let r of e)for(let i of r.yieldTo??[])for(let a of e)if(a!==r&&t(i,a)){let e=n.get(r);e||(e=[],n.set(r,e)),e.push(a)}if(!n.size)return Array.from(e);let r=new Set,i=[];function a(e){if(!e.length)return[];let t=e[0];if(i.includes(t))return console.warn(`Yield to cycle detected`,t),e;if(r.has(t))return a(e.slice(1));let o=[],s=n.get(t);return s&&(i.push(t),o=a(s),i.pop()),r.add(t),[...o,t,...a(e.slice(1))]}return a(Array.from(e))}function bo(e,t){return t&&(e.stack||e.stacktrace)?L(33,`{0}: {1}`,So(e),xo(e.stack)||xo(e.stacktrace)):So(e)}function xo(e){return Array.isArray(e)?e.join(`
2
+ `):e}function So(e){return e.code===`ERR_UNC_HOST_NOT_ALLOWED`?`${e.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`:typeof e.code==`string`&&typeof e.errno==`number`&&typeof e.syscall==`string`?L(34,`A system error occurred ({0})`,e.message):e.message||L(35,`An unknown error occurred. Please consult the log for more details.`)}function Co(e=null,t=!1){if(!e)return L(36,`An unknown error occurred. Please consult the log for more details.`);if(Array.isArray(e)){let n=ui(e),r=Co(n[0],t);return n.length>1?L(37,`{0} ({1} errors in total)`,r,n.length):r}if(Ge(e))return e;if(e.detail){let n=e.detail;if(n.error)return bo(n.error,t);if(n.exception)return bo(n.exception,t)}return e.stack?bo(e,t):e.message?e.message:L(38,`An unknown error occurred. Please consult the log for more details.`)}var wo=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},To=function(e,t){return function(n,r){t(n,r,e)}},Eo,Do=`acceptSelectedCodeAction`,Oo=`previewSelectedCodeAction`,ko=class{get templateId(){return`header`}renderTemplate(e){e.classList.add(`group-header`);let t=document.createElement(`span`);return e.append(t),{container:e,text:t}}renderElement(e,t,n){n.text.textContent=e.group?.title??e.label??``}disposeTemplate(e){}},Ao=class{get templateId(){return`separator`}renderTemplate(e){e.classList.add(`separator`);let t=document.createElement(`span`);return e.append(t),{container:e,text:t}}renderElement(e,t,n){n.text.textContent=e.label??``}disposeTemplate(e){}},jo=class{get templateId(){return`action`}constructor(e,t,n,r,i,a,o,s,c){this._supportsPreview=e,this._onRemoveItem=t,this._onShowSubmenu=n,this._hasAnySubmenuActions=r,this._groupTitleByIndex=i,this._linkHandler=a,this._hideDefaultKeybindingTooltip=o,this._keybindingService=s,this._openerService=c}renderTemplate(e){e.classList.add(this.templateId);let t=document.createElement(`div`);t.className=`icon`,e.append(t);let n=document.createElement(`span`);n.className=`title`,e.append(n);let r=document.createElement(`span`);r.className=`action-item-badge`,e.append(r);let i=document.createElement(`span`);i.className=`description`,e.append(i);let a=document.createElement(`span`);a.className=`group-title`,e.append(a);let o=document.createElement(`span`);o.className=`detail`,e.append(o);let s=new qr(e,Nn),c=document.createElement(`div`);c.className=`action-list-item-toolbar`,e.append(c);let l=document.createElement(`div`);return l.className=`action-list-submenu-indicator`,e.append(l),{container:e,icon:t,text:n,detail:o,badge:r,description:i,groupTitle:a,keybinding:s,toolbar:c,submenuIndicator:l,elementDisposables:new P}}renderElement(t,n,r){if(r.elementDisposables.clear(),t.group?.icon?(r.icon.className=O.asClassName(t.group.icon),t.group.icon.color&&(r.icon.style.color=ua(t.group.icon.color.id))):(r.icon.className=O.asClassName(G.lightBulb),r.icon.style.color=`var(--vscode-editorLightBulb-foreground)`),!t.item||!t.label)return;if(Wt(!t.hideIcon,r.icon),t.isSectionToggle){let e=t.group?.icon===G.chevronDown;r.container.setAttribute(`aria-expanded`,String(e))}else r.container.removeAttribute(`aria-expanded`);if(r.previousClassName&&r.container.classList.remove(r.previousClassName),r.container.classList.toggle(`action-list-custom`,!!t.className),t.className&&r.container.classList.add(t.className),r.previousClassName=t.className,r.text.textContent=Lo(t.label),t.badge?(r.badge.textContent=t.badge,r.badge.style.display=``):(r.badge.textContent=``,r.badge.style.display=`none`),t.keybinding)r.description.textContent=t.keybinding.getLabel(),r.description.style.display=`inline`,r.description.style.letterSpacing=`0.5px`;else if(t.description){if(rr(r.description),typeof t.description==`string`)r.description.textContent=Lo(t.description);else{let e=Rr(t.description,{actionHandler:e=>{let n=Fr.parse(e);this._linkHandler?this._linkHandler(n,t):this._openerService.open(n,{allowCommands:!0})}});r.elementDisposables.add(e),r.description.appendChild(e.element)}r.description.style.display=`inline`}else r.description.textContent=``,r.description.style.display=`none`;let i=this._groupTitleByIndex.get(n);i?(r.groupTitle.textContent=i,r.groupTitle.style.display=``):(r.groupTitle.textContent=``,r.groupTitle.style.display=`none`),t.detail?(r.detail.textContent=Lo(t.detail),r.detail.style.display=``):(r.detail.textContent=``,r.detail.style.display=`none`);let a=this._keybindingService.lookupKeybinding(Do)?.getLabel(),o=this._keybindingService.lookupKeybinding(Oo)?.getLabel();r.container.classList.toggle(`option-disabled`,!!t.disabled),t.hover===void 0?t.tooltip?r.container.title=t.tooltip:t.disabled?r.container.title=t.label:this._hideDefaultKeybindingTooltip?r.container.title=``:a&&o?this._supportsPreview&&t.canPreview?r.container.title=L(1705,`{0} to Apply, {1} to Preview`,a,o):r.container.title=L(1706,`{0} to Apply`,a):r.container.title=``:r.container.title=``,rr(r.toolbar);let s=[...t.toolbarActions??[]];if(t.onRemove&&s.push(rn({id:`actionList.remove`,label:L(1707,`Remove`),class:O.asClassName(G.close),run:async()=>{await t.onRemove(),this._onRemoveItem?.(t)}})),r.container.classList.toggle(`has-toolbar`,s.length>0),s.length>0){let t=new e(r.toolbar);r.elementDisposables.add(t),t.push(s,{icon:!0,label:!1})}t.submenuActions?.length&&!t.hover?.content?(r.submenuIndicator.className=`action-list-submenu-indicator has-submenu `+O.asClassName(G.chevronRight),r.submenuIndicator.style.display=``,r.submenuIndicator.style.visibility=``,r.elementDisposables.add(z(r.submenuIndicator,ki.CLICK,e=>{e.stopPropagation(),this._onShowSubmenu?.(t)}))):this._hasAnySubmenuActions?(r.submenuIndicator.className=`action-list-submenu-indicator`,r.submenuIndicator.style.display=``,r.submenuIndicator.style.visibility=`hidden`):(r.submenuIndicator.className=`action-list-submenu-indicator`,r.submenuIndicator.style.display=`none`)}disposeTemplate(e){e.keybinding.dispose(),e.elementDisposables.dispose()}};jo=wo([To(7,sa),To(8,se)],jo);var Mo=class extends UIEvent{constructor(){super(`acceptSelectedAction`)}},No=class extends UIEvent{constructor(){super(`previewSelectedAction`)}};function Po(e){if(e.kind===`action`)return e.label}var Fo=Eo=class extends B{constructor(t,n,r,i,a,o,s,c,l){if(super(),this._supportsPreview=n,this._delegate=i,this._options=o,this._keybindingService=s,this._openerService=c,this._instantiationService=l,this._headerLineHeight=24,this._separatorLineHeight=8,this.cts=this._register(new Ct),this._submenuDisposables=this._register(new P),this._collapsedSections=new Set,this._filterText=``,this._suppressHover=!1,this._hasLaidOut=!1,this._filterCts=this._register(new gi),this._groupTitleByIndex=new Map,this._onDidRequestLayout=this._register(new I),this.onDidRequestLayout=this._onDidRequestLayout.event,this.domNode=document.createElement(`div`),this.domNode.classList.add(`actionList`),this._options?.inlineDescription&&this.domNode.classList.add(`inline-description`),this._options?.className){let e=this._options.className.split(/\s+/).filter(e=>e.length>0);e.length>0&&this.domNode.classList.add(...e)}if(this._actionLineHeight=24,this._submenuContainer=document.createElement(`div`),this._submenuContainer.className=`action-list-submenu-panel action-widget`,this._submenuContainer.style.display=`none`,this._submenuContainer.tabIndex=-1,this.domNode.append(this._submenuContainer),this._register(z(this._submenuContainer,`mouseenter`,()=>{this._cancelSubmenuHide()})),this._register(z(this._submenuContainer,`mouseleave`,()=>{this._scheduleSubmenuHide()})),this._register(yn(()=>{this._cancelSubmenuHide(),this._cancelSubmenuShow()})),this._options?.collapsedByDefault)for(let e of this._options.collapsedByDefault)this._collapsedSections.add(e);let u={getHeight:e=>this._getItemHeight(e),getTemplateId:e=>e.kind},d=(this._options?.reserveSubmenuSpace??!0)&&r.some(e=>!!e.submenuActions?.length&&!e.hover?.content);if(this._list=this._register(new Vt(t,this.domNode,u,[new jo(this._supportsPreview,e=>this._removeItem(e),e=>this._showSubmenuForItem(e),d,this._groupTitleByIndex,this._options?.linkHandler,this._options?.hideDefaultKeybindingTooltip??!1,this._keybindingService,this._openerService),new ko,new Ao],{keyboardSupport:!1,typeNavigationEnabled:!this._options?.showFilter,keyboardNavigationLabelProvider:{getKeyboardNavigationLabel:Po},accessibilityProvider:{getAriaLabel:e=>{if(e.kind===`action`){let t=e.label?Lo(e?.label):``;if(e.detail&&(t=t+`, `+Lo(e.detail)),e.ariaDescription)t=t+`, `+Lo(e.ariaDescription);else if(e.description){let n=typeof e.description==`string`?e.description:e.description.value;t=t+`, `+Lo(n)}if(e.hover?.content&&!e.ariaDescription&&!e.description){let n=e.hover.content,r=typeof n==`string`?n:_e(n)?n.value:ot(n)?n.textContent??void 0:void 0;r&&(!e.detail||Lo(e.detail)!==Lo(r))&&(t=t+`, `+Lo(r))}return e.group?.title&&(t=t+`, `+e.group.title),e.disabled&&(t=L(1708,`{0}, Disabled Reason: {1}`,t,e.disabled)),e.submenuActions?.length&&(t=L(1709,`{0}, use right arrow to access options`,t)),t}return null},getWidgetAriaLabel:()=>L(1710,`Action Widget`),getRole:e=>{switch(e.kind){case`action`:return`option`;case`separator`:return`separator`;default:return`separator`}},getWidgetRole:()=>`listbox`,...a}})),this._list.style(sr),this._register(this._list.onMouseClick(e=>this.onListClick(e))),this._register(this._list.onMouseOver(e=>this.onListHover(e))),this._register(this._list.onDidChangeFocus(()=>this.onFocus())),this._register(this._list.onDidChangeSelection(e=>this.onListSelection(e))),this._allMenuItems=[...r],this._options?.showFilter||this._options?.secondaryHeading){this._filterContainer=document.createElement(`div`),this._filterContainer.className=`action-list-filter`;let t=N(this._filterContainer,F(`.action-list-filter-row`));if(this._options?.showFilter){this._filterInput=document.createElement(`input`),this._filterInput.type=`text`,this._filterInput.className=`action-list-filter-input`,this._filterInput.placeholder=this._options?.filterPlaceholder??L(1711,`Search...`),this._filterInput.setAttribute(`aria-label`,L(1712,`Filter items`)),t.appendChild(this._filterInput);let n=this._options?.filterActions??[];if(n.length>0){let r=N(t,F(`.action-list-filter-actions`));this._register(new e(r)).push(n,{icon:!0,label:!1})}this._register(z(this._filterInput,`input`,()=>{this._filterText=this._filterInput.value,this._applyOrUpdateFilter()}))}if(this._options?.secondaryHeading){let e=N(t,F(`.action-list-filter-label`));e.textContent=this._options.secondaryHeading}}if(this._options?.footerText&&(this._footerContainer=document.createElement(`div`),this._footerContainer.className=`action-list-footer`,this._footerContainer.textContent=this._options.footerText),this._options?.headerText){if(this._headerContainer=document.createElement(`div`),this._headerContainer.className=`action-list-header`,this._options.headerIcon){let e=N(this._headerContainer,F(`span.action-list-header-icon`));e.classList.add(...O.asClassNameArray(this._options.headerIcon)),e.setAttribute(`aria-hidden`,`true`)}let e=N(this._headerContainer,F(`span.action-list-header-text`));e.textContent=this._options.headerText}this._applyFilter(),this._list.length&&this._focusCheckedOrFirst(),this._register(z(this.domNode,`keydown`,e=>{if(e.key===`ArrowRight`){let t=this._list.getFocus();if(t.length>0){let n=this._list.element(t[0]);if(n?.submenuActions?.length){ni.stop(e,!0);let r=this._getRowElement(t[0]);r&&(this._showSubmenuForElement(n,r),this._currentSubmenuWidget?.focus())}}}})),this._filterInput&&this._register(z(this.domNode,`keydown`,e=>{this._filterInput&&!oe(this._filterInput)&&e.key.length===1&&e.key!==` `&&!e.ctrlKey&&!e.metaKey&&!e.altKey&&(this._filterInput.focus(),this._filterInput.value=e.key,this._filterText=e.key,this._applyOrUpdateFilter(),e.preventDefault(),e.stopPropagation())}))}_toggleSection(e){this._collapsedSections.has(e)?this._collapsedSections.delete(e):this._collapsedSections.add(e),this._options?.onDidToggleSection?.(e,this._collapsedSections.has(e)),this._applyFilter()}_applyOrUpdateFilter(){if(!this._delegate.onFilter){this._applyFilter();return}let e=this._filterText;this._filterCts.value?.cancel();let t=new Ct;this._filterCts.value=t,this._delegate.onFilter(e,t.token).then(e=>{t.token.isCancellationRequested||(this._allMenuItems=[...e],this._applyFilter(!0))}).catch(()=>{})}_applyFilter(e=!1,t=!0){let n=e?``:this._filterText.toLowerCase(),r=!e&&n.length>0,i=[],a=this._list.getFocus(),o;if(a.length>0&&(o=this._list.element(a[0])),r){let e,t=[],r=!1,a=()=>{e&&r&&i.push(e),i.push(...t),e=void 0,t=[],r=!1},o=e=>{let t=(e.label??``).toLowerCase(),r=typeof e.description==`string`?e.description:e.description?.value??``;return t.includes(n)||r.toLowerCase().includes(n)};for(let n of this._allMenuItems)if(n.kind!==`header`){if(n.kind===`separator`){a(),e=n.label?n:void 0;continue}if(n.showAlways){t.push(n);continue}n.isSectionToggle||o(n)&&(r=!0,t.push(n))}a()}else for(let e of this._allMenuItems){if(e.kind===`header`){i.push(e);continue}if(e.kind===`separator`){if(e.section&&this._collapsedSections.has(e.section))continue;i.push(e);continue}if(e.isSectionToggle&&e.section){let t=this._collapsedSections.has(e.section);i.push({...e,group:{...e.group,icon:t?G.chevronRight:G.chevronDown}});continue}e.section&&this._collapsedSections.has(e.section)||i.push(e)}let s=[],c=!1;for(let e=0;e<i.length;e++)s[e]=c,i[e].kind===`action`&&(c=!0);let l=[],u=!1;for(let e=i.length-1;e>=0;e--){if(i[e].kind===`action`){u=!0;continue}i[e].kind===`separator`&&(l[e]=u,u=!1)}for(let e=i.length-1;e>=0;e--){let t=i[e];if(t.kind!==`separator`)continue;let n=l[e],r=!t.label&&!s[e];(!n||r)&&i.splice(e,1)}this._options?.showGroupTitleOnFirstItem&&this._recomputeGroupTitles(i);let d=this._filterInput&&oe(this._filterInput);if(this._list.splice(0,this._list.length,i),t&&this._onDidRequestLayout.fire(),d)this._filterInput?.focus(),this._focusCheckedOrFirst();else if(this._hasLaidOut&&o){let e=o.item?.id;if(e){for(let t=0;t<this._list.length;t++)if(this._list.element(t).item?.id===e){this._list.setFocus([t]),this._list.reveal(t),this._list.domFocus();break}}}}get filterContainer(){return this._filterContainer}get footerContainer(){return this._footerContainer}get headerContainer(){return this._headerContainer}get filterInput(){return this._filterInput}focusCondition(e){return!e.disabled&&e.kind===`action`}focus(){if(this._filterInput&&this._options?.focusFilterOnOpen){this._filterInput.focus(),this._focusCheckedOrFirst();return}this._list.domFocus(),this._focusCheckedOrFirst()}clearFocus(){this._list.setFocus([])}getFocusedElement(){let e=this._list.getFocus();if(e.length>0)return this._list.element(e[0])}_focusCheckedOrFirst(){this._suppressHover=!0;try{for(let e=0;e<this._list.length;e++){let t=this._list.element(e);if(t.kind===`action`&&t.item?.checked){this._list.setFocus([e]),this._list.reveal(e);return}}this._list.focusFirst(void 0,this.focusCondition);let e=this._list.getFocus();e.length>0&&this._list.reveal(e[0])}finally{this._suppressHover=!1}}hide(e){this._delegate.onHide(e),this.cts.cancel(),this._filterCts.value?.cancel(),this._filterCts.clear(),this._hideSubmenu()}clearFilter(){return this._filterInput&&this._filterText?(this._filterInput.value=``,this._filterText=``,this._applyOrUpdateFilter(),!0):!1}get hasDynamicHeight(){return this._options?.showFilter?!0:this._allMenuItems.some(e=>e.isSectionToggle)}get lineHeight(){return this._actionLineHeight}_getItemHeight(e){switch(e.kind){case`header`:return this._headerLineHeight;case`separator`:return e.label?this._actionLineHeight:this._separatorLineHeight;default:return e.detail?this._options?.detailItemHeight??48:this._actionLineHeight}}computeFullHeight(){let e=0;for(let t of this._allMenuItems)e+=this._getItemHeight(t);return e}computeListHeight(){let e=this._list.length,t=0;for(let n=0;n<e;n++){let e=this._list.element(n);t+=this._getItemHeight(e)}return t}layout(e,t){this._hasLaidOut=!0,this._list.layout(e,t),this.domNode.style.height=`${e}px`,this._filterContainer&&this._filterContainer.parentElement&&this._filterContainer.parentElement.insertBefore(this._filterContainer,this.domNode)}computeMaxWidth(e){let t=this._list.length,n=Math.max(e,this._options?.minWidth??0),r=this._options?.maxWidth??1/0,i=Math.max(r,n),a=e=>Math.min(Math.max(e,n),i),o=n,s=this._allMenuItems.length;if(s>=50)return a(380);if(s>t){let e=[];for(let n=0;n<t;n++)e.push(this._list.element(n));let n=[...this._allMenuItems];this._list.splice(0,t,n);let r=0;for(let e of n)r+=this._getItemHeight(e);this._list.layout(r);let i=[];for(let e=0;e<n.length;e++){let t=this._getRowElement(e);if(t){t.style.width=`auto`;let r=t.getBoundingClientRect().width;t.style.width=``,i.push(r+this._computeToolbarWidth(n[e]))}}return o=a(Math.max(...i)),this._list.splice(0,n.length,e),o}let c=[];for(let e=0;e<t;e++){let t=this._getRowElement(e);if(t){t.style.width=`auto`;let n=t.getBoundingClientRect().width;t.style.width=``,c.push(n+this._computeToolbarWidth(this._list.element(e)))}}return a(Math.max(...c))}focusPrevious(){if(this._filterInput&&oe(this._filterInput)){this._list.domFocus();let e=this._list.getFocus();if(e.length>0){this._list.focusPrevious(1,!1,void 0,this.focusCondition);let t=this._list.getFocus();t.length>0&&t[0]>=e[0]?this._filterInput.focus():t.length>0&&this._list.reveal(t[0])}else{this._list.focusLast(void 0,this.focusCondition);let e=this._list.getFocus();e.length>0&&this._list.reveal(e[0])}return}let e=this._list.getFocus();this._list.focusPrevious(1,!0,void 0,this.focusCondition);let t=this._list.getFocus();if(t.length>0){if(this._filterInput&&e.length>0&&t[0]>e[0]){this._list.setFocus([]),this._filterInput.focus();return}this._list.reveal(t[0])}}focusNext(){if(this._filterInput&&oe(this._filterInput)){if(this._list.domFocus(),this._list.getFocus().length>0){this._list.focusNext(1,!1,void 0,this.focusCondition);let e=this._list.getFocus();e.length>0&&this._list.reveal(e[0])}else{this._list.focusFirst(void 0,this.focusCondition);let e=this._list.getFocus();e.length>0&&this._list.reveal(e[0])}return}let e=this._list.getFocus();this._list.focusNext(1,!0,void 0,this.focusCondition);let t=this._list.getFocus();if(t.length>0){if(this._filterInput&&e.length>0&&t[0]<e[0]){this._list.setFocus([]),this._filterInput.focus();return}this._list.reveal(t[0])}}collapseFocusedSection(){let e=this._getFocusedSection();e&&!this._collapsedSections.has(e)&&this._toggleSection(e)}expandFocusedSection(){let e=this._getFocusedSection();e&&this._collapsedSections.has(e)&&this._toggleSection(e)}toggleFocusedSection(){let e=this._list.getFocus();if(e.length===0)return!1;let t=this._list.element(e[0]);return t.isSectionToggle&&t.section?(this._toggleSection(t.section),!0):!1}_getFocusedSection(){let e=this._list.getFocus();if(e.length===0)return;let t=this._list.element(e[0]);return t.isSectionToggle&&t.section,t.section}acceptSelected(e){let t=this._list.getFocus();if(t.length===0)return;let n=t[0],r=this._list.element(n);if(!this.focusCondition(r))return;let i=e?new No:new Mo;this._list.setSelection([n],i)}onListSelection(e){if(!e.elements.length)return;let t=e.elements[0];if(t.isSectionToggle&&t.section){this._list.setSelection([]);let e=t.section;queueMicrotask(()=>{this._toggleSection(e)});return}if(Ne(e.browserEvent)){let t=e.browserEvent.target;if(ot(t)&&(t.closest(`.action-list-item-toolbar`)||t.closest(`.action-list-submenu-indicator`))){this._list.setSelection([]);return}}if(t.item&&this.focusCondition(t)){let n=e.browserEvent instanceof No;this._delegate.onSelect(t.item,n&&this._supportsPreview)}else this._list.setSelection([])}onFocus(){let e=this._list.getFocus();if(e.length===0)return;let t=e[0],n=this._list.element(t);this._delegate.onFocus?.(n.item),this._suppressHover||this._showHoverForElement(n,t)}_removeItem(e){let t=this._allMenuItems.indexOf(e);t>=0&&(this._allMenuItems.splice(t,1),this._applyFilter())}_recomputeGroupTitles(e){this._groupTitleByIndex.clear();let t=new Set;for(let n=0;n<e.length;n++){let r=e[n];r.kind===`action`&&r.group?.title&&!t.has(r.group.title)&&(t.add(r.group.title),this._groupTitleByIndex.set(n,r.group.title))}}_computeToolbarWidth(e){let t=e.toolbarActions?.length??0;return e.onRemove&&t++,t===0?0:t*22+6}_getRowElement(e){return this.domNode.ownerDocument.getElementById(this._list.getElementID(e))}_showHoverForElement(e,t){if(this._currentSubmenuElement===e)return;let n=!!e.hover?.content,r=!!e.submenuActions?.length;if(n||r){let n=this._getRowElement(t);n&&this._showSubmenuForElement(e,n);return}this._hideSubmenu()}_showSubmenuForItem(e){let t=this._list.indexOf(e);if(t>=0){let n=this._getRowElement(t);n&&this._showSubmenuForElement(e,n)}}_showSubmenuForElement(e,t){if(this._currentSubmenuElement===e)return;this._submenuDisposables.clear(),this._currentSubmenuElement=e,this._clearSubmenuContainer();let n,r=e.hover?.content;if(r){if(ot(r))n=r,e.hover?.disposable&&this._register(e.hover.disposable);else{let t=typeof r==`string`?new gt(r):r,i=this._options?.linkHandler,a=Rr(t,{actionHandler:t=>{let n=Fr.parse(t);i?i(n,e):this._openerService.open(n,{allowCommands:!0})}});this._submenuDisposables.add(a),n=a.element}n.classList.add(`action-list-submenu-hover-header`),e.submenuActions?.length&&n.classList.add(`has-submenu`),this._submenuContainer.appendChild(n)}let i=!!e.submenuActions?.length;this._submenuContainer.style.display=``,this._submenuContainer.style.position=`absolute`,this._submenuContainer.removeAttribute(`role`);let a=t.getBoundingClientRect(),o=this.domNode.getBoundingClientRect(),s=h(this.domNode),c=0,l=n?n.offsetWidth:0;if(i){let t=[],n=e.submenuActions.filter(e=>e instanceof Kt).filter(e=>e.actions.length>0);for(let e=0;e<n.length;e++){let r=n[e];r.label&&t.push({kind:`header`,group:{title:r.label},label:r.label});for(let e=0;e<r.actions.length;e++){let n=r.actions[e],i=n,a=i.icon??O.fromId(n.checked?G.check.id:G.blank.id),o=i.hoverContent;t.push({item:n,kind:`action`,label:n.label,description:n.tooltip||void 0,group:{title:``,icon:a},hideIcon:!1,hover:o?{content:o}:{},onRemove:i.onRemove})}e<n.length-1&&t.push({kind:`separator`,label:``})}for(let n of e.submenuActions)if(!(n instanceof Kt)){let e=n;t.push({item:n,kind:`action`,label:n.label,description:n.tooltip||void 0,group:{title:``},hideIcon:!1,hover:{},onRemove:e.onRemove})}let r=this._submenuDisposables.add(this._instantiationService.createInstance(Eo,`submenu`,!1,t,{onHide:()=>{},onSelect:e=>{e.run();let t=this._currentSubmenuElement?.item;this._hideSubmenu(),t&&this._delegate.onSelect(t),this.hide()}},void 0,void 0));this._submenuContainer.appendChild(r.domNode),this._currentSubmenuWidget=r,r.clearFocus(),c=r.computeListHeight(),r.layout(c);let i=r.computeMaxWidth(0);l=Math.max(l,i),r.layout(c,l),r.domNode.style.width=`${l}px`,this._submenuDisposables.add(z(r.domNode,`keydown`,e=>{if(e.key===`ArrowLeft`||e.key===`Escape`)ni.stop(e,!0),this._hideSubmenu(),this._list.domFocus();else if(e.key===`Enter`){ni.stop(e,!0);let t=r.getFocusedElement();if(t?.item){t.item.run();let e=this._currentSubmenuElement?.item;this._hideSubmenu(),e&&this._delegate.onSelect(e),this.hide()}}else e.key===`ArrowDown`?(ni.stop(e,!0),r.focusNext()):e.key===`ArrowUp`&&(ni.stop(e,!0),r.focusPrevious())}))}let u=s.innerWidth-a.right,d=o.left,f=l+10;u>=f||u>=d?this._submenuContainer.style.left=`${o.right-o.left+4}px`:this._submenuContainer.style.left=`${-f-4}px`;let p=n?n.offsetHeight:0,m=c+p,ee=s.innerHeight,te=a.height,ne=a.top-o.top+(te-m)/2,g=o.top+ne+m;g>ee&&(ne-=g-ee+8),o.top+ne<0&&(ne=-o.top),this._submenuContainer.style.top=`${ne}px`}_hideSubmenu(){this._cancelSubmenuHide(),this._cancelSubmenuShow(),this._submenuDisposables.clear(),this._currentSubmenuWidget=void 0,this._currentSubmenuElement=void 0,this._clearSubmenuContainer(),this._submenuContainer.style.display=`none`}_clearSubmenuContainer(){this._submenuContainer.contains(Jr())&&this._list.domFocus(),rr(this._submenuContainer)}_scheduleSubmenuHide(){this._cancelSubmenuHide(),this._submenuHideTimeout=setTimeout(()=>{this._hideSubmenu()},300)}_cancelSubmenuHide(){this._submenuHideTimeout!==void 0&&(clearTimeout(this._submenuHideTimeout),this._submenuHideTimeout=void 0)}_scheduleSubmenuShow(e,t){this._cancelSubmenuShow(),this._submenuShowTimeout=setTimeout(()=>{this._submenuShowTimeout=void 0;let n=typeof t==`number`?this._getRowElement(t):null;n&&this._showSubmenuForElement(e,n)},500)}_cancelSubmenuShow(){this._submenuShowTimeout!==void 0&&(clearTimeout(this._submenuShowTimeout),this._submenuShowTimeout=void 0)}async onListHover(e){let t=e.element;if(t&&t.item&&this.focusCondition(t)){if(ot(e.browserEvent.target)&&e.browserEvent.target.closest(`.action-list-item-toolbar`)!==null){t.submenuActions?.length||this._cancelSubmenuShow(),this._list.setFocus([]);return}let n=!!(t.submenuActions?.length||t.hover?.content);if(n&&(this._suppressHover=!0),this._list.setFocus(typeof e.index==`number`?[e.index]:[]),n&&(this._suppressHover=!1),n){this._currentSubmenuElement===t?(this._cancelSubmenuHide(),this._cancelSubmenuShow()):(this._hideSubmenu(),this._scheduleSubmenuShow(t,e.index));return}if(this._currentSubmenuElement===t?this._cancelSubmenuHide():(this._cancelSubmenuShow(),this._hideSubmenu()),this._delegate.onHover&&!t.disabled&&t.kind===`action`&&this._currentSubmenuElement!==t){let n=await this._delegate.onHover(t.item,this.cts.token),r=n?n.canPreview:void 0;r!==t.canPreview&&(t.canPreview=r,typeof e.index==`number`&&(this._list.splice(e.index,1,[t]),this._list.setFocus([e.index])))}}else t&&t.hover?.content&&typeof e.index==`number`&&(this._currentSubmenuElement===t?(this._cancelSubmenuHide(),this._cancelSubmenuShow()):(this._hideSubmenu(),this._scheduleSubmenuShow(t,e.index)))}onListClick(e){e.element&&this.focusCondition(e.element)&&this._list.setFocus([])}};Fo=Eo=wo([To(6,sa),To(7,se),To(8,Ue)],Fo);var Io=class extends B{get domNode(){return this._widget.domNode}get filterContainer(){return this._widget.filterContainer}get footerContainer(){return this._widget.footerContainer}get headerContainer(){return this._widget.headerContainer}get filterInput(){return this._widget.filterInput}get anchorPosition(){if(this._showAbove!==void 0)return+!!this._showAbove}constructor(e,t,n,r,i,a,o,s,c,l){super(),this._contextViewService=s,this._layoutService=c,this._lastMinWidth=0,this._hasLaidOut=!1,this._anchor=o,this._widget=this._register(l.createInstance(Fo,e,t,n,r,i,a)),this._register(this._widget.onDidRequestLayout(()=>{this._hasLaidOut&&(this.layout(this._lastMinWidth),this._contextViewService.layout())}))}focus(){this._widget.focus()}hide(e){this._widget.hide(e),this._contextViewService.hideContextView()}clearFilter(){return this._widget.clearFilter()}focusPrevious(){this._widget.focusPrevious()}focusNext(){this._widget.focusNext()}collapseFocusedSection(){this._widget.collapseFocusedSection()}expandFocusedSection(){this._widget.expandFocusedSection()}toggleFocusedSection(){return this._widget.toggleFocusedSection()}acceptSelected(e){this._widget.acceptSelected(e)}hasDynamicHeight(){return this._widget.hasDynamicHeight}computeActionWidgetVerticalChromeHeight(){let e=this.domNode.parentElement?.closest(`.action-widget`);if(!e)return 0;let t=h(e).getComputedStyle(e),n=e=>Number.parseFloat(e)||0;return n(t.paddingTop)+n(t.paddingBottom)+n(t.borderTopWidth)+n(t.borderBottomWidth)}computeHeight(){let e=this._widget.computeListHeight(),t=this._widget.filterContainer?36:0,n=this._widget.footerContainer?32:0,r=this._widget.headerContainer?this._widget.headerContainer.offsetHeight||36:0,i=t+n+r,a=h(this.domNode),o;if(this.hasDynamicHeight()){let e=a.innerHeight,t=At(this._anchor),n=t.top-a.pageYOffset,r=e-n-t.height-30,s=n;if(this._showAbove===void 0){let e=i+this._widget.computeFullHeight();this._showAbove=e>r&&s>r}o=Math.max(0,(this._showAbove?s:r)-this.computeActionWidgetVerticalChromeHeight())}else{let e=this._layoutService.getContainer(a).clientHeight,t=this.domNode.getBoundingClientRect().top;o=t>0?e-t-10:e*.7}let s=Math.floor(a.innerHeight*.6),c=this._widget.lineHeight,l=Math.min(Math.max(o,c*3+i),s);return Math.min(e+i,l)-i}layout(e){this._hasLaidOut=!0,this._lastMinWidth=e;let t=this.computeHeight();this._widget.layout(t);let n=this._widget.computeMaxWidth(e);return this._cachedMaxWidth=n,this._widget.layout(t,this._cachedMaxWidth),this._cachedMaxWidth}};Io=wo([To(7,on),To(8,Pn),To(9,Ue)],Io);function Lo(e){return e.replace(/\r\n|\r|\n/g,` `)}var Ro=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},zo=function(e,t){return function(n,r){t(n,r,e)}};m(`actionBar.toggledBackground`,Tt,L(1713,`Background color for toggled action items in action bar.`));var Bo={Visible:new D(`codeActionMenuVisible`,!1,L(1714,`Whether the action widget list is visible`)),FilterFocused:new D(`codeActionMenuFilterFocused`,!1,L(1715,`Whether the action widget filter input is focused`))},Vo=cn(`actionWidgetService`),Ho=class extends B{get isVisible(){return Bo.Visible.getValue(this._contextKeyService)||!1}constructor(e,t,n){super(),this._contextViewService=e,this._contextKeyService=t,this._instantiationService=n,this._list=this._register(new gi)}show(e,t,n,r,i,a,o,s,c){let l=Bo.Visible.bindTo(this._contextKeyService),u=this._instantiationService.createInstance(Io,e,t,n,r,s,c,i);this._contextViewService.showContextView({getAnchor:()=>i,render:e=>(l.set(!0),this._renderWidget(e,u,o??[])),onHide:e=>{l.reset(),this._onWidgetClosed(e)},get anchorPosition(){return u.anchorPosition}},a,!1)}acceptSelected(e){this._list.value?.acceptSelected(e)}focusPrevious(){this._list?.value?.focusPrevious()}focusNext(){this._list?.value?.focusNext()}collapseSection(){this._list?.value?.collapseFocusedSection()}expandSection(){this._list?.value?.expandFocusedSection()}toggleSection(){return this._list?.value?.toggleFocusedSection()??!1}clearFilter(){return this._list?.value?.clearFilter()??!1}hide(e){this._list.value?.hide(e),this._list.clear()}_renderWidget(e,t,n){let r=document.createElement(`div`);if(r.classList.add(`action-widget`),e.appendChild(r),this._list.value=t,this._list.value)this._list.value.headerContainer&&r.appendChild(this._list.value.headerContainer),this._list.value.filterContainer&&r.appendChild(this._list.value.filterContainer),r.appendChild(this._list.value.domNode),this._list.value.footerContainer&&r.appendChild(this._list.value.footerContainer);else throw Error(`List has no value`);let i=new P,a=this._list.value.headerContainer;a&&i.add(si(a,e=>e.preventDefault()));let o=document.createElement(`div`),s=e.appendChild(o);s.classList.add(`context-view-block`),i.add(si(s,e=>e.stopPropagation()));let c=document.createElement(`div`),l=e.appendChild(c);l.classList.add(`context-view-pointerBlock`),i.add(z(l,ki.POINTER_MOVE,()=>l.remove())),i.add(si(l,()=>l.remove()));let u=0;if(n.length){let e=this._createActionBar(`.action-widget-action-bar`,n);e&&(r.appendChild(e.getContainer().parentElement),i.add(e),u=e.getContainer().offsetWidth)}let d=this._list.value?.layout(u);r.style.width=`${d}px`,this._list.value?.focus();let f=Bo.FilterFocused.bindTo(this._contextKeyService);if(i.add({dispose:()=>f.reset()}),this._list.value?.filterInput){let e=this._list.value.filterInput;i.add(z(e,`focus`,()=>f.set(!0))),i.add(z(e,`blur`,()=>f.set(!1)))}let p=i.add(We(e));return i.add(p.onDidBlur(()=>{let e=Jr();e?.closest(`.action-widget-hover`)||e?.closest(`.action-list-submenu-panel`)||this.hide(!0)})),i}_createActionBar(t,n){if(!n.length)return;let r=new e(F(t));return r.push(n,{icon:!1,label:!0}),r}_onWidgetClosed(e){this._list.value?.hide(e)}};Ho=Ro([zo(0,on),zo(1,w),zo(2,Ue)],Ho),ct(Vo,Ho,1);var Uo=1100;zr(class extends ga{constructor(){super({id:`hideCodeActionWidget`,title:S(1716,`Hide action widget`),precondition:Bo.Visible,keybinding:{weight:Uo,primary:9,secondary:[1033]}})}run(e){e.get(Vo).hide(!0)}}),zr(class extends ga{constructor(){super({id:`clearFilterCodeActionWidget`,title:S(1717,`Clear action widget filter`),precondition:C.and(Bo.Visible,Bo.FilterFocused),keybinding:{weight:1101,primary:9}})}run(e){let t=e.get(Vo);t instanceof Ho&&(t.clearFilter()||t.hide(!0))}}),zr(class extends ga{constructor(){super({id:`selectPrevCodeAction`,title:S(1718,`Select previous action`),precondition:Bo.Visible,keybinding:{weight:Uo,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})}run(e){let t=e.get(Vo);t instanceof Ho&&t.focusPrevious()}}),zr(class extends ga{constructor(){super({id:`selectNextCodeAction`,title:S(1719,`Select next action`),precondition:Bo.Visible,keybinding:{weight:Uo,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})}run(e){let t=e.get(Vo);t instanceof Ho&&t.focusNext()}}),zr(class extends ga{constructor(){super({id:`collapseSectionCodeAction`,title:S(1720,`Collapse section`),precondition:C.and(Bo.Visible,Bo.FilterFocused.negate()),keybinding:{weight:Uo,primary:15}})}run(e){let t=e.get(Vo);t instanceof Ho&&t.collapseSection()}}),zr(class extends ga{constructor(){super({id:`expandSectionCodeAction`,title:S(1721,`Expand section`),precondition:C.and(Bo.Visible,Bo.FilterFocused.negate()),keybinding:{weight:Uo,primary:17}})}run(e){let t=e.get(Vo);t instanceof Ho&&t.expandSection()}}),zr(class extends ga{constructor(){super({id:`toggleSectionCodeAction`,title:S(1722,`Toggle section`),precondition:C.and(Bo.Visible,Bo.FilterFocused.negate()),keybinding:{weight:Uo,primary:10}})}run(e){let t=e.get(Vo);t instanceof Ho&&(t.toggleSection()||t.acceptSelected())}}),zr(class extends ga{constructor(){super({id:Do,title:S(1723,`Accept selected action`),precondition:Bo.Visible,keybinding:{weight:Uo,primary:3,secondary:[2137]}})}run(e){let t=e.get(Vo);t instanceof Ho&&t.acceptSelected()}}),zr(class extends ga{constructor(){super({id:Oo,title:S(1724,`Preview selected action`),precondition:Bo.Visible,keybinding:{weight:Uo,primary:2051}})}run(e){let t=e.get(Vo);t instanceof Ho&&t.acceptSelected(!0)}});var Wo=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Go=function(e,t){return function(n,r){t(n,r,e)}},Ko,qo=class extends B{static{Ko=this}static{this.baseId=`editor.widget.postEditWidget`}constructor(e,t,n,r,i,a,o,s,c,l,u){super(),this.typeId=e,this.editor=t,this.showCommand=r,this.range=i,this.edits=a,this.onSelectNewEdit=o,this.additionalActions=s,this._keybindingService=l,this._actionWidgetService=u,this.allowEditorOverflow=!0,this.suppressMouseDown=!0,this.create(),this.visibleContext=n.bindTo(c),this.visibleContext.set(!0),this._register(yn(()=>this.visibleContext.reset())),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this),this._register(yn((()=>this.editor.removeContentWidget(this)))),this._register(this.editor.onDidChangeCursorPosition(e=>{this.dispose()})),this._register(zi.runAndSubscribe(l.onDidUpdateKeybindings,()=>{this._updateButtonTitle()}))}_updateButtonTitle(){this.button.element.title=this._keybindingService.appendKeybinding(this.showCommand.label,this.showCommand.id)}create(){this.domNode=F(`.post-edit-widget`),this.button=this._register(new lr(this.domNode,{supportIcons:!0})),this.button.label=`$(insert)`,this._register(z(this.domNode,ki.CLICK,()=>this.showSelector()))}getId(){return Ko.baseId+`.`+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:this.range.getEndPosition(),preference:[2]}}showSelector(){let e=ea(this.button.element),t={x:e.left+e.width,y:e.top+e.height};this._actionWidgetService.show(`postEditWidget`,!1,this.edits.allEdits.map((e,t)=>({kind:`action`,item:e,label:e.title,disabled:!1,canPreview:!1,group:{title:``,icon:O.fromId(t===this.edits.activeEditIndex?G.check.id:G.blank.id)}})),{onHide:()=>{this.editor.focus()},onSelect:e=>{this._actionWidgetService.hide(!1);let t=this.edits.allEdits.findIndex(t=>t===e);if(t!==this.edits.activeEditIndex)return this.onSelectNewEdit(t)}},t,this.editor.getDomNode()??void 0,this.additionalActions)}};qo=Ko=Wo([Go(8,w),Go(9,sa),Go(10,Vo)],qo);var Jo=class extends B{constructor(e,t,n,r,i,a,o,s){super(),this._id=e,this._editor=t,this._visibleContext=n,this._showCommand=r,this._getAdditionalActions=i,this._instantiationService=a,this._bulkEditService=o,this._notificationService=s,this._currentWidget=this._register(new gi),this._register(zi.any(t.onDidChangeModel,t.onDidChangeModelContent)(()=>this.clear()))}async applyEditAndShowIfNeeded(e,t,n,r,i){if(!e.length||!this._editor.hasModel())return;let a=this._editor.getModel(),o=t.allEdits.at(t.activeEditIndex);if(!o)return;let s=async a=>{let o=this._editor.getModel();o&&(await o.undo(),this.applyEditAndShowIfNeeded(e,{activeEditIndex:a,allEdits:t.allEdits},n,r,i))},c=(r,i)=>{Zn(r)||(this._notificationService.error(i),n&&this.show(e[0],t,s))},l=new oi(this._editor,3,void 0,i),u;try{u=await Fe(r(o,l.token),l.token)}catch(e){return c(e,L(976,`Error resolving edit '{0}':
3
+ {1}`,o.title,Co(e)))}finally{l.dispose()}if(i.isCancellationRequested)return;let d=vo(a.uri,e,u),f=e[0],p=a.deltaDecorations([],[{range:f,options:{description:`paste-line-suffix`,stickiness:0}}]);this._editor.focus();let m,h;try{m=await this._bulkEditService.apply(d,{editor:this._editor,token:i}),h=a.getDecorationRange(p[0])}catch(e){return c(e,L(977,`Error applying edit '{0}':
4
+ {1}`,o.title,Co(e)))}finally{a.deltaDecorations(p,[])}i.isCancellationRequested||n&&m.isApplied&&t.allEdits.length>1&&this.show(h??f,t,s)}show(e,t,n){this.clear(),this._editor.hasModel()&&(this._currentWidget.value=this._instantiationService.createInstance(qo,this._id,this._editor,this._visibleContext,this._showCommand,e,t,n,this._getAdditionalActions()))}clear(){this._currentWidget.clear()}tryShowSelector(){this._currentWidget.value?.showSelector()}};Jo=Wo([Go(5,Ue),Go(6,ie),Go(7,de)],Jo);var Yo=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Xo=function(e,t){return function(n,r){t(n,r,e)}},Zo,Qo=`editor.changePasteType`,$o=`editor.pasteAs.preferences`,es=new D(`pasteWidgetVisible`,!1,L(956,`Whether the paste widget is showing`)),ts=`application/vnd.code.copymetadata`,ns=class extends B{static{Zo=this}static{this.ID=`editor.contrib.copyPasteActionController`}static get(e){return e.getContribution(Zo.ID)}constructor(e,t,n,r,i,a,o,s,c,l){super(),this._logService=n,this._bulkEditService=r,this._clipboardService=i,this._commandService=a,this._configService=o,this._languageFeaturesService=s,this._quickInputService=c,this._progressService=l,this._editor=e,this._register(e.onWillCopy(e=>this.handleCopy(e))),this._register(e.onWillCut(e=>this.handleCopy(e))),this._register(e.onWillPaste(e=>this.handlePaste(e))),this._pasteProgressManager=this._register(new Ha(`pasteIntoEditor`,e,t)),this._postPasteWidgetManager=this._register(t.createInstance(Jo,`pasteIntoEditor`,e,es,{id:Qo,label:L(957,`Show paste options...`)},()=>Zo._configureDefaultAction?[Zo._configureDefaultAction]:[]))}changePasteType(){this._postPasteWidgetManager.tryShowSelector()}async pasteAs(e){this._logService.trace(`CopyPasteController.pasteAs`),this._editor.focus();try{this._logService.trace(`Before calling editor.action.clipboardPasteAction`),this._pasteAsActionContext={preferred:e},await this._commandService.executeCommand(`editor.action.clipboardPasteAction`)}finally{this._pasteAsActionContext=void 0}}clearWidgets(){this._postPasteWidgetManager.clear()}isPasteAsEnabled(){return this._editor.getOption(97).enabled}async finishedPaste(){await this._currentPasteOperation}handleCopy(e){if(this._logService.trace(`CopyPasteController#handleCopy`),!this._editor.hasTextFocus()||(this._clipboardService.clearInternalState?.(),!this.isPasteAsEnabled()))return;let t=this._editor.getModel(),n=this._editor._getViewModel(),r=this._editor.getSelections();if(!t||!n||!r?.length)return;let i={multicursorText:e.dataToCopy.multicursorText??null,pasteOnNewLine:e.dataToCopy.isFromEmptySelection,mode:null},a=this._languageFeaturesService.documentPasteEditProvider.ordered(t).filter(e=>!!e.prepareDocumentPaste);if(!a.length){this.setCopyMetadata(e.clipboardData,{defaultPastePayload:i});return}let o=new ar,s=a.flatMap(e=>e.copyMimeTypes??[]),c=yr();this.setCopyMetadata(e.clipboardData,{id:c,providerCopyMimeTypes:s,defaultPastePayload:i});let l=a.map(n=>({providerMimeTypes:n.copyMimeTypes,operation:it(r=>n.prepareDocumentPaste(t,e.dataToCopy.sourceRanges,o,r).catch(e=>{console.error(e)}))}));Zo._currentCopyOperation?.operations.forEach(e=>e.operation.cancel()),Zo._currentCopyOperation={handle:c,operations:l}}async handlePaste(e){if(this._logService.trace(`CopyPasteController#handlePaste for id : `,e.metadata?.id),!this._editor.hasTextFocus())return;let t=e.toExternalVSDataTransfer();if(!t)return;t.delete(ts),Ka.get(this._editor)?.closeMessage(),this._currentPasteOperation?.cancel(),this._currentPasteOperation=void 0;let n=this._editor.getModel(),r=this._editor.getSelections();if(!r?.length||!n||this._editor.getOption(104)||!this.isPasteAsEnabled()&&!this._pasteAsActionContext)return;let i=this.fetchCopyMetadata(e);this._logService.trace(`CopyPasteController#handlePaste with metadata : `,i?.id,` and text.length : `,e.clipboardData.getData(`text/plain`).length);let a=Array.from(e.clipboardData.files).map(e=>e.type),o=[...e.clipboardData.types,...a,...i?.providerCopyMimeTypes??[],R.uriList],s=this._languageFeaturesService.documentPasteEditProvider.ordered(n).filter(e=>{let t=this._pasteAsActionContext?.preferred;return t&&!this.providerMatchesPreference(e,t)?!1:e.pasteMimeTypes?.some(e=>Xr(e,o))});if(!s.length){this._pasteAsActionContext?.preferred&&(this.showPasteAsNoEditMessage(r,this._pasteAsActionContext.preferred),e.setHandled());return}e.setHandled(),this._pasteAsActionContext?this.showPasteAsPick(this._pasteAsActionContext.preferred,s,r,t,i):this.doPasteInline(s,r,t,i,e.browserEvent)}showPasteAsNoEditMessage(e,t){let n=`only`in t?t.only.value:`preferences`in t?t.preferences.length?t.preferences.map(e=>e.value).join(`, `):L(958,`empty`):t.providerId;Ka.get(this._editor)?.showMessage(L(959,`No paste edits for '{0}' found`,n),e[0].getStartPosition())}doPasteInline(e,t,n,r,i){this._logService.trace(`CopyPasteController#doPasteInline`);let a=this._editor;if(!a.hasModel())return;let o=new oi(a,3,void 0),s=it(async a=>{let c=this._editor;if(!c.hasModel())return;let l=c.getModel(),u=new P,d=u.add(new Ct(a));u.add(o.token.onCancellationRequested(()=>d.cancel()));let f=d.token;try{if(await this.mergeInDataFromCopy(e,n,r,f),f.isCancellationRequested)return;let a=e.filter(e=>this.isSupportedPasteProvider(e,n));if(!a.length||a.length===1&&a[0]instanceof Za)return this.applyDefaultPasteHandler(n,r,f,i);let o={triggerKind:Yr.Automatic},s=await this.getPasteEdits(a,n,l,t,o,f);if(u.add(s),f.isCancellationRequested)return;if(s.edits.length===1&&s.edits[0].provider instanceof Za)return this.applyDefaultPasteHandler(n,r,f,i);if(s.edits.length){let e=c.getOption(97).showPasteSelector===`afterPaste`;return this._postPasteWidgetManager.applyEditAndShowIfNeeded(t,{activeEditIndex:this.getInitialActiveEditIndex(l,s.edits),allEdits:s.edits},e,async(e,n)=>{if(!e.provider.resolveDocumentPasteEdit)return e;let r=e.provider.resolveDocumentPasteEdit(e,n),i=new oa,a=await this._pasteProgressManager.showWhile(t[0].getEndPosition(),L(960,`Resolving paste edit for '{0}'. Click to cancel`,e.title),ge(Promise.race([i.p,r]),n),{cancel:()=>i.cancel()},0);return a&&(e.insertText=a.insertText,e.additionalEdit=a.additionalEdit),e},f)}await this.applyDefaultPasteHandler(n,r,f,i)}finally{u.dispose(),this._currentPasteOperation===s&&(this._currentPasteOperation=void 0)}});this._pasteProgressManager.showWhile(t[0].getEndPosition(),L(961,`Running paste handlers. Click to cancel and do basic paste`),s,{cancel:async()=>{s.cancel(),!o.token.isCancellationRequested&&await this.applyDefaultPasteHandler(n,r,o.token,i)}}).finally(()=>{o.dispose()}),this._currentPasteOperation=s}showPasteAsPick(e,t,n,r,i){this._logService.trace(`CopyPasteController#showPasteAsPick`);let a=it(async o=>{let s=this._editor;if(!s.hasModel())return;let c=s.getModel(),l=new P,u=l.add(new oi(s,3,void 0,o));try{if(await this.mergeInDataFromCopy(t,r,i,u.token),u.token.isCancellationRequested)return;let a=t.filter(t=>this.isSupportedPasteProvider(t,r,e));e&&(a=a.filter(t=>this.providerMatchesPreference(t,e)));let o={triggerKind:Yr.PasteAs,only:e&&`only`in e?e.only:void 0},s=l.add(await this.getPasteEdits(a,r,c,n,o,u.token));if(u.token.isCancellationRequested)return;if(e&&(s={edits:s.edits.filter(t=>`only`in e?e.only.contains(t.kind):`preferences`in e?e.preferences.some(e=>e.contains(t.kind)):e.providerId===t.provider.id),dispose:s.dispose}),!s.edits.length){e&&this.showPasteAsNoEditMessage(n,e);return}let d;if(e)d=s.edits.at(0);else{let e={id:`editor.pasteAs.default`,label:L(962,`Configure default paste action`),edit:void 0},t=await this._quickInputService.pick([...s.edits.map(e=>({label:e.title,description:e.kind?.value,edit:e})),...Zo._configureDefaultAction?[ze({type:`separator`}),{label:Zo._configureDefaultAction.label,edit:void 0}]:[]],{placeHolder:L(963,`Select Paste Action`)});if(t===e){Zo._configureDefaultAction?.run();return}d=t?.edit}if(!d)return;let f=vo(c.uri,n,d);await this._bulkEditService.apply(f,{editor:this._editor})}finally{l.dispose(),this._currentPasteOperation===a&&(this._currentPasteOperation=void 0)}});this._progressService.withProgress({location:10,title:L(964,`Running paste handlers`)},()=>a)}setCopyMetadata(e,t){this._logService.trace(`CopyPasteController#setCopyMetadata new id : `,t.id),e.setData(ts,JSON.stringify(t))}fetchCopyMetadata(e){this._logService.trace(`CopyPasteController#fetchCopyMetadata`);let t=e.clipboardData.getData(ts);if(t)try{return JSON.parse(t)}catch{return}if(e.metadata)return{defaultPastePayload:{mode:e.metadata.mode,multicursorText:e.metadata.multicursorText??null,pasteOnNewLine:!!e.metadata.isFromEmptySelection}}}async mergeInDataFromCopy(e,t,n,r){if(this._logService.trace(`CopyPasteController#mergeInDataFromCopy with metadata : `,n?.id),n?.id&&Zo._currentCopyOperation?.handle===n.id){let n=Zo._currentCopyOperation.operations.filter(t=>e.some(e=>e.pasteMimeTypes.some(e=>Xr(e,t.providerMimeTypes)))).map(e=>e.operation),i=await Promise.all(n);if(r.isCancellationRequested)return;for(let e of i.reverse())if(e)for(let[n,r]of e)t.replace(n,r)}if(!t.has(R.uriList)){let e=await this._clipboardService.readResources();if(r.isCancellationRequested)return;e.length&&t.append(R.uriList,_i(Wn.create(e)))}}async getPasteEdits(e,t,n,r,i,a){let o=new P;return{edits:yo(ui(await ge(Promise.all(e.map(async e=>{try{let s=await e.provideDocumentPasteEdits?.(n,r,t,i,a);return s&&o.add(s),s?.edits?.map(t=>({...t,provider:e}))}catch(e){Zn(e)||console.error(e);return}})),a)??[]).flat().filter(e=>!i.only||i.only.contains(e.kind))),dispose:()=>o.dispose()}}async applyDefaultPasteHandler(e,t,n,r){let i=await(e.get(R.text)??e.get(`text`))?.asString()??``;if(n.isCancellationRequested)return;let a={clipboardEvent:r,text:i,pasteOnNewLine:t?.defaultPastePayload.pasteOnNewLine??!1,multicursorText:t?.defaultPastePayload.multicursorText??null,mode:null};this._logService.trace(`CopyPasteController#applyDefaultPasteHandler for id : `,t?.id),this._editor.trigger(`keyboard`,`paste`,a)}isSupportedPasteProvider(e,t,n){return e.pasteMimeTypes?.some(e=>t.matches(e))?!n||this.providerMatchesPreference(e,n):!1}providerMatchesPreference(e,t){return`only`in t?e.providedPasteEditKinds.some(e=>t.only.contains(e)):`preferences`in t?e.providedPasteEditKinds.some(e=>t.preferences.some(t=>t.contains(e))):e.id===t.providerId}getInitialActiveEditIndex(e,t){let n=this._configService.getValue($o,{resource:e.uri});for(let e of Array.isArray(n)?n:[]){let n=new La(e),r=t.findIndex(e=>n.contains(e.kind));if(r>=0)return r}return 0}};ns=Zo=Yo([Xo(1,Ue),Xo(2,Mi),Xo(3,ie),Xo(4,Vi),Xo(5,tt),Xo(6,Ie),Xo(7,j),Xo(8,or),Xo(9,Ca)],ns);var rs=`9_cutcopypaste`,is=aa||document.queryCommandSupported(`cut`),as=aa||document.queryCommandSupported(`copy`),os=navigator.clipboard===void 0||ln?document.queryCommandSupported(`paste`):!0;function ss(e){return e.register(),e}var cs=is?ss(new Ve({id:`editor.action.clipboardCutAction`,precondition:void 0,kbOpts:aa?{primary:2102,win:{primary:2102,secondary:[1044]},weight:100}:void 0,menuOpts:[{menuId:g.MenubarEditMenu,group:`2_ccp`,title:L(849,`Cu&&t`),order:1},{menuId:g.EditorContext,group:rs,title:L(850,`Cut`),when:x.writable,order:1},{menuId:g.CommandPalette,group:``,title:L(851,`Cut`),order:1},{menuId:g.SimpleEditorContext,group:rs,title:L(852,`Cut`),when:x.writable,order:1}]})):void 0,ls=as?ss(new Ve({id:`editor.action.clipboardCopyAction`,precondition:void 0,kbOpts:aa?{primary:2081,win:{primary:2081,secondary:[2067]},weight:100}:void 0,menuOpts:[{menuId:g.MenubarEditMenu,group:`2_ccp`,title:L(853,`&&Copy`),order:2},{menuId:g.EditorContext,group:rs,title:L(854,`Copy`),order:2},{menuId:g.CommandPalette,group:``,title:L(855,`Copy`),order:1},{menuId:g.SimpleEditorContext,group:rs,title:L(856,`Copy`),order:2}]})):void 0;Bt.appendMenuItem(g.MenubarEditMenu,{submenu:g.MenubarCopy,title:S(861,`Copy As`),group:`2_ccp`,order:3}),Bt.appendMenuItem(g.EditorContext,{submenu:g.EditorContextCopy,title:S(862,`Copy As`),group:rs,order:3}),Bt.appendMenuItem(g.EditorContext,{submenu:g.EditorContextShare,title:S(863,`Share`),group:`11_share`,order:-1,when:C.and(C.notEquals(`resourceScheme`,`output`),x.editorTextFocus)}),Bt.appendMenuItem(g.ExplorerContext,{submenu:g.ExplorerContextShare,title:S(864,`Share`),group:`11_share`,order:-1});var us=os?ss(new Ve({id:`editor.action.clipboardPasteAction`,precondition:void 0,kbOpts:aa?{primary:2100,win:{primary:2100,secondary:[1043]},linux:{primary:2100,secondary:[1043]},weight:100}:void 0,menuOpts:[{menuId:g.MenubarEditMenu,group:`2_ccp`,title:L(857,`&&Paste`),order:4},{menuId:g.EditorContext,group:rs,title:L(858,`Paste`),when:x.writable,order:4},{menuId:g.CommandPalette,group:``,title:L(859,`Paste`),order:1},{menuId:g.SimpleEditorContext,group:rs,title:L(860,`Paste`),when:x.writable,order:4}]})):void 0,ds=class extends b{constructor(){super({id:`editor.action.clipboardCopyWithSyntaxHighlightingAction`,label:S(865,`Copy with Syntax Highlighting`),precondition:void 0,kbOpts:{kbExpr:x.textInputFocus,primary:0,weight:100}})}run(e,t){let n=e.get(Mi),r=e.get(Vi);n.trace(`ExecCommandCopyWithSyntaxHighlightingAction#run`),t.hasModel()&&(!t.getOption(45)&&t.getSelection().isEmpty()||(zn.forceCopyWithSyntaxHighlighting=!0,t.focus(),n.trace(`ExecCommandCopyWithSyntaxHighlightingAction (before execCommand copy)`),fs(t,r),n.trace(`ExecCommandCopyWithSyntaxHighlightingAction (after execCommand copy)`),zn.forceCopyWithSyntaxHighlighting=!1))}};function fs(e,t){if(zn.electronBugWorkaroundCopyEventHasFired=!1,e.getContainerDomNode().ownerDocument.execCommand(`copy`),aa&&zn.electronBugWorkaroundCopyEventHasFired===!1){let{dataToCopy:n}=Ji(e._getViewModel(),void 0,ln);t.writeText(n.text)}}function ps(e,t){e&&(e.addImplementation(1e4,`code-editor`,(e,n)=>{let r=e.get(Mi),i=e.get(Vi);r.trace(`registerExecCommandImpl (addImplementation code-editor for : `,t,`)`);let a=e.get(Ei).getFocusedCodeEditor();if(a&&a.hasTextFocus()&&a.hasModel()){let e=a.getOption(45),n=a.getSelection();return n&&n.isEmpty()&&!e||(a.getOption(170)&&t===`cut`?(ms(a),r.trace(`registerExecCommandImpl (before execCommand copy)`),fs(a,i),a.trigger(void 0,`cut`,void 0),r.trace(`registerExecCommandImpl (after execCommand copy)`)):(ms(a),r.trace(`registerExecCommandImpl (before execCommand `+t+`)`),t===`copy`?fs(a,i):a.getContainerDomNode().ownerDocument.execCommand(t),r.trace(`registerExecCommandImpl (after execCommand `+t+`)`))),!0}return!1}),e.addImplementation(0,`generic-dom`,(e,n)=>{let r=e.get(Mi);return r.trace(`registerExecCommandImpl (addImplementation generic-dom for : `,t,`)`),r.trace(`registerExecCommandImpl (before execCommand `+t+`)`),mi().execCommand(t),r.trace(`registerExecCommandImpl (after execCommand `+t+`)`),!0}))}function ms(e){if(e.getOption(170)){let t=ne.get(e.getId());t&&t.handleWillCopy()}}ps(cs,`cut`),ps(ls,`copy`),us&&(us.addImplementation(1e4,`code-editor`,(e,t)=>{let n=e.get(Mi);n.trace(`registerExecCommandImpl (addImplementation code-editor for : paste)`);let r=e.get(Ei),i=e.get(Vi),a=r.getFocusedCodeEditor();if(a&&a.hasModel()&&a.hasTextFocus()){if(a.getOption(170)){let e=ne.get(a.getId());e&&e.handleWillPaste()}n.trace(`registerExecCommandImpl (before triggerPaste)`);let e=i.triggerPaste(_r().vscodeWindowId);return e?(n.trace(`registerExecCommandImpl (triggerPaste defined)`),e.then(async()=>(n.trace(`registerExecCommandImpl (after triggerPaste)`),ns.get(a)?.finishedPaste()??Promise.resolve()))):(n.trace(`registerExecCommandImpl (triggerPaste undefined)`),Ft?(n.trace(`registerExecCommandImpl (Paste handling on web)`),(async()=>{let e=await i.readText();if(e!==``){let t=Hr.INSTANCE.get(e),r=!1,i=null,o=null;t&&(r=a.getOption(45)&&!!t.isFromEmptySelection,i=t.multicursorText===void 0?null:t.multicursorText,o=t.mode),n.trace(`registerExecCommandImpl (clipboardText.length : `,e.length,` id : `,t?.id,`)`),a.trigger(`keyboard`,`paste`,{text:e,pasteOnNewLine:r,multicursorText:i,mode:o})}})()):!0)}return!1}),us.addImplementation(0,`generic-dom`,(e,t)=>(e.get(Mi).trace(`registerExecCommandImpl (addImplementation generic-dom for : paste)`),e.get(Vi).triggerPaste(_r().vscodeWindowId)??!1))),as&&A(ds);var hs=class e{constructor(e,t,n){this.languageConfigurationService=n,this._selection=e,this._insertSpace=t,this._usedEndToken=null}static _haystackHasNeedleAtOffset(e,t,n){if(n<0)return!1;let r=t.length,i=e.length;if(n+r>i)return!1;for(let i=0;i<r;i++){let r=e.charCodeAt(n+i),a=t.charCodeAt(i);if(r!==a&&!(r>=65&&r<=90&&r+32===a)&&!(a>=65&&a<=90&&a+32===r))return!1}return!0}_createOperationsForBlockComment(t,n,r,i,a,o){let s=t.startLineNumber,c=t.startColumn,l=t.endLineNumber,u=t.endColumn,d=a.getLineContent(s),f=a.getLineContent(l),p=d.lastIndexOf(n,c-1+n.length),m=f.indexOf(r,u-1-r.length);if(p!==-1&&m!==-1)if(s===l)d.substring(p+n.length,m).indexOf(r)>=0&&(p=-1,m=-1);else{let e=d.substring(p+n.length),t=f.substring(0,m);(e.indexOf(r)>=0||t.indexOf(r)>=0)&&(p=-1,m=-1)}let h;p!==-1&&m!==-1?(i&&p+n.length<d.length&&d.charCodeAt(p+n.length)===32&&(n+=` `),i&&m>0&&f.charCodeAt(m-1)===32&&(r=` `+r,--m),h=e._createRemoveBlockCommentOperations(new _(s,p+n.length+1,l,m+1),n,r)):(h=e._createAddBlockCommentOperations(t,n,r,this._insertSpace),this._usedEndToken=h.length===1?r:null);for(let e of h)o.addTrackedEditOperation(e.range,e.text)}static _createRemoveBlockCommentOperations(e,t,n){let r=[];return _.isEmpty(e)?r.push(v.delete(new _(e.startLineNumber,e.startColumn-t.length,e.endLineNumber,e.endColumn+n.length))):(r.push(v.delete(new _(e.startLineNumber,e.startColumn-t.length,e.startLineNumber,e.startColumn))),r.push(v.delete(new _(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn+n.length)))),r}static _createAddBlockCommentOperations(e,t,n,r){let i=[];return _.isEmpty(e)?i.push(v.replace(new _(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),t+` `+n)):(i.push(v.insert(new T(e.startLineNumber,e.startColumn),t+(r?` `:``))),i.push(v.insert(new T(e.endLineNumber,e.endColumn),(r?` `:``)+n))),i}getEditOperations(e,t){let n=this._selection.startLineNumber,r=this._selection.startColumn;e.tokenization.tokenizeIfCheap(n);let i=e.getLanguageIdAtPosition(n,r),a=this.languageConfigurationService.getLanguageConfiguration(i).comments;!a||!a.blockCommentStartToken||!a.blockCommentEndToken||this._createOperationsForBlockComment(this._selection,a.blockCommentStartToken,a.blockCommentEndToken,this._insertSpace,e,t)}computeCursorState(e,t){let n=t.getInverseEditOperations();if(n.length===2){let e=n[0],t=n[1];return new y(e.range.endLineNumber,e.range.endColumn,t.range.startLineNumber,t.range.startColumn)}else{let e=n[0].range,t=this._usedEndToken?-this._usedEndToken.length-1:0;return new y(e.endLineNumber,e.endColumn+t,e.endLineNumber,e.endColumn+t)}}},gs=class e{constructor(e,t,n,r,i,a,o){this.languageConfigurationService=e,this._selection=t,this._indentSize=n,this._type=r,this._insertSpace=i,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=a,this._ignoreFirstLine=o||!1}static _gatherPreflightCommentStrings(e,t,n,r){e.tokenization.tokenizeIfCheap(t);let i=e.getLanguageIdAtPosition(t,1),a=r.getLanguageConfiguration(i).comments,o=a?a.lineCommentToken:null;if(!o)return null;let s=[];for(let e=0,r=n-t+1;e<r;e++)s[e]={ignore:!1,commentStr:o,commentStrOffset:0,commentStrLength:o.length};return s}static _analyzeLines(e,t,n,r,i,a,o,s,c){let l=!0,u=s.getLanguageConfiguration(c).comments?.lineCommentNoIndent??!1,d;d=e===0?!0:e!==1;for(let s=0,c=r.length;s<c;s++){let c=r[s],f=i+s;if(f===i&&o){c.ignore=!0;continue}let p=n.getLineContent(f),m=An(p);if(m===-1){c.ignore=a,c.commentStrOffset=u?0:p.length;continue}l=!1;let h=u?0:m;if(c.ignore=!1,c.commentStrOffset=h,d&&!hs._haystackHasNeedleAtOffset(p,c.commentStr,h)&&(e===0?d=!1:e===1||(c.ignore=!0)),d&&t){let e=m+c.commentStrLength;e<p.length&&p.charCodeAt(e)===32&&(c.commentStrLength+=1)}}if(e===0&&l){d=!1;for(let e=0,t=r.length;e<t;e++)r[e].ignore=!1}return{supported:!0,shouldRemoveComments:d,lines:r}}static _gatherPreflightData(t,n,r,i,a,o,s,c){let l=e._gatherPreflightCommentStrings(r,i,a,c),u=r.getLanguageIdAtPosition(i,1);return l===null?{supported:!1}:e._analyzeLines(t,n,r,l,i,o,s,c,u)}_executeLineComments(t,n,r,i){let a;r.shouldRemoveComments?a=e._createRemoveLineCommentsOperations(r.lines,i.startLineNumber):(e._normalizeInsertionPoint(t,r.lines,i.startLineNumber,this._indentSize),a=this._createAddLineCommentsOperations(r.lines,i.startLineNumber));let o=new T(i.positionLineNumber,i.positionColumn);for(let e=0,r=a.length;e<r;e++)n.addEditOperation(a[e].range,a[e].text),_.isEmpty(a[e].range)&&_.getStartPosition(a[e].range).equals(o)&&t.getLineContent(o.lineNumber).length+1===o.column&&(this._deltaColumn=(a[e].text||``).length);this._selectionId=n.trackSelection(i)}_attemptRemoveBlockComment(e,t,n,r){let i=t.startLineNumber,a=t.endLineNumber,o=r.length+Math.max(e.getLineFirstNonWhitespaceColumn(t.startLineNumber),t.startColumn),s=e.getLineContent(i).lastIndexOf(n,o-1),c=e.getLineContent(a).indexOf(r,t.endColumn-1-n.length);return s!==-1&&c===-1&&(c=e.getLineContent(i).indexOf(r,s+n.length),a=i),s===-1&&c!==-1&&(s=e.getLineContent(a).lastIndexOf(n,c),i=a),t.isEmpty()&&(s===-1||c===-1)&&(s=e.getLineContent(i).indexOf(n),s!==-1&&(c=e.getLineContent(i).indexOf(r,s+n.length))),s!==-1&&e.getLineContent(i).charCodeAt(s+n.length)===32&&(n+=` `),c!==-1&&e.getLineContent(a).charCodeAt(c-1)===32&&(r=` `+r,--c),s!==-1&&c!==-1?hs._createRemoveBlockCommentOperations(new _(i,s+n.length+1,a,c+1),n,r):null}_executeBlockComment(e,t,n){e.tokenization.tokenizeIfCheap(n.startLineNumber);let r=e.getLanguageIdAtPosition(n.startLineNumber,1),i=this.languageConfigurationService.getLanguageConfiguration(r).comments;if(!i||!i.blockCommentStartToken||!i.blockCommentEndToken)return;let a=i.blockCommentStartToken,o=i.blockCommentEndToken,s=this._attemptRemoveBlockComment(e,n,a,o);if(!s){if(n.isEmpty()){let t=e.getLineContent(n.startLineNumber),r=An(t);r===-1&&(r=t.length),s=hs._createAddBlockCommentOperations(new _(n.startLineNumber,r+1,n.startLineNumber,t.length+1),a,o,this._insertSpace)}else s=hs._createAddBlockCommentOperations(new _(n.startLineNumber,e.getLineFirstNonWhitespaceColumn(n.startLineNumber),n.endLineNumber,e.getLineMaxColumn(n.endLineNumber)),a,o,this._insertSpace);s.length===1&&(this._deltaColumn=a.length+1)}this._selectionId=t.trackSelection(n);for(let e of s)t.addEditOperation(e.range,e.text)}getEditOperations(t,n){let r=this._selection;if(this._moveEndPositionDown=!1,r.startLineNumber===r.endLineNumber&&this._ignoreFirstLine){n.addEditOperation(new _(r.startLineNumber,t.getLineMaxColumn(r.startLineNumber),r.startLineNumber+1,1),r.startLineNumber===t.getLineCount()?``:`
5
+ `),this._selectionId=n.trackSelection(r);return}r.startLineNumber<r.endLineNumber&&r.endColumn===1&&(this._moveEndPositionDown=!0,r=r.setEndPosition(r.endLineNumber-1,t.getLineMaxColumn(r.endLineNumber-1)));let i=e._gatherPreflightData(this._type,this._insertSpace,t,r.startLineNumber,r.endLineNumber,this._ignoreEmptyLines,this._ignoreFirstLine,this.languageConfigurationService);return i.supported?this._executeLineComments(t,n,i,r):this._executeBlockComment(t,n,r)}computeCursorState(e,t){let n=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(n=n.setEndPosition(n.endLineNumber+1,1)),new y(n.selectionStartLineNumber,n.selectionStartColumn+this._deltaColumn,n.positionLineNumber,n.positionColumn+this._deltaColumn)}static _createRemoveLineCommentsOperations(e,t){let n=[];for(let r=0,i=e.length;r<i;r++){let i=e[r];i.ignore||n.push(v.delete(new _(t+r,i.commentStrOffset+1,t+r,i.commentStrOffset+i.commentStrLength+1)))}return n}_createAddLineCommentsOperations(e,t){let n=[],r=this._insertSpace?` `:``;for(let i=0,a=e.length;i<a;i++){let a=e[i];a.ignore||n.push(v.insert(new T(t+i,a.commentStrOffset+1),a.commentStr+r))}return n}static nextVisibleColumn(e,t,n,r){return n?e+(t-e%t):e+r}static _normalizeInsertionPoint(t,n,r,i){let a=1073741824,o,s;for(let o=0,s=n.length;o<s;o++){if(n[o].ignore)continue;let s=t.getLineContent(r+o),c=0;for(let t=0,r=n[o].commentStrOffset;c<a&&t<r;t++)c=e.nextVisibleColumn(c,i,s.charCodeAt(t)===9,1);c<a&&(a=c)}a=Math.floor(a/i)*i;for(let c=0,l=n.length;c<l;c++){if(n[c].ignore)continue;let l=t.getLineContent(r+c),u=0;for(o=0,s=n[c].commentStrOffset;u<a&&o<s;o++)u=e.nextVisibleColumn(u,i,l.charCodeAt(o)===9,1);u>a?n[c].commentStrOffset=o-1:n[c].commentStrOffset=o}}},_s=class extends b{constructor(e,t){super(t),this._type=e}run(e,t){let n=e.get(zt);if(!t.hasModel())return;let r=t.getModel(),i=[],a=r.getOptions(),o=t.getOption(29),s=t.getSelections().map((e,t)=>({selection:e,index:t,ignoreFirstLine:!1}));s.sort((e,t)=>_.compareRangesUsingStarts(e.selection,t.selection));let c=s[0];for(let e=1;e<s.length;e++){let t=s[e];c.selection.endLineNumber===t.selection.startLineNumber&&(c.index<t.index?t.ignoreFirstLine=!0:(c.ignoreFirstLine=!0,c=t))}for(let e of s)i.push(new gs(n,e.selection,a.indentSize,this._type,o.insertSpace,o.ignoreEmptyLines,e.ignoreFirstLine));t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}},vs=class extends _s{constructor(){super(0,{id:`editor.action.commentLine`,label:S(933,`Toggle Line Comment`),precondition:x.writable,kbOpts:{kbExpr:x.editorTextFocus,primary:2138,weight:100},menuOpts:{menuId:g.MenubarEditMenu,group:`5_insert`,title:L(931,`&&Toggle Line Comment`),order:1},canTriggerInlineEdits:!0})}},ys=class extends _s{constructor(){super(1,{id:`editor.action.addCommentLine`,label:S(934,`Add Line Comment`),precondition:x.writable,kbOpts:{kbExpr:x.editorTextFocus,primary:E(2089,2081),weight:100},canTriggerInlineEdits:!0})}},bs=class extends _s{constructor(){super(2,{id:`editor.action.removeCommentLine`,label:S(935,`Remove Line Comment`),precondition:x.writable,kbOpts:{kbExpr:x.editorTextFocus,primary:E(2089,2099),weight:100},canTriggerInlineEdits:!0})}},xs=class extends b{constructor(){super({id:`editor.action.blockComment`,label:S(936,`Toggle Block Comment`),precondition:x.writable,kbOpts:{kbExpr:x.editorTextFocus,primary:1567,linux:{primary:3103},weight:100},menuOpts:{menuId:g.MenubarEditMenu,group:`5_insert`,title:L(932,`Toggle &&Block Comment`),order:2},canTriggerInlineEdits:!0})}run(e,t){let n=e.get(zt);if(!t.hasModel())return;let r=t.getOption(29),i=[],a=t.getSelections();for(let e of a)i.push(new hs(e,r.insertSpace,n));t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}};A(vs),A(ys),A(bs),A(xs);var Ss=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Cs=function(e,t){return function(n,r){t(n,r,e)}},ws,Ts=class{static{ws=this}static{this.ID=`editor.contrib.contextmenu`}static get(e){return e.getContribution(ws.ID)}constructor(e,t,n,r,i,a,o,s){this._contextMenuService=t,this._contextViewService=n,this._contextKeyService=r,this._keybindingService=i,this._menuService=a,this._configurationService=o,this._workspaceContextService=s,this._toDispose=new P,this._contextMenuIsBeingShownCount=0,this._editor=e,this._toDispose.add(this._editor.onContextMenu(e=>this._onContextMenu(e))),this._toDispose.add(this._editor.onMouseWheel(e=>{if(this._contextMenuIsBeingShownCount>0){let t=this._contextViewService.getContextViewElement(),n=e.srcElement;n.shadowRoot&&Mn(t)===n.shadowRoot||this._contextViewService.hideContextView()}})),this._toDispose.add(this._editor.onKeyDown(e=>{this._editor.getOption(30)&&e.keyCode===58&&(e.preventDefault(),e.stopPropagation(),this.showContextMenu())}))}_onContextMenu(e){if(!this._editor.hasModel())return;if(!this._editor.getOption(30)){this._editor.focus(),e.target.position&&!this._editor.getSelection().containsPosition(e.target.position)&&this._editor.setPosition(e.target.position);return}if(e.target.type===12||e.target.type===6&&e.target.detail.injectedText)return;if(e.event.preventDefault(),e.event.stopPropagation(),e.target.type===11)return this._showScrollbarContextMenu(e.event);if(e.target.type!==6&&e.target.type!==7&&e.target.type!==1)return;if(this._editor.focus(),e.target.position){let t=!1;for(let n of this._editor.getSelections())if(n.containsPosition(e.target.position)){t=!0;break}t||this._editor.setPosition(e.target.position)}let t=null;e.target.type!==1&&(t=e.event),this.showContextMenu(t)}showContextMenu(e){if(!this._editor.getOption(30)||!this._editor.hasModel())return;let t=this._getMenuActions(this._editor.getModel(),this._editor.contextMenuId);t.length>0&&this._doShowContextMenu(t,e)}_getMenuActions(e,t){let n=[],r=this._menuService.getMenuActions(t,this._contextKeyService,{arg:e.uri});for(let t of r){let[,r]=t,i=0;for(let t of r)if(t instanceof fe){let r=this._getMenuActions(e,t.item.submenu);r.length>0&&(n.push(new Kt(t.id,t.label,r)),i++)}else n.push(t),i++;i&&n.push(new je)}return n.length&&n.pop(),n}_doShowContextMenu(e,t=null){if(!this._editor.hasModel())return;let n=t;if(!n){this._editor.revealPosition(this._editor.getPosition(),1),this._editor.render();let e=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),t=ea(this._editor.getDomNode());n={x:t.left+e.left,y:t.top+e.top+e.height}}let r=this._editor.getOption(144)&&!fa;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:r?this._editor.getOverflowWidgetsDomNode()??this._editor.getDomNode():void 0,getAnchor:()=>n,getActions:()=>e,getActionViewItem:e=>{let t=this._keybindingFor(e);if(t)return new re(e,e,{label:!0,keybinding:t.getLabel(),isMenu:!0});let n=e;return typeof n.getActionViewItem==`function`?n.getActionViewItem():new re(e,e,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:e=>this._keybindingFor(e),onHide:e=>{this._contextMenuIsBeingShownCount--}})}_showScrollbarContextMenu(e){if(!this._editor.hasModel()||Me(this._workspaceContextService.getWorkspace()))return;let t=this._editor.getOption(81),n=0,r=e=>({id:`menu-action-${++n}`,label:e.label,tooltip:``,class:void 0,enabled:e.enabled===void 0?!0:e.enabled,checked:e.checked,run:e.run}),i=(e,t)=>new Kt(`menu-action-${++n}`,e,t,void 0),a=(e,t,n,a,o)=>{if(!t)return r({label:e,enabled:t,run:()=>{}});let s=e=>()=>{this._configurationService.updateValue(n,e)},c=[];for(let e of o)c.push(r({label:e.label,checked:a===e.value,run:s(e.value)}));return i(e,c)},o=[];o.push(r({label:L(937,`Minimap`),checked:t.enabled,run:()=>{this._configurationService.updateValue(`editor.minimap.enabled`,!t.enabled)}})),o.push(new je),o.push(r({label:L(938,`Render Characters`),enabled:t.enabled,checked:t.renderCharacters,run:()=>{this._configurationService.updateValue(`editor.minimap.renderCharacters`,!t.renderCharacters)}})),o.push(a(L(939,`Vertical size`),t.enabled,`editor.minimap.size`,t.size,[{label:L(940,`Proportional`),value:`proportional`},{label:L(941,`Fill`),value:`fill`},{label:L(942,`Fit`),value:`fit`}])),o.push(a(L(943,`Slider`),t.enabled,`editor.minimap.showSlider`,t.showSlider,[{label:L(944,`Mouse Over`),value:`mouseover`},{label:L(945,`Always`),value:`always`}])),o.push(a(L(946,`Side`),t.enabled,`editor.minimap.side`,t.side,[{label:L(947,`Right`),value:`right`},{label:L(948,`Left`),value:`left`}]));let s=this._editor.getOption(144)&&!fa;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:s?this._editor.getDomNode():void 0,getAnchor:()=>e,getActions:()=>o,onHide:e=>{this._contextMenuIsBeingShownCount--,this._editor.focus()}})}_keybindingFor(e){return this._keybindingService.lookupKeybinding(e.id)}dispose(){this._contextMenuIsBeingShownCount>0&&this._contextViewService.hideContextView(),this._toDispose.dispose()}};Ts=ws=Ss([Cs(1,un),Cs(2,on),Cs(3,w),Cs(4,sa),Cs(5,Nt),Cs(6,Ie),Cs(7,o)],Ts);var Es=class extends b{constructor(){super({id:`editor.action.showContextMenu`,label:S(949,`Show Editor Context Menu`),precondition:void 0,kbOpts:{kbExpr:x.textInputFocus,primary:1092,weight:100}})}run(e,t){Ts.get(t)?.showContextMenu()}};bt(Ts.ID,Ts,2),A(Es);var Ds=class{constructor(e){this.selections=e}equals(e){let t=this.selections.length;if(t!==e.selections.length)return!1;for(let n=0;n<t;n++)if(!this.selections[n].equalsSelection(e.selections[n]))return!1;return!0}},Os=class{constructor(e,t,n){this.cursorState=e,this.scrollTop=t,this.scrollLeft=n}},ks=class e extends B{static{this.ID=`editor.contrib.cursorUndoRedoController`}static get(t){return t.getContribution(e.ID)}constructor(e){super(),this._editor=e,this._isCursorUndoRedo=!1,this._undoStack=[],this._redoStack=[],this._register(e.onDidChangeModel(e=>{this._undoStack=[],this._redoStack=[]})),this._register(e.onDidChangeModelContent(e=>{this._undoStack=[],this._redoStack=[]})),this._register(e.onDidChangeCursorSelection(t=>{if(this._isCursorUndoRedo||!t.oldSelections||t.oldModelVersionId!==t.modelVersionId)return;let n=new Ds(t.oldSelections);this._undoStack.length>0&&this._undoStack[this._undoStack.length-1].cursorState.equals(n)||(this._undoStack.push(new Os(n,e.getScrollTop(),e.getScrollLeft())),this._redoStack=[],this._undoStack.length>50&&this._undoStack.shift())}))}cursorUndo(){!this._editor.hasModel()||this._undoStack.length===0||(this._redoStack.push(new Os(new Ds(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._undoStack.pop()))}cursorRedo(){!this._editor.hasModel()||this._redoStack.length===0||(this._undoStack.push(new Os(new Ds(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._redoStack.pop()))}_applyState(e){this._isCursorUndoRedo=!0,this._editor.setSelections(e.cursorState.selections),this._editor.setScrollPosition({scrollTop:e.scrollTop,scrollLeft:e.scrollLeft}),this._isCursorUndoRedo=!1}},As=class extends b{constructor(){super({id:`cursorUndo`,label:S(950,`Cursor Undo`),precondition:void 0,kbOpts:{kbExpr:x.textInputFocus,primary:2099,weight:100}})}run(e,t,n){ks.get(t)?.cursorUndo()}},js=class extends b{constructor(){super({id:`cursorRedo`,label:S(951,`Cursor Redo`),precondition:void 0})}run(e,t,n){ks.get(t)?.cursorRedo()}};bt(ks.ID,ks,0),A(As),A(js);var Ms=class{constructor(e,t,n){this.selection=e,this.targetPosition=t,this.copy=n,this.targetSelection=null}getEditOperations(e,t){let n=e.getValueInRange(this.selection);if(this.copy||t.addEditOperation(this.selection,null),t.addEditOperation(new _(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column),n),this.selection.containsPosition(this.targetPosition)&&!(this.copy&&(this.selection.getEndPosition().equals(this.targetPosition)||this.selection.getStartPosition().equals(this.targetPosition)))){this.targetSelection=this.selection;return}if(this.copy){this.targetSelection=new y(this.targetPosition.lineNumber,this.targetPosition.column,this.selection.endLineNumber-this.selection.startLineNumber+this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumber>this.selection.endLineNumber){this.targetSelection=new y(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumber<this.selection.endLineNumber){this.targetSelection=new y(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber+this.selection.endLineNumber-this.selection.startLineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}this.selection.endColumn<=this.targetPosition.column?this.targetSelection=new y(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,(this.selection.startLineNumber,this.selection.endLineNumber,this.targetPosition.column-this.selection.endColumn+this.selection.startColumn),this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column:this.selection.endColumn):this.targetSelection=new y(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column+this.selection.endColumn-this.selection.startColumn)}computeCursorState(e,t){return this.targetSelection}};function Ns(e){return ee?e.altKey:e.ctrlKey}var Ps=class e extends B{static{this.ID=`editor.contrib.dragAndDrop`}static{this.TRIGGER_KEY_VALUE=ee?6:5}constructor(e){super(),this._editor=e,this._dndDecorationIds=this._editor.createDecorationsCollection(),this._register(this._editor.onMouseDown(e=>this._onEditorMouseDown(e))),this._register(this._editor.onMouseUp(e=>this._onEditorMouseUp(e))),this._register(this._editor.onMouseDrag(e=>this._onEditorMouseDrag(e))),this._register(this._editor.onMouseDrop(e=>this._onEditorMouseDrop(e))),this._register(this._editor.onMouseDropCanceled(()=>this._onEditorMouseDropCanceled())),this._register(this._editor.onKeyDown(e=>this.onEditorKeyDown(e))),this._register(this._editor.onKeyUp(e=>this.onEditorKeyUp(e))),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(e){!this._editor.getOption(42)||this._editor.getOption(28)||(Ns(e)&&(this._modifierPressed=!0),this._mouseDown&&Ns(e)&&this._editor.updateOptions({mouseStyle:`copy`}))}onEditorKeyUp(t){!this._editor.getOption(42)||this._editor.getOption(28)||(Ns(t)&&(this._modifierPressed=!1),this._mouseDown&&t.keyCode===e.TRIGGER_KEY_VALUE&&this._editor.updateOptions({mouseStyle:`default`}))}_onEditorMouseDown(e){this._mouseDown=!0}_onEditorMouseUp(e){this._mouseDown=!1,this._editor.updateOptions({mouseStyle:`text`})}_onEditorMouseDrag(e){let t=e.target;if(this._dragSelection===null){let e=(this._editor.getSelections()||[]).filter(e=>t.position&&e.containsPosition(t.position));if(e.length===1)this._dragSelection=e[0];else return}Ns(e.event)?this._editor.updateOptions({mouseStyle:`copy`}):this._editor.updateOptions({mouseStyle:`default`}),t.position&&(this._dragSelection.containsPosition(t.position)?this._removeDecoration():this.showAt(t.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){let n=new T(t.target.position.lineNumber,t.target.position.column);if(this._dragSelection===null){let e=null;if(t.event.shiftKey){let t=this._editor.getSelection();if(t){let{selectionStartLineNumber:r,selectionStartColumn:i}=t;e=[new y(r,i,n.lineNumber,n.column)]}}else e=(this._editor.getSelections()||[]).map(e=>e.containsPosition(n)?new y(n.lineNumber,n.column,n.lineNumber,n.column):e);this._editor.setSelections(e||[],`mouse`,3)}else(!this._dragSelection.containsPosition(n)||(Ns(t.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(n)||this._dragSelection.getStartPosition().equals(n)))&&(this._editor.pushUndoStop(),this._editor.executeCommand(e.ID,new Ms(this._dragSelection,n,Ns(t.event)||this._modifierPressed)),this._editor.pushUndoStop())}this._editor.updateOptions({mouseStyle:`text`}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}static{this._DECORATION_OPTIONS=V.register({description:`dnd-target`,className:`dnd-target`})}showAt(t){this._dndDecorationIds.set([{range:new _(t.lineNumber,t.column,t.lineNumber,t.column),options:e._DECORATION_OPTIONS}]),this._editor.revealPosition(t,1)}_removeDecoration(){this._dndDecorationIds.clear()}_hitContent(e){return e.type===6||e.type===7}_hitMargin(e){return e.type===2||e.type===3||e.type===4}dispose(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,super.dispose()}};bt(Ps.ID,Ps,2);var Fs=class e{constructor(e){this._editor=e,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){let e=this._findScopeDecorationIds.map(e=>this._editor.getModel().getDecorationRange(e)).filter(e=>!!e);if(e.length)return e}return null}getStartPosition(){return this._startPosition}setStartPosition(e){this._startPosition=e,this.setCurrentFindMatch(null)}_getDecorationIndex(e){let t=this._decorations.indexOf(e);return t>=0?t+1:1}getDecorationRangeAt(e){let t=e<this._decorations.length?this._decorations[e]:null;return t?this._editor.getModel().getDecorationRange(t):null}getCurrentMatchesPosition(t){let n=this._editor.getModel().getDecorationsInRange(t);for(let t of n){let n=t.options;if(n===e._FIND_MATCH_DECORATION||n===e._FIND_MATCH_NO_OVERVIEW_DECORATION||n===e._CURRENT_FIND_MATCH_DECORATION)return this._getDecorationIndex(t.id)}return 0}setCurrentFindMatch(t){let n=null,r=0;if(t)for(let e=0,i=this._decorations.length;e<i;e++){let i=this._editor.getModel().getDecorationRange(this._decorations[e]);if(t.equalsRange(i)){n=this._decorations[e],r=e+1;break}}return(this._highlightedDecorationId!==null||n!==null)&&this._editor.changeDecorations(t=>{if(this._highlightedDecorationId!==null&&(t.changeDecorationOptions(this._highlightedDecorationId,e._FIND_MATCH_DECORATION),this._highlightedDecorationId=null),n!==null&&(this._highlightedDecorationId=n,t.changeDecorationOptions(this._highlightedDecorationId,e._CURRENT_FIND_MATCH_DECORATION)),this._rangeHighlightDecorationId!==null&&(t.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),n!==null){let r=this._editor.getModel().getDecorationRange(n);if(r.startLineNumber!==r.endLineNumber&&r.endColumn===1){let e=r.endLineNumber-1,t=this._editor.getModel().getLineMaxColumn(e);r=new _(r.startLineNumber,r.startColumn,e,t)}this._rangeHighlightDecorationId=t.addDecoration(r,e._RANGE_HIGHLIGHT_DECORATION)}}),r}set(t,n){this._editor.changeDecorations(r=>{let i=e._FIND_MATCH_DECORATION,a=[];if(t.length>1e3){i=e._FIND_MATCH_NO_OVERVIEW_DECORATION;let n=this._editor.getModel().getLineCount(),r=this._editor.getLayoutInfo().height/n,o=Math.max(2,Math.ceil(3/r)),s=t[0].range.startLineNumber,c=t[0].range.endLineNumber;for(let n=1,r=t.length;n<r;n++){let r=t[n].range;c+o>=r.startLineNumber?r.endLineNumber>c&&(c=r.endLineNumber):(a.push({range:new _(s,1,c,1),options:e._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),s=r.startLineNumber,c=r.endLineNumber)}a.push({range:new _(s,1,c,1),options:e._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}let o=Array(t.length);for(let e=0,n=t.length;e<n;e++)o[e]={range:t[e].range,options:i};this._decorations=r.deltaDecorations(this._decorations,o),this._overviewRulerApproximateDecorations=r.deltaDecorations(this._overviewRulerApproximateDecorations,a),this._rangeHighlightDecorationId&&=(r.removeDecoration(this._rangeHighlightDecorationId),null),this._findScopeDecorationIds.length&&(this._findScopeDecorationIds.forEach(e=>r.removeDecoration(e)),this._findScopeDecorationIds=[]),n?.length&&(this._findScopeDecorationIds=n.map(t=>r.addDecoration(t,e._FIND_SCOPE_DECORATION)))})}matchBeforePosition(e){if(this._decorations.length===0)return null;for(let t=this._decorations.length-1;t>=0;t--){let n=this._decorations[t],r=this._editor.getModel().getDecorationRange(n);if(!(!r||r.endLineNumber>e.lineNumber)&&(r.endLineNumber<e.lineNumber||!(r.endColumn>e.column)))return r}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}matchAfterPosition(e){if(this._decorations.length===0)return null;for(let t=0,n=this._decorations.length;t<n;t++){let n=this._decorations[t],r=this._editor.getModel().getDecorationRange(n);if(!(!r||r.startLineNumber<e.lineNumber)&&(r.startLineNumber>e.lineNumber||!(r.startColumn<e.column)))return r}return this._editor.getModel().getDecorationRange(this._decorations[0])}_allDecorations(){let e=[];return e=e.concat(this._decorations),e=e.concat(this._overviewRulerApproximateDecorations),this._findScopeDecorationIds.length&&e.push(...this._findScopeDecorationIds),this._rangeHighlightDecorationId&&e.push(this._rangeHighlightDecorationId),e}static{this._CURRENT_FIND_MATCH_DECORATION=V.register({description:`current-find-match`,stickiness:1,zIndex:13,className:`currentFindMatch`,inlineClassName:`currentFindMatchInline`,showIfCollapsed:!0,overviewRuler:{color:k(nr),position:ra.Center},minimap:{color:k(en),position:1}})}static{this._FIND_MATCH_DECORATION=V.register({description:`find-match`,stickiness:1,zIndex:10,className:`findMatch`,inlineClassName:`findMatchInline`,showIfCollapsed:!0,overviewRuler:{color:k(nr),position:ra.Center},minimap:{color:k(en),position:1}})}static{this._FIND_MATCH_NO_OVERVIEW_DECORATION=V.register({description:`find-match-no-overview`,stickiness:1,className:`findMatch`,showIfCollapsed:!0})}static{this._FIND_MATCH_ONLY_OVERVIEW_DECORATION=V.register({description:`find-match-only-overview`,stickiness:1,overviewRuler:{color:k(nr),position:ra.Center}})}static{this._RANGE_HIGHLIGHT_DECORATION=V.register({description:`find-range-highlight`,stickiness:1,className:`rangeHighlight`,isWholeLine:!0})}static{this._FIND_SCOPE_DECORATION=V.register({description:`find-scope`,className:`findScope`,isWholeLine:!0})}},Is=class{constructor(e,t,n){this._editorSelection=e,this._ranges=t,this._replaceStrings=n,this._trackedEditorSelectionId=null}getEditOperations(e,t){if(this._ranges.length>0){let e=[];for(let t=0;t<this._ranges.length;t++)e.push({range:this._ranges[t],text:this._replaceStrings[t]});e.sort((e,t)=>_.compareRangesUsingStarts(e.range,t.range));let n=[],r=e[0];for(let t=1;t<e.length;t++)r.range.endLineNumber===e[t].range.startLineNumber&&r.range.endColumn===e[t].range.startColumn?(r.range=r.range.plusRange(e[t].range),r.text+=e[t].text):(n.push(r),r=e[t]);n.push(r);for(let e of n)t.addEditOperation(e.range,e.text)}this._trackedEditorSelectionId=t.trackSelection(this._editorSelection)}computeCursorState(e,t){return t.getTrackedSelection(this._trackedEditorSelectionId)}};function Ls(e,t){if(e&&e[0]!==``){let n=Rs(e,t,`-`),r=Rs(e,t,`_`);return n&&!r?zs(e,t,`-`):!n&&r?zs(e,t,`_`):e[0].toUpperCase()===e[0]?t.toUpperCase():e[0].toLowerCase()===e[0]?t.toLowerCase():er(e[0][0])&&t.length>0?t[0].toUpperCase()+t.substr(1):e[0][0].toUpperCase()!==e[0][0]&&t.length>0?t[0].toLowerCase()+t.substr(1):t}else return t}function Rs(e,t,n){return e[0].indexOf(n)!==-1&&t.indexOf(n)!==-1&&e[0].split(n).length===t.split(n).length}function zs(e,t,n){let r=t.split(n),i=e[0].split(n),a=``;return r.forEach((e,t)=>{a+=Ls([i[t]],e)+n}),a.slice(0,-1)}var Bs=class{constructor(e){this.staticValue=e,this.kind=0}},Vs=class{constructor(e){this.pieces=e,this.kind=1}},Hs=class e{static fromStaticValue(t){return new e([Us.staticValue(t)])}get hasReplacementPatterns(){return this._state.kind===1}constructor(e){!e||e.length===0?this._state=new Bs(``):e.length===1&&e[0].staticValue!==null?this._state=new Bs(e[0].staticValue):this._state=new Vs(e)}buildReplaceString(t,n){if(this._state.kind===0)return n?Ls(t,this._state.staticValue):this._state.staticValue;let r=``;for(let n=0,i=this._state.pieces.length;n<i;n++){let i=this._state.pieces[n];if(i.staticValue!==null){r+=i.staticValue;continue}let a=e._substitute(i.matchIndex,t);if(i.caseOps!==null&&i.caseOps.length>0){let e=[],t=i.caseOps.length,n=0;for(let r=0,o=a.length;r<o;r++){if(n>=t){e.push(a.slice(r));break}switch(i.caseOps[n]){case`U`:e.push(a[r].toUpperCase());break;case`u`:e.push(a[r].toUpperCase()),n++;break;case`L`:e.push(a[r].toLowerCase());break;case`l`:e.push(a[r].toLowerCase()),n++;break;default:e.push(a[r])}}a=e.join(``)}r+=a}return r}static _substitute(e,t){if(t===null)return``;if(e===0)return t[0];let n=``;for(;e>0;){if(e<t.length)return(t[e]||``)+n;n=String(e%10)+n,e=Math.floor(e/10)}return`$`+n}},Us=class e{static staticValue(t){return new e(t,-1,null)}static caseOps(t,n){return new e(null,t,n)}constructor(e,t,n){this.staticValue=e,this.matchIndex=t,!n||n.length===0?this.caseOps=null:this.caseOps=n.slice(0)}},Ws=class{constructor(e){this._source=e,this._lastCharIndex=0,this._result=[],this._resultLen=0,this._currentStaticPiece=``}emitUnchanged(e){this._emitStatic(this._source.substring(this._lastCharIndex,e)),this._lastCharIndex=e}emitStatic(e,t){this._emitStatic(e),this._lastCharIndex=t}_emitStatic(e){e.length!==0&&(this._currentStaticPiece+=e)}emitMatchIndex(e,t,n){this._currentStaticPiece.length!==0&&(this._result[this._resultLen++]=Us.staticValue(this._currentStaticPiece),this._currentStaticPiece=``),this._result[this._resultLen++]=Us.caseOps(e,n),this._lastCharIndex=t}finalize(){return this.emitUnchanged(this._source.length),this._currentStaticPiece.length!==0&&(this._result[this._resultLen++]=Us.staticValue(this._currentStaticPiece),this._currentStaticPiece=``),new Hs(this._result)}};function Gs(e){if(!e||e.length===0)return new Hs(null);let t=[],n=new Ws(e);for(let r=0,i=e.length;r<i;r++){let a=e.charCodeAt(r);if(a===92){if(r++,r>=i)break;let a=e.charCodeAt(r);switch(a){case 92:n.emitUnchanged(r-1),n.emitStatic(`\\`,r+1);break;case 110:n.emitUnchanged(r-1),n.emitStatic(`
6
+ `,r+1);break;case 116:n.emitUnchanged(r-1),n.emitStatic(` `,r+1);break;case 117:case 85:case 108:case 76:n.emitUnchanged(r-1),n.emitStatic(``,r+1),t.push(String.fromCharCode(a));break}continue}if(a===36){if(r++,r>=i)break;let a=e.charCodeAt(r);if(a===36){n.emitUnchanged(r-1),n.emitStatic(`$`,r+1);continue}if(a===48||a===38){n.emitUnchanged(r-1),n.emitMatchIndex(0,r+1,t),t.length=0;continue}if(49<=a&&a<=57){let o=a-48;if(r+1<i){let i=e.charCodeAt(r+1);if(48<=i&&i<=57){r++,o=o*10+(i-48),n.emitUnchanged(r-2),n.emitMatchIndex(o,r+1,t),t.length=0;continue}}n.emitUnchanged(r-1),n.emitMatchIndex(o,r+1,t),t.length=0;continue}}}return n.finalize()}var Ks=new D(`findWidgetVisible`,!1);Ks.toNegated();var qs=new D(`findInputFocussed`,!1),Js=new D(`replaceInputFocussed`,!1),Ys=new D(`findWidgetFocused`,!1),Xs={primary:545,mac:{primary:2593}},Zs={primary:565,mac:{primary:2613}},Qs={primary:560,mac:{primary:2608}},$s={primary:554,mac:{primary:2602}},ec={primary:558,mac:{primary:2606}},K={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`},tc=19999,nc=240,rc=class e{constructor(e,t){this._toDispose=new P,this._editor=e,this._state=t,this._isDisposed=!1,this._startSearchingTimer=new jr,this._decorations=new Fs(e),this._toDispose.add(this._decorations),this._updateDecorationsScheduler=new Lr(()=>{if(this._editor.hasModel())return this.research(!1)},100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition(e=>{(e.reason===3||e.reason===5||e.reason===6)&&this._decorations.setStartPosition(this._editor.getPosition())})),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent(e=>{this._ignoreModelContentChanged||(e.isFlush&&this._decorations.reset(),this._decorations.setStartPosition(this._editor.getPosition()),this._updateDecorationsScheduler.schedule())})),this._toDispose.add(this._state.onFindReplaceStateChange(e=>this._onStateChanged(e))),this.research(!1,this._state.searchScope)}dispose(){this._isDisposed=!0,vr(this._startSearchingTimer),this._toDispose.dispose()}_onStateChanged(e){this._isDisposed||this._editor.hasModel()&&(e.searchString||e.isReplaceRevealed||e.isRegex||e.wholeWord||e.matchCase||e.searchScope)&&(this._editor.getModel().isTooLargeForSyncing()?(this._startSearchingTimer.cancel(),this._startSearchingTimer.setIfNotSet(()=>{e.searchScope?this.research(e.moveCursor,this._state.searchScope):this.research(e.moveCursor)},nc)):e.searchScope?this.research(e.moveCursor,this._state.searchScope):this.research(e.moveCursor))}static _getSearchRange(e,t){return t||e.getFullModelRange()}research(e,t){let n=null;t===void 0?n=this._decorations.getFindScopes():t!==null&&(n=Array.isArray(t)?t:[t]),n!==null&&(n=n.map(e=>{if(e.startLineNumber!==e.endLineNumber){let t=e.endLineNumber;return e.endColumn===1&&--t,new _(e.startLineNumber,1,t,this._editor.getModel().getLineMaxColumn(t))}return e}));let r=this._findMatches(n,!1,tc);this._decorations.set(r,n);let i=this._editor.getSelection(),a=this._decorations.getCurrentMatchesPosition(i);if(a===0&&r.length>0){let e=Wr(r.map(e=>e.range),e=>_.compareRangesUsingStarts(e,i)>=0);a=e>0?e-1+1:a}this._state.changeMatchInfo(a,this._decorations.getCount(),void 0),e&&this._editor.getOption(50).cursorMoveOnType&&this._moveToNextMatch(this._decorations.getStartPosition())}_hasMatches(){return this._state.matchesCount>0}_cannotFind(){if(!this._hasMatches()){let e=this._decorations.getFindScope();return e&&this._editor.revealRangeInCenterIfOutsideViewport(e,0),!0}return!1}_setCurrentFindMatch(e){let t=this._decorations.setCurrentFindMatch(e);this._state.changeMatchInfo(t,this._decorations.getCount(),e),this._editor.setSelection(e),this._editor.revealRangeInCenterIfOutsideViewport(e,0)}_prevSearchPosition(e){let t=this._state.isRegex&&(this._state.searchString.indexOf(`^`)>=0||this._state.searchString.indexOf(`$`)>=0),{lineNumber:n,column:r}=e,i=this._editor.getModel();return t||r===1?(n===1?n=i.getLineCount():n--,r=i.getLineMaxColumn(n)):r--,new T(n,r)}_moveToPrevMatch(t,n=!1){if(!this._state.canNavigateBack()){let e=this._decorations.matchAfterPosition(t);e&&this._setCurrentFindMatch(e);return}if(this._decorations.getCount()<19999){let e=this._decorations.matchBeforePosition(t);e&&e.isEmpty()&&e.getStartPosition().equals(t)&&(t=this._prevSearchPosition(t),e=this._decorations.matchBeforePosition(t)),e&&this._setCurrentFindMatch(e);return}if(this._cannotFind())return;let r=this._decorations.getFindScope(),i=e._getSearchRange(this._editor.getModel(),r);i.getEndPosition().isBefore(t)&&(t=i.getEndPosition()),t.isBefore(i.getStartPosition())&&(t=i.getEndPosition());let{lineNumber:a,column:o}=t,s=this._editor.getModel(),c=new T(a,o),l=s.findPreviousMatch(this._state.searchString,c,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,!1);if(l&&l.range.isEmpty()&&l.range.getStartPosition().equals(c)&&(c=this._prevSearchPosition(c),l=s.findPreviousMatch(this._state.searchString,c,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,!1)),l){if(!n&&!i.containsRange(l.range))return this._moveToPrevMatch(l.range.getStartPosition(),!0);this._setCurrentFindMatch(l.range)}}moveToPrevMatch(){this._moveToPrevMatch(this._editor.getSelection().getStartPosition())}_nextSearchPosition(e){let t=this._state.isRegex&&(this._state.searchString.indexOf(`^`)>=0||this._state.searchString.indexOf(`$`)>=0),{lineNumber:n,column:r}=e,i=this._editor.getModel();return t||r===i.getLineMaxColumn(n)?(n===i.getLineCount()?n=1:n++,r=1):r++,new T(n,r)}_moveToNextMatch(e){if(!this._state.canNavigateForward()){let t=this._decorations.matchBeforePosition(e);t&&this._setCurrentFindMatch(t);return}if(this._decorations.getCount()<19999){let t=this._decorations.matchAfterPosition(e);t&&t.isEmpty()&&t.getStartPosition().equals(e)&&(e=this._nextSearchPosition(e),t=this._decorations.matchAfterPosition(e)),t&&this._setCurrentFindMatch(t);return}let t=this._getNextMatch(e,!1,!0);t&&this._setCurrentFindMatch(t.range)}_getNextMatch(t,n,r,i=!1){if(this._cannotFind())return null;let a=this._decorations.getFindScope(),o=e._getSearchRange(this._editor.getModel(),a);o.getEndPosition().isBefore(t)&&(t=o.getStartPosition()),t.isBefore(o.getStartPosition())&&(t=o.getStartPosition());let{lineNumber:s,column:c}=t,l=this._editor.getModel(),u=new T(s,c),d=l.findNextMatch(this._state.searchString,u,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,n);return r&&d&&d.range.isEmpty()&&d.range.getStartPosition().equals(u)&&(u=this._nextSearchPosition(u),d=l.findNextMatch(this._state.searchString,u,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,n)),d?!i&&!o.containsRange(d.range)?this._getNextMatch(d.range.getEndPosition(),n,r,!0):d:null}moveToNextMatch(){this._moveToNextMatch(this._editor.getSelection().getEndPosition())}_moveToMatch(e){let t=this._decorations.getDecorationRangeAt(e);t&&this._setCurrentFindMatch(t)}moveToMatch(e){this._moveToMatch(e)}_getReplacePattern(){return this._state.isRegex?Gs(this._state.replaceString):Hs.fromStaticValue(this._state.replaceString)}replace(){if(!this._hasMatches())return;let e=this._getReplacePattern(),t=this._editor.getSelection(),n=this._getNextMatch(t.getStartPosition(),!0,!1);if(n)if(t.equalsRange(n.range)){let r=e.buildReplaceString(n.matches,this._state.preserveCase),i=new Ai(t,r);this._executeEditorCommand(`replace`,i),this._decorations.setStartPosition(new T(t.startLineNumber,t.startColumn+r.length)),this.research(!0)}else this._decorations.setStartPosition(this._editor.getPosition()),this._setCurrentFindMatch(n.range)}_findMatches(t,n,r){let i=(t||[null]).map(t=>e._getSearchRange(this._editor.getModel(),t));return this._editor.getModel().findMatches(this._state.searchString,i,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,n,r)}replaceAll(){if(!this._hasMatches())return;let e=this._decorations.getFindScopes();e===null&&this._state.matchesCount>=19999?this._largeReplaceAll():this._regularReplaceAll(e),this.research(!1)}_largeReplaceAll(){let e=new xr(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null).parseSearchRequest();if(!e)return;let t=e.regex;if(!t.multiline){let e=`mu`;t.ignoreCase&&(e+=`i`),t.global&&(e+=`g`),t=new RegExp(t.source,e)}let n=this._editor.getModel(),r=n.getValue(1),i=n.getFullModelRange(),a=this._getReplacePattern(),o,s=this._state.preserveCase;o=a.hasReplacementPatterns||s?r.replace(t,function(){return a.buildReplaceString(arguments,s)}):r.replace(t,a.buildReplaceString(null,s));let c=new Er(i,o,this._editor.getSelection());this._executeEditorCommand(`replaceAll`,c)}_regularReplaceAll(e){let t=this._getReplacePattern(),n=this._findMatches(e,t.hasReplacementPatterns||this._state.preserveCase,1073741824),r=[];for(let e=0,i=n.length;e<i;e++)r[e]=t.buildReplaceString(n[e].matches,this._state.preserveCase);let i=new Is(this._editor.getSelection(),n.map(e=>e.range),r);this._executeEditorCommand(`replaceAll`,i)}selectAllMatches(){if(!this._hasMatches())return;let e=this._decorations.getFindScopes(),t=this._findMatches(e,!1,1073741824).map(e=>new y(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn)),n=this._editor.getSelection();for(let e=0,r=t.length;e<r;e++)if(t[e].equalsRange(n)){t=[n].concat(t.slice(0,e),t.slice(e+1));break}this._editor.setSelections(t)}_executeEditorCommand(e,t){try{this._ignoreModelContentChanged=!0,this._editor.pushUndoStop(),this._editor.executeCommand(e,t),this._editor.pushUndoStop()}finally{this._ignoreModelContentChanged=!1}}},ic=class e extends pa{static{this.ID=`editor.contrib.findOptionsWidget`}constructor(e,t,n){super(),this._hideSoon=this._register(new Lr(()=>this._hide(),2e3)),this._isVisible=!1,this._editor=e,this._state=t,this._keybindingService=n,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`);let r={inputActiveOptionBorder:ua(Ta),inputActiveOptionForeground:ua(d),inputActiveOptionBackground:ua(Tt)},i={groupId:`find-options-widget`};this.caseSensitive=this._register(new Ht({appendTitle:this._keybindingLabelFor(K.ToggleCaseSensitiveCommand),isChecked:this._state.matchCase,hoverLifecycleOptions:i,...r})),this._domNode.appendChild(this.caseSensitive.domNode),this._register(this.caseSensitive.onChange(()=>{this._state.change({matchCase:this.caseSensitive.checked},!1)})),this.wholeWords=this._register(new ye({appendTitle:this._keybindingLabelFor(K.ToggleWholeWordCommand),isChecked:this._state.wholeWord,hoverLifecycleOptions:i,...r})),this._domNode.appendChild(this.wholeWords.domNode),this._register(this.wholeWords.onChange(()=>{this._state.change({wholeWord:this.wholeWords.checked},!1)})),this.regex=this._register(new Zt({appendTitle:this._keybindingLabelFor(K.ToggleRegexCommand),isChecked:this._state.isRegex,hoverLifecycleOptions:i,...r})),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(e=>{let t=!1;e.isRegex&&(this.regex.checked=this._state.isRegex,t=!0),e.wholeWord&&(this.wholeWords.checked=this._state.wholeWord,t=!0),e.matchCase&&(this.caseSensitive.checked=this._state.matchCase,t=!0),!this._state.isRevealed&&t&&this._revealTemporarily()})),this._register(z(this._domNode,ki.MOUSE_LEAVE,e=>this._onMouseLeave())),this._register(z(this._domNode,`mouseover`,e=>this._onMouseOver()))}_keybindingLabelFor(e){return this._keybindingService.appendKeybinding(``,e)}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return e.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`)}};function ac(e,t){return e===1?!0:e===2?!1:t}var oc=class extends B{get searchString(){return this._searchString}get replaceString(){return this._replaceString}get isRevealed(){return this._isRevealed}get isReplaceRevealed(){return this._isReplaceRevealed}get isRegex(){return ac(this._isRegexOverride,this._isRegex)}get wholeWord(){return ac(this._wholeWordOverride,this._wholeWord)}get matchCase(){return ac(this._matchCaseOverride,this._matchCase)}get preserveCase(){return ac(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 I),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(e,t,n){let r={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},i=!1;t===0&&(e=0),e>t&&(e=t),this._matchesPosition!==e&&(this._matchesPosition=e,r.matchesPosition=!0,i=!0),this._matchesCount!==t&&(this._matchesCount=t,r.matchesCount=!0,i=!0),n!==void 0&&(_.equalsRange(this._currentMatch,n)||(this._currentMatch=n,r.currentMatch=!0,i=!0)),i&&this._onFindReplaceStateChange.fire(r)}change(e,t,n=!0){let r={moveCursor:t,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},i=!1,a=this.isRegex,o=this.wholeWord,s=this.matchCase,c=this.preserveCase;e.searchString!==void 0&&this._searchString!==e.searchString&&(this._searchString=e.searchString,r.searchString=!0,i=!0),e.replaceString!==void 0&&this._replaceString!==e.replaceString&&(this._replaceString=e.replaceString,r.replaceString=!0,i=!0),e.isRevealed!==void 0&&this._isRevealed!==e.isRevealed&&(this._isRevealed=e.isRevealed,r.isRevealed=!0,i=!0),e.isReplaceRevealed!==void 0&&this._isReplaceRevealed!==e.isReplaceRevealed&&(this._isReplaceRevealed=e.isReplaceRevealed,r.isReplaceRevealed=!0,i=!0),e.isRegex!==void 0&&(this._isRegex=e.isRegex),e.wholeWord!==void 0&&(this._wholeWord=e.wholeWord),e.matchCase!==void 0&&(this._matchCase=e.matchCase),e.preserveCase!==void 0&&(this._preserveCase=e.preserveCase),e.searchScope!==void 0&&(e.searchScope?.every(e=>this._searchScope?.some(t=>!_.equalsRange(t,e)))||(this._searchScope=e.searchScope,r.searchScope=!0,i=!0)),e.loop!==void 0&&this._loop!==e.loop&&(this._loop=e.loop,r.loop=!0,i=!0),e.isSearching!==void 0&&this._isSearching!==e.isSearching&&(this._isSearching=e.isSearching,r.isSearching=!0,i=!0),e.filters!==void 0&&(this._filters?this._filters.update(e.filters):this._filters=e.filters,r.filters=!0,i=!0),this._isRegexOverride=e.isRegexOverride===void 0?0:e.isRegexOverride,this._wholeWordOverride=e.wholeWordOverride===void 0?0:e.wholeWordOverride,this._matchCaseOverride=e.matchCaseOverride===void 0?0:e.matchCaseOverride,this._preserveCaseOverride=e.preserveCaseOverride===void 0?0:e.preserveCaseOverride,a!==this.isRegex&&(i=!0,r.isRegex=!0),o!==this.wholeWord&&(i=!0,r.wholeWord=!0),s!==this.matchCase&&(i=!0,r.matchCase=!0),c!==this.preserveCase&&(i=!0,r.preserveCase=!0),i&&this._onFindReplaceStateChange.fire(r)}canNavigateBack(){return this.canNavigateInLoop()||this.matchesPosition!==1}canNavigateForward(){return this.canNavigateInLoop()||this.matchesPosition<this.matchesCount}canNavigateInLoop(){return this._loop||this.matchesCount>=19999}},sc=L(5,`input`),cc=L(6,`Preserve Case`),lc=class extends Si{constructor(e){super({icon:G.preserveCase,title:cc+e.appendTitle,isChecked:e.isChecked,hoverLifecycleOptions:e.hoverLifecycleOptions,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}},uc=class extends pa{get onDidOptionChange(){return this._onDidOptionChange.event}get onKeyDown(){return this._onKeyDown.event}get onPreserveCaseKeyDown(){return this._onPreserveCaseKeyDown.event}constructor(e,t,n,r){super(),this._showOptionButtons=n,this.fixFocusOnOptionClickEnabled=!0,this.cachedOptionsWidth=0,this._onDidOptionChange=this._register(new I),this._onKeyDown=this._register(new I),this._onMouseDown=this._register(new I),this._onInput=this._register(new I),this._onKeyUp=this._register(new I),this._onPreserveCaseKeyDown=this._register(new I),this.contextViewProvider=t,this.placeholder=r.placeholder||``,this.validation=r.validation,this.label=r.label||sc;let i=r.appendPreserveCaseLabel||``,a=r.history||new Set([]),o=!!r.flexibleHeight,s=!!r.flexibleWidth,c=r.flexibleMaxHeight;this.domNode=document.createElement(`div`),this.domNode.classList.add(`monaco-findInput`),this.inputBox=this._register(new we(this.domNode,this.contextViewProvider,{ariaLabel:this.label||``,placeholder:this.placeholder||``,validationOptions:{validation:this.validation},history:a,showHistoryHint:r.showHistoryHint,flexibleHeight:o,flexibleWidth:s,flexibleMaxHeight:c,inputBoxStyles:r.inputBoxStyles})),this.preserveCase=this._register(new lc({appendTitle:i,isChecked:!1,hoverLifecycleOptions:r.hoverLifecycleOptions,...r.toggleStyles})),this._register(this.preserveCase.onChange(e=>{this._onDidOptionChange.fire(e),!e&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.preserveCase.onKeyDown(e=>{this._onPreserveCaseKeyDown.fire(e)})),this._showOptionButtons?this.cachedOptionsWidth=this.preserveCase.width():this.cachedOptionsWidth=0;let l=[this.preserveCase.domNode];this.onkeydown(this.domNode,e=>{if(e.equals(15)||e.equals(17)||e.equals(9)){let t=l.indexOf(this.domNode.ownerDocument.activeElement);if(t>=0){let n=-1;e.equals(17)?n=(t+1)%l.length:e.equals(15)&&(n=t===0?l.length-1:t-1),e.equals(9)?(l[t].blur(),this.inputBox.focus()):n>=0&&l[n].focus(),ni.stop(e,!0)}}});let u=document.createElement(`div`);u.className=`controls`,u.style.display=this._showOptionButtons?`block`:`none`,u.appendChild(this.preserveCase.domNode),this.domNode.appendChild(u),e?.appendChild(this.domNode),this.onkeydown(this.inputBox.inputElement,e=>this._onKeyDown.fire(e)),this.onkeyup(this.inputBox.inputElement,e=>this._onKeyUp.fire(e)),this.oninput(this.inputBox.inputElement,e=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,e=>this._onMouseDown.fire(e))}enable(){this.domNode.classList.remove(`disabled`),this.inputBox.enable(),this.preserveCase.enable()}disable(){this.domNode.classList.add(`disabled`),this.inputBox.disable(),this.preserveCase.disable()}setEnabled(e){e?this.enable():this.disable()}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getPreserveCase(){return this.preserveCase.checked}setPreserveCase(e){this.preserveCase.checked=e}focusOnPreserve(){this.preserveCase.focus()}validate(){this.inputBox?.validate()}set width(e){this.inputBox.paddingRight=this.cachedOptionsWidth,this.domNode.style.width=e+`px`}},dc=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},fc=function(e,t){return function(n,r){t(n,r,e)}},pc=new D(`suggestWidgetVisible`,!1,L(1760,`Whether suggestion are visible`)),mc=`historyNavigationWidgetFocus`,hc=`historyNavigationForwardsEnabled`,gc=`historyNavigationBackwardsEnabled`,_c=void 0,vc=[];function yc(e,t){if(vc.includes(t))throw Error(`Cannot register the same widget multiple times`);vc.push(t);let n=new P,r=new D(mc,!1).bindTo(e),i=new D(hc,!0).bindTo(e),a=new D(gc,!0).bindTo(e),o=()=>{r.set(!0),_c=t},s=()=>{r.set(!1),_c===t&&(_c=void 0)};return oe(t.element)&&o(),n.add(t.onDidFocus(()=>o())),n.add(t.onDidBlur(()=>s())),n.add(yn(()=>{vc.splice(vc.indexOf(t),1),s()})),{historyNavigationForwardsEnablement:i,historyNavigationBackwardsEnablement:a,dispose(){n.dispose()}}}var bc=class extends qt{constructor(e,t,n,r){super(e,t,n);let i=this._register(r.createScoped(this.inputBox.element));this._register(yc(i,this.inputBox))}};bc=dc([fc(3,w)],bc);var xc=class extends uc{constructor(e,t,n,r,i=!1){super(e,t,i,n);let a=this._register(r.createScoped(this.inputBox.element));this._register(yc(a,this.inputBox))}};xc=dc([fc(3,w)],xc),c.registerCommandAndKeybindingRule({id:`history.showPrevious`,weight:200,when:C.and(C.has(mc),C.equals(gc,!0),C.not(`isComposing`),pc.isEqualTo(!1)),primary:16,secondary:[528],handler:e=>{_c?.showPreviousValue()}}),c.registerCommandAndKeybindingRule({id:`history.showNext`,weight:200,when:C.and(C.has(mc),C.equals(hc,!0),C.not(`isComposing`),pc.isEqualTo(!1)),primary:18,secondary:[530],handler:e=>{_c?.showNextValue()}});function Sc(e){return e.lookupKeybinding(`history.showPrevious`)?.getElectronAccelerator()===`Up`&&e.lookupKeybinding(`history.showNext`)?.getElectronAccelerator()===`Down`}var Cc=tr(`find-collapsed`,G.chevronRight,L(996,`Icon to indicate that the editor find widget is collapsed.`)),wc=tr(`find-expanded`,G.chevronDown,L(997,`Icon to indicate that the editor find widget is expanded.`)),Tc=tr(`find-selection`,G.selection,L(998,`Icon for 'Find in Selection' in the editor find widget.`)),Ec=tr(`find-replace`,G.replace,L(999,`Icon for 'Replace' in the editor find widget.`)),Dc=tr(`find-replace-all`,G.replaceAll,L(1e3,`Icon for 'Replace All' in the editor find widget.`)),Oc=tr(`find-previous-match`,G.arrowUp,L(1001,`Icon for 'Find Previous' in the editor find widget.`)),kc=tr(`find-next-match`,G.arrowDown,L(1002,`Icon for 'Find Next' in the editor find widget.`)),Ac=L(1003,`Find / Replace`),jc=L(1004,`Find`),Mc=L(1005,`Find`),Nc=L(1006,`Previous Match`),Pc=L(1007,`Next Match`),Fc=L(1008,`Find in Selection`),Ic=L(1009,`Close`),Lc=L(1010,`Replace`),Rc=L(1011,`Replace`),zc=L(1012,`Replace`),Bc=L(1013,`Replace All`),Vc=L(1014,`Toggle Replace`),Hc=L(1015,`Only the first {0} results are highlighted, but all find operations work on the entire text.`,tc),Uc=L(1016,`{0} of {1}`),Wc=L(1017,`No results`),Gc=419,Kc=221,qc=69,Jc=33,Yc=ee?256:2048,Xc=class{constructor(e){this.afterLineNumber=e,this.heightInPx=Jc,this.suppressMouseDown=!1,this.domNode=document.createElement(`div`),this.domNode.className=`dock-find-viewzone`}};function Zc(e,t,n){let r=!!t.match(/\n/);if(n&&r&&n.selectionStart>0){e.stopPropagation();return}}function Qc(e,t,n){let r=!!t.match(/\n/);if(n&&r&&n.selectionEnd<n.value.length){e.stopPropagation();return}}var $c=class e extends pa{static{this.ID=`editor.contrib.findWidget`}constructor(e,t,n,r,i,a,o,s,c,l,u){super(),this._hoverService=o,this._findWidgetSearchHistory=s,this._replaceWidgetHistory=c,this._configurationService=l,this._accessibilityService=u,this._cachedHeight=null,this._lastFocusedInputWasReplace=!1,this._lastFocusedElement=null,this._revealTimeouts=[],this._codeEditor=e,this._controller=t,this._state=n,this._contextViewProvider=r,this._keybindingService=i,this._contextKeyService=a,this._isVisible=!1,this._isReplaceVisible=!1,this._ignoreChangeEvent=!1,this._accessibilityHelpHintAnnounced=!1,this._updateHistoryDelayer=new Lt(500),this._register(yn(()=>this._updateHistoryDelayer.cancel())),this._register(this._state.onFindReplaceStateChange(e=>this._onStateChanged(e))),this._buildDomNode(),this._updateButtons(),this._tryUpdateWidgetWidth(),this._findInput.inputBox.layout(),this._register(this._codeEditor.onDidChangeConfiguration(e=>{if(e.hasChanged(104)&&(this._codeEditor.getOption(104)&&this._state.change({isReplaceRevealed:!1},!1),this._updateButtons()),e.hasChanged(165)&&this._tryUpdateWidgetWidth(),e.hasChanged(2)&&this.updateAccessibilitySupport(),e.hasChanged(50)){let e=this._codeEditor.getOption(50).loop;this._state.change({loop:e},!1);let t=this._codeEditor.getOption(50).addExtraSpaceOnTop;t&&!this._viewZone&&(this._viewZone=new Xc(0),this._showViewZone()),!t&&this._viewZone&&this._removeViewZone()}})),this.updateAccessibilitySupport(),this._register(this._codeEditor.onDidChangeCursorSelection(()=>{this._isVisible&&this._updateToggleSelectionFindButton()})),this._register(this._codeEditor.onDidFocusEditorWidget(async()=>{if(this._isVisible){let e=await this._controller.getGlobalBufferTerm();e&&e!==this._state.searchString&&(this._state.change({searchString:e},!1),this._findInput.select())}})),this._findInputFocused=qs.bindTo(a),this._findFocusTracker=this._register(We(this._findInput.inputBox.inputElement)),this._register(this._findFocusTracker.onDidFocus(()=>{this._findInputFocused.set(!0),this._lastFocusedInputWasReplace=!1,this._updateSearchScope()})),this._register(this._findFocusTracker.onDidBlur(()=>{this._findInputFocused.set(!1)})),this._replaceInputFocused=Js.bindTo(a),this._replaceFocusTracker=this._register(We(this._replaceInput.inputBox.inputElement)),this._register(this._replaceFocusTracker.onDidFocus(()=>{this._replaceInputFocused.set(!0),this._lastFocusedInputWasReplace=!0,this._updateSearchScope()})),this._register(this._replaceFocusTracker.onDidBlur(()=>{this._replaceInputFocused.set(!1)})),this._findWidgetFocused=Ys.bindTo(a),this._widgetFocusTracker=this._register(We(this._domNode)),this._register(this._widgetFocusTracker.onDidFocus(()=>{this._findWidgetFocused.set(!0)})),this._register(this._widgetFocusTracker.onDidBlur(()=>{this._findWidgetFocused.set(!1)})),this._register(z(this._domNode,`focusin`,e=>{ot(e.target)&&(this._lastFocusedElement=e.target)})),this._codeEditor.addOverlayWidget(this),this._codeEditor.getOption(50).addExtraSpaceOnTop&&(this._viewZone=new Xc(0)),this._register(this._codeEditor.onDidChangeModel(()=>{this._isVisible&&(this._viewZoneId=void 0)})),this._register(this._codeEditor.onDidScrollChange(e=>{if(e.scrollTopChanged){this._layoutViewZone();return}setTimeout(()=>{this._layoutViewZone()},0)}))}getId(){return e.ID}getDomNode(){return this._domNode}getPosition(){return this._isVisible?{preference:0}:null}_onStateChanged(e){if(e.searchString){try{this._ignoreChangeEvent=!0,this._findInput.setValue(this._state.searchString)}finally{this._ignoreChangeEvent=!1}this._updateButtons()}if(e.replaceString&&(this._replaceInput.inputBox.value=this._state.replaceString),e.isRevealed&&(this._state.isRevealed?this._reveal():this._hide(!0)),e.isReplaceRevealed&&(this._state.isReplaceRevealed?!this._codeEditor.getOption(104)&&!this._isReplaceVisible&&(this._isReplaceVisible=!0,this._replaceInput.width=Dt(this._findInput.domNode),this._updateButtons(),this._replaceInput.inputBox.layout()):this._isReplaceVisible&&(this._isReplaceVisible=!1,this._updateButtons())),(e.isRevealed||e.isReplaceRevealed)&&(this._state.isRevealed||this._state.isReplaceRevealed)&&this._tryUpdateHeight()&&this._showViewZone(),e.isRegex&&this._findInput.setRegex(this._state.isRegex),e.wholeWord&&this._findInput.setWholeWords(this._state.wholeWord),e.matchCase&&this._findInput.setCaseSensitive(this._state.matchCase),e.preserveCase&&this._replaceInput.setPreserveCase(this._state.preserveCase),e.searchScope&&(this._state.searchScope?this._toggleSelectionFind.checked=!0:this._toggleSelectionFind.checked=!1,this._updateToggleSelectionFindButton()),e.searchString||e.matchesCount||e.matchesPosition){let e=this._state.searchString.length>0&&this._state.matchesCount===0;this._domNode.classList.toggle(`no-results`,e),this._updateMatchesCount(),this._updateButtons()}(e.searchString||e.currentMatch)&&this._layoutViewZone(),e.updateHistory&&this._delayedUpdateHistory(),e.loop&&this._updateButtons()}_delayedUpdateHistory(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(void 0,Hi)}_updateHistory(){this._state.searchString&&this._findInput.inputBox.addToHistory(),this._state.replaceString&&this._replaceInput.inputBox.addToHistory()}_updateMatchesCount(){this._matchesCount.style.minWidth=qc+`px`,this._state.matchesCount>=19999?this._matchesCount.title=Hc:this._matchesCount.title=``,this._matchesCount.firstChild?.remove();let e;if(this._state.matchesCount>0){let t=String(this._state.matchesCount);this._state.matchesCount>=19999&&(t+=`+`);let n=String(this._state.matchesPosition);n===`0`&&(n=`?`),e=di(Uc,n,t)}else e=Wc;this._matchesCount.appendChild(document.createTextNode(e)),at(this._getAriaLabel(e,this._state.currentMatch,this._state.searchString)),qc=Math.max(qc,this._matchesCount.clientWidth)}_getAriaLabel(e,t,n){let r;if(e===Wc)r=n===``?L(1018,`{0} found`,e):L(1019,`{0} found for '{1}'`,e,n);else if(t){let i=L(1020,`{0} found for '{1}', at {2}`,e,n,t.startLineNumber+`:`+t.startColumn),a=this._codeEditor.getModel();r=a&&t.startLineNumber<=a.getLineCount()&&t.startLineNumber>=1?`${a.getLineContent(t.startLineNumber)}, ${i}`:i}else r=L(1021,`{0} found for '{1}'`,e,n);return r}_updateToggleSelectionFindButton(){let e=this._codeEditor.getSelection(),t=e?e.startLineNumber!==e.endLineNumber||e.startColumn!==e.endColumn:!1,n=this._toggleSelectionFind.checked;this._isVisible&&(n||t)?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);let e=this._state.searchString.length>0,t=!!this._state.matchesCount;this._prevBtn.setEnabled(this._isVisible&&e&&t&&this._state.canNavigateBack()),this._nextBtn.setEnabled(this._isVisible&&e&&t&&this._state.canNavigateForward()),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._domNode.classList.toggle(`replaceToggled`,this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);let n=!this._codeEditor.getOption(104);this._toggleReplaceBtn.setEnabled(this._isVisible&&n)}_reveal(){if(this._revealTimeouts.forEach(e=>{clearTimeout(e)}),this._revealTimeouts=[],!this._isVisible){this._isVisible=!0;let e=this._codeEditor.getSelection();switch(this._codeEditor.getOption(50).autoFindInSelection){case`always`:this._toggleSelectionFind.checked=!0;break;case`never`:this._toggleSelectionFind.checked=!1;break;case`multiline`:{let t=!!e&&e.startLineNumber!==e.endLineNumber;this._toggleSelectionFind.checked=t;break}}this._tryUpdateWidgetWidth(),this._updateButtons(),this._revealTimeouts.push(setTimeout(()=>{this._domNode.classList.add(`visible`),this._domNode.setAttribute(`aria-hidden`,`false`),this._updateFindInputAriaLabel()},0)),this._revealTimeouts.push(setTimeout(()=>{this._findInput.validate()},200)),this._codeEditor.layoutOverlayWidget(this);let t=!0;if(this._codeEditor.getOption(50).seedSearchStringFromSelection&&e){let n=this._codeEditor.getDomNode();if(n){let r=ea(n),i=this._codeEditor.getScrolledVisiblePosition(e.getStartPosition()),a=r.left+(i?i.left:0),o=i?i.top:0;if(this._viewZone&&o<this._viewZone.heightInPx){e.endLineNumber>e.startLineNumber&&(t=!1);let n=da(this._domNode).left;a>n&&(t=!1);let i=this._codeEditor.getScrolledVisiblePosition(e.getEndPosition());r.left+(i?i.left:0)>n&&(t=!1)}}}this._showViewZone(t)}}_hide(e){this._revealTimeouts.forEach(e=>{clearTimeout(e)}),this._revealTimeouts=[],this._isVisible&&(this._isVisible=!1,this._accessibilityHelpHintAnnounced=!1,this._updateButtons(),this._domNode.classList.remove(`visible`),this._domNode.setAttribute(`aria-hidden`,`true`),this._findInput.clearMessage(),e&&this._codeEditor.focus(),this._codeEditor.layoutOverlayWidget(this),this._removeViewZone())}_layoutViewZone(e){if(!this._codeEditor.getOption(50).addExtraSpaceOnTop){this._removeViewZone();return}if(!this._isVisible)return;let t=this._viewZone;this._viewZoneId!==void 0||!t||this._codeEditor.changeViewZones(n=>{t.heightInPx=this._getHeight(),this._viewZoneId=n.addZone(t),this._codeEditor.setScrollTop(e||this._codeEditor.getScrollTop()+t.heightInPx)})}_showViewZone(e=!0){if(!this._isVisible||!this._codeEditor.getOption(50).addExtraSpaceOnTop)return;this._viewZone===void 0&&(this._viewZone=new Xc(0));let t=this._viewZone;this._codeEditor.changeViewZones(n=>{if(this._viewZoneId!==void 0){let r=this._getHeight();if(r===t.heightInPx)return;let i=r-t.heightInPx;t.heightInPx=r,n.layoutZone(this._viewZoneId),e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+i);return}else{let r=this._getHeight();if(r-=this._codeEditor.getOption(96).top,r<=0)return;t.heightInPx=r,this._viewZoneId=n.addZone(t),e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+r)}})}_removeViewZone(){this._codeEditor.changeViewZones(e=>{this._viewZoneId!==void 0&&(e.removeZone(this._viewZoneId),this._viewZoneId=void 0,this._viewZone&&=(this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()-this._viewZone.heightInPx),void 0))})}_tryUpdateWidgetWidth(){if(!this._isVisible||!this._domNode.isConnected)return;let e=this._codeEditor.getLayoutInfo();if(e.contentWidth<=0){this._domNode.classList.add(`hiddenEditor`);return}else this._domNode.classList.contains(`hiddenEditor`)&&this._domNode.classList.remove(`hiddenEditor`);let t=e.width,n=e.minimap.minimapWidth,r=!1,i=!1,a=!1;if(this._resized&&Dt(this._domNode)>Gc){this._domNode.style.maxWidth=`${t-28-n-15}px`,this._replaceInput.width=Dt(this._findInput.domNode);return}if(447+n>=t&&(i=!0),447+n-qc>=t&&(a=!0),447+n-qc>=t+50&&(r=!0),this._domNode.classList.toggle(`collapsed-find-widget`,r),this._domNode.classList.toggle(`narrow-find-widget`,a),this._domNode.classList.toggle(`reduced-find-widget`,i),!a&&!r&&(this._domNode.style.maxWidth=`${t-28-n-15}px`),this._findInput.layout({collapsedFindWidget:r,narrowFindWidget:a,reducedFindWidget:i}),this._resized){let e=this._findInput.inputBox.element.clientWidth;e>0&&(this._replaceInput.width=e)}else this._isReplaceVisible&&(this._replaceInput.width=Dt(this._findInput.domNode))}_getHeight(){let e=0;return e+=4,e+=this._findInput.inputBox.height+2,this._isReplaceVisible&&(e+=4,e+=this._replaceInput.inputBox.height+2),e+=4,e}_tryUpdateHeight(){let e=this._getHeight();return this._cachedHeight!==null&&this._cachedHeight===e?!1:(this._cachedHeight=e,this._domNode.style.height=`${e}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){let e=this._codeEditor.getSelections();e.map(e=>{e.endColumn===1&&e.endLineNumber>e.startLineNumber&&(e=e.setEndPosition(e.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(e.endLineNumber-1)));let t=this._state.currentMatch;return e.startLineNumber!==e.endLineNumber&&!_.equalsRange(e,t)?e:null}).filter(e=>!!e),e.length&&this._state.change({searchScope:e},!0)}}_onFindInputMouseDown(e){e.middleButton&&e.stopPropagation()}_onFindInputKeyDown(e){if(e.equals(Yc|3))if(this._keybindingService.dispatchEvent(e,e.target)){e.preventDefault();return}else{this._findInput.inputBox.insertAtCursor(`
7
+ `),e.preventDefault();return}if(e.equals(2)){this._isReplaceVisible?this._replaceInput.focus():this._findInput.focusOnCaseSensitive(),e.preventDefault();return}if(e.equals(2066)){this._codeEditor.focus(),e.preventDefault();return}if(e.equals(16))return Zc(e,this._findInput.getValue(),this._findInput.domNode.querySelector(`textarea`));if(e.equals(18))return Qc(e,this._findInput.getValue(),this._findInput.domNode.querySelector(`textarea`))}_onReplaceInputKeyDown(e){if(e.equals(Yc|3))if(this._keybindingService.dispatchEvent(e,e.target)){e.preventDefault();return}else{this._replaceInput.inputBox.insertAtCursor(`
8
+ `),e.preventDefault();return}if(e.equals(2)){this._findInput.focusOnCaseSensitive(),e.preventDefault();return}if(e.equals(1026)){this._findInput.focus(),e.preventDefault();return}if(e.equals(2066)){this._codeEditor.focus(),e.preventDefault();return}if(e.equals(16))return Zc(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector(`textarea`));if(e.equals(18))return Qc(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector(`textarea`))}getVerticalSashLeft(e){return 0}_keybindingLabelFor(e){return this._keybindingService.appendKeybinding(``,e)}_buildDomNode(){let e=this._codeEditor.getOption(50).history,t=this._codeEditor.getOption(50).replaceHistory;this._findInput=this._register(new bc(null,this._contextViewProvider,{width:Kc,label:jc,placeholder:Mc,appendCaseSensitiveLabel:this._keybindingLabelFor(K.ToggleCaseSensitiveCommand),appendWholeWordsLabel:this._keybindingLabelFor(K.ToggleWholeWordCommand),appendRegexLabel:this._keybindingLabelFor(K.ToggleRegexCommand),validation:e=>{if(e.length===0||!this._findInput.getRegex())return null;try{return new RegExp(e,`gu`),null}catch(e){return{content:e.message}}},flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showCommonFindToggles:!0,showHistoryHint:()=>Sc(this._keybindingService),inputBoxStyles:Zi,toggleStyles:Cr,history:e===`workspace`?this._findWidgetSearchHistory:new Set([])},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(e=>{e.equals(3)&&!this._codeEditor.getOption(50).findOnType&&this._state.change({searchString:this._findInput.getValue()},!0),this._onFindInputKeyDown(e)})),this._register(this._findInput.inputBox.onDidChange(()=>{this._ignoreChangeEvent||!this._codeEditor.getOption(50).findOnType||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(e=>{e.equals(1026)&&this._isReplaceVisible&&(this._replaceInput.focus(),e.preventDefault())})),this._register(this._findInput.onRegexKeyDown(e=>{e.equals(2)&&this._isReplaceVisible&&(this._replaceInput.focusOnPreserve(),e.preventDefault())})),this._register(this._findInput.inputBox.onDidHeightChange(e=>{this._tryUpdateHeight()&&this._showViewZone()})),Ot&&this._register(this._findInput.onMouseDown(e=>this._onFindInputMouseDown(e))),this._matchesCount=document.createElement(`div`),this._matchesCount.className=`matchesCount`,this._updateMatchesCount();let n={groupId:`find-widget`};this._prevBtn=this._register(new el({label:Nc+this._keybindingLabelFor(K.PreviousMatchFindAction),icon:Oc,hoverLifecycleOptions:n,onTrigger:()=>{wt(this._codeEditor.getAction(K.PreviousMatchFindAction)).run().then(void 0,Hi)}},this._hoverService)),this._nextBtn=this._register(new el({label:Pc+this._keybindingLabelFor(K.NextMatchFindAction),icon:kc,hoverLifecycleOptions:n,onTrigger:()=>{wt(this._codeEditor.getAction(K.NextMatchFindAction)).run().then(void 0,Hi)}},this._hoverService));let r=document.createElement(`div`);r.className=`find-part`,r.appendChild(this._findInput.domNode);let i=document.createElement(`div`);i.className=`find-actions`,r.appendChild(i),i.appendChild(this._matchesCount),i.appendChild(this._prevBtn.domNode),i.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new Si({icon:Tc,title:Fc+this._keybindingLabelFor(K.ToggleSearchScopeCommand),isChecked:!1,hoverLifecycleOptions:n,inputActiveOptionBackground:ua(Tt),inputActiveOptionBorder:ua(Ta),inputActiveOptionForeground:ua(d)})),this._register(this._toggleSelectionFind.onChange(()=>{if(this._toggleSelectionFind.checked){if(this._codeEditor.hasModel()){let e=this._codeEditor.getSelections();e=e.map(e=>(e.endColumn===1&&e.endLineNumber>e.startLineNumber&&(e=e.setEndPosition(e.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(e.endLineNumber-1))),e.isEmpty()?null:e)).filter(e=>!!e),e.length&&this._state.change({searchScope:e},!0)}}else this._state.change({searchScope:null},!0)})),i.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new el({label:Ic+this._keybindingLabelFor(K.CloseFindWidgetCommand),icon:fi,hoverLifecycleOptions:n,onTrigger:()=>{this._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:e=>{e.equals(2)&&this._isReplaceVisible&&(this._replaceBtn.isEnabled()?this._replaceBtn.focus():this._codeEditor.focus(),e.preventDefault())}},this._hoverService)),this._replaceInput=this._register(new xc(null,void 0,{label:Lc,placeholder:Rc,appendPreserveCaseLabel:this._keybindingLabelFor(K.TogglePreserveCaseCommand),history:t===`workspace`?this._replaceWidgetHistory:new Set([]),flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showHistoryHint:()=>Sc(this._keybindingService),inputBoxStyles:Zi,toggleStyles:Cr,hoverLifecycleOptions:n},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown(e=>this._onReplaceInputKeyDown(e))),this._register(this._replaceInput.inputBox.onDidChange(()=>{this._state.change({replaceString:this._replaceInput.inputBox.value},!1)})),this._register(this._replaceInput.inputBox.onDidHeightChange(e=>{this._isReplaceVisible&&this._tryUpdateHeight()&&this._showViewZone()})),this._register(this._replaceInput.onDidOptionChange(()=>{this._state.change({preserveCase:this._replaceInput.getPreserveCase()},!0)})),this._register(this._replaceInput.onPreserveCaseKeyDown(e=>{e.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(),e.preventDefault())})),this._replaceBtn=this._register(new el({label:zc+this._keybindingLabelFor(K.ReplaceOneAction),icon:Ec,hoverLifecycleOptions:n,onTrigger:()=>{this._controller.replace()},onKeyDown:e=>{e.equals(1026)&&(this._closeBtn.focus(),e.preventDefault())}},this._hoverService)),this._replaceAllBtn=this._register(new el({label:Bc+this._keybindingLabelFor(K.ReplaceAllAction),icon:Dc,hoverLifecycleOptions:n,onTrigger:()=>{this._controller.replaceAll()}},this._hoverService));let a=document.createElement(`div`);a.className=`replace-part`,a.appendChild(this._replaceInput.domNode);let o=document.createElement(`div`);o.className=`replace-actions`,a.appendChild(o),o.appendChild(this._replaceBtn.domNode),o.appendChild(this._replaceAllBtn.domNode),this._toggleReplaceBtn=this._register(new el({label:Vc,className:`codicon toggle left`,onTrigger:()=>{this._state.change({isReplaceRevealed:!this._isReplaceVisible},!1),this._isReplaceVisible&&(this._replaceInput.width=Dt(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=Ac,this._domNode.role=`dialog`,this._domNode.style.width=`${Gc}px`,this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(r),this._domNode.appendChild(this._closeBtn.domNode),this._domNode.appendChild(a),this._resizeSash=this._register(new pn(this._domNode,this,{orientation:0,size:2})),this._resized=!1;let s=Gc;this._register(this._resizeSash.onDidStart(()=>{s=Dt(this._domNode)})),this._register(this._resizeSash.onDidChange(e=>{this._resized=!0;let t=s+e.startX-e.currentX;t<Gc||t>(parseFloat(vn(this._domNode).maxWidth)||0)||(this._domNode.style.width=`${t}px`,this._isReplaceVisible&&(this._replaceInput.width=Dt(this._findInput.domNode)),this._findInput.inputBox.layout(),this._tryUpdateHeight())})),this._register(this._resizeSash.onDidReset(()=>{let e=Dt(this._domNode);if(e<Gc)return;let t=Gc;if(!this._resized||e===Gc){let e=this._codeEditor.getLayoutInfo();t=e.width-28-e.minimap.minimapWidth-15,this._resized=!0}this._domNode.style.width=`${t}px`,this._isReplaceVisible&&(this._replaceInput.width=Dt(this._findInput.domNode)),this._findInput.inputBox.layout()}))}updateAccessibilitySupport(){let e=this._codeEditor.getOption(2);this._findInput.setFocusInputOnOptionClick(e!==2),this._updateFindInputAriaLabel()}_updateFindInputAriaLabel(){let e=jc,t=Lc;if(!this._accessibilityHelpHintAnnounced&&this._configurationService.getValue(`accessibility.verbosity.find`)&&this._accessibilityService.isScreenReaderOptimized()){let n=this._keybindingService.lookupKeybinding(`editor.action.accessibilityHelp`)?.getAriaLabel();if(n){let r=L(1022,`Press {0} for accessibility help`,n);e=L(1023,`{0}, {1}`,e,r),t=L(1024,`{0}, {1}`,t,r)}this._accessibilityHelpHintAnnounced=!0,this._labelResetTimeout?.dispose(),this._labelResetTimeout=st(()=>{this._isVisible&&(this._findInput.inputBox.setAriaLabel(jc),this._replaceInput.inputBox.setAriaLabel(Lc))},1e3)}this._findInput.inputBox.setAriaLabel(e),this._replaceInput.inputBox.setAriaLabel(t)}getViewState(){let e=!1;return this._viewZone&&this._viewZoneId&&(e=this._viewZone.heightInPx>this._codeEditor.getScrollTop()),{widgetViewZoneVisible:e,scrollTop:this._codeEditor.getScrollTop()}}setViewState(e){e&&e.widgetViewZoneVisible&&this._layoutViewZone(e.scrollTop)}},el=class extends pa{constructor(e,t){super(),this._opts=e;let n=`button`;this._opts.className&&(n=n+` `+this._opts.className),this._opts.icon&&(n=n+` `+O.asClassName(this._opts.icon)),this._domNode=document.createElement(`div`),this._domNode.tabIndex=0,this._domNode.className=n,this._domNode.setAttribute(`role`,`button`),this._domNode.setAttribute(`aria-label`,this._opts.label),this._register(t.setupDelayedHover(this._domNode,{content:this._opts.label,style:1},e.hoverLifecycleOptions)),this.onclick(this._domNode,e=>{this._opts.onTrigger(),e.preventDefault()}),this.onkeydown(this._domNode,e=>{if(e.equals(10)||e.equals(3)){this._opts.onTrigger(),e.preventDefault();return}this._opts.onKeyDown?.(e)})}get domNode(){return this._domNode}isEnabled(){return this._domNode.tabIndex>=0}focus(){this._domNode.focus()}setEnabled(e){this._domNode.classList.toggle(`disabled`,!e),this._domNode.setAttribute(`aria-disabled`,String(!e)),this._domNode.tabIndex=e?0:-1}setExpanded(e){this._domNode.setAttribute(`aria-expanded`,String(!!e)),e?(this._domNode.classList.remove(...O.asClassNameArray(Cc)),this._domNode.classList.add(...O.asClassNameArray(wc))):(this._domNode.classList.remove(...O.asClassNameArray(wc)),this._domNode.classList.add(...O.asClassNameArray(Cc)))}};Ae((e,t)=>{let n=e.getColor(ti);n&&t.addRule(`.monaco-editor .findMatch { border: 1px ${Ir(e.type)?`dotted`:`solid`} ${n}; box-sizing: border-box; }`);let r=e.getColor(Tr);r&&t.addRule(`.monaco-editor .findScope { border: 1px ${Ir(e.type)?`dashed`:`solid`} ${r}; }`);let i=e.getColor(_n);i&&t.addRule(`.monaco-editor .find-widget { border: 1px solid ${i}; }`);let a=e.getColor(Ri);a&&t.addRule(`.monaco-editor .findMatchInline { color: ${a}; }`);let o=e.getColor(Oi);o&&t.addRule(`.monaco-editor .currentFindMatchInline { color: ${o}; }`)});var tl=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},nl=function(e,t){return function(n,r){t(n,r,e)}},rl,il=class{static{rl=this}static{this.FIND_HISTORY_KEY=`workbench.find.history`}static{this._instance=null}static getOrCreate(e){return rl._instance||=new rl(e),rl._instance}constructor(e){this.storageService=e,this.inMemoryValues=new Set,this._onDidChangeEmitter=new I,this.onDidChange=this._onDidChangeEmitter.event,this.load()}delete(e){let t=this.inMemoryValues.delete(e);return this.save(),t}add(e){return this.inMemoryValues.add(e),this.save(),this}has(e){return this.inMemoryValues.has(e)}forEach(e,t){return this.load(),this.inMemoryValues.forEach(e)}replace(e){this.inMemoryValues=new Set(e),this.save()}load(){let e,t=this.storageService.get(rl.FIND_HISTORY_KEY,1);if(t)try{e=JSON.parse(t)}catch{}this.inMemoryValues=new Set(e||[])}save(){let e=[];return this.inMemoryValues.forEach(t=>e.push(t)),new Promise(t=>{this.storageService.store(rl.FIND_HISTORY_KEY,JSON.stringify(e),1,0),this._onDidChangeEmitter.fire(e),t()})}};il=rl=tl([nl(0,Ur)],il);var al=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},ol=function(e,t){return function(n,r){t(n,r,e)}},sl,cl=class{static{sl=this}static{this.FIND_HISTORY_KEY=`workbench.replace.history`}static{this._instance=null}static getOrCreate(e){return sl._instance||=new sl(e),sl._instance}constructor(e){this.storageService=e,this.inMemoryValues=new Set,this._onDidChangeEmitter=new I,this.onDidChange=this._onDidChangeEmitter.event,this.load()}delete(e){let t=this.inMemoryValues.delete(e);return this.save(),t}add(e){return this.inMemoryValues.add(e),this.save(),this}has(e){return this.inMemoryValues.has(e)}forEach(e,t){return this.load(),this.inMemoryValues.forEach(e)}replace(e){this.inMemoryValues=new Set(e),this.save()}load(){let e,t=this.storageService.get(sl.FIND_HISTORY_KEY,1);if(t)try{e=JSON.parse(t)}catch{}this.inMemoryValues=new Set(e||[])}save(){let e=[];return this.inMemoryValues.forEach(t=>e.push(t)),new Promise(t=>{this.storageService.store(sl.FIND_HISTORY_KEY,JSON.stringify(e),1,0),this._onDidChangeEmitter.fire(e),t()})}};cl=sl=al([ol(0,Ur)],cl);var ll=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},ul=function(e,t){return function(n,r){t(n,r,e)}},dl,fl=524288;function pl(e,t=`single`,n=!1){if(!e.hasModel())return null;let r=e.getSelection();if(t===`single`&&r.startLineNumber===r.endLineNumber||t===`multiple`){if(r.isEmpty()){let t=e.getConfiguredWordAtPosition(r.getStartPosition());if(t&&!1===n)return t.word}else if(e.getModel().getValueLengthInRange(r)<fl)return e.getModel().getValueInRange(r)}return null}var ml=class extends B{static{dl=this}static{this.ID=`editor.contrib.findController`}get editor(){return this._editor}static get(e){return e.getContribution(dl.ID)}constructor(e,t,n,r,i,a){super(),this._editor=e,this._findWidgetVisible=Ks.bindTo(t),this._contextKeyService=t,this._storageService=n,this._clipboardService=r,this._notificationService=i,this._hoverService=a,this._updateHistoryDelayer=this._register(new Lt(500)),this._state=this._register(new oc),this.loadQueryState(),this._register(this._state.onFindReplaceStateChange(e=>this._onStateChanged(e))),this._model=null,this._register(this._editor.onDidChangeModel(()=>{let e=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),e&&this._start({forceRevealReplace:!1,seedSearchStringFromSelection:`none`,seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1,updateSearchScope:!1,loop:this._editor.getOption(50).loop})}))}dispose(){this.disposeModel(),super.dispose()}disposeModel(){this._model&&=(this._model.dispose(),null)}_onStateChanged(e){this.saveQueryState(e),e.isRevealed&&(this._state.isRevealed?this._findWidgetVisible.set(!0):(this._findWidgetVisible.reset(),this.disposeModel())),e.searchString&&this.setGlobalBufferTerm(this._state.searchString)}saveQueryState(e){e.isRegex&&this._storageService.store(`editor.isRegex`,this._state.actualIsRegex,1,1),e.wholeWord&&this._storageService.store(`editor.wholeWord`,this._state.actualWholeWord,1,1),e.matchCase&&this._storageService.store(`editor.matchCase`,this._state.actualMatchCase,1,1),e.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!!qs.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 e=this._editor.getSelections();e=e.map(e=>(e.endColumn===1&&e.endLineNumber>e.startLineNumber&&(e=e.setEndPosition(e.endLineNumber-1,this._editor.getModel().getLineMaxColumn(e.endLineNumber-1))),e.isEmpty()?null:e)).filter(e=>!!e),e.length&&this._state.change({searchScope:e},!0)}}setSearchString(e){this._state.isRegex&&(e=kr(e)),this._state.change({searchString:e},!1)}highlightFindOptions(e=!1){}async _start(e,t){if(this.disposeModel(),!this._editor.hasModel())return;let n={...t,isRevealed:!0};if(e.seedSearchStringFromSelection===`single`){let t=pl(this._editor,e.seedSearchStringFromSelection,e.seedSearchStringFromNonEmptySelection);t&&(this._state.isRegex?n.searchString=kr(t):n.searchString=t)}else if(e.seedSearchStringFromSelection===`multiple`&&!e.updateSearchScope){let t=pl(this._editor,e.seedSearchStringFromSelection);t&&(n.searchString=t)}if(!n.searchString&&e.seedSearchStringFromGlobalClipboard){let e=await this.getGlobalBufferTerm();if(!this._editor.hasModel())return;e&&(n.searchString=e)}if(e.forceRevealReplace||n.isReplaceRevealed?n.isReplaceRevealed=!0:this._findWidgetVisible.get()||(n.isReplaceRevealed=!1),e.updateSearchScope){let e=this._editor.getSelections();e.some(e=>!e.isEmpty())&&(n.searchScope=e)}n.loop=e.loop,this._state.change(n,!1),this._model||=new rc(this._editor,this._state)}start(e,t){return this._start(e,t)}moveToNextMatch(){return this._model?(this._model.moveToNextMatch(),!0):!1}moveToPrevMatch(){return this._model?(this._model.moveToPrevMatch(),!0):!1}goToMatch(e){return this._model?(this._model.moveToMatch(e),!0):!1}replace(){return this._model?(this._model.replace(),!0):!1}replaceAll(){return this._model?this._editor.getModel()?.isTooLargeForHeapOperation()?(this._notificationService.warn(L(979,`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(50).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()?this._clipboardService.readFindText():``}setGlobalBufferTerm(e){this._editor.getOption(50).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()&&this._clipboardService.writeFindText(e)}};ml=dl=ll([ul(1,w),ul(2,Ur),ul(3,Vi),ul(4,de),ul(5,hn)],ml);var hl=class extends ml{constructor(e,t,n,r,i,a,o,s,c,l){super(e,n,a,o,i,s),this._contextViewService=t,this._keybindingService=r,this._configurationService=c,this._accessibilityService=l,this._widget=null,this._findOptionsWidget=null,this._findWidgetSearchHistory=il.getOrCreate(a),this._replaceWidgetHistory=cl.getOrCreate(a)}async _start(e,t){this._widget||this._createFindWidget();let n=this._editor.getSelection(),r=!1;switch(this._editor.getOption(50).autoFindInSelection){case`always`:r=!0;break;case`never`:r=!1;break;case`multiline`:r=!!n&&n.startLineNumber!==n.endLineNumber;break}e.updateSearchScope=e.updateSearchScope||r,await super._start(e,t),this._widget&&(e.shouldFocus===2?this._widget.focusReplaceInput():e.shouldFocus===1&&this._widget.focusFindInput())}highlightFindOptions(e=!1){this._widget||this._createFindWidget(),this._state.isRevealed&&!e?this._widget.highlightFindOptions():this._findOptionsWidget.highlightFindOptions()}_createFindWidget(){this._widget=this._register(new $c(this._editor,this,this._state,this._contextViewService,this._keybindingService,this._contextKeyService,this._hoverService,this._findWidgetSearchHistory,this._replaceWidgetHistory,this._configurationService,this._accessibilityService)),this._findOptionsWidget=this._register(new ic(this._editor,this._state,this._keybindingService))}saveViewState(){return this._widget?.getViewState()}restoreViewState(e){this._widget?.setViewState(e)}};hl=ll([ul(1,on),ul(2,w),ul(3,sa),ul(4,de),ul(5,Ur),ul(6,Vi),ul(7,hn),ul(8,Ie),ul(9,ut)],hl),Ui(new dn({id:K.StartFindAction,label:S(987,`Find`),precondition:C.or(x.focus,C.has(`editorIsOpen`)),kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:g.MenubarEditMenu,group:`3_find`,title:L(980,`&&Find`),order:1}})).addImplementation(0,(e,t,n)=>{let r=ml.get(t);return r?r.start({forceRevealReplace:!1,seedSearchStringFromSelection:t.getOption(50).seedSearchStringFromSelection===`never`?`none`:`single`,seedSearchStringFromNonEmptySelection:t.getOption(50).seedSearchStringFromSelection===`selection`,seedSearchStringFromGlobalClipboard:t.getOption(50).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(50).loop}):!1});var gl={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`}}}}]},_l=class extends b{constructor(){super({id:K.StartFindWithArgs,label:S(988,`Find with Arguments`),precondition:void 0,kbOpts:{kbExpr:null,primary:0,weight:100},metadata:gl})}async run(e,t,n){let r=ml.get(t);if(r){let e=n?{searchString:n.searchString,replaceString:n.replaceString,isReplaceRevealed:n.replaceString!==void 0,isRegex:n.isRegex,wholeWord:n.matchWholeWord,matchCase:n.isCaseSensitive,preserveCase:n.preserveCase}:{};await r.start({forceRevealReplace:!1,seedSearchStringFromSelection:r.getState().searchString.length===0&&t.getOption(50).seedSearchStringFromSelection!==`never`?`single`:`none`,seedSearchStringFromNonEmptySelection:t.getOption(50).seedSearchStringFromSelection===`selection`,seedSearchStringFromGlobalClipboard:!0,shouldFocus:1,shouldAnimate:!0,updateSearchScope:n?.findInSelection||!1,loop:t.getOption(50).loop},e),r.setGlobalBufferTerm(r.getState().searchString)}}},vl=class extends b{constructor(){super({id:K.StartFindWithSelection,label:S(989,`Find with Selection`),precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}async run(e,t){let n=ml.get(t);n&&(await n.start({forceRevealReplace:!1,seedSearchStringFromSelection:`multiple`,seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(50).loop}),n.setGlobalBufferTerm(n.getState().searchString))}};async function yl(e,t){let n=ml.get(e);if(!n)return;let r=e.getOption(50).closeOnResult,i=n.getState().isRevealed,a=()=>{let e=n.editor.getSelection(),a=t?n.moveToNextMatch():n.moveToPrevMatch(),o=!1;if(a){let t=n.editor.getSelection();(!e&&t||e&&t&&!e.equalsSelection(t))&&(o=!0)}return o?(n.editor.pushUndoStop(),r&&i&&n.isFindInputFocused()&&n.closeFindWidget(),!0):!1};if(!a()&&(await n.start({forceRevealReplace:!1,seedSearchStringFromSelection:n.getState().searchString.length===0&&e.getOption(50).seedSearchStringFromSelection!==`never`?`single`:`none`,seedSearchStringFromNonEmptySelection:e.getOption(50).seedSearchStringFromSelection===`selection`,seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:e.getOption(50).loop}),!a())){let e=n.getState();i&&e.matchesCount===0&&e.searchString&&at(L(981,`{0} found for '{1}'`,Wc,e.searchString))}}Ui(new dn({id:K.NextMatchFindAction,label:S(990,`Find Next`),precondition:void 0,kbOpts:[{kbExpr:x.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100},{kbExpr:C.and(x.focus,qs),primary:3,weight:100}]})).addImplementation(0,async(e,t,n)=>yl(t,!0)),Ui(new dn({id:K.PreviousMatchFindAction,label:S(991,`Find Previous`),precondition:void 0,kbOpts:[{kbExpr:x.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100},{kbExpr:C.and(x.focus,qs),primary:1027,weight:100}]})).addImplementation(0,async(e,t,n)=>yl(t,!1));var bl=class extends b{constructor(){super({id:K.GoToMatchFindAction,label:S(992,`Go to Match...`),precondition:Ks}),this._highlightDecorations=[]}run(e,t){let n=ml.get(t);if(!n)return;let r=n.getState().matchesCount;if(r<1){e.get(de).notify({severity:ft.Warning,message:L(982,`No matches. Try searching for something else.`)});return}let i=e.get(or),a=new P,o=a.add(i.createInputBox());o.placeholder=L(983,`Type a number to go to a specific match (between 1 and {0})`,r);let s=e=>{let t=parseInt(e);if(isNaN(t))return;let r=n.getState().matchesCount;if(t>0&&t<=r)return t-1;if(t<0&&t>=-r)return r+t},c=e=>{let r=s(e);if(typeof r==`number`){o.validationMessage=void 0,n.goToMatch(r);let e=n.getState().currentMatch;e&&this.addDecorations(t,e)}else o.validationMessage=L(984,`Please type a number between 1 and {0}`,n.getState().matchesCount),this.clearDecorations(t)};a.add(o.onDidChangeValue(e=>{c(e)})),a.add(o.onDidAccept(()=>{let e=s(o.value);typeof e==`number`?(n.goToMatch(e),o.hide()):o.validationMessage=L(985,`Please type a number between 1 and {0}`,n.getState().matchesCount)})),a.add(o.onDidHide(()=>{this.clearDecorations(t),a.dispose()})),o.show()}clearDecorations(e){e.changeDecorations(e=>{this._highlightDecorations=e.deltaDecorations(this._highlightDecorations,[])})}addDecorations(e,t){e.changeDecorations(e=>{this._highlightDecorations=e.deltaDecorations(this._highlightDecorations,[{range:t,options:{description:`find-match-quick-access-range-highlight`,className:`rangeHighlight`,isWholeLine:!0}},{range:t,options:{description:`find-match-quick-access-range-highlight-overview`,overviewRuler:{color:k(et),position:ra.Full}}}])})}},xl=class extends b{async run(e,t){let n=ml.get(t);if(!n)return;let r=pl(t,`single`,!1);r&&n.setSearchString(r),this._run(n)||(await n.start({forceRevealReplace:!1,seedSearchStringFromSelection:`none`,seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(50).loop}),this._run(n))}},Sl=class extends xl{constructor(){super({id:K.NextSelectionMatchFindAction,label:S(993,`Find Next Selection`),precondition:void 0,kbOpts:{kbExpr:x.focus,primary:2109,weight:100}})}_run(e){return e.moveToNextMatch()}},Cl=class extends xl{constructor(){super({id:K.PreviousSelectionMatchFindAction,label:S(994,`Find Previous Selection`),precondition:void 0,kbOpts:{kbExpr:x.focus,primary:3133,weight:100}})}_run(e){return e.moveToPrevMatch()}};Ui(new dn({id:K.StartFindReplaceAction,label:S(995,`Replace`),precondition:C.or(x.focus,C.has(`editorIsOpen`)),kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:g.MenubarEditMenu,group:`3_find`,title:L(986,`&&Replace`),order:2}})).addImplementation(0,(e,t,n)=>{if(!t.hasModel()||t.getOption(104))return!1;let r=ml.get(t);if(!r)return!1;let i=t.getSelection(),a=r.isFindInputFocused(),o=!i.isEmpty()&&i.startLineNumber===i.endLineNumber&&t.getOption(50).seedSearchStringFromSelection!==`never`&&!a,s=a||o?2:1;return r.start({forceRevealReplace:!0,seedSearchStringFromSelection:o?`single`:`none`,seedSearchStringFromNonEmptySelection:t.getOption(50).seedSearchStringFromSelection===`selection`,seedSearchStringFromGlobalClipboard:t.getOption(50).seedSearchStringFromSelection!==`never`,shouldFocus:s,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(50).loop})}),bt(ml.ID,hl,0),A(_l),A(vl),A(bl),A(Sl),A(Cl);var wl=Je.bindToContribution(ml.get);M(new wl({id:K.CloseFindWidgetCommand,precondition:Ks,handler:e=>e.closeFindWidget(),kbOpts:{weight:105,kbExpr:C.and(x.focus,C.not(`isComposing`)),primary:9,secondary:[1033]}})),M(new wl({id:K.ToggleCaseSensitiveCommand,precondition:void 0,handler:e=>e.toggleCaseSensitive(),kbOpts:{weight:105,kbExpr:x.focus,primary:Xs.primary,mac:Xs.mac,win:Xs.win,linux:Xs.linux}})),M(new wl({id:K.ToggleWholeWordCommand,precondition:void 0,handler:e=>e.toggleWholeWords(),kbOpts:{weight:105,kbExpr:x.focus,primary:Zs.primary,mac:Zs.mac,win:Zs.win,linux:Zs.linux}})),M(new wl({id:K.ToggleRegexCommand,precondition:void 0,handler:e=>e.toggleRegex(),kbOpts:{weight:105,kbExpr:x.focus,primary:Qs.primary,mac:Qs.mac,win:Qs.win,linux:Qs.linux}})),M(new wl({id:K.ToggleSearchScopeCommand,precondition:void 0,handler:e=>e.toggleSearchScope(),kbOpts:{weight:105,kbExpr:x.focus,primary:$s.primary,mac:$s.mac,win:$s.win,linux:$s.linux}})),M(new wl({id:K.TogglePreserveCaseCommand,precondition:void 0,handler:e=>e.togglePreserveCase(),kbOpts:{weight:105,kbExpr:x.focus,primary:ec.primary,mac:ec.mac,win:ec.win,linux:ec.linux}})),M(new wl({id:K.ReplaceOneAction,precondition:Ks,handler:e=>e.replace(),kbOpts:{weight:105,kbExpr:x.focus,primary:3094}})),M(new wl({id:K.ReplaceOneAction,precondition:Ks,handler:e=>e.replace(),kbOpts:{weight:105,kbExpr:C.and(x.focus,Js,x.isComposing.negate()),primary:3}})),M(new wl({id:K.ReplaceAllAction,precondition:Ks,handler:e=>e.replaceAll(),kbOpts:{weight:105,kbExpr:x.focus,primary:2563}})),M(new wl({id:K.ReplaceAllAction,precondition:Ks,handler:e=>e.replaceAll(),kbOpts:{weight:105,kbExpr:C.and(x.focus,Js),primary:void 0,mac:{primary:2051}}})),M(new wl({id:K.SelectAllMatchesAction,precondition:Ks,handler:e=>e.selectAllMatches(),kbOpts:{weight:105,kbExpr:x.focus,primary:515}}));var Tl=`__monacoFindWidgetTabIndexPatchApplied`,El=`__monacoFindWidgetOriginalTabIndex`;function Dl(e,t){let n=e?._domNode;if(!n)return;let r=n.querySelectorAll(`input, textarea, [tabindex], [role="button"], [role="checkbox"]`);for(let e of r)if(e instanceof HTMLElement)if(t){if(!(El in e.dataset))continue;let t=e.dataset[El];t===``?e.removeAttribute(`tabindex`):e.tabIndex=Number(t),delete e.dataset[El]}else El in e.dataset||(e.dataset[El]=e.getAttribute(`tabindex`)??``),e.tabIndex=-1}if(!$c[Tl]){let e=$c.prototype._reveal,t=$c.prototype._hide;$c.prototype._reveal=function(...t){e.apply(this,t),Dl(this,!0)},$c.prototype._hide=function(...e){t.apply(this,e),Dl(this,!1)},$c[Tl]=!0}var Ol={0:` `,1:`u`,2:`r`},kl=16777215,Al=4278190080,jl=class{constructor(e){let t=Math.ceil(e/32);this._states=new Uint32Array(t)}get(e){let t=e/32|0,n=e%32;return(this._states[t]&1<<n)!=0}set(e,t){let n=e/32|0,r=e%32,i=this._states[n];t?this._states[n]=i|1<<r:this._states[n]=i&~(1<<r)}},Ml=class e{constructor(e,t,n){if(e.length!==t.length||e.length>65535)throw Error(`invalid startIndexes or endIndexes size`);this._startIndexes=e,this._endIndexes=t,this._collapseStates=new jl(e.length),this._userDefinedStates=new jl(e.length),this._recoveredStates=new jl(e.length),this._types=n,this._parentsComputed=!1}ensureParentIndices(){if(!this._parentsComputed){this._parentsComputed=!0;let e=[],t=(t,n)=>{let r=e[e.length-1];return this.getStartLineNumber(r)<=t&&this.getEndLineNumber(r)>=n};for(let n=0,r=this._startIndexes.length;n<r;n++){let r=this._startIndexes[n],i=this._endIndexes[n];if(r>16777215||i>16777215)throw Error(`startLineNumber or endLineNumber must not exceed 16777215`);for(;e.length>0&&!t(r,i);)e.pop();let a=e.length>0?e[e.length-1]:-1;e.push(n),this._startIndexes[n]=r+((a&255)<<24),this._endIndexes[n]=i+((a&65280)<<16)}}}get length(){return this._startIndexes.length}getStartLineNumber(e){return this._startIndexes[e]&kl}getEndLineNumber(e){return this._endIndexes[e]&kl}getType(e){return this._types?this._types[e]:void 0}hasTypes(){return!!this._types}isCollapsed(e){return this._collapseStates.get(e)}setCollapsed(e,t){this._collapseStates.set(e,t)}isUserDefined(e){return this._userDefinedStates.get(e)}setUserDefined(e,t){return this._userDefinedStates.set(e,t)}isRecovered(e){return this._recoveredStates.get(e)}setRecovered(e,t){return this._recoveredStates.set(e,t)}getSource(e){return this.isUserDefined(e)?1:this.isRecovered(e)?2:0}setSource(e,t){t===1?(this.setUserDefined(e,!0),this.setRecovered(e,!1)):t===2?(this.setUserDefined(e,!1),this.setRecovered(e,!0)):(this.setUserDefined(e,!1),this.setRecovered(e,!1))}setCollapsedAllOfType(e,t){let n=!1;if(this._types)for(let r=0;r<this._types.length;r++)this._types[r]===e&&(this.setCollapsed(r,t),n=!0);return n}toRegion(e){return new Nl(this,e)}getParentIndex(e){this.ensureParentIndices();let t=((this._startIndexes[e]&Al)>>>24)+((this._endIndexes[e]&Al)>>>16);return t===65535?-1:t}contains(e,t){return this.getStartLineNumber(e)<=t&&this.getEndLineNumber(e)>=t}findIndex(e){let t=0,n=this._startIndexes.length;if(n===0)return-1;for(;t<n;){let r=Math.floor((t+n)/2);e<this.getStartLineNumber(r)?n=r:t=r+1}return t-1}findRange(e){let t=this.findIndex(e);if(t>=0){if(this.getEndLineNumber(t)>=e)return t;for(t=this.getParentIndex(t);t!==-1;){if(this.contains(t,e))return t;t=this.getParentIndex(t)}}return-1}toString(){let e=[];for(let t=0;t<this.length;t++)e[t]=`[${Ol[this.getSource(t)]}${this.isCollapsed(t)?`+`:`-`}] ${this.getStartLineNumber(t)}/${this.getEndLineNumber(t)}`;return e.join(`, `)}toFoldRange(e){return{startLineNumber:this._startIndexes[e]&kl,endLineNumber:this._endIndexes[e]&kl,type:this._types?this._types[e]:void 0,isCollapsed:this.isCollapsed(e),source:this.getSource(e)}}static fromFoldRanges(t){let n=t.length,r=new Uint32Array(n),i=new Uint32Array(n),a=[],o=!1;for(let e=0;e<n;e++){let n=t[e];r[e]=n.startLineNumber,i[e]=n.endLineNumber,a.push(n.type),n.type&&(o=!0)}o||(a=void 0);let s=new e(r,i,a);for(let e=0;e<n;e++)t[e].isCollapsed&&s.setCollapsed(e,!0),s.setSource(e,t[e].source);return s}static sanitizeAndMerge(e,t,n,r){n??=Number.MAX_VALUE;let i=(e,t)=>Array.isArray(e)?(n=>n<t?e[n]:void 0):(n=>n<t?e.toFoldRange(n):void 0),a=i(e,e.length),o=i(t,t.length),s=0,c=0,l=a(0),u=o(0),d=[],f,p=0,m=[];for(;l||u;){let e;if(u&&(!l||l.startLineNumber>=u.startLineNumber))l&&l.startLineNumber===u.startLineNumber?(u.source===1?e=u:(e=l,e.isCollapsed=u.isCollapsed&&(l.endLineNumber===u.endLineNumber||!r?.startsInside(l.startLineNumber+1,l.endLineNumber+1)),e.source=0),l=a(++s)):(e=u,u.isCollapsed&&u.source===0&&(e.source=2)),u=o(++c);else{let t=c,n=u;for(;;){if(!n||n.startLineNumber>l.endLineNumber){e=l;break}if(n.source===1&&n.endLineNumber>l.endLineNumber)break;n=o(++t)}l=a(++s)}if(e){for(;f&&f.endLineNumber<e.startLineNumber;)f=d.pop();e.endLineNumber>e.startLineNumber&&e.startLineNumber>p&&e.endLineNumber<=n&&(!f||f.endLineNumber>=e.endLineNumber)&&(m.push(e),p=e.startLineNumber,f&&d.push(f),f=e)}}return m}},Nl=class{constructor(e,t){this.ranges=e,this.index=t}get startLineNumber(){return this.ranges.getStartLineNumber(this.index)}get endLineNumber(){return this.ranges.getEndLineNumber(this.index)}get regionIndex(){return this.index}get parentIndex(){return this.ranges.getParentIndex(this.index)}get isCollapsed(){return this.ranges.isCollapsed(this.index)}containedBy(e){return e.startLineNumber<=this.startLineNumber&&e.endLineNumber>=this.endLineNumber}containsLine(e){return this.startLineNumber<=e&&e<=this.endLineNumber}},Pl=class{get regions(){return this._regions}get textModel(){return this._textModel}constructor(e,t){this._updateEventEmitter=new I,this.onDidChange=this._updateEventEmitter.event,this._textModel=e,this._decorationProvider=t,this._regions=new Ml(new Uint32Array,new Uint32Array),this._editorDecorationIds=[]}toggleCollapseState(e){if(!e.length)return;e=e.sort((e,t)=>e.regionIndex-t.regionIndex);let t={};this._decorationProvider.changeDecorations(n=>{let r=0,i=-1,a=-1,o=e=>{for(;r<e;){let e=this._regions.getEndLineNumber(r),t=this._regions.isCollapsed(r);if(e<=i){let i=this.regions.getSource(r)!==0;n.changeDecorationOptions(this._editorDecorationIds[r],this._decorationProvider.getDecorationOption(t,e<=a,i))}t&&e>a&&(a=e),r++}};for(let n of e){let e=n.regionIndex,r=this._editorDecorationIds[e];if(r&&!t[r]){t[r]=!0,o(e);let n=!this._regions.isCollapsed(e);this._regions.setCollapsed(e,n),i=Math.max(i,this._regions.getEndLineNumber(e))}}o(this._regions.length)}),this._updateEventEmitter.fire({model:this,collapseStateChanged:e})}removeManualRanges(e){let t=[],n=t=>{for(let n of e)if(!(n.startLineNumber>t.endLineNumber||t.startLineNumber>n.endLineNumber))return!0;return!1};for(let e=0;e<this._regions.length;e++){let r=this._regions.toFoldRange(e);(r.source===0||!n(r))&&t.push(r)}this.updatePost(Ml.fromFoldRanges(t))}update(e,t){let n=this._currentFoldedOrManualRanges(t),r=Ml.sanitizeAndMerge(e,n,this._textModel.getLineCount(),t);this.updatePost(Ml.fromFoldRanges(r))}updatePost(e){let t=[],n=-1;for(let r=0,i=e.length;r<i;r++){let i=e.getStartLineNumber(r),a=e.getEndLineNumber(r),o=e.isCollapsed(r),s=e.getSource(r)!==0,c={startLineNumber:i,startColumn:this._textModel.getLineMaxColumn(i),endLineNumber:a,endColumn:this._textModel.getLineMaxColumn(a)+1};t.push({range:c,options:this._decorationProvider.getDecorationOption(o,a<=n,s)}),o&&a>n&&(n=a)}this._decorationProvider.changeDecorations(e=>this._editorDecorationIds=e.deltaDecorations(this._editorDecorationIds,t)),this._regions=e,this._updateEventEmitter.fire({model:this})}_currentFoldedOrManualRanges(e){let t=[];for(let n=0,r=this._regions.length;n<r;n++){let r=this.regions.isCollapsed(n),i=this.regions.getSource(n);if(r||i!==0){let a=this._regions.toFoldRange(n),o=this._textModel.getDecorationRange(this._editorDecorationIds[n]);o&&(r&&e?.startsInside(o.startLineNumber+1,o.endLineNumber)&&(r=!1),t.push({startLineNumber:o.startLineNumber,endLineNumber:o.endLineNumber,type:a.type,isCollapsed:r,source:i}))}}return t}getMemento(){let e=this._currentFoldedOrManualRanges(),t=[],n=this._textModel.getLineCount();for(let r=0,i=e.length;r<i;r++){let i=e[r];if(i.startLineNumber>=i.endLineNumber||i.startLineNumber<1||i.endLineNumber>n)continue;let a=this._getLinesChecksum(i.startLineNumber+1,i.endLineNumber);t.push({startLineNumber:i.startLineNumber,endLineNumber:i.endLineNumber,isCollapsed:i.isCollapsed,source:i.source,checksum:a})}return t.length>0?t:void 0}applyMemento(e){if(!Array.isArray(e))return;let t=[],n=this._textModel.getLineCount();for(let r of e){if(r.startLineNumber>=r.endLineNumber||r.startLineNumber<1||r.endLineNumber>n)continue;let e=this._getLinesChecksum(r.startLineNumber+1,r.endLineNumber);(!r.checksum||e===r.checksum)&&t.push({startLineNumber:r.startLineNumber,endLineNumber:r.endLineNumber,type:void 0,isCollapsed:r.isCollapsed??!0,source:r.source??0})}let r=Ml.sanitizeAndMerge(this._regions,t,n);this.updatePost(Ml.fromFoldRanges(r))}_getLinesChecksum(e,t){return ba(this._textModel.getLineContent(e)+this._textModel.getLineContent(t))%1e6}dispose(){this._decorationProvider.removeDecorations(this._editorDecorationIds),this._updateEventEmitter.dispose()}getAllRegionsAtLine(e,t){let n=[];if(this._regions){let r=this._regions.findRange(e),i=1;for(;r>=0;){let e=this._regions.toRegion(r);(!t||t(e,i))&&n.push(e),i++,r=e.parentIndex}}return n}getRegionAtLine(e){if(this._regions){let t=this._regions.findRange(e);if(t>=0)return this._regions.toRegion(t)}return null}getRegionsInside(e,t){let n=[],r=e?e.regionIndex+1:0,i=e?e.endLineNumber:Number.MAX_VALUE;if(t&&t.length===2){let e=[];for(let a=r,o=this._regions.length;a<o;a++){let r=this._regions.toRegion(a);if(this._regions.getStartLineNumber(a)<i){for(;e.length>0&&!r.containedBy(e[e.length-1]);)e.pop();e.push(r),t(r,e.length)&&n.push(r)}else break}}else for(let e=r,a=this._regions.length;e<a;e++){let r=this._regions.toRegion(e);if(this._regions.getStartLineNumber(e)<i)(!t||t(r))&&n.push(r);else break}return n}};function Fl(e,t,n){let r=[];for(let i of n){let n=e.getRegionAtLine(i);if(n){let i=!n.isCollapsed;if(r.push(n),t>1){let a=e.getRegionsInside(n,(e,n)=>e.isCollapsed!==i&&n<t);r.push(...a)}}}e.toggleCollapseState(r)}function Il(e,t,n=Number.MAX_VALUE,r){let i=[];if(r&&r.length>0)for(let a of r){let r=e.getRegionAtLine(a);if(r&&(r.isCollapsed!==t&&i.push(r),n>1)){let a=e.getRegionsInside(r,(e,r)=>e.isCollapsed!==t&&r<n);i.push(...a)}}else{let r=e.getRegionsInside(null,(e,r)=>e.isCollapsed!==t&&r<n);i.push(...r)}e.toggleCollapseState(i)}function Ll(e,t,n,r){let i=[];for(let a of r){let r=e.getAllRegionsAtLine(a,(e,r)=>e.isCollapsed!==t&&r<=n);i.push(...r)}e.toggleCollapseState(i)}function Rl(e,t,n){let r=[];for(let i of n){let n=e.getAllRegionsAtLine(i,e=>e.isCollapsed!==t);n.length>0&&r.push(n[0])}e.toggleCollapseState(r)}function zl(e,t,n,r){let i=e.getRegionsInside(null,(e,i)=>i===t&&e.isCollapsed!==n&&!r.some(t=>e.containsLine(t)));e.toggleCollapseState(i)}function Bl(e,t,n){let r=[];for(let t of n){let n=e.getAllRegionsAtLine(t,void 0);n.length>0&&r.push(n[0])}let i=e.getRegionsInside(null,e=>r.every(t=>!t.containedBy(e)&&!e.containedBy(t))&&e.isCollapsed!==t);e.toggleCollapseState(i)}function Vl(e,t,n){let r=e.textModel,i=e.regions,a=[];for(let e=i.length-1;e>=0;e--)if(n!==i.isCollapsed(e)){let n=i.getStartLineNumber(e);t.test(r.getLineContent(n))&&a.push(i.toRegion(e))}e.toggleCollapseState(a)}function Hl(e,t,n){let r=e.regions,i=[];for(let e=r.length-1;e>=0;e--)n!==r.isCollapsed(e)&&t===r.getType(e)&&i.push(r.toRegion(e));e.toggleCollapseState(i)}function Ul(e,t){let n=null,r=t.getRegionAtLine(e);if(r!==null&&(n=r.startLineNumber,e===n)){let e=r.parentIndex;n=e===-1?null:t.regions.getStartLineNumber(e)}return n}function Wl(e,t){let n=t.getRegionAtLine(e);if(n!==null&&n.startLineNumber===e){if(e!==n.startLineNumber)return n.startLineNumber;{let e=n.parentIndex,r=0;for(e!==-1&&(r=t.regions.getStartLineNumber(n.parentIndex));n!==null;)if(n.regionIndex>0){if(n=t.regions.toRegion(n.regionIndex-1),n.startLineNumber<=r)return null;if(n.parentIndex===e)return n.startLineNumber}else return null}}else if(t.regions.length>0)for(n=t.regions.toRegion(t.regions.length-1);n!==null;){if(n.startLineNumber<e)return n.startLineNumber;n=n.regionIndex>0?t.regions.toRegion(n.regionIndex-1):null}return null}function Gl(e,t){let n=t.getRegionAtLine(e);if(n!==null&&n.startLineNumber===e){let e=n.parentIndex,r=0;if(e!==-1)r=t.regions.getEndLineNumber(n.parentIndex);else if(t.regions.length===0)return null;else r=t.regions.getEndLineNumber(t.regions.length-1);for(;n!==null;)if(n.regionIndex<t.regions.length){if(n=t.regions.toRegion(n.regionIndex+1),n.startLineNumber>=r)return null;if(n.parentIndex===e)return n.startLineNumber}else return null}else if(t.regions.length>0)for(n=t.regions.toRegion(0);n!==null;){if(n.startLineNumber>e)return n.startLineNumber;n=n.regionIndex<t.regions.length?t.regions.toRegion(n.regionIndex+1):null}return null}var Kl=class{get onDidChange(){return this._updateEventEmitter.event}get hiddenRanges(){return this._hiddenRanges}constructor(e){this._updateEventEmitter=new I,this._hasLineChanges=!1,this._foldingModel=e,this._foldingModelListener=e.onDidChange(e=>this.updateHiddenRanges()),this._hiddenRanges=[],e.regions.length&&this.updateHiddenRanges()}notifyChangeModelContent(e){this._hiddenRanges.length&&!this._hasLineChanges&&(this._hasLineChanges=e.changes.some(e=>e.range.endLineNumber!==e.range.startLineNumber||Qr(e.text)[0]!==0))}updateHiddenRanges(){let e=!1,t=[],n=0,r=0,i=Number.MAX_VALUE,a=-1,o=this._foldingModel.regions;for(;n<o.length;n++){if(!o.isCollapsed(n))continue;let s=o.getStartLineNumber(n)+1,c=o.getEndLineNumber(n);i<=s&&c<=a||(!e&&r<this._hiddenRanges.length&&this._hiddenRanges[r].startLineNumber===s&&this._hiddenRanges[r].endLineNumber===c?(t.push(this._hiddenRanges[r]),r++):(e=!0,t.push(new _(s,1,c,1))),i=s,a=c)}(this._hasLineChanges||e||r<this._hiddenRanges.length)&&this.applyHiddenRanges(t)}applyHiddenRanges(e){this._hiddenRanges=e,this._hasLineChanges=!1,this._updateEventEmitter.fire(e)}hasRanges(){return this._hiddenRanges.length>0}isHidden(e){return Jl(this._hiddenRanges,e)!==null}adjustSelections(e){let t=!1,n=this._foldingModel.textModel,r=null,i=e=>((!r||!ql(e,r))&&(r=Jl(this._hiddenRanges,e)),r?r.startLineNumber-1:null);for(let r=0,a=e.length;r<a;r++){let a=e[r],o=i(a.startLineNumber);o&&(a=a.setStartPosition(o,n.getLineMaxColumn(o)),t=!0);let s=i(a.endLineNumber);s&&(a=a.setEndPosition(s,n.getLineMaxColumn(s)),t=!0),e[r]=a}return t}dispose(){this.hiddenRanges.length>0&&(this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges)),this._foldingModelListener&&=(this._foldingModelListener.dispose(),null),this._updateEventEmitter.dispose()}};function ql(e,t){return e>=t.startLineNumber&&e<=t.endLineNumber}function Jl(e,t){let n=Wr(e,e=>t<e.startLineNumber)-1;return n>=0&&e[n].endLineNumber>=t?e[n]:null}var Yl=5e3,Xl=`indent`,Zl=class{constructor(e,t,n){this.editorModel=e,this.languageConfigurationService=t,this.foldingRangesLimit=n,this.id=Xl}dispose(){}compute(e){let t=this.languageConfigurationService.getLanguageConfiguration(this.editorModel.getLanguageId()).foldingRules,n=t&&!!t.offSide,r=t&&t.markers;return Promise.resolve(eu(this.editorModel,n,r,this.foldingRangesLimit))}},Ql=class{constructor(e){this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=e}insertFirst(e,t,n){if(e>16777215||t>16777215)return;let r=this._length;this._startIndexes[r]=e,this._endIndexes[r]=t,this._length++,n<1e3&&(this._indentOccurrences[n]=(this._indentOccurrences[n]||0)+1)}toIndentRanges(e){let t=this._foldingRangesLimit.limit;if(this._length<=t){this._foldingRangesLimit.update(this._length,!1);let e=new Uint32Array(this._length),t=new Uint32Array(this._length);for(let n=this._length-1,r=0;n>=0;n--,r++)e[r]=this._startIndexes[n],t[r]=this._endIndexes[n];return new Ml(e,t)}else{this._foldingRangesLimit.update(this._length,t);let n=0,r=this._indentOccurrences.length;for(let e=0;e<this._indentOccurrences.length;e++){let i=this._indentOccurrences[e];if(i){if(i+n>t){r=e;break}n+=i}}let i=e.getOptions().tabSize,a=new Uint32Array(t),o=new Uint32Array(t);for(let s=this._length-1,c=0;s>=0;s--){let l=this._startIndexes[s],u=Mr(e.getLineContent(l),i);(u<r||u===r&&n++<t)&&(a[c]=l,o[c]=this._endIndexes[s],c++)}return new Ml(a,o)}}},$l={limit:Yl,update:()=>{}};function eu(e,t,n,r=$l){let i=e.getOptions().tabSize,a=new Ql(r),o,s,c;n&&(n.start.flags===n.end.flags?o=RegExp(`(${n.start.source})|(?:${n.end.source})`,n.start.flags):(s=n.start,c=n.end));let l=[],u=e.getLineCount()+1;l.push({indent:-1,endAbove:u,line:u});for(let n=e.getLineCount();n>0;n--){let r=e.getLineContent(n),u=Mr(r,i),d=l[l.length-1];if(u===-1){t&&(d.endAbove=n);continue}let f=!1,p=!1,m;if(o?(o.lastIndex=0,(m=o.exec(r))&&(f=!!m[1],p=!f)):(s&&(s.lastIndex=0,f=s.test(r)),!f&&c&&(c.lastIndex=0,p=c.test(r))),f||p)if(f){let e=l.length-1;for(;e>0&&l[e].indent!==-2;)e--;if(e>0){l.length=e+1,d=l[e],a.insertFirst(n,d.line,u),d.line=n,d.indent=u,d.endAbove=n;continue}}else{l.push({indent:-2,endAbove:n,line:n});continue}if(d.indent>u){do l.pop(),d=l[l.length-1];while(d.indent>u);let e=d.endAbove-1;e-n>=1&&a.insertFirst(n,e,u)}d.indent===u?d.endAbove=n:l.push({indent:u,endAbove:n,line:n})}return a.toIndentRanges(e)}var tu=m(`editor.foldBackground`,{light:ia(Ln,.3),dark:ia(Ln,.3),hcDark:null,hcLight:null},L(1045,`Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations.`),!0);m(`editor.foldPlaceholderForeground`,{light:`#808080`,dark:`#808080`,hcDark:null,hcLight:null},L(1046,`Color of the collapsed text after the first line of a folded range.`)),m(`editorGutter.foldingControlForeground`,va,L(1047,`Color of the folding control in the editor gutter.`));var nu=tr(`folding-expanded`,G.chevronDown,L(1048,`Icon for expanded ranges in the editor glyph margin.`)),ru=tr(`folding-collapsed`,G.chevronRight,L(1049,`Icon for collapsed ranges in the editor glyph margin.`)),iu=tr(`folding-manual-collapsed`,ru,L(1050,`Icon for manually collapsed ranges in the editor glyph margin.`)),au=tr(`folding-manual-expanded`,nu,L(1051,`Icon for manually expanded ranges in the editor glyph margin.`)),ou={color:k(tu),position:1},su=L(1052,`Click to expand the range.`),cu=L(1053,`Click to collapse the range.`),lu=class e{static{this.COLLAPSED_VISUAL_DECORATION=V.register({description:`folding-collapsed-visual-decoration`,stickiness:0,afterContentClassName:`inline-folded`,isWholeLine:!0,linesDecorationsTooltip:su,firstLineDecorationClassName:O.asClassName(ru)})}static{this.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=V.register({description:`folding-collapsed-highlighted-visual-decoration`,stickiness:0,afterContentClassName:`inline-folded`,className:`folded-background`,minimap:ou,isWholeLine:!0,linesDecorationsTooltip:su,firstLineDecorationClassName:O.asClassName(ru)})}static{this.MANUALLY_COLLAPSED_VISUAL_DECORATION=V.register({description:`folding-manually-collapsed-visual-decoration`,stickiness:0,afterContentClassName:`inline-folded`,isWholeLine:!0,linesDecorationsTooltip:su,firstLineDecorationClassName:O.asClassName(iu)})}static{this.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=V.register({description:`folding-manually-collapsed-highlighted-visual-decoration`,stickiness:0,afterContentClassName:`inline-folded`,className:`folded-background`,minimap:ou,isWholeLine:!0,linesDecorationsTooltip:su,firstLineDecorationClassName:O.asClassName(iu)})}static{this.NO_CONTROLS_COLLAPSED_RANGE_DECORATION=V.register({description:`folding-no-controls-range-decoration`,stickiness:0,afterContentClassName:`inline-folded`,isWholeLine:!0,linesDecorationsTooltip:su})}static{this.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION=V.register({description:`folding-no-controls-range-decoration`,stickiness:0,afterContentClassName:`inline-folded`,className:`folded-background`,minimap:ou,isWholeLine:!0,linesDecorationsTooltip:su})}static{this.EXPANDED_VISUAL_DECORATION=V.register({description:`folding-expanded-visual-decoration`,stickiness:1,isWholeLine:!0,firstLineDecorationClassName:`alwaysShowFoldIcons `+O.asClassName(nu),linesDecorationsTooltip:cu})}static{this.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=V.register({description:`folding-expanded-auto-hide-visual-decoration`,stickiness:1,isWholeLine:!0,firstLineDecorationClassName:O.asClassName(nu),linesDecorationsTooltip:cu})}static{this.MANUALLY_EXPANDED_VISUAL_DECORATION=V.register({description:`folding-manually-expanded-visual-decoration`,stickiness:0,isWholeLine:!0,firstLineDecorationClassName:`alwaysShowFoldIcons `+O.asClassName(au),linesDecorationsTooltip:cu})}static{this.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION=V.register({description:`folding-manually-expanded-auto-hide-visual-decoration`,stickiness:0,isWholeLine:!0,firstLineDecorationClassName:O.asClassName(au),linesDecorationsTooltip:cu})}static{this.NO_CONTROLS_EXPANDED_RANGE_DECORATION=V.register({description:`folding-no-controls-range-decoration`,stickiness:0,isWholeLine:!0})}static{this.HIDDEN_RANGE_DECORATION=V.register({description:`folding-hidden-range-decoration`,stickiness:1})}constructor(e){this.editor=e,this.showFoldingControls=`mouseover`,this.showFoldingHighlights=!0}getDecorationOption(t,n,r){return n?e.HIDDEN_RANGE_DECORATION:this.showFoldingControls===`never`?t?this.showFoldingHighlights?e.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION:e.NO_CONTROLS_COLLAPSED_RANGE_DECORATION:e.NO_CONTROLS_EXPANDED_RANGE_DECORATION:t?r?this.showFoldingHighlights?e.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:e.MANUALLY_COLLAPSED_VISUAL_DECORATION:this.showFoldingHighlights?e.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:e.COLLAPSED_VISUAL_DECORATION:this.showFoldingControls===`mouseover`?r?e.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION:e.EXPANDED_AUTO_HIDE_VISUAL_DECORATION:r?e.MANUALLY_EXPANDED_VISUAL_DECORATION:e.EXPANDED_VISUAL_DECORATION}changeDecorations(e){return this.editor.changeDecorations(e)}removeDecorations(e){this.editor.removeDecorations(e)}},uu={},du=`syntax`,fu=class{constructor(e,t,n,r,i){this.editorModel=e,this.providers=t,this.handleFoldingRangesChange=n,this.foldingRangesLimit=r,this.fallbackRangeProvider=i,this.id=du,this.disposables=new P,i&&this.disposables.add(i);for(let e of t)typeof e.onDidChange==`function`&&this.disposables.add(e.onDidChange(n))}compute(e){return pu(this.providers,this.editorModel,e).then(t=>this.editorModel.isDisposed()?null:t?hu(t,this.foldingRangesLimit):this.fallbackRangeProvider?.compute(e)??null)}dispose(){this.disposables.dispose()}};function pu(e,t,n){let r=null,i=e.map((e,i)=>Promise.resolve(e.provideFoldingRanges(t,uu,n)).then(e=>{if(!n.isCancellationRequested&&Array.isArray(e)){Array.isArray(r)||(r=[]);let n=t.getLineCount();for(let t of e)t.start>0&&t.end>t.start&&t.end<=n&&r.push({start:t.start,end:t.end,rank:i,kind:t.kind})}},ai));return Promise.all(i).then(e=>r)}var mu=class{constructor(e){this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=e}add(e,t,n,r){if(e>16777215||t>16777215)return;let i=this._length;this._startIndexes[i]=e,this._endIndexes[i]=t,this._nestingLevels[i]=r,this._types[i]=n,this._length++,r<30&&(this._nestingLevelCounts[r]=(this._nestingLevelCounts[r]||0)+1)}toIndentRanges(){let e=this._foldingRangesLimit.limit;if(this._length<=e){this._foldingRangesLimit.update(this._length,!1);let e=new Uint32Array(this._length),t=new Uint32Array(this._length);for(let n=0;n<this._length;n++)e[n]=this._startIndexes[n],t[n]=this._endIndexes[n];return new Ml(e,t,this._types)}else{this._foldingRangesLimit.update(this._length,e);let t=0,n=this._nestingLevelCounts.length;for(let r=0;r<this._nestingLevelCounts.length;r++){let i=this._nestingLevelCounts[r];if(i){if(i+t>e){n=r;break}t+=i}}let r=new Uint32Array(e),i=new Uint32Array(e),a=[];for(let o=0,s=0;o<this._length;o++){let c=this._nestingLevels[o];(c<n||c===n&&t++<e)&&(r[s]=this._startIndexes[o],i[s]=this._endIndexes[o],a[s]=this._types[o],s++)}return new Ml(r,i,a)}}};function hu(e,t){let n=e.sort((e,t)=>{let n=e.start-t.start;return n===0&&(n=e.rank-t.rank),n}),r=new mu(t),i,a=[];for(let e of n)if(!i)i=e,r.add(e.start,e.end,e.kind&&e.kind.value,a.length);else if(e.start>i.start)if(e.end<=i.end)a.push(i),i=e,r.add(e.start,e.end,e.kind&&e.kind.value,a.length);else{if(e.start>i.end){do i=a.pop();while(i&&e.start>i.end);i&&a.push(i),i=e}r.add(e.start,e.end,e.kind&&e.kind.value,a.length)}return r.toIndentRanges()}var gu=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},_u=function(e,t){return function(n,r){t(n,r,e)}},vu,q=new D(`foldingEnabled`,!1),yu=class extends B{static{vu=this}static{this.ID=`editor.contrib.folding`}static get(e){return e.getContribution(vu.ID)}static getFoldingRangeProviders(e,t){let n=e.foldingRangeProvider.ordered(t);return vu._foldingRangeSelector?.(n,t)??n}constructor(e,t,n,r,i,a){super(),this.contextKeyService=t,this.languageConfigurationService=n,this.languageFeaturesService=a,this.localToDispose=this._register(new P),this.editor=e,this._foldingLimitReporter=this._register(new bu(e));let o=this.editor.getOptions();this._isEnabled=o.get(52),this._useFoldingProviders=o.get(53)!==`indentation`,this._unfoldOnClickAfterEndOfLine=o.get(57),this._restoringViewState=!1,this._currentModelHasFoldedImports=!1,this._foldingImportsByDefault=o.get(55),this.updateDebounceInfo=i.for(a.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 lu(e),this.foldingDecorationProvider.showFoldingControls=o.get(126),this.foldingDecorationProvider.showFoldingHighlights=o.get(54),this.foldingEnabled=q.bindTo(this.contextKeyService),this.foldingEnabled.set(this._isEnabled),this._register(this.editor.onDidChangeModel(()=>this.onModelChanged())),this._register(this.editor.onDidChangeConfiguration(e=>{if(e.hasChanged(52)&&(this._isEnabled=this.editor.getOptions().get(52),this.foldingEnabled.set(this._isEnabled),this.onModelChanged()),e.hasChanged(56)&&this.onModelChanged(),e.hasChanged(126)||e.hasChanged(54)){let e=this.editor.getOptions();this.foldingDecorationProvider.showFoldingControls=e.get(126),this.foldingDecorationProvider.showFoldingHighlights=e.get(54),this.triggerFoldingModelChanged()}e.hasChanged(53)&&(this._useFoldingProviders=this.editor.getOptions().get(53)!==`indentation`,this.onFoldingStrategyChanged()),e.hasChanged(57)&&(this._unfoldOnClickAfterEndOfLine=this.editor.getOptions().get(57)),e.hasChanged(55)&&(this._foldingImportsByDefault=this.editor.getOptions().get(55))})),this.onModelChanged()}saveViewState(){let e=this.editor.getModel();if(!e||!this._isEnabled||e.isTooLargeForTokenization())return{};if(this.foldingModel){let t=this.foldingModel.getMemento(),n=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:t,lineCount:e.getLineCount(),provider:n,foldedImports:this._currentModelHasFoldedImports}}}restoreViewState(e){let t=this.editor.getModel();if(!(!t||!this._isEnabled||t.isTooLargeForTokenization()||!this.hiddenRangeModel)&&e&&(this._currentModelHasFoldedImports=!!e.foldedImports,e.collapsedRegions&&e.collapsedRegions.length>0&&this.foldingModel)){this._restoringViewState=!0;try{this.foldingModel.applyMemento(e.collapsedRegions)}finally{this._restoringViewState=!1}}}onModelChanged(){this.localToDispose.clear();let e=this.editor.getModel();!this._isEnabled||!e||e.isTooLargeForTokenization()||(this._currentModelHasFoldedImports=!1,this.foldingModel=new Pl(e,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new Kl(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange(e=>this.onHiddenRangesChanges(e))),this.updateScheduler=new Lt(this.updateDebounceInfo.get(e)),this.localToDispose.add(this.updateScheduler),this.cursorChangedScheduler=new Lr(()=>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(e=>this.onDidChangeModelContent(e))),this.localToDispose.add(this.editor.onDidChangeCursorPosition(()=>this.onCursorPositionChanged())),this.localToDispose.add(this.editor.onMouseDown(e=>this.onEditorMouseDown(e))),this.localToDispose.add(this.editor.onMouseUp(e=>this.onEditorMouseUp(e))),this.localToDispose.add({dispose:()=>{this.foldingRegionPromise&&=(this.foldingRegionPromise.cancel(),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(e){if(this.rangeProvider)return this.rangeProvider;let t=new Zl(e,this.languageConfigurationService,this._foldingLimitReporter);if(this.rangeProvider=t,this._useFoldingProviders&&this.foldingModel){let n=vu.getFoldingRangeProviders(this.languageFeaturesService,e);n.length>0&&(this.rangeProvider=new fu(e,n,()=>this.triggerFoldingModelChanged(),this._foldingLimitReporter,t))}return this.rangeProvider}getFoldingModel(){return this.foldingModelPromise}onDidChangeModelContent(e){this.hiddenRangeModel?.notifyChangeModelContent(e),this.triggerFoldingModelChanged()}triggerFoldingModelChanged(){this.updateScheduler&&(this.foldingRegionPromise&&=(this.foldingRegionPromise.cancel(),null),this.foldingModelPromise=this.updateScheduler.trigger(()=>{let e=this.foldingModel;if(!e)return null;let t=new Pi,n=this.getRangeProvider(e.textModel),r=this.foldingRegionPromise=it(e=>n.compute(e));return r.then(n=>{if(n&&r===this.foldingRegionPromise){let r;if(this._foldingImportsByDefault&&!this._currentModelHasFoldedImports){let e=n.setCollapsedAllOfType(fr.Imports.value,!0);e&&(r=Gi.capture(this.editor),this._currentModelHasFoldedImports=e)}let i=this.editor.getSelections();e.update(n,xu(i)),r?.restore(this.editor);let a=this.updateDebounceInfo.update(e.textModel,t.elapsed());this.updateScheduler&&(this.updateScheduler.defaultDelay=a)}return e})}).then(void 0,e=>(Hi(e),null)))}onHiddenRangesChanges(e){if(this.hiddenRangeModel&&e.length&&!this._restoringViewState){let e=this.editor.getSelections();e&&this.hiddenRangeModel.adjustSelections(e)&&this.editor.setSelections(e)}this.editor.setHiddenAreas(e,this)}onCursorPositionChanged(){this.hiddenRangeModel&&this.hiddenRangeModel.hasRanges()&&this.cursorChangedScheduler.schedule()}revealCursor(){let e=this.getFoldingModel();e&&e.then(e=>{if(e){let t=this.editor.getSelections();if(t&&t.length>0){let n=[];for(let r of t){let t=r.selectionStartLineNumber;this.hiddenRangeModel&&this.hiddenRangeModel.isHidden(t)&&n.push(...e.getAllRegionsAtLine(t,e=>e.isCollapsed&&t>e.startLineNumber))}n.length&&(e.toggleCollapseState(n),this.reveal(t[0].getPosition()))}}}).then(void 0,Hi)}onEditorMouseDown(e){if(this.mouseDownInfo=null,!this.hiddenRangeModel||!e.target||!e.target.range||!e.event.leftButton&&!e.event.middleButton)return;let t=e.target.range,n=!1;switch(e.target.type){case 4:{let t=e.target.detail,r=e.target.element.offsetLeft;if(t.offsetX-r<4)return;n=!0;break}case 7:if(this._unfoldOnClickAfterEndOfLine&&this.hiddenRangeModel.hasRanges()&&!e.target.detail.isAfterLines)break;return;case 6:if(this.hiddenRangeModel.hasRanges()){let e=this.editor.getModel();if(e&&t.startColumn===e.getLineMaxColumn(t.startLineNumber))break}return;default:return}this.mouseDownInfo={lineNumber:t.startLineNumber,iconClicked:n}}onEditorMouseUp(e){let t=this.foldingModel;if(!t||!this.mouseDownInfo||!e.target)return;let n=this.mouseDownInfo.lineNumber,r=this.mouseDownInfo.iconClicked,i=e.target.range;if(!i||i.startLineNumber!==n)return;if(r){if(e.target.type!==4)return}else{let e=this.editor.getModel();if(!e||i.startColumn!==e.getLineMaxColumn(n))return}let a=t.getRegionAtLine(n);if(a&&a.startLineNumber===n){let i=a.isCollapsed;if(r||i){let r=e.event.altKey,o=[];if(r){let e=t.getRegionsInside(null,e=>!e.containedBy(a)&&!a.containedBy(e));for(let t of e)t.isCollapsed&&o.push(t);o.length===0&&(o=e)}else{let n=e.event.middleButton||e.event.shiftKey;if(n)for(let e of t.getRegionsInside(a))e.isCollapsed===i&&o.push(e);(i||!n||o.length===0)&&o.push(a)}t.toggleCollapseState(o),this.reveal({lineNumber:n,column:1})}}}reveal(e){this.editor.revealPositionInCenterIfOutsideViewport(e,0)}};yu=vu=gu([_u(1,w),_u(2,zt),_u(3,de),_u(4,li),_u(5,j)],yu);var bu=class extends B{constructor(e){super(),this.editor=e,this._onDidChange=this._register(new I),this._computed=0,this._limited=!1}get limit(){return this.editor.getOptions().get(56)}update(e,t){(e!==this._computed||t!==this._limited)&&(this._computed=e,this._limited=t,this._onDidChange.fire())}},J=class extends b{runEditorCommand(e,t,n){let r=e.get(zt),i=yu.get(t);if(!i)return;let a=i.getFoldingModel();if(a)return this.reportTelemetry(e,t),a.then(e=>{if(e){this.invoke(i,e,t,n,r);let a=t.getSelection();a&&i.reveal(a.getStartPosition())}})}getSelectedLines(e){let t=e.getSelections();return t?t.map(e=>e.startLineNumber):[]}getLineNumbers(e,t){return e&&e.selectionLines?e.selectionLines.map(e=>e+1):this.getSelectedLines(t)}run(e,t){}};function xu(e){return!e||e.length===0?{startsInside:()=>!1}:{startsInside(t,n){for(let r of e){let e=r.startLineNumber;if(e>=t&&e<=n)return!0}return!1}}}function Su(e){if(!Ci(e)){if(!xe(e))return!1;let t=e;if(!Ci(t.levels)&&!$t(t.levels)||!Ci(t.direction)&&!Ge(t.direction)||!Ci(t.selectionLines)&&(!Array.isArray(t.selectionLines)||!t.selectionLines.every($t)))return!1}return!0}var Cu=class extends J{constructor(){super({id:`editor.unfold`,label:S(1025,`Unfold`),precondition:q,kbOpts:{kbExpr:x.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:
9
+ * 'levels': Number of levels to unfold. If not set, defaults to 1.
10
+ * 'direction': If 'up', unfold given number of levels up otherwise unfolds down.
11
+ * '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.
12
+ `,constraint:Su,schema:{type:`object`,properties:{levels:{type:`number`,default:1},direction:{type:`string`,enum:[`up`,`down`],default:`down`},selectionLines:{type:`array`,items:{type:`number`}}}}}]}})}invoke(e,t,n,r){let i=r&&r.levels||1,a=this.getLineNumbers(r,n);r&&r.direction===`up`?Ll(t,!1,i,a):Il(t,!1,i,a)}},wu=class extends J{constructor(){super({id:`editor.unfoldRecursively`,label:S(1026,`Unfold Recursively`),precondition:q,kbOpts:{kbExpr:x.editorTextFocus,primary:E(2089,2142),weight:100}})}invoke(e,t,n,r){Il(t,!1,Number.MAX_VALUE,this.getSelectedLines(n))}},Tu=class extends J{constructor(){super({id:`editor.fold`,label:S(1027,`Fold`),precondition:q,kbOpts:{kbExpr:x.editorTextFocus,primary:3164,mac:{primary:2652},weight:100},metadata:{description:`Fold the content in the editor`,args:[{name:`Fold editor argument`,description:`Property-value pairs that can be passed through this argument:
13
+ * 'levels': Number of levels to fold.
14
+ * 'direction': If 'up', folds given number of levels up otherwise folds down.
15
+ * 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the fold action to. If not set, the active selection(s) will be used.
16
+ If no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead.
17
+ `,constraint:Su,schema:{type:`object`,properties:{levels:{type:`number`},direction:{type:`string`,enum:[`up`,`down`]},selectionLines:{type:`array`,items:{type:`number`}}}}}]}})}invoke(e,t,n,r){let i=this.getLineNumbers(r,n),a=r&&r.levels,o=r&&r.direction;typeof a!=`number`&&typeof o!=`string`?Rl(t,!0,i):o===`up`?Ll(t,!0,a||1,i):Il(t,!0,a||1,i)}},Eu=class extends J{constructor(){super({id:`editor.toggleFold`,label:S(1028,`Toggle Fold`),precondition:q,kbOpts:{kbExpr:x.editorTextFocus,primary:E(2089,2090),weight:100}})}invoke(e,t,n){Fl(t,1,this.getSelectedLines(n))}},Du=class extends J{constructor(){super({id:`editor.foldRecursively`,label:S(1029,`Fold Recursively`),precondition:q,kbOpts:{kbExpr:x.editorTextFocus,primary:E(2089,2140),weight:100}})}invoke(e,t,n){let r=this.getSelectedLines(n);Il(t,!0,Number.MAX_VALUE,r)}},Ou=class extends J{constructor(){super({id:`editor.toggleFoldRecursively`,label:S(1030,`Toggle Fold Recursively`),precondition:q,kbOpts:{kbExpr:x.editorTextFocus,primary:E(2089,3114),weight:100}})}invoke(e,t,n){let r=this.getSelectedLines(n);Fl(t,Number.MAX_VALUE,r)}},ku=class extends J{constructor(){super({id:`editor.foldAllBlockComments`,label:S(1031,`Fold All Block Comments`),precondition:q,kbOpts:{kbExpr:x.editorTextFocus,primary:E(2089,2138),weight:100}})}invoke(e,t,n,r,i){if(t.regions.hasTypes())Hl(t,fr.Comment.value,!0);else{let e=n.getModel();if(!e)return;let r=i.getLanguageConfiguration(e.getLanguageId()).comments;r&&r.blockCommentStartToken&&Vl(t,RegExp(`^\\s*`+kr(r.blockCommentStartToken)),!0)}}},Au=class extends J{constructor(){super({id:`editor.foldAllMarkerRegions`,label:S(1032,`Fold All Regions`),precondition:q,kbOpts:{kbExpr:x.editorTextFocus,primary:E(2089,2077),weight:100}})}invoke(e,t,n,r,i){if(t.regions.hasTypes())Hl(t,fr.Region.value,!0);else{let e=n.getModel();if(!e)return;let r=i.getLanguageConfiguration(e.getLanguageId()).foldingRules;r&&r.markers&&r.markers.start&&Vl(t,new RegExp(r.markers.start),!0)}}},ju=class extends J{constructor(){super({id:`editor.unfoldAllMarkerRegions`,label:S(1033,`Unfold All Regions`),precondition:q,kbOpts:{kbExpr:x.editorTextFocus,primary:E(2089,2078),weight:100}})}invoke(e,t,n,r,i){if(t.regions.hasTypes())Hl(t,fr.Region.value,!1);else{let e=n.getModel();if(!e)return;let r=i.getLanguageConfiguration(e.getLanguageId()).foldingRules;r&&r.markers&&r.markers.start&&Vl(t,new RegExp(r.markers.start),!1)}}},Mu=class extends J{constructor(){super({id:`editor.foldAllExcept`,label:S(1034,`Fold All Except Selected`),precondition:q,kbOpts:{kbExpr:x.editorTextFocus,primary:E(2089,2136),weight:100}})}invoke(e,t,n){Bl(t,!0,this.getSelectedLines(n))}},Nu=class extends J{constructor(){super({id:`editor.unfoldAllExcept`,label:S(1035,`Unfold All Except Selected`),precondition:q,kbOpts:{kbExpr:x.editorTextFocus,primary:E(2089,2134),weight:100}})}invoke(e,t,n){Bl(t,!1,this.getSelectedLines(n))}},Pu=class extends J{constructor(){super({id:`editor.foldAll`,label:S(1036,`Fold All`),precondition:q,kbOpts:{kbExpr:x.editorTextFocus,primary:E(2089,2069),weight:100}})}invoke(e,t,n){Il(t,!0)}},Fu=class extends J{constructor(){super({id:`editor.unfoldAll`,label:S(1037,`Unfold All`),precondition:q,kbOpts:{kbExpr:x.editorTextFocus,primary:E(2089,2088),weight:100}})}invoke(e,t,n){Il(t,!1)}},Iu=class e extends J{static{this.ID_PREFIX=`editor.foldLevel`}static{this.ID=t=>e.ID_PREFIX+t}getFoldingLevel(){return parseInt(this.id.substr(e.ID_PREFIX.length))}invoke(e,t,n){zl(t,this.getFoldingLevel(),!0,this.getSelectedLines(n))}},Lu=class extends J{constructor(){super({id:`editor.gotoParentFold`,label:S(1038,`Go to Parent Fold`),precondition:q,kbOpts:{kbExpr:x.editorTextFocus,weight:100}})}invoke(e,t,n){let r=this.getSelectedLines(n);if(r.length>0){let e=Ul(r[0],t);e!==null&&n.setSelection({startLineNumber:e,startColumn:1,endLineNumber:e,endColumn:1})}}},Ru=class extends J{constructor(){super({id:`editor.gotoPreviousFold`,label:S(1039,`Go to Previous Folding Range`),precondition:q,kbOpts:{kbExpr:x.editorTextFocus,weight:100}})}invoke(e,t,n){let r=this.getSelectedLines(n);if(r.length>0){let e=Wl(r[0],t);e!==null&&n.setSelection({startLineNumber:e,startColumn:1,endLineNumber:e,endColumn:1})}}},zu=class extends J{constructor(){super({id:`editor.gotoNextFold`,label:S(1040,`Go to Next Folding Range`),precondition:q,kbOpts:{kbExpr:x.editorTextFocus,weight:100}})}invoke(e,t,n){let r=this.getSelectedLines(n);if(r.length>0){let e=Gl(r[0],t);e!==null&&n.setSelection({startLineNumber:e,startColumn:1,endLineNumber:e,endColumn:1})}}},Bu=class extends J{constructor(){super({id:`editor.createFoldingRangeFromSelection`,label:S(1041,`Create Folding Range from Selection`),precondition:q,kbOpts:{kbExpr:x.editorTextFocus,primary:E(2089,2135),weight:100}})}invoke(e,t,n){let r=[],i=n.getSelections();if(i){for(let e of i){let t=e.endLineNumber;e.endColumn===1&&--t,t>e.startLineNumber&&(r.push({startLineNumber:e.startLineNumber,endLineNumber:t,type:void 0,isCollapsed:!0,source:1}),n.setSelection({startLineNumber:e.startLineNumber,startColumn:1,endLineNumber:e.startLineNumber,endColumn:1}))}if(r.length>0){r.sort((e,t)=>e.startLineNumber-t.startLineNumber);let e=Ml.sanitizeAndMerge(t.regions,r,n.getModel()?.getLineCount());t.updatePost(Ml.fromFoldRanges(e))}}}},Vu=class extends J{constructor(){super({id:`editor.removeManualFoldingRanges`,label:S(1042,`Remove Manual Folding Ranges`),precondition:q,kbOpts:{kbExpr:x.editorTextFocus,primary:E(2089,2137),weight:100}})}invoke(e,t,n){let r=n.getSelections();if(r){let n=[];for(let e of r){let{startLineNumber:t,endLineNumber:r}=e;n.push(r>=t?{startLineNumber:t,endLineNumber:r}:{endLineNumber:r,startLineNumber:t})}t.removeManualRanges(n),e.triggerFoldingModelChanged()}}},Hu=class extends J{constructor(){super({id:`editor.toggleImportFold`,label:S(1043,`Toggle Import Fold`),precondition:q,kbOpts:{kbExpr:x.editorTextFocus,weight:100}})}async invoke(e,t){let n=[],r=t.regions;for(let e=r.length-1;e>=0;e--)r.getType(e)===fr.Imports.value&&n.push(r.toRegion(e));t.toggleCollapseState(n),e.triggerFoldingModelChanged()}};bt(yu.ID,yu,0),A(Cu),A(wu),A(Tu),A(Du),A(Ou),A(Pu),A(Fu),A(ku),A(Au),A(ju),A(Mu),A(Nu),A(Eu),A(Lu),A(Ru),A(zu),A(Bu),A(Vu),A(Hu);for(let e=1;e<=7;e++)r(new Iu({id:Iu.ID(e),label:S(1044,`Fold Level {0}`,e),precondition:q,kbOpts:{kbExpr:x.editorTextFocus,primary:E(2089,2048|21+e),weight:100}}));Le.registerCommand(`_executeFoldingRangeProvider`,async function(e,...t){let[n]=t;if(!(n instanceof Fr))throw vt();let r=e.get(j),i=e.get(Xe).getModel(n);if(!i)throw vt();let a=e.get(Ie);if(!a.getValue(`editor.folding`,{resource:n}))return[];let o=e.get(zt),s=a.getValue(`editor.foldingStrategy`,{resource:n}),c={get limit(){return a.getValue(`editor.foldingMaximumRegions`,{resource:n})},update:(e,t)=>{}},l=new Zl(i,o,c),u=l;if(s!==`indentation`){let e=yu.getFoldingRangeProviders(r,i);e.length&&(u=new fu(i,e,()=>{},c,l))}let d=await u.compute(Qe.None),f=[];try{if(d)for(let e=0;e<d.length;e++){let t=d.getType(e);f.push({start:d.getStartLineNumber(e),end:d.getEndLineNumber(e),kind:t?fr.fromValue(t):void 0})}return f}finally{u.dispose()}});var Uu=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Wu=function(e,t){return function(n,r){t(n,r,e)}},Gu=class{static{this.ID=`editor.contrib.autoFormat`}constructor(e,t,n,r){this._editor=e,this._languageFeaturesService=t,this._workerService=n,this._accessibilitySignalService=r,this._disposables=new P,this._sessionDisposables=new P,this._disposables.add(t.onTypeFormattingEditProvider.onDidChange(this._update,this)),this._disposables.add(e.onDidChangeModel(()=>this._update())),this._disposables.add(e.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(e.onDidChangeConfiguration(e=>{e.hasChanged(65)&&this._update()})),this._update()}dispose(){this._disposables.dispose(),this._sessionDisposables.dispose()}_update(){if(this._sessionDisposables.clear(),!this._editor.getOption(65)||!this._editor.hasModel())return;let e=this._editor.getModel(),[t]=this._languageFeaturesService.onTypeFormattingEditProvider.ordered(e);if(!t||!t.autoFormatTriggerCharacters)return;let n=new te;for(let e of t.autoFormatTriggerCharacters)n.add(e.charCodeAt(0));this._sessionDisposables.add(this._editor.onDidType(e=>{let t=e.charCodeAt(e.length-1);n.has(t)&&this._trigger(String.fromCharCode(t))}))}_trigger(e){if(!this._editor.hasModel()||this._editor.getSelections().length>1||!this._editor.getSelection().isEmpty())return;let t=this._editor.getModel(),n=this._editor.getPosition(),r=new Ct,i=this._editor.onDidChangeModelContent(e=>{if(e.isFlush){r.cancel(),i.dispose();return}for(let t=0,a=e.changes.length;t<a;t++)if(e.changes[t].range.endLineNumber<=n.lineNumber){r.cancel(),i.dispose();return}});wr(this._workerService,this._languageFeaturesService,t,n,e,t.getFormattingOptions(),r.token).then(e=>{r.token.isCancellationRequested||Sr(e)&&(this._accessibilitySignalService.playSignal(ii.format,{userGesture:!1}),wn.execute(this._editor,e,!0))}).finally(()=>{i.dispose()})}};Gu=Uu([Wu(1,j),Wu(2,rt),Wu(3,ji)],Gu);var Ku=class{static{this.ID=`editor.contrib.formatOnPaste`}constructor(e,t,n){this.editor=e,this._languageFeaturesService=t,this._instantiationService=n,this._callOnDispose=new P,this._callOnModel=new P,this._callOnDispose.add(e.onDidChangeConfiguration(()=>this._update())),this._callOnDispose.add(e.onDidChangeModel(()=>this._update())),this._callOnDispose.add(e.onDidChangeModelLanguage(()=>this._update())),this._callOnDispose.add(t.documentRangeFormattingEditProvider.onDidChange(this._update,this))}dispose(){this._callOnDispose.dispose(),this._callOnModel.dispose()}_update(){this._callOnModel.clear(),this.editor.getOption(64)&&this.editor.hasModel()&&this._languageFeaturesService.documentRangeFormattingEditProvider.has(this.editor.getModel())&&this._callOnModel.add(this.editor.onDidPaste(({range:e})=>this._trigger(e)))}_trigger(e){this.editor.hasModel()&&(this.editor.getSelections().length>1||this._instantiationService.invokeFunction(ei,this.editor,e,2,l.None,Qe.None,!1).catch(Hi))}};Ku=Uu([Wu(1,j),Wu(2,Ue)],Ku);var qu=class extends b{constructor(){super({id:`editor.action.formatDocument`,label:S(1057,`Format Document`),precondition:C.and(x.notInCompositeEditor,x.writable,x.hasDocumentFormattingProvider),kbOpts:{kbExpr:x.editorTextFocus,primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{group:`1_modification`,order:1.3}})}async run(e,t){if(t.hasModel()){let n=e.get(Ue);await e.get(St).showWhile(n.invokeFunction(Di,t,1,l.None,Qe.None,!0),250)}}},Ju=class extends b{constructor(){super({id:`editor.action.formatSelection`,label:S(1058,`Format Selection`),precondition:C.and(x.writable,x.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:x.editorTextFocus,primary:E(2089,2084),weight:100},contextMenuOpts:{when:x.hasNonEmptySelection,group:`1_modification`,order:1.31}})}async run(e,t){if(!t.hasModel())return;let n=e.get(Ue),r=t.getModel(),i=t.getSelections().map(e=>e.isEmpty()?new _(e.startLineNumber,1,e.startLineNumber,r.getLineMaxColumn(e.startLineNumber)):e);await e.get(St).showWhile(n.invokeFunction(ei,t,i,1,l.None,Qe.None,!0),250)}};bt(Gu.ID,Gu,2),bt(Ku.ID,Ku,2),A(qu),A(Ju),Le.registerCommand(`editor.action.format`,async e=>{let t=e.get(Ei).getFocusedCodeEditor();if(!t||!t.hasModel())return;let n=e.get(tt);t.getSelection().isEmpty()?await n.executeCommand(`editor.action.formatDocument`):await n.executeCommand(`editor.action.formatSelection`)});function Yu(e,t,n,r){if(e.getLineCount()===1&&e.getLineMaxColumn(1)===1)return[];let i=t.getLanguageConfiguration(e.getLanguageId()).indentRulesSupport;if(!i)return[];let a=new xt(e,i,t);for(r=Math.min(r,e.getLineCount());n<=r&&a.shouldIgnore(n);)n++;if(n>r-1)return[];let{tabSize:o,indentSize:s,insertSpaces:c}=e.getOptions(),l=(e,t)=>(t||=1,sn.shiftIndent(e,e.length+t,o,s,c)),u=(e,t)=>(t||=1,sn.unshiftIndent(e,e.length+t,o,s,c)),d=[],f=H(e.getLineContent(n)),p=f;a.shouldIncrease(n)?(p=l(p),f=l(f)):a.shouldIndentNextLine(n)&&(p=l(p)),n++;for(let t=n;t<=r;t++){if(Xu(e,t))continue;let n=H(e.getLineContent(t)),r=p;a.shouldDecrease(t,r)&&(p=u(p),f=u(f)),n!==p&&d.push(v.replaceMove(new y(t,1,t,n.length+1),Fi(p,s,c))),!a.shouldIgnore(t)&&(a.shouldIncrease(t,r)?(f=l(f),p=f):p=a.shouldIndentNextLine(t,r)?l(p):f)}return d}function Xu(e,t){return e.tokenization.isCheapToTokenize(t)?e.tokenization.getLineTokens(t).getStandardTokenType(0)===2:!1}function Zu(e,t){let n=0;for(let r=0;r<e.length;r++)e.charAt(r)===` `?n+=t:n++;return n}function Qu(e,t,n){e=e<0?0:e;let r=``;if(!n){let n=Math.floor(e/t);e%=t;for(let e=0;e<n;e++)r+=` `}for(let t=0;t<e;t++)r+=` `;return r}var $u=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},ed=function(e,t){return function(n,r){t(n,r,e)}},td=class e extends b{static{this.ID=`editor.action.indentationToSpaces`}constructor(){super({id:e.ID,label:S(1189,`Convert Indentation to Spaces`),precondition:x.writable,metadata:{description:S(1190,`Convert the tab indentation to spaces.`)}})}run(e,t){let n=t.getModel();if(!n)return;let r=n.getOptions(),i=t.getSelection();if(!i)return;let a=new md(i,r.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[a]),t.pushUndoStop(),n.updateOptions({insertSpaces:!0})}},nd=class e extends b{static{this.ID=`editor.action.indentationToTabs`}constructor(){super({id:e.ID,label:S(1191,`Convert Indentation to Tabs`),precondition:x.writable,metadata:{description:S(1192,`Convert the spaces indentation to tabs.`)}})}run(e,t){let n=t.getModel();if(!n)return;let r=n.getOptions(),i=t.getSelection();if(!i)return;let a=new hd(i,r.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[a]),t.pushUndoStop(),n.updateOptions({insertSpaces:!1})}},rd=class extends b{constructor(e,t,n){super(n),this.insertSpaces=e,this.displaySizeOnly=t}run(e,t){let n=e.get(or),r=e.get(Xe),i=t.getModel();if(!i)return;let a=r.getCreationOptions(i.getLanguageId(),i.uri,i.isForSimpleWidget),o=i.getOptions(),s=[1,2,3,4,5,6,7,8].map(e=>({id:e.toString(),label:e.toString(),description:e===a.tabSize&&e===o.tabSize?L(1185,`Configured Tab Size`):e===a.tabSize?L(1186,`Default Tab Size`):e===o.tabSize?L(1187,`Current Tab Size`):void 0})),c=Math.min(i.getOptions().tabSize-1,7);setTimeout(()=>{n.pick(s,{placeHolder:L(1188,`Select Tab Size for Current File`),activeItem:s[c]}).then(e=>{if(e&&i&&!i.isDisposed()){let t=parseInt(e.label,10);this.displaySizeOnly?i.updateOptions({tabSize:t}):i.updateOptions({tabSize:t,indentSize:t,insertSpaces:this.insertSpaces})}})},50)}},id=class e extends rd{static{this.ID=`editor.action.indentUsingTabs`}constructor(){super(!1,!1,{id:e.ID,label:S(1193,`Indent Using Tabs`),precondition:void 0,metadata:{description:S(1194,`Use indentation with tabs.`)}})}},ad=class e extends rd{static{this.ID=`editor.action.indentUsingSpaces`}constructor(){super(!0,!1,{id:e.ID,label:S(1195,`Indent Using Spaces`),precondition:void 0,metadata:{description:S(1196,`Use indentation with spaces.`)}})}},od=class e extends rd{static{this.ID=`editor.action.changeTabDisplaySize`}constructor(){super(!0,!0,{id:e.ID,label:S(1197,`Change Tab Display Size`),precondition:void 0,metadata:{description:S(1198,`Change the space size equivalent of the tab.`)}})}},sd=class e extends b{static{this.ID=`editor.action.detectIndentation`}constructor(){super({id:e.ID,label:S(1199,`Detect Indentation from Content`),precondition:void 0,metadata:{description:S(1200,`Detect the indentation from content.`)}})}run(e,t){let n=e.get(Xe),r=t.getModel();if(!r)return;let i=n.getCreationOptions(r.getLanguageId(),r.uri,r.isForSimpleWidget);r.detectIndentation(i.insertSpaces,i.tabSize)}},cd=class extends b{constructor(){super({id:`editor.action.reindentlines`,label:S(1201,`Reindent Lines`),precondition:x.writable,metadata:{description:S(1202,`Reindent the lines of the editor.`)},canTriggerInlineEdits:!0})}run(e,t){let n=e.get(zt),r=t.getModel();if(!r)return;let i=Yu(r,n,1,r.getLineCount());i.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,i),t.pushUndoStop())}},ld=class extends b{constructor(){super({id:`editor.action.reindentselectedlines`,label:S(1203,`Reindent Selected Lines`),precondition:x.writable,metadata:{description:S(1204,`Reindent the selected lines of the editor.`)},canTriggerInlineEdits:!0})}run(e,t){let n=e.get(zt),r=t.getModel();if(!r)return;let i=t.getSelections();if(i===null)return;let a=[];for(let e of i){let t=e.startLineNumber,i=e.endLineNumber;if(t!==i&&e.endColumn===1&&i--,t===1){if(t===i)continue}else t--;let o=Yu(r,n,t,i);a.push(...o)}a.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,a),t.pushUndoStop())}},ud=class{constructor(e,t){this._initialSelection=t,this._edits=[],this._selectionId=null;for(let t of e)t.range&&typeof t.text==`string`&&this._edits.push(t)}getEditOperations(e,t){for(let e of this._edits)t.addEditOperation(_.lift(e.range),e.text);let n=!1;Array.isArray(this._edits)&&this._edits.length===1&&this._initialSelection.isEmpty()&&(this._edits[0].range.startColumn===this._initialSelection.endColumn&&this._edits[0].range.startLineNumber===this._initialSelection.endLineNumber?(n=!0,this._selectionId=t.trackSelection(this._initialSelection,!0)):this._edits[0].range.endColumn===this._initialSelection.startColumn&&this._edits[0].range.endLineNumber===this._initialSelection.startLineNumber&&(n=!0,this._selectionId=t.trackSelection(this._initialSelection,!1))),n||(this._selectionId=t.trackSelection(this._initialSelection))}computeCursorState(e,t){return t.getTrackedSelection(this._selectionId)}},dd=class{static{this.ID=`editor.contrib.autoIndentOnPaste`}constructor(e,t){this.editor=e,this._languageConfigurationService=t,this.callOnDispose=new P,this.callOnModel=new P,this.callOnDispose.add(e.onDidChangeConfiguration(()=>this.update())),this.callOnDispose.add(e.onDidChangeModel(()=>this.update())),this.callOnDispose.add(e.onDidChangeModelLanguage(()=>this.update()))}update(){this.callOnModel.clear(),!(!this.editor.getOption(17)||this.editor.getOption(16)<4)&&this.editor.hasModel()&&this.callOnModel.add(this.editor.onDidPaste(({range:e})=>{this.trigger(e)}))}trigger(e){let t=this.editor.getSelections();if(t===null||t.length>1)return;let n=this.editor.getModel();if(!n||this.rangeContainsOnlyWhitespaceCharacters(n,e)||!this.editor.getOption(18)&&fd(n,e)||!n.tokenization.isCheapToTokenize(e.getStartPosition().lineNumber))return;let r=this.editor.getOption(16),{tabSize:i,indentSize:a,insertSpaces:o}=n.getOptions(),s=[],c={shiftIndent:e=>sn.shiftIndent(e,e.length+1,i,a,o),unshiftIndent:e=>sn.unshiftIndent(e,e.length+1,i,a,o)},l=e.startLineNumber,u=n.getLineContent(l);if(!/\S/.test(u.substring(0,e.startColumn-1))){let e=He(r,n,n.getLanguageId(),l,c,this._languageConfigurationService);if(e!==null){let t=H(u),r=Zu(e,i);if(r!==Zu(t,i)){let e=Qu(r,i,o);s.push({range:new _(l,1,l,t.length+1),text:e}),u=e+u.substring(t.length)}else{let e=fn(n,l,this._languageConfigurationService);if(e===0||e===8)return}}}let d=l;for(;l<e.endLineNumber;){if(!/\S/.test(n.getLineContent(l+1))){l++;continue}break}if(l!==e.endLineNumber){let t=He(r,{tokenization:{getLineTokens:e=>n.tokenization.getLineTokens(e),getLanguageId:()=>n.getLanguageId(),getLanguageIdAtPosition:(e,t)=>n.getLanguageIdAtPosition(e,t)},getLineContent:e=>e===d?u:n.getLineContent(e)},n.getLanguageId(),l+1,c,this._languageConfigurationService);if(t!==null){let r=Zu(t,i),a=Zu(H(n.getLineContent(l+1)),i);if(r!==a){let t=r-a;for(let r=l+1;r<=e.endLineNumber;r++){let e=H(n.getLineContent(r)),a=Qu(Zu(e,i)+t,i,o);a!==e&&s.push({range:new _(r,1,r,e.length+1),text:a})}}}}if(s.length>0){this.editor.pushUndoStop();let e=new ud(s,this.editor.getSelection());this.editor.executeCommand(`autoIndentOnPaste`,e),this.editor.pushUndoStop()}}rangeContainsOnlyWhitespaceCharacters(e,t){let n=e=>e.trim().length===0,r=!0;if(t.startLineNumber===t.endLineNumber)r=n(e.getLineContent(t.startLineNumber).substring(t.startColumn-1,t.endColumn-1));else for(let i=t.startLineNumber;i<=t.endLineNumber;i++){let a=e.getLineContent(i);if(r=i===t.startLineNumber?n(a.substring(t.startColumn-1)):i===t.endLineNumber?n(a.substring(0,t.endColumn-1)):e.getLineFirstNonWhitespaceColumn(i)===0,!r)break}return r}dispose(){this.callOnDispose.dispose(),this.callOnModel.dispose()}};dd=$u([ed(1,zt)],dd);function fd(e,t){let n=t=>Ut(e,t)===2;return n(t.getStartPosition())||n(t.getEndPosition())}function pd(e,t,n,r){if(e.getLineCount()===1&&e.getLineMaxColumn(1)===1)return;let i=``;for(let e=0;e<n;e++)i+=` `;let a=new RegExp(i,`gi`);for(let n=1,o=e.getLineCount();n<=o;n++){let o=e.getLineFirstNonWhitespaceColumn(n);if(o===0&&(o=e.getLineMaxColumn(n)),o===1)continue;let s=new _(n,1,n,o),c=e.getValueInRange(s),l=r?c.replace(/\t/gi,i):c.replace(a,` `);t.addEditOperation(s,l)}}var md=class{constructor(e,t){this.selection=e,this.tabSize=t,this.selectionId=null}getEditOperations(e,t){this.selectionId=t.trackSelection(this.selection),pd(e,t,this.tabSize,!0)}computeCursorState(e,t){return t.getTrackedSelection(this.selectionId)}},hd=class{constructor(e,t){this.selection=e,this.tabSize=t,this.selectionId=null}getEditOperations(e,t){this.selectionId=t.trackSelection(this.selection),pd(e,t,this.tabSize,!1)}computeCursorState(e,t){return t.getTrackedSelection(this.selectionId)}};bt(dd.ID,dd,2),A(td),A(nd),A(id),A(ad),A(od),A(sd),A(cd),A(ld),A(class extends b{constructor(){super({id:`expandLineSelection`,label:S(1289,`Expand Line Selection`),precondition:void 0,kbOpts:{weight:0,kbExpr:x.textInputFocus,primary:2090}})}run(e,t,n){if(n||={},!t.hasModel())return;let r=t._getViewModel();r.model.pushStackElement(),r.setCursorStates(n.source,3,i.expandLineSelection(r,r.getCursorStates())),r.revealAllCursors(n.source,!0)}});var gd=class{constructor(e,t,n){this._selection=e,this._cursors=t,this._selectionId=null,this._trimInRegexesAndStrings=n}getEditOperations(e,t){let n=_d(e,this._cursors,this._trimInRegexesAndStrings);for(let e=0,r=n.length;e<r;e++){let r=n[e];t.addEditOperation(r.range,r.text)}this._selectionId=t.trackSelection(this._selection)}computeCursorState(e,t){return t.getTrackedSelection(this._selectionId)}};function _d(e,t,n){t.sort((e,t)=>e.lineNumber===t.lineNumber?e.column-t.column:e.lineNumber-t.lineNumber);for(let e=t.length-2;e>=0;e--)t[e].lineNumber===t[e+1].lineNumber&&t.splice(e,1);let r=[],i=0,a=0,o=t.length;for(let s=1,c=e.getLineCount();s<=c;s++){let c=e.getLineContent(s),l=c.length+1,u=0;if(a<o&&t[a].lineNumber===s&&(u=t[a].column,a++,u===l)||c.length===0)continue;let d=xi(c),f=0;if(d===-1)f=1;else if(d!==c.length-1)f=d+2;else continue;if(!n){if(!e.tokenization.hasAccurateTokensForLine(s))continue;let t=e.tokenization.getLineTokens(s),n=t.getStandardTokenType(t.findTokenIndexAtOffset(f));if(n===2||n===3)continue}f=Math.max(u,f),r[i++]=v.delete(new _(s,f,s,l))}return r}var vd=class{constructor(e,t,n){this._selection=e,this._isCopyingDown=t,this._noop=n||!1,this._selectionDirection=0,this._selectionId=null,this._startLineNumberDelta=0,this._endLineNumberDelta=0}getEditOperations(e,t){let n=this._selection;this._startLineNumberDelta=0,this._endLineNumberDelta=0,n.startLineNumber<n.endLineNumber&&n.endColumn===1&&(this._endLineNumberDelta=1,n=n.setEndPosition(n.endLineNumber-1,e.getLineMaxColumn(n.endLineNumber-1)));let r=[];for(let t=n.startLineNumber;t<=n.endLineNumber;t++)r.push(e.getLineContent(t));let i=r.join(`
18
+ `);i===``&&this._isCopyingDown&&(this._startLineNumberDelta++,this._endLineNumberDelta++),this._noop?t.addEditOperation(new _(n.endLineNumber,e.getLineMaxColumn(n.endLineNumber),n.endLineNumber+1,1),n.endLineNumber===e.getLineCount()?``:`
19
+ `):this._isCopyingDown?t.addEditOperation(new _(n.startLineNumber,1,n.startLineNumber,1),i+`
20
+ `):t.addEditOperation(new _(n.endLineNumber,e.getLineMaxColumn(n.endLineNumber),n.endLineNumber,e.getLineMaxColumn(n.endLineNumber)),`
21
+ `+i),this._selectionId=t.trackSelection(n),this._selectionDirection=this._selection.getDirection()}computeCursorState(e,t){let n=t.getTrackedSelection(this._selectionId);if(this._startLineNumberDelta!==0||this._endLineNumberDelta!==0){let e=n.startLineNumber,t=n.startColumn,r=n.endLineNumber,i=n.endColumn;this._startLineNumberDelta!==0&&(e+=this._startLineNumberDelta,t=1),this._endLineNumberDelta!==0&&(r+=this._endLineNumberDelta,i=1),n=y.createWithDirection(e,t,r,i,this._selectionDirection)}return n}},yd=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},bd=function(e,t){return function(n,r){t(n,r,e)}},xd=class{constructor(e,t,n,r){this._languageConfigurationService=r,this._selection=e,this._isMovingDown=t,this._autoIndent=n,this._selectionId=null,this._moveEndLineSelectionShrink=!1}createVirtualModel(e,t,n){return{tokenization:{getLineTokens:n=>e.tokenization.getLineTokens(t(n)),getLanguageId:()=>e.getLanguageId(),getLanguageIdAtPosition:(t,n)=>e.getLanguageIdAtPosition(t,n)},getLineContent:r=>{let i=n?.(r);return i===void 0?e.getLineContent(t(r)):i}}}getEditOperations(e,t){let n=e.getLineCount();if(this._isMovingDown&&this._selection.endLineNumber===n){this._selectionId=t.trackSelection(this._selection);return}if(!this._isMovingDown&&this._selection.startLineNumber===1){this._selectionId=t.trackSelection(this._selection);return}this._moveEndPositionDown=!1;let r=this._selection;r.startLineNumber<r.endLineNumber&&r.endColumn===1&&(this._moveEndPositionDown=!0,r=r.setEndPosition(r.endLineNumber-1,e.getLineMaxColumn(r.endLineNumber-1)));let{tabSize:i,indentSize:a,insertSpaces:o}=e.getOptions(),s=this.buildIndentConverter(i,a,o);if(r.startLineNumber===r.endLineNumber&&e.getLineMaxColumn(r.startLineNumber)===1){let n=r.startLineNumber,i=this._isMovingDown?n+1:n-1;e.getLineMaxColumn(i)===1?t.addEditOperation(new _(1,1,1,1),null):(t.addEditOperation(new _(n,1,n,1),e.getLineContent(i)),t.addEditOperation(new _(i,1,i,e.getLineMaxColumn(i)),null)),r=new y(i,1,i,1)}else{let n,a;if(this._isMovingDown){n=r.endLineNumber+1,a=e.getLineContent(n),t.addEditOperation(new _(n-1,e.getLineMaxColumn(n-1),n,e.getLineMaxColumn(n)),null);let c=a;if(this.shouldAutoIndent(e,r)){let l=this.matchEnterRule(e,s,i,n,r.startLineNumber-1);if(l!==null)c=Qu(l+Zu(H(e.getLineContent(n)),i),i,o)+this.trimStart(a);else{let t=this.createVirtualModel(e,e=>e===r.startLineNumber?n:e),l=He(this._autoIndent,t,e.getLanguageIdAtPosition(n,1),r.startLineNumber,s,this._languageConfigurationService);if(l!==null){let t=H(e.getLineContent(n)),r=Zu(l,i);r!==Zu(t,i)&&(c=Qu(r,i,o)+this.trimStart(a))}}t.addEditOperation(new _(r.startLineNumber,1,r.startLineNumber,1),c+`
22
+ `);let u=this.matchEnterRuleMovingDown(e,s,i,r.startLineNumber,n,c);if(u!==null)u!==0&&this.getIndentEditsOfMovingBlock(e,t,r,i,o,u);else{let a=this.createVirtualModel(e,e=>e===r.startLineNumber?n:e>=r.startLineNumber+1&&e<=r.endLineNumber+1?e-1:e,e=>e===r.startLineNumber?c:void 0),l=He(this._autoIndent,a,e.getLanguageIdAtPosition(n,1),r.startLineNumber+1,s,this._languageConfigurationService);if(l!==null){let n=H(e.getLineContent(r.startLineNumber)),a=Zu(l,i),s=Zu(n,i);if(a!==s){let n=a-s;this.getIndentEditsOfMovingBlock(e,t,r,i,o,n)}}}}else t.addEditOperation(new _(r.startLineNumber,1,r.startLineNumber,1),c+`
23
+ `)}else if(n=r.startLineNumber-1,a=e.getLineContent(n),t.addEditOperation(new _(n,1,n+1,1),null),t.addEditOperation(new _(r.endLineNumber,e.getLineMaxColumn(r.endLineNumber),r.endLineNumber,e.getLineMaxColumn(r.endLineNumber)),`
24
+ `+a),this.shouldAutoIndent(e,r)){let a=this.createVirtualModel(e,e=>e===n?r.startLineNumber:e),c=this.matchEnterRule(e,s,i,r.startLineNumber,r.startLineNumber-2);if(c!==null)c!==0&&this.getIndentEditsOfMovingBlock(e,t,r,i,o,c);else{let c=He(this._autoIndent,a,e.getLanguageIdAtPosition(r.startLineNumber,1),n,s,this._languageConfigurationService);if(c!==null){let n=H(e.getLineContent(r.startLineNumber)),a=Zu(c,i),s=Zu(n,i);if(a!==s){let n=a-s;this.getIndentEditsOfMovingBlock(e,t,r,i,o,n)}}}}}this._selectionId=t.trackSelection(r)}buildIndentConverter(e,t,n){return{shiftIndent:r=>sn.shiftIndent(r,r.length+1,e,t,n),unshiftIndent:r=>sn.unshiftIndent(r,r.length+1,e,t,n)}}parseEnterResult(e,t,n,r,i){if(i){let a=i.indentation;i.indentAction===ke.None||i.indentAction===ke.Indent?a=i.indentation+i.appendText:i.indentAction===ke.IndentOutdent?a=i.indentation:i.indentAction===ke.Outdent&&(a=t.unshiftIndent(i.indentation)+i.appendText);let o=e.getLineContent(r);if(this.trimStart(o).indexOf(this.trimStart(a))>=0){let i=H(e.getLineContent(r)),o=H(a),s=fn(e,r,this._languageConfigurationService);return s!==null&&s&2&&(o=t.unshiftIndent(o)),Zu(o,n)-Zu(i,n)}}return null}matchEnterRuleMovingDown(e,t,n,r,i,a){if(xi(a)>=0){let a=e.getLineMaxColumn(i),o=gn(this._autoIndent,e,new _(i,a,i,a),this._languageConfigurationService);return this.parseEnterResult(e,t,n,r,o)}else{let i=r-1;for(;i>=1&&!(xi(e.getLineContent(i))>=0);)i--;if(i<1||r>e.getLineCount())return null;let a=e.getLineMaxColumn(i),o=gn(this._autoIndent,e,new _(i,a,i,a),this._languageConfigurationService);return this.parseEnterResult(e,t,n,r,o)}}matchEnterRule(e,t,n,r,i,a){let o=i;for(;o>=1;){let t;if(t=o===i&&a!==void 0?a:e.getLineContent(o),xi(t)>=0)break;o--}if(o<1||r>e.getLineCount())return null;let s=e.getLineMaxColumn(o),c=gn(this._autoIndent,e,new _(o,s,o,s),this._languageConfigurationService);return this.parseEnterResult(e,t,n,r,c)}trimStart(e){return e.replace(/^\s+/,``)}shouldAutoIndent(e,t){if(this._autoIndent<4||!e.tokenization.isCheapToTokenize(t.startLineNumber))return!1;let n=e.getLanguageIdAtPosition(t.startLineNumber,1);return!(n!==e.getLanguageIdAtPosition(t.endLineNumber,1)||this._languageConfigurationService.getLanguageConfiguration(n).indentRulesSupport===null)}getIndentEditsOfMovingBlock(e,t,n,r,i,a){for(let o=n.startLineNumber;o<=n.endLineNumber;o++){let s=H(e.getLineContent(o)),c=Qu(Zu(s,r)+a,r,i);c!==s&&(t.addEditOperation(new _(o,1,o,s.length+1),c),o===n.endLineNumber&&n.endColumn<=s.length+1&&c===``&&(this._moveEndLineSelectionShrink=!0))}}computeCursorState(e,t){let n=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(n=n.setEndPosition(n.endLineNumber+1,1)),this._moveEndLineSelectionShrink&&n.startLineNumber<n.endLineNumber&&(n=n.setEndPosition(n.endLineNumber,2)),n}};xd=yd([bd(3,zt)],xd);var Sd=class{static{this._COLLATOR=jt.Collator()}constructor(e,t){this.selection=e,this.descending=t,this.selectionId=null}getEditOperations(e,t){let n=wd(e,this.selection,this.descending);n&&t.addEditOperation(n.range,n.text),this.selectionId=t.trackSelection(this.selection)}computeCursorState(e,t){return t.getTrackedSelection(this.selectionId)}static canRun(e,t,n){if(e===null)return!1;let r=Cd(e,t,n);if(!r)return!1;for(let e=0,t=r.before.length;e<t;e++)if(r.before[e]!==r.after[e])return!0;return!1}};function Cd(e,t,n){let r=t.startLineNumber,i=t.endLineNumber;if(t.endColumn===1&&i--,r>=i)return null;let a=[];for(let t=r;t<=i;t++)a.push(e.getLineContent(t));let o=a.slice(0);return o.sort(Sd._COLLATOR.value.compare),n===!0&&(o=o.reverse()),{startLineNumber:r,endLineNumber:i,before:a,after:o}}function wd(e,t,n){let r=Cd(e,t,n);return r?v.replace(new _(r.startLineNumber,1,r.endLineNumber,e.getLineMaxColumn(r.endLineNumber)),r.after.join(`
25
+ `)):null}var Td=class extends b{constructor(e,t){super(t),this.down=e}run(e,t){if(!t.hasModel())return;let n=t.getSelections().map((e,t)=>({selection:e,index:t,ignore:!1}));n.sort((e,t)=>_.compareRangesUsingStarts(e.selection,t.selection));let r=n[0];for(let e=1;e<n.length;e++){let t=n[e];r.selection.endLineNumber===t.selection.startLineNumber&&(r.index<t.index?t.ignore=!0:(r.ignore=!0,r=t))}let i=[];for(let e of n)i.push(new vd(e.selection,this.down,e.ignore));t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}},Ed=class extends Td{constructor(){super(!1,{id:`editor.action.copyLinesUpAction`,label:S(1295,`Copy Line Up`),precondition:x.writable,kbOpts:{kbExpr:x.editorTextFocus,primary:1552,linux:{primary:3600},weight:100},menuOpts:{menuId:g.MenubarSelectionMenu,group:`2_line`,title:L(1290,`&&Copy Line Up`),order:1},canTriggerInlineEdits:!0})}},Dd=class extends Td{constructor(){super(!0,{id:`editor.action.copyLinesDownAction`,label:S(1296,`Copy Line Down`),precondition:x.writable,kbOpts:{kbExpr:x.editorTextFocus,primary:1554,linux:{primary:3602},weight:100},menuOpts:{menuId:g.MenubarSelectionMenu,group:`2_line`,title:L(1291,`Co&&py Line Down`),order:2},canTriggerInlineEdits:!0})}},Od=class extends b{constructor(){super({id:`editor.action.duplicateSelection`,label:S(1297,`Duplicate Selection`),precondition:x.writable,menuOpts:{menuId:g.MenubarSelectionMenu,group:`2_line`,title:L(1292,`&&Duplicate Selection`),order:5},canTriggerInlineEdits:!0})}run(e,t,n){if(!t.hasModel())return;let r=[],i=t.getSelections(),a=t.getModel();for(let e of i)if(e.isEmpty())r.push(new vd(e,!0));else{let t=new y(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn);r.push(new On(t,a.getValueInRange(e)))}t.pushUndoStop(),t.executeCommands(this.id,r),t.pushUndoStop()}},kd=class extends b{constructor(e,t){super(t),this.down=e}run(e,t){let n=e.get(zt),r=[],i=t.getSelections()||[],a=t.getOption(16);for(let e of i)r.push(new xd(e,this.down,a,n));t.pushUndoStop(),t.executeCommands(this.id,r),t.pushUndoStop()}},Ad=class extends kd{constructor(){super(!1,{id:`editor.action.moveLinesUpAction`,label:S(1298,`Move Line Up`),precondition:x.writable,kbOpts:{kbExpr:x.editorTextFocus,primary:528,linux:{primary:528},weight:100},menuOpts:{menuId:g.MenubarSelectionMenu,group:`2_line`,title:L(1293,`Mo&&ve Line Up`),order:3},canTriggerInlineEdits:!0})}},jd=class extends kd{constructor(){super(!0,{id:`editor.action.moveLinesDownAction`,label:S(1299,`Move Line Down`),precondition:x.writable,kbOpts:{kbExpr:x.editorTextFocus,primary:530,linux:{primary:530},weight:100},menuOpts:{menuId:g.MenubarSelectionMenu,group:`2_line`,title:L(1294,`Move &&Line Down`),order:4},canTriggerInlineEdits:!0})}},Md=class extends b{constructor(e,t){super(t),this.descending=e}run(e,t){if(!t.hasModel())return;let n=t.getModel(),r=t.getSelections();r.length===1&&r[0].isSingleLine()&&(r=[new y(1,1,n.getLineCount(),n.getLineMaxColumn(n.getLineCount()))]);for(let e of r)if(!Sd.canRun(t.getModel(),e,this.descending))return;let i=[];for(let e=0,t=r.length;e<t;e++)i[e]=new Sd(r[e],this.descending);t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}},Nd=class extends Md{constructor(){super(!1,{id:`editor.action.sortLinesAscending`,label:S(1300,`Sort Lines Ascending`),precondition:x.writable,canTriggerInlineEdits:!0})}},Pd=class extends Md{constructor(){super(!0,{id:`editor.action.sortLinesDescending`,label:S(1301,`Sort Lines Descending`),precondition:x.writable,canTriggerInlineEdits:!0})}},Fd=class extends b{constructor(){super({id:`editor.action.removeDuplicateLines`,label:S(1302,`Delete Duplicate Lines`),precondition:x.writable,canTriggerInlineEdits:!0})}run(e,t){if(!t.hasModel())return;let n=t.getModel();if(n.getLineCount()===1&&n.getLineMaxColumn(1)===1)return;let r=[],i=[],a=0,o=!0,s=t.getSelections();s.length===1&&s[0].isSingleLine()&&(s=[new y(1,1,n.getLineCount(),n.getLineMaxColumn(n.getLineCount()))],o=!1);for(let e of s){let t=new Set,o=[];for(let r=e.startLineNumber;r<=e.endLineNumber;r++){let e=n.getLineContent(r);t.has(e)||(o.push(e),t.add(e))}let s=new y(e.startLineNumber,1,e.endLineNumber,n.getLineMaxColumn(e.endLineNumber)),c=e.startLineNumber-a,l=new y(c,1,c+o.length-1,o[o.length-1].length+1);r.push(v.replace(s,o.join(`
26
+ `))),i.push(l),a+=e.endLineNumber-e.startLineNumber+1-o.length}t.pushUndoStop(),t.executeEdits(this.id,r,o?i:void 0),t.pushUndoStop()}},Id=class extends b{constructor(){super({id:`editor.action.reverseLines`,label:S(1303,`Reverse lines`),precondition:x.writable,canTriggerInlineEdits:!0})}run(e,t){if(!t.hasModel())return;let n=t.getModel(),r=t.getSelections(),i=r;i.length===1&&i[0].isSingleLine()&&(i=[new y(1,1,n.getLineCount(),n.getLineMaxColumn(n.getLineCount()))]);let a=[],o=[];for(let e=0;e<i.length;e++){let t=i[e],s=r[e],c=t.endLineNumber;t.startLineNumber<t.endLineNumber&&t.endColumn===1&&c--;let l=new _(t.startLineNumber,1,c,n.getLineMaxColumn(c));c===n.getLineCount()&&n.getLineContent(l.endLineNumber)===``&&(l=l.setEndPosition(l.endLineNumber-1,n.getLineMaxColumn(l.endLineNumber-1)));let u=[];for(let e=l.endLineNumber;e>=l.startLineNumber;e--)u.push(n.getLineContent(e));let d=v.replace(l,u.join(`
27
+ `));a.push(d);let f=function(e){return e<=l.endLineNumber?l.endLineNumber-e+l.startLineNumber:e};o.push(function(e){if(e.isEmpty())return new y(f(e.positionLineNumber),e.positionColumn,f(e.positionLineNumber),e.positionColumn);{let t=f(e.selectionStartLineNumber),n=f(e.positionLineNumber),r=e.selectionStartColumn,i=e.positionColumn;return new y(t,r,n,i)}}(s))}t.pushUndoStop(),t.executeEdits(this.id,a,o),t.pushUndoStop()}},Ld=class e extends b{static{this.ID=`editor.action.trimTrailingWhitespace`}constructor(){super({id:e.ID,label:S(1304,`Trim Trailing Whitespace`),precondition:x.writable,kbOpts:{kbExpr:x.editorTextFocus,primary:E(2089,2102),weight:100}})}run(e,t,n){let r=[];n.reason===`auto-save`&&(r=(t.getSelections()||[]).map(e=>new T(e.positionLineNumber,e.positionColumn)));let i=t.getSelection();if(i===null)return;let a=e.get(Ie),o=t.getModel(),s=a.getValue(`files.trimTrailingWhitespaceInRegexAndStrings`,{overrideIdentifier:o?.getLanguageId(),resource:o?.uri}),c=new gd(i,r,s);t.pushUndoStop(),t.executeCommands(this.id,[c]),t.pushUndoStop()}},Rd=class extends b{constructor(){super({id:`editor.action.deleteLines`,label:S(1305,`Delete Line`),precondition:x.writable,kbOpts:{kbExpr:x.textInputFocus,primary:3113,weight:100},canTriggerInlineEdits:!0})}run(e,t){if(!t.hasModel())return;let n=this._getLinesToRemove(t),r=t.getModel();if(r.getLineCount()===1&&r.getLineMaxColumn(1)===1)return;let i=0,a=[],o=[];for(let e=0,t=n.length;e<t;e++){let t=n[e],s=t.startLineNumber,c=t.endLineNumber,l=1,u=r.getLineMaxColumn(c);c<r.getLineCount()?(c+=1,u=1):s>1&&(--s,l=r.getLineMaxColumn(s)),a.push(v.replace(new y(s,l,c,u),``)),o.push(new y(s-i,t.positionColumn,s-i,t.positionColumn)),i+=t.endLineNumber-t.startLineNumber+1}t.pushUndoStop(),t.executeEdits(this.id,a,o),t.revealAllCursors(!0),t.pushUndoStop()}_getLinesToRemove(e){let t=e.getSelections().map(e=>{let t=e.endLineNumber;return e.startLineNumber<e.endLineNumber&&e.endColumn===1&&--t,{startLineNumber:e.startLineNumber,selectionStartColumn:e.selectionStartColumn,endLineNumber:t,positionColumn:e.positionColumn}});t.sort((e,t)=>e.startLineNumber===t.startLineNumber?e.endLineNumber-t.endLineNumber:e.startLineNumber-t.startLineNumber);let n=[],r=t[0];for(let e=1;e<t.length;e++)r.endLineNumber+1>=t[e].startLineNumber?r.endLineNumber=t[e].endLineNumber:(n.push(r),r=t[e]);return n.push(r),n}},zd=class extends b{constructor(){super({id:`editor.action.indentLines`,label:S(1306,`Indent Line`),precondition:x.writable,kbOpts:{kbExpr:x.editorTextFocus,primary:2142,weight:100},canTriggerInlineEdits:!0})}run(e,t){let n=t._getViewModel();n&&(t.pushUndoStop(),t.executeCommands(this.id,Ye.indent(n.cursorConfig,t.getModel(),t.getSelections())),t.pushUndoStop())}},Bd=class extends b{constructor(){super({id:`editor.action.outdentLines`,label:S(1307,`Outdent Line`),precondition:x.writable,kbOpts:{kbExpr:x.editorTextFocus,primary:2140,weight:100},canTriggerInlineEdits:!0})}run(e,t){nn.Outdent.runEditorCommand(e,t,null)}},Vd=class e extends b{static{this.ID=`editor.action.insertLineBefore`}constructor(){super({id:e.ID,label:S(1308,`Insert Line Above`),precondition:x.writable,kbOpts:{kbExpr:x.editorTextFocus,primary:3075,weight:100},canTriggerInlineEdits:!0})}run(e,t){let n=t._getViewModel();n&&(t.pushUndoStop(),t.executeCommands(this.id,Ti.lineInsertBefore(n.cursorConfig,t.getModel(),t.getSelections())))}},Hd=class e extends b{static{this.ID=`editor.action.insertLineAfter`}constructor(){super({id:e.ID,label:S(1309,`Insert Line Below`),precondition:x.writable,kbOpts:{kbExpr:x.editorTextFocus,primary:2051,weight:100},canTriggerInlineEdits:!0})}run(e,t){let n=t._getViewModel();n&&(t.pushUndoStop(),t.executeCommands(this.id,Ti.lineInsertAfter(n.cursorConfig,t.getModel(),t.getSelections())))}},Ud=class extends b{run(e,t){if(!t.hasModel())return;let n=t.getSelection(),r=this._getRangesToDelete(t),i=[];for(let e=0,t=r.length-1;e<t;e++){let t=r[e],n=r[e+1];_.intersectRanges(t,n)===null?i.push(t):r[e+1]=_.plusRange(t,n)}i.push(r[r.length-1]);let a=this._getEndCursorState(n,i),o=i.map(e=>v.replace(e,``));t.pushUndoStop(),t.executeEdits(this.id,o,a),t.pushUndoStop()}},Wd=class extends Ud{constructor(){super({id:`deleteAllLeft`,label:S(1310,`Delete All Left`),precondition:x.writable,kbOpts:{kbExpr:x.textInputFocus,primary:0,mac:{primary:2049},weight:100},canTriggerInlineEdits:!0})}_getEndCursorState(e,t){let n=null,r=[],i=0;return t.forEach(t=>{let a;if(t.endColumn===1&&i>0){let e=t.startLineNumber-i;a=new y(e,t.startColumn,e,t.startColumn)}else a=new y(t.startLineNumber,t.startColumn,t.startLineNumber,t.startColumn);i+=t.endLineNumber-t.startLineNumber,t.intersectRanges(e)?n=a:r.push(a)}),n&&r.unshift(n),r}_getRangesToDelete(e){let t=e.getSelections();if(t===null)return[];let n=t,r=e.getModel();return r===null?[]:(n.sort(_.compareRangesUsingStarts),n=n.map(e=>{if(e.isEmpty())if(e.startColumn===1){let t=Math.max(1,e.startLineNumber-1);return new _(t,e.startLineNumber===1?1:r.getLineLength(t)+1,e.startLineNumber,1)}else return new _(e.startLineNumber,1,e.startLineNumber,e.startColumn);else return new _(e.startLineNumber,1,e.endLineNumber,e.endColumn)}),n)}},Gd=class extends Ud{constructor(){super({id:`deleteAllRight`,label:S(1311,`Delete All Right`),precondition:x.writable,kbOpts:{kbExpr:x.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100},canTriggerInlineEdits:!0})}_getEndCursorState(e,t){let n=null,r=[];for(let i=0,a=t.length;i<a;i++){let a=t[i],o=new y(a.startLineNumber-0,a.startColumn,a.startLineNumber-0,a.startColumn);a.intersectRanges(e)?n=o:r.push(o)}return n&&r.unshift(n),r}_getRangesToDelete(e){let t=e.getModel();if(t===null)return[];let n=e.getSelections();if(n===null)return[];let r=n.map(e=>{if(e.isEmpty()){let n=t.getLineMaxColumn(e.startLineNumber);return e.startColumn===n?new _(e.startLineNumber,e.startColumn,e.startLineNumber+1,1):new _(e.startLineNumber,e.startColumn,e.startLineNumber,n)}return e});return r.sort(_.compareRangesUsingStarts),r}},Kd=class extends b{constructor(){super({id:`editor.action.joinLines`,label:S(1312,`Join Lines`),precondition:x.writable,kbOpts:{kbExpr:x.editorTextFocus,primary:0,mac:{primary:296},weight:100},canTriggerInlineEdits:!0})}run(e,t){let n=t.getSelections();if(n===null)return;let r=t.getSelection();if(r===null)return;n.sort(_.compareRangesUsingStarts);let i=[],a=n.reduce((e,t)=>e.isEmpty()?e.endLineNumber===t.startLineNumber?(r.equalsSelection(e)&&(r=t),t):t.startLineNumber>e.endLineNumber+1?(i.push(e),t):new y(e.startLineNumber,e.startColumn,t.endLineNumber,t.endColumn):t.startLineNumber>e.endLineNumber?(i.push(e),t):new y(e.startLineNumber,e.startColumn,t.endLineNumber,t.endColumn));i.push(a);let o=t.getModel();if(o===null)return;let s=[],c=[],l=r,u=0;for(let e=0,t=i.length;e<t;e++){let t=i[e],n=t.startLineNumber,a=0,d,f,p=o.getLineLength(t.endLineNumber)-t.endColumn;if(t.isEmpty()||t.startLineNumber===t.endLineNumber){let e=t.getStartPosition();e.lineNumber<o.getLineCount()?(d=n+1,f=o.getLineMaxColumn(d)):(d=e.lineNumber,f=o.getLineMaxColumn(e.lineNumber))}else d=t.endLineNumber,f=o.getLineMaxColumn(d);let m=o.getLineContent(n);for(let e=n+1;e<=d;e++){let t=o.getLineContent(e),n=o.getLineFirstNonWhitespaceColumn(e);if(n>=1){let e=!0;m===``&&(e=!1),e&&(m.charAt(m.length-1)===` `||m.charAt(m.length-1)===` `)&&(e=!1,m=m.replace(/[\s\uFEFF\xA0]+$/g,` `));let r=t.substr(n-1);m+=(e?` `:``)+r,a=e?r.length+1:r.length}else a=0}let h=new _(n,1,d,f);if(!h.isEmpty()){let e;t.isEmpty()?(s.push(v.replace(h,m)),e=new y(h.startLineNumber-u,m.length-a+1,n-u,m.length-a+1)):t.startLineNumber===t.endLineNumber?(s.push(v.replace(h,m)),e=new y(t.startLineNumber-u,t.startColumn,t.endLineNumber-u,t.endColumn)):(s.push(v.replace(h,m)),e=new y(t.startLineNumber-u,t.startColumn,t.startLineNumber-u,m.length-p)),_.intersectRanges(h,r)===null?c.push(e):l=e}u+=h.endLineNumber-h.startLineNumber}c.unshift(l),t.pushUndoStop(),t.executeEdits(this.id,s,c),t.pushUndoStop()}},qd=class extends b{constructor(){super({id:`editor.action.transpose`,label:S(1313,`Transpose Characters around the Cursor`),precondition:x.writable,canTriggerInlineEdits:!0})}run(e,t){let n=t.getSelections();if(n===null)return;let r=t.getModel();if(r===null)return;let i=[];for(let e=0,t=n.length;e<t;e++){let t=n[e];if(!t.isEmpty())continue;let a=t.getStartPosition(),o=r.getLineMaxColumn(a.lineNumber);if(a.column>=o){if(a.lineNumber===r.getLineCount())continue;let e=new _(a.lineNumber,Math.max(1,a.column-1),a.lineNumber+1,1),t=r.getValueInRange(e).split(``).reverse().join(``);i.push(new Ai(new y(a.lineNumber,Math.max(1,a.column-1),a.lineNumber+1,1),t))}else{let e=new _(a.lineNumber,Math.max(1,a.column-1),a.lineNumber,a.column+1),t=r.getValueInRange(e).split(``).reverse().join(``);i.push(new Er(e,t,new y(a.lineNumber,a.column+1,a.lineNumber,a.column+1)))}}t.pushUndoStop(),t.executeCommands(this.id,i),t.pushUndoStop()}},Jd=class extends b{run(e,t){let n=t.getSelections();if(n===null)return;let r=t.getModel();if(r===null)return;let i=t.getOption(148),a=[];for(let e of n)if(e.isEmpty()){let n=e.getStartPosition(),o=t.getConfiguredWordAtPosition(n);if(!o)continue;let s=new _(n.lineNumber,o.startColumn,n.lineNumber,o.endColumn),c=r.getValueInRange(s);a.push(v.replace(s,this._modifyText(c,i)))}else{let t=r.getValueInRange(e);a.push(v.replace(e,this._modifyText(t,i)))}t.pushUndoStop(),t.executeEdits(this.id,a),t.pushUndoStop()}},Yd=class extends Jd{constructor(){super({id:`editor.action.transformToUppercase`,label:S(1314,`Transform to Uppercase`),precondition:x.writable,canTriggerInlineEdits:!0})}_modifyText(e,t){return e.toLocaleUpperCase()}},Xd=class extends Jd{constructor(){super({id:`editor.action.transformToLowercase`,label:S(1315,`Transform to Lowercase`),precondition:x.writable,canTriggerInlineEdits:!0})}_modifyText(e,t){return e.toLocaleLowerCase()}},Zd=class{constructor(e,t){this._pattern=e,this._flags=t,this._actual=null,this._evaluated=!1}get(){if(!this._evaluated){this._evaluated=!0;try{this._actual=new RegExp(this._pattern,this._flags)}catch{}}return this._actual}isSupported(){return this.get()!==null}},Qd=class e extends Jd{static{this.titleBoundary=new Zd(`(^|[^\\p{L}\\p{N}']|((^|\\P{L})'))\\p{L}`,`gmu`)}constructor(){super({id:`editor.action.transformToTitlecase`,label:S(1316,`Transform to Title Case`),precondition:x.writable,canTriggerInlineEdits:!0})}_modifyText(t,n){let r=e.titleBoundary.get();return r?t.toLocaleLowerCase().replace(r,e=>e.toLocaleUpperCase()):t}},$d=class e extends Jd{static{this.caseBoundary=new Zd(`(\\p{Ll})(\\p{Lu})`,`gmu`)}static{this.singleLetters=new Zd(`(\\p{Lu}|\\p{N})(\\p{Lu})(\\p{Ll})`,`gmu`)}constructor(){super({id:`editor.action.transformToSnakecase`,label:S(1317,`Transform to Snake Case`),precondition:x.writable,canTriggerInlineEdits:!0})}_modifyText(t,n){let r=e.caseBoundary.get(),i=e.singleLetters.get();return!r||!i?t:t.replace(r,`$1_$2`).replace(i,`$1_$2$3`).toLocaleLowerCase()}},ef=class e extends Jd{static{this.singleLineWordBoundary=new Zd(`[_\\s-]+`,`gm`)}static{this.multiLineWordBoundary=new Zd(`[_-]+`,`gm`)}static{this.validWordStart=new Zd(`^(\\p{Lu}[^\\p{Lu}])`,`gmu`)}constructor(){super({id:`editor.action.transformToCamelcase`,label:S(1318,`Transform to Camel Case`),precondition:x.writable,canTriggerInlineEdits:!0})}_modifyText(t,n){let r=/\r\n|\r|\n/.test(t)?e.multiLineWordBoundary.get():e.singleLineWordBoundary.get(),i=e.validWordStart.get();if(!r||!i)return t;let a=t.split(r);return a.shift()?.replace(i,e=>e.toLocaleLowerCase())+a.map(e=>e.substring(0,1).toLocaleUpperCase()+e.substring(1)).join(``)}},tf=class e extends Jd{static{this.wordBoundary=new Zd(`[_ \\t-]`,`gm`)}static{this.wordBoundaryToMaintain=new Zd(`(?<=\\.)`,`gm`)}static{this.upperCaseWordMatcher=new Zd(`^\\p{Lu}+$`,`mu`)}constructor(){super({id:`editor.action.transformToPascalcase`,label:S(1319,`Transform to Pascal Case`),precondition:x.writable,canTriggerInlineEdits:!0})}_modifyText(t,n){let r=e.wordBoundary.get(),i=e.wordBoundaryToMaintain.get(),a=e.upperCaseWordMatcher.get();return!r||!i||!a?t:t.split(i).map(e=>e.split(r)).flat().map(e=>{let t=e.charAt(0).toLocaleUpperCase()+e.slice(1);return t.length>1&&a.test(t)?t.charAt(0)+t.slice(1).toLocaleLowerCase():t}).join(``)}},nf=class e extends Jd{static isSupported(){return[this.caseBoundary,this.singleLetters,this.underscoreBoundary].every(e=>e.isSupported())}static{this.caseBoundary=new Zd(`(\\p{Ll})(\\p{Lu})`,`gmu`)}static{this.singleLetters=new Zd(`(\\p{Lu}|\\p{N})(\\p{Lu}\\p{Ll})`,`gmu`)}static{this.underscoreBoundary=new Zd(`(\\S)(_)(\\S)`,`gm`)}constructor(){super({id:`editor.action.transformToKebabcase`,label:S(1320,`Transform to Kebab Case`),precondition:x.writable,canTriggerInlineEdits:!0})}_modifyText(t,n){let r=e.caseBoundary.get(),i=e.singleLetters.get(),a=e.underscoreBoundary.get();return!r||!i||!a?t:t.replace(a,`$1-$3`).replace(r,`$1-$2`).replace(i,`$1-$2`).toLocaleLowerCase()}};A(Ed),A(Dd),A(Od),A(Ad),A(jd),A(Nd),A(Pd),A(Fd),A(Ld),A(Rd),A(zd),A(Bd),A(Vd),A(Hd),A(Wd),A(Gd),A(Kd),A(qd),A(Yd),A(Xd),A(Id),$d.caseBoundary.isSupported()&&$d.singleLetters.isSupported()&&A($d),ef.singleLineWordBoundary.isSupported()&&ef.multiLineWordBoundary.isSupported()&&A(ef),tf.wordBoundary.isSupported()&&A(tf),Qd.titleBoundary.isSupported()&&A(Qd),nf.isSupported()&&A(nf);var rf=m(`editor.wordHighlightBackground`,{dark:`#575757B8`,light:`#57575740`,hcDark:null,hcLight:null},L(1615,`Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations.`),!0);m(`editor.wordHighlightStrongBackground`,{dark:`#004972B8`,light:`#0e639c40`,hcDark:null,hcLight:null},L(1616,`Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations.`),!0),m(`editor.wordHighlightTextBackground`,rf,L(1617,`Background color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations.`),!0);var af=m(`editor.wordHighlightBorder`,{light:null,dark:null,hcDark:ur,hcLight:ur},L(1618,`Border color of a symbol during read-access, like reading a variable.`));m(`editor.wordHighlightStrongBorder`,{light:null,dark:null,hcDark:ur,hcLight:ur},L(1619,`Border color of a symbol during write-access, like writing to a variable.`)),m(`editor.wordHighlightTextBorder`,af,L(1620,`Border color of a textual occurrence for a symbol.`));var of=m(`editorOverviewRuler.wordHighlightForeground`,`#A0A0A0CC`,L(1621,`Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations.`),!0),sf=m(`editorOverviewRuler.wordHighlightStrongForeground`,`#C0A0C0CC`,L(1622,`Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations.`),!0),cf=m(`editorOverviewRuler.wordHighlightTextForeground`,pi,L(1623,`Overview ruler marker color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations.`),!0),lf=V.register({description:`word-highlight-strong`,stickiness:1,className:`wordHighlightStrong`,overviewRuler:{color:k(sf),position:ra.Center},minimap:{color:k(Ke),position:1}}),uf=V.register({description:`word-highlight-text`,stickiness:1,className:`wordHighlightText`,overviewRuler:{color:k(cf),position:ra.Center},minimap:{color:k(Ke),position:1}}),df=V.register({description:`selection-highlight-overview`,stickiness:1,className:`selectionHighlight`,overviewRuler:{color:k(pi),position:ra.Center},minimap:{color:k(Ke),position:1}}),ff=V.register({description:`selection-highlight`,stickiness:1,className:`selectionHighlight`}),pf=V.register({description:`word-highlight`,stickiness:1,className:`wordHighlight`,overviewRuler:{color:k(of),position:ra.Center},minimap:{color:k(Ke),position:1}});function mf(e){return e===hi.Write?lf:e===hi.Text?uf:pf}function hf(e){return e?ff:df}Ae((e,t)=>{let n=e.getColor(Vr);n&&t.addRule(`.monaco-editor .selectionHighlight { background-color: ${n.transparent(.5)}; }`)});var gf=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},_f=function(e,t){return function(n,r){t(n,r,e)}},vf;function yf(e,t){let n=t.filter(t=>!e.find(e=>e.equals(t)));if(n.length>=1){let e=n.map(e=>`line ${e.viewState.position.lineNumber} column ${e.viewState.position.column}`).join(`, `);me(n.length===1?L(1334,`Cursor added: {0}`,e):L(1335,`Cursors added: {0}`,e))}}var bf=class extends b{constructor(){super({id:`editor.action.insertCursorAbove`,label:S(1344,`Add Cursor Above`),precondition:void 0,kbOpts:{kbExpr:x.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:g.MenubarSelectionMenu,group:`3_multi`,title:L(1336,`&&Add Cursor Above`),order:2}})}run(e,t,n){if(!t.hasModel())return;let r=!0;n&&n.logicalLine===!1&&(r=!1);let a=t._getViewModel();if(a.cursorConfig.readOnly)return;a.model.pushStackElement();let o=a.getCursorStates();a.setCursorStates(n.source,3,i.addCursorUp(a,o,r)),a.revealTopMostCursor(n.source),yf(o,a.getCursorStates())}},xf=class extends b{constructor(){super({id:`editor.action.insertCursorBelow`,label:S(1345,`Add Cursor Below`),precondition:void 0,kbOpts:{kbExpr:x.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:g.MenubarSelectionMenu,group:`3_multi`,title:L(1337,`A&&dd Cursor Below`),order:3}})}run(e,t,n){if(!t.hasModel())return;let r=!0;n&&n.logicalLine===!1&&(r=!1);let a=t._getViewModel();if(a.cursorConfig.readOnly)return;a.model.pushStackElement();let o=a.getCursorStates();a.setCursorStates(n.source,3,i.addCursorDown(a,o,r)),a.revealBottomMostCursor(n.source),yf(o,a.getCursorStates())}},Sf=class extends b{constructor(){super({id:`editor.action.insertCursorAtEndOfEachLineSelected`,label:S(1346,`Add Cursors to Line Ends`),precondition:void 0,kbOpts:{kbExpr:x.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:g.MenubarSelectionMenu,group:`3_multi`,title:L(1338,`Add C&&ursors to Line Ends`),order:4}})}getCursorsForSelection(e,t,n){if(!e.isEmpty()){for(let r=e.startLineNumber;r<e.endLineNumber;r++){let e=t.getLineMaxColumn(r);n.push(new y(r,e,r,e))}e.endColumn>1&&n.push(new y(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn))}}run(e,t){if(!t.hasModel())return;let n=t.getModel(),r=t.getSelections(),i=t._getViewModel(),a=i.getCursorStates(),o=[];r.forEach(e=>this.getCursorsForSelection(e,n,o)),o.length>0&&t.setSelections(o),yf(a,i.getCursorStates())}},Cf=class extends b{constructor(){super({id:`editor.action.addCursorsToBottom`,label:S(1347,`Add Cursors to Bottom`),precondition:void 0})}run(e,t){if(!t.hasModel())return;let n=t.getSelections(),r=t.getModel().getLineCount(),i=[];for(let e=n[0].startLineNumber;e<=r;e++)i.push(new y(e,n[0].startColumn,e,n[0].endColumn));let a=t._getViewModel(),o=a.getCursorStates();i.length>0&&t.setSelections(i),yf(o,a.getCursorStates())}},wf=class extends b{constructor(){super({id:`editor.action.addCursorsToTop`,label:S(1348,`Add Cursors to Top`),precondition:void 0})}run(e,t){if(!t.hasModel())return;let n=t.getSelections(),r=[];for(let e=n[0].startLineNumber;e>=1;e--)r.push(new y(e,n[0].startColumn,e,n[0].endColumn));let i=t._getViewModel(),a=i.getCursorStates();r.length>0&&t.setSelections(r),yf(a,i.getCursorStates())}},Tf=class{constructor(e,t,n){this.selections=e,this.revealRange=t,this.revealScrollType=n}},Ef=class e{static create(t,n){if(!t.hasModel())return null;let r=n.getState();if(!t.hasTextFocus()&&r.isRevealed&&r.searchString.length>0)return new e(t,n,!1,r.searchString,r.wholeWord,r.matchCase,null);let i=!1,a,o,s=t.getSelections();s.length===1&&s[0].isEmpty()?(i=!0,a=!0,o=!0):(a=r.wholeWord,o=r.matchCase);let c=t.getSelection(),l,u=null;if(c.isEmpty()){let e=t.getConfiguredWordAtPosition(c.getStartPosition());if(!e)return null;l=e.word,u=new y(c.startLineNumber,e.startColumn,c.startLineNumber,e.endColumn)}else l=t.getModel().getValueInRange(c).replace(/\r\n/g,`
28
+ `);return new e(t,n,i,l,a,o,u)}constructor(e,t,n,r,i,a,o){this._editor=e,this.findController=t,this.isDisconnectedFromFindController=n,this.searchText=r,this.wholeWord=i,this.matchCase=a,this.currentMatch=o}addSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;let e=this._getNextMatch();return e?new Tf(this._editor.getSelections().concat(e),e,0):null}moveSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;let e=this._getNextMatch();if(!e)return null;let t=this._editor.getSelections();return new Tf(t.slice(0,t.length-1).concat(e),e,0)}_getNextMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){let e=this.currentMatch;return this.currentMatch=null,e}this.findController.highlightFindOptions();let e=this._editor.getSelections(),t=e[e.length-1],n=this._editor.getModel().findNextMatch(this.searchText,t.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1);return n?new y(n.range.startLineNumber,n.range.startColumn,n.range.endLineNumber,n.range.endColumn):null}addSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;let e=this._getPreviousMatch();return e?new Tf(this._editor.getSelections().concat(e),e,0):null}moveSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;let e=this._getPreviousMatch();if(!e)return null;let t=this._editor.getSelections();return new Tf(t.slice(0,t.length-1).concat(e),e,0)}_getPreviousMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){let e=this.currentMatch;return this.currentMatch=null,e}this.findController.highlightFindOptions();let e=this._editor.getSelections(),t=e[e.length-1],n=this._editor.getModel().findPreviousMatch(this.searchText,t.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1);return n?new y(n.range.startLineNumber,n.range.startColumn,n.range.endLineNumber,n.range.endColumn):null}selectAll(e){if(!this._editor.hasModel())return[];this.findController.highlightFindOptions();let t=this._editor.getModel();return e?t.findMatches(this.searchText,e,!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1,1073741824):t.findMatches(this.searchText,!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1,1073741824)}},Df=class e extends B{static{this.ID=`editor.contrib.multiCursorController`}static get(t){return t.getContribution(e.ID)}constructor(e){super(),this._sessionDispose=this._register(new P),this._editor=e,this._ignoreSelectionChange=!1,this._session=null}dispose(){this._endSession(),super.dispose()}_beginSessionIfNeeded(e){if(!this._session){let t=Ef.create(this._editor,e);if(!t)return;this._session=t;let n={searchString:this._session.searchText};this._session.isDisconnectedFromFindController&&(n.wholeWordOverride=1,n.matchCaseOverride=1,n.isRegexOverride=2),e.getState().change(n,!1),this._sessionDispose.add(this._editor.onDidChangeCursorSelection(e=>{this._ignoreSelectionChange||this._endSession()})),this._sessionDispose.add(this._editor.onDidBlurEditorText(()=>{this._endSession()})),this._sessionDispose.add(e.getState().onFindReplaceStateChange(e=>{(e.matchCase||e.wholeWord)&&this._endSession()}))}}_endSession(){this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController&&this._session.findController.getState().change({wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0},!1),this._session=null}_setSelections(e){this._ignoreSelectionChange=!0,this._editor.setSelections(e),this._ignoreSelectionChange=!1}_expandEmptyToWord(e,t){if(!t.isEmpty())return t;let n=this._editor.getConfiguredWordAtPosition(t.getStartPosition());return n?new y(t.startLineNumber,n.startColumn,t.startLineNumber,n.endColumn):t}_applySessionResult(e){e&&(this._setSelections(e.selections),e.revealRange&&this._editor.revealRangeInCenterIfOutsideViewport(e.revealRange,e.revealScrollType))}getSession(e){return this._session}addSelectionToNextFindMatch(e){if(this._editor.hasModel()){if(!this._session){let t=this._editor.getSelections();if(t.length>1){let n=e.getState().matchCase;if(!Lf(this._editor.getModel(),t,n)){let e=this._editor.getModel(),n=[];for(let r=0,i=t.length;r<i;r++)n[r]=this._expandEmptyToWord(e,t[r]);this._editor.setSelections(n);return}}}this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.addSelectionToNextFindMatch())}}addSelectionToPreviousFindMatch(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.addSelectionToPreviousFindMatch())}moveSelectionToNextFindMatch(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.moveSelectionToNextFindMatch())}moveSelectionToPreviousFindMatch(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.moveSelectionToPreviousFindMatch())}selectAll(e){if(!this._editor.hasModel())return;let t=null,n=e.getState();if(n.isRevealed&&n.searchString.length>0&&n.isRegex){let e=this._editor.getModel();t=n.searchScope?e.findMatches(n.searchString,n.searchScope,n.isRegex,n.matchCase,n.wholeWord?this._editor.getOption(148):null,!1,1073741824):e.findMatches(n.searchString,!0,n.isRegex,n.matchCase,n.wholeWord?this._editor.getOption(148):null,!1,1073741824)}else{if(this._beginSessionIfNeeded(e),!this._session)return;t=this._session.selectAll(n.searchScope)}if(t.length>0){let e=this._editor.getSelection();for(let n=0,r=t.length;n<r;n++){let r=t[n];if(r.range.intersectRanges(e)){t[n]=t[0],t[0]=r;break}}this._setSelections(t.map(e=>new y(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn)))}}},Of=class extends b{run(e,t){let n=Df.get(t);if(!n)return;let r=t._getViewModel();if(r){let i=r.getCursorStates(),a=ml.get(t);if(a)this._run(n,a);else{let r=e.get(Ue).createInstance(ml,t);this._run(n,r),r.dispose()}yf(i,r.getCursorStates())}}},kf=class extends Of{constructor(){super({id:`editor.action.addSelectionToNextFindMatch`,label:S(1349,`Add Selection to Next Find Match`),precondition:void 0,kbOpts:{kbExpr:x.focus,primary:2082,weight:100},menuOpts:{menuId:g.MenubarSelectionMenu,group:`3_multi`,title:L(1339,`Add &&Next Occurrence`),order:5}})}_run(e,t){e.addSelectionToNextFindMatch(t)}},Af=class extends Of{constructor(){super({id:`editor.action.addSelectionToPreviousFindMatch`,label:S(1350,`Add Selection to Previous Find Match`),precondition:void 0,menuOpts:{menuId:g.MenubarSelectionMenu,group:`3_multi`,title:L(1340,`Add P&&revious Occurrence`),order:6}})}_run(e,t){e.addSelectionToPreviousFindMatch(t)}},jf=class extends Of{constructor(){super({id:`editor.action.moveSelectionToNextFindMatch`,label:S(1351,`Move Last Selection to Next Find Match`),precondition:void 0,kbOpts:{kbExpr:x.focus,primary:E(2089,2082),weight:100}})}_run(e,t){e.moveSelectionToNextFindMatch(t)}},Mf=class extends Of{constructor(){super({id:`editor.action.moveSelectionToPreviousFindMatch`,label:S(1352,`Move Last Selection to Previous Find Match`),precondition:void 0})}_run(e,t){e.moveSelectionToPreviousFindMatch(t)}},Nf=class extends Of{constructor(){super({id:`editor.action.selectHighlights`,label:S(1353,`Select All Occurrences of Find Match`),precondition:void 0,kbOpts:{kbExpr:x.focus,primary:3114,weight:100},menuOpts:{menuId:g.MenubarSelectionMenu,group:`3_multi`,title:L(1341,`Select All &&Occurrences`),order:7}})}_run(e,t){e.selectAll(t)}},Pf=class extends Of{constructor(){super({id:`editor.action.changeAll`,label:S(1354,`Change All Occurrences`),precondition:C.and(x.writable,x.editorTextFocus),kbOpts:{kbExpr:x.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:`1_modification`,order:1.2}})}_run(e,t){e.selectAll(t)}},Ff=class{constructor(e,t,n,r,i){this._model=e,this._searchText=t,this._matchCase=n,this._wordSeparators=r,this._cachedFindMatches=null,this._modelVersionId=this._model.getVersionId(),i&&this._model===i._model&&this._searchText===i._searchText&&this._matchCase===i._matchCase&&this._wordSeparators===i._wordSeparators&&this._modelVersionId===i._modelVersionId&&(this._cachedFindMatches=i._cachedFindMatches)}findMatches(){return this._cachedFindMatches===null&&(this._cachedFindMatches=this._model.findMatches(this._searchText,!0,!1,this._matchCase,this._wordSeparators,!1).map(e=>e.range),this._cachedFindMatches.sort(_.compareRangesUsingStarts)),this._cachedFindMatches}},If=class extends B{static{vf=this}static{this.ID=`editor.contrib.selectionHighlighter`}constructor(e,t){super(),this._languageFeaturesService=t,this.editor=e,this._isEnabled=e.getOption(122),this._isEnabledMultiline=e.getOption(124),this._maxLength=e.getOption(123),this._decorations=e.createDecorationsCollection(),this.updateSoon=this._register(new Lr(()=>this._update(),300)),this.state=null,this._register(e.onDidChangeConfiguration(t=>{this._isEnabled=e.getOption(122),this._isEnabledMultiline=e.getOption(124),this._maxLength=e.getOption(123)})),this._register(e.onDidChangeCursorSelection(e=>{this._isEnabled&&(e.selection.isEmpty()?e.reason===3?(this.state&&this._setState(null),this.updateSoon.schedule()):this._setState(null):this._update())})),this._register(e.onDidChangeModel(e=>{this._setState(null)})),this._register(e.onDidChangeModelContent(e=>{this._isEnabled&&this.updateSoon.schedule()}));let n=ml.get(e);n&&this._register(n.getState().onFindReplaceStateChange(e=>{this._update()})),this.updateSoon.schedule()}_update(){this._setState(vf._createState(this.state,this._isEnabled,this._isEnabledMultiline,this._maxLength,this.editor))}static _createState(e,t,n,r,i){if(!t||!i.hasModel())return null;if(!n){let e=i.getSelection();if(e.startLineNumber!==e.endLineNumber)return null}let a=Df.get(i);if(!a)return null;let o=ml.get(i);if(!o)return null;let s=a.getSession(o);if(!s){let e=i.getSelections();if(e.length>1){let t=o.getState().matchCase;if(!Lf(i.getModel(),e,t))return null}s=Ef.create(i,o)}if(!s||s.currentMatch||/^[ \t]+$/.test(s.searchText)||r>0&&s.searchText.length>r)return null;let c=o.getState(),l=c.matchCase;if(c.isRevealed){let e=c.searchString;l||(e=e.toLowerCase());let t=s.searchText;if(l||(t=t.toLowerCase()),e===t&&s.matchCase===c.matchCase&&s.wholeWord===c.wholeWord&&!c.isRegex)return null}return new Ff(i.getModel(),s.searchText,s.matchCase,s.wholeWord?i.getOption(148):null,e)}_setState(e){if(this.state=e,!this.state){this._decorations.clear();return}if(!this.editor.hasModel())return;let t=this.editor.getModel();if(t.isTooLargeForTokenization())return;let n=this.state.findMatches(),r=this.editor.getSelections();r.sort(_.compareRangesUsingStarts);let i=[];for(let e=0,t=0,a=n.length,o=r.length;e<a;){let a=n[e];if(t>=o)i.push(a),e++;else{let n=_.compareRangesUsingStarts(a,r[t]);n<0?((r[t].isEmpty()||!_.areIntersecting(a,r[t]))&&i.push(a),e++):(n>0||e++,t++)}}let a=this.editor.getOption(90)!==`off`,o=this._languageFeaturesService.documentHighlightProvider.has(t)&&a,s=i.map(e=>({range:e,options:hf(o)}));this._decorations.set(s)}dispose(){this._setState(null),super.dispose()}};If=vf=gf([_f(1,j)],If);function Lf(e,t,n){let r=Rf(e,t[0],!n);for(let i=1,a=t.length;i<a;i++){let a=t[i];if(a.isEmpty()||r!==Rf(e,a,!n))return!1}return!0}function Rf(e,t,n){let r=e.getValueInRange(t);return n?r.toLowerCase():r}var zf=class extends b{constructor(){super({id:`editor.action.focusNextCursor`,label:S(1355,`Focus Next Cursor`),metadata:{description:L(1342,`Focuses the next cursor`),args:[]},precondition:void 0})}run(e,t,n){if(!t.hasModel())return;let r=t._getViewModel();if(r.cursorConfig.readOnly)return;r.model.pushStackElement();let i=Array.from(r.getCursorStates()),a=i.shift();a&&(i.push(a),r.setCursorStates(n.source,3,i),r.revealPrimaryCursor(n.source,!0),yf(i,r.getCursorStates()))}},Bf=class extends b{constructor(){super({id:`editor.action.focusPreviousCursor`,label:S(1356,`Focus Previous Cursor`),metadata:{description:L(1343,`Focuses the previous cursor`),args:[]},precondition:void 0})}run(e,t,n){if(!t.hasModel())return;let r=t._getViewModel();if(r.cursorConfig.readOnly)return;r.model.pushStackElement();let i=Array.from(r.getCursorStates()),a=i.pop();a&&(i.unshift(a),r.setCursorStates(n.source,3,i),r.revealPrimaryCursor(n.source,!0),yf(i,r.getCursorStates()))}};bt(Df.ID,Df,4),bt(If.ID,If,1),A(bf),A(xf),A(Sf),A(kf),A(Af),A(jf),A(Mf),A(Nf),A(Pf),A(Cf),A(wf),A(zf),A(Bf);var Vf=class e{async provideSelectionRanges(t,n){let r=[];for(let i of n){let n=[];r.push(n);let a=new Map;await new Promise(n=>e._bracketsRightYield(n,0,t,i,a)),await new Promise(r=>e._bracketsLeftYield(r,0,t,i,a,n))}return r}static{this._maxDuration=30}static{this._maxRounds=2}static _bracketsRightYield(t,n,r,i,a){let o=new Map,s=Date.now();for(;;){if(n>=e._maxRounds){t();break}if(!i){t();break}let c=r.bracketPairs.findNextBracket(i);if(!c){t();break}if(Date.now()-s>e._maxDuration){setTimeout(()=>e._bracketsRightYield(t,n+1,r,i,a));break}if(c.bracketInfo.isOpeningBracket){let e=c.bracketInfo.bracketText,t=o.has(e)?o.get(e):0;o.set(e,t+1)}else{let e=c.bracketInfo.getOpeningBrackets()[0].bracketText,t=o.has(e)?o.get(e):0;if(--t,o.set(e,Math.max(0,t)),t<0){let t=a.get(e);t||(t=new Rn,a.set(e,t)),t.push(c.range)}}i=c.range.getEndPosition()}}static _bracketsLeftYield(t,n,r,i,a,o){let s=new Map,c=Date.now();for(;;){if(n>=e._maxRounds&&a.size===0){t();break}if(!i){t();break}let l=r.bracketPairs.findPrevBracket(i);if(!l){t();break}if(Date.now()-c>e._maxDuration){setTimeout(()=>e._bracketsLeftYield(t,n+1,r,i,a,o));break}if(l.bracketInfo.isOpeningBracket){let t=l.bracketInfo.bracketText,n=s.has(t)?s.get(t):0;if(--n,s.set(t,Math.max(0,n)),n<0){let n=a.get(t);if(n){let i=n.shift();n.size===0&&a.delete(t);let s=_.fromPositions(l.range.getEndPosition(),i.getStartPosition()),c=_.fromPositions(l.range.getStartPosition(),i.getEndPosition());o.push({range:s}),o.push({range:c}),e._addBracketLeading(r,c,o)}}}else{let e=l.bracketInfo.getOpeningBrackets()[0].bracketText,t=s.has(e)?s.get(e):0;s.set(e,t+1)}i=l.range.getStartPosition()}}static _addBracketLeading(e,t,n){if(t.startLineNumber===t.endLineNumber)return;let r=t.startLineNumber,i=e.getLineFirstNonWhitespaceColumn(r);i!==0&&i!==t.startColumn&&(n.push({range:_.fromPositions(new T(r,i),t.getEndPosition())}),n.push({range:_.fromPositions(new T(r,1),t.getEndPosition())}));let a=r-1;if(a>0){let r=e.getLineFirstNonWhitespaceColumn(a);r===t.startColumn&&r!==e.getLineLastNonWhitespaceColumn(a)&&(n.push({range:_.fromPositions(new T(a,r),t.getEndPosition())}),n.push({range:_.fromPositions(new T(a,1),t.getEndPosition())}))}}},Hf=class{constructor(e=!0){this.selectSubwords=e}provideSelectionRanges(e,t){let n=[];for(let r of t){let t=[];n.push(t),this.selectSubwords&&this._addInWordRanges(t,e,r),this._addWordRanges(t,e,r),this._addWhitespaceLine(t,e,r),t.push({range:e.getFullModelRange()})}return n}_addInWordRanges(e,t,n){let r=t.getWordAtPosition(n);if(!r)return;let{word:i,startColumn:a}=r,o=n.column-a,s=o,c=o,l=0;for(;s>=0;s--){let e=i.charCodeAt(s);if(s!==o&&(e===95||e===45)||qn(e)&&cr(l))break;l=e}for(s+=1;c<i.length;c++){let e=i.charCodeAt(c);if(cr(e)&&qn(l)||e===95||e===45)break;l=e}s<c&&e.push({range:new _(n.lineNumber,a+s,n.lineNumber,a+c)})}_addWordRanges(e,t,n){let r=t.getWordAtPosition(n);r&&e.push({range:new _(n.lineNumber,r.startColumn,n.lineNumber,r.endColumn)})}_addWhitespaceLine(e,t,n){t.getLineLength(n.lineNumber)>0&&t.getLineFirstNonWhitespaceColumn(n.lineNumber)===0&&t.getLineLastNonWhitespaceColumn(n.lineNumber)===0&&e.push({range:new _(n.lineNumber,1,n.lineNumber,t.getLineMaxColumn(n.lineNumber))})}},Uf=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Wf=function(e,t){return function(n,r){t(n,r,e)}},Gf,Kf=class e{constructor(e,t){this.index=e,this.ranges=t}mov(t){let n=this.index+(t?1:-1);if(n<0||n>=this.ranges.length)return this;let r=new e(n,this.ranges);return r.ranges[n].equalsRange(this.ranges[this.index])?r.mov(t):r}},qf=class{static{Gf=this}static{this.ID=`editor.contrib.smartSelectController`}static get(e){return e.getContribution(Gf.ID)}constructor(e,t){this._editor=e,this._languageFeaturesService=t,this._ignoreSelection=!1}dispose(){this._selectionListener?.dispose()}async run(e){if(!this._editor.hasModel())return;let t=this._editor.getSelections(),n=this._editor.getModel();if(this._state||await Zf(this._languageFeaturesService.selectionRangeProvider,n,t.map(e=>e.getPosition()),this._editor.getOption(129),Qe.None).then(e=>{if(!(!Sr(e)||e.length!==t.length)&&!(!this._editor.hasModel()||!Yi(this._editor.getSelections(),t,(e,t)=>e.equalsSelection(t)))){for(let n=0;n<e.length;n++)e[n]=e[n].filter(e=>e.containsPosition(t[n].getStartPosition())&&e.containsPosition(t[n].getEndPosition())),e[n].unshift(t[n]);this._state=e.map(e=>new Kf(0,e)),this._selectionListener?.dispose(),this._selectionListener=this._editor.onDidChangeCursorPosition(()=>{this._ignoreSelection||(this._selectionListener?.dispose(),this._state=void 0)})}}),!this._state)return;this._state=this._state.map(t=>t.mov(e));let r=this._state.map(e=>y.fromPositions(e.ranges[e.index].getStartPosition(),e.ranges[e.index].getEndPosition()));this._ignoreSelection=!0;try{this._editor.setSelections(r)}finally{this._ignoreSelection=!1}}};qf=Gf=Uf([Wf(1,j)],qf);var Jf=class extends b{constructor(e,t){super(t),this._forward=e}async run(e,t){let n=qf.get(t);n&&await n.run(this._forward)}},Yf=class extends Jf{constructor(){super(!0,{id:`editor.action.smartSelect.expand`,label:S(1449,`Expand Selection`),precondition:void 0,kbOpts:{kbExpr:x.editorTextFocus,primary:1553,mac:{primary:3345,secondary:[1297]},weight:100},menuOpts:{menuId:g.MenubarSelectionMenu,group:`1_basic`,title:L(1447,`&&Expand Selection`),order:2}})}};Le.registerCommandAlias(`editor.action.smartSelect.grow`,`editor.action.smartSelect.expand`);var Xf=class extends Jf{constructor(){super(!1,{id:`editor.action.smartSelect.shrink`,label:S(1450,`Shrink Selection`),precondition:void 0,kbOpts:{kbExpr:x.editorTextFocus,primary:1551,mac:{primary:3343,secondary:[1295]},weight:100},menuOpts:{menuId:g.MenubarSelectionMenu,group:`1_basic`,title:L(1448,`&&Shrink Selection`),order:3}})}};bt(qf.ID,qf,4),A(Yf),A(Xf);async function Zf(e,t,n,r,i){let a=e.all(t).concat(new Hf(r.selectSubwords));a.length===1&&a.unshift(new Vf);let o=[],s=[];for(let e of a)o.push(Promise.resolve(e.provideSelectionRanges(t,n,i)).then(e=>{if(Sr(e)&&e.length===n.length)for(let t=0;t<n.length;t++){s[t]||(s[t]=[]);for(let r of e[t])_.isIRange(r.range)&&_.containsPosition(r.range,n[t])&&s[t].push(_.lift(r.range))}},ai));return await Promise.all(o),s.map(e=>{if(e.length===0)return[];e.sort((e,t)=>T.isBefore(e.getStartPosition(),t.getStartPosition())?1:T.isBefore(t.getStartPosition(),e.getStartPosition())||T.isBefore(e.getEndPosition(),t.getEndPosition())?-1:+!!T.isBefore(t.getEndPosition(),e.getEndPosition()));let n=[],i;for(let t of e)(!i||_.containsRange(t,i)&&!_.equalsRange(t,i))&&(n.push(t),i=t);if(!r.selectLeadingAndTrailingWhitespace)return n;let a=[n[0]];for(let e=1;e<n.length;e++){let r=n[e-1],i=n[e];if(i.startLineNumber!==r.startLineNumber||i.endLineNumber!==r.endLineNumber){let e=new _(r.startLineNumber,t.getLineFirstNonWhitespaceColumn(r.startLineNumber),r.endLineNumber,t.getLineLastNonWhitespaceColumn(r.endLineNumber));e.containsRange(r)&&!e.equalsRange(r)&&i.containsRange(e)&&!i.equalsRange(e)&&a.push(e);let n=new _(r.startLineNumber,1,r.endLineNumber,t.getLineMaxColumn(r.endLineNumber));n.containsRange(r)&&!n.equalsRange(e)&&i.containsRange(n)&&!i.equalsRange(n)&&a.push(n)}a.push(i)}return a})}Le.registerCommand(`_executeSelectionRangeProvider`,async function(e,...t){let[n,r]=t;wa(Fr.isUri(n)),wa(u(r,e=>T.isIPosition(e)));let i=e.get(j).selectionRangeProvider,a=await e.get(Ce).createModelReference(n);try{return Zf(i,a.object.textEditorModel,r.map(T.lift),{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},Qe.None)}finally{a.dispose()}});var Y={Visible:pc,HasFocusedSuggestion:new D(`suggestWidgetHasFocusedSuggestion`,!1,L(1505,`Whether any suggestion is focused`)),DetailsVisible:new D(`suggestWidgetDetailsVisible`,!1,L(1506,`Whether suggestion details are visible`)),DetailsFocused:new D(`suggestWidgetDetailsFocused`,!1,L(1507,`Whether the details pane of the suggest widget has focus`)),MultipleSuggestions:new D(`suggestWidgetMultipleSuggestions`,!1,L(1508,`Whether there are multiple suggestions to pick from`)),MakesTextEdit:new D(`suggestionMakesTextEdit`,!0,L(1509,`Whether inserting the current suggestion yields in a change or has everything already been typed`)),AcceptSuggestionsOnEnter:new D(`acceptSuggestionOnEnter`,!0,L(1510,`Whether suggestions are inserted when pressing Enter`)),HasInsertAndReplaceRange:new D(`suggestionHasInsertAndReplaceRange`,!1,L(1511,`Whether the current suggestion has insert and replace behaviour`)),InsertMode:new D(`suggestionInsertMode`,void 0,{type:`string`,description:L(1512,`Whether the default behaviour is to insert or replace`)}),CanResolve:new D(`suggestionCanResolve`,!1,L(1513,`Whether the current suggestion supports to resolve further details`))},Qf=new g(`suggestWidgetStatusBar`),$f=class{constructor(e,t,n,r){this.position=e,this.completion=t,this.container=n,this.provider=r,this.isInvalid=!1,this.score=f.Default,this.distance=0,this.textLabel=typeof t.label==`string`?t.label:t.label?.label,this.labelLow=this.textLabel.toLowerCase(),this.isInvalid=!this.textLabel,this.sortTextLow=t.sortText&&t.sortText.toLowerCase(),this.filterTextLow=t.filterText&&t.filterText.toLowerCase(),this.extensionId=t.extensionId,_.isIRange(t.range)?(this.editStart=new T(t.range.startLineNumber,t.range.startColumn),this.editInsertEnd=new T(t.range.endLineNumber,t.range.endColumn),this.editReplaceEnd=new T(t.range.endLineNumber,t.range.endColumn),this.isInvalid=this.isInvalid||_.spansMultipleLines(t.range)||t.range.startLineNumber!==e.lineNumber):(this.editStart=new T(t.range.insert.startLineNumber,t.range.insert.startColumn),this.editInsertEnd=new T(t.range.insert.endLineNumber,t.range.insert.endColumn),this.editReplaceEnd=new T(t.range.replace.endLineNumber,t.range.replace.endColumn),this.isInvalid=this.isInvalid||_.spansMultipleLines(t.range.insert)||_.spansMultipleLines(t.range.replace)||t.range.insert.startLineNumber!==e.lineNumber||t.range.replace.startLineNumber!==e.lineNumber||t.range.insert.startColumn!==t.range.replace.startColumn),typeof r.resolveCompletionItem!=`function`&&(this._resolveCache=Promise.resolve(),this._resolveDuration=0)}get isResolved(){return this._resolveDuration!==void 0}get resolveDuration(){return this._resolveDuration===void 0?-1:this._resolveDuration}async resolve(e){if(!this._resolveCache){let t=e.onCancellationRequested(()=>{this._resolveCache=void 0,this._resolveDuration=void 0}),n=new Pi(!0);this._resolveCache=Promise.resolve(this.provider.resolveCompletionItem(this.completion,e)).then(e=>{Object.assign(this.completion,e),this._resolveDuration=n.elapsed()},e=>{Zn(e)&&(this._resolveCache=void 0,this._resolveDuration=void 0)}).finally(()=>{t.dispose()})}return this._resolveCache}},ep=class e{static{this.default=new e}constructor(e=2,t=new Set,n=new Set,r=new Map,i=!0){this.snippetSortOrder=e,this.kindFilter=t,this.providerFilter=n,this.providerItemsToReuse=r,this.showDeprecated=i}},tp=class{constructor(e,t,n,r){this.items=e,this.needsClipboard=t,this.durations=n,this.disposable=r}};async function np(e,t,n,r=ep.default,i={triggerKind:0},a=Qe.None){let o=new Pi;n=n.clone();let s=t.getWordAtPosition(n),c=s?new _(n.lineNumber,s.startColumn,n.lineNumber,s.endColumn):_.fromPositions(n),l={replace:c,insert:c.setEndPosition(n.lineNumber,n.column)},u=[],d=new P,f=[],p=!1,m=(e,t,i)=>{let a=!1;if(!t)return a;for(let i of t.suggestions)if(!r.kindFilter.has(i.kind)){if(!r.showDeprecated&&i?.tags?.includes(1))continue;i.range||=l,i.sortText||=typeof i.label==`string`?i.label:i.label.label,!p&&i.insertTextRules&&i.insertTextRules&4&&(p=_o.guessNeedsClipboard(i.insertText)),u.push(new $f(n,i,t,e)),a=!0}return pr(t)&&d.add(t),f.push({providerName:e._debugDisplayName??`unknown_provider`,elapsedProvider:t.duration??-1,elapsedOverall:i.elapsed()}),a},h=(async()=>{})();for(let o of e.orderedGroups(t)){let e=!1;if(await Promise.all(o.map(async o=>{if(r.providerItemsToReuse.has(o)){let t=r.providerItemsToReuse.get(o);t.forEach(e=>u.push(e)),e||=t.length>0;return}if(!(r.providerFilter.size>0&&!r.providerFilter.has(o)))try{let r=new Pi,s=await o.provideCompletionItems(t,n,i,a);e=m(o,s,r)||e}catch(e){ai(e)}})),e||a.isCancellationRequested)break}return await h,a.isCancellationRequested?(d.dispose(),Promise.reject(new mn)):new tp(u.sort(sp(r.snippetSortOrder)),p,{entries:f,elapsed:o.elapsed()},d)}function rp(e,t){if(e.sortTextLow&&t.sortTextLow){if(e.sortTextLow<t.sortTextLow)return-1;if(e.sortTextLow>t.sortTextLow)return 1}return e.textLabel<t.textLabel?-1:e.textLabel>t.textLabel?1:e.completion.kind-t.completion.kind}function ip(e,t){if(e.completion.kind!==t.completion.kind){if(e.completion.kind===28)return-1;if(t.completion.kind===28)return 1}return rp(e,t)}function ap(e,t){if(e.completion.kind!==t.completion.kind){if(e.completion.kind===28)return 1;if(t.completion.kind===28)return-1}return rp(e,t)}var op=new Map;op.set(0,ip),op.set(2,ap),op.set(1,rp);function sp(e){return op.get(e)}Le.registerCommand(`_executeCompletionItemProvider`,async(e,...t)=>{let[n,r,i,a]=t;wa(Fr.isUri(n)),wa(T.isIPosition(r)),wa(typeof i==`string`||!i),wa(typeof a==`number`||!a);let{completionProvider:o}=e.get(j),s=await e.get(Ce).createModelReference(n);try{let e={incomplete:!1,suggestions:[]},t=[],n=s.object.textEditorModel.validatePosition(r),c=await np(o,s.object.textEditorModel,n,void 0,{triggerCharacter:i??void 0,triggerKind:+!!i});for(let n of c.items)t.length<(a??0)&&t.push(n.resolve(Qe.None)),e.incomplete=e.incomplete||n.container.incomplete,e.suggestions.push(n.completion);try{return await Promise.all(t),e}finally{setTimeout(()=>c.disposable.dispose(),100)}}finally{s.dispose()}});function cp(e,t){e.getContribution(`editor.contrib.suggestController`)?.triggerSuggest(new Set().add(t),void 0,!0)}var lp=class{static isAllOff(e){return e.other===`off`&&e.comments===`off`&&e.strings===`off`}static isAllOn(e){return e.other===`on`&&e.comments===`on`&&e.strings===`on`}static valueFor(e,t){switch(t){case 1:return e.comments;case 2:return e.strings;default:return e.other}}};function up(e,t=le){return $r(e,t)?e.charAt(0).toUpperCase()+e.slice(1):e}var dp=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},fp=function(e,t){return function(n,r){t(n,r,e)}},pp=class{constructor(e){this._delegates=e}resolve(e){for(let t of this._delegates){let n=t.resolve(e);if(n!==void 0)return n}}},mp=class{constructor(e,t,n,r){this._model=e,this._selection=t,this._selectionIdx=n,this._overtypingCapturer=r}resolve(e){let{name:t}=e;if(t===`SELECTION`||t===`TM_SELECTED_TEXT`){let t=this._model.getValueInRange(this._selection)||void 0,n=this._selection.startLineNumber!==this._selection.endLineNumber;if(!t&&this._overtypingCapturer){let e=this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);e&&(t=e.value,n=e.multiline)}if(t&&n&&e.snippet){let n=H(this._model.getLineContent(this._selection.startLineNumber),0,this._selection.startColumn-1),r=n;e.snippet.walk(t=>t===e?!1:(t instanceof so&&(r=H(Cn(t.value).pop())),!0));let i=yt(r,n);t=t.replace(/(\r\n|\r|\n)(.*)/g,(e,t,n)=>`${t}${r.substr(i)}${n}`)}return t}else if(t===`TM_CURRENT_LINE`)return this._model.getLineContent(this._selection.positionLineNumber);else if(t===`TM_CURRENT_WORD`){let e=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return e&&e.word||void 0}else if(t===`TM_LINE_INDEX`)return String(this._selection.positionLineNumber-1);else if(t===`TM_LINE_NUMBER`)return String(this._selection.positionLineNumber);else if(t===`CURSOR_INDEX`)return String(this._selectionIdx);else if(t===`CURSOR_NUMBER`)return String(this._selectionIdx+1)}},hp=class{constructor(e,t){this._labelService=e,this._model=t}resolve(e){let{name:t}=e;if(t===`TM_FILENAME`)return s(this._model.uri.fsPath);if(t===`TM_FILENAME_BASE`){let e=s(this._model.uri.fsPath),t=e.lastIndexOf(`.`);return t<=0?e:e.slice(0,t)}else if(t===`TM_DIRECTORY`)return Ar(this._model.uri.fsPath)===`.`?``:this._labelService.getUriLabel(Gr(this._model.uri));else if(t===`TM_DIRECTORY_BASE`)return Ar(this._model.uri.fsPath)===`.`?``:s(Ar(this._model.uri.fsPath));else if(t===`TM_FILEPATH`)return this._labelService.getUriLabel(this._model.uri);else if(t===`RELATIVE_FILEPATH`)return this._labelService.getUriLabel(this._model.uri,{relative:!0,noPrefix:!0})}},gp=class{constructor(e,t,n,r){this._readClipboardText=e,this._selectionIdx=t,this._selectionCount=n,this._spread=r}resolve(e){if(e.name!==`CLIPBOARD`)return;let t=this._readClipboardText();if(t){if(this._spread){let e=t.split(/\r\n|\n|\r/).filter(e=>!Hn(e));if(e.length===this._selectionCount)return e[this._selectionIdx]}return t}}},_p=class{constructor(e,t,n){this._model=e,this._selection=t,this._languageConfigurationService=n}resolve(e){let{name:t}=e,n=this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber,this._selection.selectionStartColumn),r=this._languageConfigurationService.getLanguageConfiguration(n).comments;if(r){if(t===`LINE_COMMENT`)return r.lineCommentToken||void 0;if(t===`BLOCK_COMMENT_START`)return r.blockCommentStartToken||void 0;if(t===`BLOCK_COMMENT_END`)return r.blockCommentEndToken||void 0}}};_p=dp([fp(2,zt)],_p);var vp=class e{constructor(){this._date=new Date}static{this.dayNames=[L(1456,`Sunday`),L(1457,`Monday`),L(1458,`Tuesday`),L(1459,`Wednesday`),L(1460,`Thursday`),L(1461,`Friday`),L(1462,`Saturday`)]}static{this.dayNamesShort=[L(1463,`Sun`),L(1464,`Mon`),L(1465,`Tue`),L(1466,`Wed`),L(1467,`Thu`),L(1468,`Fri`),L(1469,`Sat`)]}static{this.monthNames=[L(1470,`January`),L(1471,`February`),L(1472,`March`),L(1473,`April`),L(1474,`May`),L(1475,`June`),L(1476,`July`),L(1477,`August`),L(1478,`September`),L(1479,`October`),L(1480,`November`),L(1481,`December`)]}static{this.monthNamesShort=[L(1482,`Jan`),L(1483,`Feb`),L(1484,`Mar`),L(1485,`Apr`),L(1486,`May`),L(1487,`Jun`),L(1488,`Jul`),L(1489,`Aug`),L(1490,`Sep`),L(1491,`Oct`),L(1492,`Nov`),L(1493,`Dec`)]}resolve(t){let{name:n}=t;switch(n){case`CURRENT_YEAR`:return String(this._date.getFullYear());case`CURRENT_YEAR_SHORT`:return String(this._date.getFullYear()).slice(-2);case`CURRENT_MONTH`:return String(this._date.getMonth().valueOf()+1).padStart(2,`0`);case`CURRENT_DATE`:return String(this._date.getDate().valueOf()).padStart(2,`0`);case`CURRENT_HOUR`:return String(this._date.getHours().valueOf()).padStart(2,`0`);case`CURRENT_MINUTE`:return String(this._date.getMinutes().valueOf()).padStart(2,`0`);case`CURRENT_SECOND`:return String(this._date.getSeconds().valueOf()).padStart(2,`0`);case`CURRENT_MILLISECOND`:return String(this._date.getMilliseconds().valueOf()).padStart(3,`0`);case`CURRENT_DAY_NAME`:return e.dayNames[this._date.getDay()];case`CURRENT_DAY_NAME_SHORT`:return e.dayNamesShort[this._date.getDay()];case`CURRENT_MONTH_NAME`:return e.monthNames[this._date.getMonth()];case`CURRENT_MONTH_NAME_SHORT`:return e.monthNamesShort[this._date.getMonth()];case`CURRENT_SECONDS_UNIX`:return String(Math.floor(this._date.getTime()/1e3));case`CURRENT_MILLISECONDS_UNIX`:return String(this._date.getTime());case`CURRENT_TIMEZONE_OFFSET`:{let e=this._date.getTimezoneOffset(),t=e>0?`-`:`+`,n=Math.trunc(Math.abs(e/60)),r=n<10?`0`+n:n,i=Math.abs(e)-n*60,a=i<10?`0`+i:i;return t+r+`:`+a}case`CURRENT_TIMEZONE_NAME`:return this._timezoneName??=Intl.DateTimeFormat().resolvedOptions().timeZone}}},yp=class{constructor(e){this._workspaceService=e}resolve(e){if(!this._workspaceService)return;let t=Ze(this._workspaceService.getWorkspace());if(!pt(t)){if(e.name===`WORKSPACE_NAME`)return this._resolveWorkspaceName(t);if(e.name===`WORKSPACE_FOLDER`)return this._resoveWorkspacePath(t)}}_resolveWorkspaceName(e){if(pe(e))return s(e.uri.path);let t=s(e.configPath.path);return t.endsWith(`code-workspace`)&&(t=t.substr(0,t.length-nt.length-1)),t}_resoveWorkspacePath(e){if(pe(e))return up(e.uri.fsPath);let t=s(e.configPath.path),n=e.configPath.fsPath;return n.endsWith(t)&&(n=n.substr(0,n.length-t.length-1)),n?up(n):`/`}},bp=class{resolve(e){let{name:t}=e;if(t===`RANDOM`)return Math.random().toString().slice(-6);if(t===`RANDOM_HEX`)return Math.random().toString(16).slice(-6);if(t===`UUID`)return yr()}},xp=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Sp=function(e,t){return function(n,r){t(n,r,e)}},Cp,wp=class e{static{this._decor={active:V.register({description:`snippet-placeholder-1`,stickiness:0,className:`snippet-placeholder`}),inactive:V.register({description:`snippet-placeholder-2`,stickiness:1,className:`snippet-placeholder`}),activeFinal:V.register({description:`snippet-placeholder-3`,stickiness:1,className:`finish-snippet-placeholder`}),inactiveFinal:V.register({description:`snippet-placeholder-4`,stickiness:1,className:`finish-snippet-placeholder`})}}constructor(e,t,n){this._editor=e,this._snippet=t,this._snippetLineLeadingWhitespace=n,this._offset=-1,this._nestingLevel=1,this._placeholderGroups=vi(t.placeholders,lo.compareByIndex),this._placeholderGroupsIdx=-1}initialize(e){this._offset=e.newPosition}dispose(){this._placeholderDecorations&&this._editor.removeDecorations([...this._placeholderDecorations.values()]),this._placeholderGroups.length=0}_initDecorations(){if(this._offset===-1)throw Error(`Snippet not initialized!`);if(this._placeholderDecorations)return;this._placeholderDecorations=new Map;let t=this._editor.getModel();this._editor.changeDecorations(n=>{for(let r of this._snippet.placeholders){let i=this._snippet.offset(r),a=this._snippet.fullLen(r),o=_.fromPositions(t.getPositionAt(this._offset+i),t.getPositionAt(this._offset+i+a)),s=r.isFinalTabstop?e._decor.inactiveFinal:e._decor.inactive,c=n.addDecoration(o,s);this._placeholderDecorations.set(r,c)}})}move(t){if(!this._editor.hasModel())return[];this._initDecorations();let n=this._editor.getModel();if(this._placeholderGroupsIdx>=0){let e=[];for(let t of this._placeholderGroups[this._placeholderGroupsIdx])if(t.transform){let r=this._placeholderDecorations.get(t),i=r?n.getDecorationRange(r):null;if(i){let r=n.getValueInRange(i),a=t.transform.resolve(r).split(/\r\n|\r|\n/);for(let e=1;e<a.length;e++)a[e]=n.normalizeIndentation(this._snippetLineLeadingWhitespace+a[e]);e.push(v.replace(i,a.join(n.getEOL())))}}e.length>0&&this._editor.executeEdits(`snippet.placeholderTransform`,e)}let r=!1;t===!0&&this._placeholderGroupsIdx<this._placeholderGroups.length-1?(this._placeholderGroupsIdx+=1,r=!0):t===!1&&this._placeholderGroupsIdx>0&&(--this._placeholderGroupsIdx,r=!0);let i=n.changeDecorations(t=>{let i=new Set,a=[];for(let o of this._placeholderGroups[this._placeholderGroupsIdx]){let s=this._placeholderDecorations.get(o),c=s?n.getDecorationRange(s):null;if(r&&=this._hasPlaceholderBeenCollapsed(o),!(!s||!c)){a.push(new y(c.startLineNumber,c.startColumn,c.endLineNumber,c.endColumn)),t.changeDecorationOptions(s,o.isFinalTabstop?e._decor.activeFinal:e._decor.active),i.add(o);for(let n of this._snippet.enclosingPlaceholders(o)){let r=this._placeholderDecorations.get(n);r&&(t.changeDecorationOptions(r,n.isFinalTabstop?e._decor.activeFinal:e._decor.active),i.add(n))}}}for(let[n,r]of this._placeholderDecorations)i.has(n)||t.changeDecorationOptions(r,n.isFinalTabstop?e._decor.inactiveFinal:e._decor.inactive);return a});return r?this.move(t):i??[]}_hasPlaceholderBeenCollapsed(e){let t=this._editor.getModel(),n=e;for(;n;){if(n instanceof lo){let e=this._placeholderDecorations.get(n),r=e?t.getDecorationRange(e):null;if((!r||r.isEmpty())&&n.toString().length>0)return!0}n=n.parent}return!1}get isAtFirstPlaceholder(){return this._placeholderGroupsIdx<=0||this._placeholderGroups.length===0}get isAtLastPlaceholder(){return this._placeholderGroupsIdx===this._placeholderGroups.length-1}get hasPlaceholder(){return this._snippet.placeholders.length>0}get isTrivialSnippet(){if(this._snippet.placeholders.length===0)return!0;if(this._snippet.placeholders.length===1){let[e]=this._snippet.placeholders;if(e.isFinalTabstop&&this._snippet.rightMostDescendant===e)return!0}return!1}computePossibleSelections(){let e=new Map;for(let t of this._placeholderGroups){let n;for(let r of t){if(r.isFinalTabstop)break;n||(n=[],e.set(r.index,n));let t=this._placeholderDecorations.get(r),i=this._editor.getModel().getDecorationRange(t);if(!i){e.delete(r.index);break}n.push(i)}}return e}get activeChoice(){if(!this._placeholderDecorations)return;let e=this._placeholderGroups[this._placeholderGroupsIdx][0];if(!e?.choice)return;let t=this._placeholderDecorations.get(e);if(!t)return;let n=this._editor.getModel().getDecorationRange(t);if(n)return{range:n,choice:e.choice}}get hasChoice(){let e=!1;return this._snippet.walk(t=>(e=t instanceof uo,!e)),e}get activePlaceholderCount(){return this._placeholderGroupsIdx<0?0:this._placeholderGroups[this._placeholderGroupsIdx].length}merge(t){let n=this._editor.getModel();this._nestingLevel*=10,this._editor.changeDecorations(r=>{for(let i of this._placeholderGroups[this._placeholderGroupsIdx]){let a=t.shift();console.assert(a._offset!==-1),console.assert(!a._placeholderDecorations);let o=a._snippet.placeholderInfo.last.index;for(let e of a._snippet.placeholderInfo.all)e.isFinalTabstop?e.index=i.index+(o+1)/this._nestingLevel:e.index=i.index+e.index/this._nestingLevel;this._snippet.replace(i,a._snippet.children);let s=this._placeholderDecorations.get(i);r.removeDecoration(s),this._placeholderDecorations.delete(i);for(let t of a._snippet.placeholders){let i=a._snippet.offset(t),o=a._snippet.fullLen(t),s=_.fromPositions(n.getPositionAt(a._offset+i),n.getPositionAt(a._offset+i+o)),c=r.addDecoration(s,e._decor.inactive);this._placeholderDecorations.set(t,c)}}this._renormalizePlaceholderIndices(),this._placeholderGroups=vi(this._snippet.placeholders,lo.compareByIndex)})}_renormalizePlaceholderIndices(){let e=this._snippet.placeholders,t=new Set;for(let n of e)n.isFinalTabstop||t.add(n.index);let n=[...t].sort((e,t)=>e-t),r=new Map;for(let e=0;e<n.length;e++)r.set(n[e],e+1);for(let t of e)t.isFinalTabstop||(t.index=r.get(t.index));this._nestingLevel=1}},Tp={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0},Ep=Cp=class{static adjustWhitespace(e,t,n,r,i){let a=H(e.getLineContent(t.lineNumber),0,t.column-1),o;return r.walk(t=>{if(!(t instanceof so)||t.parent instanceof uo||i&&!i.has(t))return!0;let s=t.value.split(/\r\n|\r|\n/);if(n){let n=r.offset(t);if(n===0)s[0]=e.normalizeIndentation(s[0]);else{o??=r.toString();let t=o.charCodeAt(n-1);(t===10||t===13)&&(s[0]=e.normalizeIndentation(a+s[0]))}for(let t=1;t<s.length;t++)s[t]=e.normalizeIndentation(a+s[t])}let c=s.join(e.getEOL());return c!==t.value&&(t.parent.replace(t,[new so(c)]),o=void 0),!0}),a}static adjustSelection(e,t,n,r){if(n!==0||r!==0){let{positionLineNumber:i,positionColumn:a}=t,o=a-n,s=a+r,c=e.validateRange({startLineNumber:i,startColumn:o,endLineNumber:i,endColumn:s});t=y.createWithDirection(c.startLineNumber,c.startColumn,c.endLineNumber,c.endColumn,t.getDirection())}return t}static createEditsAndSnippetsFromSelections(e,t,n,r,i,a,s,c,l){let u=[],d=[];if(!e.hasModel())return{edits:u,snippets:d};let f=e.getModel(),p=e.invokeWithinContext(e=>e.get(o)),m=e.invokeWithinContext(e=>new hp(e.get(_t),f)),h=()=>s,ee=f.getValueInRange(Cp.adjustSelection(f,e.getSelection(),n,0)),te=f.getValueInRange(Cp.adjustSelection(f,e.getSelection(),0,r)),ne=f.getLineFirstNonWhitespaceColumn(e.getSelection().positionLineNumber),g=e.getSelections().map((e,t)=>({selection:e,idx:t})).sort((e,t)=>_.compareRangesUsingStarts(e.selection,t.selection));for(let{selection:o,idx:s}of g){let re=Cp.adjustSelection(f,o,n,0),ie=Cp.adjustSelection(f,o,0,r);ee!==f.getValueInRange(re)&&(re=o),te!==f.getValueInRange(ie)&&(ie=o);let ae=o.setStartPosition(re.startLineNumber,re.startColumn).setEndPosition(ie.endLineNumber,ie.endColumn),oe=new _o().parse(t,!0,i),_=ae.getStartPosition(),se=Cp.adjustWhitespace(f,_,a||s>0&&ne!==f.getLineFirstNonWhitespaceColumn(o.positionLineNumber),oe);oe.resolveVariables(new pp([m,new gp(h,s,g.length,e.getOption(88)===`spread`),new mp(f,o,s,c),new _p(f,o,l),new vp,new yp(p),new bp])),u[s]=v.replace(ae,oe.toString()),u[s].identifier={major:s,minor:0},u[s]._isTracked=!0,d[s]=new wp(e,oe,se)}return{edits:u,snippets:d}}static createEditsAndSnippetsFromEdits(e,t,n,r,i,a,s){if(!e.hasModel()||t.length===0)return{edits:[],snippets:[]};let c=[],l=e.getModel(),u=new _o,d=new go,f=e.invokeWithinContext(e=>new hp(e.get(_t),l)),p=new vp,m=new yp(e.invokeWithinContext(e=>e.get(o))),h=new bp,ee=()=>i,te=e.getOption(88)===`spread`,ne=t.map((e,t)=>({edit:e,idx:t})).sort((e,t)=>_.compareRangesUsingStarts(e.edit.range,t.edit.range)),g=0;for(let e=0;e<ne.length;e++){let{edit:{range:t,template:n,keepWhitespace:i},idx:o}=ne[e];if(e>0){let n=ne[e-1].edit.range,r=_.fromPositions(n.getEndPosition(),t.getStartPosition()),i=new so(l.getValueInRange(r));d.appendChild(i),g+=i.value.length}let re=new Set;d.walk(e=>(e instanceof mo&&re.add(e),!0));let ie=u.parseFragment(n,d);Cp.adjustWhitespace(l,t.getStartPosition(),i===void 0?r:!i,d,new Set(ie));let ae=y.fromRange(t,0),oe=new pp([f,new gp(ee,o,ne.length,te),new mp(l,ae,o,a),new _p(l,ae,s),p,m,h]);d.walk(e=>(e instanceof mo&&!re.has(e)&&e.resolve(oe),!0));let se=d.toString(),ce=se.slice(g);g=se.length;let le=v.replace(t,ce);le.identifier={major:e,minor:0},le._isTracked=!0,c.push(le)}return u.ensureFinalTabstop(d,n,!0),{edits:c,snippets:[new wp(e,d,``)]}}constructor(e,t,n=Tp,r){this._editor=e,this._template=t,this._options=n,this._languageConfigurationService=r,this._templateMerges=[],this._snippets=[]}dispose(){vr(this._snippets)}_logInfo(){return`template="${this._template}", merged_templates="${this._templateMerges.join(` -> `)}"`}insert(e){if(!this._editor.hasModel())return;let{edits:t,snippets:n}=typeof this._template==`string`?Cp.createEditsAndSnippetsFromSelections(this._editor,this._template,this._options.overwriteBefore,this._options.overwriteAfter,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService):Cp.createEditsAndSnippetsFromEdits(this._editor,this._template,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService);this._snippets=n,this._editor.executeEdits(e??yi.snippet(),t,e=>{let t=e.filter(e=>!!e.identifier);for(let e=0;e<n.length;e++)n[e].initialize(t[e].textChange);return this._snippets[0].hasPlaceholder?this._move(!0):t.map(e=>y.fromPositions(e.range.getEndPosition()))}),this._editor.revealRange(this._editor.getSelections()[0])}merge(e,t=Tp){if(!this._editor.hasModel())return;this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,e]);let{edits:n,snippets:r}=Cp.createEditsAndSnippetsFromSelections(this._editor,e,t.overwriteBefore,t.overwriteAfter,!0,t.adjustWhitespace,t.clipboardText,t.overtypingCapturer,this._languageConfigurationService);this._editor.executeEdits(`snippet`,n,e=>{let t=e.filter(e=>!!e.identifier);for(let e=0;e<r.length;e++)r[e].initialize(t[e].textChange);let n=r[0].isTrivialSnippet,i=r.length===this._snippets.reduce((e,t)=>e+t.activePlaceholderCount,0);if(!n&&i){for(let e of this._snippets)e.merge(r);console.assert(r.length===0)}return this._snippets[0].hasPlaceholder&&!n&&i?this._move(void 0):t.map(e=>y.fromPositions(e.range.getEndPosition()))})}next(){let e=this._move(!0);e.length>0&&(this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition()))}prev(){let e=this._move(!1);e.length>0&&(this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition()))}_move(e){let t=[];for(let n of this._snippets){let r=n.move(e);t.push(...r)}return t}get isAtFirstPlaceholder(){return this._snippets[0].isAtFirstPlaceholder}get isAtLastPlaceholder(){return this._snippets[0].isAtLastPlaceholder}get hasPlaceholder(){return this._snippets[0].hasPlaceholder}get hasChoice(){return this._snippets[0].hasChoice}get activeChoice(){return this._snippets[0].activeChoice}isSelectionWithinPlaceholders(){if(!this.hasPlaceholder)return!1;let e=this._editor.getSelections();if(e.length<this._snippets.length)return!1;let t=new Map;for(let n of this._snippets){let r=n.computePossibleSelections();if(t.size===0)for(let[n,i]of r){i.sort(_.compareRangesUsingStarts);for(let r of e)if(i[0].containsRange(r)){t.set(n,[]);break}}if(t.size===0)return!1;t.forEach((e,t)=>{e.push(...r.get(t))})}e.sort(_.compareRangesUsingStarts);for(let[n,r]of t){if(r.length!==e.length){t.delete(n);continue}r.sort(_.compareRangesUsingStarts);for(let i=0;i<r.length;i++)if(!r[i].containsRange(e[i])){t.delete(n);continue}}return t.size>0}};Ep=Cp=xp([Sp(3,zt)],Ep);var Dp=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Op=function(e,t){return function(n,r){t(n,r,e)}},kp,Ap={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0},X=class{static{kp=this}static{this.ID=`snippetController2`}static get(e){return e.getContribution(kp.ID)}static{this.InSnippetMode=new D(`inSnippetMode`,!1,L(1451,`Whether the editor in current in snippet mode`))}static{this.HasNextTabstop=new D(`hasNextTabstop`,!1,L(1452,`Whether there is a next tab stop when in snippet mode`))}static{this.HasPrevTabstop=new D(`hasPrevTabstop`,!1,L(1453,`Whether there is a previous tab stop when in snippet mode`))}static{this.InSnippetChoice=new D(`inSnippetChoice`,!1,L(1454,`Whether the current snippet tab stop is a choice`))}constructor(e,t,n,r,i){this._editor=e,this._logService=t,this._languageFeaturesService=n,this._languageConfigurationService=i,this._inSnippetObservable=Yn(this,!1),this._snippetListener=new P,this._modelVersionId=-1,this._inSnippet=kp.InSnippetMode.bindTo(r),this._hasNextTabstop=kp.HasNextTabstop.bindTo(r),this._hasPrevTabstop=kp.HasPrevTabstop.bindTo(r),this._inSnippetChoice=kp.InSnippetChoice.bindTo(r)}dispose(){this._inSnippet.reset(),this._inSnippetObservable.set(!1,void 0),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._inSnippetChoice.reset(),this._session?.dispose(),this._snippetListener.dispose()}insert(e,t){try{this._doInsert(e,t===void 0?Ap:{...Ap,...t})}catch(t){this.cancel(),this._logService.error(t),this._logService.error(`snippet_error`),this._logService.error(`insert_template=`,e),this._logService.error(`existing_template=`,this._session?this._session._logInfo():`<no_session>`)}}_doInsert(e,t){if(this._editor.hasModel()){if(this._snippetListener.clear(),t.undoStopBefore&&this._editor.getModel().pushStackElement(),this._session&&typeof e!=`string`&&this.cancel(),this._session?(wa(typeof e==`string`),this._session.merge(e,t)):(this._modelVersionId=this._editor.getModel().getAlternativeVersionId(),this._session=new Ep(this._editor,e,t,this._languageConfigurationService),this._session.insert(t.reason)),t.undoStopAfter&&this._editor.getModel().pushStackElement(),this._session?.hasChoice){let e={_debugDisplayName:`snippetChoiceCompletions`,provideCompletionItems:(e,t)=>{if(!this._session||e!==this._editor.getModel()||!T.equals(this._editor.getPosition(),t))return;let{activeChoice:n}=this._session;if(!n||n.choice.options.length===0)return;let r=e.getValueInRange(n.range),i=!!n.choice.options.find(e=>e.value===r),a=[];for(let e=0;e<n.choice.options.length;e++){let t=n.choice.options[e];a.push({kind:13,label:t.value,insertText:t.value,sortText:`a`.repeat(e+1),range:n.range,filterText:i?`${r}_${t.value}`:void 0,command:{id:`jumpToNextSnippetPlaceholder`,title:L(1455,`Go to next placeholder...`)}})}return{suggestions:a}}},t=this._editor.getModel(),n,r=!1,i=()=>{n?.dispose(),r=!1},a=()=>{r||=(n=this._languageFeaturesService.completionProvider.register({language:t.getLanguageId(),pattern:t.uri.fsPath,scheme:t.uri.scheme,exclusive:!0},e),this._snippetListener.add(n),!0)};this._choiceCompletions={provider:e,enable:a,disable:i}}this._updateState(),this._snippetListener.add(this._editor.onDidChangeModelContent(e=>e.isFlush&&this.cancel())),this._snippetListener.add(this._editor.onDidChangeModel(()=>this.cancel())),this._snippetListener.add(this._editor.onDidChangeCursorSelection(()=>this._updateState()))}}_updateState(){if(!(!this._session||!this._editor.hasModel())){if(this._modelVersionId===this._editor.getModel().getAlternativeVersionId()||!this._session.hasPlaceholder)return this.cancel();if(this._session.isAtLastPlaceholder||!this._session.isSelectionWithinPlaceholders())return this._editor.getModel().pushStackElement(),this.cancel();this._inSnippet.set(!0),this._inSnippetObservable.set(!0,void 0),this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder),this._hasNextTabstop.set(!this._session.isAtLastPlaceholder),this._handleChoice()}}_handleChoice(){if(!this._session||!this._editor.hasModel()){this._currentChoice=void 0,this._inSnippetChoice.reset();return}let{activeChoice:e}=this._session;if(!e||!this._choiceCompletions){this._choiceCompletions?.disable(),this._currentChoice=void 0,this._inSnippetChoice.reset();return}this._inSnippetChoice.set(!0),this._currentChoice!==e.choice&&(this._currentChoice=e.choice,this._choiceCompletions.enable(),queueMicrotask(()=>{cp(this._editor,this._choiceCompletions.provider)}))}finish(){for(;this._inSnippet.get();)this.next()}cancel(e=!1){this._inSnippet.reset(),this._inSnippetObservable.set(!1,void 0),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._inSnippetChoice.reset(),this._snippetListener.clear(),this._currentChoice=void 0,this._session?.dispose(),this._session=void 0,this._modelVersionId=-1,e&&this._editor.setSelections([this._editor.getSelection()])}prev(){this._session?.prev(),this._updateState()}next(){this._session?.next(),this._updateState()}isInSnippet(){return!!this._inSnippet.get()}get isInSnippetObservable(){return this._inSnippetObservable}};X=kp=Dp([Op(1,Mi),Op(2,j),Op(3,w),Op(4,zt)],X),bt(X.ID,X,4);var jp=Je.bindToContribution(X.get);M(new jp({id:`jumpToNextSnippetPlaceholder`,precondition:C.and(X.InSnippetMode,X.HasNextTabstop),handler:e=>e.next(),kbOpts:{weight:130,kbExpr:x.textInputFocus,primary:2}})),M(new jp({id:`jumpToPrevSnippetPlaceholder`,precondition:C.and(X.InSnippetMode,X.HasPrevTabstop),handler:e=>e.prev(),kbOpts:{weight:130,kbExpr:x.textInputFocus,primary:1026}})),c.registerKeybindingRule({id:`jumpToPrevSnippetPlaceholder`,weight:191,when:C.and(X.InSnippetMode,X.HasPrevTabstop,X.InSnippetChoice,x.textInputFocus),primary:1026}),M(new jp({id:`leaveSnippet`,precondition:X.InSnippetMode,handler:e=>e.cancel(!0),kbOpts:{weight:130,kbExpr:x.textInputFocus,primary:9,secondary:[1033]}})),M(new jp({id:`acceptSnippet`,precondition:X.InSnippetMode,handler:e=>e.finish()}));var Mp=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Np=function(e,t){return function(n,r){t(n,r,e)}},Pp,Fp=class{constructor(e){this.name=e}select(e,t,n){if(n.length===0)return 0;let r=n[0].score[0];for(let e=0;e<n.length;e++){let{score:t,completion:i}=n[e];if(t[0]!==r)break;if(i.preselect)return e}return 0}},Ip=class extends Fp{constructor(){super(`first`)}memorize(e,t,n){}toJSON(){}fromJSON(){}},Lp=class extends Fp{constructor(){super(`recentlyUsed`),this._cache=new mr(300,.66),this._seq=0}memorize(e,t,n){let r=`${e.getLanguageId()}/${n.textLabel}`;this._cache.set(r,{touch:this._seq++,type:n.completion.kind,insertText:n.completion.insertText})}select(e,t,n){if(n.length===0)return 0;let r=e.getLineContent(t.lineNumber).substr(t.column-10,t.column-1);if(/\s$/.test(r))return super.select(e,t,n);let i=n[0].score[0],a=-1,o=-1,s=-1;for(let t=0;t<n.length&&n[t].score[0]===i;t++){let r=`${e.getLanguageId()}/${n[t].textLabel}`,i=this._cache.peek(r);if(i&&i.touch>s&&i.type===n[t].completion.kind&&i.insertText===n[t].completion.insertText&&(s=i.touch,o=t),n[t].completion.preselect&&a===-1)return a=t}return o===-1?a===-1?0:a:o}toJSON(){return this._cache.toJSON()}fromJSON(e){this._cache.clear();for(let[t,n]of e)n.touch=0,n.type=typeof n.type==`number`?n.type:ir.fromString(n.type),this._cache.set(t,n);this._seq=this._cache.size}},Rp=class extends Fp{constructor(){super(`recentlyUsedByPrefix`),this._trie=Xn.forStrings(),this._seq=0}memorize(e,t,n){let{word:r}=e.getWordUntilPosition(t),i=`${e.getLanguageId()}/${r}`;this._trie.set(i,{type:n.completion.kind,insertText:n.completion.insertText,touch:this._seq++})}select(e,t,n){let{word:r}=e.getWordUntilPosition(t);if(!r)return super.select(e,t,n);let i=`${e.getLanguageId()}/${r}`,a=this._trie.get(i);if(a||=this._trie.findSubstr(i),a)for(let e=0;e<n.length;e++){let{kind:t,insertText:r}=n[e].completion;if(t===a.type&&r===a.insertText)return e}return super.select(e,t,n)}toJSON(){let e=[];return this._trie.forEach((t,n)=>e.push([n,t])),e.sort((e,t)=>-(e[1].touch-t[1].touch)).forEach((e,t)=>e[1].touch=t),e.slice(0,200)}fromJSON(e){if(this._trie.clear(),e.length>0){this._seq=e[0][1].touch+1;for(let[t,n]of e)n.type=typeof n.type==`number`?n.type:ir.fromString(n.type),this._trie.set(t,n)}}},zp=class{static{Pp=this}static{this._strategyCtors=new Map([[`recentlyUsedByPrefix`,Rp],[`recentlyUsed`,Lp],[`first`,Ip]])}static{this._storagePrefix=`suggest/memories`}constructor(e,t){this._storageService=e,this._configService=t,this._disposables=new P,this._persistSoon=new Lr(()=>this._saveState(),500),this._disposables.add(e.onWillSaveState(e=>{e.reason===Gn.SHUTDOWN&&this._saveState()}))}dispose(){this._disposables.dispose(),this._persistSoon.dispose()}memorize(e,t,n){this._withStrategy(e,t).memorize(e,t,n),this._persistSoon.schedule()}select(e,t,n){return this._withStrategy(e,t).select(e,t,n)}_withStrategy(e,t){let n=this._configService.getValue(`editor.suggestSelection`,{overrideIdentifier:e.getLanguageIdAtPosition(t.lineNumber,t.column),resource:e.uri});if(this._strategy?.name!==n){this._saveState();let e=Pp._strategyCtors.get(n)||Ip;this._strategy=new e;try{let e=+!this._configService.getValue(`editor.suggest.shareSuggestSelections`),t=this._storageService.get(`${Pp._storagePrefix}/${n}`,e);t&&this._strategy.fromJSON(JSON.parse(t))}catch{}}return this._strategy}_saveState(){if(this._strategy){let e=+!this._configService.getValue(`editor.suggest.shareSuggestSelections`),t=JSON.stringify(this._strategy);this._storageService.store(`${Pp._storagePrefix}/${this._strategy.name}`,t,e,1)}}};zp=Pp=Mp([Np(0,Ur),Np(1,Ie)],zp);var Bp=cn(`ISuggestMemories`);ct(Bp,zp,1);var Vp=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Hp=function(e,t){return function(n,r){t(n,r,e)}},Up,Wp=class{static{Up=this}static{this.AtEnd=new D(`atEndOfWord`,!1,{type:`boolean`,description:L(1546,`A context key that is true when at the end of a word. Note that this is only defined when tab-completions are enabled`)})}constructor(e,t){this._editor=e,this._enabled=!1,this._ckAtEnd=Up.AtEnd.bindTo(t),this._configListener=this._editor.onDidChangeConfiguration(e=>e.hasChanged(139)&&this._update()),this._update()}dispose(){this._configListener.dispose(),this._selectionListener?.dispose(),this._ckAtEnd.reset()}_update(){let e=this._editor.getOption(139)===`on`;if(this._enabled!==e)if(this._enabled=e,this._enabled){let e=()=>{if(!this._editor.hasModel()){this._ckAtEnd.set(!1);return}let e=this._editor.getModel(),t=this._editor.getSelection(),n=e.getWordAtPosition(t.getStartPosition());if(!n){this._ckAtEnd.set(!1);return}this._ckAtEnd.set(n.endColumn===t.getStartPosition().column&&t.getStartPosition().lineNumber===t.getEndPosition().lineNumber)};this._selectionListener=this._editor.onDidChangeCursorSelection(e),e()}else this._selectionListener&&=(this._ckAtEnd.reset(),this._selectionListener.dispose(),void 0)}};Wp=Up=Vp([Hp(1,w)],Wp);var Gp=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Kp=function(e,t){return function(n,r){t(n,r,e)}},qp,Jp=class{static{qp=this}static{this.OtherSuggestions=new D(`hasOtherSuggestions`,!1)}constructor(e,t){this._editor=e,this._index=0,this._ckOtherSuggestions=qp.OtherSuggestions.bindTo(t)}dispose(){this.reset()}reset(){this._ckOtherSuggestions.reset(),this._listener?.dispose(),this._model=void 0,this._acceptNext=void 0,this._ignore=!1}set({model:e,index:t},n){if(e.items.length===0){this.reset();return}if(qp._moveIndex(!0,e,t)===t){this.reset();return}this._acceptNext=n,this._model=e,this._index=t,this._listener=this._editor.onDidChangeCursorPosition(()=>{this._ignore||this.reset()}),this._ckOtherSuggestions.set(!0)}static _moveIndex(e,t,n){let r=n;for(let i=t.items.length;i>0&&(r=(r+t.items.length+(e?1:-1))%t.items.length,!(r===n||!t.items[r].completion.additionalTextEdits));i--);return r}next(){this._move(!0)}prev(){this._move(!1)}_move(e){if(this._model)try{this._ignore=!0,this._index=qp._moveIndex(e,this._model,this._index),this._acceptNext({index:this._index,item:this._model.items[this._index],model:this._model})}finally{this._ignore=!1}}};Jp=qp=Gp([Kp(1,w)],Jp);var Yp=class{constructor(e,t,n,r){this._disposables=new P,this._disposables.add(n.onDidSuggest(e=>{e.completionModel.items.length===0&&this.reset()})),this._disposables.add(n.onDidCancel(e=>{this.reset()})),this._disposables.add(t.onDidShow(()=>this._onItem(t.getFocusedItem()))),this._disposables.add(t.onDidFocus(this._onItem,this)),this._disposables.add(t.onDidHide(this.reset,this)),this._disposables.add(e.onWillType(i=>{if(this._active&&!t.isFrozen()&&n.state!==0){let t=i.charCodeAt(i.length-1);this._active.acceptCharacters.has(t)&&e.getOption(0)&&r(this._active.item)}}))}_onItem(e){if(!e||!Sr(e.item.completion.commitCharacters)){this.reset();return}if(this._active&&this._active.item.item===e.item)return;let t=new te;for(let n of e.item.completion.commitCharacters)n.length>0&&t.add(n.charCodeAt(0));this._active={acceptCharacters:t,item:e}}reset(){this._active=void 0}dispose(){this._disposables.dispose()}},Xp;function Zp(e){return Xp?.(e)??null}var Qp=class{static{this.inlineSuggestionVisible=new D(`inlineSuggestionVisible`,!1,L(1234,`Whether an inline suggestion is visible`))}static{this.inlineSuggestionAlternativeActionVisible=new D(`inlineSuggestionAlternativeActionVisible`,!1,L(1235,`Whether an alternative action for the inline suggestion is visible.`))}static{this.inlineSuggestionHasIndentation=new D(`inlineSuggestionHasIndentation`,!1,L(1236,`Whether the inline suggestion starts with whitespace`))}static{this.inlineSuggestionHasIndentationLessThanTabSize=new D(`inlineSuggestionHasIndentationLessThanTabSize`,!0,L(1237,`Whether the inline suggestion starts with whitespace that is less than what would be inserted by tab`))}static{this.suppressSuggestions=new D(`inlineSuggestionSuppressSuggestions`,void 0,L(1238,`Whether suggestions should be suppressed for the current suggestion`))}static{this.cursorBeforeGhostText=new D(`cursorBeforeGhostText`,!1,L(1239,`Whether the cursor is at ghost text`))}static{this.cursorInIndentation=new D(`cursorInIndentation`,!1,L(1240,`Whether the cursor is in indentation`))}static{this.hasSelection=new D(`editor.hasSelection`,!1,L(1241,`Whether the editor has a selection`))}static{this.cursorAtInlineEdit=new D(`cursorAtInlineEdit`,!1,L(1242,`Whether the cursor is at an inline edit`))}static{this.inlineEditVisible=new D(`inlineEditIsVisible`,!1,L(1243,`Whether an inline edit is visible`))}static{this.tabShouldJumpToInlineEdit=new D(`tabShouldJumpToInlineEdit`,!1,L(1244,`Whether tab should jump to an inline edit.`))}static{this.tabShouldAcceptInlineEdit=new D(`tabShouldAcceptInlineEdit`,!1,L(1245,`Whether tab should accept the inline edit.`))}static{this.inInlineEditsPreviewEditor=new D(`inInlineEditsPreviewEditor`,!0,L(1246,`Whether the current code editor is showing an inline edits preview`))}},$p=class e{constructor(t,n,r,i,a,o,s=Xt.default,c=void 0){this.clipboardText=c,this._snippetCompareFn=e._compareCompletionItems,this._items=t,this._column=n,this._wordDistance=i,this._options=a,this._refilterKind=1,this._lineContext=r,this._fuzzyScoreOptions=s,o===`top`?this._snippetCompareFn=e._compareCompletionItemsSnippetsUp:o===`bottom`&&(this._snippetCompareFn=e._compareCompletionItemsSnippetsDown)}get lineContext(){return this._lineContext}set lineContext(e){(this._lineContext.leadingLineContent!==e.leadingLineContent||this._lineContext.characterCountDelta!==e.characterCountDelta)&&(this._refilterKind=this._lineContext.characterCountDelta<e.characterCountDelta&&this._filteredItems?2:1,this._lineContext=e)}get items(){return this._ensureCachedState(),this._filteredItems}getItemsByProvider(){return this._ensureCachedState(),this._itemsByProvider}getIncompleteProvider(){this._ensureCachedState();let e=new Set;for(let[t,n]of this.getItemsByProvider())n.length>0&&n[0].container.incomplete&&e.add(t);return e}get stats(){return this._ensureCachedState(),this._stats}_ensureCachedState(){this._refilterKind!==0&&this._createCachedState()}_createCachedState(){this._itemsByProvider=new Map;let e=[],{leadingLineContent:n,characterCountDelta:r}=this._lineContext,i=``,a=``,o=this._refilterKind===1?this._items:this._filteredItems,s=[],c=!this._options.filterGraceful||o.length>2e3?tn:Se;for(let l=0;l<o.length;l++){let u=o[l];if(u.isInvalid)continue;let d=this._itemsByProvider.get(u.provider);d?d.push(u):this._itemsByProvider.set(u.provider,[u]);let p=u.position.column-u.editStart.column,m=p+r-(u.position.column-this._column);if(i.length!==m&&(i=m===0?``:n.slice(-m),a=i.toLowerCase()),u.word=i,m===0)u.score=f.Default;else{let e=0;for(;e<p;){let t=i.charCodeAt(e);if(t===32||t===9)e+=1;else break}if(e>=m)u.score=f.Default;else if(typeof u.completion.filterText==`string`){let n=c(i,a,e,u.completion.filterText,u.filterTextLow,0,this._fuzzyScoreOptions);if(!n)continue;t(u.completion.filterText,u.textLabel)===0?u.score=n:(u.score=Oe(i,a,e,u.textLabel,u.labelLow,0),u.score[0]=n[0])}else{let t=c(i,a,e,u.textLabel,u.labelLow,0,this._fuzzyScoreOptions);if(!t)continue;u.score=t}}u.idx=l,u.distance=this._wordDistance.distance(u.position,u.completion),s.push(u),e.push(u.textLabel.length)}this._filteredItems=s.sort(this._snippetCompareFn),this._refilterKind=0,this._stats={pLabelLen:e.length?Sa(e.length-.85,e,(e,t)=>e-t):0}}static _compareCompletionItems(e,t){return e.score[0]>t.score[0]?-1:e.score[0]<t.score[0]?1:e.distance<t.distance?-1:e.distance>t.distance?1:e.idx<t.idx?-1:+(e.idx>t.idx)}static _compareCompletionItemsSnippetsDown(t,n){if(t.completion.kind!==n.completion.kind){if(t.completion.kind===28)return 1;if(n.completion.kind===28)return-1}return e._compareCompletionItems(t,n)}static _compareCompletionItemsSnippetsUp(t,n){if(t.completion.kind!==n.completion.kind){if(t.completion.kind===28)return-1;if(n.completion.kind===28)return 1}return e._compareCompletionItems(t,n)}},em=class e{static{this.None=new class extends e{distance(){return 0}}}static async create(t,n){if(!n.getOption(134).localityBonus||!n.hasModel())return e.None;let r=n.getModel(),i=n.getPosition();if(!t.canComputeWordRanges(r.uri))return e.None;let[a]=await new Vf().provideSelectionRanges(r,[i]);if(a.length===0)return e.None;let o=await t.computeWordRanges(r.uri,a[0].range);if(!o)return e.None;let s=r.getWordUntilPosition(i);return delete o[s.word],new class extends e{distance(e,t){if(!i.equals(n.getPosition()))return 0;if(t.kind===17)return 2<<20;let r=typeof t.label==`string`?t.label:t.label.label,s=o[r];if(Zr(s))return 2<<20;let c=Or(s,_.fromPositions(e),_.compareRangesUsingStarts),l=c>=0?s[c]:s[Math.max(0,~c-1)],u=a.length;for(let e of a){if(!_.containsRange(e.range,l))break;--u}return u}}}},tm=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},nm=function(e,t){return function(n,r){t(n,r,e)}},rm,im=class{static shouldAutoTrigger(e){if(!e.hasModel())return!1;let t=e.getModel(),n=e.getPosition();t.tokenization.tokenizeIfCheap(n.lineNumber);let r=t.getWordAtPosition(n);return!(!r||r.endColumn!==n.column&&r.startColumn+1!==n.column||!isNaN(Number(r.word)))}constructor(e,t,n){this.leadingLineContent=e.getLineContent(t.lineNumber).substr(0,t.column-1),this.leadingWord=e.getWordUntilPosition(t),this.lineNumber=t.lineNumber,this.column=t.column,this.triggerOptions=n}};function am(e,t,n){if(!t.getContextKeyValue(Qp.inlineSuggestionVisible.key))return!0;let r=t.getContextKeyValue(Qp.suppressSuggestions.key);return r===void 0?!e.getOption(71).suppressSuggestions:!r}function om(e,t,n){if(!t.getContextKeyValue(`inlineSuggestionVisible`))return!0;let r=t.getContextKeyValue(Qp.suppressSuggestions.key);return r===void 0?!e.getOption(71).suppressSuggestions:!r}var sm=rm=class{constructor(e,t,n,r,i,a,o,s,c){this._editor=e,this._editorWorkerService=t,this._clipboardService=n,this._telemetryService=r,this._logService=i,this._contextKeyService=a,this._configurationService=o,this._languageFeaturesService=s,this._envService=c,this._toDispose=new P,this._triggerCharacterListener=new P,this._triggerQuickSuggest=new jr,this._triggerState=void 0,this._completionDisposables=new P,this._onDidCancel=new I,this._onDidTrigger=new I,this._onDidSuggest=new I,this.onDidCancel=this._onDidCancel.event,this.onDidTrigger=this._onDidTrigger.event,this.onDidSuggest=this._onDidSuggest.event,this._currentSelection=this._editor.getSelection()||new y(1,1,1,1),this._toDispose.add(this._editor.onDidChangeModel(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeModelLanguage(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeConfiguration(()=>{this._updateTriggerCharacters()})),this._toDispose.add(this._languageFeaturesService.completionProvider.onDidChange(()=>{this._updateTriggerCharacters(),this._updateActiveSuggestSession()}));let l=!1;this._toDispose.add(this._editor.onDidCompositionStart(()=>{l=!0})),this._toDispose.add(this._editor.onDidCompositionEnd(()=>{l=!1,this._onCompositionEnd()})),this._toDispose.add(this._editor.onDidChangeCursorSelection(e=>{l||this._onCursorChange(e)})),this._toDispose.add(this._editor.onDidChangeModelContent(()=>{!l&&this._triggerState!==void 0&&this._refilterCompletionItems()})),this._updateTriggerCharacters()}dispose(){vr(this._triggerCharacterListener),vr([this._onDidCancel,this._onDidSuggest,this._onDidTrigger,this._triggerQuickSuggest]),this._waitForInlineCompletions?.dispose(),this._toDispose.dispose(),this._completionDisposables.dispose(),this.cancel()}_updateTriggerCharacters(){if(this._triggerCharacterListener.clear(),this._editor.getOption(104)||!this._editor.hasModel()||!this._editor.getOption(137))return;let e=new Map;for(let t of this._languageFeaturesService.completionProvider.all(this._editor.getModel()))for(let n of t.triggerCharacters||[]){let r=e.get(n);r||(r=new Set,e.set(n,r)),r.add(t)}let t=t=>{if(!om(this._editor,this._contextKeyService,this._configurationService)||im.shouldAutoTrigger(this._editor))return;if(!t){let e=this._editor.getPosition();t=this._editor.getModel().getLineContent(e.lineNumber).substr(0,e.column-1)}let n=``;Qi(t.charCodeAt(t.length-1))?Kr(t.charCodeAt(t.length-2))&&(n=t.substr(t.length-2)):n=t.charAt(t.length-1);let r=e.get(n);if(r){let e=new Map;if(this._completionModel)for(let[t,n]of this._completionModel.getItemsByProvider())r.has(t)||e.set(t,n);this.trigger({auto:!0,triggerKind:1,triggerCharacter:n,retrigger:!!this._completionModel,clipboardText:this._completionModel?.clipboardText,completionOptions:{providerFilter:r,providerItemsToReuse:e}})}};this._triggerCharacterListener.add(this._editor.onDidType(t)),this._triggerCharacterListener.add(this._editor.onDidCompositionEnd(()=>t()))}get state(){return this._triggerState?this._triggerState.auto?2:1:0}cancel(e=!1){this._triggerQuickSuggest.cancel(),this._waitForInlineCompletions?.dispose(),this._waitForInlineCompletions=void 0,this._triggerState!==void 0&&(this._requestToken?.cancel(),this._requestToken=void 0,this._triggerState=void 0,this._completionModel=void 0,this._context=void 0,this._onDidCancel.fire({retrigger:e}))}clear(){this._completionDisposables.clear()}_updateActiveSuggestSession(){this._triggerState!==void 0&&(!this._editor.hasModel()||!this._languageFeaturesService.completionProvider.has(this._editor.getModel())?this.cancel():this.trigger({auto:this._triggerState.auto,retrigger:!0}))}_onCursorChange(e){if(!this._editor.hasModel())return;let t=this._currentSelection;if(this._currentSelection=this._editor.getSelection(),!e.selection.isEmpty()||e.reason!==0&&e.reason!==3||e.source!==`keyboard`&&e.source!==`deleteLeft`){this.cancel();return}this._triggerState===void 0&&e.reason===0?(t.containsRange(this._currentSelection)||t.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition()))&&this._doTriggerQuickSuggest():this._triggerState!==void 0&&e.reason===3&&this._refilterCompletionItems()}_onCompositionEnd(){this._triggerState===void 0?this._doTriggerQuickSuggest():this._refilterCompletionItems()}_doTriggerQuickSuggest(){lp.isAllOff(this._editor.getOption(102))||this._editor.getOption(134).snippetsPreventQuickSuggestions&&X.get(this._editor)?.isInSnippet()||(this.cancel(),this._waitForInlineCompletions?.dispose(),this._waitForInlineCompletions=void 0,this._triggerQuickSuggest.cancelAndSet(()=>{if(this._triggerState!==void 0||!im.shouldAutoTrigger(this._editor)||!this._editor.hasModel()||!this._editor.hasWidgetFocus())return;let e=this._editor.getModel(),t=this._editor.getPosition(),n=this._editor.getOption(102);if(lp.isAllOff(n))return;let r=!1;if(!lp.isAllOn(n)){e.tokenization.tokenizeIfCheap(t.lineNumber);let i=e.tokenization.getLineTokens(t.lineNumber),a=i.getStandardTokenType(i.findTokenIndexAtOffset(Math.max(t.column-1-1,0))),o=lp.valueFor(n,a);if(o===`off`||o===`inline`)return;o===`offWhenInlineCompletions`&&(r=this._languageFeaturesService.inlineCompletionsProvider.has(e)&&this._editor.getOption(71).enabled)}am(this._editor,this._contextKeyService,this._configurationService)&&this._languageFeaturesService.completionProvider.has(e)&&(r?this._waitForInlineCompletionsAndTrigger(e,t):this.trigger({auto:!0}))},this._editor.getOption(103)))}_waitForInlineCompletionsAndTrigger(e,t){let n=e.getVersionId(),r=Zp(this._editor),i=r?.model.get();if(!r||!i){this.trigger({auto:!0});return}if(i.state.get()?.inlineSuggestion)return;let a=new P;this._waitForInlineCompletions=a;let o=r=>{if(a.dispose(),this._waitForInlineCompletions===a&&(this._waitForInlineCompletions=void 0),this._triggerState!==void 0||!r)return;let i=this._editor.getModel(),o=this._editor.getPosition();i===e&&i.getVersionId()===n&&o?.equals(t)&&this._editor.hasWidgetFocus()&&this.trigger({auto:!0})};st(()=>{o(!0),i.stop(`automatic`)},750,a),a.add(kn(e=>{if(r.model.read(e)!==i){o(!1);return}let t=i.status.read(e),n=i.state.read(e);!n&&t===`loading`||o(!n)}))}_refilterCompletionItems(){wa(this._editor.hasModel()),wa(this._triggerState!==void 0);let e=new im(this._editor.getModel(),this._editor.getPosition(),{...this._triggerState,refilter:!0});this._onNewContext(e)}trigger(e){if(!this._editor.hasModel())return;let t=this._editor.getModel(),n=new im(t,this._editor.getPosition(),e);this.cancel(e.retrigger),this._triggerState=e,this._onDidTrigger.fire({auto:e.auto,shy:e.shy??!1,position:this._editor.getPosition()}),this._context=n;let r={triggerKind:e.triggerKind??0};e.triggerCharacter&&(r={triggerKind:1,triggerCharacter:e.triggerCharacter}),this._requestToken=new Ct;let i=this._editor.getOption(128),a=1;switch(i){case`top`:a=0;break;case`bottom`:a=2;break}let{itemKind:o,showDeprecated:s}=rm.createSuggestFilter(this._editor),c=new ep(a,e.completionOptions?.kindFilter??o,e.completionOptions?.providerFilter,e.completionOptions?.providerItemsToReuse,s),l=em.create(this._editorWorkerService,this._editor),u=np(this._languageFeaturesService.completionProvider,t,this._editor.getPosition(),c,r,this._requestToken.token);Promise.all([u,l]).then(async([t,n])=>{if(this._requestToken?.dispose(),!this._editor.hasModel()){t.disposable.dispose();return}let r=e?.clipboardText;if(!r&&t.needsClipboard&&(r=await this._clipboardService.readText()),this._triggerState===void 0){t.disposable.dispose();return}let i=new im(this._editor.getModel(),this._editor.getPosition(),e),a={...Xt.default,firstMatchCanBeWeak:!this._editor.getOption(134).matchOnWordStartOnly};if(this._completionModel=new $p(t.items,this._context.column,{leadingLineContent:i.leadingLineContent,characterCountDelta:i.column-this._context.column},n,this._editor.getOption(134),this._editor.getOption(128),a,r),this._completionDisposables.add(t.disposable),this._onNewContext(i),this._reportDurationsTelemetry(t.durations),!this._envService.isBuilt||this._envService.isExtensionDevelopment)for(let e of t.items)e.isInvalid&&this._logService.warn(`[suggest] did IGNORE invalid completion item from ${e.provider._debugDisplayName}`,e.completion)}).catch(Hi)}_reportDurationsTelemetry(e){Math.random()>1e-4||setTimeout(()=>{this._telemetryService.publicLog2(`suggest.durations.json`,{data:JSON.stringify(e)}),this._logService.debug(`suggest.durations.json`,e)})}static createSuggestFilter(e){let t=new Set;e.getOption(128)===`none`&&t.add(28);let n=e.getOption(134);return n.showMethods||t.add(0),n.showFunctions||t.add(1),n.showConstructors||t.add(2),n.showFields||t.add(3),n.showVariables||t.add(4),n.showClasses||t.add(5),n.showStructs||t.add(6),n.showInterfaces||t.add(7),n.showModules||t.add(8),n.showProperties||t.add(9),n.showEvents||t.add(10),n.showOperators||t.add(11),n.showUnits||t.add(12),n.showValues||t.add(13),n.showConstants||t.add(14),n.showEnums||t.add(15),n.showEnumMembers||t.add(16),n.showKeywords||t.add(17),n.showWords||t.add(18),n.showColors||t.add(19),n.showFiles||t.add(20),n.showReferences||t.add(21),n.showColors||t.add(22),n.showFolders||t.add(23),n.showTypeParameters||t.add(24),n.showSnippets||t.add(28),n.showUsers||t.add(25),n.showIssues||t.add(26),{itemKind:t,showDeprecated:n.showDeprecated}}_onNewContext(e){if(this._context){if(e.lineNumber!==this._context.lineNumber){this.cancel();return}if(H(e.leadingLineContent)!==H(this._context.leadingLineContent)){this.cancel();return}if(e.column<this._context.column){e.leadingWord.word?this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0}):this.cancel();return}if(this._completionModel){if(e.leadingWord.word.length!==0&&e.leadingWord.startColumn>this._context.leadingWord.startColumn){if(im.shouldAutoTrigger(this._editor)&&this._context){let e=this._completionModel.getItemsByProvider();this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerItemsToReuse:e}})}return}if(e.column>this._context.column&&this._completionModel.getIncompleteProvider().size>0&&e.leadingWord.word.length!==0){let e=new Map,t=new Set;for(let[n,r]of this._completionModel.getItemsByProvider())r.length>0&&r[0].container.incomplete?t.add(n):e.set(n,r);this.trigger({auto:this._context.triggerOptions.auto,triggerKind:2,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerFilter:t,providerItemsToReuse:e}})}else{let t=this._completionModel.lineContext,n=!1;if(this._completionModel.lineContext={leadingLineContent:e.leadingLineContent,characterCountDelta:e.column-this._context.column},this._completionModel.items.length===0){let r=im.shouldAutoTrigger(this._editor);if(!this._context){this.cancel();return}if(r&&this._context.leadingWord.endColumn<e.leadingWord.startColumn){this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0});return}if(this._context.triggerOptions.auto){this.cancel();return}else if(this._completionModel.lineContext=t,n=this._completionModel.items.length>0,n&&e.leadingWord.word.length===0){this.cancel();return}}this._onDidSuggest.fire({completionModel:this._completionModel,triggerOptions:e.triggerOptions,isFrozen:n})}}}}};sm=rm=tm([nm(1,rt),nm(2,Vi),nm(3,In),nm(4,Mi),nm(5,w),nm(6,Ie),nm(7,j),nm(8,Ii)],sm);var cm=class e{static{this._maxSelectionLength=51200}constructor(t,n){this._disposables=new P,this._lastOvertyped=[],this._locked=!1,this._disposables.add(t.onWillType(()=>{if(this._locked||!t.hasModel())return;let n=t.getSelections(),r=n.length,i=!1;for(let e=0;e<r;e++)if(!n[e].isEmpty()){i=!0;break}if(!i){this._lastOvertyped.length!==0&&(this._lastOvertyped.length=0);return}this._lastOvertyped=[];let a=t.getModel();for(let t=0;t<r;t++){let r=n[t];if(a.getValueLengthInRange(r)>e._maxSelectionLength)return;this._lastOvertyped[t]={value:a.getValueInRange(r),multiline:r.startLineNumber!==r.endLineNumber}}})),this._disposables.add(n.onDidTrigger(e=>{this._locked=!0})),this._disposables.add(n.onDidCancel(e=>{this._locked=!1}))}getLastOvertypedInfo(e){if(e>=0&&e<this._lastOvertyped.length)return this._lastOvertyped[e]}dispose(){this._disposables.dispose()}},lm=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},um=function(e,t){return function(n,r){t(n,r,e)}},dm=class extends n{constructor(e,t,n,r,i,a,o,s,c,l,u,d,f,p){super(e,{...r.getRawOptions(),overflowWidgetsDomNode:r.getOverflowWidgetsDomNode()},n,i,a,o,s,c,l,u,d,f,p),this._parentEditor=r,this._overwriteOptions=t,super.updateOptions(this._overwriteOptions),this._register(r.onDidChangeConfiguration(e=>this._onParentConfigurationChanged(e)))}getParentEditor(){return this._parentEditor}_onParentConfigurationChanged(e){super.updateOptions(this._parentEditor.getRawOptions()),super.updateOptions(this._overwriteOptions)}updateOptions(e){$e(this._overwriteOptions,e,!0),super.updateOptions(this._overwriteOptions)}};dm=lm([um(4,Ue),um(5,Ei),um(6,tt),um(7,w),um(8,p),um(9,de),um(10,ut),um(11,zt),um(12,j),um(13,Mt)],dm);var fm=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},pm=function(e,t){return function(n,r){t(n,r,e)}},mm=class{constructor(t,n,r,i,a,o){this._menuId=n,this._menuService=a,this._contextKeyService=o,this._menuDisposables=new P,this.element=N(t,F(`.suggest-status-bar`));let s=(e=>r?.showIconsNoKeybindings?e instanceof ca?i.createInstance($n,e,void 0):void 0:e instanceof ca?i.createInstance(Wi,e,{useComma:!1}):void 0);this._leftActions=new e(this.element,{actionViewItemProvider:s}),this._rightActions=new e(this.element,{actionViewItemProvider:s}),this._leftActions.domNode.classList.add(`left`),this._rightActions.domNode.classList.add(`right`)}dispose(){this._menuDisposables.dispose(),this._leftActions.dispose(),this._rightActions.dispose(),this.element.remove()}show(){let e=this._menuService.createMenu(this._menuId,this._contextKeyService),t=()=>{let t=[],n=[];for(let[r,i]of e.getActions())r===`left`?t.push(...i):n.push(...i);this._leftActions.clear(),this._leftActions.push(t),this._rightActions.clear(),this._rightActions.push(n)};this._menuDisposables.add(e.onDidChange(()=>t())),this._menuDisposables.add(e)}hide(){this._menuDisposables.clear()}};mm=fm([pm(3,Ue),pm(4,Nt),pm(5,w)],mm),m(`symbolIcon.arrayForeground`,W,L(1547,`The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.booleanForeground`,W,L(1548,`The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.classForeground`,{dark:`#EE9D28`,light:`#D67E00`,hcDark:`#EE9D28`,hcLight:`#D67E00`},L(1549,`The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.colorForeground`,W,L(1550,`The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.constantForeground`,W,L(1551,`The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.constructorForeground`,{dark:`#B180D7`,light:`#652D90`,hcDark:`#B180D7`,hcLight:`#652D90`},L(1552,`The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.enumeratorForeground`,{dark:`#EE9D28`,light:`#D67E00`,hcDark:`#EE9D28`,hcLight:`#D67E00`},L(1553,`The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.enumeratorMemberForeground`,{dark:`#75BEFF`,light:`#007ACC`,hcDark:`#75BEFF`,hcLight:`#007ACC`},L(1554,`The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.eventForeground`,{dark:`#EE9D28`,light:`#D67E00`,hcDark:`#EE9D28`,hcLight:`#D67E00`},L(1555,`The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.fieldForeground`,{dark:`#75BEFF`,light:`#007ACC`,hcDark:`#75BEFF`,hcLight:`#007ACC`},L(1556,`The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.fileForeground`,W,L(1557,`The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.folderForeground`,W,L(1558,`The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.functionForeground`,{dark:`#B180D7`,light:`#652D90`,hcDark:`#B180D7`,hcLight:`#652D90`},L(1559,`The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.interfaceForeground`,{dark:`#75BEFF`,light:`#007ACC`,hcDark:`#75BEFF`,hcLight:`#007ACC`},L(1560,`The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.keyForeground`,W,L(1561,`The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.keywordForeground`,W,L(1562,`The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.methodForeground`,{dark:`#B180D7`,light:`#652D90`,hcDark:`#B180D7`,hcLight:`#652D90`},L(1563,`The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.moduleForeground`,W,L(1564,`The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.namespaceForeground`,W,L(1565,`The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.nullForeground`,W,L(1566,`The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.numberForeground`,W,L(1567,`The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.objectForeground`,W,L(1568,`The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.operatorForeground`,W,L(1569,`The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.packageForeground`,W,L(1570,`The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.propertyForeground`,W,L(1571,`The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.referenceForeground`,W,L(1572,`The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.snippetForeground`,W,L(1573,`The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.stringForeground`,W,L(1574,`The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.structForeground`,W,L(1575,`The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.textForeground`,W,L(1576,`The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.typeParameterForeground`,W,L(1577,`The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.unitForeground`,W,L(1578,`The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),m(`symbolIcon.variableForeground`,{dark:`#75BEFF`,light:`#007ACC`,hcDark:`#75BEFF`,hcLight:`#007ACC`},L(1579,`The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`));var hm=class{get onDidWillResize(){return this._onDidWillResize.event}get onDidResize(){return this._onDidResize.event}constructor(){this._onDidWillResize=new I,this._onDidResize=new I,this._sashListener=new P,this._size=new U(0,0),this._minSize=new U(0,0),this._maxSize=new U(2**53-1,2**53-1),this.domNode=document.createElement(`div`),this._eastSash=new pn(this.domNode,{getVerticalSashLeft:()=>this._size.width},{orientation:0}),this._westSash=new pn(this.domNode,{getVerticalSashLeft:()=>0},{orientation:0}),this._northSash=new pn(this.domNode,{getHorizontalSashTop:()=>0},{orientation:1,orthogonalEdge:an.North}),this._southSash=new pn(this.domNode,{getHorizontalSashTop:()=>this._size.height},{orientation:1,orthogonalEdge:an.South}),this._northSash.orthogonalStartSash=this._westSash,this._northSash.orthogonalEndSash=this._eastSash,this._southSash.orthogonalStartSash=this._westSash,this._southSash.orthogonalEndSash=this._eastSash;let e,t=0,n=0;this._sashListener.add(zi.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)(()=>{e===void 0&&(this._onDidWillResize.fire(),e=this._size,t=0,n=0)})),this._sashListener.add(zi.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)(()=>{e!==void 0&&(e=void 0,t=0,n=0,this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(this._eastSash.onDidChange(r=>{e&&(n=r.currentX-r.startX,this.layout(e.height+t,e.width+n),this._onDidResize.fire({dimension:this._size,done:!1,east:!0}))})),this._sashListener.add(this._westSash.onDidChange(r=>{e&&(n=-(r.currentX-r.startX),this.layout(e.height+t,e.width+n),this._onDidResize.fire({dimension:this._size,done:!1,west:!0}))})),this._sashListener.add(this._northSash.onDidChange(r=>{e&&(t=-(r.currentY-r.startY),this.layout(e.height+t,e.width+n),this._onDidResize.fire({dimension:this._size,done:!1,north:!0}))})),this._sashListener.add(this._southSash.onDidChange(r=>{e&&(t=r.currentY-r.startY,this.layout(e.height+t,e.width+n),this._onDidResize.fire({dimension:this._size,done:!1,south:!0}))})),this._sashListener.add(zi.any(this._eastSash.onDidReset,this._westSash.onDidReset)(e=>{this._preferredSize&&(this.layout(this._size.height,this._preferredSize.width),this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(zi.any(this._northSash.onDidReset,this._southSash.onDidReset)(e=>{this._preferredSize&&(this.layout(this._preferredSize.height,this._size.width),this._onDidResize.fire({dimension:this._size,done:!0}))}))}dispose(){this._northSash.dispose(),this._southSash.dispose(),this._eastSash.dispose(),this._westSash.dispose(),this._sashListener.dispose(),this._onDidResize.dispose(),this._onDidWillResize.dispose(),this.domNode.remove()}enableSashes(e,t,n,r){this._northSash.state=e?3:0,this._eastSash.state=t?3:0,this._southSash.state=n?3:0,this._westSash.state=r?3:0}layout(e=this.size.height,t=this.size.width){let{height:n,width:r}=this._minSize,{height:i,width:a}=this._maxSize;e=Math.max(n,Math.min(i,e)),t=Math.max(r,Math.min(a,t));let o=new U(t,e);U.equals(o,this._size)||(this.domNode.style.height=e+`px`,this.domNode.style.width=t+`px`,this._size=o,this._northSash.layout(),this._eastSash.layout(),this._southSash.layout(),this._westSash.layout())}clearSashHoverState(){this._eastSash.clearSashHoverState(),this._westSash.clearSashHoverState(),this._northSash.clearSashHoverState(),this._southSash.clearSashHoverState()}get size(){return this._size}set maxSize(e){this._maxSize=e}get maxSize(){return this._maxSize}set minSize(e){this._minSize=e}get minSize(){return this._minSize}set preferredSize(e){this._preferredSize=e}get preferredSize(){return this._preferredSize}},gm=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},_m=function(e,t){return function(n,r){t(n,r,e)}};function vm(e){return!!e&&!!(e.completion.documentation||e.completion.detail&&e.completion.detail!==e.completion.label)}var ym=class{constructor(e,t,n){this._editor=e,this._themeService=t,this._markdownRendererService=n,this._onDidClose=new I,this.onDidClose=this._onDidClose.event,this._onDidChangeContents=new I,this.onDidChangeContents=this._onDidChangeContents.event,this._disposables=new P,this._renderDisposeable=new P,this._size=new U(330,0),this.domNode=F(`.suggest-details`),this.domNode.classList.add(`no-docs`),this._body=F(`.body`),this._scrollbar=new bn(this._body,{alwaysConsumeMouseWheel:!0}),N(this.domNode,this._scrollbar.getDomNode()),this._disposables.add(this._scrollbar),this._header=N(this._body,F(`.header`)),this._close=N(this._header,F(`span`+O.asCSSSelector(G.close))),this._close.title=L(1542,`Close`),this._close.role=`button`,this._close.tabIndex=-1,this._type=N(this._header,F(`p.type`)),this._docs=N(this._body,F(`p.docs`)),this._configureFont(),this._disposables.add(this._editor.onDidChangeConfiguration(e=>{e.hasChanged(59)&&this._configureFont()}))}dispose(){this._disposables.dispose(),this._renderDisposeable.dispose(),this._onDidClose.dispose(),this._onDidChangeContents.dispose()}_configureFont(){let e=this._editor.getOptions(),t=e.get(59),n=t.getMassagedFontFamily(),r=e.get(135)||t.fontSize,i=e.get(136)||t.lineHeight,a=t.fontWeight,o=`${r}px`,s=`${i}px`;this.domNode.style.fontSize=o,this.domNode.style.lineHeight=`${i/r}`,this.domNode.style.fontWeight=a,this.domNode.style.fontFeatureSettings=t.fontFeatureSettings,this._type.style.fontFamily=n,this._close.style.height=s,this._close.style.width=s}getLayoutInfo(){let e=this._editor.getOption(136)||this._editor.getOption(59).lineHeight,t=Ir(this._themeService.getColorTheme().type)?2:1;return{lineHeight:e,borderWidth:t,borderHeight:t*2,verticalPadding:22,horizontalPadding:14}}renderLoading(){this._type.textContent=L(1543,`Loading...`),this._docs.textContent=``,this.domNode.classList.remove(`no-docs`,`no-type`),this.layout(this.size.width,this.getLayoutInfo().lineHeight*2),this._onDidChangeContents.fire(this)}renderItem(e,t){this._renderDisposeable.clear();let{detail:n,documentation:r}=e.completion;if(t){let t=``;t+=`score: ${e.score[0]}\n`,t+=`prefix: ${e.word??`(no prefix)`}\n`,t+=`word: ${e.completion.filterText?e.completion.filterText+` (filterText)`:e.textLabel}\n`,t+=`distance: ${e.distance} (localityBonus-setting)\n`,t+=`index: ${e.idx}, based on ${e.completion.sortText&&`sortText: "${e.completion.sortText}"`||`label`}\n`,t+=`commit_chars: ${e.completion.commitCharacters?.join(``)}\n`,r=new gt().appendCodeblock(`empty`,t),n=`Provider: ${e.provider._debugDisplayName}`}if(!t&&!vm(e)){this.clearContents();return}if(this.domNode.classList.remove(`no-docs`,`no-type`),n){let e=n.length>1e5?`${n.substr(0,1e5)}…`:n;this._type.textContent=e,this._type.title=e,Qt(this._type),this._type.classList.toggle(`auto-wrap`,!/\r?\n^\s+/gim.test(e))}else rr(this._type),this._type.title=``,ce(this._type),this.domNode.classList.add(`no-type`);if(rr(this._docs),typeof r==`string`)this._docs.classList.remove(`markdown-docs`),this._docs.textContent=r;else if(r){this._docs.classList.add(`markdown-docs`),rr(this._docs);let e=this._markdownRendererService.render(r,{context:this._editor,asyncRenderCallback:()=>{this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}});this._docs.appendChild(e.element),this._renderDisposeable.add(e)}this.domNode.classList.toggle(`detail-and-doc`,!!n&&!!r),this.domNode.style.userSelect=`text`,this.domNode.tabIndex=-1,this._close.onmousedown=e=>{e.preventDefault(),e.stopPropagation()},this._close.onclick=e=>{e.preventDefault(),e.stopPropagation(),this._onDidClose.fire()},this._body.scrollTop=0,this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}clearContents(){this.domNode.classList.add(`no-docs`),this._type.textContent=``,this._docs.textContent=``}get isEmpty(){return this.domNode.classList.contains(`no-docs`)}get size(){return this._size}layout(e,t){let n=new U(e,t);U.equals(n,this._size)||(this._size=n,be(this.domNode,e,t)),this._scrollbar.scanDomNode()}scrollDown(e=8){this._body.scrollTop+=e}scrollUp(e=8){this._body.scrollTop-=e}scrollTop(){this._body.scrollTop=0}scrollBottom(){this._body.scrollTop=this._body.scrollHeight}pageDown(){this.scrollDown(80)}pageUp(){this.scrollUp(80)}focus(){this.domNode.focus()}};ym=gm([_m(1,p),_m(2,Rt)],ym);var bm=class{constructor(e,t){this.widget=e,this._editor=t,this.allowEditorOverflow=!0,this._disposables=new P,this._added=!1,this._preferAlignAtTop=!0,this._resizable=new hm,this._resizable.domNode.classList.add(`suggest-details-container`),this._resizable.domNode.appendChild(e.domNode),this._resizable.enableSashes(!1,!0,!0,!1);let n,r,i=0,a=0;this._disposables.add(this._resizable.onDidWillResize(()=>{n=this._topLeft,r=this._resizable.size})),this._disposables.add(this._resizable.onDidResize(e=>{if(n&&r){this.widget.layout(e.dimension.width,e.dimension.height);let t=!1;e.west&&(a=r.width-e.dimension.width,t=!0),e.north&&(i=r.height-e.dimension.height,t=!0),t&&this._applyTopLeft({top:n.top+i,left:n.left+a})}e.done&&(n=void 0,r=void 0,i=0,a=0,this._userSize=e.dimension)})),this._disposables.add(this.widget.onDidChangeContents(()=>{this._anchorBox&&this._placeAtAnchor(this._anchorBox,this._userSize??this.widget.size,this._preferAlignAtTop)}))}dispose(){this._resizable.dispose(),this._disposables.dispose(),this.hide()}getId(){return`suggest.details`}getDomNode(){return this._resizable.domNode}getPosition(){return this._topLeft?{preference:this._topLeft}:null}show(){this._added||=(this._editor.addOverlayWidget(this),!0)}hide(e=!1){this._resizable.clearSashHoverState(),this._added&&(this._editor.removeOverlayWidget(this),this._added=!1,this._anchorBox=void 0,this._topLeft=void 0),e&&(this._userSize=void 0,this.widget.clearContents())}placeAtAnchor(e,t){let n=e.getBoundingClientRect();this._anchorBox=n,this._preferAlignAtTop=t,this._placeAtAnchor(this._anchorBox,this._userSize??this.widget.size,t)}_placeAtAnchor(e,t,n){let r=dr(this.getDomNode().ownerDocument.body),i=this.widget.getLayoutInfo(),a=new U(220,2*i.lineHeight),o=e.top,s=(function(){let n=r.width-(e.left+e.width+i.borderWidth+i.horizontalPadding),s=-i.borderWidth+e.left+e.width,c=new U(n,r.height-e.top-i.borderHeight-i.verticalPadding),l=c.with(void 0,e.top+e.height-i.borderHeight-i.verticalPadding);return{top:o,left:s,fit:n-t.width,maxSizeTop:c,maxSizeBottom:l,minSize:a.with(Math.min(n,a.width))}})(),c=(function(){let n=e.left-i.borderWidth-i.horizontalPadding,s=Math.max(i.horizontalPadding,e.left-t.width-i.borderWidth),c=new U(n,r.height-e.top-i.borderHeight-i.verticalPadding),l=c.with(void 0,e.top+e.height-i.borderHeight-i.verticalPadding);return{top:o,left:s,fit:n-t.width,maxSizeTop:c,maxSizeBottom:l,minSize:a.with(Math.min(n,a.width))}})(),l=(function(){let n=e.left,o=-i.borderWidth+e.top+e.height,s=new U(e.width-i.borderHeight,r.height-e.top-e.height-i.verticalPadding);return{top:o,left:n,fit:s.height-t.height,maxSizeBottom:s,maxSizeTop:s,minSize:a.with(s.width)}})(),u=(function(){let n=e.left,r=new U(e.width-i.borderHeight,e.top-i.verticalPadding);return{top:Math.max(i.verticalPadding,e.top-t.height),left:n,fit:r.height-t.height,maxSizeTop:r,maxSizeBottom:r,minSize:a.with(r.width)}})(),d=[s,c,n?l:u],f=d.find(e=>e.fit>=0)??d.sort((e,t)=>t.fit-e.fit)[0],p=e.top+e.height-i.borderHeight,m,h=t.height,ee=Math.max(f.maxSizeTop.height,f.maxSizeBottom.height);h>ee&&(h=ee);let te;n?h<=f.maxSizeTop.height?(m=!0,te=f.maxSizeTop):(m=!1,te=f.maxSizeBottom):h<=f.maxSizeBottom.height?(m=!1,te=f.maxSizeBottom):(m=!0,te=f.maxSizeTop);let{top:ne,left:g}=f;f===u?ne=e.top-h+i.borderWidth:!m&&h>e.height&&(ne=p-h);let re=this._editor.getDomNode();if(re){let e=re.getBoundingClientRect();ne-=e.top,g-=e.left}this._applyTopLeft({left:g,top:ne}),f===u?this._resizable.enableSashes(!0,!1,!1,!0):this._resizable.enableSashes(!m,f===s,m,f!==s),this._resizable.minSize=f.minSize,this._resizable.maxSize=te,this._resizable.layout(h,Math.min(te.width,t.width)),this.widget.layout(this._resizable.size.width,this._resizable.size.height)}_applyTopLeft(e){this._topLeft=e,this._editor.layoutOverlayWidget(this)}};cn(`fileService`);var xm;(function(e){e[e.FILE=0]=`FILE`,e[e.FOLDER=1]=`FOLDER`,e[e.ROOT_FOLDER=2]=`ROOT_FOLDER`})(xm||={});var Sm=/(?:\/|^)(?:([^\/]+)\/)?([^\/]+)$/;function Cm(e,t,n,r,i){if(O.isThemeIcon(i))return[`codicon-${i.id}`,`predefined-file-icon`];if(Fr.isUri(i))return[];let a=r===xm.ROOT_FOLDER?[`rootfolder-icon`]:r===xm.FOLDER?[`folder-icon`]:[`file-icon`];if(n){let i;if(n.scheme===ma.data)i=Li.parseMetaData(n).get(Li.META_DATA_LABEL);else{let e=n.path.match(Sm);e?(i=Tm(e[2].toLowerCase()),e[1]&&a.push(`${Tm(e[1].toLowerCase())}-name-dir-icon`)):i=Tm(n.authority.toLowerCase())}if(r===xm.ROOT_FOLDER)a.push(`${i}-root-name-folder-icon`);else if(r===xm.FOLDER)a.push(`${i}-name-folder-icon`);else{if(i){if(a.push(`${i}-name-file-icon`),a.push(`name-file-icon`),i.length<=255){let e=i.split(`.`);for(let t=1;t<e.length;t++)a.push(`${e.slice(t).join(`.`)}-ext-file-icon`)}a.push(`ext-file-icon`)}let r=wm(e,t,n);r&&a.push(`${Tm(r)}-lang-file-icon`)}}return a}function wm(e,t,n){if(!n)return null;let r=null;if(n.scheme===ma.data){let e=Li.parseMetaData(n).get(Li.META_DATA_MIME);e&&(r=t.getLanguageIdByMimeType(e))}else{let t=e.getModel(n);t&&(r=t.getLanguageId())}return r&&r!==`plaintext`?r:t.guessLanguageIdByFilepathOrFirstLine(n)}function Tm(e){return e.replace(/[\s]/g,`/`)}var Em=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Dm=function(e,t){return function(n,r){t(n,r,e)}},Om=tr(`suggest-more-info`,G.chevronRight,L(1544,`Icon for more information in the suggest widget.`)),km=new class e{static{this._regexRelaxed=/(#([\da-fA-F]{3}){1,2}|(rgb|hsl)a\(\s*(\d{1,3}%?\s*,\s*){3}(1|0?\.\d+)\)|(rgb|hsl)\(\s*\d{1,3}%?(\s*,\s*\d{1,3}%?){2}\s*\))/}static{this._regexStrict=RegExp(`^${e._regexRelaxed.source}$`,`i`)}extract(t,n){if(t.textLabel.match(e._regexStrict))return n[0]=t.textLabel,!0;if(t.completion.detail&&t.completion.detail.match(e._regexStrict))return n[0]=t.completion.detail,!0;if(t.completion.documentation){let r=typeof t.completion.documentation==`string`?t.completion.documentation:t.completion.documentation.value,i=e._regexRelaxed.exec(r);if(i&&(i.index===0||i.index+i[0].length===r.length))return n[0]=i[0],!0}return!1}},Am=class{constructor(e,t,n,r){this._editor=e,this._modelService=t,this._languageService=n,this._themeService=r,this._onDidToggleDetails=new I,this.onDidToggleDetails=this._onDidToggleDetails.event,this.templateId=`suggestion`}dispose(){this._onDidToggleDetails.dispose()}renderTemplate(e){let t=new P,n=e;n.classList.add(`show-file-icons`);let r=N(e,F(`.icon`)),i=N(r,F(`span.colorspan`)),a=N(N(e,F(`.contents`)),F(`.main`)),o=N(a,F(`.icon-label.codicon`)),s=N(a,F(`span.left`)),c=N(a,F(`span.right`)),l=new gr(s,{supportHighlights:!0,supportIcons:!0});t.add(l);let u=N(s,F(`span.signature-label`)),d=N(s,F(`span.qualifier-label`)),f=N(c,F(`span.details-label`)),p=N(c,F(`span.readMore`+O.asCSSSelector(Om)));return p.title=L(1545,`Read More`),{root:n,left:s,right:c,icon:r,colorspan:i,iconLabel:l,iconContainer:o,parametersLabel:u,qualifierLabel:d,detailsLabel:f,readMore:p,disposables:t,configureFont:()=>{let e=this._editor.getOptions(),t=e.get(59),i=t.getMassagedFontFamily(),o=t.fontFeatureSettings,s=t.fontVariationSettings,c=e.get(135)||t.fontSize,l=e.get(136)||t.lineHeight,u=t.fontWeight,d=t.letterSpacing,f=`${c}px`,m=`${l}px`,h=`${d}px`;n.style.fontSize=f,n.style.fontWeight=u,n.style.letterSpacing=h,a.style.fontFamily=i,a.style.fontFeatureSettings=o,a.style.fontVariationSettings=s,a.style.lineHeight=m,r.style.height=m,r.style.width=m,p.style.height=m,p.style.width=m}}}renderElement(e,t,n){n.configureFont();let{completion:r}=e;n.colorspan.style.backgroundColor=``;let i={labelEscapeNewLines:!0,matches:Gt(e.score)},a=[];if(r.kind===19&&km.extract(e,a))n.icon.className=`icon customcolor`,n.iconContainer.className=`icon hide`,n.colorspan.style.backgroundColor=a[0];else if(r.kind===20&&this._themeService.getFileIconTheme().hasFileIcons){n.icon.className=`icon hide`,n.iconContainer.className=`icon hide`;let t=Cm(this._modelService,this._languageService,Fr.from({scheme:`fake`,path:e.textLabel}),xm.FILE),a=Cm(this._modelService,this._languageService,Fr.from({scheme:`fake`,path:r.detail}),xm.FILE);i.extraClasses=t.length>a.length?t:a}else r.kind===23&&this._themeService.getFileIconTheme().hasFolderIcons?(n.icon.className=`icon hide`,n.iconContainer.className=`icon hide`,i.extraClasses=[Cm(this._modelService,this._languageService,Fr.from({scheme:`fake`,path:e.textLabel}),xm.FOLDER),Cm(this._modelService,this._languageService,Fr.from({scheme:`fake`,path:r.detail}),xm.FOLDER)].flat()):(n.icon.className=`icon hide`,n.iconContainer.className=``,n.iconContainer.classList.add(`suggest-icon`,...O.asClassNameArray(ir.toIcon(r.kind))));r.tags&&r.tags.indexOf(1)>=0&&(i.extraClasses=(i.extraClasses||[]).concat([`deprecated`]),i.matches=[]),n.iconLabel.setLabel(e.textLabel,void 0,i),typeof r.label==`string`?(n.parametersLabel.textContent=``,n.detailsLabel.textContent=jm(r.detail||``),n.root.classList.add(`string-label`)):(n.parametersLabel.textContent=jm(r.label.detail||``),n.detailsLabel.textContent=jm(r.label.description||``),n.root.classList.remove(`string-label`)),this._editor.getOption(134).showInlineDetails?Qt(n.detailsLabel):ce(n.detailsLabel),vm(e)?(n.right.classList.add(`can-expand-details`),Qt(n.readMore),n.readMore.onmousedown=e=>{e.stopPropagation(),e.preventDefault()},n.readMore.onclick=e=>{e.stopPropagation(),e.preventDefault(),this._onDidToggleDetails.fire()}):(n.right.classList.remove(`can-expand-details`),ce(n.readMore),n.readMore.onmousedown=null,n.readMore.onclick=null)}disposeTemplate(e){e.disposables.dispose()}};Am=Em([Dm(1,Xe),Dm(2,ve),Dm(3,p)],Am);function jm(e){return e.replace(/\r\n|\r|\n/g,``)}var Mm=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Nm=function(e,t){return function(n,r){t(n,r,e)}},Pm;m(`editorSuggestWidget.background`,Ki,L(1525,`Background color of the suggest widget.`)),m(`editorSuggestWidget.border`,Un,L(1526,`Border color of the suggest widget.`));var Fm=m(`editorSuggestWidget.foreground`,Tn,L(1527,`Foreground color of the suggest widget.`));m(`editorSuggestWidget.selectedForeground`,he,L(1528,`Foreground color of the selected entry in the suggest widget.`)),m(`editorSuggestWidget.selectedIconForeground`,Pe,L(1529,`Icon foreground color of the selected entry in the suggest widget.`));var Im=m(`editorSuggestWidget.selectedBackground`,mt,L(1530,`Background color of the selected entry in the suggest widget.`));m(`editorSuggestWidget.highlightForeground`,De,L(1531,`Color of the match highlights in the suggest widget.`)),m(`editorSuggestWidget.focusHighlightForeground`,Yt,L(1532,`Color of the match highlights in the suggest widget when an item is focused.`)),m(`editorSuggestWidgetStatus.foreground`,ia(Fm,.5),L(1533,`Foreground color of the suggest widget status.`));var Lm=class{constructor(e,t){this._service=e,this._key=`suggestWidget.size/${t.getEditorType()}/${t instanceof dm}`}restore(){let e=this._service.get(this._key,0)??``;try{let t=JSON.parse(e);if(U.is(t))return U.lift(t)}catch{}}store(e){this._service.store(this._key,JSON.stringify(e),0,1)}reset(){this._service.remove(this._key,0)}},Rm=class{static{Pm=this}static{this.LOADING_MESSAGE=L(1534,`Loading...`)}static{this.NO_SUGGESTIONS_MESSAGE=L(1535,`No suggestions.`)}constructor(e,t,n,r,i){this.editor=e,this._storageService=t,this._state=0,this._isAuto=!1,this._loadingTimeout=new gi,this._pendingLayout=new gi,this._pendingShowDetails=new gi,this._ignoreFocusEvents=!1,this._forceRenderingAbove=!1,this._explainMode=!1,this._showTimeout=new jr,this._disposables=new P,this._onDidSelect=new Dn,this._onDidFocus=new Dn,this._onDidHide=new I,this._onDidShow=new I,this.onDidSelect=this._onDidSelect.event,this.onDidFocus=this._onDidFocus.event,this.onDidHide=this._onDidHide.event,this.onDidShow=this._onDidShow.event,this._onDetailsKeydown=new I,this.element=new hm,this.element.domNode.classList.add(`editor-widget`,`suggest-widget`),this._contentWidget=new zm(this,e),this._persistedSize=new Lm(t,e);class a{constructor(e,t,n=!1,r=!1){this.persistedSize=e,this.currentSize=t,this.persistHeight=n,this.persistWidth=r}}let o;this._disposables.add(this.element.onDidWillResize(()=>{this._contentWidget.lockPreference(),o=new a(this._persistedSize.restore(),this.element.size)})),this._disposables.add(this.element.onDidResize(e=>{if(this._resize(e.dimension.width,e.dimension.height),o&&(o.persistHeight=o.persistHeight||!!e.north||!!e.south,o.persistWidth=o.persistWidth||!!e.east||!!e.west),e.done){if(o){let{itemHeight:e,defaultSize:t}=this.getLayoutInfo(),n=Math.round(e/2),{width:r,height:i}=this.element.size;(!o.persistHeight||Math.abs(o.currentSize.height-i)<=n)&&(i=o.persistedSize?.height??t.height),(!o.persistWidth||Math.abs(o.currentSize.width-r)<=n)&&(r=o.persistedSize?.width??t.width),this._persistedSize.store(new U(r,i))}this._contentWidget.unlockPreference(),o=void 0}})),this._messageElement=N(this.element.domNode,F(`.message`)),this._listElement=N(this.element.domNode,F(`.tree`));let s=this._disposables.add(i.createInstance(ym,this.editor));s.onDidClose(()=>this.toggleDetails(),this,this._disposables),this._details=new bm(s,this.editor);let c=()=>this.element.domNode.classList.toggle(`no-icons`,!this.editor.getOption(134).showIcons);c();let l=i.createInstance(Am,this.editor);this._disposables.add(l),this._disposables.add(l.onDidToggleDetails(()=>this.toggleDetails())),this._list=new Vt(`SuggestWidget`,this._listElement,{getHeight:e=>this.getLayoutInfo().itemHeight,getTemplateId:e=>`suggestion`},[l],{alwaysConsumeMouseWheel:!0,useShadows:!1,mouseSupport:!1,multipleSelectionSupport:!1,accessibilityProvider:{getRole:()=>le?`listitem`:`option`,getWidgetAriaLabel:()=>L(1536,`Suggest`),getWidgetRole:()=>`listbox`,getAriaLabel:e=>{let t=e.textLabel,n=ir.toLabel(e.completion.kind);if(typeof e.completion.label!=`string`){let{detail:r,description:i}=e.completion.label;r&&i?t=L(1537,`{0} {1}, {2}, {3}`,t,r,i,n):r?t=L(1538,`{0} {1}, {2}`,t,r,n):i&&(t=L(1539,`{0}, {1}, {2}`,t,i,n))}else t=L(1540,`{0}, {1}`,t,n);if(!e.isResolved||!this._isDetailsVisible())return t;let{documentation:r,detail:i}=e.completion,a=di(`{0}{1}`,i||``,r?typeof r==`string`?r:r.value:``);return L(1541,`{0}, docs: {1}`,t,a)}}}),this._list.style(hr({listInactiveFocusBackground:Im,listInactiveFocusOutline:ur})),this._status=i.createInstance(mm,this.element.domNode,Qf,void 0);let u=()=>this.element.domNode.classList.toggle(`with-status-bar`,this.editor.getOption(134).showStatusBar);u(),this._disposables.add(this._list.onMouseDown(e=>this._onListMouseDownOrTap(e))),this._disposables.add(this._list.onTap(e=>this._onListMouseDownOrTap(e))),this._disposables.add(this._list.onDidChangeSelection(e=>this._onListSelection(e))),this._disposables.add(this._list.onDidChangeFocus(e=>this._onListFocus(e))),this._disposables.add(this.editor.onDidChangeCursorSelection(()=>this._onCursorSelectionChanged())),this._disposables.add(this.editor.onDidChangeConfiguration(e=>{e.hasChanged(134)&&(u(),c()),this._completionModel&&(e.hasChanged(59)||e.hasChanged(135)||e.hasChanged(136))&&this._list.splice(0,this._list.length,this._completionModel.items)})),this._ctxSuggestWidgetVisible=Y.Visible.bindTo(n),this._ctxSuggestWidgetDetailsVisible=Y.DetailsVisible.bindTo(n),this._ctxSuggestWidgetMultipleSuggestions=Y.MultipleSuggestions.bindTo(n),this._ctxSuggestWidgetHasFocusedSuggestion=Y.HasFocusedSuggestion.bindTo(n),this._ctxSuggestWidgetDetailsFocused=Y.DetailsFocused.bindTo(n);let d=We(this._details.widget.domNode);this._disposables.add(d),this._disposables.add(d.onDidFocus(()=>this._ctxSuggestWidgetDetailsFocused.set(!0))),this._disposables.add(d.onDidBlur(()=>this._ctxSuggestWidgetDetailsFocused.set(!1))),this._disposables.add(qi(this._details.widget.domNode,`keydown`,e=>{this._onDetailsKeydown.fire(e)})),this._disposables.add(this.editor.onMouseDown(e=>this._onEditorMouseDown(e)))}dispose(){this._details.widget.dispose(),this._details.dispose(),this._list.dispose(),this._status.dispose(),this._disposables.dispose(),this._loadingTimeout.dispose(),this._pendingLayout.dispose(),this._pendingShowDetails.dispose(),this._showTimeout.dispose(),this._contentWidget.dispose(),this.element.dispose(),this._onDidSelect.dispose(),this._onDidFocus.dispose(),this._onDidHide.dispose(),this._onDidShow.dispose(),this._onDetailsKeydown.dispose()}_onEditorMouseDown(e){this._details.widget.domNode.contains(e.target.element)?this._details.widget.domNode.focus():this.element.domNode.contains(e.target.element)&&this.editor.focus()}_onCursorSelectionChanged(){this._state!==0&&this._contentWidget.layout()}_onListMouseDownOrTap(e){e.element===void 0||e.index===void 0||(e.browserEvent.preventDefault(),e.browserEvent.stopPropagation(),this._select(e.element,e.index))}_onListSelection(e){e.elements.length&&this._select(e.elements[0],e.indexes[0])}_select(e,t){let n=this._completionModel;n&&(this._onDidSelect.fire({item:e,index:t,model:n}),this.editor.focus())}_onListFocus(e){if(this._ignoreFocusEvents)return;if(this._state===5&&this._setState(3),!e.elements.length){this._currentSuggestionDetails&&(this._currentSuggestionDetails.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=void 0),this.editor.setAriaOptions({activeDescendant:void 0}),this._ctxSuggestWidgetHasFocusedSuggestion.set(!1);return}if(!this._completionModel)return;this._ctxSuggestWidgetHasFocusedSuggestion.set(!0);let t=e.elements[0],n=e.indexes[0];t!==this._focusedItem&&(this._currentSuggestionDetails?.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=t,this._list.reveal(n),this._currentSuggestionDetails=it(async e=>{let n=st(()=>{this._isDetailsVisible()&&this._showDetails(!0,!1)},250),r=e.onCancellationRequested(()=>n.dispose());try{return await t.resolve(e)}finally{n.dispose(),r.dispose()}}),this._currentSuggestionDetails.then(()=>{n>=this._list.length||t!==this._list.element(n)||(this._ignoreFocusEvents=!0,this._list.splice(n,1,[t]),this._list.setFocus([n]),this._ignoreFocusEvents=!1,this._isDetailsVisible()?this._showDetails(!1,!1):this.element.domNode.classList.remove(`docs-side`),this.editor.setAriaOptions({activeDescendant:this._list.getElementID(n)}))}).catch(Hi)),this._onDidFocus.fire({item:t,index:n,model:this._completionModel})}_setState(e){if(this._state!==e)switch(this._state=e,this.element.domNode.classList.toggle(`frozen`,e===4),this.element.domNode.classList.remove(`message`),e){case 0:ce(this._messageElement,this._listElement,this._status.element),this._details.hide(!0),this._status.hide(),this._contentWidget.hide(),this._ctxSuggestWidgetVisible.reset(),this._ctxSuggestWidgetMultipleSuggestions.reset(),this._ctxSuggestWidgetHasFocusedSuggestion.reset(),this._showTimeout.cancel(),this.element.domNode.classList.remove(`visible`),this._list.splice(0,this._list.length),this._focusedItem=void 0,this._cappedHeight=void 0,this._explainMode=!1;break;case 1:this.element.domNode.classList.add(`message`),this._messageElement.textContent=Pm.LOADING_MESSAGE,ce(this._listElement,this._status.element),Qt(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,me(Pm.LOADING_MESSAGE);break;case 2:this.element.domNode.classList.add(`message`),this._messageElement.textContent=Pm.NO_SUGGESTIONS_MESSAGE,ce(this._listElement,this._status.element),Qt(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,me(Pm.NO_SUGGESTIONS_MESSAGE);break;case 3:ce(this._messageElement),Qt(this._listElement,this._status.element),this._show();break;case 4:ce(this._messageElement),Qt(this._listElement,this._status.element),this._show();break;case 5:ce(this._messageElement),Qt(this._listElement,this._status.element),this._details.show(),this._show(),this._details.widget.focus();break}}_show(){this._status.show(),this._contentWidget.show(),this._layout(this._persistedSize.restore()),this._ctxSuggestWidgetVisible.set(!0),this._showTimeout.cancelAndSet(()=>{this.element.domNode.classList.add(`visible`),this._onDidShow.fire(this)},100)}showTriggered(e,t){this._state===0&&(this._contentWidget.setPosition(this.editor.getPosition()),this._isAuto=!!e,this._isAuto||(this._loadingTimeout.value=st(()=>this._setState(1),t)))}showSuggestions(e,t,n,r,i){if(this._contentWidget.setPosition(this.editor.getPosition()),this._loadingTimeout.clear(),this._currentSuggestionDetails?.cancel(),this._currentSuggestionDetails=void 0,this._completionModel!==e&&(this._completionModel=e),n&&this._state!==2&&this._state!==0){this._setState(4);return}let a=this._completionModel.items.length,o=a===0;if(this._ctxSuggestWidgetMultipleSuggestions.set(a>1),o){this._setState(r?0:2),this._completionModel=void 0;return}this._focusedItem=void 0,this._onDidFocus.pause(),this._onDidSelect.pause();try{this._list.splice(0,this._list.length,this._completionModel.items),this._setState(n?4:3),this._list.reveal(t,0,t===0?0:this.getLayoutInfo().itemHeight*.33),this._list.setFocus(i?[]:[t])}finally{this._onDidFocus.resume(),this._onDidSelect.resume()}this._pendingLayout.value=Jt(h(this.element.domNode),()=>{this._pendingLayout.clear(),this._layout(this.element.size),this._details.widget.domNode.classList.remove(`focused`)})}focusSelected(){this._list.length>0&&this._list.setFocus([0])}selectNextPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageDown(),!0;case 1:return!this._isAuto;default:return this._list.focusNextPage(),!0}}selectNext(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusNext(1,!0),!0}}selectLast(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollBottom(),!0;case 1:return!this._isAuto;default:return this._list.focusLast(),!0}}selectPreviousPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageUp(),!0;case 1:return!this._isAuto;default:return this._list.focusPreviousPage(),!0}}selectPrevious(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusPrevious(1,!0),!1}}selectFirst(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollTop(),!0;case 1:return!this._isAuto;default:return this._list.focusFirst(),!0}}getFocusedItem(){if(this._state!==0&&this._state!==2&&this._state!==1&&this._completionModel&&this._list.getFocus().length>0)return{item:this._list.getFocusedElements()[0],index:this._list.getFocus()[0],model:this._completionModel}}toggleDetailsFocus(){this._state===5?(this._list.setFocus(this._list.getFocus()),this._setState(3)):this._state===3&&(this._setState(5),this._isDetailsVisible()?this._details.widget.focus():this.toggleDetails(!0))}toggleDetails(e=!1){this._isDetailsVisible()?(this._pendingShowDetails.clear(),this._ctxSuggestWidgetDetailsVisible.set(!1),this._setDetailsVisible(!1),this._details.hide(),this.element.domNode.classList.remove(`shows-details`)):(vm(this._list.getFocusedElements()[0])||this._explainMode)&&(this._state===3||this._state===5||this._state===4)&&(this._ctxSuggestWidgetDetailsVisible.set(!0),this._setDetailsVisible(!0),this._showDetails(!1,e))}_showDetails(e,t){this._pendingShowDetails.value=Jt(h(this.element.domNode),()=>{this._pendingShowDetails.clear(),this._details.show();let n=!1;e?this._details.widget.renderLoading():this._details.widget.renderItem(this._list.getFocusedElements()[0],this._explainMode),this._details.widget.isEmpty?this._details.hide():(this._positionDetails(),this.element.domNode.classList.add(`shows-details`),t&&(this._details.widget.focus(),n=!0)),n||this.editor.focus()})}toggleExplainMode(){this._list.getFocusedElements()[0]&&(this._explainMode=!this._explainMode,this._isDetailsVisible()?this._showDetails(!1,!1):this.toggleDetails())}resetPersistedSize(){this._persistedSize.reset()}hideWidget(){this._pendingLayout.clear(),this._pendingShowDetails.clear(),this._loadingTimeout.clear(),this._setState(0),this._onDidHide.fire(this),this.element.clearSashHoverState();let e=this._persistedSize.restore(),t=Math.ceil(this.getLayoutInfo().itemHeight*4.3);e&&e.height<t&&this._persistedSize.store(e.with(void 0,t))}isFrozen(){return this._state===4}_afterRender(e){if(e===null){this._isDetailsVisible()&&this._details.hide();return}this._state===2||this._state===1||(this._isDetailsVisible()&&!this._details.widget.isEmpty&&this._details.show(),this._positionDetails())}_layout(e){if(!this.editor.hasModel()||!this.editor.getDomNode())return;let t=dr(this.element.domNode.ownerDocument.body),n=this.getLayoutInfo();e||=n.defaultSize;let r=e.height,i=e.width;if(this._status.element.style.height=`${n.itemHeight}px`,this._state===2||this._state===1)r=n.itemHeight+n.borderHeight,i=n.defaultSize.width/2,this.element.enableSashes(!1,!1,!1,!1),this.element.minSize=this.element.maxSize=new U(i,r),this._contentWidget.setPreference(2);else{let a=t.width-n.borderHeight-2*n.horizontalPadding;i>a&&(i=a);let o=this._completionModel?this._completionModel.stats.pLabelLen*n.typicalHalfwidthCharacterWidth:i,s=n.statusBarHeight+this._list.contentHeight+n.borderHeight,c=n.itemHeight+n.statusBarHeight,l=ea(this.editor.getDomNode()),u=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),d=l.top+u.top+u.height,f=Math.min(t.height-d-n.verticalPadding,s),p=l.top+u.top-n.verticalPadding,m=Math.min(p,s),h=Math.min(Math.max(m,f)+n.borderHeight,s);r===this._cappedHeight?.capped&&(r=this._cappedHeight.wanted),r<c&&(r=c),r>h&&(r=h),r>f&&m>f||this._forceRenderingAbove&&p>150?(this._contentWidget.setPreference(1),this.element.enableSashes(!0,!0,!1,!1),h=m):(this._contentWidget.setPreference(2),this.element.enableSashes(!1,!0,!0,!1),h=f),this.element.preferredSize=new U(o,n.defaultSize.height),this.element.maxSize=new U(a,h),this.element.minSize=new U(220,c),this._cappedHeight=r===s?{wanted:this._cappedHeight?.wanted??e.height,capped:r}:void 0}this._resize(i,r)}_resize(e,t){let{width:n,height:r}=this.element.maxSize;e=Math.min(n,e),t=Math.min(r,t);let{statusBarHeight:i}=this.getLayoutInfo();this._list.layout(t-i,e),this._listElement.style.height=`${t-i}px`,this.element.layout(t,e),this._contentWidget.layout(),this._positionDetails()}_positionDetails(){this._isDetailsVisible()&&this._details.placeAtAnchor(this.element.domNode,this._contentWidget.getPosition()?.preference[0]===2)}getLayoutInfo(){let e=this.editor.getOption(59),t=Bn(this.editor.getOption(136)||e.lineHeight,8,1e3),n=!this.editor.getOption(134).showStatusBar||this._state===2||this._state===1?0:t,r=this._details.widget.getLayoutInfo().borderWidth;return{itemHeight:t,statusBarHeight:n,borderWidth:r,borderHeight:2*r,typicalHalfwidthCharacterWidth:e.typicalHalfwidthCharacterWidth,verticalPadding:22,horizontalPadding:14,defaultSize:new U(430,n+12*t)}}_isDetailsVisible(){return this._storageService.getBoolean(`expandSuggestionDocs`,0,!1)}_setDetailsVisible(e){this._storageService.store(`expandSuggestionDocs`,e,0,0)}forceRenderingAbove(){this._forceRenderingAbove||(this._forceRenderingAbove=!0,this._layout(this._persistedSize.restore()))}stopForceRenderingAbove(){this._forceRenderingAbove=!1}};Rm=Pm=Mm([Nm(1,Ur),Nm(2,w),Nm(3,p),Nm(4,Ue)],Rm);var zm=class{constructor(e,t){this._widget=e,this._editor=t,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._preferenceLocked=!1,this._added=!1,this._hidden=!1}dispose(){this._added&&(this._added=!1,this._editor.removeContentWidget(this))}getId(){return`editor.widget.suggestWidget`}getDomNode(){return this._widget.element.domNode}show(){this._hidden=!1,this._added||(this._added=!0,this._editor.addContentWidget(this))}hide(){this._hidden||(this._hidden=!0,this.layout())}layout(){this._editor.layoutContentWidget(this)}getPosition(){return this._hidden||!this._position||!this._preference?null:{position:this._position,preference:[this._preference]}}beforeRender(){let{height:e,width:t}=this._widget.element.size,{borderWidth:n,horizontalPadding:r}=this._widget.getLayoutInfo();return new U(t+2*n+r,e+2*n)}afterRender(e){this._widget._afterRender(e)}setPreference(e){this._preferenceLocked||(this._preference=e)}lockPreference(){this._preferenceLocked=!0}unlockPreference(){this._preferenceLocked=!1}setPosition(e){this._position=e}},Bm=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Vm=function(e,t){return function(n,r){t(n,r,e)}},Hm,Um=class{constructor(e,t){if(this._model=e,this._position=t,this._decorationOptions=V.register({description:`suggest-line-suffix`,stickiness:1}),e.getLineMaxColumn(t.lineNumber)!==t.column){let n=e.getOffsetAt(t),r=e.getPositionAt(n+1);e.changeDecorations(e=>{this._marker&&e.removeDecoration(this._marker),this._marker=e.addDecoration(_.fromPositions(t,r),this._decorationOptions)})}}dispose(){this._marker&&!this._model.isDisposed()&&this._model.changeDecorations(e=>{e.removeDecoration(this._marker),this._marker=void 0})}delta(e){if(this._model.isDisposed()||this._position.lineNumber!==e.lineNumber)return 0;if(this._marker){let t=this._model.getDecorationRange(this._marker);return this._model.getOffsetAt(t.getStartPosition())-this._model.getOffsetAt(e)}else return this._model.getLineMaxColumn(e.lineNumber)-e.column}},Wm=class{static{Hm=this}static{this.ID=`editor.contrib.suggestController`}static get(e){return e.getContribution(Hm.ID)}get onWillInsertSuggestItem(){return this._onWillInsertSuggestItem.event}constructor(e,t,n,r,i,a,o){this._memoryService=t,this._commandService=n,this._contextKeyService=r,this._instantiationService=i,this._logService=a,this._telemetryService=o,this._lineSuffix=new gi,this._toDispose=new P,this._selectors=new Gm(e=>e.priority),this._onWillInsertSuggestItem=new I,this._wantsForceRenderingAbove=!1,this.editor=e,this.model=i.createInstance(sm,this.editor),this._selectors.register({priority:0,select:(e,t,n)=>this._memoryService.select(e,t,n)});let s=Y.InsertMode.bindTo(r);s.set(e.getOption(134).insertMode),this._toDispose.add(this.model.onDidTrigger(()=>s.set(e.getOption(134).insertMode))),this.widget=this._toDispose.add(new En(h(e.getDomNode()),()=>{let e=this._instantiationService.createInstance(Rm,this.editor);this._toDispose.add(e),this._toDispose.add(e.onDidSelect(e=>this._insertSuggestion(e,0),this));let t=new Yp(this.editor,e,this.model,e=>this._insertSuggestion(e,2));this._toDispose.add(t);let n=Y.MakesTextEdit.bindTo(this._contextKeyService),r=Y.HasInsertAndReplaceRange.bindTo(this._contextKeyService),i=Y.CanResolve.bindTo(this._contextKeyService);return this._toDispose.add(yn(()=>{n.reset(),r.reset(),i.reset()})),this._toDispose.add(e.onDidFocus(({item:e})=>{let t=this.editor.getPosition(),a=e.editStart.column,o=t.column,s=!0;this.editor.getOption(1)===`smart`&&this.model.state===2&&!e.completion.additionalTextEdits&&!(e.completion.insertTextRules&4)&&o-a===e.completion.insertText.length&&(s=this.editor.getModel().getValueInRange({startLineNumber:t.lineNumber,startColumn:a,endLineNumber:t.lineNumber,endColumn:o})!==e.completion.insertText),n.set(s),r.set(!T.equals(e.editInsertEnd,e.editReplaceEnd)),i.set(!!e.provider.resolveCompletionItem||!!e.completion.documentation||e.completion.detail!==e.completion.label)})),this._wantsForceRenderingAbove&&e.forceRenderingAbove(),e})),this._overtypingCapturer=this._toDispose.add(new En(h(e.getDomNode()),()=>this._toDispose.add(new cm(this.editor,this.model)))),this._alternatives=this._toDispose.add(new En(h(e.getDomNode()),()=>this._toDispose.add(new Jp(this.editor,this._contextKeyService)))),this._toDispose.add(i.createInstance(Wp,e)),this._toDispose.add(this.model.onDidTrigger(e=>{this.widget.value.showTriggered(e.auto,e.shy?250:50),this._lineSuffix.value=new Um(this.editor.getModel(),e.position)})),this._toDispose.add(this.model.onDidSuggest(e=>{if(e.triggerOptions.shy)return;let t=-1;for(let n of this._selectors.itemsOrderedByPriorityDesc)if(t=n.select(this.editor.getModel(),this.editor.getPosition(),e.completionModel.items),t!==-1)break;if(t===-1&&(t=0),this.model.state===0)return;let n=!1;if(e.triggerOptions.auto){let t=this.editor.getOption(134);t.selectionMode===`never`||t.selectionMode===`always`?n=t.selectionMode===`never`:t.selectionMode===`whenTriggerCharacter`?n=e.triggerOptions.triggerKind!==1:t.selectionMode===`whenQuickSuggestion`&&(n=e.triggerOptions.triggerKind===1&&!e.triggerOptions.refilter)}this.widget.value.showSuggestions(e.completionModel,t,e.isFrozen,e.triggerOptions.auto,n)})),this._toDispose.add(this.model.onDidCancel(e=>{e.retrigger||this.widget.value.hideWidget()})),this._toDispose.add(this.editor.onDidBlurEditorWidget(()=>{this.model.cancel(),this.model.clear()}));let c=Y.AcceptSuggestionsOnEnter.bindTo(r),l=()=>{let e=this.editor.getOption(1);c.set(e===`on`||e===`smart`)};this._toDispose.add(this.editor.onDidChangeConfiguration(()=>l())),l()}dispose(){this._alternatives.dispose(),this._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose(),this._onWillInsertSuggestItem.dispose()}_insertSuggestion(e,t){if(!e||!e.item){this._alternatives.value.reset(),this.model.cancel(),this.model.clear();return}if(!this.editor.hasModel())return;let n=X.get(this.editor);if(!n)return;this._onWillInsertSuggestItem.fire({item:e.item});let r=this.editor.getModel(),i=r.getAlternativeVersionId(),{item:a}=e,o=[],s=new Ct;t&1||this.editor.pushUndoStop();let c=this.getOverwriteInfo(a,!!(t&8));this._memoryService.memorize(r,this.editor.getPosition(),a);let l=a.isResolved,u=-1,d=-1;if(Array.isArray(a.completion.additionalTextEdits)){this.model.cancel();let e=Gi.capture(this.editor);this.editor.executeEdits(`suggestController.additionalTextEdits.sync`,a.completion.additionalTextEdits.map(e=>{let t=_.lift(e.range);if(t.startLineNumber===a.position.lineNumber&&t.startColumn>a.position.column){let e=this.editor.getPosition().column-a.position.column,n=e,r=_.spansMultipleLines(t)?0:e;t=new _(t.startLineNumber,t.startColumn+n,t.endLineNumber,t.endColumn+r)}return v.replaceMove(t,e.text)})),e.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!l){let e=new Pi,n,i=r.onDidChangeContent(e=>{if(e.isFlush){s.cancel(),i.dispose();return}for(let t of e.changes){let e=_.getEndPosition(t.range);(!n||T.isBefore(e,n))&&(n=e)}}),c=t;t|=2;let l=!1,u=this.editor.onWillType(()=>{u.dispose(),l=!0,c&2||this.editor.pushUndoStop()});o.push(a.resolve(s.token).then(()=>{if(!a.completion.additionalTextEdits||s.token.isCancellationRequested)return;if(n&&a.completion.additionalTextEdits.some(e=>T.isBefore(n,_.getStartPosition(e.range))))return!1;l&&this.editor.pushUndoStop();let e=Gi.capture(this.editor);return this.editor.executeEdits(`suggestController.additionalTextEdits.async`,a.completion.additionalTextEdits.map(e=>v.replaceMove(_.lift(e.range),e.text))),e.restoreRelativeVerticalPositionOfCursor(this.editor),(l||!(c&2))&&this.editor.pushUndoStop(),!0}).then(t=>{this._logService.trace(`[suggest] async resolving of edits DONE (ms, applied?)`,e.elapsed(),t),d=t===!0?1:t===!1?0:-2}).finally(()=>{i.dispose(),u.dispose()}))}let{insertText:f}=a.completion;if(a.completion.insertTextRules&4||(f=_o.escape(f)),this.model.cancel(),n.insert(f,{overwriteBefore:c.overwriteBefore,overwriteAfter:c.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(a.completion.insertTextRules&1),clipboardText:e.model.clipboardText,overtypingCapturer:this._overtypingCapturer.value,reason:yi.suggest({providerId:ta.fromExtensionId(a.extensionId?.value)})}),t&2||this.editor.pushUndoStop(),a.completion.command)if(a.completion.command.id===Km.id)this.model.trigger({auto:!0,retrigger:!0});else{let e=new Pi;o.push(this._commandService.executeCommand(a.completion.command.id,...a.completion.command.arguments?[...a.completion.command.arguments]:[]).catch(e=>{a.completion.extensionId?ai(e):Hi(e)}).finally(()=>{u=e.elapsed()}))}t&4&&this._alternatives.value.set(e,e=>{for(s.cancel();r.canUndo();){i!==r.getAlternativeVersionId()&&r.undo(),this._insertSuggestion(e,3|(t&8?8:0));break}}),this._alertCompletionItem(a),Promise.all(o).finally(()=>{this._reportSuggestionAcceptedTelemetry(a,r,l,u,d,e.index,e.model.items),this.model.clear(),s.dispose()})}_reportSuggestionAcceptedTelemetry(e,t,n,r,i,a,o){if(Math.random()>1e-4)return;let s=new Map;for(let e=0;e<Math.min(30,o.length);e++){let t=o[e].textLabel;s.has(t)?s.get(t).push(e):s.set(t,[e])}let c=s.get(e.textLabel),l=c&&c.length>1?c[0]:-1;this._telemetryService.publicLog2(`suggest.acceptedSuggestion`,{extensionId:e.extensionId?.value??`unknown`,providerId:e.provider._debugDisplayName??`unknown`,kind:e.completion.kind,basenameHash:ba(Vn(t.uri)).toString(16),languageId:t.getLanguageId(),fileExtension:Xi(t.uri),resolveInfo:e.provider.resolveCompletionItem?+!!n:-1,resolveDuration:e.resolveDuration,commandDuration:r,additionalEditsAsync:i,index:a,firstIndex:l})}getOverwriteInfo(e,t){wa(this.editor.hasModel());let n=this.editor.getOption(134).insertMode===`replace`;t&&(n=!n);let r=e.position.column-e.editStart.column,i=(n?e.editReplaceEnd.column:e.editInsertEnd.column)-e.position.column,a=this.editor.getPosition().column-e.position.column,o=this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0;return{overwriteBefore:r+a,overwriteAfter:i+o}}_alertCompletionItem(e){Sr(e.completion.additionalTextEdits)&&at(L(1514,`Accepting '{0}' made {1} additional edits`,e.textLabel,e.completion.additionalTextEdits.length))}triggerSuggest(e,t,n){this.editor.hasModel()&&(this.model.trigger({auto:t??!1,completionOptions:{providerFilter:e,kindFilter:n?new Set:void 0}}),this.editor.revealPosition(this.editor.getPosition(),0),this.editor.focus())}triggerSuggestAndAcceptBest(e){if(!this.editor.hasModel())return;let t=this.editor.getPosition(),n=()=>{t.equals(this.editor.getPosition())&&this._commandService.executeCommand(e.fallback)},r=e=>{if(e.completion.insertTextRules&4||e.completion.additionalTextEdits)return!0;let t=this.editor.getPosition(),n=e.editStart.column,r=t.column;return r-n===e.completion.insertText.length?this.editor.getModel().getValueInRange({startLineNumber:t.lineNumber,startColumn:n,endLineNumber:t.lineNumber,endColumn:r})!==e.completion.insertText:!0};zi.once(this.model.onDidTrigger)(e=>{let t=[];zi.any(this.model.onDidTrigger,this.model.onDidCancel)(()=>{vr(t),n()},void 0,t),this.model.onDidSuggest(({completionModel:e})=>{if(vr(t),e.items.length===0){n();return}let i=this._memoryService.select(this.editor.getModel(),this.editor.getPosition(),e.items),a=e.items[i];if(!r(a)){n();return}this.editor.pushUndoStop(),this._insertSuggestion({index:i,item:a,model:e},7)},void 0,t)}),this.model.trigger({auto:!1,shy:!0}),this.editor.revealPosition(t,0),this.editor.focus()}acceptSelectedSuggestion(e,t){let n=this.widget.value.getFocusedItem(),r=0;e&&(r|=4),t&&(r|=8),this._insertSuggestion(n,r)}acceptNextSuggestion(){this._alternatives.value.next()}acceptPrevSuggestion(){this._alternatives.value.prev()}cancelSuggestWidget(){this.model.cancel(),this.model.clear(),this.widget.value.hideWidget()}focusSuggestion(){this.widget.value.focusSelected()}selectNextSuggestion(){this.widget.value.selectNext()}selectNextPageSuggestion(){this.widget.value.selectNextPage()}selectLastSuggestion(){this.widget.value.selectLast()}selectPrevSuggestion(){this.widget.value.selectPrevious()}selectPrevPageSuggestion(){this.widget.value.selectPreviousPage()}selectFirstSuggestion(){this.widget.value.selectFirst()}toggleSuggestionDetails(){this.widget.value.toggleDetails()}toggleExplainMode(){this.widget.value.toggleExplainMode()}toggleSuggestionFocus(){this.widget.value.toggleDetailsFocus()}resetWidgetSize(){this.widget.value.resetPersistedSize()}forceRenderingAbove(){this.widget.isInitialized?this.widget.value.forceRenderingAbove():this._wantsForceRenderingAbove=!0}stopForceRenderingAbove(){this.widget.isInitialized?this.widget.value.stopForceRenderingAbove():this._wantsForceRenderingAbove=!1}registerSelector(e){return this._selectors.register(e)}};Wm=Hm=Bm([Vm(1,Bp),Vm(2,tt),Vm(3,w),Vm(4,Ue),Vm(5,Mi),Vm(6,In)],Wm);var Gm=class{constructor(e){this.prioritySelector=e,this._items=[]}register(e){if(this._items.indexOf(e)!==-1)throw Error(`Value is already registered`);return this._items.push(e),this._items.sort((e,t)=>this.prioritySelector(t)-this.prioritySelector(e)),{dispose:()=>{let t=this._items.indexOf(e);t>=0&&this._items.splice(t,1)}}}get itemsOrderedByPriorityDesc(){return this._items}},Km=class e extends b{static{this.id=`editor.action.triggerSuggest`}constructor(){super({id:e.id,label:S(1523,`Trigger Suggest`),precondition:C.and(x.writable,x.hasCompletionItemProvider,Y.Visible.toNegated()),kbOpts:{kbExpr:x.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[521,2087]},weight:100}})}run(e,t,n){let r=Wm.get(t);if(!r)return;let i;n&&typeof n==`object`&&n.auto===!0&&(i=!0),r.triggerSuggest(void 0,i,void 0)}};bt(Wm.ID,Wm,2),A(Km);var qm=190,Z=Je.bindToContribution(Wm.get);M(new Z({id:`acceptSelectedSuggestion`,precondition:C.and(Y.Visible,Y.HasFocusedSuggestion),handler(e){e.acceptSelectedSuggestion(!0,!1)},kbOpts:[{primary:2,kbExpr:C.and(Y.Visible,x.textInputFocus),weight:qm},{primary:3,kbExpr:C.and(Y.Visible,x.textInputFocus,Y.AcceptSuggestionsOnEnter,Y.MakesTextEdit),weight:qm}],menuOpts:[{menuId:Qf,title:L(1515,`Insert`),group:`left`,order:1,when:C.and(Y.HasFocusedSuggestion,Y.HasInsertAndReplaceRange.toNegated())},{menuId:Qf,title:L(1516,`Insert`),group:`left`,order:1,when:C.and(Y.HasFocusedSuggestion,Y.HasInsertAndReplaceRange,Y.InsertMode.isEqualTo(`insert`))},{menuId:Qf,title:L(1517,`Replace`),group:`left`,order:1,when:C.and(Y.HasFocusedSuggestion,Y.HasInsertAndReplaceRange,Y.InsertMode.isEqualTo(`replace`))}]})),M(new Z({id:`acceptAlternativeSelectedSuggestion`,precondition:C.and(Y.Visible,x.textInputFocus,Y.HasFocusedSuggestion),kbOpts:{weight:qm,kbExpr:x.textInputFocus,primary:1027,secondary:[1026]},handler(e){e.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:Qf,group:`left`,order:2,when:C.and(Y.HasFocusedSuggestion,Y.HasInsertAndReplaceRange,Y.InsertMode.isEqualTo(`insert`)),title:L(1518,`Replace`)},{menuId:Qf,group:`left`,order:2,when:C.and(Y.HasFocusedSuggestion,Y.HasInsertAndReplaceRange,Y.InsertMode.isEqualTo(`replace`)),title:L(1519,`Insert`)}]})),Le.registerCommandAlias(`acceptSelectedSuggestionOnEnter`,`acceptSelectedSuggestion`),M(new Z({id:`hideSuggestWidget`,precondition:Y.Visible,handler:e=>e.cancelSuggestWidget(),kbOpts:{weight:qm,kbExpr:x.textInputFocus,primary:9,secondary:[1033]}})),M(new Z({id:`selectNextSuggestion`,precondition:C.and(Y.Visible,C.or(Y.MultipleSuggestions,Y.HasFocusedSuggestion.negate())),handler:e=>e.selectNextSuggestion(),kbOpts:{weight:qm,kbExpr:x.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}},menuOpts:{menuId:Qf,group:`left`,order:0,when:Y.HasFocusedSuggestion.toNegated(),title:L(1520,`Select`)}})),M(new Z({id:`selectNextPageSuggestion`,precondition:C.and(Y.Visible,C.or(Y.MultipleSuggestions,Y.HasFocusedSuggestion.negate())),handler:e=>e.selectNextPageSuggestion(),kbOpts:{weight:qm,kbExpr:x.textInputFocus,primary:12,secondary:[2060]}})),M(new Z({id:`selectLastSuggestion`,precondition:C.and(Y.Visible,C.or(Y.MultipleSuggestions,Y.HasFocusedSuggestion.negate())),handler:e=>e.selectLastSuggestion()})),M(new Z({id:`selectPrevSuggestion`,precondition:C.and(Y.Visible,C.or(Y.MultipleSuggestions,Y.HasFocusedSuggestion.negate())),handler:e=>e.selectPrevSuggestion(),kbOpts:{weight:qm,kbExpr:x.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})),M(new Z({id:`selectPrevPageSuggestion`,precondition:C.and(Y.Visible,C.or(Y.MultipleSuggestions,Y.HasFocusedSuggestion.negate())),handler:e=>e.selectPrevPageSuggestion(),kbOpts:{weight:qm,kbExpr:x.textInputFocus,primary:11,secondary:[2059]}})),M(new Z({id:`selectFirstSuggestion`,precondition:C.and(Y.Visible,C.or(Y.MultipleSuggestions,Y.HasFocusedSuggestion.negate())),handler:e=>e.selectFirstSuggestion()})),M(new Z({id:`focusSuggestion`,precondition:C.and(Y.Visible,Y.HasFocusedSuggestion.negate()),handler:e=>e.focusSuggestion(),kbOpts:{weight:qm,kbExpr:x.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}}})),M(new Z({id:`focusAndAcceptSuggestion`,precondition:C.and(Y.Visible,Y.HasFocusedSuggestion.negate()),handler:e=>{e.focusSuggestion(),e.acceptSelectedSuggestion(!0,!1)}})),M(new Z({id:`toggleSuggestionDetails`,precondition:C.and(Y.Visible,Y.HasFocusedSuggestion),handler:e=>e.toggleSuggestionDetails(),kbOpts:{weight:qm,kbExpr:x.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}},menuOpts:[{menuId:Qf,group:`right`,order:1,when:C.and(Y.DetailsVisible,Y.CanResolve),title:L(1521,`Show Less`)},{menuId:Qf,group:`right`,order:1,when:C.and(Y.DetailsVisible.toNegated(),Y.CanResolve),title:L(1522,`Show More`)}]})),M(new Z({id:`toggleExplainMode`,precondition:Y.Visible,handler:e=>e.toggleExplainMode(),kbOpts:{weight:100,primary:2138}})),M(new Z({id:`toggleSuggestionFocus`,precondition:Y.Visible,handler:e=>e.toggleSuggestionFocus(),kbOpts:{weight:qm,kbExpr:x.textInputFocus,primary:2570,mac:{primary:778}}})),M(new Z({id:`insertBestCompletion`,precondition:C.and(x.textInputFocus,C.equals(`config.editor.tabCompletion`,`on`),Wp.AtEnd,Y.Visible.toNegated(),Jp.OtherSuggestions.toNegated(),X.InSnippetMode.toNegated()),handler:(e,t)=>{e.triggerSuggestAndAcceptBest(xe(t)?{fallback:`tab`,...t}:{fallback:`tab`})},kbOpts:{weight:qm,primary:2}})),M(new Z({id:`insertNextSuggestion`,precondition:C.and(x.textInputFocus,C.equals(`config.editor.tabCompletion`,`on`),Jp.OtherSuggestions,Y.Visible.toNegated(),X.InSnippetMode.toNegated()),handler:e=>e.acceptNextSuggestion(),kbOpts:{weight:qm,kbExpr:x.textInputFocus,primary:2}})),M(new Z({id:`insertPrevSuggestion`,precondition:C.and(x.textInputFocus,C.equals(`config.editor.tabCompletion`,`on`),Jp.OtherSuggestions,Y.Visible.toNegated(),X.InSnippetMode.toNegated()),handler:e=>e.acceptPrevSuggestion(),kbOpts:{weight:qm,kbExpr:x.textInputFocus,primary:1026}})),M(new class extends Je{constructor(){super({id:`suggestWidgetCopy`,precondition:Y.DetailsFocused,kbOpts:{weight:200,kbExpr:Y.DetailsFocused,primary:2081,win:{primary:2081,secondary:[2067]}}})}runEditorCommand(e,t){h(t.getDomNode()).document.execCommand(`copy`)}}),A(class extends b{constructor(){super({id:`editor.action.resetSuggestSize`,label:S(1524,`Reset Suggest Widget Size`),precondition:void 0})}run(e,t){Wm.get(t)?.resetWidgetSize()}});var Jm=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Ym=function(e,t){return function(n,r){t(n,r,e)}},Xm=class{constructor(){this.selector={language:`*`}}provideDocumentHighlights(e,t,n){if(e.isDisposed())return;let r=[],i=e.getWordAtPosition({lineNumber:t.lineNumber,column:t.column});return i?e.findMatches(i.word,!0,!1,!0,Re,!1).map(e=>({range:e.range,kind:hi.Text})):Promise.resolve(r)}provideMultiDocumentHighlights(e,t,n,r){if(e.isDisposed())return;let i=new xn,a=e.getWordAtPosition({lineNumber:t.lineNumber,column:t.column});if(!a)return Promise.resolve(i);for(let t of[e,...n]){if(t.isDisposed())continue;let e=t.findMatches(a.word,!0,!1,!0,Re,!1).map(e=>({range:e.range,kind:hi.Text}));e&&i.set(t.uri,e)}return i}},Zm=class extends B{constructor(e){super(),this._register(e.documentHighlightProvider.register(`*`,new Xm)),this._register(e.multiDocumentHighlightProvider.register(`*`,new Xm))}};Zm=Jm([Ym(0,j)],Zm);var Qm=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},$m=function(e,t){return function(n,r){t(n,r,e)}},Q,eh,th=new D(`hasWordHighlights`,!1);function nh(e,t,n,r){return ht(e.ordered(t).map(e=>()=>Promise.resolve(e.provideDocumentHighlights(t,n,r)).then(void 0,ai)),e=>e!=null).then(e=>{if(e){let n=new xn;return n.set(t.uri,e),n}return new xn})}function rh(e,t,n,r,i){return ht(e.ordered(t).map(e=>()=>{let a=i.filter(e=>Fn(e)).filter(t=>Dr(e.selector,t.uri,t.getLanguageId(),!0,void 0,void 0)>0);return Promise.resolve(e.provideMultiDocumentHighlights(t,n,a,r)).then(void 0,ai)}),e=>e!=null)}var ih=class{constructor(e,t,n){this._model=e,this._selection=t,this._wordSeparators=n,this._wordRange=this._getCurrentWordRange(e,t),this._result=null}get result(){return this._result||=it(e=>this._compute(this._model,this._selection,this._wordSeparators,e)),this._result}_getCurrentWordRange(e,t){let n=e.getWordAtPosition(t.getPosition());return n?new _(t.startLineNumber,n.startColumn,t.startLineNumber,n.endColumn):null}cancel(){this.result.cancel()}},ah=class extends ih{constructor(e,t,n,r){super(e,t,n),this._providers=r}_compute(e,t,n,r){return nh(this._providers,e,t.getPosition(),r).then(e=>e||new xn)}},oh=class extends ih{constructor(e,t,n,r,i){super(e,t,n),this._providers=r,this._otherModels=i}_compute(e,t,n,r){return rh(this._providers,e,t.getPosition(),r,this._otherModels).then(e=>e||new xn)}};function sh(e,t,n,r){return new ah(t,n,r,e)}function ch(e,t,n,r,i){return new oh(t,n,r,e,i)}Qn(`_executeDocumentHighlights`,async(e,t,n)=>(await nh(e.get(j).documentHighlightProvider,t,n,Qe.None))?.get(t.uri));var lh=class{static{Q=this}static{this.storedDecorationIDs=new xn}static{this.query=null}constructor(e,t,n,r,i,a,o,s){this.toUnhook=new P,this.workerRequestTokenId=0,this.workerRequestCompleted=!1,this.workerRequestValue=new xn,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=void 0,this.runDelayer=this.toUnhook.add(new Lt(50)),this.editor=e,this.providers=t,this.multiDocumentProviders=n,this.codeEditorService=a,this.textModelService=i,this.configurationService=o,this.logService=s,this._hasWordHighlights=th.bindTo(r),this._ignorePositionChangeEvent=!1,this.occurrencesHighlightEnablement=this.editor.getOption(90),this.occurrencesHighlightDelay=this.configurationService.getValue(`editor.occurrencesHighlightDelay`),this.model=this.editor.getModel(),this.toUnhook.add(e.onDidChangeCursorPosition(e=>{this._ignorePositionChangeEvent||this.occurrencesHighlightEnablement!==`off`&&this.runDelayer.trigger(()=>{this._onPositionChanged(e)}).catch(Hi)})),this.toUnhook.add(e.onDidFocusEditorText(e=>{this.occurrencesHighlightEnablement!==`off`&&(this.workerRequest||this.runDelayer.trigger(()=>{this._run()}).catch(Hi))})),this.toUnhook.add(e.onDidChangeModelContent(e=>{kt(this.model.uri,`output`)||this._stopAll()})),this.toUnhook.add(e.onDidChangeModel(e=>{!e.newModelUrl&&e.oldModelUrl?this._stopSingular():Q.query&&this._run()})),this.toUnhook.add(e.onDidChangeConfiguration(e=>{let t=this.editor.getOption(90);if(this.occurrencesHighlightEnablement!==t)switch(this.occurrencesHighlightEnablement=t,t){case`off`:this._stopAll();break;case`singleFile`:this._stopAll(Q.query?.modelInfo?.modelURI);break;case`multiFile`:Q.query&&this._run(!0);break;default:console.warn(`Unknown occurrencesHighlight setting value:`,t);break}})),this.toUnhook.add(this.configurationService.onDidChangeConfiguration(e=>{if(e.affectsConfiguration(`editor.occurrencesHighlightDelay`)){let e=o.getValue(`editor.occurrencesHighlightDelay`);this.occurrencesHighlightDelay!==e&&(this.occurrencesHighlightDelay=e)}})),this.toUnhook.add(e.onDidBlurEditorWidget(()=>{let e=this.codeEditorService.getFocusedCodeEditor();e?e.getModel()?.uri.scheme===ma.vscodeNotebookCell&&this.editor.getModel()?.uri.scheme!==ma.vscodeNotebookCell&&this._stopAll():this._stopAll()})),this.decorations=this.editor.createDecorationsCollection(),this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=void 0,Q.query&&this._run()}hasDecorations(){return this.decorations.length>0}restore(e){this.occurrencesHighlightEnablement!==`off`&&(this.runDelayer.cancel(),this.runDelayer.trigger(()=>{this._run(!1,e)}).catch(Hi))}stop(){this.occurrencesHighlightEnablement!==`off`&&this._stopAll()}_getSortedHighlights(){return this.decorations.getRanges().sort(_.compareRangesUsingStarts)}moveNext(){let e=this._getSortedHighlights(),t=(e.findIndex(e=>e.containsPosition(this.editor.getPosition()))+1)%e.length,n=e[t];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(n.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(n);let r=this._getWord();r&&at(`${this.editor.getModel().getLineContent(n.startLineNumber)}, ${t+1} of ${e.length} for '${r.word}'`)}finally{this._ignorePositionChangeEvent=!1}}moveBack(){let e=this._getSortedHighlights(),t=(e.findIndex(e=>e.containsPosition(this.editor.getPosition()))-1+e.length)%e.length,n=e[t];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(n.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(n);let r=this._getWord();r&&at(`${this.editor.getModel().getLineContent(n.startLineNumber)}, ${t+1} of ${e.length} for '${r.word}'`)}finally{this._ignorePositionChangeEvent=!1}}_removeSingleDecorations(){if(!this.editor.hasModel())return;let e=Q.storedDecorationIDs.get(this.editor.getModel().uri);e&&(this.editor.removeDecorations(e),Q.storedDecorationIDs.delete(this.editor.getModel().uri),this.decorations.length>0&&(this.decorations.clear(),this._hasWordHighlights.set(!1)))}_removeAllDecorations(e){let t=this.codeEditorService.listCodeEditors(),n=[];for(let r of t){if(!r.hasModel()||Kn(r.getModel().uri,e))continue;let t=Q.storedDecorationIDs.get(r.getModel().uri);if(!t)continue;r.removeDecorations(t),n.push(r.getModel().uri);let i=uh.get(r);i?.wordHighlighter&&i.wordHighlighter.decorations.length>0&&(i.wordHighlighter.decorations.clear(),i.wordHighlighter.workerRequest=null,i.wordHighlighter._hasWordHighlights.set(!1))}for(let e of n)Q.storedDecorationIDs.delete(e)}_stopSingular(){this._removeSingleDecorations(),this.editor.hasTextFocus()&&(this.editor.getModel()?.uri.scheme!==ma.vscodeNotebookCell&&Q.query?.modelInfo?.modelURI.scheme!==ma.vscodeNotebookCell?(Q.query=null,this._run()):Q.query?.modelInfo&&(Q.query.modelInfo=null)),this.renderDecorationsTimer!==void 0&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=void 0),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||=(this.workerRequestTokenId++,!0)}_stopAll(e){this._removeAllDecorations(e),this.renderDecorationsTimer!==void 0&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=void 0),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||=(this.workerRequestTokenId++,!0)}_onPositionChanged(e){if(this.occurrencesHighlightEnablement===`off`){this._stopAll();return}if(e.source!==`api`&&e.reason!==3){this._stopAll();return}this._run()}_getWord(){let e=this.editor.getSelection(),t=e.startLineNumber,n=e.startColumn;return this.model.isDisposed()?null:this.model.getWordAtPosition({lineNumber:t,column:n})}getOtherModelsToHighlight(e){if(!e)return[];if(e.uri.scheme===ma.vscodeNotebookCell){let t=[],n=this.codeEditorService.listCodeEditors();for(let r of n){let n=r.getModel();n&&n!==e&&n.uri.scheme===ma.vscodeNotebookCell&&t.push(n)}return t}let t=[],n=this.codeEditorService.listCodeEditors();for(let r of n){if(!Br(r))continue;let n=r.getModel();n&&e===n.modified&&t.push(n.modified)}if(t.length)return t;if(this.occurrencesHighlightEnablement===`singleFile`)return[];for(let r of n){let n=r.getModel();n&&n!==e&&t.push(n)}return t}async _run(e,t){if(this.editor.hasTextFocus()){let e=this.editor.getSelection();if(!e||e.startLineNumber!==e.endLineNumber){Q.query=null,this._stopAll();return}let t=e.startColumn,n=e.endColumn,r=this._getWord();if(!r||r.startColumn>t||r.endColumn<n){Q.query=null,this._stopAll();return}Q.query={modelInfo:{modelURI:this.model.uri,selection:e}}}else if(!Q.query){this._stopAll();return}if(this.lastCursorPositionChangeTime=new Date().getTime(),Kn(this.editor.getModel().uri,Q.query.modelInfo?.modelURI)){if(!e){let e=this.decorations.getRanges();for(let t of e)if(t.containsPosition(this.editor.getPosition()))return}this._stopAll(e?this.model.uri:void 0);let n=++this.workerRequestTokenId;this.workerRequestCompleted=!1;let r=this.getOtherModelsToHighlight(this.editor.getModel());if(!Q.query||!Q.query.modelInfo)return;let i=await this.textModelService.createModelReference(Q.query.modelInfo.modelURI);try{this.workerRequest=this.computeWithModel(i.object.textEditorModel,Q.query.modelInfo.selection,r),this.workerRequest?.result.then(e=>{n===this.workerRequestTokenId&&(this.workerRequestCompleted=!0,this.workerRequestValue=e||[],this._beginRenderDecorations(t??this.occurrencesHighlightDelay))},Hi)}catch(e){this.logService.error(`Unexpected error during occurrence request. Log: `,e)}finally{i.dispose()}}else if(this.model.uri.scheme===ma.vscodeNotebookCell){let e=++this.workerRequestTokenId;if(this.workerRequestCompleted=!1,!Q.query||!Q.query.modelInfo)return;let n=await this.textModelService.createModelReference(Q.query.modelInfo.modelURI);try{this.workerRequest=this.computeWithModel(n.object.textEditorModel,Q.query.modelInfo.selection,[this.model]),this.workerRequest?.result.then(n=>{e===this.workerRequestTokenId&&(this.workerRequestCompleted=!0,this.workerRequestValue=n||[],this._beginRenderDecorations(t??this.occurrencesHighlightDelay))},Hi)}catch(e){this.logService.error(`Unexpected error during occurrence request. Log: `,e)}finally{n.dispose()}}}computeWithModel(e,t,n){return n.length?ch(this.multiDocumentProviders,e,t,this.editor.getOption(148),n):sh(this.providers,e,t,this.editor.getOption(148))}_beginRenderDecorations(e){let t=new Date().getTime(),n=this.lastCursorPositionChangeTime+e;t>=n?(this.renderDecorationsTimer=void 0,this.renderDecorations()):this.renderDecorationsTimer=setTimeout(()=>{this.renderDecorations()},n-t)}renderDecorations(){this.renderDecorationsTimer=void 0;let e=this.codeEditorService.listCodeEditors();for(let t of e){let e=uh.get(t);if(!e)continue;let n=[],r=t.getModel()?.uri;if(r&&this.workerRequestValue.has(r)){let i=Q.storedDecorationIDs.get(r),a=this.workerRequestValue.get(r);if(a)for(let e of a)e.range&&n.push({range:e.range,options:mf(e.kind)});let o=[];t.changeDecorations(e=>{o=e.deltaDecorations(i??[],n)}),Q.storedDecorationIDs=Q.storedDecorationIDs.set(r,o),n.length>0&&(e.wordHighlighter?.decorations.set(n),e.wordHighlighter?._hasWordHighlights.set(!0))}}this.workerRequest=null}dispose(){this._stopSingular(),this.toUnhook.dispose()}};lh=Q=Qm([$m(4,Ce),$m(5,Ei),$m(6,Ie),$m(7,Mi)],lh);var uh=class extends B{static{eh=this}static{this.ID=`editor.contrib.wordHighlighter`}static get(e){return e.getContribution(eh.ID)}constructor(e,t,n,r,i,a,o){super(),this._wordHighlighter=null;let s=()=>{e.hasModel()&&!e.getModel().isTooLargeForTokenization()&&e.getModel().uri.scheme!==ma.accessibleView&&(this._wordHighlighter=new lh(e,n.documentHighlightProvider,n.multiDocumentHighlightProvider,t,i,r,a,o))};this._register(e.onDidChangeModel(e=>{this._wordHighlighter&&=(!e.newModelUrl&&e.oldModelUrl?.scheme!==ma.vscodeNotebookCell&&this.wordHighlighter?.stop(),this._wordHighlighter.dispose(),null),s()})),s()}get wordHighlighter(){return this._wordHighlighter}saveViewState(){return!!(this._wordHighlighter&&this._wordHighlighter.hasDecorations())}moveNext(){this._wordHighlighter?.moveNext()}moveBack(){this._wordHighlighter?.moveBack()}restoreViewState(e){this._wordHighlighter&&e&&this._wordHighlighter.restore(250)}dispose(){this._wordHighlighter&&=(this._wordHighlighter.dispose(),null),super.dispose()}};uh=eh=Qm([$m(1,w),$m(2,j),$m(3,Ei),$m(4,Ce),$m(5,Ie),$m(6,Mi)],uh);var dh=class extends b{constructor(e,t){super(t),this._isNext=e}run(e,t){let n=uh.get(t);n&&(this._isNext?n.moveNext():n.moveBack())}},fh=class extends dh{constructor(){super(!0,{id:`editor.action.wordHighlight.next`,label:S(1624,`Go to Next Symbol Highlight`),precondition:th,kbOpts:{kbExpr:x.editorTextFocus,primary:65,weight:100}})}},ph=class extends dh{constructor(){super(!1,{id:`editor.action.wordHighlight.prev`,label:S(1625,`Go to Previous Symbol Highlight`),precondition:th,kbOpts:{kbExpr:x.editorTextFocus,primary:1089,weight:100}})}},mh=class extends b{constructor(){super({id:`editor.action.wordHighlight.trigger`,label:S(1626,`Trigger Symbol Highlight`),precondition:void 0,kbOpts:{kbExpr:x.editorTextFocus,primary:0,weight:100}})}run(e,t){let n=uh.get(t);n&&n.restoreViewState(!0)}};bt(uh.ID,uh,0),A(fh),A(ph),A(mh),Pt(Zm);var hh=class extends Je{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode,this._wordNavigationType=e.wordNavigationType}runEditorCommand(e,t,n){if(!t.hasModel())return;let r=ha(t.getOption(148),t.getOption(147)),i=t.getModel(),a=t.getSelections(),o=a.length>1,s=a.map(e=>{let t=new T(e.positionLineNumber,e.positionColumn),n=this._move(r,i,t,this._wordNavigationType,o);return this._moveTo(e,n,this._inSelectionMode)});if(i.pushStackElement(),t._getViewModel().setCursorStates(`moveWordCommand`,3,s.map(e=>ci.fromModelSelection(e))),s.length===1){let e=new T(s[0].positionLineNumber,s[0].positionColumn);t.revealPosition(e,0)}}_moveTo(e,t,n){return n?new y(e.selectionStartLineNumber,e.selectionStartColumn,t.lineNumber,t.column):new y(t.lineNumber,t.column,t.lineNumber,t.column)}},gh=class extends hh{_move(e,t,n,r,i){return Jn.moveWordLeft(e,t,n,r,i)}},_h=class extends hh{_move(e,t,n,r,i){return Jn.moveWordRight(e,t,n,r)}},vh=class extends gh{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:`cursorWordStartLeft`,precondition:void 0})}},yh=class extends gh{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:`cursorWordEndLeft`,precondition:void 0})}},bh=class extends gh{constructor(){super({inSelectionMode:!1,wordNavigationType:1,id:`cursorWordLeft`,precondition:void 0,kbOpts:{kbExpr:C.and(x.textInputFocus,C.and(ae,a)?.negate()),primary:2063,mac:{primary:527},weight:100}})}},xh=class extends gh{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:`cursorWordStartLeftSelect`,precondition:void 0})}},Sh=class extends gh{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:`cursorWordEndLeftSelect`,precondition:void 0})}},Ch=class extends gh{constructor(){super({inSelectionMode:!0,wordNavigationType:1,id:`cursorWordLeftSelect`,precondition:void 0,kbOpts:{kbExpr:C.and(x.textInputFocus,C.and(ae,a)?.negate()),primary:3087,mac:{primary:1551},weight:100}})}},wh=class extends gh{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:`cursorWordAccessibilityLeft`,precondition:void 0})}_move(e,t,n,r,i){return super._move(ha(Te.wordSeparators.defaultValue,e.intlSegmenterLocales),t,n,r,i)}},Th=class extends gh{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:`cursorWordAccessibilityLeftSelect`,precondition:void 0})}_move(e,t,n,r,i){return super._move(ha(Te.wordSeparators.defaultValue,e.intlSegmenterLocales),t,n,r,i)}},Eh=class extends _h{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:`cursorWordStartRight`,precondition:void 0})}},Dh=class extends _h{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:`cursorWordEndRight`,precondition:void 0,kbOpts:{kbExpr:C.and(x.textInputFocus,C.and(ae,a)?.negate()),primary:2065,mac:{primary:529},weight:100}})}},Oh=class extends _h{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:`cursorWordRight`,precondition:void 0})}},kh=class extends _h{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:`cursorWordStartRightSelect`,precondition:void 0})}},Ah=class extends _h{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:`cursorWordEndRightSelect`,precondition:void 0,kbOpts:{kbExpr:C.and(x.textInputFocus,C.and(ae,a)?.negate()),primary:3089,mac:{primary:1553},weight:100}})}},jh=class extends _h{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:`cursorWordRightSelect`,precondition:void 0})}},Mh=class extends _h{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:`cursorWordAccessibilityRight`,precondition:void 0})}_move(e,t,n,r,i){return super._move(ha(Te.wordSeparators.defaultValue,e.intlSegmenterLocales),t,n,r,i)}},Nh=class extends _h{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:`cursorWordAccessibilityRightSelect`,precondition:void 0})}_move(e,t,n,r,i){return super._move(ha(Te.wordSeparators.defaultValue,e.intlSegmenterLocales),t,n,r,i)}},Ph=class extends Je{constructor(e){super({canTriggerInlineEdits:!0,...e}),this._whitespaceHeuristics=e.whitespaceHeuristics,this._wordNavigationType=e.wordNavigationType}runEditorCommand(e,t,n){let r=e?.get(zt);if(!t.hasModel()||!r)return;let i=ha(t.getOption(148),t.getOption(147)),a=t.getModel(),o=t.getSelections(),s=t.getOption(10),c=t.getOption(15),l=r.getLanguageConfiguration(a.getLanguageId()).getAutoClosingPairs(),u=t._getViewModel(),d=o.map(e=>new Ai(this._delete({wordSeparators:i,model:a,selection:e,whitespaceHeuristics:this._whitespaceHeuristics,autoClosingDelete:t.getOption(13),autoClosingBrackets:s,autoClosingQuotes:c,autoClosingPairs:l,autoClosedCharacters:u.getCursorAutoClosedCharacters()},this._wordNavigationType),``));t.pushUndoStop(),t.executeCommands(this.id,d),t.pushUndoStop()}},Fh=class extends Ph{_delete(e,t){return Jn.deleteWordLeft(e,t)||new _(1,1,1,1)}},Ih=class extends Ph{_delete(e,t){let n=Jn.deleteWordRight(e,t);if(n)return n;let r=e.model.getLineCount(),i=e.model.getLineMaxColumn(r);return new _(r,i,r,i)}},Lh=class extends Fh{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:`deleteWordStartLeft`,precondition:x.writable})}},Rh=class extends Fh{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:`deleteWordEndLeft`,precondition:x.writable})}},zh=class extends Fh{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:`deleteWordLeft`,precondition:x.writable,kbOpts:{kbExpr:x.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}},Bh=class extends Ih{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:`deleteWordStartRight`,precondition:x.writable})}},Vh=class extends Ih{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:`deleteWordEndRight`,precondition:x.writable})}},Hh=class extends Ih{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:`deleteWordRight`,precondition:x.writable,kbOpts:{kbExpr:x.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}},Uh=class extends b{constructor(){super({id:`deleteInsideWord`,precondition:x.writable,label:S(1628,`Delete Word`),metadata:{description:S(1629,`Delete the word at the cursor`),args:[{name:`args`,schema:{type:`object`,properties:{onlyWord:{type:`boolean`,default:!1,description:L(1627,`Delete only the word and leave surrounding whitespace`)}}}}]}})}run(e,t,n){if(!t.hasModel())return;let r=!!(n&&typeof n==`object`&&n.onlyWord),i=ha(t.getOption(148),t.getOption(147)),a=t.getModel(),o=t.getSelections().map(e=>new Ai(Jn.deleteInsideWord(i,a,e,r),``));t.pushUndoStop(),t.executeCommands(this.id,o),t.pushUndoStop()}};M(new vh),M(new yh),M(new bh),M(new xh),M(new Sh),M(new Ch),M(new Eh),M(new Dh),M(new Oh),M(new kh),M(new Ah),M(new jh),M(new wh),M(new Th),M(new Mh),M(new Nh),M(new Lh),M(new Rh),M(new zh),M(new Bh),M(new Vh),M(new Hh),A(Uh);var Wh=class extends Ph{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:`deleteWordPartLeft`,precondition:x.writable,kbOpts:{kbExpr:x.textInputFocus,primary:0,mac:{primary:769},weight:100}})}_delete(e,t){return Bi.deleteWordPartLeft(e)||new _(1,1,1,1)}},Gh=class extends Ph{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:`deleteWordPartRight`,precondition:x.writable,kbOpts:{kbExpr:x.textInputFocus,primary:0,mac:{primary:788},weight:100}})}_delete(e,t){let n=Bi.deleteWordPartRight(e);if(n)return n;let r=e.model.getLineCount(),i=e.model.getLineMaxColumn(r);return new _(r,i,r,i)}},Kh=class extends hh{_move(e,t,n,r,i){return Bi.moveWordPartLeft(e,t,n,i)}},qh=class extends Kh{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:`cursorWordPartLeft`,precondition:void 0,kbOpts:{kbExpr:x.textInputFocus,primary:0,mac:{primary:783},weight:100}})}};Le.registerCommandAlias(`cursorWordPartStartLeft`,`cursorWordPartLeft`);var Jh=class extends Kh{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:`cursorWordPartLeftSelect`,precondition:void 0,kbOpts:{kbExpr:x.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}};Le.registerCommandAlias(`cursorWordPartStartLeftSelect`,`cursorWordPartLeftSelect`);var Yh=class extends hh{_move(e,t,n,r,i){return Bi.moveWordPartRight(e,t,n)}},Xh=class extends Yh{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:`cursorWordPartRight`,precondition:void 0,kbOpts:{kbExpr:x.textInputFocus,primary:0,mac:{primary:785},weight:100}})}},Zh=class extends Yh{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:`cursorWordPartRightSelect`,precondition:void 0,kbOpts:{kbExpr:x.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}};M(new Wh),M(new Gh),M(new qh),M(new Jh),M(new Xh),M(new Zh);function Qh(e){let t=new Map;for(let n of e)t.set(n,(t.get(n)??0)+1);return t}var $h=class e{constructor(){this.chunkCount=0,this.chunkOccurrences=new Map,this.documents=new Map}calculateScores(e,t){let n=this.computeEmbedding(e),r=new Map,i=[];for(let[e,a]of this.documents){if(t.isCancellationRequested)return[];for(let t of a.chunks){let a=this.computeSimilarityScore(t,n,r);a>0&&i.push({key:e,score:a})}}return i}static termFrequencies(t){return Qh(e.splitTerms(t))}static*splitTerms(e){let t=e=>e.toLowerCase();for(let[n]of e.matchAll(/\b\p{Letter}[\p{Letter}\d]{2,}\b/gu)){yield t(n);let e=n.replace(/([a-z])([A-Z])/g,`$1 $2`).split(/\s+/g);if(e.length>1)for(let n of e)n.length>2&&/\p{Letter}{3,}/gu.test(n)&&(yield t(n))}}updateDocuments(t){for(let{key:e}of t)this.deleteDocument(e);for(let n of t){let t=[];for(let r of n.textChunks){let n=e.termFrequencies(r);for(let e of n.keys())this.chunkOccurrences.set(e,(this.chunkOccurrences.get(e)??0)+1);t.push({text:r,tf:n})}this.chunkCount+=t.length,this.documents.set(n.key,{chunks:t})}return this}deleteDocument(e){let t=this.documents.get(e);if(t){this.documents.delete(e),this.chunkCount-=t.chunks.length;for(let e of t.chunks)for(let t of e.tf.keys()){let e=this.chunkOccurrences.get(t);if(typeof e==`number`){let n=e-1;n<=0?this.chunkOccurrences.delete(t):this.chunkOccurrences.set(t,n)}}}}computeSimilarityScore(e,t,n){let r=0;for(let[i,a]of Object.entries(t)){let t=e.tf.get(i);if(!t)continue;let o=n.get(i);typeof o!=`number`&&(o=this.computeIdf(i),n.set(i,o));let s=t*o;r+=s*a}return r}computeEmbedding(t){let n=e.termFrequencies(t);return this.computeTfidf(n)}computeIdf(e){let t=this.chunkOccurrences.get(e)??0;return t>0?Math.log((this.chunkCount+1)/t):0}computeTfidf(e){let t=Object.create(null);for(let[n,r]of e){let e=this.computeIdf(n);e>0&&(t[n]=r*e)}return t}};function eg(e){let t=e.slice(0);t.sort((e,t)=>t.score-e.score);let n=t[0]?.score??0;if(n>0)for(let e of t)e.score/=n;return t}var tg;(function(e){e[e.NO_ACTION=0]=`NO_ACTION`,e[e.CLOSE_PICKER=1]=`CLOSE_PICKER`,e[e.REFRESH_PICKER=2]=`REFRESH_PICKER`,e[e.REMOVE_ITEM=3]=`REMOVE_ITEM`})(tg||={});function ng(e){let t=e;return Array.isArray(t.items)}function rg(e){let t=e;return!!t.picks&&t.additionalPicks instanceof Promise}var ig=class extends B{constructor(e,t){super(),this.prefix=e,this.options=t}provide(e,t,n){let r=new P;e.canAcceptInBackground=!!this.options?.canAcceptInBackground,e.matchOnLabel=e.matchOnDescription=e.matchOnDetail=e.sortByLabel=!1;let i,a=r.add(new gi),o=async()=>{i?.dispose(!0),e.busy=!1;let r=a.value=new P;i=r.add(new Ct(t));let o=i.token,s=e.value.substring(this.prefix.length);this.options?.shouldSkipTrimPickFilter||(s=s.trim());let c=this._getPicks(s,r,o,n),l=(t,n)=>{let r,i;if(ng(t)?(r=t.items,i=t.active):r=t,r.length===0){if(n)return!1;(s.length>0||e.hideInput)&&this.options?.noResultsPick&&(r=Ee(this.options.noResultsPick)?[this.options.noResultsPick(s)]:[this.options.noResultsPick])}return e.items=r,i&&(e.activeItems=[i]),!0},u=async t=>{let n=!1,r=!1;await Promise.all([(async()=>{typeof t.mergeDelay==`number`&&(await Et(t.mergeDelay),o.isCancellationRequested)||r||(n=l(t.picks,!0))})(),(async()=>{e.busy=!0;try{let r=await t.additionalPicks;if(o.isCancellationRequested)return;let i,a;ng(t.picks)?(i=t.picks.items,a=t.picks.active):i=t.picks;let s,c;if(ng(r)?(s=r.items,c=r.active):s=r,s.length>0||!n){let t;if(!a&&!c){let n=e.activeItems[0];n&&i.indexOf(n)!==-1&&(t=n)}l({items:[...i,...s],active:a||c||t})}}finally{o.isCancellationRequested||(e.busy=!1),r=!0}})()])};if(c!==null)if(rg(c))await u(c);else if(!(c instanceof Promise))l(c);else{e.busy=!0;try{let e=await c;if(o.isCancellationRequested)return;rg(e)?await u(e):l(e)}finally{o.isCancellationRequested||(e.busy=!1)}}};r.add(e.onDidChangeValue(()=>o())),o(),r.add(e.onDidAccept(t=>{if(n?.handleAccept){t.inBackground||e.hide(),n.handleAccept?.(e.activeItems[0],t.inBackground);return}let[r]=e.selectedItems;if(typeof r?.accept==`function`){if(na(e.keyMods)&&r.attach){r.attach(e.keyMods,t);return}t.inBackground||e.hide(),r.accept(e.keyMods,t)}}));let s=async(n,r)=>{if(typeof r.trigger!=`function`)return;let i=r.buttons?.indexOf(n)??-1;if(i>=0){let n=r.trigger(i,e.keyMods),a=typeof n==`number`?n:await n;if(t.isCancellationRequested)return;switch(a){case tg.NO_ACTION:break;case tg.CLOSE_PICKER:e.hide();break;case tg.REFRESH_PICKER:o();break;case tg.REMOVE_ITEM:{let t=e.items.indexOf(r);if(t!==-1){let n=e.items.slice(),r=n.splice(t,1),i=e.activeItems.filter(e=>e!==r[0]),a=e.keepScrollPosition;e.keepScrollPosition=!0,e.items=n,i&&(e.activeItems=i),e.keepScrollPosition=a}break}}}};return r.add(e.onDidTriggerItemButton(({button:e,item:t})=>s(e,t))),r.add(e.onDidTriggerSeparatorButton(({button:e,separator:t})=>s(e,t))),r}},ag=Object.freeze({View:S(1692,`View`),Help:S(1693,`Help`),Test:S(1694,`Test`),File:S(1695,`File`),Preferences:S(1696,`Preferences`),Developer:S(1697,`Developer`)}),og=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},sg=function(e,t){return function(n,r){t(n,r,e)}},cg,$,lg=class extends ig{static{cg=this}static{this.PREFIX=`>`}static{this.TFIDF_THRESHOLD=.5}static{this.TFIDF_MAX_RESULTS=5}static{this.WORD_FILTER=Be(qe,wi)}constructor(e,t,n,r,i,a){super(cg.PREFIX,e),this.keybindingService=n,this.commandService=r,this.telemetryService=i,this.dialogService=a,this.commandsHistory=this._register(t.createInstance(ug)),this.options=e}async _getPicks(e,t,n,r){let i=await this.getCommandPicks(n);if(n.isCancellationRequested)return[];let a=ya(()=>{let t=new $h;return t.updateDocuments(i.map(e=>({key:e.commandId,textChunks:[this.getTfIdfChunk(e)]}))),eg(t.calculateScores(e,n)).filter(e=>e.score>cg.TFIDF_THRESHOLD).slice(0,cg.TFIDF_MAX_RESULTS)}),o=[];for(let t of i){let r=cg.WORD_FILTER(e,t.label)??void 0,i;if(t.commandAlias&&(i=cg.WORD_FILTER(e,t.commandAlias)??void 0),r||i)t.highlights={label:r,detail:this.options.showAlias?i:void 0},o.push(t);else if(e===t.commandId)o.push(t);else if(e.length>=3){let e=a();if(n.isCancellationRequested)return[];let r=e.find(e=>e.key===t.commandId);r&&(t.tfIdfScore=r.score,o.push(t))}}let s=new Map;for(let e of o){let t=s.get(e.label);t?(e.description=e.commandId,t.description=t.commandId):s.set(e.label,e)}o.sort((e,t)=>{if(e.tfIdfScore&&t.tfIdfScore)return e.tfIdfScore===t.tfIdfScore?e.label.localeCompare(t.label):t.tfIdfScore-e.tfIdfScore;if(e.tfIdfScore)return 1;if(t.tfIdfScore)return-1;let n=this.commandsHistory.peek(e.commandId),r=this.commandsHistory.peek(t.commandId);if(n&&r)return n>r?-1:1;if(n)return-1;if(r)return 1;if(this.options.suggestedCommandIds){let n=this.options.suggestedCommandIds.has(e.commandId),r=this.options.suggestedCommandIds.has(t.commandId);if(n&&r)return 0;if(n)return-1;if(r)return 1}let i=e.commandCategory===ag.Developer.value,a=t.commandCategory===ag.Developer.value;return i&&!a?1:!i&&a?-1:e.label.localeCompare(t.label)});let c=[],l=!1,u=!0,d=!!this.options.suggestedCommandIds;for(let e=0;e<o.length;e++){let t=o[e],n=!!this.commandsHistory.peek(t.commandId);e===0&&n&&(c.push({type:`separator`,label:L(1803,`recently used`)}),l=!0),u&&t.tfIdfScore!==void 0&&(c.push({type:`separator`,label:L(1804,`similar commands`)}),u=!1),d&&t.tfIdfScore===void 0&&!n&&this.options.suggestedCommandIds?.has(t.commandId)&&(c.push({type:`separator`,label:L(1805,`commonly used`)}),l=!0,d=!1),l&&t.tfIdfScore===void 0&&!n&&!this.options.suggestedCommandIds?.has(t.commandId)&&(c.push({type:`separator`,label:L(1806,`other commands`)}),l=!1),c.push(this.toCommandPick(t,r,n))}return this.hasAdditionalCommandPicks(e,n)?{picks:c,additionalPicks:(async()=>{let t=await this.getAdditionalCommandPicks(i,o,e,n);if(n.isCancellationRequested)return[];let a=t.map(e=>this.toCommandPick(e,r));return u&&a[0]?.type!==`separator`&&a.unshift({type:`separator`,label:L(1807,`similar commands`)}),a})()}:c}toCommandPick(e,t,n=!1){if(e.type===`separator`)return e;let r=e.tooltip??e.commandDescription?.value,i=this.keybindingService.lookupKeybinding(e.commandId),a=i?L(1808,`{0}, {1}`,e.label,i.getAriaLabel()):e.label,o=e.buttons||[],s=n?[...o,{iconClass:O.asClassName(G.close),tooltip:L(1809,`Remove from Recently Used`)}]:e.buttons;return{...e,tooltip:r,ariaLabel:a,detail:this.options.showAlias&&e.commandAlias!==e.label?e.commandAlias:void 0,keybinding:i,buttons:s,accept:async()=>{this.commandsHistory.push(e.commandId),this.telemetryService.publicLog2(`workbenchActionExecuted`,{id:e.commandId,from:t?.from??`quick open`});try{e.args?.length?await this.commandService.executeCommand(e.commandId,...e.args):await this.commandService.executeCommand(e.commandId)}catch(t){Zn(t)||this.dialogService.error(L(1810,`Command '{0}' resulted in an error`,e.label),Co(t))}},trigger:n?(t,n)=>t===o.length?(this.commandsHistory.remove(e.commandId),tg.REMOVE_ITEM):e.trigger?e.trigger(t,n):tg.NO_ACTION:e.trigger}}getTfIdfChunk({label:e,commandAlias:t,commandDescription:n}){let r=e;return t&&t!==e&&(r+=` - ${t}`),n&&n.value!==e&&(r+=` - ${n.value===n.original?n.value:`${n.value} (${n.original})`}`),r}};lg=cg=og([sg(1,Ue),sg(2,sa),sg(3,tt),sg(4,In),sg(5,xa)],lg);var ug=class extends B{static{$=this}static{this.DEFAULT_COMMANDS_HISTORY_LENGTH=50}static{this.PREF_KEY_CACHE=`commandPalette.mru.cache`}static{this.PREF_KEY_COUNTER=`commandPalette.mru.counter`}static{this.counter=1}static{this.hasChanges=!1}constructor(e,t,n){super(),this.storageService=e,this.configurationService=t,this.logService=n,this.configuredCommandsHistoryLength=0,this.updateConfiguration(),this.load(),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(e=>this.updateConfiguration(e))),this._register(this.storageService.onWillSaveState(e=>{e.reason===Gn.SHUTDOWN&&this.saveState()}))}updateConfiguration(e){e&&!e.affectsConfiguration(`workbench.commandPalette.history`)||(this.configuredCommandsHistoryLength=$.getConfiguredCommandHistoryLength(this.configurationService),$.cache&&$.cache.limit!==this.configuredCommandsHistoryLength&&($.cache.limit=this.configuredCommandsHistoryLength,$.hasChanges=!0))}load(){let e=this.storageService.get($.PREF_KEY_CACHE,0),t;if(e)try{t=JSON.parse(e)}catch(e){this.logService.error(`[CommandsHistory] invalid data: ${e}`)}let n=$.cache=new mr(this.configuredCommandsHistoryLength,1);if(t){let e;e=t.usesLRU?t.entries:t.entries.sort((e,t)=>e.value-t.value),e.forEach(e=>n.set(e.key,e.value))}$.counter=this.storageService.getNumber($.PREF_KEY_COUNTER,0,$.counter)}push(e){$.cache&&($.cache.set(e,$.counter++),$.hasChanges=!0)}peek(e){return $.cache?.peek(e)}remove(e){$.cache&&($.cache.delete(e),$.hasChanges=!0)}saveState(){if(!$.cache||!$.hasChanges)return;let e={usesLRU:!0,entries:[]};$.cache.forEach((t,n)=>e.entries.push({key:n,value:t})),this.storageService.store($.PREF_KEY_CACHE,JSON.stringify(e),0,0),this.storageService.store($.PREF_KEY_COUNTER,$.counter,0,0),$.hasChanges=!1}static getConfiguredCommandHistoryLength(e){let t=e.getValue().workbench?.commandPalette?.history;return typeof t==`number`?t:$.DEFAULT_COMMANDS_HISTORY_LENGTH}};ug=$=og([sg(0,Ur),sg(1,Ie),sg(2,Mi)],ug);var dg=class extends lg{constructor(e,t,n,r,i,a){super(e,t,n,r,i,a)}getCodeEditorCommandPicks(){let e=this.activeTextEditorControl;if(!e)return[];let t=[];for(let n of e.getSupportedActions()){let e;n.metadata?.description&&(e=Sn(n.metadata.description)?n.metadata.description:{original:n.metadata.description,value:n.metadata.description}),t.push({commandId:n.id,commandAlias:n.alias,commandDescription:e,label:Ea(n.label)||n.id})}return t}},fg=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},pg=function(e,t){return function(n,r){t(n,r,e)}},mg=class extends dg{get activeTextEditorControl(){return this.codeEditorService.getFocusedCodeEditor()??void 0}constructor(e,t,n,r,i,a){super({showAlias:!1},e,n,r,i,a),this.codeEditorService=t}async getCommandPicks(){return this.getCodeEditorCommandPicks()}hasAdditionalCommandPicks(){return!1}async getAdditionalCommandPicks(){return[]}};mg=fg([pg(0,Ue),pg(1,Ei),pg(2,sa),pg(3,tt),pg(4,In),pg(5,xa)],mg);var hg=class e extends b{static{this.ID=`editor.action.quickCommand`}constructor(){super({id:e.ID,label:jn.quickCommandActionLabel,alias:`Command Palette`,precondition:void 0,kbOpts:{kbExpr:x.focus,primary:59,weight:100},contextMenuOpts:{group:`z_commands`,order:1}})}run(e){e.get(or).quickAccess.show(mg.PREFIX)}};A(hg),Nr.as($i.Quickaccess).registerQuickAccessProvider({ctor:mg,prefix:mg.PREFIX,helpEntries:[{description:jn.quickCommandHelp,commandId:hg.ID}]});var gg=class{constructor(e){this.options=e,this.rangeHighlightDecorationId=void 0}provide(e,t,n){let r=new P;e.canAcceptInBackground=!!this.options?.canAcceptInBackground,e.matchOnLabel=e.matchOnDescription=e.matchOnDetail=e.sortByLabel=!1;let i=r.add(new gi);return i.value=this.doProvide(e,t,n),r.add(this.onDidActiveTextEditorControlChange(()=>{i.value=void 0,i.value=this.doProvide(e,t)})),r}doProvide(e,t,n){let r=new P,i=this.activeTextEditorControl;if(i&&this.canProvideWithTextEditor(i)){let a={editor:i},o=Ni(i);if(o){let e=i.saveViewState()??void 0;r.add(o.onDidChangeCursorPosition(()=>{e=i.saveViewState()??void 0})),a.restoreViewState=()=>{e&&i===this.activeTextEditorControl&&i.restoreViewState(e)},r.add(ya(t.onCancellationRequested)(()=>a.restoreViewState?.()))}r.add(yn(()=>this.clearDecorations(i))),r.add(this.provideWithTextEditor(a,e,t,n))}else r.add(this.provideWithoutTextEditor(e,t));return r}canProvideWithTextEditor(e){return!0}gotoLocation({editor:e},t){e.setSelection(t.range,`code.jump`),e.revealRangeInCenter(t.range,0),t.preserveFocus||e.focus();let n=this.getModel(e);if(n){let e=n.getLineContent(t.range.startLineNumber);me(L(1381,`Line {0}, column {1}: {2}`,t.range.startLineNumber,t.range.startColumn,e))}}getModel(e){return Br(e)?e.getModel()?.modified:e.getModel()}addDecorations(e,t){e.changeDecorations(e=>{let n=[];this.rangeHighlightDecorationId&&=(n.push(this.rangeHighlightDecorationId.overviewRulerDecorationId),n.push(this.rangeHighlightDecorationId.rangeHighlightId),void 0);let r=[{range:t,options:{description:`quick-access-range-highlight`,className:`rangeHighlight`,isWholeLine:!0}},{range:t,options:{description:`quick-access-range-highlight-overview`,overviewRuler:{color:k(et),position:ra.Full}}}],[i,a]=e.deltaDecorations(n,r);this.rangeHighlightDecorationId={rangeHighlightId:i,overviewRulerDecorationId:a}})}clearDecorations(e){let t=this.rangeHighlightDecorationId;t&&(e.changeDecorations(e=>{e.deltaDecorations([t.overviewRulerDecorationId,t.rangeHighlightId],[])}),this.rangeHighlightDecorationId=void 0)}},_g=class e extends gg{static{this.GO_TO_LINE_PREFIX=`:`}static{this.GO_TO_OFFSET_PREFIX=`::`}static{this.ZERO_BASED_OFFSET_STORAGE_KEY=`gotoLine.useZeroBasedOffset`}constructor(){super({canAcceptInBackground:!0})}get useZeroBasedOffset(){return this.storageService.getBoolean(e.ZERO_BASED_OFFSET_STORAGE_KEY,-1,!1)}set useZeroBasedOffset(t){this.storageService.store(e.ZERO_BASED_OFFSET_STORAGE_KEY,t,-1,0)}provideWithoutTextEditor(e){let t=L(1382,`Open a text editor first to go to a line or an offset.`);return e.items=[{label:t}],e.ariaLabel=t,B.None}provideWithTextEditor(t,n,r){let i=t.editor,a=new P;n.ariaLabel=L(1383,`Go to line. Type a line number, optionally followed by colon and column number.`),a.add(n.onDidAccept(e=>{let[r]=n.selectedItems;if(r){if(!r.lineNumber)return;this.gotoLocation(t,{range:this.toRange(r.lineNumber,r.column),keyMods:n.keyMods,preserveFocus:e.inBackground}),e.inBackground||n.hide()}}));let o={iconClass:O.asClassName(G.indexZero),tooltip:L(1384,`Toggle Zero-Based Offset`),location:br.Input,toggle:{checked:this.useZeroBasedOffset}},s=()=>{let t=n.value.trim().substring(e.GO_TO_LINE_PREFIX.length),{inOffsetMode:r,lineNumber:a,column:s,label:c}=this.parsePosition(i,t);if(n.buttons=r?[o]:[],n.items=[{lineNumber:a,column:s,label:c,ariaLabel:a?L(1385,`Go to line {0}, column {1}. Press Enter to navigate.`,a,s||1):c}],!a){this.clearDecorations(i);return}let l=this.toRange(a,s);i.revealRangeInCenter(l,0),this.addDecorations(i,l)};a.add(n.onDidTriggerButton(e=>{e===o&&(this.useZeroBasedOffset=e.toggle?.checked??!this.useZeroBasedOffset,s())})),s(),a.add(n.onDidChangeValue(()=>s()));let c=Ni(i);return c&&c.getOptions().get(76).renderType===2&&(c.updateOptions({lineNumbers:`on`}),a.add(yn(()=>c.updateOptions({lineNumbers:`relative`})))),a}toRange(e=1,t=1){return{startLineNumber:e,startColumn:t,endLineNumber:e,endColumn:t}}parsePosition(e,t){let n=this.getModel(e);if(!n)return{label:L(1386,`Open a text editor first to go to a line or an offset.`)};if(t.startsWith(`:`)){let e=parseInt(t.substring(1),10),r=n.getValueLength();if(isNaN(e))return{inOffsetMode:!0,label:this.useZeroBasedOffset?L(1387,`Type a character position to go to (from 0 to {0}).`,r-1):L(1388,`Type a character position to go to (from 1 to {0}).`,r)};{let t=e<0;this.useZeroBasedOffset||(e-=Math.sign(e)),t&&(e+=r);let i=n.getPositionAt(e),a=It.visibleColumnFromColumn(n.getLineContent(i.lineNumber),i.column,n.getOptions().tabSize)+1;return{...i,inOffsetMode:!0,label:L(1389,`Press 'Enter' to go to line {0} at column {1}.`,i.lineNumber,a)}}}else{let e=t.split(/,|:|#/),r=n.getLineCount(),i=parseInt(e[0]?.trim(),10);if(e.length<1||isNaN(i))return{label:L(1390,`Type a line number to go to (from 1 to {0}).`,r)};i=i>=0?i:r+1+i,i=Math.min(Math.max(1,i),r);let a=n.getOptions().tabSize,o=n.getLineContent(i),s=It.visibleColumnFromColumn(o,n.getLineMaxColumn(i),a)+1,c=parseInt(e[1]?.trim(),10);if(e.length<2||isNaN(c))return{lineNumber:i,column:1,label:e.length<2?L(1391,`Press 'Enter' to go to line {0} or enter colon : to add a column number.`,i):L(1392,`Press 'Enter' to go to line {0} or enter a column number (from 1 to {1}).`,i,s)};c=c>=0?c:s+c,c=Math.min(Math.max(1,c),s);let l=It.columnFromVisibleColumn(o,c-1,a);return{lineNumber:i,column:l,label:L(1393,`Press 'Enter' to go to line {0} at column {1}.`,i,c)}}}},vg=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},yg=function(e,t){return function(n,r){t(n,r,e)}},bg=class extends _g{constructor(e,t){super(),this.editorService=e,this.storageService=t,this.onDidActiveTextEditorControlChange=zi.None}get activeTextEditorControl(){return this.editorService.getFocusedCodeEditor()??void 0}};bg=vg([yg(0,Ei),yg(1,Ur)],bg);var xg=class e extends b{static{this.ID=`editor.action.gotoLine`}constructor(){super({id:e.ID,label:_a.gotoLineActionLabel,alias:`Go to Line/Column...`,precondition:void 0,kbOpts:{kbExpr:x.focus,primary:2085,mac:{primary:293},weight:100}})}run(e){e.get(or).quickAccess.show(bg.GO_TO_LINE_PREFIX)}};A(xg),Nr.as($i.Quickaccess).registerQuickAccessProvider({ctor:bg,prefix:bg.GO_TO_LINE_PREFIX,helpEntries:[{description:_a.gotoLineActionLabel,commandId:xg.ID}]});var Sg=class e extends b{static{this.ID=`editor.action.gotoOffset`}constructor(){super({id:e.ID,label:_a.gotoOffsetActionLabel,alias:`Go to Offset...`,precondition:void 0})}run(e){e.get(or).quickAccess.show(bg.GO_TO_OFFSET_PREFIX)}};A(Sg),Nr.as($i.Quickaccess).registerQuickAccessProvider({ctor:bg,prefix:bg.GO_TO_OFFSET_PREFIX,helpEntries:[{description:_a.gotoOffsetActionLabel,commandId:Sg.ID}]});var Cg=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},wg=function(e,t){return function(n,r){t(n,r,e)}},Tg,Eg=class{static{Tg=this}static{this.PREFIX=`?`}constructor(e,t,n){this.quickInputService=e,this.keybindingService=t,this.contextKeyService=n,this.registry=Nr.as($i.Quickaccess)}provide(e){let t=new P;return t.add(e.onDidAccept(()=>{let[t]=e.selectedItems;t&&this.quickInputService.quickAccess.show(t.prefix,{preserveValue:!0})})),t.add(e.onDidChangeValue(e=>{let t=this.registry.getQuickAccessProvider(e.substr(Tg.PREFIX.length),this.contextKeyService);t?.prefix&&t.prefix!==Tg.PREFIX&&this.quickInputService.quickAccess.show(t.prefix,{preserveValue:!0})})),e.items=this.getQuickAccessProviders().filter(e=>e.prefix!==Tg.PREFIX),t}getQuickAccessProviders(){return this.registry.getQuickAccessProviders(this.contextKeyService).sort((e,t)=>e.prefix.localeCompare(t.prefix)).flatMap(e=>this.createPicks(e))}createPicks(e){return e.helpEntries.map(t=>{let n=t.prefix||e.prefix,r=n||`…`;return{prefix:n,label:r,keybinding:t.commandId?this.keybindingService.lookupKeybinding(t.commandId):void 0,ariaLabel:L(1811,`{0}, {1}`,r,t.description),description:t.description}})}};Eg=Tg=Cg([wg(0,or),wg(1,sa),wg(2,w)],Eg),Nr.as($i.Quickaccess).registerQuickAccessProvider({ctor:Eg,prefix:``,helpEntries:[{description:la.helpQuickAccessActionLabel}]});