import{$n as e,Ar as t,Br as n,Cn as r,Cr as i,Dn as a,Dr as o,E as s,Fn as c,Fr as l,Ft as u,Gn as d,Gt as f,H as p,Hr as m,It as h,Jn as g,Kr as _,Mn as v,Mr as y,Mt as b,Nr as x,On as S,Qn as C,Rr as w,Sr as T,Tr as E,Ur as ee,W as te,Wn as ne,Wr as D,Wt as re,Xt as ie,Yn as ae,Zn as oe,Zr as se,_n as ce,a as le,an as ue,ar as de,bn as fe,br as pe,c as me,cn as O,ei as he,f as ge,fn as _e,gn as ve,gt as ye,ht as be,k as xe,li as Se,ln as Ce,lt as we,mr as Te,pn as Ee,pr as k,rn as De,s as Oe,sn as ke,ti as A,tr as Ae,v as j,vn as je,wn as Me,wr as Ne,xn as Pe,yn as Fe,zr as Ie}from"./BAtoIVDZ.js";import{$ as Le,$n as Re,At as ze,B as Be,Ct as Ve,Dn as He,G as Ue,I as We,Jn as Ge,Kt as Ke,L as qe,Pt as Je,Q as Ye,R as Xe,S as Ze,Sr as Qe,St as $e,T as et,Tt as tt,Yn as nt,Z as M,_t as rt,a as it,ar as at,b as ot,bn as st,c as ct,cr as lt,dt as ut,f as N,fr as dt,ft,hr as pt,i as mt,ir as ht,j as gt,k as P,l as _t,lr as vt,mn as yt,or as bt,p as xt,q as St,qn as Ct,rr as wt,sr as Tt,st as Et,t as Dt,u as Ot,ut as kt,v as At,wn as jt,wt as Mt,xt as Nt,z as F}from"./Dlh4etSR.js";import{c as Pt,t as Ft}from"./CvyGoXcM.js";import{n as It}from"./Q_pr_1vb.js";import{$t as Lt,Aa as Rt,At as zt,Bt,C as Vt,Cr as Ht,Ct as Ut,Do as Wt,Dt as Gt,En as Kt,Et as qt,Ft as Jt,Ga as Yt,Gn as I,Gt as Xt,Ht as Zt,It as Qt,Ja as $t,Jn as en,Jt as tn,Kt as nn,La as rn,Ln as an,Lt as on,Mt as sn,Nt as cn,Ot as ln,Pt as un,Qt as dn,Rt as fn,S as pn,Sr as L,St as mn,T as hn,Ut as gn,Vn as _n,Vt as vn,Wt as yn,Xt as bn,Yn as xn,Yt as Sn,Z as Cn,Zn as wn,Zt as Tn,_t as En,aa as Dn,an as On,ar as kn,b as An,bo as jn,cn as Mn,dn as Nn,en as Pn,fn as Fn,gn as In,gr as R,gt as Ln,hn as Rn,hr as zn,ht as Bn,i as Vn,in as Hn,j as Un,ja as Wn,jn as Gn,jt as Kn,k as qn,kt as Jn,l as Yn,ln as Xn,lt as Zn,m as Qn,mn as $n,mr as er,mt as tr,na as nr,nn as rr,o as ir,on as ar,or,pn as sr,pr as cr,pt as lr,qt as ur,rn as dr,rt as fr,sa as pr,sn as mr,tn as hr,tr as gr,un as _r,ut as vr,vt as yr,wa as br,wr as z,wt as xr,x as Sr,y as Cr,zt as wr}from"./BBfPXLF9.js";import{$t as Tr,D as Er,Q as Dr,Y as Or,Z as kr,Zt as Ar,bt as jr,et as Mr,it as Nr,st as Pr,tt as B,xt as Fr,yt as Ir}from"./BzB7pCds.js";import{$ as Lr,A as Rr,F as zr,I as Br,L as Vr,O as Hr,P as Ur,R as Wr,S as Gr,a as Kr,b as qr,c as Jr,f as Yr,g as Xr,h as Zr,i as Qr,k as $r,m as ei,s as ti,v as ni,w as ri,x as ii,y as ai}from"./CmxfhdyD.js";import{t as V}from"./QK2HjIkC2.js";import{a as oi,i as si,n as ci,o as li,s as ui,t as di}from"./b6ioKgKS2.js";var fi=class{constructor(e,t){this.x=e,this.y=t,this._pageCoordinatesBrand=void 0}toClientCoordinates(e){return new pi(this.x-e.scrollX,this.y-e.scrollY)}},pi=class{constructor(e,t){this.clientX=e,this.clientY=t,this._clientCoordinatesBrand=void 0}toPageCoordinates(e){return new fi(this.clientX+e.scrollX,this.clientY+e.scrollY)}},mi=class{constructor(e,t,n,r){this.x=e,this.y=t,this.width=n,this.height=r,this._editorPagePositionBrand=void 0}},hi=class{constructor(e,t){this.x=e,this.y=t,this._positionRelativeToEditorBrand=void 0}};function gi(e){let t=Ue(e);return new mi(t.left,t.top,t.width,t.height)}function _i(e,t,n){let r=t.width/e.offsetWidth,i=t.height/e.offsetHeight;return new hi((n.x-t.x)/r,(n.y-t.y)/i)}var vi=class extends Ct{constructor(e,t,n){super(M(n),e),this._editorMouseEventBrand=void 0,this.isFromPointerCapture=t,this.pos=new fi(this.posx,this.posy),this.editorPos=gi(n),this.relativePos=_i(n,this.editorPos,this.pos)}},yi=class{constructor(e){this._editorViewDomNode=e}_create(e){return new vi(e,!1,this._editorViewDomNode)}onContextMenu(e,t){return P(e,Ze.CONTEXT_MENU,e=>{t(this._create(e))})}onMouseUp(e,t){return P(e,Ze.MOUSE_UP,e=>{t(this._create(e))})}onMouseDown(e,t){return P(e,Ze.MOUSE_DOWN,e=>{t(this._create(e))})}onPointerDown(e,t){return P(e,Ze.POINTER_DOWN,e=>{t(this._create(e),e.pointerId)})}onMouseLeave(e,t){return P(e,Ze.MOUSE_LEAVE,e=>{t(this._create(e))})}onMouseMove(e,t){return P(e,Ze.MOUSE_MOVE,e=>t(this._create(e)))}},bi=class{constructor(e){this._editorViewDomNode=e}_create(e){return new vi(e,!1,this._editorViewDomNode)}onPointerUp(e,t){return P(e,`pointerup`,e=>{t(this._create(e))})}onPointerDown(e,t){return P(e,Ze.POINTER_DOWN,e=>{t(this._create(e),e.pointerId)})}onPointerLeave(e,t){return P(e,Ze.POINTER_LEAVE,e=>{t(this._create(e))})}onPointerMove(e,t){return P(e,`pointermove`,e=>t(this._create(e)))}},xi=class extends i{constructor(e){super(),this._editorViewDomNode=e,this._globalPointerMoveMonitor=this._register(new Ar),this._keydownListener=null}startMonitoring(e,t,n,r,i){this._keydownListener=gt(e.ownerDocument,`keydown`,e=>{e.toKeyCodeChord().isModifierKey()||this._globalPointerMoveMonitor.stopMonitoring(!0,e.browserEvent)},!0),this._globalPointerMoveMonitor.startMonitoring(e,t,n,e=>{r(new vi(e,!0,this._editorViewDomNode))},e=>{this._keydownListener.dispose(),i(e)})}stopMonitoring(){this._globalPointerMoveMonitor.stopMonitoring(!0)}},Si=class e{static{this._idPool=0}constructor(t){this._editor=t,this._instanceId=++e._idPool,this._counter=0,this._rules=new Ne,this._garbageCollectionScheduler=new s(()=>this.garbageCollect(),1e3)}dispose(){this._rules.dispose(),this._garbageCollectionScheduler.dispose()}createClassNameRef(e){let t=this.getOrCreateRule(e);return t.increaseRefCount(),{className:t.className,dispose:()=>{t.decreaseRefCount(),this._garbageCollectionScheduler.schedule()}}}getOrCreateRule(e){let t=this.computeUniqueKey(e),n=this._rules.get(t);if(!n){let r=this._counter++;n=new Ci(t,`dyn-rule-${this._instanceId}-${r}`,ut(this._editor.getContainerDomNode())?this._editor.getContainerDomNode():void 0,e),this._rules.set(t,n)}return n}computeUniqueKey(e){return JSON.stringify(e)}garbageCollect(){for(let e of this._rules.values())e.hasReferences()||this._rules.deleteAndDispose(e.key)}},Ci=class{constructor(e,t,n,r){this.key=e,this.className=t,this.properties=r,this._referenceCount=0,this._styleElementDisposables=new E,this._styleElement=Tr(n,void 0,this._styleElementDisposables),this._styleElement.textContent=this.getCssText(this.className,this.properties)}getCssText(e,t){let n=`.${e} {`;for(let e in t){let r=t[e],i;i=typeof r==`object`?jn(r.id):r;let a=wi(e);n+=`\n\t${a}: ${i};`}return n+=`
}`,n}dispose(){this._styleElementDisposables.dispose(),this._styleElement=void 0}increaseRefCount(){this._referenceCount++}decreaseRefCount(){this._referenceCount--}hasReferences(){return this._referenceCount>0}};function wi(e){return e.replace(/(^[A-Z])/,([e])=>e.toLowerCase()).replace(/([A-Z])/g,([e])=>`-${e.toLowerCase()}`)}var Ti=class extends i{constructor(e){super(),this._onDidChange=this._register(new k),this.onDidChange=this._onDidChange.event,this._listener=()=>this._handleChange(e,!0),this._mediaQueryList=null,this._handleChange(e,!1)}_handleChange(e,t){this._mediaQueryList?.removeEventListener(`change`,this._listener),this._mediaQueryList=e.matchMedia(`(resolution: ${e.devicePixelRatio}dppx)`),this._mediaQueryList.addEventListener(`change`,this._listener),t&&this._onDidChange.fire()}},Ei=class extends i{get value(){return this._value}constructor(e){super(),this._onDidChange=this._register(new k),this.onDidChange=this._onDidChange.event,this._value=this._getPixelRatio(e);let t=this._register(new Ti(e));this._register(t.onDidChange(()=>{this._value=this._getPixelRatio(e),this._onDidChange.fire(this._value)}))}_getPixelRatio(e){let t=document.createElement(`canvas`).getContext(`2d`);return(e.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)}},Di=new class{constructor(){this.mapWindowIdToPixelRatioMonitor=new Map}_getOrCreatePixelRatioMonitor(e){let t=Le(e),n=this.mapWindowIdToPixelRatioMonitor.get(t);return n||(n=y(new Ei(e)),this.mapWindowIdToPixelRatioMonitor.set(t,n),y(Te.once(rt)(({vscodeWindowId:e})=>{e===t&&(n?.dispose(),this.mapWindowIdToPixelRatioMonitor.delete(t))}))),n}getInstance(e){return this._getOrCreatePixelRatioMonitor(e)}},Oi={ICodeEditor:`vs.editor.ICodeEditor`,IDiffEditor:`vs.editor.IDiffEditor`},ki=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},Ai=function(e,t){return function(n,r){t(n,r,e)}},ji=class{static{this.ID=`editor.contrib.markerDecorations`}constructor(e,t){}dispose(){}};ji=ki([Ai(1,Ur)],ji),xt(ji.ID,ji,0);function H(e,t){e instanceof Mr?(e.setFontFamily(t.getMassagedFontFamily()),e.setFontWeight(t.fontWeight),e.setFontSize(t.fontSize),e.setFontFeatureSettings(t.fontFeatureSettings),e.setFontVariationSettings(t.fontVariationSettings),e.setLineHeight(t.lineHeight),e.setLetterSpacing(t.letterSpacing)):(e.style.fontFamily=t.getMassagedFontFamily(),e.style.fontWeight=t.fontWeight,e.style.fontSize=t.fontSize+`px`,e.style.fontFeatureSettings=t.fontFeatureSettings,e.style.fontVariationSettings=t.fontVariationSettings,e.style.lineHeight=t.lineHeight+`px`,e.style.letterSpacing=t.letterSpacing+`px`)}var Mi=class extends i{constructor(e,t){super(),this._onDidChange=this._register(new k),this.onDidChange=this._onDidChange.event,this._referenceDomElement=e,this._width=-1,this._height=-1,this._resizeObserver=null,this.measureReferenceDomElement(!1,t)}dispose(){this.stopObserving(),super.dispose()}getWidth(){return this._width}getHeight(){return this._height}startObserving(){if(!this._resizeObserver&&this._referenceDomElement){let e=null,t=()=>{e?this.observe({width:e.width,height:e.height}):this.observe()},n=!1,r=!1,i=()=>{if(n&&!r)try{n=!1,r=!0,t()}finally{tt(M(this._referenceDomElement),()=>{r=!1,i()})}};this._resizeObserver=new ResizeObserver(t=>{e=t&&t[0]&&t[0].contentRect?{width:t[0].contentRect.width,height:t[0].contentRect.height}:null,n=!0,i()}),this._resizeObserver.observe(this._referenceDomElement)}}stopObserving(){this._resizeObserver&&=(this._resizeObserver.disconnect(),null)}observe(e){this.measureReferenceDomElement(!0,e)}measureReferenceDomElement(e,t){let n=0,r=0;t?(n=t.width,r=t.height):this._referenceDomElement&&(n=this._referenceDomElement.clientWidth,r=this._referenceDomElement.clientHeight),n=Math.max(5,n),r=Math.max(5,r),(this._width!==n||this._height!==r)&&(this._width=n,this._height=r,e&&this._onDidChange.fire())}},Ni=class{constructor(e,t){this.chr=e,this.type=t,this.width=0}fulfill(e){this.width=e}},Pi=class e{constructor(e,t){this._bareFontInfo=e,this._requests=t,this._container=null,this._testElements=null}read(e){this._createDomElements(),e.document.body.appendChild(this._container),this._readFromDomElements(),this._container?.remove(),this._container=null,this._testElements=null}_createDomElements(){let t=document.createElement(`div`);t.style.position=`absolute`,t.style.top=`-50000px`,t.style.width=`50000px`;let n=document.createElement(`div`);H(n,this._bareFontInfo),t.appendChild(n);let r=document.createElement(`div`);H(r,this._bareFontInfo),r.style.fontWeight=`bold`,t.appendChild(r);let i=document.createElement(`div`);H(i,this._bareFontInfo),i.style.fontStyle=`italic`,t.appendChild(i);let a=[];for(let t of this._requests){let o;t.type===0&&(o=n),t.type===2&&(o=r),t.type===1&&(o=i),o.appendChild(document.createElement(`br`));let s=document.createElement(`span`);e._render(s,t),o.appendChild(s),a.push(s)}this._container=t,this._testElements=a}static _render(e,t){if(t.chr===` `){let t=`\xA0`;for(let e=0;e<8;e++)t+=t;e.innerText=t}else{let n=t.chr;for(let e=0;e<8;e++)n+=n;e.textContent=n}}_readFromDomElements(){for(let e=0,t=this._requests.length;e<t;e++){let t=this._requests[e],n=this._testElements[e];t.fulfill(n.offsetWidth/256)}}};function Fi(e,t,n){new Pi(t,n).read(e)}var Ii=class extends i{constructor(){super(...arguments),this._cache=new Map,this._evictUntrustedReadingsTimeout=-1,this._onDidChange=this._register(new k),this.onDidChange=this._onDidChange.event}dispose(){this._evictUntrustedReadingsTimeout!==-1&&(clearTimeout(this._evictUntrustedReadingsTimeout),this._evictUntrustedReadingsTimeout=-1),super.dispose()}clearAllFontInfos(){this._cache.clear(),this._onDidChange.fire()}_ensureCache(e){let t=Le(e),n=this._cache.get(t);return n||(n=new Li,this._cache.set(t,n)),n}_writeToCache(e,t,n){this._ensureCache(e).put(t,n),!n.isTrusted&&this._evictUntrustedReadingsTimeout===-1&&(this._evictUntrustedReadingsTimeout=e.setTimeout(()=>{this._evictUntrustedReadingsTimeout=-1,this._evictUntrustedReadings(e)},5e3))}_evictUntrustedReadings(e){let t=this._ensureCache(e),n=t.getValues(),r=!1;for(let e of n)e.isTrusted||(r=!0,t.remove(e));r&&this._onDidChange.fire()}readFontInfo(e,t){let n=this._ensureCache(e);if(!n.has(t)){let n=this._actualReadFontInfo(e,t);(n.typicalHalfwidthCharacterWidth<=2||n.typicalFullwidthCharacterWidth<=2||n.spaceWidth<=2||n.maxDigitWidth<=2)&&(n=new Vr({pixelRatio:Di.getInstance(e).value,fontFamily:n.fontFamily,fontWeight:n.fontWeight,fontSize:n.fontSize,fontFeatureSettings:n.fontFeatureSettings,fontVariationSettings:n.fontVariationSettings,lineHeight:n.lineHeight,letterSpacing:n.letterSpacing,isMonospace:n.isMonospace,typicalHalfwidthCharacterWidth:Math.max(n.typicalHalfwidthCharacterWidth,5),typicalFullwidthCharacterWidth:Math.max(n.typicalFullwidthCharacterWidth,5),canUseHalfwidthRightwardsArrow:n.canUseHalfwidthRightwardsArrow,spaceWidth:Math.max(n.spaceWidth,5),middotWidth:Math.max(n.middotWidth,5),wsmiddotWidth:Math.max(n.wsmiddotWidth,5),maxDigitWidth:Math.max(n.maxDigitWidth,5)},!1)),this._writeToCache(e,t,n)}return n.get(t)}_createRequest(e,t,n,r){let i=new Ni(e,t);return n.push(i),r?.push(i),i}_actualReadFontInfo(e,t){let n=[],r=[],i=this._createRequest(`n`,0,n,r),a=this._createRequest(`m`,0,n,null),o=this._createRequest(` `,0,n,r),s=this._createRequest(`0`,0,n,r),c=this._createRequest(`1`,0,n,r),l=this._createRequest(`2`,0,n,r),u=this._createRequest(`3`,0,n,r),d=this._createRequest(`4`,0,n,r),f=this._createRequest(`5`,0,n,r),p=this._createRequest(`6`,0,n,r),m=this._createRequest(`7`,0,n,r),h=this._createRequest(`8`,0,n,r),g=this._createRequest(`9`,0,n,r),_=this._createRequest(`→`,0,n,r),v=this._createRequest(`→`,0,n,null),y=this._createRequest(`·`,0,n,r),b=this._createRequest(`⸱`,0,n,null),x=`|/-_ilm%`;for(let e=0;e<8;e++)this._createRequest(x.charAt(e),0,n,r),this._createRequest(x.charAt(e),1,n,r),this._createRequest(x.charAt(e),2,n,r);Fi(e,t,n);let S=Math.max(s.width,c.width,l.width,u.width,d.width,f.width,p.width,m.width,h.width,g.width),C=t.fontFeatureSettings===qr.OFF,w=r[0].width;for(let e=1,t=r.length;C&&e<t;e++){let t=w-r[e].width;if(t<-.001||t>.001){C=!1;break}}let T=!0;return C&&v.width!==w&&(T=!1),v.width>_.width&&(T=!1),new Vr({pixelRatio:Di.getInstance(e).value,fontFamily:t.fontFamily,fontWeight:t.fontWeight,fontSize:t.fontSize,fontFeatureSettings:t.fontFeatureSettings,fontVariationSettings:t.fontVariationSettings,lineHeight:t.lineHeight,letterSpacing:t.letterSpacing,isMonospace:C,typicalHalfwidthCharacterWidth:i.width,typicalFullwidthCharacterWidth:a.width,canUseHalfwidthRightwardsArrow:T,spaceWidth:o.width,middotWidth:y.width,wsmiddotWidth:b.width,maxDigitWidth:S},!0)}},Li=class{constructor(){this._keys=Object.create(null),this._values=Object.create(null)}has(e){let t=e.getId();return!!this._values[t]}get(e){let t=e.getId();return this._values[t]}put(e,t){let n=e.getId();this._keys[n]=e,this._values[n]=t}remove(e){let t=e.getId();delete this._keys[t],delete this._values[t]}getValues(){return Object.keys(this._keys).map(e=>this._values[e])}},Ri=new Ii,zi=class e{static{this.items=[]}constructor(e,t){this.key=e,this.migrate=t}apply(t){let n=e._read(t,this.key);this.migrate(n,n=>e._read(t,n),(n,r)=>e._write(t,n,r))}static _read(e,t){if(e==null)return;let n=t.indexOf(`.`);if(n>=0){let r=t.substring(0,n);return this._read(e[r],t.substring(n+1))}return e[t]}static _write(e,t,n){let r=t.indexOf(`.`);if(r>=0){let i=t.substring(0,r);e[i]=e[i]||{},this._write(e[i],t.substring(r+1),n);return}e[t]=n}};function Bi(e,t){zi.items.push(new zi(e,t))}function U(e,t){Bi(e,(n,r,i)=>{if(n!==void 0){for(let[r,a]of t)if(n===r){i(e,a);return}}})}function Vi(e){zi.items.forEach(t=>t.apply(e))}U(`wordWrap`,[[!0,`on`],[!1,`off`]]),U(`lineNumbers`,[[!0,`on`],[!1,`off`]]),U(`cursorBlinking`,[[`visible`,`solid`]]),U(`renderWhitespace`,[[!0,`boundary`],[!1,`none`]]),U(`renderLineHighlight`,[[!0,`line`],[!1,`none`]]),U(`acceptSuggestionOnEnter`,[[!0,`on`],[!1,`off`]]),U(`tabCompletion`,[[!1,`off`],[!0,`onlySnippets`]]),U(`hover`,[[!0,{enabled:!0}],[!1,{enabled:!1}]]),U(`parameterHints`,[[!0,{enabled:!0}],[!1,{enabled:!1}]]),U(`autoIndent`,[[!1,`advanced`],[!0,`full`]]),U(`matchBrackets`,[[!0,`always`],[!1,`never`]]),U(`renderFinalNewline`,[[!0,`on`],[!1,`off`]]),U(`cursorSmoothCaretAnimation`,[[!0,`on`],[!1,`off`]]),U(`occurrencesHighlight`,[[!0,`singleFile`],[!1,`off`]]),U(`wordBasedSuggestions`,[[!0,`matchingDocuments`],[!1,`off`]]),U(`defaultColorDecorators`,[[!0,`auto`],[!1,`never`]]),U(`minimap.autohide`,[[!0,`mouseover`],[!1,`none`]]),Bi(`autoClosingBrackets`,(e,t,n)=>{e===!1&&(n(`autoClosingBrackets`,`never`),t(`autoClosingQuotes`)===void 0&&n(`autoClosingQuotes`,`never`),t(`autoSurround`)===void 0&&n(`autoSurround`,`never`))}),Bi(`renderIndentGuides`,(e,t,n)=>{e!==void 0&&(n(`renderIndentGuides`,void 0),t(`guides.indentation`)===void 0&&n(`guides.indentation`,!!e))}),Bi(`highlightActiveIndentGuide`,(e,t,n)=>{e!==void 0&&(n(`highlightActiveIndentGuide`,void 0),t(`guides.highlightActiveIndentation`)===void 0&&n(`guides.highlightActiveIndentation`,!!e))});var Hi={method:`showMethods`,function:`showFunctions`,constructor:`showConstructors`,deprecated:`showDeprecated`,field:`showFields`,variable:`showVariables`,class:`showClasses`,struct:`showStructs`,interface:`showInterfaces`,module:`showModules`,property:`showProperties`,event:`showEvents`,operator:`showOperators`,unit:`showUnits`,value:`showValues`,constant:`showConstants`,enum:`showEnums`,enumMember:`showEnumMembers`,keyword:`showKeywords`,text:`showWords`,color:`showColors`,file:`showFiles`,reference:`showReferences`,folder:`showFolders`,typeParameter:`showTypeParameters`,snippet:`showSnippets`};Bi(`suggest.filteredTypes`,(e,t,n)=>{if(e&&typeof e==`object`){for(let r of Object.entries(Hi))e[r[0]]===!1&&t(`suggest.${r[1]}`)===void 0&&n(`suggest.${r[1]}`,!1);n(`suggest.filteredTypes`,void 0)}}),Bi(`quickSuggestions`,(e,t,n)=>{if(typeof e==`boolean`){let t=e?`on`:`off`;n(`quickSuggestions`,{comments:t,strings:t,other:t})}}),Bi(`experimental.stickyScroll.enabled`,(e,t,n)=>{typeof e==`boolean`&&(n(`experimental.stickyScroll.enabled`,void 0),t(`stickyScroll.enabled`)===void 0&&n(`stickyScroll.enabled`,e))}),Bi(`experimental.stickyScroll.maxLineCount`,(e,t,n)=>{typeof e==`number`&&(n(`experimental.stickyScroll.maxLineCount`,void 0),t(`stickyScroll.maxLineCount`)===void 0&&n(`stickyScroll.maxLineCount`,e))}),Bi(`editor.experimentalEditContextEnabled`,(e,t,n)=>{typeof e==`boolean`&&(n(`editor.experimentalEditContextEnabled`,void 0),t(`editor.editContext`)===void 0&&n(`editor.editContext`,e))}),Bi(`codeActionsOnSave`,(e,t,n)=>{if(e&&typeof e==`object`){let t=!1,r={};for(let n of Object.entries(e))typeof n[1]==`boolean`?(t=!0,r[n[0]]=n[1]?`explicit`:`never`):r[n[0]]=n[1];t&&n(`codeActionsOnSave`,r)}}),Bi(`codeActionWidget.includeNearbyQuickfixes`,(e,t,n)=>{typeof e==`boolean`&&(n(`codeActionWidget.includeNearbyQuickfixes`,void 0),t(`codeActionWidget.includeNearbyQuickFixes`)===void 0&&n(`codeActionWidget.includeNearbyQuickFixes`,e))}),Bi(`lightbulb.enabled`,(e,t,n)=>{typeof e==`boolean`&&n(`lightbulb.enabled`,e?void 0:`off`)}),Bi(`inlineSuggest.edits.codeShifting`,(e,t,n)=>{typeof e==`boolean`&&(n(`inlineSuggest.edits.codeShifting`,void 0),n(`inlineSuggest.edits.allowCodeShifting`,e?`always`:`never`))});var Ui=new class{constructor(){this._tabFocus=!1,this._onDidChangeTabFocus=new k,this.onDidChangeTabFocus=this._onDidChangeTabFocus.event}getTabFocusMode(){return this._tabFocus}setTabFocusMode(e){this._tabFocus=e,this._onDidChangeTabFocus.fire(this._tabFocus)}};function Wi(e,t,n){let r=e.get(58),i=e.get(62),a=e.get(61),o=e.get(60),s=e.get(63),c=e.get(75),l=e.get(72);return zr._create(r,i,a,o,s,c,l,t,n)}function Gi(e,t,n=!1){let r=Gr.fontFamily.validate(e.fontFamily),i=Gr.fontWeight.validate(e.fontWeight),a=Gr.fontSize.validate(e.fontSize),o=Gr.fontLigatures2.validate(e.fontLigatures),s=Gr.fontVariations.validate(e.fontVariations),c=Gr.lineHeight.validate(e.lineHeight),l=Gr.letterSpacing.validate(e.letterSpacing);return zr._create(r,i,a,o,s,c,l,t,n)}var Ki=new class{constructor(){this._inputMode=`insert`,this._onDidChangeInputMode=new k,this.onDidChangeInputMode=this._onDidChangeInputMode.event}getInputMode(){return this._inputMode}},qi=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},Ji=function(e,t){return function(n,r){t(n,r,e)}},Yi=class extends i{constructor(e,t,n,r,i){super(),this._accessibilityService=i,this._onDidChange=this._register(new k),this.onDidChange=this._onDidChange.event,this._onDidChangeFast=this._register(new k),this.onDidChangeFast=this._onDidChangeFast.event,this._isDominatedByLongLines=!1,this._viewLineCount=1,this._lineNumbersDigitCount=1,this._reservedHeight=0,this._glyphMarginDecorationLaneCount=1,this._computeOptionsMemory=new ni,this.isSimpleWidget=e,this.contextMenuId=t,this._containerObserver=this._register(new Mi(r,n.dimension)),this._targetWindowId=M(r).vscodeWindowId,this._rawOptions=ta(n),this._validatedOptions=ea.validateOptions(this._rawOptions),this.options=this._computeOptions(),this.options.get(19)&&this._containerObserver.startObserving(),this._register(Wr.onDidChangeZoomLevel(()=>this._recomputeOptions())),this._register(Ui.onDidChangeTabFocus(()=>this._recomputeOptions())),this._register(this._containerObserver.onDidChange(()=>this._recomputeOptions())),this._register(Ri.onDidChange(()=>this._recomputeOptions())),this._register(Di.getInstance(M(r)).onDidChange(()=>this._recomputeOptions())),this._register(this._accessibilityService.onDidChangeScreenReaderOptimized(()=>this._recomputeOptions())),this._register(Ki.onDidChangeInputMode(()=>this._recomputeOptions()))}_recomputeOptions(){let e=this._computeOptions(),t=ea.checkEquals(this.options,e);t!==null&&(this.options=e,this._onDidChangeFast.fire(t),this._onDidChange.fire(t))}_computeOptions(){let e=this._readEnvConfiguration(),t=Wi(this._validatedOptions,e.pixelRatio,this.isSimpleWidget),n=this._readFontInfo(t),r={memory:this._computeOptionsMemory,outerWidth:e.outerWidth,outerHeight:e.outerHeight-this._reservedHeight,fontInfo:n,extraEditorClassName:e.extraEditorClassName,isDominatedByLongLines:this._isDominatedByLongLines,viewLineCount:this._viewLineCount,lineNumbersDigitCount:this._lineNumbersDigitCount,emptySelectionClipboard:e.emptySelectionClipboard,pixelRatio:e.pixelRatio,tabFocusMode:this._validatedOptions.get(164)||Ui.getTabFocusMode(),inputMode:Ki.getInputMode(),accessibilitySupport:e.accessibilitySupport,glyphMarginDecorationLaneCount:this._glyphMarginDecorationLaneCount,editContextSupported:e.editContextSupported};return ea.computeOptions(this._validatedOptions,r)}_readEnvConfiguration(){return{extraEditorClassName:Zi(),outerWidth:this._containerObserver.getWidth(),outerHeight:this._containerObserver.getHeight(),emptySelectionClipboard:Tt||at,pixelRatio:Di.getInstance(Ye(this._targetWindowId,!0).window).value,editContextSupported:typeof globalThis.EditContext==`function`,accessibilitySupport:this._accessibilityService.isScreenReaderOptimized()?2:this._accessibilityService.getAccessibilitySupport()}}_readFontInfo(e){return Ri.readFontInfo(Ye(this._targetWindowId,!0).window,e)}getRawOptions(){return this._rawOptions}updateOptions(e){let t=ta(e);ea.applyUpdate(this._rawOptions,t)&&(this._validatedOptions=ea.validateOptions(this._rawOptions),this._recomputeOptions())}observeContainer(e){this._containerObserver.observe(e)}setIsDominatedByLongLines(e){this._isDominatedByLongLines!==e&&(this._isDominatedByLongLines=e,this._recomputeOptions())}setModelLineCount(e){let t=Xi(e);this._lineNumbersDigitCount!==t&&(this._lineNumbersDigitCount=t,this._recomputeOptions())}setViewLineCount(e){this._viewLineCount!==e&&(this._viewLineCount=e,this._recomputeOptions())}setReservedHeight(e){this._reservedHeight!==e&&(this._reservedHeight=e,this._recomputeOptions())}setGlyphMarginDecorationLaneCount(e){this._glyphMarginDecorationLaneCount!==e&&(this._glyphMarginDecorationLaneCount=e,this._recomputeOptions())}};Yi=qi([Ji(4,Lr)],Yi);function Xi(e){let t=0;for(;e;)e=Math.floor(e/10),t++;return t||1}function Zi(){let e=``;return bt||lt?(e+=`no-minimap-shadow `,e+=`enable-user-select `):e+=`no-user-select `,oe&&(e+=`mac `),e}var Qi=class{constructor(){this._values=[]}_read(e){return this._values[e]}get(e){return this._values[e]}_write(e,t){this._values[e]=t}},$i=class{constructor(){this._values=[]}_read(e){if(e>=this._values.length)throw Error(`Cannot read uninitialized value`);return this._values[e]}get(e){return this._read(e)}_write(e,t){this._values[e]=t}},ea=class e{static validateOptions(e){let t=new Qi;for(let n of Hr){let r=n.name===`_never_`?void 0:e[n.name];t._write(n.id,n.validate(r))}return t}static computeOptions(e,t){let n=new $i;for(let r of Hr)n._write(r.id,r.compute(t,n,e._read(r.id)));return n}static _deepEquals(t,n){if(typeof t!=`object`||typeof n!=`object`||!t||!n)return t===n;if(Array.isArray(t)||Array.isArray(n))return Array.isArray(t)&&Array.isArray(n)?He(t,n):!1;if(Object.keys(t).length!==Object.keys(n).length)return!1;for(let r in t)if(!e._deepEquals(t[r],n[r]))return!1;return!0}static checkEquals(t,n){let r=[],i=!1;for(let a of Hr){let o=!e._deepEquals(t._read(a.id),n._read(a.id));r[a.id]=o,o&&(i=!0)}return i?new ai(r):null}static applyUpdate(e,t){let n=!1;for(let r of Hr)if(t.hasOwnProperty(r.name)){let i=r.applyUpdate(e[r.name],t[r.name]);e[r.name]=i.newValue,n||=i.didChange}return n}};function ta(e){let t=gr(e);return Vi(t),t}var na;(function(e){let t={total:0,min:Number.MAX_VALUE,max:0},n={...t},r={...t},i={...t},a=0,o={keydown:0,input:0,render:0};function s(){_(),performance.mark(`inputlatency/start`),performance.mark(`keydown/start`),o.keydown=1,queueMicrotask(c)}e.onKeyDown=s;function c(){o.keydown===1&&(performance.mark(`keydown/end`),o.keydown=2)}function l(){performance.mark(`input/start`),o.input=1,g()}e.onBeforeInput=l;function u(){o.input===0&&l(),queueMicrotask(d)}e.onInput=u;function d(){o.input===1&&(performance.mark(`input/end`),o.input=2)}function f(){_()}e.onKeyUp=f;function p(){_()}e.onSelectionChange=p;function m(){o.keydown===2&&o.input===2&&o.render===0&&(performance.mark(`render/start`),o.render=1,queueMicrotask(h),g())}e.onRenderStart=m;function h(){o.render===1&&(performance.mark(`render/end`),o.render=2)}function g(){setTimeout(_)}function _(){o.keydown===2&&o.input===2&&o.render===2&&(performance.mark(`inputlatency/end`),performance.measure(`keydown`,`keydown/start`,`keydown/end`),performance.measure(`input`,`input/start`,`input/end`),performance.measure(`render`,`render/start`,`render/end`),performance.measure(`inputlatency`,`inputlatency/start`,`inputlatency/end`),v(`keydown`,t),v(`input`,n),v(`render`,r),v(`inputlatency`,i),a++,y())}function v(e,t){let n=performance.getEntriesByName(e)[0].duration;t.total+=n,t.min=Math.min(t.min,n),t.max=Math.max(t.max,n)}function y(){performance.clearMarks(`keydown/start`),performance.clearMarks(`keydown/end`),performance.clearMarks(`input/start`),performance.clearMarks(`input/end`),performance.clearMarks(`render/start`),performance.clearMarks(`render/end`),performance.clearMarks(`inputlatency/start`),performance.clearMarks(`inputlatency/end`),performance.clearMeasures(`keydown`),performance.clearMeasures(`input`),performance.clearMeasures(`render`),performance.clearMeasures(`inputlatency`),o.keydown=0,o.input=0,o.render=0}function b(){if(a===0)return;let e={keydown:x(t),input:x(n),render:x(r),total:x(i),sampleCount:a};return S(t),S(n),S(r),S(i),a=0,e}e.getAndClearMeasurements=b;function x(e){return{average:e.total/a,max:e.max,min:e.min}}function S(e){e.total=0,e.min=Number.MAX_VALUE,e.max=0}})(na||={});var ra=class extends i{constructor(){super(),this._shouldRender=!0}shouldRender(){return this._shouldRender}forceShouldRender(){this._shouldRender=!0}setShouldRender(){this._shouldRender=!0}onDidRender(){this._shouldRender=!1}onCompositionStart(e){return!1}onCompositionEnd(e){return!1}onConfigurationChanged(e){return!1}onCursorStateChanged(e){return!1}onDecorationsChanged(e){return!1}onFlushed(e){return!1}onFocusChanged(e){return!1}onLanguageConfigurationChanged(e){return!1}onLineMappingChanged(e){return!1}onLinesChanged(e){return!1}onLinesDeleted(e){return!1}onLinesInserted(e){return!1}onRevealRangeRequest(e){return!1}onScrollChanged(e){return!1}onThemeChanged(e){return!1}onTokensChanged(e){return!1}onTokensColorsChanged(e){return!1}onZonesChanged(e){return!1}handleEvents(e){let t=!1;for(let n=0,r=e.length;n<r;n++){let r=e[n];switch(r.type){case 0:this.onCompositionStart(r)&&(t=!0);break;case 1:this.onCompositionEnd(r)&&(t=!0);break;case 2:this.onConfigurationChanged(r)&&(t=!0);break;case 3:this.onCursorStateChanged(r)&&(t=!0);break;case 4:this.onDecorationsChanged(r)&&(t=!0);break;case 5:this.onFlushed(r)&&(t=!0);break;case 6:this.onFocusChanged(r)&&(t=!0);break;case 7:this.onLanguageConfigurationChanged(r)&&(t=!0);break;case 8:this.onLineMappingChanged(r)&&(t=!0);break;case 9:this.onLinesChanged(r)&&(t=!0);break;case 10:this.onLinesDeleted(r)&&(t=!0);break;case 11:this.onLinesInserted(r)&&(t=!0);break;case 12:this.onRevealRangeRequest(r)&&(t=!0);break;case 13:this.onScrollChanged(r)&&(t=!0);break;case 15:this.onTokensChanged(r)&&(t=!0);break;case 14:this.onThemeChanged(r)&&(t=!0);break;case 16:this.onTokensColorsChanged(r)&&(t=!0);break;case 17:this.onZonesChanged(r)&&(t=!0);break;default:console.info(`View received unknown event: `),console.info(r)}}t&&(this._shouldRender=!0)}},ia=class extends ra{constructor(e){super(),this._context=e,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}},aa=class{static write(e,t){e.setAttribute(`data-mprt`,String(t))}static read(e){let t=e.getAttribute(`data-mprt`);return t===null?0:parseInt(t,10)}static collect(e,t){let n=[],r=0;for(;e&&e!==e.ownerDocument.body&&e!==t;)e.nodeType===e.ELEMENT_NODE&&(n[r++]=this.read(e)),e=e.parentElement;let i=new Uint8Array(r);for(let e=0;e<r;e++)i[e]=n[r-e-1];return i}},oa=class{constructor(e,t){this._restrictedRenderingContextBrand=void 0,this._viewLayout=e,this.viewportData=t,this.scrollWidth=this._viewLayout.getScrollWidth(),this.scrollHeight=this._viewLayout.getScrollHeight(),this.visibleRange=this.viewportData.visibleRange,this.bigNumbersDelta=this.viewportData.bigNumbersDelta;let n=this._viewLayout.getCurrentViewport();this.scrollTop=n.top,this.scrollLeft=n.left,this.viewportWidth=n.width,this.viewportHeight=n.height}getScrolledTopFromAbsoluteTop(e){return e-this.scrollTop}getVerticalOffsetForLineNumber(e,t){return this._viewLayout.getVerticalOffsetForLineNumber(e,t)}getVerticalOffsetAfterLineNumber(e,t){return this._viewLayout.getVerticalOffsetAfterLineNumber(e,t)}getLineHeightForLineNumber(e){return this._viewLayout.getLineHeightForLineNumber(e)}getDecorationsInViewport(){return this.viewportData.getDecorationsInViewport()}},sa=class extends oa{constructor(e,t,n,r){super(e,t),this._renderingContextBrand=void 0,this._viewLines=n,this._viewLinesGpu=r}linesVisibleRangesForRange(e,t){let n=this._viewLines.linesVisibleRangesForRange(e,t);if(!this._viewLinesGpu)return n??null;let r=this._viewLinesGpu.linesVisibleRangesForRange(e,t);return n?r?n.concat(r).sort((e,t)=>e.lineNumber-t.lineNumber):n:r}visibleRangeForPosition(e){return this._viewLines.visibleRangeForPosition(e)??this._viewLinesGpu?.visibleRangeForPosition(e)??null}},ca=class{constructor(e,t,n,r){this.outsideRenderedLine=e,this.lineNumber=t,this.ranges=n,this.continuesOnNextLine=r}},la=class e{static from(t){let n=Array(t.length);for(let r=0,i=t.length;r<i;r++){let i=t[r];n[r]=new e(i.left,i.width)}return n}constructor(e,t){this._horizontalRangeBrand=void 0,this.left=Math.round(e),this.width=Math.round(t)}toString(){return`[${this.left},${this.width}]`}},ua=class{constructor(e,t){this._floatHorizontalRangeBrand=void 0,this.left=e,this.width=t}toString(){return`[${this.left},${this.width}]`}static compare(e,t){return e.left-t.left}},da=class{constructor(e,t){this.outsideRenderedLine=e,this.originalLeft=t,this.left=Math.round(this.originalLeft)}},fa=class{constructor(e,t){this.outsideRenderedLine=e,this.ranges=t}},pa=class{static _createRange(){return this._handyReadyRange||=document.createRange(),this._handyReadyRange}static _detachRange(e,t){e.selectNodeContents(t)}static _readClientRects(e,t,n,r,i){let a=this._createRange();try{return a.setStart(e,t),a.setEnd(n,r),a.getClientRects()}catch{return null}finally{this._detachRange(a,i)}}static _mergeAdjacentRanges(e){if(e.length===1)return e;e.sort(ua.compare);let t=[],n=0,r=e[0];for(let i=1,a=e.length;i<a;i++){let a=e[i];r.left+r.width+.9>=a.left?r.width=Math.max(r.width,a.left+a.width-r.left):(t[n++]=r,r=a)}return t[n++]=r,t}static _createHorizontalRangesFromClientRects(e,t,n){if(!e||e.length===0)return null;let r=[];for(let i=0,a=e.length;i<a;i++){let a=e[i];r[i]=new ua(Math.max(0,(a.left-t)/n),a.width/n)}return this._mergeAdjacentRanges(r)}static readHorizontalRanges(e,t,n,r,i,a){let o=e.children.length-1;if(0>o)return null;if(t=Math.min(o,Math.max(0,t)),r=Math.min(o,Math.max(0,r)),t===r&&n===i&&n===0&&!e.children[t].firstChild){let n=e.children[t].getClientRects();return a.markDidDomLayout(),this._createHorizontalRangesFromClientRects(n,a.clientRectDeltaLeft,a.clientRectScale)}t!==r&&r>0&&i===0&&(r--,i=1073741824);let s=e.children[t].firstChild,c=e.children[r].firstChild;if((!s||!c)&&(!s&&n===0&&t>0&&(s=e.children[t-1].firstChild,n=1073741824),!c&&i===0&&r>0&&(c=e.children[r-1].firstChild,i=1073741824)),!s||!c)return null;n=Math.min(s.textContent.length,Math.max(0,n)),i=Math.min(c.textContent.length,Math.max(0,i));let l=this._readClientRects(s,n,c,i,a.endNode);return a.markDidDomLayout(),this._createHorizontalRangesFromClientRects(l,a.clientRectDeltaLeft,a.clientRectScale)}},ma=class e{constructor(e,t,n,r){this.startColumn=e,this.endColumn=t,this.className=n,this.type=r,this._lineDecorationBrand=void 0}static _equals(e,t){return e.startColumn===t.startColumn&&e.endColumn===t.endColumn&&e.className===t.className&&e.type===t.type}static equalsArr(t,n){let r=t.length;if(r!==n.length)return!1;for(let i=0;i<r;i++)if(!e._equals(t[i],n[i]))return!1;return!0}static extractWrapped(t,n,r){if(t.length===0)return t;let i=n+1,a=r+1,o=r-n,s=[],c=0;for(let n of t)n.endColumn<=i||n.startColumn>=a||(s[c++]=new e(Math.max(1,n.startColumn-i+1),Math.min(o+1,n.endColumn-i+1),n.className,n.type));return s}static filter(t,n,r,i){if(t.length===0)return[];let a=[],o=0;for(let s=0,c=t.length;s<c;s++){let c=t[s],l=c.range;if(l.endLineNumber<n||l.startLineNumber>n||l.isEmpty()&&(c.type===0||c.type===3))continue;let u=l.startLineNumber===n?l.startColumn:r,d=l.endLineNumber===n?l.endColumn:i;a[o++]=new e(u,d,c.inlineClassName,c.type)}return a}static _typeCompare(e,t){let n=[2,0,1,3];return n[e]-n[t]}static compare(t,n){if(t.startColumn!==n.startColumn)return t.startColumn-n.startColumn;if(t.endColumn!==n.endColumn)return t.endColumn-n.endColumn;let r=e._typeCompare(t.type,n.type);return r===0?t.className===n.className?0:t.className<n.className?-1:1:r}},ha=class{constructor(e,t,n,r){this.startOffset=e,this.endOffset=t,this.className=n,this.metadata=r}},ga=class e{constructor(){this.stopOffsets=[],this.classNames=[],this.metadata=[],this.count=0}static _metadata(e){let t=0;for(let n=0,r=e.length;n<r;n++)t|=e[n];return t}consumeLowerThan(t,n,r){for(;this.count>0&&this.stopOffsets[0]<t;){let t=0;for(;t+1<this.count&&this.stopOffsets[t]===this.stopOffsets[t+1];)t++;r.push(new ha(n,this.stopOffsets[t],this.classNames.join(` `),e._metadata(this.metadata))),n=this.stopOffsets[t]+1,this.stopOffsets.splice(0,t+1),this.classNames.splice(0,t+1),this.metadata.splice(0,t+1),this.count-=t+1}return this.count>0&&n<t&&(r.push(new ha(n,t-1,this.classNames.join(` `),e._metadata(this.metadata))),n=t),n}insert(e,t,n){if(this.count===0||this.stopOffsets[this.count-1]<=e)this.stopOffsets.push(e),this.classNames.push(t),this.metadata.push(n);else for(let r=0;r<this.count;r++)if(this.stopOffsets[r]>=e){this.stopOffsets.splice(r,0,e),this.classNames.splice(r,0,t),this.metadata.splice(r,0,n);break}this.count++}},_a=class{static normalize(e,t){if(t.length===0)return[];let n=[],r=new ga,i=0;for(let a=0,o=t.length;a<o;a++){let o=t[a],s=o.startColumn,c=o.endColumn,l=o.className,u=o.type===1?2:o.type===2?4:0;s>1&&ce(e.charCodeAt(s-2))&&s--,c>1&&ce(e.charCodeAt(c-2))&&c--;let d=s-1,f=c-2;i=r.consumeLowerThan(d,i,n),r.count===0&&(i=d),r.insert(f,l,u)}return r.consumeLowerThan(1073741824,i,n),n}},W=class{constructor(e,t,n,r){this.endIndex=e,this.type=t,this.metadata=n,this.containsRTL=r,this._linePartBrand=void 0}isWhitespace(){return!!(this.metadata&1)}isPseudoAfter(){return!!(this.metadata&4)}},va=class{get isLTR(){return!this.containsRTL&&this.textDirection!==wn.RTL}constructor(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x=!1){this.useMonospaceOptimizations=e,this.canUseHalfwidthRightwardsArrow=t,this.lineContent=n,this.continuesWithWrappedLine=r,this.isBasicASCII=i,this.containsRTL=a,this.fauxIndentLength=o,this.lineTokens=s,this.lineDecorations=c.sort(ma.compare),this.tabSize=l,this.startVisibleColumn=u,this.spaceWidth=d,this.stopRenderingLineAfter=m,this.renderWhitespace=h===`all`?4:h===`boundary`?1:h===`selection`?2:h===`trailing`?3:0,this.renderControlCharacters=g,this.fontLigatures=_,this.selectionsOnLine=v&&v.sort((e,t)=>e.start<t.start?-1:1),this.renderNewLineWhenEmpty=x,this.textDirection=y,this.verticalScrollbarSize=b,Math.abs(p-d)<Math.abs(f-d)?(this.renderSpaceWidth=p,this.renderSpaceCharCode=11825):(this.renderSpaceWidth=f,this.renderSpaceCharCode=183)}sameSelection(e){if(this.selectionsOnLine===null)return e===null;if(e===null||e.length!==this.selectionsOnLine.length)return!1;for(let t=0;t<this.selectionsOnLine.length;t++)if(!this.selectionsOnLine[t].equals(e[t]))return!1;return!0}equals(e){return this.useMonospaceOptimizations===e.useMonospaceOptimizations&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.lineContent===e.lineContent&&this.continuesWithWrappedLine===e.continuesWithWrappedLine&&this.isBasicASCII===e.isBasicASCII&&this.containsRTL===e.containsRTL&&this.fauxIndentLength===e.fauxIndentLength&&this.tabSize===e.tabSize&&this.startVisibleColumn===e.startVisibleColumn&&this.spaceWidth===e.spaceWidth&&this.renderSpaceWidth===e.renderSpaceWidth&&this.renderSpaceCharCode===e.renderSpaceCharCode&&this.stopRenderingLineAfter===e.stopRenderingLineAfter&&this.renderWhitespace===e.renderWhitespace&&this.renderControlCharacters===e.renderControlCharacters&&this.fontLigatures===e.fontLigatures&&ma.equalsArr(this.lineDecorations,e.lineDecorations)&&this.lineTokens.equals(e.lineTokens)&&this.sameSelection(e.selectionsOnLine)&&this.textDirection===e.textDirection&&this.verticalScrollbarSize===e.verticalScrollbarSize&&this.renderNewLineWhenEmpty===e.renderNewLineWhenEmpty}},ya=class{constructor(e,t){this.partIndex=e,this.charIndex=t}},ba=class e{static getPartIndex(e){return(e&4294901760)>>>16}static getCharIndex(e){return(e&65535)>>>0}constructor(e,t){this.length=e,this._data=new Uint32Array(this.length),this._horizontalOffset=new Uint32Array(this.length)}setColumnInfo(e,t,n,r){let i=(t<<16|n<<0)>>>0;this._data[e-1]=i,this._horizontalOffset[e-1]=r}getHorizontalOffset(e){return this._horizontalOffset.length===0?0:this._horizontalOffset[e-1]}charOffsetToPartData(e){return this.length===0?0:e<0?this._data[0]:e>=this.length?this._data[this.length-1]:this._data[e]}getDomPosition(t){let n=this.charOffsetToPartData(t-1);return new ya(e.getPartIndex(n),e.getCharIndex(n))}getColumn(e,t){return this.partDataToCharOffset(e.partIndex,t,e.charIndex)+1}partDataToCharOffset(t,n,r){if(this.length===0)return 0;let i=(t<<16|r<<0)>>>0,a=0,o=this.length-1;for(;a+1<o;){let e=a+o>>>1,t=this._data[e];if(t===i)return e;t>i?o=e:a=e}if(a===o)return a;let s=this._data[a],c=this._data[o];if(s===i)return a;if(c===i)return o;let l=e.getPartIndex(s),u=e.getCharIndex(s),d=e.getPartIndex(c),f;return f=l===d?e.getCharIndex(c):n,r-u<=f-r?a:o}},xa=class{constructor(e,t){this._renderLineOutputBrand=void 0,this.characterMapping=e,this.containsForeignElements=t}};function Sa(e,t){if(e.lineContent.length===0){if(e.lineDecorations.length>0){t.appendString(`<span>`);let n=0,r=0,i=0;for(let a of e.lineDecorations)(a.type===1||a.type===2)&&(t.appendString(`<span class="`),t.appendString(a.className),t.appendString(`"></span>`),a.type===1&&(i|=1,n++),a.type===2&&(i|=2,r++));t.appendString(`</span>`);let a=new ba(1,n+r);return a.setColumnInfo(1,n,0,0),new xa(a,i)}return e.renderNewLineWhenEmpty?t.appendString(`<span><span>
</span></span>`):t.appendString(`<span><span></span></span>`),new xa(new ba(0,0),0)}return Pa(Ea(e),t)}var Ca=class{constructor(e,t,n){this.characterMapping=e,this.html=t,this.containsForeignElements=n}};function wa(e){let t=new er(1e4),n=Sa(e,t);return new Ca(n.characterMapping,t.build(),n.containsForeignElements)}var Ta=class{constructor(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m){this.fontIsMonospace=e,this.canUseHalfwidthRightwardsArrow=t,this.lineContent=n,this.len=r,this.isOverflowing=i,this.overflowingCharCount=a,this.parts=o,this.containsForeignElements=s,this.fauxIndentLength=c,this.tabSize=l,this.startVisibleColumn=u,this.spaceWidth=d,this.renderSpaceCharCode=f,this.renderWhitespace=p,this.renderControlCharacters=m}};function Ea(e){let t=e.lineContent,n,r,i;e.stopRenderingLineAfter!==-1&&e.stopRenderingLineAfter<t.length?(n=!0,r=t.length-e.stopRenderingLineAfter,i=e.stopRenderingLineAfter):(n=!1,r=0,i=t.length);let a=Da(t,e.containsRTL,e.lineTokens,e.fauxIndentLength,i);e.renderControlCharacters&&!e.isBasicASCII&&(a=ja(t,a)),(e.renderWhitespace===4||e.renderWhitespace===1||e.renderWhitespace===2&&e.selectionsOnLine||e.renderWhitespace===3&&!e.continuesWithWrappedLine)&&(a=Ma(e,t,i,a));let o=0;if(e.lineDecorations.length>0){for(let t=0,n=e.lineDecorations.length;t<n;t++){let n=e.lineDecorations[t];n.type===3||n.type===1?o|=1:n.type===2&&(o|=2)}a=Na(t,i,a,e.lineDecorations)}return a=e.containsRTL?ka(t,a):Oa(t,a,!e.isBasicASCII||e.fontLigatures),new Ta(e.useMonospaceOptimizations,e.canUseHalfwidthRightwardsArrow,t,i,n,r,a,o,e.fauxIndentLength,e.tabSize,e.startVisibleColumn,e.spaceWidth,e.renderSpaceCharCode,e.renderWhitespace,e.renderControlCharacters)}function Da(e,t,n,r,i){let a=[],o=0;r>0&&(a[o++]=new W(r,``,0,!1));let s=r;for(let c=0,l=n.getCount();c<l;c++){let l=n.getEndOffset(c);if(l<=r)continue;let u=n.getClassName(c);if(l>=i){let n=t?ie(e.substring(s,i)):!1;a[o++]=new W(i,u,0,n);break}let d=t?ie(e.substring(s,l)):!1;a[o++]=new W(l,u,0,d),s=l}return a}function Oa(e,t,n){let r=0,i=[],a=0;if(n)for(let n=0,o=t.length;n<o;n++){let o=t[n],s=o.endIndex;if(r+50<s){let t=o.type,n=o.metadata,c=o.containsRTL,l=-1,u=r;for(let o=r;o<s;o++)e.charCodeAt(o)===32&&(l=o),l!==-1&&o-u>=50&&(i[a++]=new W(l+1,t,n,c),u=l+1,l=-1);u!==s&&(i[a++]=new W(s,t,n,c))}else i[a++]=o;r=s}else for(let e=0,n=t.length;e<n;e++){let n=t[e],o=n.endIndex,s=o-r;if(s>50){let e=n.type,t=n.metadata,c=n.containsRTL,l=Math.ceil(s/50);for(let n=1;n<l;n++){let o=r+n*50;i[a++]=new W(o,e,t,c)}i[a++]=new W(o,e,t,c)}else i[a++]=n;r=o}return i}function ka(e,t){if(t.length===0)return t;let n=t[0];if(!n.containsRTL)return t;let r=n.endIndex,i=0;for(let t=0;t<r;t++){let n=e.charCodeAt(t);if(n!==32&&n!==9){i=t;break}}if(i===0)return t;let a=[];a.push(new W(i,n.type,n.metadata,!1)),a.push(new W(r,n.type,n.metadata,n.containsRTL));for(let e=1;e<t.length;e++)a.push(t[e]);return a}function Aa(e){return e<32?e!==9:e===127||e>=8234&&e<=8238||e>=8294&&e<=8297||e>=8206&&e<=8207||e===1564}function ja(e,t){let n=[],r=new W(0,``,0,!1),i=0;for(let a of t){let t=a.endIndex;for(;i<t;i++)Aa(e.charCodeAt(i))&&(i>r.endIndex&&(r=new W(i,a.type,a.metadata,a.containsRTL),n.push(r)),r=new W(i+1,`mtkcontrol`,a.metadata,!1),n.push(r));i>r.endIndex&&(r=new W(t,a.type,a.metadata,a.containsRTL),n.push(r))}return n}function Ma(e,t,n,r){let i=e.continuesWithWrappedLine,a=e.fauxIndentLength,o=e.tabSize,s=e.startVisibleColumn,c=e.useMonospaceOptimizations,l=e.selectionsOnLine,u=e.renderWhitespace===1,d=e.renderWhitespace===3,f=e.renderSpaceWidth!==e.spaceWidth,p=[],m=0,h=0,g=r[h].type,_=r[h].containsRTL,v=r[h].endIndex,y=r.length,b=!1,x=ue(t),S;x===-1?(b=!0,x=n,S=n):S=Pe(t);let C=!1,w=0,T=l&&l[w],E=s%o;for(let e=a;e<n;e++){let i=t.charCodeAt(e);T&&T.endExclusive<=e&&(w++,T=l&&l[w]);let s;if(e<x||e>S)s=!0;else if(i===9)s=!0;else if(i===32)if(u)if(C)s=!0;else{let r=e+1<n?t.charCodeAt(e+1):0;s=r===32||r===9}else s=!0;else s=!1;if(s&&l&&(s=!!T&&T.start<=e&&e<T.endExclusive),s&&d&&(s=b||e>S),s&&_&&e>=x&&e<=S&&(s=!1),C){if(!s||!c&&E>=o){if(f){let t=m>0?p[m-1].endIndex:a;for(let n=t+1;n<=e;n++)p[m++]=new W(n,`mtkw`,1,!1)}else p[m++]=new W(e,`mtkw`,1,!1);E%=o}}else (e===v||s&&e>a)&&(p[m++]=new W(e,g,0,_),E%=o);for(i===9?E=o:ve(i)?E+=2:E++,C=s;e===v&&(h++,h<y);)g=r[h].type,_=r[h].containsRTL,v=r[h].endIndex}let ee=!1;if(C)if(i&&u){let e=n>0?t.charCodeAt(n-1):0,r=n>1?t.charCodeAt(n-2):0;e===32&&r!==32&&r!==9||(ee=!0)}else ee=!0;if(ee)if(f){let e=m>0?p[m-1].endIndex:a;for(let t=e+1;t<=n;t++)p[m++]=new W(t,`mtkw`,1,!1)}else p[m++]=new W(n,`mtkw`,1,!1);else p[m++]=new W(n,g,0,_);return p}function Na(e,t,n,r){r.sort(ma.compare);let i=_a.normalize(e,r),a=i.length,o=0,s=[],c=0,l=0;for(let e=0,t=n.length;e<t;e++){let t=n[e],r=t.endIndex,u=t.type,d=t.metadata,f=t.containsRTL;for(;o<a&&i[o].startOffset<r;){let e=i[o];if(e.startOffset>l&&(l=e.startOffset,s[c++]=new W(l,u,d,f)),e.endOffset+1<=r)l=e.endOffset+1,s[c++]=new W(l,u+` `+e.className,d|e.metadata,f),o++;else{l=r,s[c++]=new W(l,u+` `+e.className,d|e.metadata,f);break}}r>l&&(l=r,s[c++]=new W(l,u,d,f))}let u=n[n.length-1].endIndex;if(o<a&&i[o].startOffset===u)for(;o<a&&i[o].startOffset===u;){let e=i[o];s[c++]=new W(l,e.className,e.metadata,!1),o++}return s}function Pa(e,t){let n=e.fontIsMonospace,r=e.canUseHalfwidthRightwardsArrow,i=e.containsForeignElements,a=e.lineContent,o=e.len,s=e.isOverflowing,c=e.overflowingCharCount,l=e.parts,u=e.fauxIndentLength,d=e.tabSize,f=e.startVisibleColumn,p=e.spaceWidth,m=e.renderSpaceCharCode,h=e.renderWhitespace,g=e.renderControlCharacters,_=new ba(o+1,l.length),v=!1,y=0,b=f,x=0,S=0,C=0;t.appendString(`<span>`);for(let e=0,s=l.length;e<s;e++){let s=l[e],c=s.endIndex,f=s.type,w=s.containsRTL,T=h!==0&&s.isWhitespace(),E=T&&!n&&(f===`mtkw`||!i),ee=y===c&&s.isPseudoAfter();if(x=0,t.appendString(`<span `),w&&t.appendString(`dir="rtl" style="unicode-bidi:isolate" `),t.appendString(`class="`),t.appendString(E?`mtkz`:f),t.appendASCIICharCode(34),T){let n=0;{let e=y,t=b;for(;e<c;e++){let r=(a.charCodeAt(e)===9?d-t%d:1)|0;n+=r,e>=u&&(t+=r)}}for(E&&(t.appendString(` style="width:`),t.appendString(String(p*n)),t.appendString(`px"`)),t.appendASCIICharCode(62);y<c;y++){_.setColumnInfo(y+1,e-C,x,S),C=0;let n=a.charCodeAt(y),i,o;if(n===9){i=d-b%d|0,o=i,!r||o>1?t.appendCharCode(8594):t.appendCharCode(65515);for(let e=2;e<=o;e++)t.appendCharCode(160)}else i=2,o=1,t.appendCharCode(m),t.appendCharCode(8204);x+=i,S+=o,y>=u&&(b+=o)}}else for(t.appendASCIICharCode(62);y<c;y++){_.setColumnInfo(y+1,e-C,x,S),C=0;let n=a.charCodeAt(y),r=1,i=1;switch(n){case 9:r=d-b%d,i=r;for(let e=1;e<=r;e++)t.appendCharCode(160);break;case 32:t.appendCharCode(160);break;case 60:t.appendString(`<`);break;case 62:t.appendString(`>`);break;case 38:t.appendString(`&`);break;case 0:g?t.appendCharCode(9216):t.appendString(`�`);break;case 65279:case 8232:case 8233:case 133:t.appendCharCode(65533);break;default:ve(n)&&i++,g&&n<32?t.appendCharCode(9216+n):g&&n===127?t.appendCharCode(9249):g&&Aa(n)?(t.appendString(`[U+`),t.appendString(Fa(n)),t.appendString(`]`),r=8,i=r):t.appendCharCode(n)}x+=r,S+=i,y>=u&&(b+=i)}ee?C++:C=0,y>=o&&!v&&s.isPseudoAfter()&&(v=!0,_.setColumnInfo(y+1,e,x,S)),t.appendString(`</span>`)}return v||_.setColumnInfo(o+1,l.length-1,x,S),s&&(t.appendString(`<span class="mtkoverflow">`),t.appendString(de(796,`Show more ({0})`,Ia(c))),t.appendString(`</span>`)),t.appendString(`</span>`),new xa(_,i)}function Fa(e){return e.toString(16).toUpperCase().padStart(4,`0`)}function Ia(e){return e<1024?de(797,`{0} chars`,e):e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/1024/1024).toFixed(1)} MB`}var La=(function(){return e?!0:!(ae||at||bt)})(),Ra=!0,za=class e{static{this.CLASS_NAME=`view-line`}constructor(e,t){this._viewGpuContext=e,this._options=t,this._isMaybeInvalid=!0,this._renderedViewLine=null}getDomNode(){return this._renderedViewLine&&this._renderedViewLine.domNode?this._renderedViewLine.domNode.domNode:null}setDomNode(e){if(this._renderedViewLine)this._renderedViewLine.domNode=B(e);else throw Error(`I have no rendered view line to set the dom node to...`)}onContentChanged(){this._isMaybeInvalid=!0}onTokensChanged(){this._isMaybeInvalid=!0}onDecorationsChanged(){this._isMaybeInvalid=!0}onOptionsChanged(e){this._isMaybeInvalid=!0,this._options=e}onSelectionChanged(){return ge(this._options.themeType)||this._renderedViewLine?.input.renderWhitespace===2?(this._isMaybeInvalid=!0,!0):!1}renderLine(t,n,r,i,a){if(this._options.useGpu&&this._viewGpuContext?.canRender(this._options,i,t))return this._renderedViewLine?.domNode?.domNode.remove(),this._renderedViewLine=null,!1;if(this._isMaybeInvalid===!1)return!1;this._isMaybeInvalid=!1;let o=i.getViewLineRenderingData(t),s=this._options,c=ma.filter(o.inlineDecorations,t,o.minColumn,o.maxColumn),l=o.hasVariableFonts||s.experimentalWhitespaceRendering===`off`?s.renderWhitespace:`none`,u=!o.hasVariableFonts,d=null;if(ge(s.themeType)||l===`selection`){let e=i.selections;for(let n of e){if(n.endLineNumber<t||n.startLineNumber>t)continue;let e=n.startLineNumber===t?n.startColumn:o.minColumn,r=n.endLineNumber===t?n.endColumn:o.maxColumn;e<r&&(ge(s.themeType)&&c.push(new ma(e,r,`inline-selected-text`,0)),l===`selection`&&(d||=[],d.push(new I(e-1,r-1))))}}let f=new va(s.useMonospaceOptimizations,s.canUseHalfwidthRightwardsArrow,o.content,o.continuesWithWrappedLine,o.isBasicASCII,o.containsRTL,o.minColumn-1,o.tokens,c,o.tabSize,o.startVisibleColumn,s.spaceWidth,s.middotWidth,s.wsmiddotWidth,s.stopRenderingLineAfter,l,s.renderControlCharacters,s.fontLigatures!==qr.OFF,d,o.textDirection,s.verticalScrollbarSize);if(this._renderedViewLine&&this._renderedViewLine.input.equals(f))return!1;a.appendString(`<div `),o.textDirection===wn.RTL?a.appendString(`dir="rtl" `):o.containsRTL&&a.appendString(`dir="ltr" `),a.appendString(`style="top:`),a.appendString(String(n)),a.appendString(`px;height:`),a.appendString(String(r)),a.appendString(`px;line-height:`),a.appendString(String(r)),o.textDirection===wn.RTL&&(a.appendString(`px;padding-right:`),a.appendString(String(s.verticalScrollbarSize))),a.appendString(`px;" class="`),a.appendString(e.CLASS_NAME),a.appendString(`">`);let p=Sa(f,a);a.appendString(`</div>`);let m=null;return u&&Ra&&La&&o.isBasicASCII&&f.isLTR&&s.useMonospaceOptimizations&&p.containsForeignElements===0&&(m=new Ba(this._renderedViewLine?this._renderedViewLine.domNode:null,f,p.characterMapping)),m||=Ua(this._renderedViewLine?this._renderedViewLine.domNode:null,f,p.characterMapping,p.containsForeignElements),this._renderedViewLine=m,!0}layoutLine(e,t,n){this._renderedViewLine&&this._renderedViewLine.domNode&&(this._renderedViewLine.domNode.setTop(t),this._renderedViewLine.domNode.setHeight(n),this._renderedViewLine.domNode.setLineHeight(n))}isRenderedRTL(){return this._renderedViewLine?this._renderedViewLine.input.textDirection===wn.RTL:!1}getWidth(e){return this._renderedViewLine?this._renderedViewLine.getWidth(e):0}getWidthIsFast(){return this._renderedViewLine?this._renderedViewLine.getWidthIsFast():!0}needsMonospaceFontCheck(){return this._renderedViewLine?this._renderedViewLine instanceof Ba:!1}monospaceAssumptionsAreValid(){return this._renderedViewLine&&this._renderedViewLine instanceof Ba?this._renderedViewLine.monospaceAssumptionsAreValid():Ra}onMonospaceAssumptionsInvalidated(){this._renderedViewLine&&this._renderedViewLine instanceof Ba&&(this._renderedViewLine=this._renderedViewLine.toSlowRenderedLine())}getVisibleRangesForRange(e,t,n,r){if(!this._renderedViewLine)return null;t=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,t)),n=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,n));let i=this._renderedViewLine.input.stopRenderingLineAfter;if(i!==-1&&t>i+1&&n>i+1)return new fa(!0,[new ua(this.getWidth(r),0)]);i!==-1&&t>i+1&&(t=i+1),i!==-1&&n>i+1&&(n=i+1);let a=this._renderedViewLine.getVisibleRangesForRange(e,t,n,r);return a&&a.length>0?new fa(!1,a):null}getColumnOfNodeOffset(e,t){return this._renderedViewLine?this._renderedViewLine.getColumnOfNodeOffset(e,t):1}},Ba=class{constructor(e,t,n){this._cachedWidth=-1,this.domNode=e,this.input=t;let r=Math.floor(t.lineContent.length/300);if(r>0){this._keyColumnPixelOffsetCache=new Float32Array(r);for(let e=0;e<r;e++)this._keyColumnPixelOffsetCache[e]=-1}else this._keyColumnPixelOffsetCache=null;this._characterMapping=n,this._charWidth=t.spaceWidth}getWidth(e){if(!this.domNode||this.input.lineContent.length<300){let e=this._characterMapping.getHorizontalOffset(this._characterMapping.length);return Math.round(this._charWidth*e)}return this._cachedWidth===-1&&(this._cachedWidth=this._getReadingTarget(this.domNode).offsetWidth,e?.markDidDomLayout()),this._cachedWidth}getWidthIsFast(){return this.input.lineContent.length<300||this._cachedWidth!==-1}monospaceAssumptionsAreValid(){if(!this.domNode)return Ra;if(this.input.lineContent.length<300){let e=this.getWidth(null),t=this.domNode.domNode.firstChild.offsetWidth;Math.abs(e-t)>=2&&(console.warn(`monospace assumptions have been violated, therefore disabling monospace optimizations!`),Ra=!1)}return Ra}toSlowRenderedLine(){return Ua(this.domNode,this.input,this._characterMapping,0)}getVisibleRangesForRange(e,t,n,r){let i=this._getColumnPixelOffset(e,t,r);return[new ua(i,this._getColumnPixelOffset(e,n,r)-i)]}_getColumnPixelOffset(e,t,n){if(t<=300){let e=this._characterMapping.getHorizontalOffset(t);return this._charWidth*e}let r=Math.floor((t-1)/300)-1,i=(r+1)*300+1,a=-1;if(this._keyColumnPixelOffsetCache&&(a=this._keyColumnPixelOffsetCache[r],a===-1&&(a=this._actualReadPixelOffset(e,i,n),this._keyColumnPixelOffsetCache[r]=a)),a===-1){let e=this._characterMapping.getHorizontalOffset(t);return this._charWidth*e}let o=this._characterMapping.getHorizontalOffset(i),s=this._characterMapping.getHorizontalOffset(t);return a+this._charWidth*(s-o)}_getReadingTarget(e){return e.domNode.firstChild}_actualReadPixelOffset(e,t,n){if(!this.domNode)return-1;let r=this._characterMapping.getDomPosition(t),i=pa.readHorizontalRanges(this._getReadingTarget(this.domNode),r.partIndex,r.charIndex,r.partIndex,r.charIndex,n);return!i||i.length===0?-1:i[0].left}getColumnOfNodeOffset(e,t){return Ka(this._characterMapping,e,t)}},Va=class{constructor(e,t,n,r){if(this.domNode=e,this.input=t,this._characterMapping=n,this._isWhitespaceOnly=/^\s*$/.test(t.lineContent),this._containsForeignElements=r,this._cachedWidth=-1,this._pixelOffsetCache=null,t.isLTR){this._pixelOffsetCache=new Float32Array(Math.max(2,this._characterMapping.length+1));for(let e=0,t=this._characterMapping.length;e<=t;e++)this._pixelOffsetCache[e]=-1}}_getReadingTarget(e){return e.domNode.firstChild}getWidth(e){return this.domNode?(this._cachedWidth===-1&&(this._cachedWidth=this._getReadingTarget(this.domNode).offsetWidth,e?.markDidDomLayout()),this._cachedWidth):0}getWidthIsFast(){return this._cachedWidth!==-1}getVisibleRangesForRange(e,t,n,r){if(!this.domNode)return null;if(this._pixelOffsetCache!==null){let i=this._readPixelOffset(this.domNode,e,t,r);if(i===-1)return null;let a=this._readPixelOffset(this.domNode,e,n,r);return a===-1?null:[new ua(i,a-i)]}return this._readVisibleRangesForRange(this.domNode,e,t,n,r)}_readVisibleRangesForRange(e,t,n,r,i){if(n===r){let r=this._readPixelOffset(e,t,n,i);return r===-1?null:[new ua(r,0)]}else return this._readRawVisibleRangesForRange(e,n,r,i)}_readPixelOffset(e,t,n,r){if(this.input.isLTR&&this._characterMapping.length===0){if(this._containsForeignElements===0||this._containsForeignElements===2)return 0;if(this._containsForeignElements===1)return this.getWidth(r);let t=this._getReadingTarget(e);return t.firstChild?(r.markDidDomLayout(),t.firstChild.offsetWidth):0}if(this._pixelOffsetCache!==null){let i=this._pixelOffsetCache[n];if(i!==-1)return i;let a=this._actualReadPixelOffset(e,t,n,r);return this._pixelOffsetCache[n]=a,a}return this._actualReadPixelOffset(e,t,n,r)}_actualReadPixelOffset(e,t,n,r){if(this._characterMapping.length===0){let t=pa.readHorizontalRanges(this._getReadingTarget(e),0,0,0,0,r);return!t||t.length===0?-1:t[0].left}if(this.input.isLTR&&n===this._characterMapping.length&&this._isWhitespaceOnly&&this._containsForeignElements===0)return this.getWidth(r);let i=this._characterMapping.getDomPosition(n),a=pa.readHorizontalRanges(this._getReadingTarget(e),i.partIndex,i.charIndex,i.partIndex,i.charIndex,r);if(!a||a.length===0)return-1;let o=a[0].left;if(this.input.isBasicASCII){let e=this._characterMapping.getHorizontalOffset(n),t=Math.round(this.input.spaceWidth*e);if(Math.abs(t-o)<=1)return t}return o}_readRawVisibleRangesForRange(e,t,n,r){if(this.input.isLTR&&t===1&&n===this._characterMapping.length)return[new ua(0,this.getWidth(r))];let i=this._characterMapping.getDomPosition(t),a=this._characterMapping.getDomPosition(n);return pa.readHorizontalRanges(this._getReadingTarget(e),i.partIndex,i.charIndex,a.partIndex,a.charIndex,r)}getColumnOfNodeOffset(e,t){return Ka(this._characterMapping,e,t)}},Ha=class extends Va{_readVisibleRangesForRange(e,t,n,r,i){let a=super._readVisibleRangesForRange(e,t,n,r,i);if(!a||a.length===0||n===r||n===1&&r===this._characterMapping.length)return a;if(this.input.isLTR){let n=this._readPixelOffset(e,t,r,i);if(n!==-1){let e=a[a.length-1];e.left<n&&(e.width=n-e.left)}}return a}},Ua=(function(){return Tt?Wa:Ga})();function Wa(e,t,n,r){return new Ha(e,t,n,r)}function Ga(e,t,n,r){return new Va(e,t,n,r)}function Ka(e,t,n){let r=t.textContent.length,i=-1;for(;t;)t=t.previousSibling,i++;return e.getColumn(new ya(i,n),r)}var qa=class e{static whitespaceVisibleColumn(e,t,n){let r=e.length,i=0,a=-1,o=-1;for(let s=0;s<r;s++){if(s===t)return[a,o,i];switch(i%n===0&&(a=s,o=i),e.charCodeAt(s)){case 32:i+=1;break;case 9:i=z.nextRenderTabStop(i,n);break;default:return[-1,-1,-1]}}return t===r?[a,o,i]:[-1,-1,-1]}static atomicPosition(t,n,r,i){let a=t.length,[o,s,c]=e.whitespaceVisibleColumn(t,n,r);if(c===-1)return-1;let l;switch(i){case 0:l=!0;break;case 1:l=!1;break;case 2:if(c%r===0)return n;l=c%r<=r/2;break}if(l){if(o===-1)return-1;let e=s;for(let n=o;n<a;++n){if(e===s+r)return o;switch(t.charCodeAt(n)){case 32:e+=1;break;case 9:e=z.nextRenderTabStop(e,r);break;default:return-1}}return e===s+r?o:-1}let u=z.nextRenderTabStop(c,r),d=c;for(let e=n;e<a;e++){if(d===u)return e;switch(t.charCodeAt(e)){case 32:d+=1;break;case 9:d=z.nextRenderTabStop(d,r);break;default:return-1}}return d===u?a:-1}},Ja=class{constructor(e=null){this.hitTarget=e,this.type=0}},Ya=class{get hitTarget(){return this.spanNode}constructor(e,t,n){this.position=e,this.spanNode=t,this.injectedText=n,this.type=1}},Xa;(function(e){function t(e,t,n){let r=e.getPositionFromDOMInfo(t,n);return r?new Ya(r,t,null):new Ja(t)}e.createFromDOMInfo=t})(Xa||={});var Za=class{constructor(e,t){this.lastViewCursorsRenderData=e,this.lastTextareaPosition=t}},G=class{static _deduceRage(e,t=null){return!t&&e?new j(e.lineNumber,e.column,e.lineNumber,e.column):t??null}static createUnknown(e,t,n){return{type:0,element:e,mouseColumn:t,position:n,range:this._deduceRage(n)}}static createTextarea(e,t){return{type:1,element:e,mouseColumn:t,position:null,range:null}}static createMargin(e,t,n,r,i,a){return{type:e,element:t,mouseColumn:n,position:r,range:i,detail:a}}static createViewZone(e,t,n,r,i){return{type:e,element:t,mouseColumn:n,position:r,range:this._deduceRage(r),detail:i}}static createContentText(e,t,n,r,i){return{type:6,element:e,mouseColumn:t,position:n,range:this._deduceRage(n,r),detail:i}}static createContentEmpty(e,t,n,r){return{type:7,element:e,mouseColumn:t,position:n,range:this._deduceRage(n),detail:r}}static createContentWidget(e,t,n){return{type:9,element:e,mouseColumn:t,position:null,range:null,detail:n}}static createScrollbar(e,t,n){return{type:11,element:e,mouseColumn:t,position:n,range:this._deduceRage(n)}}static createOverlayWidget(e,t,n){return{type:12,element:e,mouseColumn:t,position:null,range:null,detail:n}}static createOutsideEditor(e,t,n,r){return{type:13,element:null,mouseColumn:e,position:t,range:this._deduceRage(t),outsidePosition:n,outsideDistance:r}}static _typeToString(e){return e===1?`TEXTAREA`:e===2?`GUTTER_GLYPH_MARGIN`:e===3?`GUTTER_LINE_NUMBERS`:e===4?`GUTTER_LINE_DECORATIONS`:e===5?`GUTTER_VIEW_ZONE`:e===6?`CONTENT_TEXT`:e===7?`CONTENT_EMPTY`:e===8?`CONTENT_VIEW_ZONE`:e===9?`CONTENT_WIDGET`:e===10?`OVERVIEW_RULER`:e===11?`SCROLLBAR`:e===12?`OVERLAY_WIDGET`:`UNKNOWN`}static toString(e){return this._typeToString(e.type)+`: `+e.position+` - `+e.range+` - `+JSON.stringify(e.detail)}},Qa=class{static isTextArea(e){return e.length===2&&e[0]===3&&e[1]===7}static isChildOfViewLines(e){return e.length>=4&&e[0]===3&&e[3]===8}static isStrictChildOfViewLines(e){return e.length>4&&e[0]===3&&e[3]===8}static isChildOfScrollableElement(e){return e.length>=2&&e[0]===3&&e[1]===6}static isChildOfMinimap(e){return e.length>=2&&e[0]===3&&e[1]===9}static isChildOfContentWidgets(e){return e.length>=4&&e[0]===3&&e[3]===1}static isChildOfOverflowGuard(e){return e.length>=1&&e[0]===3}static isChildOfOverflowingContentWidgets(e){return e.length>=1&&e[0]===2}static isChildOfOverlayWidgets(e){return e.length>=2&&e[0]===3&&e[1]===4}static isChildOfOverflowingOverlayWidgets(e){return e.length>=1&&e[0]===5}},$a=class e{constructor(e,t,n){this.viewModel=e.viewModel;let r=e.configuration.options;this.layoutInfo=r.get(165),this.viewDomNode=t.viewDomNode,this.viewLinesGpu=t.viewLinesGpu,this.lineHeight=r.get(75),this.stickyTabStops=r.get(132),this.typicalHalfwidthCharacterWidth=r.get(59).typicalHalfwidthCharacterWidth,this.lastRenderData=n,this._context=e,this._viewHelper=t}getZoneAtCoord(t){return e.getZoneAtCoord(this._context,t)}static getZoneAtCoord(e,t){let n=e.viewLayout.getWhitespaceAtVerticalOffset(t);if(n){let r=n.verticalOffset+n.height/2,i=e.viewModel.getLineCount(),a=null,o,s=null;return n.afterLineNumber!==i&&(s=new b(n.afterLineNumber+1,1)),n.afterLineNumber>0&&(a=new b(n.afterLineNumber,e.viewModel.getLineMaxColumn(n.afterLineNumber))),o=s===null?a:a===null?s:t<r?a:s,{viewZoneId:n.id,afterLineNumber:n.afterLineNumber,positionBefore:a,positionAfter:s,position:o}}return null}getFullLineRangeAtCoord(e){if(this._context.viewLayout.isAfterLines(e)){let e=this._context.viewModel.getLineCount(),t=this._context.viewModel.getLineMaxColumn(e);return{range:new j(e,t,e,t),isAfterLines:!0}}let t=this._context.viewLayout.getLineNumberAtVerticalOffset(e);return{range:new j(t,1,t,this._context.viewModel.getLineMaxColumn(t)),isAfterLines:!1}}getLineNumberAtVerticalOffset(e){return this._context.viewLayout.getLineNumberAtVerticalOffset(e)}isAfterLines(e){return this._context.viewLayout.isAfterLines(e)}isInTopPadding(e){return this._context.viewLayout.isInTopPadding(e)}isInBottomPadding(e){return this._context.viewLayout.isInBottomPadding(e)}getVerticalOffsetForLineNumber(e){return this._context.viewLayout.getVerticalOffsetForLineNumber(e)}findAttribute(t,n){return e._findAttribute(t,n,this._viewHelper.viewDomNode)}static _findAttribute(e,t,n){for(;e&&e!==e.ownerDocument.body;){if(e.hasAttribute&&e.hasAttribute(t))return e.getAttribute(t);if(e===n)return null;e=e.parentNode}return null}getLineWidth(e){return this._viewHelper.getLineWidth(e)}isRtl(e){return this.viewModel.getTextDirection(e)===wn.RTL}visibleRangeForPosition(e,t){return this._viewHelper.visibleRangeForPosition(e,t)}getPositionFromDOMInfo(e,t){return this._viewHelper.getPositionFromDOMInfo(e,t)}getCurrentScrollTop(){return this._context.viewLayout.getCurrentScrollTop()}getCurrentScrollLeft(){return this._context.viewLayout.getCurrentScrollLeft()}},eo=class{constructor(e,t,n,r){this.editorPos=t,this.pos=n,this.relativePos=r,this.mouseVerticalOffset=Math.max(0,e.getCurrentScrollTop()+this.relativePos.y),this.mouseContentHorizontalOffset=e.getCurrentScrollLeft()+this.relativePos.x-e.layoutInfo.contentLeft,this.isInMarginArea=this.relativePos.x<e.layoutInfo.contentLeft&&this.relativePos.x>=e.layoutInfo.glyphMarginLeft,this.isInContentArea=!this.isInMarginArea,this.mouseColumn=Math.max(0,io._getMouseColumn(this.mouseContentHorizontalOffset,e.typicalHalfwidthCharacterWidth))}},to=class extends eo{get target(){return this._useHitTestTarget?this.hitTestResult.value.hitTarget:this._eventTarget}get targetPath(){return this._targetPathCacheElement!==this.target&&(this._targetPathCacheElement=this.target,this._targetPathCacheValue=aa.collect(this.target,this._ctx.viewDomNode)),this._targetPathCacheValue}constructor(e,t,n,r,i){super(e,t,n,r),this.hitTestResult=new v(()=>io.doHitTest(this._ctx,this)),this._targetPathCacheElement=null,this._targetPathCacheValue=new Uint8Array,this._ctx=e,this._eventTarget=i;let a=!!this._eventTarget;this._useHitTestTarget=!a}toString(){return`pos(${this.pos.x},${this.pos.y}), editorPos(${this.editorPos.x},${this.editorPos.y}), relativePos(${this.relativePos.x},${this.relativePos.y}), mouseVerticalOffset: ${this.mouseVerticalOffset}, mouseContentHorizontalOffset: ${this.mouseContentHorizontalOffset}\n\ttarget: ${this.target?this.target.outerHTML:null}`}get wouldBenefitFromHitTestTargetSwitch(){return!this._useHitTestTarget&&this.hitTestResult.value.hitTarget!==null&&this.target!==this.hitTestResult.value.hitTarget}switchToHitTestTarget(){this._useHitTestTarget=!0}_getMouseColumn(e=null){return e&&e.column<this._ctx.viewModel.getLineMaxColumn(e.lineNumber)?z.visibleColumnFromColumn(this._ctx.viewModel.getLineContent(e.lineNumber),e.column,this._ctx.viewModel.model.getOptions().tabSize)+1:this.mouseColumn}fulfillUnknown(e=null){return G.createUnknown(this.target,this._getMouseColumn(e),e)}fulfillTextarea(){return G.createTextarea(this.target,this._getMouseColumn())}fulfillMargin(e,t,n,r){return G.createMargin(e,this.target,this._getMouseColumn(t),t,n,r)}fulfillViewZone(e,t,n){return G.createViewZone(e,this.target,this._getMouseColumn(),t,n)}fulfillContentText(e,t,n){return G.createContentText(this.target,this._getMouseColumn(e),e,t,n)}fulfillContentEmpty(e,t){return G.createContentEmpty(this.target,this._getMouseColumn(e),e,t)}fulfillContentWidget(e){return G.createContentWidget(this.target,this._getMouseColumn(),e)}fulfillScrollbar(e){return G.createScrollbar(this.target,this._getMouseColumn(e),e)}fulfillOverlayWidget(e){return G.createOverlayWidget(this.target,this._getMouseColumn(),e)}},no={isAfterLines:!0};function ro(e){return{isAfterLines:!1,horizontalDistanceToText:e}}var io=class e{constructor(e,t){this._context=e,this._viewHelper=t}mouseTargetIsWidget(e){let t=e.target,n=aa.collect(t,this._viewHelper.viewDomNode);return!!(Qa.isChildOfContentWidgets(n)||Qa.isChildOfOverflowingContentWidgets(n)||Qa.isChildOfOverlayWidgets(n)||Qa.isChildOfOverflowingOverlayWidgets(n))}createMouseTarget(t,n,r,i,a){let o=new $a(this._context,this._viewHelper,t),s=new to(o,n,r,i,a);try{let t=e._createMouseTarget(o,s);if(t.type===6&&o.stickyTabStops&&t.position!==null){let n=e._snapToSoftTabBoundary(t.position,o.viewModel),r=j.fromPositions(n,n).plusRange(t.range);return s.fulfillContentText(n,r,t.detail)}return t}catch{return s.fulfillUnknown()}}static _createMouseTarget(t,n){if(n.target===null)return n.fulfillUnknown();let r=n,i=null;return!Qa.isChildOfOverflowGuard(n.targetPath)&&!Qa.isChildOfOverflowingContentWidgets(n.targetPath)&&!Qa.isChildOfOverflowingOverlayWidgets(n.targetPath)&&(i||=n.fulfillUnknown()),i||=e._hitTestContentWidget(t,r),i||=e._hitTestOverlayWidget(t,r),i||=e._hitTestMinimap(t,r),i||=e._hitTestScrollbarSlider(t,r),i||=e._hitTestViewZone(t,r),i||=e._hitTestMargin(t,r),i||=e._hitTestViewCursor(t,r),i||=e._hitTestTextArea(t,r),i||=e._hitTestViewLines(t,r),i||=e._hitTestScrollbar(t,r),i||n.fulfillUnknown()}static _hitTestContentWidget(e,t){if(Qa.isChildOfContentWidgets(t.targetPath)||Qa.isChildOfOverflowingContentWidgets(t.targetPath)){let n=e.findAttribute(t.target,`widgetId`);return n?t.fulfillContentWidget(n):t.fulfillUnknown()}return null}static _hitTestOverlayWidget(e,t){if(Qa.isChildOfOverlayWidgets(t.targetPath)||Qa.isChildOfOverflowingOverlayWidgets(t.targetPath)){let n=e.findAttribute(t.target,`widgetId`);return n?t.fulfillOverlayWidget(n):t.fulfillUnknown()}return null}static _hitTestViewCursor(e,t){if(t.target){let n=e.lastRenderData.lastViewCursorsRenderData;for(let e of n)if(t.target===e.domNode)return t.fulfillContentText(e.position,null,{mightBeForeignElement:!1,injectedText:null})}if(t.isInContentArea){let n=e.lastRenderData.lastViewCursorsRenderData,r=t.mouseContentHorizontalOffset,i=t.mouseVerticalOffset;for(let a of n){if(r<a.contentLeft||r>a.contentLeft+a.width)continue;let n=e.getVerticalOffsetForLineNumber(a.position.lineNumber);if(n<=i&&i<=n+a.height)return t.fulfillContentText(a.position,null,{mightBeForeignElement:!1,injectedText:null})}}return null}static _hitTestViewZone(e,t){let n=e.getZoneAtCoord(t.mouseVerticalOffset);if(n){let e=t.isInContentArea?8:5;return t.fulfillViewZone(e,n.position,n)}return null}static _hitTestTextArea(e,t){return Qa.isTextArea(t.targetPath)?e.lastRenderData.lastTextareaPosition?t.fulfillContentText(e.lastRenderData.lastTextareaPosition,null,{mightBeForeignElement:!1,injectedText:null}):t.fulfillTextarea():null}static _hitTestMargin(e,t){if(t.isInMarginArea){let n=e.getFullLineRangeAtCoord(t.mouseVerticalOffset),r=n.range.getStartPosition(),i=Math.abs(t.relativePos.x),a={isAfterLines:n.isAfterLines,glyphMarginLeft:e.layoutInfo.glyphMarginLeft,glyphMarginWidth:e.layoutInfo.glyphMarginWidth,lineNumbersWidth:e.layoutInfo.lineNumbersWidth,offsetX:i};if(i-=e.layoutInfo.glyphMarginLeft,i<=e.layoutInfo.glyphMarginWidth){let o=e.viewModel.coordinatesConverter.convertViewPositionToModelPosition(n.range.getStartPosition());return a.glyphMarginLane=e.viewModel.glyphLanes.getLanesAtLine(o.lineNumber)[Math.floor(i/e.lineHeight)],t.fulfillMargin(2,r,n.range,a)}return i-=e.layoutInfo.glyphMarginWidth,i<=e.layoutInfo.lineNumbersWidth?t.fulfillMargin(3,r,n.range,a):(i-=e.layoutInfo.lineNumbersWidth,t.fulfillMargin(4,r,n.range,a))}return null}static _hitTestViewLines(t,n){if(!Qa.isChildOfViewLines(n.targetPath))return null;if(t.isInTopPadding(n.mouseVerticalOffset))return n.fulfillContentEmpty(new b(1,1),no);if(t.isAfterLines(n.mouseVerticalOffset)||t.isInBottomPadding(n.mouseVerticalOffset)){let e=t.viewModel.getLineCount(),r=t.viewModel.getLineMaxColumn(e);return n.fulfillContentEmpty(new b(e,r),no)}if(Qa.isStrictChildOfViewLines(n.targetPath)){let e=t.getLineNumberAtVerticalOffset(n.mouseVerticalOffset),r=t.viewModel.getLineLength(e),i=t.getLineWidth(e);if(r===0){let t=ro(n.mouseContentHorizontalOffset-i);return n.fulfillContentEmpty(new b(e,1),t)}if(t.isRtl(e)){if(n.mouseContentHorizontalOffset+i<=t.layoutInfo.contentWidth-t.layoutInfo.verticalScrollbarWidth){let r=ro(n.mouseContentHorizontalOffset-i),a=new b(e,t.viewModel.getLineMaxColumn(e));return n.fulfillContentEmpty(a,r)}}else if(n.mouseContentHorizontalOffset>=i){let r=ro(n.mouseContentHorizontalOffset-i),a=new b(e,t.viewModel.getLineMaxColumn(e));return n.fulfillContentEmpty(a,r)}}else if(t.viewLinesGpu){let e=t.getLineNumberAtVerticalOffset(n.mouseVerticalOffset);if(t.viewModel.getLineLength(e)===0){let r=t.getLineWidth(e),i=ro(n.mouseContentHorizontalOffset-r);return n.fulfillContentEmpty(new b(e,1),i)}let r=t.getLineWidth(e);if(t.isRtl(e)){if(n.mouseContentHorizontalOffset+r<=t.layoutInfo.contentWidth-t.layoutInfo.verticalScrollbarWidth){let i=ro(n.mouseContentHorizontalOffset-r),a=new b(e,t.viewModel.getLineMaxColumn(e));return n.fulfillContentEmpty(a,i)}}else if(n.mouseContentHorizontalOffset>=r){let i=ro(n.mouseContentHorizontalOffset-r),a=new b(e,t.viewModel.getLineMaxColumn(e));return n.fulfillContentEmpty(a,i)}let i=t.viewLinesGpu.getPositionAtCoordinate(e,n.mouseContentHorizontalOffset);if(i)return n.fulfillContentText(i,j.fromPositions(i,i),{injectedText:null,mightBeForeignElement:!1})}let r=n.hitTestResult.value;return r.type===1?e.createMouseTargetFromHitTestPosition(t,n,r.spanNode,r.position,r.injectedText):n.wouldBenefitFromHitTestTargetSwitch?(n.switchToHitTestTarget(),this._createMouseTarget(t,n)):n.fulfillUnknown()}static _hitTestMinimap(e,t){if(Qa.isChildOfMinimap(t.targetPath)){let n=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),r=e.viewModel.getLineMaxColumn(n);return t.fulfillScrollbar(new b(n,r))}return null}static _hitTestScrollbarSlider(e,t){if(Qa.isChildOfScrollableElement(t.targetPath)&&t.target&&t.target.nodeType===1){let n=t.target.className;if(n&&/\b(slider|scrollbar)\b/.test(n)){let n=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),r=e.viewModel.getLineMaxColumn(n);return t.fulfillScrollbar(new b(n,r))}}return null}static _hitTestScrollbar(e,t){if(Qa.isChildOfScrollableElement(t.targetPath)){let n=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),r=e.viewModel.getLineMaxColumn(n);return t.fulfillScrollbar(new b(n,r))}return null}getMouseColumn(t){let n=this._context.configuration.options,r=n.get(165),i=this._context.viewLayout.getCurrentScrollLeft()+t.x-r.contentLeft;return e._getMouseColumn(i,n.get(59).typicalHalfwidthCharacterWidth)}static _getMouseColumn(e,t){return e<0?1:Math.round(e/t)+1}static createMouseTargetFromHitTestPosition(e,t,n,r,i){let a=r.lineNumber,o=r.column,s=e.getLineWidth(a);if(t.mouseContentHorizontalOffset>s){let e=ro(t.mouseContentHorizontalOffset-s);return t.fulfillContentEmpty(r,e)}let c=e.visibleRangeForPosition(a,o);if(!c)return t.fulfillUnknown(r);let l=c.left;if(Math.abs(t.mouseContentHorizontalOffset-l)<1)return t.fulfillContentText(r,null,{mightBeForeignElement:!!i,injectedText:i});let u=[];if(u.push({offset:c.left,column:o}),o>1){let t=e.visibleRangeForPosition(a,o-1);t&&u.push({offset:t.left,column:o-1})}if(o<e.viewModel.getLineMaxColumn(a)){let t=e.visibleRangeForPosition(a,o+1);t&&u.push({offset:t.left,column:o+1})}u.sort((e,t)=>e.offset-t.offset);let d=t.pos.toClientCoordinates(M(e.viewDomNode)),f=n.getBoundingClientRect(),p=f.left<=d.clientX&&d.clientX<=f.right,m=null;for(let e=1;e<u.length;e++){let n=u[e-1],i=u[e];if(n.offset<=t.mouseContentHorizontalOffset&&t.mouseContentHorizontalOffset<=i.offset){m=new j(a,n.column,a,i.column),r=Math.abs(n.offset-t.mouseContentHorizontalOffset)<Math.abs(i.offset-t.mouseContentHorizontalOffset)?new b(a,n.column):new b(a,i.column);break}}return t.fulfillContentText(r,m,{mightBeForeignElement:!p||!!i,injectedText:i})}static _doHitTestWithCaretRangeFromPoint(e,t){let n=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),r=e.getVerticalOffsetForLineNumber(n),i=r+e.lineHeight;if(!(n===e.viewModel.getLineCount()&&t.mouseVerticalOffset>i)){let n=Math.floor((r+i)/2),a=t.pos.y+(n-t.mouseVerticalOffset);a<=t.editorPos.y&&(a=t.editorPos.y+1),a>=t.editorPos.y+t.editorPos.height&&(a=t.editorPos.y+t.editorPos.height-1);let o=new fi(t.pos.x,a),s=this._actualDoHitTestWithCaretRangeFromPoint(e,o.toClientCoordinates(M(e.viewDomNode)));if(s.type===1)return s}return this._actualDoHitTestWithCaretRangeFromPoint(e,t.pos.toClientCoordinates(M(e.viewDomNode)))}static _actualDoHitTestWithCaretRangeFromPoint(e,t){let n=St(e.viewDomNode),r;if(r=n?n.caretRangeFromPoint===void 0?ao(n,t.clientX,t.clientY):n.caretRangeFromPoint(t.clientX,t.clientY):e.viewDomNode.ownerDocument.caretRangeFromPoint(t.clientX,t.clientY),!r||!r.startContainer)return new Ja;let i=r.startContainer;if(i.nodeType===i.TEXT_NODE){let t=i.parentNode,n=t?t.parentNode:null,a=n?n.parentNode:null;return(a&&a.nodeType===a.ELEMENT_NODE?a.className:null)===za.CLASS_NAME?Xa.createFromDOMInfo(e,t,r.startOffset):new Ja(i.parentNode)}else if(i.nodeType===i.ELEMENT_NODE){let t=i.parentNode,n=t?t.parentNode:null;return(n&&n.nodeType===n.ELEMENT_NODE?n.className:null)===za.CLASS_NAME?Xa.createFromDOMInfo(e,i,i.textContent.length):new Ja(i)}return new Ja}static _doHitTestWithCaretPositionFromPoint(e,t){let n=e.viewDomNode.ownerDocument.caretPositionFromPoint(t.clientX,t.clientY);if(n.offsetNode.nodeType===n.offsetNode.TEXT_NODE){let t=n.offsetNode.parentNode,r=t?t.parentNode:null,i=r?r.parentNode:null;return(i&&i.nodeType===i.ELEMENT_NODE?i.className:null)===za.CLASS_NAME?Xa.createFromDOMInfo(e,n.offsetNode.parentNode,n.offset):new Ja(n.offsetNode.parentNode)}if(n.offsetNode.nodeType===n.offsetNode.ELEMENT_NODE){let t=n.offsetNode.parentNode,r=t&&t.nodeType===t.ELEMENT_NODE?t.className:null,i=t?t.parentNode:null,a=i&&i.nodeType===i.ELEMENT_NODE?i.className:null;if(r===za.CLASS_NAME){let t=n.offsetNode.childNodes[Math.min(n.offset,n.offsetNode.childNodes.length-1)];if(t)return Xa.createFromDOMInfo(e,t,0)}else if(a===za.CLASS_NAME)return Xa.createFromDOMInfo(e,n.offsetNode,0)}return new Ja(n.offsetNode)}static _snapToSoftTabBoundary(e,t){let n=t.getLineContent(e.lineNumber),{tabSize:r}=t.model.getOptions(),i=qa.atomicPosition(n,e.column-1,r,2);return i===-1?e:new b(e.lineNumber,i+1)}static doHitTest(e,t){let n=new Ja;if(typeof e.viewDomNode.ownerDocument.caretRangeFromPoint==`function`?n=this._doHitTestWithCaretRangeFromPoint(e,t):e.viewDomNode.ownerDocument.caretPositionFromPoint&&(n=this._doHitTestWithCaretPositionFromPoint(e,t.pos.toClientCoordinates(M(e.viewDomNode)))),n.type===1){let t=e.viewModel.getInjectedTextAt(n.position),r=e.viewModel.normalizePosition(n.position,2);(t||!r.equals(n.position))&&(n=new Ya(r,n.spanNode,t))}return n}};function ao(e,t,n){let r=document.createRange(),i=e.elementFromPoint(t,n);if(i?.hasChildNodes()){for(;i&&i.firstChild&&i.firstChild.nodeType!==i.firstChild.TEXT_NODE&&i.lastChild&&i.lastChild.firstChild;)i=i.lastChild;let e=i.getBoundingClientRect(),n=M(i),a=`${n.getComputedStyle(i,null).getPropertyValue(`font-style`)} ${n.getComputedStyle(i,null).getPropertyValue(`font-variant`)} ${n.getComputedStyle(i,null).getPropertyValue(`font-weight`)} ${n.getComputedStyle(i,null).getPropertyValue(`font-size`)}/${n.getComputedStyle(i,null).getPropertyValue(`line-height`)} ${n.getComputedStyle(i,null).getPropertyValue(`font-family`)}`,o=i.innerText,s=e.left,c=0,l;if(t>e.left+e.width)c=o.length;else{let e=oo.getInstance();for(let n=0;n<o.length+1;n++){if(l=e.getCharWidth(o.charAt(n),a)/2,s+=l,t<s){c=n;break}s+=l}}r.setStart(i.firstChild,c),r.setEnd(i.firstChild,c)}return r}var oo=class e{static{this._INSTANCE=null}static getInstance(){return e._INSTANCE||=new e,e._INSTANCE}constructor(){this._cache={},this._canvas=document.createElement(`canvas`)}getCharWidth(e,t){let n=e+t;if(this._cache[n])return this._cache[n];let r=this._canvas.getContext(`2d`);r.font=t;let i=r.measureText(e).width;return this._cache[n]=i,i}},so=class extends i{constructor(e,t,n,r){super(),this._context=e,this._viewHelper=t,this._mouseTargetFactory=n,this._dispatchMouse=r,this._operation=null}dispose(){super.dispose(),this.stop()}start(e,t){this._operation?this._operation.setPosition(e,t):this._operation=this._createDragScrollingOperation(e,t)}stop(){this._operation&&=(this._operation.dispose(),null)}},co=class extends i{constructor(e,t,n,r,i,a){super(),this._context=e,this._viewHelper=t,this._mouseTargetFactory=n,this._dispatchMouse=r,this._position=i,this._mouseEvent=a,this._lastTime=Date.now(),this._animationFrameDisposable=tt(M(a.browserEvent),()=>this._execute())}dispose(){this._animationFrameDisposable.dispose(),super.dispose()}setPosition(e,t){this._position=e,this._mouseEvent=t}_tick(){let e=Date.now(),t=e-this._lastTime;return this._lastTime=e,t}},lo=class extends so{_createDragScrollingOperation(e,t){return new uo(this._context,this._viewHelper,this._mouseTargetFactory,this._dispatchMouse,e,t)}},uo=class extends co{_getScrollSpeed(){let e=this._context.configuration.options.get(75),t=this._context.configuration.options.get(165).height/e,n=this._position.outsideDistance/e;return n<=1.5?Math.max(30,t*(1+n)):n<=3?Math.max(60,t*(2+n)):Math.max(200,t*(7+n))}_execute(){let e=this._context.configuration.options.get(75),t=this._getScrollSpeed()*(this._tick()/1e3)*e,n=this._position.outsidePosition===`above`?-t:t;this._context.viewModel.viewLayout.deltaScrollNow(0,n),this._viewHelper.renderNow();let r=this._context.viewLayout.getLinesViewportData(),i=this._position.outsidePosition===`above`?r.startLineNumber:r.endLineNumber,a;{let e=gi(this._viewHelper.viewDomNode),t=this._context.configuration.options.get(165).horizontalScrollbarHeight,n=new fi(this._mouseEvent.pos.x,e.y+e.height-t-.1),r=_i(this._viewHelper.viewDomNode,e,n);a=this._mouseTargetFactory.createMouseTarget(this._viewHelper.getLastRenderData(),e,n,r,null)}(!a.position||a.position.lineNumber!==i)&&(a=this._position.outsidePosition===`above`?G.createOutsideEditor(this._position.mouseColumn,new b(i,1),`above`,this._position.outsideDistance):G.createOutsideEditor(this._position.mouseColumn,new b(i,this._context.viewModel.getLineMaxColumn(i)),`below`,this._position.outsideDistance)),this._dispatchMouse(a,!0,2),this._animationFrameDisposable=tt(M(a.element),()=>this._execute())}},fo=class extends so{_createDragScrollingOperation(e,t){return new po(this._context,this._viewHelper,this._mouseTargetFactory,this._dispatchMouse,e,t)}},po=class extends co{_getScrollSpeed(){let e=this._context.configuration.options.get(59).typicalFullwidthCharacterWidth,t=this._context.configuration.options.get(165).contentWidth/e,n=this._position.outsideDistance/e;return n<=1.5?Math.max(30,t*(1+n)):n<=3?Math.max(60,t*(2+n)):Math.max(200,t*(7+n))}_execute(){let e=this._context.configuration.options.get(59).typicalFullwidthCharacterWidth,t=this._getScrollSpeed()*(this._tick()/1e3)*e*.5,n=this._position.outsidePosition===`left`?-t:t;if(this._context.viewModel.viewLayout.deltaScrollNow(n,0),this._viewHelper.renderNow(),!this._position.position)return;let r=this._position.position.lineNumber,i;{let e=gi(this._viewHelper.viewDomNode),t=this._context.configuration.options.get(165).horizontalScrollbarHeight,n=new fi(this._mouseEvent.pos.x,e.y+e.height-t-.1),r=_i(this._viewHelper.viewDomNode,e,n);i=this._mouseTargetFactory.createMouseTarget(this._viewHelper.getLastRenderData(),e,n,r,null)}i=this._position.outsidePosition===`left`?G.createOutsideEditor(i.mouseColumn,new b(r,i.mouseColumn),`left`,this._position.outsideDistance):G.createOutsideEditor(i.mouseColumn,new b(r,i.mouseColumn),`right`,this._position.outsideDistance),this._dispatchMouse(i,!0,2),this._animationFrameDisposable=tt(M(i.element),()=>this._execute())}},mo=class extends ra{constructor(e,t,n){super(),this._mouseLeaveMonitor=null,this._context=e,this.viewController=t,this.viewHelper=n,this.mouseTargetFactory=new io(this._context,n),this._mouseDownOperation=this._register(new ho(this._context,this.viewController,this.viewHelper,this.mouseTargetFactory,(e,t)=>this._createMouseTarget(e,t),e=>this._getMouseColumn(e))),this.lastMouseLeaveTime=-1,this._height=this._context.configuration.options.get(165).height;let r=new yi(this.viewHelper.viewDomNode);this._register(r.onContextMenu(this.viewHelper.viewDomNode,e=>this._onContextMenu(e,!0))),this._register(r.onMouseMove(this.viewHelper.viewDomNode,e=>{this._onMouseMove(e),this._mouseLeaveMonitor||=P(this.viewHelper.viewDomNode.ownerDocument,`mousemove`,e=>{this.viewHelper.viewDomNode.contains(e.target)||this._onMouseLeave(new vi(e,!1,this.viewHelper.viewDomNode))})})),this._register(r.onMouseUp(this.viewHelper.viewDomNode,e=>this._onMouseUp(e))),this._register(r.onMouseLeave(this.viewHelper.viewDomNode,e=>this._onMouseLeave(e)));let i=0;this._register(r.onPointerDown(this.viewHelper.viewDomNode,(e,t)=>{i=t})),this._register(P(this.viewHelper.viewDomNode,Ze.POINTER_UP,e=>{this._mouseDownOperation.onPointerUp()})),this._register(r.onMouseDown(this.viewHelper.viewDomNode,e=>this._onMouseDown(e,i))),this._setupMouseWheelZoomListener(),this._context.addEventHandler(this)}_setupMouseWheelZoomListener(){let e=Or.INSTANCE,t=0,n=Wr.getZoomLevel(),r=!1,i=0;this._register(P(this.viewHelper.viewDomNode,Ze.MOUSE_WHEEL,o=>{if(this.viewController.emitMouseWheel(o),!this._context.configuration.options.get(84))return;let s=new Ge(o);if(e.acceptStandardWheelEvent(s),e.isPhysicalMouseWheel()){if(a(o)){let e=Wr.getZoomLevel(),t=s.deltaY>0?1:-1;Wr.setZoomLevel(e+t),s.preventDefault(),s.stopPropagation()}}else Date.now()-t>50&&(n=Wr.getZoomLevel(),r=a(o),i=0),t=Date.now(),i+=s.deltaY,r&&(Wr.setZoomLevel(n+i/5),s.preventDefault(),s.stopPropagation())},{capture:!0,passive:!1}));function a(e){return oe?(e.metaKey||e.ctrlKey)&&!e.shiftKey&&!e.altKey:e.ctrlKey&&!e.metaKey&&!e.shiftKey&&!e.altKey}}dispose(){this._context.removeEventHandler(this),this._mouseLeaveMonitor&&=(this._mouseLeaveMonitor.dispose(),null),super.dispose()}onConfigurationChanged(e){if(e.hasChanged(165)){let e=this._context.configuration.options.get(165).height;this._height!==e&&(this._height=e,this._mouseDownOperation.onHeightChanged())}return!1}onCursorStateChanged(e){return this._mouseDownOperation.onCursorStateChanged(e),!1}onFocusChanged(e){return!1}getTargetAtClientPoint(e,t){let n=new pi(e,t).toPageCoordinates(M(this.viewHelper.viewDomNode)),r=gi(this.viewHelper.viewDomNode);if(n.y<r.y||n.y>r.y+r.height||n.x<r.x||n.x>r.x+r.width)return null;let i=_i(this.viewHelper.viewDomNode,r,n);return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),r,n,i,null)}_createMouseTarget(e,t){let n=e.target;if(!this.viewHelper.viewDomNode.contains(n)){let t=St(this.viewHelper.viewDomNode);t&&(n=t.elementsFromPoint(e.posx,e.posy).find(e=>this.viewHelper.viewDomNode.contains(e))??null)}return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),e.editorPos,e.pos,e.relativePos,t?n:null)}_getMouseColumn(e){return this.mouseTargetFactory.getMouseColumn(e.relativePos)}_onContextMenu(e,t){this.viewController.emitContextMenu({event:e,target:this._createMouseTarget(e,t)})}_onMouseMove(e){this.mouseTargetFactory.mouseTargetIsWidget(e)||e.preventDefault(),!this._mouseDownOperation.isActive()&&(e.timestamp<this.lastMouseLeaveTime||this.viewController.emitMouseMove({event:e,target:this._createMouseTarget(e,!0)}))}_onMouseLeave(e){this._mouseLeaveMonitor&&=(this._mouseLeaveMonitor.dispose(),null),this.lastMouseLeaveTime=new Date().getTime(),this.viewController.emitMouseLeave({event:e,target:null})}_onMouseUp(e){this.viewController.emitMouseUp({event:e,target:this._createMouseTarget(e,!0)})}_onMouseDown(e,t){let n=this._createMouseTarget(e,!0),r=n.type===6||n.type===7,i=n.type===2||n.type===3||n.type===4,a=n.type===3,o=this._context.configuration.options.get(125),s=n.type===8||n.type===5,c=n.type===9,l=e.leftButton||e.middleButton;oe&&e.leftButton&&e.ctrlKey&&(l=!1);let u=()=>{e.preventDefault(),this.viewHelper.focusTextArea()};if(l&&(r||a&&o))u(),this._mouseDownOperation.start(n.type,e,t);else if(i)e.preventDefault();else if(s){let r=n.detail;l&&this.viewHelper.shouldSuppressMouseDownOnViewZone(r.viewZoneId)&&(u(),this._mouseDownOperation.start(n.type,e,t),e.preventDefault())}else c&&this.viewHelper.shouldSuppressMouseDownOnWidget(n.detail)&&(u(),e.preventDefault());this.viewController.emitMouseDown({event:e,target:n})}},ho=class extends i{constructor(e,t,n,r,i,a){super(),this._context=e,this._viewController=t,this._viewHelper=n,this._mouseTargetFactory=r,this._createMouseTarget=i,this._getMouseColumn=a,this._mouseMoveMonitor=this._register(new xi(this._viewHelper.viewDomNode)),this._topBottomDragScrolling=this._register(new lo(this._context,this._viewHelper,this._mouseTargetFactory,(e,t,n)=>this._dispatchMouse(e,t,n))),this._leftRightDragScrolling=this._register(new fo(this._context,this._viewHelper,this._mouseTargetFactory,(e,t,n)=>this._dispatchMouse(e,t,n))),this._mouseState=new go,this._currentSelection=new L(1,1,1,1),this._isActive=!1,this._lastMouseEvent=null}dispose(){super.dispose()}isActive(){return this._isActive}_onMouseDownThenMove(e){this._lastMouseEvent=e,this._mouseState.setModifiers(e);let t=this._findMousePosition(e,!1);t&&(this._mouseState.isDragAndDrop?this._viewController.emitMouseDrag({event:e,target:t}):t.type===13?t.outsidePosition===`above`||t.outsidePosition===`below`?(this._topBottomDragScrolling.start(t,e),this._leftRightDragScrolling.stop()):(this._leftRightDragScrolling.start(t,e),this._topBottomDragScrolling.stop()):(this._topBottomDragScrolling.stop(),this._leftRightDragScrolling.stop(),this._dispatchMouse(t,!0,1)))}start(e,t,n){this._lastMouseEvent=t,this._mouseState.setStartedOnLineNumbers(e===3),this._mouseState.setStartButtons(t),this._mouseState.setModifiers(t);let r=this._findMousePosition(t,!0);if(!r||!r.position)return;this._mouseState.trySetCount(t.detail,r.position),t.detail=this._mouseState.count;let i=this._context.configuration.options;if(!i.get(104)&&i.get(42)&&!i.get(28)&&!this._mouseState.altKey&&t.detail<2&&!this._isActive&&!this._currentSelection.isEmpty()&&r.type===6&&r.position&&this._currentSelection.containsPosition(r.position)){this._mouseState.isDragAndDrop=!0,this._isActive=!0,this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode,n,t.buttons,e=>this._onMouseDownThenMove(e),e=>{let t=this._findMousePosition(this._lastMouseEvent,!1);ft(e)?this._viewController.emitMouseDropCanceled():this._viewController.emitMouseDrop({event:this._lastMouseEvent,target:t?this._createMouseTarget(this._lastMouseEvent,!0):null}),this._stop()});return}this._mouseState.isDragAndDrop=!1,this._dispatchMouse(r,t.shiftKey,1),this._isActive||(this._isActive=!0,this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode,n,t.buttons,e=>this._onMouseDownThenMove(e),()=>this._stop()))}_stop(){this._isActive=!1,this._topBottomDragScrolling.stop(),this._leftRightDragScrolling.stop()}onHeightChanged(){this._mouseMoveMonitor.stopMonitoring()}onPointerUp(){this._mouseMoveMonitor.stopMonitoring()}onCursorStateChanged(e){this._currentSelection=e.selections[0]}_getPositionOutsideEditor(e){let t=e.editorPos,n=this._context.viewModel,r=this._context.viewLayout,i=this._getMouseColumn(e);if(e.posy<t.y){let n=t.y-e.posy,a=Math.max(r.getCurrentScrollTop()-n,0),o=$a.getZoneAtCoord(this._context,a);if(o){let e=this._helpPositionJumpOverViewZone(o);if(e)return G.createOutsideEditor(i,e,`above`,n)}let s=r.getLineNumberAtVerticalOffset(a);return G.createOutsideEditor(i,new b(s,1),`above`,n)}if(e.posy>t.y+t.height){let a=e.posy-t.y-t.height,o=r.getCurrentScrollTop()+e.relativePos.y,s=$a.getZoneAtCoord(this._context,o);if(s){let e=this._helpPositionJumpOverViewZone(s);if(e)return G.createOutsideEditor(i,e,`below`,a)}let c=r.getLineNumberAtVerticalOffset(o);return G.createOutsideEditor(i,new b(c,n.getLineMaxColumn(c)),`below`,a)}let a=r.getLineNumberAtVerticalOffset(r.getCurrentScrollTop()+e.relativePos.y),o=this._context.configuration.options.get(165),s=o.contentLeft;if(e.relativePos.x<=s){let t=s-e.relativePos.x;return G.createOutsideEditor(i,new b(a,1),`left`,t)}let c=o.minimap.minimapLeft===0?o.width-o.verticalScrollbarWidth:o.minimap.minimapLeft;if(e.relativePos.x>=c){let t=e.relativePos.x-c;return G.createOutsideEditor(i,new b(a,n.getLineMaxColumn(a)),`right`,t)}return null}_findMousePosition(e,t){let n=this._getPositionOutsideEditor(e);if(n)return n;let r=this._createMouseTarget(e,t);if(!r.position)return null;if(r.type===8||r.type===5){let e=this._helpPositionJumpOverViewZone(r.detail);if(e)return G.createViewZone(r.type,r.element,r.mouseColumn,e,r.detail)}return r}_helpPositionJumpOverViewZone(e){let t=new b(this._currentSelection.selectionStartLineNumber,this._currentSelection.selectionStartColumn),n=e.positionBefore,r=e.positionAfter;return n&&r?n.isBefore(t)?n:r:null}_dispatchMouse(e,t,n){e.position&&this._viewController.dispatchMouse({position:e.position,mouseColumn:e.mouseColumn,startedOnLineNumbers:this._mouseState.startedOnLineNumbers,revealType:n,inSelectionMode:t,mouseDownCount:this._mouseState.count,altKey:this._mouseState.altKey,ctrlKey:this._mouseState.ctrlKey,metaKey:this._mouseState.metaKey,shiftKey:this._mouseState.shiftKey,leftButton:this._mouseState.leftButton,middleButton:this._mouseState.middleButton,onInjectedText:e.type===6&&e.detail.injectedText!==null})}},go=class e{static{this.CLEAR_MOUSE_DOWN_COUNT_TIME=400}get altKey(){return this._altKey}get ctrlKey(){return this._ctrlKey}get metaKey(){return this._metaKey}get shiftKey(){return this._shiftKey}get leftButton(){return this._leftButton}get middleButton(){return this._middleButton}get startedOnLineNumbers(){return this._startedOnLineNumbers}constructor(){this._altKey=!1,this._ctrlKey=!1,this._metaKey=!1,this._shiftKey=!1,this._leftButton=!1,this._middleButton=!1,this._startedOnLineNumbers=!1,this._lastMouseDownPosition=null,this._lastMouseDownPositionEqualCount=0,this._lastMouseDownCount=0,this._lastSetMouseDownCountTime=0,this.isDragAndDrop=!1}get count(){return this._lastMouseDownCount}setModifiers(e){this._altKey=e.altKey,this._ctrlKey=e.ctrlKey,this._metaKey=e.metaKey,this._shiftKey=e.shiftKey}setStartButtons(e){this._leftButton=e.leftButton,this._middleButton=e.middleButton}setStartedOnLineNumbers(e){this._startedOnLineNumbers=e}trySetCount(t,n){let r=new Date().getTime();r-this._lastSetMouseDownCountTime>e.CLEAR_MOUSE_DOWN_COUNT_TIME&&(t=1),this._lastSetMouseDownCountTime=r,t>this._lastMouseDownCount+1&&(t=this._lastMouseDownCount+1),this._lastMouseDownPosition&&this._lastMouseDownPosition.equals(n)?this._lastMouseDownPositionEqualCount++:this._lastMouseDownPositionEqualCount=1,this._lastMouseDownPosition=n,this._lastMouseDownCount=Math.min(t,this._lastMouseDownPositionEqualCount)}};function _o(e,t,n,r){let i=e.getPlainTextToCopy(t,n,Ae),a=e.model.getEOL(),o=n&&t.length===1&&t[0].isEmpty(),s=Array.isArray(i)?i:null,c=Array.isArray(i)?i.join(a):i,l,u=null;if(yo.forceCopyWithSyntaxHighlighting||r&&c.length<65536){let r=e.getRichTextToCopy(t,n);r&&(l=r.html,u=r.mode)}return{isFromEmptySelection:o,multicursorText:s,text:c,html:l,mode:u}}var vo=class e{static{this.INSTANCE=new e}constructor(){this._lastState=null}set(e,t){this._lastState={lastCopiedValue:e,data:t}}get(e){return this._lastState&&this._lastState.lastCopiedValue===e?this._lastState.data:(this._lastState=null,null)}},yo={forceCopyWithSyntaxHighlighting:!1},bo={getTextData(e){let t=e.getData(cr.text),n=null,r=e.getData(`vscode-editor-data`);if(typeof r==`string`)try{n=JSON.parse(r),n.version!==1&&(n=null)}catch{}return t.length===0&&n===null&&e.files.length>0?[Array.prototype.slice.call(e.files,0).map(e=>e.name).join(`
`),null]:[t,n]},setTextData(e,t,n,r){e.setData(cr.text,t),typeof n==`string`&&e.setData(`text/html`,n),e.setData(`vscode-editor-data`,JSON.stringify(r))}},xo=class e{static{this.EMPTY=new e(``,0,0,null,void 0)}constructor(e,t,n,r,i){this.value=e,this.selectionStart=t,this.selectionEnd=n,this.selection=r,this.newlineCountBeforeSelection=i}toString(){return`[ <${this.value}>, selectionStart: ${this.selectionStart}, selectionEnd: ${this.selectionEnd}]`}static readFromTextArea(t,n){let r=t.getValue(),i=t.getSelectionStart(),a=t.getSelectionEnd(),o;return n&&r.substring(0,i)===n.value.substring(0,n.selectionStart)&&(o=n.newlineCountBeforeSelection),new e(r,i,a,null,o)}collapseSelection(){return this.selectionStart===this.value.length?this:new e(this.value,this.value.length,this.value.length,null,void 0)}isWrittenToTextArea(e,t){let n=this.value===e.getValue();return t?this.selectionStart===e.getSelectionStart()&&this.selectionEnd===e.getSelectionEnd()&&n:n}writeToTextArea(e,t,n){t.setValue(e,this.value),n&&t.setSelectionRange(e,this.selectionStart,this.selectionEnd)}deduceEditorPosition(e){if(e<=this.selectionStart){let t=this.value.substring(e,this.selectionStart);return this._finishDeduceEditorPosition(this.selection?.getStartPosition()??null,t,-1)}if(e>=this.selectionEnd){let t=this.value.substring(this.selectionEnd,e);return this._finishDeduceEditorPosition(this.selection?.getEndPosition()??null,t,1)}let t=this.value.substring(this.selectionStart,e);if(t.indexOf(`…`)===-1)return this._finishDeduceEditorPosition(this.selection?.getStartPosition()??null,t,1);let n=this.value.substring(e,this.selectionEnd);return this._finishDeduceEditorPosition(this.selection?.getEndPosition()??null,n,-1)}_finishDeduceEditorPosition(e,t,n){let r=0,i=-1;for(;(i=t.indexOf(`
`,i+1))!==-1;)r++;return[e,n*t.length,r]}static deduceInput(e,t,n){if(!e)return{text:``,replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};let r=Math.min(re(e.value,t.value),e.selectionStart,t.selectionStart),i=Math.min(f(e.value,t.value),e.value.length-e.selectionEnd,t.value.length-t.selectionEnd);e.value.substring(r,e.value.length-i);let a=t.value.substring(r,t.value.length-i),o=e.selectionStart-r,s=e.selectionEnd-r;return t.selectionStart-r===t.selectionEnd-r?{text:a,replacePrevCharCnt:e.selectionStart-r,replaceNextCharCnt:0,positionDelta:0}:{text:a,replacePrevCharCnt:s-o,replaceNextCharCnt:0,positionDelta:0}}static deduceAndroidCompositionInput(e,t){if(!e)return{text:``,replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};if(e.value===t.value)return{text:``,replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:t.selectionEnd-e.selectionEnd};let n=Math.min(re(e.value,t.value),e.selectionEnd),r=Math.min(f(e.value,t.value),e.value.length-e.selectionEnd),i=e.value.substring(n,e.value.length-r),a=t.value.substring(n,t.value.length-r);e.selectionStart-n;let o=e.selectionEnd-n;t.selectionStart-n;let s=t.selectionEnd-n;return{text:a,replacePrevCharCnt:o,replaceNextCharCnt:i.length-o,positionDelta:s-a.length}}static fromScreenReaderContentState(t){return new e(t.value,t.selectionStart,t.selectionEnd,t.selection,t.newlineCountBeforeSelection)}},So=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},Co=function(e,t){return function(n,r){t(n,r,e)}},wo;(function(e){e.Tap=`-monaco-textarea-synthetic-tap`})(wo||={});var To=class{constructor(){this._lastTypeTextLength=0}handleCompositionUpdate(e){e||=``;let t={text:e,replacePrevCharCnt:this._lastTypeTextLength,replaceNextCharCnt:0,positionDelta:0};return this._lastTypeTextLength=e.length,t}},Eo=class extends i{get textAreaState(){return this._textAreaState}constructor(e,t,n,r,i,a){super(),this._host=e,this._textArea=t,this._OS=n,this._browser=r,this._accessibilityService=i,this._logService=a,this._onFocus=this._register(new k),this.onFocus=this._onFocus.event,this._onBlur=this._register(new k),this.onBlur=this._onBlur.event,this._onKeyDown=this._register(new k),this.onKeyDown=this._onKeyDown.event,this._onKeyUp=this._register(new k),this.onKeyUp=this._onKeyUp.event,this._onCut=this._register(new k),this.onCut=this._onCut.event,this._onPaste=this._register(new k),this.onPaste=this._onPaste.event,this._onType=this._register(new k),this.onType=this._onType.event,this._onCompositionStart=this._register(new k),this.onCompositionStart=this._onCompositionStart.event,this._onCompositionUpdate=this._register(new k),this.onCompositionUpdate=this._onCompositionUpdate.event,this._onCompositionEnd=this._register(new k),this.onCompositionEnd=this._onCompositionEnd.event,this._onSelectionChangeRequest=this._register(new k),this.onSelectionChangeRequest=this._onSelectionChangeRequest.event,this._asyncFocusGainWriteScreenReaderContent=this._register(new o),this._asyncTriggerCut=this._register(new s(()=>this._onCut.fire(),0)),this._textAreaState=xo.EMPTY,this._selectionChangeListener=null,this._accessibilityService.isScreenReaderOptimized()&&this.writeNativeTextAreaContent(`ctor`),this._register(Te.runAndSubscribe(this._accessibilityService.onDidChangeScreenReaderOptimized,()=>{this._accessibilityService.isScreenReaderOptimized()&&!this._asyncFocusGainWriteScreenReaderContent.value?this._asyncFocusGainWriteScreenReaderContent.value=this._register(new s(()=>this.writeNativeTextAreaContent(`asyncFocusGain`),0)):this._asyncFocusGainWriteScreenReaderContent.clear()})),this._hasFocus=!1,this._currentComposition=null;let c=null;this._register(this._textArea.onKeyDown(e=>{let t=new nt(e);(t.keyCode===114||this._currentComposition&&t.keyCode===1)&&t.stopPropagation(),t.equals(9)&&t.preventDefault(),c=t,this._onKeyDown.fire(t)})),this._register(this._textArea.onKeyUp(e=>{let t=new nt(e);this._onKeyUp.fire(t)})),this._register(this._textArea.onCompositionStart(e=>{let t=new To;if(this._currentComposition){this._currentComposition=t;return}if(this._currentComposition=t,this._OS===2&&c&&c.equals(114)&&this._textAreaState.selectionStart===this._textAreaState.selectionEnd&&this._textAreaState.selectionStart>0&&this._textAreaState.value.substr(this._textAreaState.selectionStart-1,1)===e.data&&(c.code===`ArrowRight`||c.code===`ArrowLeft`)){t.handleCompositionUpdate(`x`),this._onCompositionStart.fire({data:e.data});return}if(this._browser.isAndroid){this._onCompositionStart.fire({data:e.data});return}this._onCompositionStart.fire({data:e.data})})),this._register(this._textArea.onCompositionUpdate(e=>{let t=this._currentComposition;if(!t)return;if(this._browser.isAndroid){let t=xo.readFromTextArea(this._textArea,this._textAreaState),n=xo.deduceAndroidCompositionInput(this._textAreaState,t);this._textAreaState=t,this._onType.fire(n),this._onCompositionUpdate.fire(e);return}let n=t.handleCompositionUpdate(e.data);this._textAreaState=xo.readFromTextArea(this._textArea,this._textAreaState),this._onType.fire(n),this._onCompositionUpdate.fire(e)})),this._register(this._textArea.onCompositionEnd(e=>{let t=this._currentComposition;if(!t)return;if(this._currentComposition=null,this._browser.isAndroid){let e=xo.readFromTextArea(this._textArea,this._textAreaState),t=xo.deduceAndroidCompositionInput(this._textAreaState,e);this._textAreaState=e,this._onType.fire(t),this._onCompositionEnd.fire();return}let n=t.handleCompositionUpdate(e.data);this._textAreaState=xo.readFromTextArea(this._textArea,this._textAreaState),this._onType.fire(n),this._onCompositionEnd.fire()})),this._register(this._textArea.onInput(e=>{if(this._textArea.setIgnoreSelectionChangeTime(`received input event`),this._currentComposition)return;let t=xo.readFromTextArea(this._textArea,this._textAreaState),n=xo.deduceInput(this._textAreaState,t,this._OS===2);n.replacePrevCharCnt===0&&n.text.length===1&&(ce(n.text.charCodeAt(0))||n.text.charCodeAt(0)===127)||(this._textAreaState=t,(n.text!==``||n.replacePrevCharCnt!==0||n.replaceNextCharCnt!==0||n.positionDelta!==0)&&(e.inputType===`insertFromPaste`?this._onPaste.fire({text:n.text,metadata:vo.INSTANCE.get(n.text)}):this._onType.fire(n)))})),this._register(this._textArea.onCut(e=>{this._logService.trace(`TextAreaInput#onCut`,e),this._textArea.setIgnoreSelectionChangeTime(`received cut event`),this._ensureClipboardGetsEditorSelection(e),this._asyncTriggerCut.schedule()})),this._register(this._textArea.onCopy(e=>{this._logService.trace(`TextAreaInput#onCopy`,e),this._ensureClipboardGetsEditorSelection(e)})),this._register(this._textArea.onPaste(e=>{if(this._logService.trace(`TextAreaInput#onPaste`,e),this._textArea.setIgnoreSelectionChangeTime(`received paste event`),e.preventDefault(),!e.clipboardData)return;let[t,n]=bo.getTextData(e.clipboardData);this._logService.trace(`TextAreaInput#onPaste with id : `,n?.id,` with text.length: `,t.length),t&&(n||=vo.INSTANCE.get(t),this._logService.trace(`TextAreaInput#onPaste (before onPaste)`),this._onPaste.fire({text:t,metadata:n}))})),this._register(this._textArea.onFocus(()=>{let e=this._hasFocus;this._setHasFocus(!0),this._accessibilityService.isScreenReaderOptimized()&&this._browser.isSafari&&!e&&this._hasFocus&&(this._asyncFocusGainWriteScreenReaderContent.value||(this._asyncFocusGainWriteScreenReaderContent.value=new s(()=>this.writeNativeTextAreaContent(`asyncFocusGain`),0)),this._asyncFocusGainWriteScreenReaderContent.value.schedule())})),this._register(this._textArea.onBlur(()=>{this._currentComposition&&(this._currentComposition=null,this.writeNativeTextAreaContent(`blurWithoutCompositionEnd`),this._onCompositionEnd.fire()),this._setHasFocus(!1)})),this._register(this._textArea.onSyntheticTap(()=>{this._browser.isAndroid&&this._currentComposition&&(this._currentComposition=null,this.writeNativeTextAreaContent(`tapWithoutCompositionEnd`),this._onCompositionEnd.fire())}))}_installSelectionChangeListener(){let e=0;return P(this._textArea.ownerDocument,`selectionchange`,t=>{if(na.onSelectionChange(),!this._hasFocus||this._currentComposition||!this._browser.isChrome)return;let n=Date.now(),r=n-e;if(e=n,r<5)return;let i=n-this._textArea.getIgnoreSelectionChangeTime();if(this._textArea.resetSelectionChangeTime(),i<100||!this._textAreaState.selection)return;let a=this._textArea.getValue();if(this._textAreaState.value!==a)return;let o=this._textArea.getSelectionStart(),s=this._textArea.getSelectionEnd();if(this._textAreaState.selectionStart===o&&this._textAreaState.selectionEnd===s)return;let c=this._textAreaState.deduceEditorPosition(o),l=this._host.deduceModelPosition(c[0],c[1],c[2]),u=this._textAreaState.deduceEditorPosition(s),d=this._host.deduceModelPosition(u[0],u[1],u[2]),f=new L(l.lineNumber,l.column,d.lineNumber,d.column);this._onSelectionChangeRequest.fire(f)})}dispose(){super.dispose(),this._selectionChangeListener&&=(this._selectionChangeListener.dispose(),null)}focusTextArea(){this._setHasFocus(!0),this.refreshFocusState()}isFocused(){return this._hasFocus}refreshFocusState(){this._setHasFocus(this._textArea.hasFocus())}_setHasFocus(e){this._hasFocus!==e&&(this._hasFocus=e,this._selectionChangeListener&&=(this._selectionChangeListener.dispose(),null),this._hasFocus&&(this._selectionChangeListener=this._installSelectionChangeListener()),this._hasFocus&&this.writeNativeTextAreaContent(`focusgain`),this._hasFocus?this._onFocus.fire():this._onBlur.fire())}_setAndWriteTextAreaState(e,t){this._hasFocus||(t=t.collapseSelection()),t.isWrittenToTextArea(this._textArea,this._hasFocus)||this._logService.trace(`writeTextAreaState(reason: ${e})`),t.writeToTextArea(e,this._textArea,this._hasFocus),this._textAreaState=t}writeNativeTextAreaContent(e){!this._accessibilityService.isScreenReaderOptimized()&&e===`render`||this._currentComposition||this._setAndWriteTextAreaState(e,this._host.getScreenReaderContent())}_ensureClipboardGetsEditorSelection(e){let t=this._host.getDataToCopy(),n;this._logService.getLevel()===te.Trace&&(n=xr());let r={version:1,id:n,isFromEmptySelection:t.isFromEmptySelection,multicursorText:t.multicursorText,mode:t.mode};vo.INSTANCE.set(this._browser.isFirefox?t.text.replace(/\r\n/g,`
`):t.text,r),e.preventDefault(),e.clipboardData&&bo.setTextData(e.clipboardData,t.text,t.html,r),this._logService.trace(`TextAreaEditContextInput#_ensureClipboardGetsEditorSelection with id : `,n,` with text.length: `,t.text.length)}};Eo=So([Co(4,Lr),Co(5,p)],Eo);var Do=class extends i{get ownerDocument(){return this._actual.ownerDocument}constructor(e){super(),this._actual=e,this._onSyntheticTap=this._register(new k),this.onSyntheticTap=this._onSyntheticTap.event,this._ignoreSelectionChangeTime=0,this.onKeyDown=this._register(new Pr(this._actual,`keydown`)).event,this.onKeyPress=this._register(new Pr(this._actual,`keypress`)).event,this.onKeyUp=this._register(new Pr(this._actual,`keyup`)).event,this.onCompositionStart=this._register(new Pr(this._actual,`compositionstart`)).event,this.onCompositionUpdate=this._register(new Pr(this._actual,`compositionupdate`)).event,this.onCompositionEnd=this._register(new Pr(this._actual,`compositionend`)).event,this.onBeforeInput=this._register(new Pr(this._actual,`beforeinput`)).event,this.onInput=this._register(new Pr(this._actual,`input`)).event,this.onCut=this._register(new Pr(this._actual,`cut`)).event,this.onCopy=this._register(new Pr(this._actual,`copy`)).event,this.onPaste=this._register(new Pr(this._actual,`paste`)).event,this.onFocus=this._register(new Pr(this._actual,`focus`)).event,this.onBlur=this._register(new Pr(this._actual,`blur`)).event,this._register(this.onKeyDown(()=>na.onKeyDown())),this._register(this.onBeforeInput(()=>na.onBeforeInput())),this._register(this.onInput(()=>na.onInput())),this._register(this.onKeyUp(()=>na.onKeyUp())),this._register(P(this._actual,wo.Tap,()=>this._onSyntheticTap.fire()))}hasFocus(){let e=St(this._actual);return e?e.activeElement===this._actual:this._actual.isConnected?Xe()===this._actual:!1}setIgnoreSelectionChangeTime(e){this._ignoreSelectionChangeTime=Date.now()}getIgnoreSelectionChangeTime(){return this._ignoreSelectionChangeTime}resetSelectionChangeTime(){this._ignoreSelectionChangeTime=0}getValue(){return this._actual.value}setValue(e,t){let n=this._actual;n.value!==t&&(this.setIgnoreSelectionChangeTime(`setValue`),n.value=t)}getSelectionStart(){return this._actual.selectionDirection===`backward`?this._actual.selectionEnd:this._actual.selectionStart}getSelectionEnd(){return this._actual.selectionDirection===`backward`?this._actual.selectionStart:this._actual.selectionEnd}setSelectionRange(e,t,n){let r=this._actual,i=null,a=St(r);i=a?a.activeElement:Xe();let o=M(i),s=i===r,c=r.selectionStart,l=r.selectionEnd;if(s&&c===t&&l===n){at&&o.parent!==o&&r.focus();return}if(s){this.setIgnoreSelectionChangeTime(`setSelectionRange`),r.setSelectionRange(t,n),at&&o.parent!==o&&r.focus();return}try{let e=Mt(r);this.setIgnoreSelectionChangeTime(`setSelectionRange`),r.focus(),r.setSelectionRange(t,n),Nt(r,e)}catch{}}},Oo=class extends mo{constructor(e,t,n){super(e,t,n),this._register(jr.addTarget(this.viewHelper.linesContentDomNode)),this._register(P(this.viewHelper.linesContentDomNode,Ir.Tap,e=>this.onTap(e))),this._register(P(this.viewHelper.linesContentDomNode,Ir.Change,e=>this.onChange(e))),this._register(P(this.viewHelper.linesContentDomNode,Ir.Contextmenu,e=>this._onContextMenu(new vi(e,!1,this.viewHelper.viewDomNode),!1))),this._lastPointerType=`mouse`,this._register(P(this.viewHelper.linesContentDomNode,`pointerdown`,e=>{let t=e.pointerType;if(t===`mouse`){this._lastPointerType=`mouse`;return}else t===`touch`?this._lastPointerType=`touch`:this._lastPointerType=`pen`}));let r=new bi(this.viewHelper.viewDomNode);this._register(r.onPointerMove(this.viewHelper.viewDomNode,e=>this._onMouseMove(e))),this._register(r.onPointerUp(this.viewHelper.viewDomNode,e=>this._onMouseUp(e))),this._register(r.onPointerLeave(this.viewHelper.viewDomNode,e=>this._onMouseLeave(e))),this._register(r.onPointerDown(this.viewHelper.viewDomNode,(e,t)=>this._onMouseDown(e,t)))}onTap(e){!e.initialTarget||!this.viewHelper.linesContentDomNode.contains(e.initialTarget)||(e.preventDefault(),this.viewHelper.focusTextArea(),this._dispatchGesture(e,!1))}onChange(e){this._lastPointerType===`touch`&&this._context.viewModel.viewLayout.deltaScrollNow(-e.translationX,-e.translationY),this._lastPointerType===`pen`&&this._dispatchGesture(e,!0)}_dispatchGesture(e,t){let n=this._createMouseTarget(new vi(e,!1,this.viewHelper.viewDomNode),!1);n.position&&this.viewController.dispatchMouse({position:n.position,mouseColumn:n.position.column,startedOnLineNumbers:!1,revealType:1,mouseDownCount:e.tapCount,inSelectionMode:t,altKey:!1,ctrlKey:!1,metaKey:!1,shiftKey:!1,leftButton:!1,middleButton:!1,onInjectedText:n.type===6&&n.detail.injectedText!==null})}_onMouseDown(e,t){e.browserEvent.pointerType!==`touch`&&super._onMouseDown(e,t)}},ko=class extends mo{constructor(e,t,n){super(e,t,n),this._register(jr.addTarget(this.viewHelper.linesContentDomNode)),this._register(P(this.viewHelper.linesContentDomNode,Ir.Tap,e=>this.onTap(e))),this._register(P(this.viewHelper.linesContentDomNode,Ir.Change,e=>this.onChange(e))),this._register(P(this.viewHelper.linesContentDomNode,Ir.Contextmenu,e=>this._onContextMenu(new vi(e,!1,this.viewHelper.viewDomNode),!1)))}onTap(e){e.preventDefault(),this.viewHelper.focusTextArea();let t=this._createMouseTarget(new vi(e,!1,this.viewHelper.viewDomNode),!1);if(t.position){let e=document.createEvent(`CustomEvent`);e.initEvent(wo.Tap,!1,!0),this.viewHelper.dispatchTextAreaEvent(e),this.viewController.moveTo(t.position,1)}}onChange(e){this._context.viewModel.viewLayout.deltaScrollNow(-e.translationX,-e.translationY)}},Ao=class extends i{constructor(e,t,n){super(),(g||d&&C)&&Re.pointerEvents?this.handler=this._register(new Oo(e,t,n)):vt.TouchEvent?this.handler=this._register(new ko(e,t,n)):this.handler=this._register(new mo(e,t,n))}getTargetAtClientPoint(e,t){return this.handler.getTargetAtClientPoint(e,t)}},jo=()=>!0,Mo=()=>!1,No=e=>e===` `||e===` `,Po=class{static shouldRecreate(e){return e.hasChanged(165)||e.hasChanged(148)||e.hasChanged(45)||e.hasChanged(85)||e.hasChanged(88)||e.hasChanged(89)||e.hasChanged(10)||e.hasChanged(11)||e.hasChanged(15)||e.hasChanged(13)||e.hasChanged(14)||e.hasChanged(20)||e.hasChanged(145)||e.hasChanged(141)||e.hasChanged(59)||e.hasChanged(104)||e.hasChanged(147)||e.hasChanged(93)}constructor(e,t,n,r){this.languageConfigurationService=r,this._cursorMoveConfigurationBrand=void 0,this._languageId=e;let i=n.options,a=i.get(165),o=i.get(59);this.readOnly=i.get(104),this.tabSize=t.tabSize,this.indentSize=t.indentSize,this.insertSpaces=t.insertSpaces,this.stickyTabStops=i.get(132),this.lineHeight=o.lineHeight,this.typicalHalfwidthCharacterWidth=o.typicalHalfwidthCharacterWidth,this.pageSize=Math.max(1,Math.floor(a.height/this.lineHeight)-2),this.useTabStops=i.get(145),this.trimWhitespaceOnDelete=i.get(141),this.wordSeparators=i.get(148),this.emptySelectionClipboard=i.get(45),this.copyWithSyntaxHighlighting=i.get(31),this.multiCursorMergeOverlapping=i.get(85),this.multiCursorPaste=i.get(88),this.multiCursorLimit=i.get(89),this.autoClosingBrackets=i.get(10),this.autoClosingComments=i.get(11),this.autoClosingQuotes=i.get(15),this.autoClosingDelete=i.get(13),this.autoClosingOvertype=i.get(14),this.autoSurround=i.get(20),this.autoIndent=i.get(16),this.wordSegmenterLocales=i.get(147),this.overtypeOnPaste=i.get(93),this.surroundingPairs={},this._electricChars=null,this.shouldAutoCloseBefore={quote:this._getShouldAutoClose(e,this.autoClosingQuotes,!0),comment:this._getShouldAutoClose(e,this.autoClosingComments,!1),bracket:this._getShouldAutoClose(e,this.autoClosingBrackets,!1)},this.autoClosingPairs=this.languageConfigurationService.getLanguageConfiguration(e).getAutoClosingPairs();let s=this.languageConfigurationService.getLanguageConfiguration(e).getSurroundingPairs();if(s)for(let e of s)this.surroundingPairs[e.open]=e.close;let c=this.languageConfigurationService.getLanguageConfiguration(e).comments;this.blockCommentStartToken=c?.blockCommentStartToken??null}get electricChars(){if(!this._electricChars){this._electricChars={};let e=this.languageConfigurationService.getLanguageConfiguration(this._languageId).electricCharacter?.getElectricCharacters();if(e)for(let t of e)this._electricChars[t]=!0}return this._electricChars}get inputMode(){return Ki.getInputMode()}onElectricCharacter(e,t,n){let r=zn(t,n-1),i=this.languageConfigurationService.getLanguageConfiguration(r.languageId).electricCharacter;return i?i.onElectricCharacter(e,r,n-r.firstCharOffset):null}normalizeIndentation(e){return Ht(e,this.indentSize,this.insertSpaces)}_getShouldAutoClose(e,t,n){switch(t){case`beforeWhitespace`:return No;case`languageDefined`:return this._getLanguageDefinedShouldAutoClose(e,n);case`always`:return jo;case`never`:return Mo}}_getLanguageDefinedShouldAutoClose(e,t){let n=this.languageConfigurationService.getLanguageConfiguration(e).getAutoCloseBeforeSet(t);return e=>n.indexOf(e)!==-1}visibleColumnFromColumn(e,t){return z.visibleColumnFromColumn(e.getLineContent(t.lineNumber),t.column,this.tabSize)}columnFromVisibleColumn(e,t,n){let r=z.columnFromVisibleColumn(e.getLineContent(t),n,this.tabSize),i=e.getLineMinColumn(t);if(r<i)return i;let a=e.getLineMaxColumn(t);return r>a?a:r}},K=class e{static fromModelState(e){return new Fo(e)}static fromViewState(e){return new Io(e)}static fromModelSelection(t){let n=L.liftSelection(t),r=new Lo(j.fromPositions(n.getSelectionStart()),0,0,n.getPosition(),0);return e.fromModelState(r)}static fromModelSelections(e){let t=[];for(let n=0,r=e.length;n<r;n++)t[n]=this.fromModelSelection(e[n]);return t}constructor(e,t){this._cursorStateBrand=void 0,this.modelState=e,this.viewState=t}equals(e){return this.viewState.equals(e.viewState)&&this.modelState.equals(e.modelState)}},Fo=class{constructor(e){this.modelState=e,this.viewState=null}},Io=class{constructor(e){this.modelState=null,this.viewState=e}},Lo=class e{constructor(t,n,r,i,a){this.selectionStart=t,this.selectionStartKind=n,this.selectionStartLeftoverVisibleColumns=r,this.position=i,this.leftoverVisibleColumns=a,this._singleCursorStateBrand=void 0,this.selection=e._computeSelection(this.selectionStart,this.position)}equals(e){return this.selectionStartLeftoverVisibleColumns===e.selectionStartLeftoverVisibleColumns&&this.leftoverVisibleColumns===e.leftoverVisibleColumns&&this.selectionStartKind===e.selectionStartKind&&this.position.equals(e.position)&&this.selectionStart.equalsRange(e.selectionStart)}hasSelection(){return!this.selection.isEmpty()||!this.selectionStart.isEmpty()}move(t,n,r,i){return t?new e(this.selectionStart,this.selectionStartKind,this.selectionStartLeftoverVisibleColumns,new b(n,r),i):new e(new j(n,r,n,r),0,i,new b(n,r),i)}static _computeSelection(e,t){return e.isEmpty()||!t.isBeforeOrEqual(e.getStartPosition())?L.fromPositions(e.getStartPosition(),t):L.fromPositions(e.getEndPosition(),t)}},Ro=class{constructor(e,t,n){this._editOperationResultBrand=void 0,this.type=e,this.commands=t,this.shouldPushStackElementBefore=n.shouldPushStackElementBefore,this.shouldPushStackElementAfter=n.shouldPushStackElementAfter}};function zo(e){return e===`'`||e===`"`||e==="`"}var Bo=class e{static columnSelect(e,t,n,r,i,a){let o=Math.abs(i-n)+1,s=n>i,c=r>a,l=r<a,u=[];for(let i=0;i<o;i++){let o=n+(s?-i:i),d=e.columnFromVisibleColumn(t,o,r),f=e.columnFromVisibleColumn(t,o,a),p=e.visibleColumnFromColumn(t,new b(o,d)),m=e.visibleColumnFromColumn(t,new b(o,f));l&&(p>a||m<r)||c&&(m>r||p<a)||u.push(new Lo(new j(o,d,o,d),0,0,new b(o,f),0))}if(u.length===0)for(let e=0;e<o;e++){let r=n+(s?-e:e),i=t.getLineMaxColumn(r);u.push(new Lo(new j(r,i,r,i),0,0,new b(r,i),0))}return{viewStates:u,reversed:s,fromLineNumber:n,fromVisualColumn:r,toLineNumber:i,toVisualColumn:a}}static columnSelectLeft(t,n,r){let i=r.toViewVisualColumn;return i>0&&i--,e.columnSelect(t,n,r.fromViewLineNumber,r.fromViewVisualColumn,r.toViewLineNumber,i)}static columnSelectRight(e,t,n){let r=0,i=Math.min(n.fromViewLineNumber,n.toViewLineNumber),a=Math.max(n.fromViewLineNumber,n.toViewLineNumber);for(let n=i;n<=a;n++){let i=t.getLineMaxColumn(n),a=e.visibleColumnFromColumn(t,new b(n,i));r=Math.max(r,a)}let o=n.toViewVisualColumn;return o<r&&o++,this.columnSelect(e,t,n.fromViewLineNumber,n.fromViewVisualColumn,n.toViewLineNumber,o)}static columnSelectUp(e,t,n,r){let i=r?e.pageSize:1,a=Math.max(1,n.toViewLineNumber-i);return this.columnSelect(e,t,n.fromViewLineNumber,n.fromViewVisualColumn,a,n.toViewVisualColumn)}static columnSelectDown(e,t,n,r){let i=r?e.pageSize:1,a=Math.min(t.getLineCount(),n.toViewLineNumber+i);return this.columnSelect(e,t,n.fromViewLineNumber,n.fromViewVisualColumn,a,n.toViewVisualColumn)}},Vo=class{constructor(e,t,n){this._cursorPositionBrand=void 0,this.lineNumber=e,this.column=t,this.leftoverVisibleColumns=n}},q=class e{static leftPosition(e,t){if(t.column>e.getLineMinColumn(t.lineNumber))return t.delta(void 0,-Me(e.getLineContent(t.lineNumber),t.column-1));if(t.lineNumber>1){let n=t.lineNumber-1;return new b(n,e.getLineMaxColumn(n))}else return t}static leftPositionAtomicSoftTabs(e,t,n){if(t.column<=e.getLineIndentColumn(t.lineNumber)){let r=e.getLineMinColumn(t.lineNumber),i=e.getLineContent(t.lineNumber),a=qa.atomicPosition(i,t.column-1,n,0);if(a!==-1&&a+1>=r)return new b(t.lineNumber,a+1)}return this.leftPosition(e,t)}static left(t,n,r){let i=t.stickyTabStops?e.leftPositionAtomicSoftTabs(n,r,t.tabSize):e.leftPosition(n,r);return new Vo(i.lineNumber,i.column,0)}static moveLeft(t,n,r,i,a){let o,s;if(r.hasSelection()&&!i)o=r.selection.startLineNumber,s=r.selection.startColumn;else{let i=r.position.delta(void 0,-(a-1)),c=n.normalizePosition(e.clipPositionColumn(i,n),0),l=e.left(t,n,c);o=l.lineNumber,s=l.column}return r.move(i,o,s,0)}static clipPositionColumn(t,n){return new b(t.lineNumber,e.clipRange(t.column,n.getLineMinColumn(t.lineNumber),n.getLineMaxColumn(t.lineNumber)))}static clipRange(e,t,n){return e<t?t:e>n?n:e}static rightPosition(e,t,n){return n<e.getLineMaxColumn(t)?n+=r(e.getLineContent(t),n-1):t<e.getLineCount()&&(t+=1,n=e.getLineMinColumn(t)),new b(t,n)}static rightPositionAtomicSoftTabs(e,t,n,r,i){if(n<e.getLineIndentColumn(t)){let i=e.getLineContent(t),a=qa.atomicPosition(i,n-1,r,1);if(a!==-1)return new b(t,a+1)}return this.rightPosition(e,t,n)}static right(t,n,r){let i=t.stickyTabStops?e.rightPositionAtomicSoftTabs(n,r.lineNumber,r.column,t.tabSize,t.indentSize):e.rightPosition(n,r.lineNumber,r.column);return new Vo(i.lineNumber,i.column,0)}static moveRight(t,n,r,i,a){let o,s;if(r.hasSelection()&&!i)o=r.selection.endLineNumber,s=r.selection.endColumn;else{let i=r.position.delta(void 0,a-1),c=n.normalizePosition(e.clipPositionColumn(i,n),1),l=e.right(t,n,c);o=l.lineNumber,s=l.column}return r.move(i,o,s,0)}static vertical(e,t,n,r,i,a,o,s){let c=z.visibleColumnFromColumn(t.getLineContent(n),r,e.tabSize)+i,l=t.getLineCount(),u=n===1&&r===1,d=n===l&&r===t.getLineMaxColumn(n),f=a<n?u:d;if(n=a,n<1?(n=1,r=o?t.getLineMinColumn(n):Math.min(t.getLineMaxColumn(n),r)):n>l?(n=l,r=o?t.getLineMaxColumn(n):Math.min(t.getLineMaxColumn(n),r)):r=e.columnFromVisibleColumn(t,n,c),i=f?0:c-z.visibleColumnFromColumn(t.getLineContent(n),r,e.tabSize),s!==void 0){let e=new b(n,r),a=t.normalizePosition(e,s);i+=r-a.column,n=a.lineNumber,r=a.column}return new Vo(n,r,i)}static down(e,t,n,r,i,a,o){return this.vertical(e,t,n,r,i,n+a,o,4)}static moveDown(t,n,r,i,a){let o,s;r.hasSelection()&&!i?(o=r.selection.endLineNumber,s=r.selection.endColumn):(o=r.position.lineNumber,s=r.position.column);let c=0,l;do if(l=e.down(t,n,o+c,s,r.leftoverVisibleColumns,a,!0),n.normalizePosition(new b(l.lineNumber,l.column),2).lineNumber>o)break;while(c++<10&&o+c<n.getLineCount());return r.move(i,l.lineNumber,l.column,l.leftoverVisibleColumns)}static translateDown(t,n,r){let i=r.selection,a=e.down(t,n,i.selectionStartLineNumber,i.selectionStartColumn,r.selectionStartLeftoverVisibleColumns,1,!1),o=e.down(t,n,i.positionLineNumber,i.positionColumn,r.leftoverVisibleColumns,1,!1);return new Lo(new j(a.lineNumber,a.column,a.lineNumber,a.column),0,a.leftoverVisibleColumns,new b(o.lineNumber,o.column),o.leftoverVisibleColumns)}static up(e,t,n,r,i,a,o){return this.vertical(e,t,n,r,i,n-a,o,3)}static moveUp(t,n,r,i,a){let o,s;r.hasSelection()&&!i?(o=r.selection.startLineNumber,s=r.selection.startColumn):(o=r.position.lineNumber,s=r.position.column);let c=e.up(t,n,o,s,r.leftoverVisibleColumns,a,!0);return r.move(i,c.lineNumber,c.column,c.leftoverVisibleColumns)}static translateUp(t,n,r){let i=r.selection,a=e.up(t,n,i.selectionStartLineNumber,i.selectionStartColumn,r.selectionStartLeftoverVisibleColumns,1,!1),o=e.up(t,n,i.positionLineNumber,i.positionColumn,r.leftoverVisibleColumns,1,!1);return new Lo(new j(a.lineNumber,a.column,a.lineNumber,a.column),0,a.leftoverVisibleColumns,new b(o.lineNumber,o.column),o.leftoverVisibleColumns)}static _isBlankLine(e,t){return e.getLineFirstNonWhitespaceColumn(t)===0}static moveToPrevBlankLine(e,t,n,r){let i=n.position.lineNumber;for(;i>1&&this._isBlankLine(t,i);)i--;for(;i>1&&!this._isBlankLine(t,i);)i--;return n.move(r,i,t.getLineMinColumn(i),0)}static moveToNextBlankLine(e,t,n,r){let i=t.getLineCount(),a=n.position.lineNumber;for(;a<i&&this._isBlankLine(t,a);)a++;for(;a<i&&!this._isBlankLine(t,a);)a++;return n.move(r,a,t.getLineMinColumn(a),0)}static moveToBeginningOfLine(e,t,n,r){let i=n.position.lineNumber,a=t.getLineMinColumn(i),o=t.getLineFirstNonWhitespaceColumn(i)||a,s;return s=n.position.column===o?a:o,n.move(r,i,s,0)}static moveToEndOfLine(e,t,n,r,i){let a=n.position.lineNumber,o=t.getLineMaxColumn(a);return n.move(r,a,o,i?1073741824-o:0)}static moveToBeginningOfBuffer(e,t,n,r){return n.move(r,1,1,0)}static moveToEndOfBuffer(e,t,n,r){let i=t.getLineCount(),a=t.getLineMaxColumn(i);return n.move(r,i,a,0)}},Ho=class e{static deleteRight(e,t,n,r){let i=[],a=e!==3;for(let e=0,o=r.length;e<o;e++){let o=r[e],s=this.getDeleteRightRange(o,n,t);if(s.isEmpty()){i[e]=null;continue}s.startLineNumber!==s.endLineNumber&&(a=!0),i[e]=new di(s,``)}return[a,i]}static getDeleteRightRange(e,t,n){if(!e.isEmpty())return e;let r=e.getPosition(),i=q.right(n,t,r);if(n.trimWhitespaceOnDelete&&i.lineNumber!==r.lineNumber){let e=t.getLineFirstNonWhitespaceColumn(r.lineNumber)>0,n=t.getLineFirstNonWhitespaceColumn(i.lineNumber);if(e&&n>0)return new j(i.lineNumber,n,r.lineNumber,r.column)}return new j(i.lineNumber,i.column,r.lineNumber,r.column)}static isAutoClosingPairDelete(e,t,n,r,i,a,o){if(t===`never`&&n===`never`||e===`never`)return!1;for(let s=0,c=a.length;s<c;s++){let c=a[s],l=c.getPosition();if(!c.isEmpty())return!1;let u=i.getLineContent(l.lineNumber);if(l.column<2||l.column>=u.length+1)return!1;let d=u.charAt(l.column-2),f=r.get(d);if(!f)return!1;if(zo(d)){if(n===`never`)return!1}else if(t===`never`)return!1;let p=u.charAt(l.column-1),m=!1;for(let e of f)e.open===d&&e.close===p&&(m=!0);if(!m)return!1;if(e===`auto`){let e=!1;for(let t=0,n=o.length;t<n;t++){let n=o[t];if(l.lineNumber===n.startLineNumber&&l.column===n.startColumn){e=!0;break}}if(!e)return!1}}return!0}static _runAutoClosingPairDelete(e,t,n){let r=[];for(let e=0,t=n.length;e<t;e++){let t=n[e].getPosition();r[e]=new di(new j(t.lineNumber,t.column-1,t.lineNumber,t.column+1),``)}return[!0,r]}static deleteLeft(t,n,r,i,a){if(this.isAutoClosingPairDelete(n.autoClosingDelete,n.autoClosingBrackets,n.autoClosingQuotes,n.autoClosingPairs.autoClosingPairsOpenByEnd,r,i,a))return this._runAutoClosingPairDelete(n,r,i);let o=[],s=t!==2;for(let t=0,a=i.length;t<a;t++){let a=e.getDeleteLeftRange(i[t],r,n);if(a.isEmpty()){o[t]=null;continue}a.startLineNumber!==a.endLineNumber&&(s=!0),o[t]=new di(a,``)}return[s,o]}static getDeleteLeftRange(t,n,r){if(!t.isEmpty())return t;let i=t.getPosition();if(r.useTabStops&&i.column>1){let e=n.getLineContent(i.lineNumber),t=ue(e),a=t===-1?e.length+1:t+1;if(i.column<=a){let e=r.visibleColumnFromColumn(n,i),t=z.prevIndentTabStop(e,r.indentSize),a=r.columnFromVisibleColumn(n,i.lineNumber,t);return new j(i.lineNumber,a,i.lineNumber,i.column)}}return j.fromPositions(e.getPositionAfterDeleteLeft(i,n),i)}static getPositionAfterDeleteLeft(e,t){if(e.column>1){let n=Ce(e.column-1,t.getLineContent(e.lineNumber));return e.with(void 0,n+1)}else if(e.lineNumber>1){let n=e.lineNumber-1;return new b(n,t.getLineMaxColumn(n))}else return e}static cut(e,t,n){let r=[],i=null;n.sort((e,t)=>b.compare(e.getStartPosition(),t.getEndPosition()));for(let a=0,o=n.length;a<o;a++){let o=n[a];if(o.isEmpty())if(e.emptySelectionClipboard){let e=o.getPosition(),n,s,c,l;e.lineNumber<t.getLineCount()?(n=e.lineNumber,s=1,c=e.lineNumber+1,l=1):e.lineNumber>1&&i?.endLineNumber!==e.lineNumber?(n=e.lineNumber-1,s=t.getLineMaxColumn(e.lineNumber-1),c=e.lineNumber,l=t.getLineMaxColumn(e.lineNumber)):(n=e.lineNumber,s=1,c=e.lineNumber,l=t.getLineMaxColumn(e.lineNumber));let u=new j(n,s,c,l);i=u,u.isEmpty()?r[a]=null:r[a]=new di(u,``)}else r[a]=null;else r[a]=new di(o,``)}return new Ro(0,r,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}},Uo=class e{static _createWord(e,t,n,r,i){return{start:r,end:i,wordType:t,nextCharClass:n}}static _createIntlWord(e,t){return{start:e.index,end:e.index+e.segment.length,wordType:1,nextCharClass:t}}static _findPreviousWordOnLine(e,t,n){let r=t.getLineContent(n.lineNumber);return this._doFindPreviousWordOnLine(r,e,n)}static _doFindPreviousWordOnLine(e,t,n){let r=0,i=t.findPrevIntlWordBeforeOrAtOffset(e,n.column-2);for(let a=n.column-2;a>=0;a--){let n=e.charCodeAt(a),o=t.get(n);if(i&&a===i.index)return this._createIntlWord(i,o);if(o===0){if(r===2)return this._createWord(e,r,o,a+1,this._findEndOfWord(e,t,r,a+1));r=1}else if(o===2){if(r===1)return this._createWord(e,r,o,a+1,this._findEndOfWord(e,t,r,a+1));r=2}else if(o===1&&r!==0)return this._createWord(e,r,o,a+1,this._findEndOfWord(e,t,r,a+1))}return r===0?null:this._createWord(e,r,1,0,this._findEndOfWord(e,t,r,0))}static _findEndOfWord(e,t,n,r){let i=t.findNextIntlWordAtOrAfterOffset(e,r),a=e.length;for(let o=r;o<a;o++){let r=e.charCodeAt(o),a=t.get(r);if(i&&o===i.index+i.segment.length||a===1||n===1&&a===2||n===2&&a===0)return o}return a}static _findNextWordOnLine(e,t,n){let r=t.getLineContent(n.lineNumber);return this._doFindNextWordOnLine(r,e,n)}static _doFindNextWordOnLine(e,t,n){let r=0,i=e.length,a=t.findNextIntlWordAtOrAfterOffset(e,n.column-1);for(let o=n.column-1;o<i;o++){let n=e.charCodeAt(o),i=t.get(n);if(a&&o===a.index)return this._createIntlWord(a,i);if(i===0){if(r===2)return this._createWord(e,r,i,this._findStartOfWord(e,t,r,o-1),o);r=1}else if(i===2){if(r===1)return this._createWord(e,r,i,this._findStartOfWord(e,t,r,o-1),o);r=2}else if(i===1&&r!==0)return this._createWord(e,r,i,this._findStartOfWord(e,t,r,o-1),o)}return r===0?null:this._createWord(e,r,1,this._findStartOfWord(e,t,r,i-1),i)}static _findStartOfWord(e,t,n,r){let i=t.findPrevIntlWordBeforeOrAtOffset(e,r);for(let a=r;a>=0;a--){let r=e.charCodeAt(a),o=t.get(r);if(i&&a===i.index)return a;if(o===1||n===1&&o===2||n===2&&o===0)return a+1}return 0}static moveWordLeft(t,n,r,i,a){let o=r.lineNumber,s=r.column;s===1&&o>1&&(--o,s=n.getLineMaxColumn(o));let c=e._findPreviousWordOnLine(t,n,new b(o,s));if(i===0)return new b(o,c?c.start+1:1);if(i===1)return!a&&c&&c.wordType===2&&c.end-c.start===1&&c.nextCharClass===0&&(c=e._findPreviousWordOnLine(t,n,new b(o,c.start+1))),new b(o,c?c.start+1:1);if(i===3){for(;c&&c.wordType===2;)c=e._findPreviousWordOnLine(t,n,new b(o,c.start+1));return new b(o,c?c.start+1:1)}return c&&s<=c.end+1&&(c=e._findPreviousWordOnLine(t,n,new b(o,c.start+1))),new b(o,c?c.end+1:1)}static _moveWordPartLeft(e,t){let n=t.lineNumber,r=e.getLineMaxColumn(n);if(t.column===1)return n>1?new b(n-1,e.getLineMaxColumn(n-1)):t;let i=e.getLineContent(n);for(let e=t.column-1;e>1;e--){let t=i.charCodeAt(e-2),a=i.charCodeAt(e-1);if(t===95&&a!==95||t===45&&a!==45||(Fe(t)||_e(t))&&fe(a))return new b(n,e);if(fe(t)&&fe(a)&&e+1<r){let t=i.charCodeAt(e);if(Fe(t)||_e(t))return new b(n,e)}}return new b(n,1)}static moveWordRight(t,n,r,i){let a=r.lineNumber,o=r.column,s=!1;o===n.getLineMaxColumn(a)&&a<n.getLineCount()&&(s=!0,a+=1,o=1);let c=e._findNextWordOnLine(t,n,new b(a,o));if(i===2)c&&c.wordType===2&&c.end-c.start===1&&c.nextCharClass===0&&(c=e._findNextWordOnLine(t,n,new b(a,c.end+1))),o=c?c.end+1:n.getLineMaxColumn(a);else if(i===3){for(s&&(o=0);c&&(c.wordType===2||c.start+1<=o);)c=e._findNextWordOnLine(t,n,new b(a,c.end+1));o=c?c.start+1:n.getLineMaxColumn(a)}else c&&!s&&o>=c.start+1&&(c=e._findNextWordOnLine(t,n,new b(a,c.end+1))),o=c?c.start+1:n.getLineMaxColumn(a);return new b(a,o)}static _moveWordPartRight(e,t){let n=t.lineNumber,r=e.getLineMaxColumn(n);if(t.column===r)return n<e.getLineCount()?new b(n+1,1):t;let i=e.getLineContent(n);for(let e=t.column+1;e<r;e++){let t=i.charCodeAt(e-2),a=i.charCodeAt(e-1);if(t!==95&&a===95||t!==45&&a===45||(Fe(t)||_e(t))&&fe(a))return new b(n,e);if(fe(t)&&fe(a)&&e+1<r){let t=i.charCodeAt(e);if(Fe(t)||_e(t))return new b(n,e)}}return new b(n,r)}static _deleteWordLeftWhitespace(e,t){let n=e.getLineContent(t.lineNumber),r=t.column-2,i=Pe(n,r);return i+1<r?new j(t.lineNumber,i+2,t.lineNumber,t.column):null}static deleteWordLeft(t,n){let r=t.wordSeparators,i=t.model,a=t.selection,o=t.whitespaceHeuristics;if(!a.isEmpty())return a;if(Ho.isAutoClosingPairDelete(t.autoClosingDelete,t.autoClosingBrackets,t.autoClosingQuotes,t.autoClosingPairs.autoClosingPairsOpenByEnd,t.model,[t.selection],t.autoClosedCharacters)){let e=t.selection.getPosition();return new j(e.lineNumber,e.column-1,e.lineNumber,e.column+1)}let s=new b(a.positionLineNumber,a.positionColumn),c=s.lineNumber,l=s.column;if(c===1&&l===1)return null;if(o){let e=this._deleteWordLeftWhitespace(i,s);if(e)return e}let u=e._findPreviousWordOnLine(r,i,s);return n===0?u?l=u.start+1:l>1?l=1:(c--,l=i.getLineMaxColumn(c)):(u&&l<=u.end+1&&(u=e._findPreviousWordOnLine(r,i,new b(c,u.start+1))),u?l=u.end+1:l>1?l=1:(c--,l=i.getLineMaxColumn(c))),new j(c,l,s.lineNumber,s.column)}static deleteInsideWord(e,t,n){if(!n.isEmpty())return n;let r=new b(n.positionLineNumber,n.positionColumn);return this._deleteInsideWordWhitespace(t,r)||this._deleteInsideWordDetermineDeleteRange(e,t,r)}static _charAtIsWhitespace(e,t){let n=e.charCodeAt(t);return n===32||n===9}static _deleteInsideWordWhitespace(e,t){let n=e.getLineContent(t.lineNumber),r=n.length;if(r===0)return null;let i=Math.max(t.column-2,0);if(!this._charAtIsWhitespace(n,i))return null;let a=Math.min(t.column-1,r-1);if(!this._charAtIsWhitespace(n,a))return null;for(;i>0&&this._charAtIsWhitespace(n,i-1);)i--;for(;a+1<r&&this._charAtIsWhitespace(n,a+1);)a++;return new j(t.lineNumber,i+1,t.lineNumber,a+2)}static _deleteInsideWordDetermineDeleteRange(t,n,r){let i=n.getLineContent(r.lineNumber),a=i.length;if(a===0)return r.lineNumber>1?new j(r.lineNumber-1,n.getLineMaxColumn(r.lineNumber-1),r.lineNumber,1):r.lineNumber<n.getLineCount()?new j(r.lineNumber,1,r.lineNumber+1,1):new j(r.lineNumber,1,r.lineNumber,1);let o=e=>e.start+1<=r.column&&r.column<=e.end+1,s=(e,t)=>(e=Math.min(e,r.column),t=Math.max(t,r.column),new j(r.lineNumber,e,r.lineNumber,t)),c=e=>{let t=e.start+1,n=e.end+1,r=!1;for(;n-1<a&&this._charAtIsWhitespace(i,n-1);)r=!0,n++;if(!r)for(;t>1&&this._charAtIsWhitespace(i,t-2);)t--;return s(t,n)},l=e._findPreviousWordOnLine(t,n,r);if(l&&o(l))return c(l);let u=e._findNextWordOnLine(t,n,r);return u&&o(u)?c(u):l&&u?s(l.end+1,u.start+1):l?s(l.start+1,l.end+1):u?s(u.start+1,u.end+1):s(1,a+1)}static _deleteWordPartLeft(t,n){if(!n.isEmpty())return n;let r=n.getPosition(),i=e._moveWordPartLeft(t,r);return new j(r.lineNumber,r.column,i.lineNumber,i.column)}static _findFirstNonWhitespaceChar(e,t){let n=e.length;for(let r=t;r<n;r++){let t=e.charAt(r);if(t!==` `&&t!==` `)return r}return n}static _deleteWordRightWhitespace(e,t){let n=e.getLineContent(t.lineNumber),r=t.column-1,i=this._findFirstNonWhitespaceChar(n,r);return r+1<i?new j(t.lineNumber,t.column,t.lineNumber,i+1):null}static deleteWordRight(t,n){let r=t.wordSeparators,i=t.model,a=t.selection,o=t.whitespaceHeuristics;if(!a.isEmpty())return a;let s=new b(a.positionLineNumber,a.positionColumn),c=s.lineNumber,l=s.column,u=i.getLineCount(),d=i.getLineMaxColumn(c);if(c===u&&l===d)return null;if(o){let e=this._deleteWordRightWhitespace(i,s);if(e)return e}let f=e._findNextWordOnLine(r,i,s);return n===2?f?l=f.end+1:l<d||c===u?l=d:(c++,f=e._findNextWordOnLine(r,i,new b(c,1)),l=f?f.start+1:i.getLineMaxColumn(c)):(f&&l>=f.start+1&&(f=e._findNextWordOnLine(r,i,new b(c,f.end+1))),f?l=f.start+1:l<d||c===u?l=d:(c++,f=e._findNextWordOnLine(r,i,new b(c,1)),l=f?f.start+1:i.getLineMaxColumn(c))),new j(c,l,s.lineNumber,s.column)}static _deleteWordPartRight(t,n){if(!n.isEmpty())return n;let r=n.getPosition(),i=e._moveWordPartRight(t,r);return new j(r.lineNumber,r.column,i.lineNumber,i.column)}static _createWordAtPosition(e,t,n){let r=new j(t,n.start+1,t,n.end+1);return{word:e.getValueInRange(r),startColumn:r.startColumn,endColumn:r.endColumn}}static getWordAtPosition(t,n,r,i){let a=Zn(n,r),o=e._findPreviousWordOnLine(a,t,i);if(o&&o.wordType===1&&o.start<=i.column-1&&i.column-1<=o.end)return e._createWordAtPosition(t,i.lineNumber,o);let s=e._findNextWordOnLine(a,t,i);return s&&s.wordType===1&&s.start<=i.column-1&&i.column-1<=s.end?e._createWordAtPosition(t,i.lineNumber,s):null}static word(t,n,r,i,a){let o=Zn(t.wordSeparators,t.wordSegmenterLocales),s=e._findPreviousWordOnLine(o,n,a),c=e._findNextWordOnLine(o,n,a);if(!i){let e,t;return s&&s.wordType===1&&s.start<=a.column-1&&a.column-1<=s.end||s&&s.wordType===2&&s.start<=a.column-1&&a.column-1<s.end?(e=s.start+1,t=s.end+1):c&&c.wordType===1&&c.start<=a.column-1&&a.column-1<=c.end||c&&c.wordType===2&&c.start<=a.column-1&&a.column-1<c.end?(e=c.start+1,t=c.end+1):(e=s?s.end+1:1,t=c?c.start+1:n.getLineMaxColumn(a.lineNumber)),new Lo(new j(a.lineNumber,e,a.lineNumber,t),1,0,new b(a.lineNumber,t),0)}let l,u;s&&s.wordType===1&&s.start<a.column-1&&a.column-1<s.end?(l=s.start+1,u=s.end+1):c&&c.wordType===1&&c.start<a.column-1&&a.column-1<c.end?(l=c.start+1,u=c.end+1):(l=a.column,u=a.column);let d=a.lineNumber,f;if(r.selectionStart.containsPosition(a))f=r.selectionStart.endColumn;else if(a.isBeforeOrEqual(r.selectionStart.getStartPosition())){f=l;let e=new b(d,f);r.selectionStart.containsPosition(e)&&(f=r.selectionStart.endColumn)}else{f=u;let e=new b(d,f);r.selectionStart.containsPosition(e)&&(f=r.selectionStart.startColumn)}return r.move(!0,d,f,0)}},Wo=class extends Uo{static deleteWordPartLeft(e){let t=Go([Uo.deleteWordLeft(e,0),Uo.deleteWordLeft(e,2),Uo._deleteWordPartLeft(e.model,e.selection)]);return t.sort(j.compareRangesUsingEnds),t[2]}static deleteWordPartRight(e){let t=Go([Uo.deleteWordRight(e,0),Uo.deleteWordRight(e,2),Uo._deleteWordPartRight(e.model,e.selection)]);return t.sort(j.compareRangesUsingStarts),t[0]}static moveWordPartLeft(e,t,n,r){let i=Go([Uo.moveWordLeft(e,t,n,0,r),Uo.moveWordLeft(e,t,n,2,r),Uo._moveWordPartLeft(t,n)]);return i.sort(b.compare),i[2]}static moveWordPartRight(e,t,n){let r=Go([Uo.moveWordRight(e,t,n,0),Uo.moveWordRight(e,t,n,2),Uo._moveWordPartRight(t,n)]);return r.sort(b.compare),r[0]}};function Go(e){return e.filter(e=>!!e)}var J=class{static addCursorDown(e,t,n){let r=[],i=0;for(let a=0,o=t.length;a<o;a++){let o=t[a];r[i++]=new K(o.modelState,o.viewState),n?r[i++]=K.fromModelState(q.translateDown(e.cursorConfig,e.model,o.modelState)):r[i++]=K.fromViewState(q.translateDown(e.cursorConfig,e,o.viewState))}return r}static addCursorUp(e,t,n){let r=[],i=0;for(let a=0,o=t.length;a<o;a++){let o=t[a];r[i++]=new K(o.modelState,o.viewState),n?r[i++]=K.fromModelState(q.translateUp(e.cursorConfig,e.model,o.modelState)):r[i++]=K.fromViewState(q.translateUp(e.cursorConfig,e,o.viewState))}return r}static moveToBeginningOfLine(e,t,n){let r=[];for(let i=0,a=t.length;i<a;i++){let a=t[i];r[i]=this._moveToLineStart(e,a,n)}return r}static _moveToLineStart(e,t,n){let r=t.viewState.position.column,i=r===t.modelState.position.column,a=t.viewState.position.lineNumber,o=r===e.getLineFirstNonWhitespaceColumn(a);return!i&&!o?this._moveToLineStartByView(e,t,n):this._moveToLineStartByModel(e,t,n)}static _moveToLineStartByView(e,t,n){return K.fromViewState(q.moveToBeginningOfLine(e.cursorConfig,e,t.viewState,n))}static _moveToLineStartByModel(e,t,n){return K.fromModelState(q.moveToBeginningOfLine(e.cursorConfig,e.model,t.modelState,n))}static moveToEndOfLine(e,t,n,r){let i=[];for(let a=0,o=t.length;a<o;a++){let o=t[a];i[a]=this._moveToLineEnd(e,o,n,r)}return i}static _moveToLineEnd(e,t,n,r){let i=t.viewState.position,a=e.getLineMaxColumn(i.lineNumber),o=i.column===a,s=t.modelState.position,c=e.model.getLineMaxColumn(s.lineNumber),l=a-i.column===c-s.column;return o||l?this._moveToLineEndByModel(e,t,n,r):this._moveToLineEndByView(e,t,n,r)}static _moveToLineEndByView(e,t,n,r){return K.fromViewState(q.moveToEndOfLine(e.cursorConfig,e,t.viewState,n,r))}static _moveToLineEndByModel(e,t,n,r){return K.fromModelState(q.moveToEndOfLine(e.cursorConfig,e.model,t.modelState,n,r))}static expandLineSelection(e,t){let n=[];for(let r=0,i=t.length;r<i;r++){let i=t[r],a=i.modelState.selection.startLineNumber,o=e.model.getLineCount(),s=i.modelState.selection.endLineNumber,c;s===o?c=e.model.getLineMaxColumn(o):(s++,c=1),n[r]=K.fromModelState(new Lo(new j(a,1,a,1),0,0,new b(s,c),0))}return n}static moveToBeginningOfBuffer(e,t,n){let r=[];for(let i=0,a=t.length;i<a;i++){let a=t[i];r[i]=K.fromModelState(q.moveToBeginningOfBuffer(e.cursorConfig,e.model,a.modelState,n))}return r}static moveToEndOfBuffer(e,t,n){let r=[];for(let i=0,a=t.length;i<a;i++){let a=t[i];r[i]=K.fromModelState(q.moveToEndOfBuffer(e.cursorConfig,e.model,a.modelState,n))}return r}static selectAll(e,t){let n=e.model.getLineCount(),r=e.model.getLineMaxColumn(n);return K.fromModelState(new Lo(new j(1,1,1,1),0,0,new b(n,r),0))}static line(e,t,n,r,i){let a=e.model.validatePosition(r),o=i?e.coordinatesConverter.validateViewPosition(new b(i.lineNumber,i.column),a):e.coordinatesConverter.convertModelPositionToViewPosition(a);if(!n){let t=e.model.getLineCount(),n=a.lineNumber+1,r=1;return n>t&&(n=t,r=e.model.getLineMaxColumn(n)),K.fromModelState(new Lo(new j(a.lineNumber,1,n,r),2,0,new b(n,r),0))}let s=t.modelState.selectionStart.getStartPosition().lineNumber;if(a.lineNumber<s)return K.fromViewState(t.viewState.move(!0,o.lineNumber,1,0));if(a.lineNumber>s){let n=e.getLineCount(),r=o.lineNumber+1,i=1;return r>n&&(r=n,i=e.getLineMaxColumn(r)),K.fromViewState(t.viewState.move(!0,r,i,0))}else{let e=t.modelState.selectionStart.getEndPosition();return K.fromModelState(t.modelState.move(!0,e.lineNumber,e.column,0))}}static word(e,t,n,r){let i=e.model.validatePosition(r);return K.fromModelState(Uo.word(e.cursorConfig,e.model,t.modelState,n,i))}static cancelSelection(e,t){if(!t.modelState.hasSelection())return new K(t.modelState,t.viewState);let n=t.viewState.position.lineNumber,r=t.viewState.position.column;return K.fromViewState(new Lo(new j(n,r,n,r),0,0,new b(n,r),0))}static moveTo(e,t,n,r,i){if(n){if(t.modelState.selectionStartKind===1)return this.word(e,t,n,r);if(t.modelState.selectionStartKind===2)return this.line(e,t,n,r,i)}let a=e.model.validatePosition(r),o=i?e.coordinatesConverter.validateViewPosition(new b(i.lineNumber,i.column),a):e.coordinatesConverter.convertModelPositionToViewPosition(a);return K.fromViewState(t.viewState.move(n,o.lineNumber,o.column,0))}static simpleMove(e,t,n,r,i,a){switch(n){case 0:return a===4?this._moveHalfLineLeft(e,t,r):this._moveLeft(e,t,r,i);case 1:return a===4?this._moveHalfLineRight(e,t,r):this._moveRight(e,t,r,i);case 2:return a===2?this._moveUpByViewLines(e,t,r,i):this._moveUpByModelLines(e,t,r,i);case 3:return a===2?this._moveDownByViewLines(e,t,r,i):this._moveDownByModelLines(e,t,r,i);case 4:return a===2?t.map(t=>K.fromViewState(q.moveToPrevBlankLine(e.cursorConfig,e,t.viewState,r))):t.map(t=>K.fromModelState(q.moveToPrevBlankLine(e.cursorConfig,e.model,t.modelState,r)));case 5:return a===2?t.map(t=>K.fromViewState(q.moveToNextBlankLine(e.cursorConfig,e,t.viewState,r))):t.map(t=>K.fromModelState(q.moveToNextBlankLine(e.cursorConfig,e.model,t.modelState,r)));case 6:return this._moveToViewMinColumn(e,t,r);case 7:return this._moveToViewFirstNonWhitespaceColumn(e,t,r);case 8:return this._moveToViewCenterColumn(e,t,r);case 9:return this._moveToViewMaxColumn(e,t,r);case 10:return this._moveToViewLastNonWhitespaceColumn(e,t,r);default:return null}}static viewportMove(e,t,n,r,i){let a=e.getCompletelyVisibleViewRange(),o=e.coordinatesConverter.convertViewRangeToModelRange(a);switch(n){case 11:{let n=this._firstLineNumberInRange(e.model,o,i),a=e.model.getLineFirstNonWhitespaceColumn(n);return[this._moveToModelPosition(e,t[0],r,n,a)]}case 13:{let n=this._lastLineNumberInRange(e.model,o,i),a=e.model.getLineFirstNonWhitespaceColumn(n);return[this._moveToModelPosition(e,t[0],r,n,a)]}case 12:{let n=Math.round((o.startLineNumber+o.endLineNumber)/2),i=e.model.getLineFirstNonWhitespaceColumn(n);return[this._moveToModelPosition(e,t[0],r,n,i)]}case 14:{let n=[];for(let i=0,o=t.length;i<o;i++){let o=t[i];n[i]=this.findPositionInViewportIfOutside(e,o,a,r)}return n}default:return null}}static findPositionInViewportIfOutside(e,t,n,r){let i=t.viewState.position.lineNumber;if(n.startLineNumber<=i&&i<=n.endLineNumber-1)return new K(t.modelState,t.viewState);{let a;a=i>n.endLineNumber-1?n.endLineNumber-1:i<n.startLineNumber?n.startLineNumber:i;let o=q.vertical(e.cursorConfig,e,i,t.viewState.position.column,t.viewState.leftoverVisibleColumns,a,!1);return K.fromViewState(t.viewState.move(r,o.lineNumber,o.column,o.leftoverVisibleColumns))}}static _firstLineNumberInRange(e,t,n){let r=t.startLineNumber;return t.startColumn!==e.getLineMinColumn(r)&&r++,Math.min(t.endLineNumber,r+n-1)}static _lastLineNumberInRange(e,t,n){let r=t.startLineNumber;return t.startColumn!==e.getLineMinColumn(r)&&r++,Math.max(r,t.endLineNumber-n+1)}static _moveLeft(e,t,n,r){return t.map(t=>{let i=e.getTextDirection(t.viewState.position.lineNumber)===wn.RTL;return K.fromViewState(i?q.moveRight(e.cursorConfig,e,t.viewState,n,r):q.moveLeft(e.cursorConfig,e,t.viewState,n,r))})}static _moveHalfLineLeft(e,t,n){let r=[];for(let i=0,a=t.length;i<a;i++){let a=t[i],o=a.viewState.position.lineNumber,s=Math.round(e.getLineLength(o)/2);r[i]=K.fromViewState(q.moveLeft(e.cursorConfig,e,a.viewState,n,s))}return r}static _moveRight(e,t,n,r){return t.map(t=>{let i=e.getTextDirection(t.viewState.position.lineNumber)===wn.RTL;return K.fromViewState(i?q.moveLeft(e.cursorConfig,e,t.viewState,n,r):q.moveRight(e.cursorConfig,e,t.viewState,n,r))})}static _moveHalfLineRight(e,t,n){let r=[];for(let i=0,a=t.length;i<a;i++){let a=t[i],o=a.viewState.position.lineNumber,s=Math.round(e.getLineLength(o)/2);r[i]=K.fromViewState(q.moveRight(e.cursorConfig,e,a.viewState,n,s))}return r}static _moveDownByViewLines(e,t,n,r){let i=[];for(let a=0,o=t.length;a<o;a++){let o=t[a];i[a]=K.fromViewState(q.moveDown(e.cursorConfig,e,o.viewState,n,r))}return i}static _moveDownByModelLines(e,t,n,r){let i=[];for(let a=0,o=t.length;a<o;a++){let o=t[a];i[a]=K.fromModelState(q.moveDown(e.cursorConfig,e.model,o.modelState,n,r))}return i}static _moveUpByViewLines(e,t,n,r){let i=[];for(let a=0,o=t.length;a<o;a++){let o=t[a];i[a]=K.fromViewState(q.moveUp(e.cursorConfig,e,o.viewState,n,r))}return i}static _moveUpByModelLines(e,t,n,r){let i=[];for(let a=0,o=t.length;a<o;a++){let o=t[a];i[a]=K.fromModelState(q.moveUp(e.cursorConfig,e.model,o.modelState,n,r))}return i}static _moveToViewPosition(e,t,n,r,i){return K.fromViewState(t.viewState.move(n,r,i,0))}static _moveToModelPosition(e,t,n,r,i){return K.fromModelState(t.modelState.move(n,r,i,0))}static _moveToViewMinColumn(e,t,n){let r=[];for(let i=0,a=t.length;i<a;i++){let a=t[i],o=a.viewState.position.lineNumber,s=e.getLineMinColumn(o);r[i]=this._moveToViewPosition(e,a,n,o,s)}return r}static _moveToViewFirstNonWhitespaceColumn(e,t,n){let r=[];for(let i=0,a=t.length;i<a;i++){let a=t[i],o=a.viewState.position.lineNumber,s=e.getLineFirstNonWhitespaceColumn(o);r[i]=this._moveToViewPosition(e,a,n,o,s)}return r}static _moveToViewCenterColumn(e,t,n){let r=[];for(let i=0,a=t.length;i<a;i++){let a=t[i],o=a.viewState.position.lineNumber,s=Math.round((e.getLineMaxColumn(o)+e.getLineMinColumn(o))/2);r[i]=this._moveToViewPosition(e,a,n,o,s)}return r}static _moveToViewMaxColumn(e,t,n){let r=[];for(let i=0,a=t.length;i<a;i++){let a=t[i],o=a.viewState.position.lineNumber,s=e.getLineMaxColumn(o);r[i]=this._moveToViewPosition(e,a,n,o,s)}return r}static _moveToViewLastNonWhitespaceColumn(e,t,n){let r=[];for(let i=0,a=t.length;i<a;i++){let a=t[i],o=a.viewState.position.lineNumber,s=e.getLineLastNonWhitespaceColumn(o);r[i]=this._moveToViewPosition(e,a,n,o,s)}return r}},Ko;(function(e){e.metadata={description:`Move cursor to a logical position in the view`,args:[{name:`Cursor move argument object`,description:`Property-value pairs that can be passed through this argument:
* 'to': A mandatory logical position value providing where to move the cursor.
\`\`\`
'left', 'right', 'up', 'down', 'prevBlankLine', 'nextBlankLine',
'wrappedLineStart', 'wrappedLineEnd', 'wrappedLineColumnCenter'
'wrappedLineFirstNonWhitespaceCharacter', 'wrappedLineLastNonWhitespaceCharacter'
'viewPortTop', 'viewPortCenter', 'viewPortBottom', 'viewPortIfOutside'
\`\`\`
* 'by': Unit to move. Default is computed based on 'to' value.
\`\`\`
'line', 'wrappedLine', 'character', 'halfLine'
\`\`\`
* 'value': Number of units to move. Default is '1'.
* 'select': If 'true' makes the selection. Default is 'false'.
* 'noHistory': If 'true' does not add the movement to navigation history. Default is 'false'.
`,constraint:function(e){if(!ee(e))return!1;let t=e;return!(!D(t.to)||!_(t.select)&&!w(t.select)||!_(t.by)&&!D(t.by)||!_(t.value)&&!m(t.value)||!_(t.noHistory)&&!w(t.noHistory))},schema:{type:`object`,required:[`to`],properties:{to:{type:`string`,enum:[`left`,`right`,`up`,`down`,`prevBlankLine`,`nextBlankLine`,`wrappedLineStart`,`wrappedLineEnd`,`wrappedLineColumnCenter`,`wrappedLineFirstNonWhitespaceCharacter`,`wrappedLineLastNonWhitespaceCharacter`,`viewPortTop`,`viewPortCenter`,`viewPortBottom`,`viewPortIfOutside`]},by:{type:`string`,enum:[`line`,`wrappedLine`,`character`,`halfLine`]},value:{type:`number`,default:1},select:{type:`boolean`,default:!1},noHistory:{type:`boolean`,default:!1}}}}]},e.RawDirection={Left:`left`,Right:`right`,Up:`up`,Down:`down`,PrevBlankLine:`prevBlankLine`,NextBlankLine:`nextBlankLine`,WrappedLineStart:`wrappedLineStart`,WrappedLineFirstNonWhitespaceCharacter:`wrappedLineFirstNonWhitespaceCharacter`,WrappedLineColumnCenter:`wrappedLineColumnCenter`,WrappedLineEnd:`wrappedLineEnd`,WrappedLineLastNonWhitespaceCharacter:`wrappedLineLastNonWhitespaceCharacter`,ViewPortTop:`viewPortTop`,ViewPortCenter:`viewPortCenter`,ViewPortBottom:`viewPortBottom`,ViewPortIfOutside:`viewPortIfOutside`},e.RawUnit={Line:`line`,WrappedLine:`wrappedLine`,Character:`character`,HalfLine:`halfLine`};function t(t){if(!t.to)return null;let n;switch(t.to){case e.RawDirection.Left:n=0;break;case e.RawDirection.Right:n=1;break;case e.RawDirection.Up:n=2;break;case e.RawDirection.Down:n=3;break;case e.RawDirection.PrevBlankLine:n=4;break;case e.RawDirection.NextBlankLine:n=5;break;case e.RawDirection.WrappedLineStart:n=6;break;case e.RawDirection.WrappedLineFirstNonWhitespaceCharacter:n=7;break;case e.RawDirection.WrappedLineColumnCenter:n=8;break;case e.RawDirection.WrappedLineEnd:n=9;break;case e.RawDirection.WrappedLineLastNonWhitespaceCharacter:n=10;break;case e.RawDirection.ViewPortTop:n=11;break;case e.RawDirection.ViewPortBottom:n=13;break;case e.RawDirection.ViewPortCenter:n=12;break;case e.RawDirection.ViewPortIfOutside:n=14;break;default:return null}let r=0;switch(t.by){case e.RawUnit.Line:r=1;break;case e.RawUnit.WrappedLine:r=2;break;case e.RawUnit.Character:r=3;break;case e.RawUnit.HalfLine:r=4;break}return{direction:n,unit:r,select:!!t.select,value:t.value||1,noHistory:!!t.noHistory}}e.parse=t})(Ko||={});var qo=class{constructor(e,t,n){this._indentRulesSupport=t,this._indentationLineProcessor=new Yo(e,n)}shouldIncrease(e,t){let n=this._indentationLineProcessor.getProcessedLine(e,t);return this._indentRulesSupport.shouldIncrease(n)}shouldDecrease(e,t){let n=this._indentationLineProcessor.getProcessedLine(e,t);return this._indentRulesSupport.shouldDecrease(n)}shouldIgnore(e,t){let n=this._indentationLineProcessor.getProcessedLine(e,t);return this._indentRulesSupport.shouldIgnore(n)}shouldIndentNextLine(e,t){let n=this._indentationLineProcessor.getProcessedLine(e,t);return this._indentRulesSupport.shouldIndentNextLine(n)}},Jo=class{constructor(e,t){this.model=e,this.indentationLineProcessor=new Yo(e,t)}getProcessedTokenContextAroundRange(e){return{beforeRangeProcessedTokens:this._getProcessedTokensBeforeRange(e),afterRangeProcessedTokens:this._getProcessedTokensAfterRange(e),previousLineProcessedTokens:this._getProcessedPreviousLineTokens(e)}}_getProcessedTokensBeforeRange(e){this.model.tokenization.forceTokenization(e.startLineNumber);let t=this.model.tokenization.getLineTokens(e.startLineNumber),n=zn(t,e.startColumn-1),r;if(Xo(this.model,e.getStartPosition())){let i=e.startColumn-1-n.firstCharOffset,a=n.firstCharOffset,o=a+i;r=t.sliceAndInflate(a,o,0)}else{let n=e.startColumn-1;r=t.sliceAndInflate(0,n,0)}return this.indentationLineProcessor.getProcessedTokens(r)}_getProcessedTokensAfterRange(e){let t=e.isEmpty()?e.getStartPosition():e.getEndPosition();this.model.tokenization.forceTokenization(t.lineNumber);let n=this.model.tokenization.getLineTokens(t.lineNumber),r=zn(n,t.column-1),i=t.column-1-r.firstCharOffset,a=r.firstCharOffset+i,o=r.firstCharOffset+r.getLineLength(),s=n.sliceAndInflate(a,o,0);return this.indentationLineProcessor.getProcessedTokens(s)}_getProcessedPreviousLineTokens(e){let t=e=>(this.model.tokenization.forceTokenization(e),zn(this.model.tokenization.getLineTokens(e),this.model.getLineMaxColumn(e)-1));this.model.tokenization.forceTokenization(e.startLineNumber);let n=zn(this.model.tokenization.getLineTokens(e.startLineNumber),e.startColumn-1),r=fr.createEmpty(``,n.languageIdCodec),i=e.startLineNumber-1;if(i===0||n.firstCharOffset!==0)return r;let a=t(i);if(n.languageId!==a.languageId)return r;let o=a.toIViewLineTokens();return this.indentationLineProcessor.getProcessedTokens(o)}},Yo=class{constructor(e,t){this.model=e,this.languageConfigurationService=t}getProcessedLine(e,t){let n=(e,t)=>{let n=O(e);return t+e.substring(n.length)};this.model.tokenization.forceTokenization?.(e);let r=this.model.tokenization.getLineTokens(e),i=this.getProcessedTokens(r).getLineContent();return t!==void 0&&(i=n(i,t)),i}getProcessedTokens(e){let t=e=>e===2||e===3||e===1,n=e.getLanguageId(0),r=this.languageConfigurationService.getLanguageConfiguration(n).bracketsNew.getBracketRegExp({global:!0}),i=[];return e.forEach(n=>{let a=e.getStandardTokenType(n),o=e.getTokenText(n);t(a)&&(o=o.replace(r,``));let s=e.getMetadata(n);i.push({text:o,metadata:s})}),fr.createFromTextAndMetadata(i,e.languageIdCodec)}};function Xo(e,t){e.tokenization.forceTokenization(t.lineNumber);let n=e.tokenization.getLineTokens(t.lineNumber),r=zn(n,t.column-1),i=r.firstCharOffset===0,a=n.getLanguageId(0)===r.languageId;return!i&&!a}function Zo(e,t,n,r){t.tokenization.forceTokenization(n.startLineNumber);let i=t.getLanguageIdAtPosition(n.startLineNumber,n.startColumn),a=r.getLanguageConfiguration(i);if(!a)return null;let o=new Jo(t,r).getProcessedTokenContextAroundRange(n),s=o.previousLineProcessedTokens.getLineContent(),c=o.beforeRangeProcessedTokens.getLineContent(),l=o.afterRangeProcessedTokens.getLineContent(),u=a.onEnter(e,s,c,l);if(!u)return null;let d=u.indentAction,f=u.appendText,p=u.removeText||0;f?d===R.Indent&&(f=` `+f):f=d===R.Indent||d===R.IndentOutdent?` `:``;let m=or(t,n.startLineNumber,n.startColumn);return p&&(m=m.substring(0,m.length-p)),{indentAction:d,appendText:f,removeText:p,indentation:m}}var Qo=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},$o=function(e,t){return function(n,r){t(n,r,e)}},es,ts=Object.create(null);function ns(e,t){if(t<=0)return``;ts[e]||(ts[e]=[``,e]);let n=ts[e];for(let r=n.length;r<=t;r++)n[r]=n[r-1]+e;return n[t]}var rs=es=class{static unshiftIndent(e,t,n,r,i){let a=z.visibleColumnFromColumn(e,t,n);return i?ns(ns(` `,r),z.prevIndentTabStop(a,r)/r):ns(` `,z.prevRenderTabStop(a,n)/n)}static shiftIndent(e,t,n,r,i){let a=z.visibleColumnFromColumn(e,t,n);return i?ns(ns(` `,r),z.nextIndentTabStop(a,r)/r):ns(` `,z.nextRenderTabStop(a,n)/n)}constructor(e,t,n){this._languageConfigurationService=n,this._opts=t,this._selection=e,this._selectionId=null,this._useLastEditRangeForCursorEndPosition=!1,this._selectionStartColumnStaysPut=!1}_addEditOperation(e,t,n){this._useLastEditRangeForCursorEndPosition?e.addTrackedEditOperation(t,n):e.addEditOperation(t,n)}getEditOperations(e,t){let n=this._selection.startLineNumber,r=this._selection.endLineNumber;this._selection.endColumn===1&&n!==r&&--r;let{tabSize:i,indentSize:a,insertSpaces:o}=this._opts,s=n===r;if(this._opts.useTabStops){this._selection.isEmpty()&&/^\s*$/.test(e.getLineContent(n))&&(this._useLastEditRangeForCursorEndPosition=!0);let c=0,l=0;for(let u=n;u<=r;u++,c=l){l=0;let r=e.getLineContent(u),d=ue(r);if(this._opts.isUnshift&&(r.length===0||d===0)||!s&&!this._opts.isUnshift&&r.length===0)continue;if(d===-1&&(d=r.length),u>1&&z.visibleColumnFromColumn(r,d+1,i)%a!==0&&e.tokenization.isCheapToTokenize(u-1)){let t=Zo(this._opts.autoIndent,e,new j(u-1,e.getLineMaxColumn(u-1),u-1,e.getLineMaxColumn(u-1)),this._languageConfigurationService);if(t){if(l=c,t.appendText)for(let e=0,n=t.appendText.length;e<n&&l<a&&t.appendText.charCodeAt(e)===32;e++)l++;t.removeText&&(l=Math.max(0,l-t.removeText));for(let e=0;e<l&&!(d===0||r.charCodeAt(d-1)!==32);e++)d--}}if(this._opts.isUnshift&&d===0)continue;let f;f=this._opts.isUnshift?es.unshiftIndent(r,d+1,i,a,o):es.shiftIndent(r,d+1,i,a,o),this._addEditOperation(t,new j(u,1,u,d+1),f),u===n&&!this._selection.isEmpty()&&(this._selectionStartColumnStaysPut=this._selection.startColumn<=d+1)}}else{!this._opts.isUnshift&&this._selection.isEmpty()&&e.getLineLength(n)===0&&(this._useLastEditRangeForCursorEndPosition=!0);let i=o?ns(` `,a):` `;for(let o=n;o<=r;o++){let r=e.getLineContent(o),c=ue(r);if(!(this._opts.isUnshift&&(r.length===0||c===0))&&!(!s&&!this._opts.isUnshift&&r.length===0)&&(c===-1&&(c=r.length),!(this._opts.isUnshift&&c===0)))if(this._opts.isUnshift){c=Math.min(c,a);for(let e=0;e<c;e++)if(r.charCodeAt(e)===9){c=e+1;break}this._addEditOperation(t,new j(o,1,o,c+1),``)}else this._addEditOperation(t,new j(o,1,o,1),i),o===n&&!this._selection.isEmpty()&&(this._selectionStartColumnStaysPut=this._selection.startColumn===1)}}this._selectionId=t.trackSelection(this._selection)}computeCursorState(e,t){if(this._useLastEditRangeForCursorEndPosition){let e=t.getInverseEditOperations()[0];return new L(e.range.endLineNumber,e.range.endColumn,e.range.endLineNumber,e.range.endColumn)}let n=t.getTrackedSelection(this._selectionId);if(this._selectionStartColumnStaysPut){let e=this._selection.startColumn;return n.startColumn<=e?n:n.getDirection()===0?new L(n.startLineNumber,e,n.endLineNumber,n.endColumn):new L(n.endLineNumber,n.endColumn,n.startLineNumber,e)}return n}};rs=es=Qo([$o(2,kn)],rs);var is=class{constructor(e,t,n){this._range=e,this._charBeforeSelection=t,this._charAfterSelection=n}getEditOperations(e,t){t.addTrackedEditOperation(new j(this._range.startLineNumber,this._range.startColumn,this._range.startLineNumber,this._range.startColumn),this._charBeforeSelection),t.addTrackedEditOperation(new j(this._range.endLineNumber,this._range.endColumn,this._range.endLineNumber,this._range.endColumn),this._charAfterSelection||null)}computeCursorState(e,t){let n=t.getInverseEditOperations(),r=n[0].range,i=n[1].range;return new L(r.endLineNumber,r.endColumn,i.endLineNumber,i.endColumn-this._charAfterSelection.length)}},as=class{constructor(e,t,n){this._position=e,this._text=t,this._charAfter=n}getEditOperations(e,t){t.addTrackedEditOperation(new j(this._position.lineNumber,this._position.column,this._position.lineNumber,this._position.column),this._text+this._charAfter)}computeCursorState(e,t){let n=t.getInverseEditOperations()[0].range;return new L(n.endLineNumber,n.startColumn,n.endLineNumber,n.endColumn-this._charAfter.length)}};function os(e,t,n){let r=e.tokenization.getLanguageIdAtPosition(t,0);if(t>1){let i,a=-1;for(i=t-1;i>=1;i--){if(e.tokenization.getLanguageIdAtPosition(i,0)!==r)return a;let t=e.getLineContent(i);if(n.shouldIgnore(i)||/^\s+$/.test(t)||t===``){a=i;continue}return i}}return-1}function ss(e,t,n,r=!0,i){if(e<4)return null;let a=i.getLanguageConfiguration(t.tokenization.getLanguageId()).indentRulesSupport;if(!a)return null;let o=new qo(t,a,i);if(n<=1)return{indentation:``,action:null};for(let e=n-1;e>0&&t.getLineContent(e)===``;e--)if(e===1)return{indentation:``,action:null};let s=os(t,n,o);if(s<0)return null;if(s<1)return{indentation:``,action:null};if(o.shouldIncrease(s)||o.shouldIndentNextLine(s))return{indentation:O(t.getLineContent(s)),action:R.Indent,line:s};if(o.shouldDecrease(s))return{indentation:O(t.getLineContent(s)),action:null,line:s};{if(s===1)return{indentation:O(t.getLineContent(s)),action:null,line:s};let e=s-1,n=a.getIndentMetadata(t.getLineContent(e));if(!(n&3)&&n&4){let n=0;for(let t=e-1;t>0;t--)if(!o.shouldIndentNextLine(t)){n=t;break}return{indentation:O(t.getLineContent(n+1)),action:null,line:n+1}}if(r)return{indentation:O(t.getLineContent(s)),action:null,line:s};for(let e=s;e>0;e--)if(o.shouldIncrease(e))return{indentation:O(t.getLineContent(e)),action:R.Indent,line:e};else if(o.shouldIndentNextLine(e)){let n=0;for(let t=e-1;t>0;t--)if(!o.shouldIndentNextLine(e)){n=t;break}return{indentation:O(t.getLineContent(n+1)),action:null,line:n+1}}else if(o.shouldDecrease(e))return{indentation:O(t.getLineContent(e)),action:null,line:e};return{indentation:O(t.getLineContent(1)),action:null,line:1}}}function cs(e,t,n,r,i,a){if(e<4)return null;let o=a.getLanguageConfiguration(n);if(!o)return null;let s=a.getLanguageConfiguration(n).indentRulesSupport;if(!s)return null;let c=new qo(t,s,a),l=ss(e,t,r,void 0,a);if(l){let n=l.line;if(n!==void 0){let a=!0;for(let e=n;e<r-1;e++)if(!/^\s*$/.test(t.getLineContent(e))){a=!1;break}if(a){let a=o.onEnter(e,``,t.getLineContent(n),``);if(a){let e=O(t.getLineContent(n));return a.removeText&&(e=e.substring(0,e.length-a.removeText)),a.indentAction===R.Indent||a.indentAction===R.IndentOutdent?e=i.shiftIndent(e):a.indentAction===R.Outdent&&(e=i.unshiftIndent(e)),c.shouldDecrease(r)&&(e=i.unshiftIndent(e)),a.appendText&&(e+=a.appendText),O(e)}}}return c.shouldDecrease(r)?l.action===R.Indent?l.indentation:i.unshiftIndent(l.indentation):l.action===R.Indent?i.shiftIndent(l.indentation):l.indentation}return null}function ls(e,t,n,r,i){if(e<4)return null;let a=t.getLanguageIdAtPosition(n.startLineNumber,n.startColumn),o=i.getLanguageConfiguration(a).indentRulesSupport;if(!o)return null;t.tokenization.forceTokenization(n.startLineNumber);let s=new Jo(t,i).getProcessedTokenContextAroundRange(n),c=s.afterRangeProcessedTokens,l=s.beforeRangeProcessedTokens,u=O(l.getLineContent()),d=fs(t,n.startLineNumber,l),f=Xo(t,n.getStartPosition()),p=O(t.getLineContent(n.startLineNumber)),m=ss(e,d,n.startLineNumber+1,void 0,i);if(!m){let e=f?p:u;return{beforeEnter:e,afterEnter:e}}let h=f?p:m.indentation;return m.action===R.Indent&&(h=r.shiftIndent(h)),o.shouldDecrease(c.getLineContent())&&(h=r.unshiftIndent(h)),{beforeEnter:f?p:u,afterEnter:h}}function us(e,t,n,r,i,a){let o=e.autoIndent;if(o<4||Xo(t,n.getStartPosition()))return null;let s=t.getLanguageIdAtPosition(n.startLineNumber,n.startColumn),c=a.getLanguageConfiguration(s).indentRulesSupport;if(!c)return null;let l=new Jo(t,a).getProcessedTokenContextAroundRange(n),u=l.beforeRangeProcessedTokens.getLineContent(),d=l.afterRangeProcessedTokens.getLineContent(),f=u+d,p=u+r+d;if(!c.shouldDecrease(f)&&c.shouldDecrease(p)){let e=ss(o,t,n.startLineNumber,!1,a);if(!e)return null;let r=e.indentation;return e.action!==R.Indent&&(r=i.unshiftIndent(r)),r}let m=n.startLineNumber-1;if(m>0){let s=t.getLineContent(m);if(c.shouldIndentNextLine(s)&&c.shouldIncrease(p)){let s=ss(o,t,n.startLineNumber,!1,a)?.indentation;if(s!==void 0){let a=O(t.getLineContent(n.startLineNumber)),o=i.shiftIndent(s)===a,c=/^\s*$/.test(f),l=e.autoClosingPairs.autoClosingPairsOpenByEnd.get(r),u=l&&l.length>0&&c;if(o&&u)return s}}}return null}function ds(e,t,n){let r=n.getLanguageConfiguration(e.getLanguageId()).indentRulesSupport;return!r||t<1||t>e.getLineCount()?null:r.getIndentMetadata(e.getLineContent(t))}function fs(e,t,n){return{tokenization:{getLineTokens:r=>r===t?n:e.tokenization.getLineTokens(r),getLanguageId:()=>e.getLanguageId(),getLanguageIdAtPosition:(t,n)=>e.getLanguageIdAtPosition(t,n)},getLineContent:r=>r===t?n.getLineContent():e.getLineContent(r)}}var ps=class{static getEdits(e,t,n,r,i){if(!i&&this._isAutoIndentType(e,t,n)){let i=[];for(let a of n){let n=this._findActualIndentationForSelection(e,t,a,r);if(n===null)return;i.push({selection:a,indentation:n})}let a=gs.getAutoClosingPairClose(e,t,n,r,!1);return this._getIndentationAndAutoClosingPairEdits(e,t,i,r,a)}}static _isAutoIndentType(e,t,n){if(e.autoIndent<4)return!1;for(let e=0,r=n.length;e<r;e++)if(!t.tokenization.isCheapToTokenize(n[e].getEndPosition().lineNumber))return!1;return!0}static _findActualIndentationForSelection(e,t,n,r){let i=us(e,t,n,r,{shiftIndent:t=>Fs(e,t),unshiftIndent:t=>Is(e,t)},e.languageConfigurationService);if(i===null)return null;let a=or(t,n.startLineNumber,n.startColumn);return i===e.normalizeIndentation(a)?null:i}static _getIndentationAndAutoClosingPairEdits(e,t,n,r,i){return new Ro(4,n.map(({selection:n,indentation:a})=>{if(i!==null)return new Os(this._getEditFromIndentationAndSelection(e,t,a,n,r,!1),n,r,i);{let i=this._getEditFromIndentationAndSelection(e,t,a,n,r,!0);return Ps(i.range,i.text,!1)}}),{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}static _getEditFromIndentationAndSelection(e,t,n,r,i,a=!0){let o=r.startLineNumber,s=t.getLineFirstNonWhitespaceColumn(o),c=e.normalizeIndentation(n);if(s!==0){let e=t.getLineContent(o);c+=e.substring(s-1,r.startColumn-1)}return c+=a?i:``,{range:new j(o,1,r.endLineNumber,r.endColumn),text:c}}},ms=class{static getEdits(e,t,n,r,i,a){if(Ns(t,n,r,i,a))return this._runAutoClosingOvertype(e,r,a)}static _runAutoClosingOvertype(e,t,n){let r=[];for(let e=0,i=t.length;e<i;e++){let i=t[e].getPosition();r[e]=new di(new j(i.lineNumber,i.column,i.lineNumber,i.column+1),n)}return new Ro(4,r,{shouldPushStackElementBefore:As(e,4),shouldPushStackElementAfter:!1})}},hs=class{static getEdits(e,t,n,r,i){if(Ns(e,t,n,r,i))return new Ro(4,n.map(e=>new di(new j(e.positionLineNumber,e.positionColumn,e.positionLineNumber,e.positionColumn+1),``,!1)),{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}},gs=class{static getEdits(e,t,n,r,i,a){if(!a){let a=this.getAutoClosingPairClose(e,t,n,r,i);if(a!==null)return this._runAutoClosingOpenCharType(n,r,i,a)}}static _runAutoClosingOpenCharType(e,t,n,r){let i=[];for(let a=0,o=e.length;a<o;a++){let o=e[a];i[a]=new Ds(o,t,!n,r)}return new Ro(4,i,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}static getAutoClosingPairClose(e,t,n,r,i){for(let e of n)if(!e.isEmpty())return null;let a=n.map(e=>{let t=e.getPosition();return i?{lineNumber:t.lineNumber,beforeColumn:t.column-r.length,afterColumn:t.column}:{lineNumber:t.lineNumber,beforeColumn:t.column,afterColumn:t.column}}),o=this._findAutoClosingPairOpen(e,t,a.map(e=>new b(e.lineNumber,e.beforeColumn)),r);if(!o)return null;let s,c;if(zo(r)?(s=e.autoClosingQuotes,c=e.shouldAutoCloseBefore.quote):e.blockCommentStartToken&&o.open.includes(e.blockCommentStartToken)?(s=e.autoClosingComments,c=e.shouldAutoCloseBefore.comment):(s=e.autoClosingBrackets,c=e.shouldAutoCloseBefore.bracket),s===`never`)return null;let l=this._findContainedAutoClosingPair(e,o),u=l?l.close:``,d=!0;for(let n of a){let{lineNumber:i,beforeColumn:a,afterColumn:l}=n,f=t.getLineContent(i),p=f.substring(0,a-1),m=f.substring(l-1);if(m.startsWith(u)||(d=!1),m.length>0){let t=m.charAt(0);if(!this._isBeforeClosingBrace(e,m)&&!c(t))return null}if(o.open.length===1&&(r===`'`||r===`"`)&&s!==`always`){let t=Zn(e.wordSeparators,[]);if(p.length>0){let e=p.charCodeAt(p.length-1);if(t.get(e)===0)return null}}if(!t.tokenization.isCheapToTokenize(i))return null;t.tokenization.forceTokenization(i);let h=zn(t.tokenization.getLineTokens(i),a-1);if(!o.shouldAutoClose(h,a-h.firstCharOffset))return null;let g=o.findNeutralCharacter();if(g){let e=t.tokenization.getTokenTypeIfInsertingCharacter(i,a,g);if(!o.isOK(e))return null}}return d?o.close.substring(0,o.close.length-u.length):o.close}static _findContainedAutoClosingPair(e,t){if(t.open.length<=1)return null;let n=t.close.charAt(t.close.length-1),r=e.autoClosingPairs.autoClosingPairsCloseByEnd.get(n)||[],i=null;for(let e of r)e.open!==t.open&&t.open.includes(e.open)&&t.close.endsWith(e.close)&&(!i||e.open.length>i.open.length)&&(i=e);return i}static _findAutoClosingPairOpen(e,t,n,r){let i=e.autoClosingPairs.autoClosingPairsOpenByEnd.get(r);if(!i)return null;let a=null;for(let e of i)if(a===null||e.open.length>a.open.length){let i=!0;for(let a of n)if(t.getValueInRange(new j(a.lineNumber,a.column-e.open.length+1,a.lineNumber,a.column))+r!==e.open){i=!1;break}i&&(a=e)}return a}static _isBeforeClosingBrace(e,t){let n=t.charAt(0),r=e.autoClosingPairs.autoClosingPairsOpenByStart.get(n)||[],i=e.autoClosingPairs.autoClosingPairsCloseByStart.get(n)||[],a=r.some(e=>t.startsWith(e.open)),o=i.some(e=>t.startsWith(e.close));return!a&&o}},_s=class{static getEdits(e,t){return e.inputMode===`overtype`?new Ro(4,t.map(e=>new ui(e.insertedTextRange)),{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1}):null}},vs=class{static getEdits(e,t,n,r,i){if(!i&&this._isSurroundSelectionType(e,t,n,r))return this._runSurroundSelectionType(e,n,r)}static _runSurroundSelectionType(e,t,n){let r=[];for(let i=0,a=t.length;i<a;i++){let a=t[i],o=e.surroundingPairs[n];r[i]=new is(a,n,o)}return new Ro(0,r,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}static _isSurroundSelectionType(e,t,n,r){if(!Ls(e,r)||!e.surroundingPairs.hasOwnProperty(r))return!1;let i=zo(r);for(let e of n){if(e.isEmpty())return!1;let n=!0;for(let r=e.startLineNumber;r<=e.endLineNumber;r++){let i=t.getLineContent(r),a=r===e.startLineNumber?e.startColumn-1:0,o=r===e.endLineNumber?e.endColumn-1:i.length,s=i.substring(a,o);if(/[^ \t]/.test(s)){n=!1;break}}if(n||i&&e.startLineNumber===e.endLineNumber&&e.startColumn+1===e.endColumn&&zo(t.getValueInRange(e)))return!1}return!0}},ys=class{static getEdits(e,t,n,r,i,a){if(!a&&this._isTypeInterceptorElectricChar(t,n,r)){let a=this._typeInterceptorElectricChar(e,t,n,r[0],i);if(a)return a}}static _isTypeInterceptorElectricChar(e,t,n){return!!(n.length===1&&t.tokenization.isCheapToTokenize(n[0].getEndPosition().lineNumber))}static _typeInterceptorElectricChar(e,t,n,r,i){if(!t.electricChars.hasOwnProperty(i)||!r.isEmpty())return null;let a=r.getPosition();n.tokenization.forceTokenization(a.lineNumber);let o=n.tokenization.getLineTokens(a.lineNumber),s;try{s=t.onElectricCharacter(i,o,a.column)}catch(e){return Se(e),null}if(!s)return null;if(s.matchOpenBracket){let r=(o.getLineContent()+i).lastIndexOf(s.matchOpenBracket)+1,c=n.bracketPairs.findMatchingBracketUp(s.matchOpenBracket,{lineNumber:a.lineNumber,column:r},500);if(c){if(c.startLineNumber===a.lineNumber)return null;let r=O(n.getLineContent(c.startLineNumber)),o=t.normalizeIndentation(r),s=n.getLineContent(a.lineNumber),l=n.getLineFirstNonWhitespaceColumn(a.lineNumber)||a.column,u=o+s.substring(l-1,a.column-1)+i,d=new di(new j(a.lineNumber,1,a.lineNumber,a.column),u);return new Ro(ks(u,e),[d],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!0})}}return null}},bs=class{static getEdits(e,t,n,r,i){let a=[];for(let t=0,o=n.length;t<o;t++)a[t]=new(e.inputMode===`overtype`&&!i?li:di)(n[t],r);let o=ks(r,t);return new Ro(o,a,{shouldPushStackElementBefore:As(t,o),shouldPushStackElementAfter:!1})}},xs=class{static getEdits(e,t,n,r,i){if(!i&&r===`
`){let r=[];for(let i=0,a=n.length;i<a;i++)r[i]=this._enter(e,t,!1,n[i]);return new Ro(4,r,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}}static _enter(e,t,n,r){if(e.autoIndent===0)return Ps(r,`
`,n);if(!t.tokenization.isCheapToTokenize(r.getStartPosition().lineNumber)||e.autoIndent===1){let i=O(t.getLineContent(r.startLineNumber)).substring(0,r.startColumn-1);return Ps(r,`
`+e.normalizeIndentation(i),n)}let i=Zo(e.autoIndent,t,r,e.languageConfigurationService);if(i){if(i.indentAction===R.None||i.indentAction===R.Indent)return Ps(r,`
`+e.normalizeIndentation(i.indentation+i.appendText),n);if(i.indentAction===R.IndentOutdent){let t=e.normalizeIndentation(i.indentation),a=e.normalizeIndentation(i.indentation+i.appendText),o=`
`+a+`
`+t;return n?new oi(r,o,!0):new si(r,o,-1,a.length-t.length,!0)}else if(i.indentAction===R.Outdent){let t=Is(e,i.indentation);return Ps(r,`
`+e.normalizeIndentation(t+i.appendText),n)}}let a=O(t.getLineContent(r.startLineNumber)).substring(0,r.startColumn-1);if(e.autoIndent>=4){let i=ls(e.autoIndent,t,r,{unshiftIndent:t=>Is(e,t),shiftIndent:t=>Fs(e,t),normalizeIndentation:t=>e.normalizeIndentation(t)},e.languageConfigurationService);if(i){let a=e.visibleColumnFromColumn(t,r.getEndPosition()),o=r.endColumn,s=ue(t.getLineContent(r.endLineNumber));if(r=s>=0?r.setEndPosition(r.endLineNumber,Math.max(r.endColumn,s+1)):r.setEndPosition(r.endLineNumber,t.getLineMaxColumn(r.endLineNumber)),n)return new oi(r,`
`+e.normalizeIndentation(i.afterEnter),!0);{let t=0;return o<=s+1&&(e.insertSpaces||(a=Math.ceil(a/e.indentSize)),t=Math.min(a+1-e.normalizeIndentation(i.afterEnter).length-1,0)),new si(r,`
`+e.normalizeIndentation(i.afterEnter),0,t,!0)}}}return Ps(r,`
`+e.normalizeIndentation(a),n)}static lineInsertBefore(e,t,n){if(t===null||n===null)return[];let r=[];for(let i=0,a=n.length;i<a;i++){let a=n[i].positionLineNumber;if(a===1)r[i]=new oi(new j(1,1,1,1),`
`);else{a--;let n=t.getLineMaxColumn(a);r[i]=this._enter(e,t,!1,new j(a,n,a,n))}}return r}static lineInsertAfter(e,t,n){if(t===null||n===null)return[];let r=[];for(let i=0,a=n.length;i<a;i++){let a=n[i].positionLineNumber,o=t.getLineMaxColumn(a);r[i]=this._enter(e,t,!1,new j(a,o,a,o))}return r}static lineBreakInsert(e,t,n){let r=[];for(let i=0,a=n.length;i<a;i++)r[i]=this._enter(e,t,!0,n[i]);return r}},Ss=class{static getEdits(e,t,n,r,i,a){let o=this._distributePasteToCursors(e,n,r,i,a);return o?(n=n.sort(j.compareRangesUsingStarts),this._distributedPaste(e,t,n,o)):this._simplePaste(e,t,n,r,i)}static _distributePasteToCursors(e,t,n,r,i){if(r||t.length===1)return null;if(i&&i.length===t.length)return i;if(e.multiCursorPaste===`spread`){n.charCodeAt(n.length-1)===10&&(n=n.substring(0,n.length-1)),n.charCodeAt(n.length-1)===13&&(n=n.substring(0,n.length-1));let e=S(n);if(e.length===t.length)return e}return null}static _distributedPaste(e,t,n,r){let i=[];for(let t=0,a=n.length;t<a;t++)i[t]=new(e.overtypeOnPaste&&e.inputMode===`overtype`?li:di)(n[t],r[t]);return new Ro(0,i,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}static _simplePaste(e,t,n,r,i){let a=[];for(let t=0,o=n.length;t<o;t++){let o=n[t],s=o.getPosition();i&&!o.isEmpty()&&(i=!1),i&&r.indexOf(`
`)!==r.length-1&&(i=!1),i?a[t]=new ci(new j(s.lineNumber,1,s.lineNumber,1),r,o,!0):a[t]=new(e.overtypeOnPaste&&e.inputMode===`overtype`?li:di)(o,r)}return new Ro(0,a,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}},Cs=class{static getEdits(e,t,n,r,i,a,o,s){return new Ro(4,r.map(e=>this._compositionType(n,e,i,a,o,s)),{shouldPushStackElementBefore:As(e,4),shouldPushStackElementAfter:!1})}static _compositionType(e,t,n,r,i,a){if(!t.isEmpty())return null;let o=t.getPosition(),s=Math.max(1,o.column-r),c=Math.min(e.getLineMaxColumn(o.lineNumber),o.column+i);return new si(new j(o.lineNumber,s,o.lineNumber,c),n,0,a)}},ws=class{static getEdits(e,t,n){let r=[];for(let e=0,i=t.length;e<i;e++)r[e]=new di(t[e],n);let i=ks(n,e);return new Ro(i,r,{shouldPushStackElementBefore:As(e,i),shouldPushStackElementAfter:!1})}},Ts=class{static getCommands(e,t,n){let r=[];for(let i=0,a=n.length;i<a;i++){let a=n[i];if(a.isEmpty()){let n=t.getLineContent(a.startLineNumber);if(/^\s*$/.test(n)&&t.tokenization.isCheapToTokenize(a.startLineNumber)){let o=this._goodIndentForLine(e,t,a.startLineNumber);o||=` `;let s=e.normalizeIndentation(o);if(!n.startsWith(s)){r[i]=new di(new j(a.startLineNumber,1,a.startLineNumber,n.length+1),s,!0);continue}}r[i]=this._replaceJumpToNextIndent(e,t,a,!0)}else{if(a.startLineNumber===a.endLineNumber){let n=t.getLineMaxColumn(a.startLineNumber);if(a.startColumn!==1||a.endColumn!==n){r[i]=this._replaceJumpToNextIndent(e,t,a,!1);continue}}r[i]=new rs(a,{isUnshift:!1,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,autoIndent:e.autoIndent},e.languageConfigurationService)}}return r}static _goodIndentForLine(e,t,n){let r=null,i=``,a=ss(e.autoIndent,t,n,!1,e.languageConfigurationService);if(a)r=a.action,i=a.indentation;else if(n>1){let r;for(r=n-1;r>=1&&!(Pe(t.getLineContent(r))>=0);r--);if(r<1)return null;let a=t.getLineMaxColumn(r),o=Zo(e.autoIndent,t,new j(r,a,r,a),e.languageConfigurationService);o&&(i=o.indentation+o.appendText)}return r&&(r===R.Indent&&(i=Fs(e,i)),r===R.Outdent&&(i=Is(e,i)),i=e.normalizeIndentation(i)),i||null}static _replaceJumpToNextIndent(e,t,n,r){let i=``,a=n.getStartPosition();if(e.insertSpaces){let n=e.visibleColumnFromColumn(t,a),r=e.indentSize,o=r-n%r;for(let e=0;e<o;e++)i+=` `}else i=` `;return new di(n,i,r)}},Es=class extends si{constructor(e,t,n,r,i,a){super(e,t,n,r),this._openCharacter=i,this._closeCharacter=a,this.closeCharacterRange=null,this.enclosingRange=null}_computeCursorStateWithRange(e,t,n){return this.closeCharacterRange=new j(t.startLineNumber,t.endColumn-this._closeCharacter.length,t.endLineNumber,t.endColumn),this.enclosingRange=new j(t.startLineNumber,t.endColumn-this._openCharacter.length-this._closeCharacter.length,t.endLineNumber,t.endColumn),super.computeCursorState(e,n)}},Ds=class extends Es{constructor(e,t,n,r){let i=(n?t:``)+r,a=-r.length;super(e,i,0,a,t,r)}computeCursorState(e,t){let n=t.getInverseEditOperations()[0].range;return this._computeCursorStateWithRange(e,n,t)}},Os=class extends Es{constructor(e,t,n,r){let i=n+r,a=n.length;super(t,i,0,a,n,r),this._autoIndentationEdit=e,this._autoClosingEdit={range:t,text:i}}getEditOperations(e,t){t.addTrackedEditOperation(this._autoIndentationEdit.range,this._autoIndentationEdit.text),t.addTrackedEditOperation(this._autoClosingEdit.range,this._autoClosingEdit.text)}computeCursorState(e,t){let n=t.getInverseEditOperations();if(n.length!==2)throw Error(`There should be two inverse edit operations!`);let r=n[0].range,i=n[1].range,a=r.plusRange(i);return this._computeCursorStateWithRange(e,a,t)}};function ks(e,t){return e===` `?t===5||t===6?6:5:4}function As(e,t){return Ms(e)&&!Ms(t)?!0:e===5?!1:js(e)!==js(t)}function js(e){return e===6||e===5?`space`:e}function Ms(e){return e===4||e===5||e===6}function Ns(e,t,n,r,i){if(e.autoClosingOvertype===`never`||!e.autoClosingPairs.autoClosingPairsCloseSingleChar.has(i))return!1;for(let a=0,o=n.length;a<o;a++){let o=n[a];if(!o.isEmpty())return!1;let s=o.getPosition(),c=t.getLineContent(s.lineNumber);if(c.charAt(s.column-1)!==i)return!1;let l=zo(i);if((s.column>2?c.charCodeAt(s.column-2):0)===92&&l)return!1;if(e.autoClosingOvertype===`auto`){let e=!1;for(let t=0,n=r.length;t<n;t++){let n=r[t];if(s.lineNumber===n.startLineNumber&&s.column===n.startColumn){e=!0;break}}if(!e)return!1}}return!0}function Ps(e,t,n){return n?new oi(e,t,!0):new di(e,t,!0)}function Fs(e,t,n){return n||=1,rs.shiftIndent(t,t.length+n,e.tabSize,e.indentSize,e.insertSpaces)}function Is(e,t,n){return n||=1,rs.unshiftIndent(t,t.length+n,e.tabSize,e.indentSize,e.insertSpaces)}function Ls(e,t){return zo(t)?e.autoSurround===`quotes`||e.autoSurround===`languageDefined`:e.autoSurround===`brackets`||e.autoSurround===`languageDefined`}var Rs=class{static indent(e,t,n){if(t===null||n===null)return[];let r=[];for(let t=0,i=n.length;t<i;t++)r[t]=new rs(n[t],{isUnshift:!1,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,autoIndent:e.autoIndent},e.languageConfigurationService);return r}static outdent(e,t,n){let r=[];for(let t=0,i=n.length;t<i;t++)r[t]=new rs(n[t],{isUnshift:!0,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,autoIndent:e.autoIndent},e.languageConfigurationService);return r}static paste(e,t,n,r,i,a){return Ss.getEdits(e,t,n,r,i,a)}static tab(e,t,n){return Ts.getCommands(e,t,n)}static compositionType(e,t,n,r,i,a,o,s){return Cs.getEdits(e,t,n,r,i,a,o,s)}static compositionEndWithInterceptors(e,t,n,r,i,a){if(!r)return null;let o=null;for(let e of r)if(o===null)o=e.insertedText;else if(o!==e.insertedText)return null;if(!o||o.length!==1)return _s.getEdits(t,r);let s=o,c=!1;for(let e of r)if(e.deletedText.length!==0){c=!0;break}if(c){if(!Ls(t,s)||!t.surroundingPairs.hasOwnProperty(s))return null;let e=zo(s);for(let t of r)if(t.deletedSelectionStart!==0||t.deletedSelectionEnd!==t.deletedText.length||/^[ \t]+$/.test(t.deletedText)||e&&zo(t.deletedText))return null;let n=[];for(let e of i){if(!e.isEmpty())return null;n.push(e.getPosition())}if(n.length!==r.length)return null;let a=[];for(let e=0,i=n.length;e<i;e++)a.push(new as(n[e],r[e].deletedText,t.surroundingPairs[s]));return new Ro(4,a,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}let l=hs.getEdits(t,n,i,a,s);if(l!==void 0)return l;let u=gs.getEdits(t,n,i,s,!0,!1);return u===void 0?_s.getEdits(t,r):u}static typeWithInterceptors(e,t,n,r,i,a,o){let s=xs.getEdits(n,r,i,o,e);if(s!==void 0)return s;let c=ps.getEdits(n,r,i,o,e);if(c!==void 0)return c;let l=ms.getEdits(t,n,r,i,a,o);if(l!==void 0)return l;let u=gs.getEdits(n,r,i,o,!1,e);if(u!==void 0)return u;let d=vs.getEdits(n,r,i,o,e);if(d!==void 0)return d;let f=ys.getEdits(t,n,r,i,o,e);return f===void 0?bs.getEdits(n,t,i,o,e):f}static typeWithoutInterceptors(e,t,n,r,i){return ws.getEdits(e,r,i)}},zs=class{constructor(e,t,n,r,i,a,o){this.deletedText=e,this.deletedSelectionStart=t,this.deletedSelectionEnd=n,this.insertedText=r,this.insertedSelectionStart=i,this.insertedSelectionEnd=a,this.insertedTextRange=o}},Y=0,X=class extends mt{runEditorCommand(e,t,n){let r=t._getViewModel();r&&this.runCoreEditorCommand(r,n||{})}},Z;(function(e){e.metadata={description:`Scroll editor in the given direction`,args:[{name:`Editor scroll argument object`,description:"Property-value pairs that can be passed through this argument:\n * 'to': A mandatory direction value.\n ```\n 'up', 'down'\n ```\n * 'by': Unit to move. Default is computed based on 'to' value.\n ```\n 'line', 'wrappedLine', 'page', 'halfPage', 'editor'\n ```\n * 'value': Number of units to move. Default is '1'.\n * 'revealCursor': If 'true' reveals the cursor if it is outside view port.\n ",constraint:function(e){if(!ee(e))return!1;let t=e;return!(!D(t.to)||!_(t.by)&&!D(t.by)||!_(t.value)&&!m(t.value)||!_(t.revealCursor)&&!w(t.revealCursor))},schema:{type:`object`,required:[`to`],properties:{to:{type:`string`,enum:[`up`,`down`]},by:{type:`string`,enum:[`line`,`wrappedLine`,`page`,`halfPage`,`editor`]},value:{type:`number`,default:1},revealCursor:{type:`boolean`}}}}]},e.RawDirection={Up:`up`,Right:`right`,Down:`down`,Left:`left`},e.RawUnit={Line:`line`,WrappedLine:`wrappedLine`,Page:`page`,HalfPage:`halfPage`,Editor:`editor`,Column:`column`};function t(t){let n;switch(t.to){case e.RawDirection.Up:n=1;break;case e.RawDirection.Right:n=2;break;case e.RawDirection.Down:n=3;break;case e.RawDirection.Left:n=4;break;default:return null}let r;switch(t.by){case e.RawUnit.Line:r=1;break;case e.RawUnit.WrappedLine:r=2;break;case e.RawUnit.Page:r=3;break;case e.RawUnit.HalfPage:r=4;break;case e.RawUnit.Editor:r=5;break;case e.RawUnit.Column:r=6;break;default:r=2}let i=Math.floor(t.value||1),a=!!t.revealCursor;return{direction:n,unit:r,value:i,revealCursor:a,select:!!t.select}}e.parse=t})(Z||={});var Bs;(function(e){e.metadata={description:`Reveal the given line at the given logical position`,args:[{name:`Reveal line argument object`,description:`Property-value pairs that can be passed through this argument:
* 'lineNumber': A mandatory line number value.
* 'at': Logical position at which line has to be revealed.
\`\`\`
'top', 'center', 'bottom'
\`\`\`
`,constraint:function(e){if(!ee(e))return!1;let t=e;return!(!m(t.lineNumber)&&!D(t.lineNumber)||!_(t.at)&&!D(t.at))},schema:{type:`object`,required:[`lineNumber`],properties:{lineNumber:{type:[`number`,`string`]},at:{type:`string`,enum:[`top`,`center`,`bottom`]}}}}]},e.RawAtArgument={Top:`top`,Center:`center`,Bottom:`bottom`}})(Bs||={});var Vs=class{constructor(e){e.addImplementation(1e4,`code-editor`,(e,t)=>{let n=e.get(dt).getFocusedCodeEditor();return n&&n.hasTextFocus()?this._runEditorCommand(e,n,t):!1}),e.addImplementation(1e3,`generic-dom-input-textarea`,(e,t)=>{let n=Xe();return n&&Et(n)?(this.runDOMCommand(n),!0):!1}),e.addImplementation(0,`generic-dom`,(e,t)=>{let n=e.get(dt).getActiveCodeEditor();return n?(n.focus(),this._runEditorCommand(e,n,t)):!1})}_runEditorCommand(e,t,n){return this.runEditorCommand(e,t,n)||!0}},Q;(function(e){class t extends X{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){t.position&&(e.model.pushStackElement(),e.setCursorStates(t.source,3,[J.moveTo(e,e.getPrimaryCursorState(),this._inSelectionMode,t.position,t.viewPosition)])&&t.revealType!==2&&e.revealAllCursors(t.source,!0,!0))}}e.MoveTo=N(new t({id:`_moveTo`,inSelectionMode:!1,precondition:void 0})),e.MoveToSelect=N(new t({id:`_moveToSelect`,inSelectionMode:!0,precondition:void 0}));class n extends X{runCoreEditorCommand(e,t){e.model.pushStackElement();let n=this._getColumnSelectResult(e,e.getPrimaryCursorState(),e.getCursorColumnSelectData(),t);n!==null&&(e.setCursorStates(t.source,3,n.viewStates.map(e=>K.fromViewState(e))),e.setCursorColumnSelectData({isReal:!0,fromViewLineNumber:n.fromLineNumber,fromViewVisualColumn:n.fromVisualColumn,toViewLineNumber:n.toLineNumber,toViewVisualColumn:n.toVisualColumn}),n.reversed?e.revealTopMostCursor(t.source):e.revealBottomMostCursor(t.source))}}e.ColumnSelect=N(new class extends n{constructor(){super({id:`columnSelect`,precondition:void 0})}_getColumnSelectResult(e,t,n,r){if(r.position===void 0||r.viewPosition===void 0||r.mouseColumn===void 0)return null;let i=e.model.validatePosition(r.position),a=e.coordinatesConverter.validateViewPosition(new b(r.viewPosition.lineNumber,r.viewPosition.column),i),o=r.doColumnSelect?n.fromViewLineNumber:a.lineNumber,s=r.doColumnSelect?n.fromViewVisualColumn:r.mouseColumn-1;return Bo.columnSelect(e.cursorConfig,e,o,s,a.lineNumber,r.mouseColumn-1)}}),e.CursorColumnSelectLeft=N(new class extends n{constructor(){super({id:`cursorColumnSelectLeft`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:3599,linux:{primary:0}}})}_getColumnSelectResult(e,t,n,r){return Bo.columnSelectLeft(e.cursorConfig,e,n)}}),e.CursorColumnSelectRight=N(new class extends n{constructor(){super({id:`cursorColumnSelectRight`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:3601,linux:{primary:0}}})}_getColumnSelectResult(e,t,n,r){return Bo.columnSelectRight(e.cursorConfig,e,n)}});class r extends n{constructor(e){super(e),this._isPaged=e.isPaged}_getColumnSelectResult(e,t,n,r){return Bo.columnSelectUp(e.cursorConfig,e,n,this._isPaged)}}e.CursorColumnSelectUp=N(new r({isPaged:!1,id:`cursorColumnSelectUp`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:3600,linux:{primary:0}}})),e.CursorColumnSelectPageUp=N(new r({isPaged:!0,id:`cursorColumnSelectPageUp`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:3595,linux:{primary:0}}}));class i extends n{constructor(e){super(e),this._isPaged=e.isPaged}_getColumnSelectResult(e,t,n,r){return Bo.columnSelectDown(e.cursorConfig,e,n,this._isPaged)}}e.CursorColumnSelectDown=N(new i({isPaged:!1,id:`cursorColumnSelectDown`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:3602,linux:{primary:0}}})),e.CursorColumnSelectPageDown=N(new i({isPaged:!0,id:`cursorColumnSelectPageDown`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:3596,linux:{primary:0}}}));class a extends X{constructor(){super({id:`cursorMove`,precondition:void 0,metadata:Ko.metadata})}runCoreEditorCommand(e,t){let n=Ko.parse(t);n&&this._runCursorMove(e,t.source,n)}_runCursorMove(e,t,n){let r=n.noHistory?`api`:t;e.model.pushStackElement(),e.setCursorStates(r,3,a._move(e,e.getCursorStates(),n)),e.revealAllCursors(r,!0)}static _move(e,t,n){let r=n.select,i=n.value;switch(n.direction){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return J.simpleMove(e,t,n.direction,r,i,n.unit);case 11:case 13:case 12:case 14:return J.viewportMove(e,t,n.direction,r,i);default:return null}}}e.CursorMoveImpl=a,e.CursorMove=N(new a);class o extends X{constructor(e){super(e),this._staticArgs=e.args}runCoreEditorCommand(e,t){let n=this._staticArgs;this._staticArgs.value===-1&&(n={direction:this._staticArgs.direction,unit:this._staticArgs.unit,select:this._staticArgs.select,value:t.pageSize||e.cursorConfig.pageSize}),e.model.pushStackElement(),e.setCursorStates(t.source,3,J.simpleMove(e,e.getCursorStates(),n.direction,n.select,n.value,n.unit)),e.revealAllCursors(t.source,!0)}}e.CursorLeft=N(new o({args:{direction:0,unit:0,select:!1,value:1},id:`cursorLeft`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:15,mac:{primary:15,secondary:[288]}}})),e.CursorLeftSelect=N(new o({args:{direction:0,unit:0,select:!0,value:1},id:`cursorLeftSelect`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:1039}})),e.CursorRight=N(new o({args:{direction:1,unit:0,select:!1,value:1},id:`cursorRight`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:17,mac:{primary:17,secondary:[292]}}})),e.CursorRightSelect=N(new o({args:{direction:1,unit:0,select:!0,value:1},id:`cursorRightSelect`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:1041}})),e.CursorUp=N(new o({args:{direction:2,unit:2,select:!1,value:1},id:`cursorUp`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:16,mac:{primary:16,secondary:[302]}}})),e.CursorUpSelect=N(new o({args:{direction:2,unit:2,select:!0,value:1},id:`cursorUpSelect`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:1040,secondary:[3088],mac:{primary:1040},linux:{primary:1040}}})),e.CursorPageUp=N(new o({args:{direction:2,unit:2,select:!1,value:-1},id:`cursorPageUp`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:11}})),e.CursorPageUpSelect=N(new o({args:{direction:2,unit:2,select:!0,value:-1},id:`cursorPageUpSelect`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:1035}})),e.CursorDown=N(new o({args:{direction:3,unit:2,select:!1,value:1},id:`cursorDown`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:18,mac:{primary:18,secondary:[300]}}})),e.CursorDownSelect=N(new o({args:{direction:3,unit:2,select:!0,value:1},id:`cursorDownSelect`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:1042,secondary:[3090],mac:{primary:1042},linux:{primary:1042}}})),e.CursorPageDown=N(new o({args:{direction:3,unit:2,select:!1,value:-1},id:`cursorPageDown`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:12}})),e.CursorPageDownSelect=N(new o({args:{direction:3,unit:2,select:!0,value:-1},id:`cursorPageDownSelect`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:1036}})),e.CreateCursor=N(new class extends X{constructor(){super({id:`createCursor`,precondition:void 0})}runCoreEditorCommand(e,t){if(!t.position)return;let n;n=t.wholeLine?J.line(e,e.getPrimaryCursorState(),!1,t.position,t.viewPosition):J.moveTo(e,e.getPrimaryCursorState(),!1,t.position,t.viewPosition);let r=e.getCursorStates();if(r.length>1){let i=n.modelState?n.modelState.position:null,a=n.viewState?n.viewState.position:null;for(let n=0,o=r.length;n<o;n++){let o=r[n];if(!(i&&!o.modelState.selection.containsPosition(i))&&!(a&&!o.viewState.selection.containsPosition(a))){r.splice(n,1),e.model.pushStackElement(),e.setCursorStates(t.source,3,r);return}}}r.push(n),e.model.pushStackElement(),e.setCursorStates(t.source,3,r)}}),e.LastCursorMoveToSelect=N(new class extends X{constructor(){super({id:`_lastCursorMoveToSelect`,precondition:void 0})}runCoreEditorCommand(e,t){if(!t.position)return;let n=e.getLastAddedCursorIndex(),r=e.getCursorStates(),i=r.slice(0);i[n]=J.moveTo(e,r[n],!0,t.position,t.viewPosition),e.model.pushStackElement(),e.setCursorStates(t.source,3,i)}});class s extends X{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,J.moveToBeginningOfLine(e,e.getCursorStates(),this._inSelectionMode)),e.revealAllCursors(t.source,!0)}}e.CursorHome=N(new s({inSelectionMode:!1,id:`cursorHome`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:14,mac:{primary:14,secondary:[2063]}}})),e.CursorHomeSelect=N(new s({inSelectionMode:!0,id:`cursorHomeSelect`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:1038,mac:{primary:1038,secondary:[3087]}}}));class c extends X{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,this._exec(e.getCursorStates())),e.revealAllCursors(t.source,!0)}_exec(e){let t=[];for(let n=0,r=e.length;n<r;n++){let r=e[n],i=r.modelState.position.lineNumber;t[n]=K.fromModelState(r.modelState.move(this._inSelectionMode,i,1,0))}return t}}e.CursorLineStart=N(new c({inSelectionMode:!1,id:`cursorLineStart`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:0,mac:{primary:287}}})),e.CursorLineStartSelect=N(new c({inSelectionMode:!0,id:`cursorLineStartSelect`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:0,mac:{primary:1311}}}));class l extends X{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,J.moveToEndOfLine(e,e.getCursorStates(),this._inSelectionMode,t.sticky||!1)),e.revealAllCursors(t.source,!0)}}e.CursorEnd=N(new l({inSelectionMode:!1,id:`cursorEnd`,precondition:void 0,kbOpts:{args:{sticky:!1},weight:Y,kbExpr:V.textInputFocus,primary:13,mac:{primary:13,secondary:[2065]}},metadata:{description:`Go to End`,args:[{name:`args`,schema:{type:`object`,properties:{sticky:{description:de(66,`Stick to the end even when going to longer lines`),type:`boolean`,default:!1}}}}]}})),e.CursorEndSelect=N(new l({inSelectionMode:!0,id:`cursorEndSelect`,precondition:void 0,kbOpts:{args:{sticky:!1},weight:Y,kbExpr:V.textInputFocus,primary:1037,mac:{primary:1037,secondary:[3089]}},metadata:{description:`Select to End`,args:[{name:`args`,schema:{type:`object`,properties:{sticky:{description:de(67,`Stick to the end even when going to longer lines`),type:`boolean`,default:!1}}}}]}}));class u extends X{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,this._exec(e,e.getCursorStates())),e.revealAllCursors(t.source,!0)}_exec(e,t){let n=[];for(let r=0,i=t.length;r<i;r++){let i=t[r],a=i.modelState.position.lineNumber,o=e.model.getLineMaxColumn(a);n[r]=K.fromModelState(i.modelState.move(this._inSelectionMode,a,o,0))}return n}}e.CursorLineEnd=N(new u({inSelectionMode:!1,id:`cursorLineEnd`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:0,mac:{primary:291}}})),e.CursorLineEndSelect=N(new u({inSelectionMode:!0,id:`cursorLineEndSelect`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:0,mac:{primary:1315}}}));class d extends X{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,J.moveToBeginningOfBuffer(e,e.getCursorStates(),this._inSelectionMode)),e.revealAllCursors(t.source,!0)}}e.CursorTop=N(new d({inSelectionMode:!1,id:`cursorTop`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:2062,mac:{primary:2064}}})),e.CursorTopSelect=N(new d({inSelectionMode:!0,id:`cursorTopSelect`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:3086,mac:{primary:3088}}}));class f extends X{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,J.moveToEndOfBuffer(e,e.getCursorStates(),this._inSelectionMode)),e.revealAllCursors(t.source,!0)}}e.CursorBottom=N(new f({inSelectionMode:!1,id:`cursorBottom`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:2061,mac:{primary:2066}}})),e.CursorBottomSelect=N(new f({inSelectionMode:!0,id:`cursorBottomSelect`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:3085,mac:{primary:3090}}}));class p extends X{constructor(){super({id:`editorScroll`,precondition:void 0,metadata:Z.metadata})}determineScrollMethod(e){return[6].includes(e.unit)&&[4,2].includes(e.direction)?this._runHorizontalEditorScroll.bind(this):[1,2,3,4,5,6].includes(e.unit)&&[1,3].includes(e.direction)?this._runVerticalEditorScroll.bind(this):null}runCoreEditorCommand(e,t){let n=Z.parse(t);if(!n)return;let r=this.determineScrollMethod(n);r&&r(e,t.source,n)}_runVerticalEditorScroll(e,t,n){let r=this._computeDesiredScrollTop(e,n);if(n.revealCursor){let i=e.getCompletelyVisibleViewRangeAtScrollTop(r);e.setCursorStates(t,3,[J.findPositionInViewportIfOutside(e,e.getPrimaryCursorState(),i,n.select)])}e.viewLayout.setScrollPosition({scrollTop:r},0)}_computeDesiredScrollTop(e,t){if(t.unit===1){let n=e.viewLayout.getFutureViewport(),r=e.getCompletelyVisibleViewRangeAtScrollTop(n.top),i=e.coordinatesConverter.convertViewRangeToModelRange(r),a;a=t.direction===1?Math.max(1,i.startLineNumber-t.value):Math.min(e.model.getLineCount(),i.startLineNumber+t.value);let o=e.coordinatesConverter.convertModelPositionToViewPosition(new b(a,1));return e.viewLayout.getVerticalOffsetForLineNumber(o.lineNumber)}if(t.unit===5){let n=0;return t.direction===3&&(n=e.model.getLineCount()-e.cursorConfig.pageSize),e.viewLayout.getVerticalOffsetForLineNumber(n)}let n;n=t.unit===3?e.cursorConfig.pageSize*t.value:t.unit===4?Math.round(e.cursorConfig.pageSize/2)*t.value:t.value;let r=(t.direction===1?-1:1)*n;return e.viewLayout.getCurrentScrollTop()+r*e.cursorConfig.lineHeight}_runHorizontalEditorScroll(e,t,n){let r=this._computeDesiredScrollLeft(e,n);e.viewLayout.setScrollPosition({scrollLeft:r},0)}_computeDesiredScrollLeft(e,t){let n=(t.direction===4?-1:1)*t.value;return e.viewLayout.getCurrentScrollLeft()+n*e.cursorConfig.typicalHalfwidthCharacterWidth}}e.EditorScrollImpl=p,e.EditorScroll=N(new p),e.ScrollLineUp=N(new class extends X{constructor(){super({id:`scrollLineUp`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:2064,mac:{primary:267}}})}runCoreEditorCommand(t,n){e.EditorScroll.runCoreEditorCommand(t,{to:Z.RawDirection.Up,by:Z.RawUnit.WrappedLine,value:1,revealCursor:!1,select:!1,source:n.source})}}),e.ScrollPageUp=N(new class extends X{constructor(){super({id:`scrollPageUp`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:2059,win:{primary:523},linux:{primary:523}}})}runCoreEditorCommand(t,n){e.EditorScroll.runCoreEditorCommand(t,{to:Z.RawDirection.Up,by:Z.RawUnit.Page,value:1,revealCursor:!1,select:!1,source:n.source})}}),e.ScrollEditorTop=N(new class extends X{constructor(){super({id:`scrollEditorTop`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus}})}runCoreEditorCommand(t,n){e.EditorScroll.runCoreEditorCommand(t,{to:Z.RawDirection.Up,by:Z.RawUnit.Editor,value:1,revealCursor:!1,select:!1,source:n.source})}}),e.ScrollLineDown=N(new class extends X{constructor(){super({id:`scrollLineDown`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:2066,mac:{primary:268}}})}runCoreEditorCommand(t,n){e.EditorScroll.runCoreEditorCommand(t,{to:Z.RawDirection.Down,by:Z.RawUnit.WrappedLine,value:1,revealCursor:!1,select:!1,source:n.source})}}),e.ScrollPageDown=N(new class extends X{constructor(){super({id:`scrollPageDown`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:2060,win:{primary:524},linux:{primary:524}}})}runCoreEditorCommand(t,n){e.EditorScroll.runCoreEditorCommand(t,{to:Z.RawDirection.Down,by:Z.RawUnit.Page,value:1,revealCursor:!1,select:!1,source:n.source})}}),e.ScrollEditorBottom=N(new class extends X{constructor(){super({id:`scrollEditorBottom`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus}})}runCoreEditorCommand(t,n){e.EditorScroll.runCoreEditorCommand(t,{to:Z.RawDirection.Down,by:Z.RawUnit.Editor,value:1,revealCursor:!1,select:!1,source:n.source})}}),e.ScrollLeft=N(new class extends X{constructor(){super({id:`scrollLeft`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus}})}runCoreEditorCommand(t,n){e.EditorScroll.runCoreEditorCommand(t,{to:Z.RawDirection.Left,by:Z.RawUnit.Column,value:2,revealCursor:!1,select:!1,source:n.source})}}),e.ScrollRight=N(new class extends X{constructor(){super({id:`scrollRight`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus}})}runCoreEditorCommand(t,n){e.EditorScroll.runCoreEditorCommand(t,{to:Z.RawDirection.Right,by:Z.RawUnit.Column,value:2,revealCursor:!1,select:!1,source:n.source})}});class m extends X{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){t.position&&(e.model.pushStackElement(),e.setCursorStates(t.source,3,[J.word(e,e.getPrimaryCursorState(),this._inSelectionMode,t.position)]),t.revealType!==2&&e.revealAllCursors(t.source,!0,!0))}}e.WordSelect=N(new m({inSelectionMode:!1,id:`_wordSelect`,precondition:void 0})),e.WordSelectDrag=N(new m({inSelectionMode:!0,id:`_wordSelectDrag`,precondition:void 0})),e.LastCursorWordSelect=N(new class extends X{constructor(){super({id:`lastCursorWordSelect`,precondition:void 0})}runCoreEditorCommand(e,t){if(!t.position)return;let n=e.getLastAddedCursorIndex(),r=e.getCursorStates(),i=r.slice(0),a=r[n];i[n]=J.word(e,a,a.modelState.hasSelection(),t.position),e.model.pushStackElement(),e.setCursorStates(t.source,3,i)}});class h extends X{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){t.position&&(e.model.pushStackElement(),e.setCursorStates(t.source,3,[J.line(e,e.getPrimaryCursorState(),this._inSelectionMode,t.position,t.viewPosition)]),t.revealType!==2&&e.revealAllCursors(t.source,!1,!0))}}e.LineSelect=N(new h({inSelectionMode:!1,id:`_lineSelect`,precondition:void 0})),e.LineSelectDrag=N(new h({inSelectionMode:!0,id:`_lineSelectDrag`,precondition:void 0}));class g extends X{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){if(!t.position)return;let n=e.getLastAddedCursorIndex(),r=e.getCursorStates(),i=r.slice(0);i[n]=J.line(e,r[n],this._inSelectionMode,t.position,t.viewPosition),e.model.pushStackElement(),e.setCursorStates(t.source,3,i)}}e.LastCursorLineSelect=N(new g({inSelectionMode:!1,id:`lastCursorLineSelect`,precondition:void 0})),e.LastCursorLineSelectDrag=N(new g({inSelectionMode:!0,id:`lastCursorLineSelectDrag`,precondition:void 0})),e.CancelSelection=N(new class extends X{constructor(){super({id:`cancelSelection`,precondition:V.hasNonEmptySelection,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:9,secondary:[1033]}})}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,[J.cancelSelection(e,e.getPrimaryCursorState())]),e.revealAllCursors(t.source,!0)}}),e.RemoveSecondaryCursors=N(new class extends X{constructor(){super({id:`removeSecondaryCursors`,precondition:V.hasMultipleSelections,kbOpts:{weight:1,kbExpr:V.textInputFocus,primary:9,secondary:[1033]}})}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,[e.getPrimaryCursorState()]),e.revealAllCursors(t.source,!0),Nr(de(68,`Removed secondary cursors`))}}),e.RevealLine=N(new class extends X{constructor(){super({id:`revealLine`,precondition:void 0,metadata:Bs.metadata})}runCoreEditorCommand(e,t){let n=t,r=n.lineNumber||0,i=typeof r==`number`?r+1:parseInt(r)+1;i<1&&(i=1);let a=e.model.getLineCount();i>a&&(i=a);let o=new j(i,1,i,e.model.getLineMaxColumn(i)),s=0;if(n.at)switch(n.at){case Bs.RawAtArgument.Top:s=3;break;case Bs.RawAtArgument.Center:s=1;break;case Bs.RawAtArgument.Bottom:s=4;break}let c=e.coordinatesConverter.convertModelRangeToViewRange(o);e.revealRange(t.source,!1,c,s,0)}}),e.SelectAll=new class extends Vs{constructor(){super(_t)}runDOMCommand(e){at&&(e.focus(),e.select()),e.ownerDocument.execCommand(`selectAll`)}runEditorCommand(e,t,n){let r=t._getViewModel();r&&this.runCoreEditorCommand(r,n)}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(`keyboard`,3,[J.selectAll(e,e.getPrimaryCursorState())])}},e.SetSelection=N(new class extends X{constructor(){super({id:`setSelection`,precondition:void 0})}runCoreEditorCommand(e,t){t.selection&&(e.model.pushStackElement(),e.setCursorStates(t.source,3,[K.fromModelSelection(t.selection)]))}})})(Q||={});var Hs=u.and(V.textInputFocus,V.columnSelection);function Us(e,t){Qe.registerKeybindingRule({id:e,primary:t,when:Hs,weight:1})}Us(Q.CursorColumnSelectLeft.id,1039),Us(Q.CursorColumnSelectRight.id,1041),Us(Q.CursorColumnSelectUp.id,1040),Us(Q.CursorColumnSelectPageUp.id,1035),Us(Q.CursorColumnSelectDown.id,1042),Us(Q.CursorColumnSelectPageDown.id,1036);function Ws(e){return e.register(),e}var Gs;(function(e){class t extends mt{runEditorCommand(e,t,n){let r=t._getViewModel();r&&this.runCoreEditingCommand(t,r,n||{})}}e.CoreEditingCommand=t,e.LineBreakInsert=N(new class extends t{constructor(){super({id:`lineBreakInsert`,precondition:V.writable,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:0,mac:{primary:301}}})}runCoreEditingCommand(e,t,n){e.pushUndoStop(),e.executeCommands(this.id,xs.lineBreakInsert(t.cursorConfig,t.model,t.getCursorStates().map(e=>e.modelState.selection)))}}),e.Outdent=N(new class extends t{constructor(){super({id:`outdent`,precondition:V.writable,kbOpts:{weight:Y,kbExpr:u.and(V.editorTextFocus,V.tabDoesNotMoveFocus),primary:1026}})}runCoreEditingCommand(e,t,n){e.pushUndoStop(),e.executeCommands(this.id,Rs.outdent(t.cursorConfig,t.model,t.getCursorStates().map(e=>e.modelState.selection))),e.pushUndoStop()}}),e.Tab=N(new class extends t{constructor(){super({id:`tab`,precondition:V.writable,kbOpts:{weight:Y,kbExpr:u.and(V.editorTextFocus,V.tabDoesNotMoveFocus),primary:2}})}runCoreEditingCommand(e,t,n){e.pushUndoStop(),e.executeCommands(this.id,Rs.tab(t.cursorConfig,t.model,t.getCursorStates().map(e=>e.modelState.selection))),e.pushUndoStop()}}),e.DeleteLeft=N(new class extends t{constructor(){super({id:`deleteLeft`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:1,secondary:[1025],mac:{primary:1,secondary:[1025,294,257]}}})}runCoreEditingCommand(e,t,n){let[r,i]=Ho.deleteLeft(t.getPrevEditOperationType(),t.cursorConfig,t.model,t.getCursorStates().map(e=>e.modelState.selection),t.getCursorAutoClosedCharacters());r&&e.pushUndoStop(),e.executeCommands(this.id,i),t.setPrevEditOperationType(2)}}),e.DeleteRight=N(new class extends t{constructor(){super({id:`deleteRight`,precondition:void 0,kbOpts:{weight:Y,kbExpr:V.textInputFocus,primary:20,mac:{primary:20,secondary:[290,276]}}})}runCoreEditingCommand(e,t,n){let[r,i]=Ho.deleteRight(t.getPrevEditOperationType(),t.cursorConfig,t.model,t.getCursorStates().map(e=>e.modelState.selection));r&&e.pushUndoStop(),e.executeCommands(this.id,i),t.setPrevEditOperationType(3)}}),e.Undo=new class extends Vs{constructor(){super(Ot)}runDOMCommand(e){e.ownerDocument.execCommand(`undo`)}runEditorCommand(e,t,n){if(!(!t.hasModel()||t.getOption(104)===!0))return t.getModel().undo()}},e.Redo=new class extends Vs{constructor(){super(ct)}runDOMCommand(e){e.ownerDocument.execCommand(`redo`)}runEditorCommand(e,t,n){if(!(!t.hasModel()||t.getOption(104)===!0))return t.getModel().redo()}}})(Gs||={});var Ks=class extends Dt{constructor(e,t,n){super({id:e,precondition:void 0,metadata:n}),this._handlerId=t}runCommand(e,t){let n=e.get(dt).getFocusedCodeEditor();n&&n.trigger(`keyboard`,this._handlerId,t)}};function qs(e,t){Ws(new Ks(`default:`+e,e)),Ws(new Ks(e,e,t))}qs(`type`,{description:`Type`,args:[{name:`args`,schema:{type:`object`,required:[`text`],properties:{text:{type:`string`}}}}]}),qs(`replacePreviousChar`),qs(`compositionType`),qs(`compositionStart`),qs(`compositionEnd`),qs(`paste`),qs(`cut`);var Js=class{constructor(e,t,n,r){this.configuration=e,this.viewModel=t,this.userInputEvents=n,this.commandDelegate=r}paste(e,t,n,r){this.commandDelegate.paste(e,t,n,r)}type(e){this.commandDelegate.type(e)}compositionType(e,t,n,r){this.commandDelegate.compositionType(e,t,n,r)}compositionStart(){this.commandDelegate.startComposition()}compositionEnd(){this.commandDelegate.endComposition()}cut(){this.commandDelegate.cut()}setSelection(e){Q.SetSelection.runCoreEditorCommand(this.viewModel,{source:`keyboard`,selection:e})}_validateViewColumn(e){let t=this.viewModel.getLineMinColumn(e.lineNumber);return e.column<t?new b(e.lineNumber,t):e}_hasMulticursorModifier(e){switch(this.configuration.options.get(86)){case`altKey`:return e.altKey;case`ctrlKey`:return e.ctrlKey;case`metaKey`:return e.metaKey;default:return!1}}_hasNonMulticursorModifier(e){switch(this.configuration.options.get(86)){case`altKey`:return e.ctrlKey||e.metaKey;case`ctrlKey`:return e.altKey||e.metaKey;case`metaKey`:return e.ctrlKey||e.altKey;default:return!1}}dispatchMouse(e){let t=this.configuration.options,n=ae&&t.get(121),r=t.get(28),i=t.get(171);e.middleButton&&!n?i||this._columnSelect(e.position,e.mouseColumn,e.inSelectionMode):e.startedOnLineNumbers?this._hasMulticursorModifier(e)?e.inSelectionMode?this._lastCursorLineSelect(e.position,e.revealType):this._createCursor(e.position,!0):e.inSelectionMode?this._lineSelectDrag(e.position,e.revealType):this._lineSelect(e.position,e.revealType):e.mouseDownCount>=4?this._selectAll():e.mouseDownCount===3?this._hasMulticursorModifier(e)?e.inSelectionMode?this._lastCursorLineSelectDrag(e.position,e.revealType):this._lastCursorLineSelect(e.position,e.revealType):e.inSelectionMode?this._lineSelectDrag(e.position,e.revealType):this._lineSelect(e.position,e.revealType):e.mouseDownCount===2?e.onInjectedText||(this._hasMulticursorModifier(e)?this._lastCursorWordSelect(e.position,e.revealType):e.inSelectionMode?this._wordSelectDrag(e.position,e.revealType):this._wordSelect(e.position,e.revealType)):this._hasMulticursorModifier(e)?this._hasNonMulticursorModifier(e)||(e.shiftKey?this._columnSelect(e.position,e.mouseColumn,!0):e.inSelectionMode?this._lastCursorMoveToSelect(e.position,e.revealType):this._createCursor(e.position,!1)):e.inSelectionMode?e.altKey||r?this._columnSelect(e.position,e.mouseColumn,!0):this._moveToSelect(e.position,e.revealType):this.moveTo(e.position,e.revealType)}_usualArgs(e,t){return e=this._validateViewColumn(e),{source:`mouse`,position:this._convertViewToModelPosition(e),viewPosition:e,revealType:t}}moveTo(e,t){Q.MoveTo.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_moveToSelect(e,t){Q.MoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_columnSelect(e,t,n){e=this._validateViewColumn(e),Q.ColumnSelect.runCoreEditorCommand(this.viewModel,{source:`mouse`,position:this._convertViewToModelPosition(e),viewPosition:e,mouseColumn:t,doColumnSelect:n})}_createCursor(e,t){e=this._validateViewColumn(e),Q.CreateCursor.runCoreEditorCommand(this.viewModel,{source:`mouse`,position:this._convertViewToModelPosition(e),viewPosition:e,wholeLine:t})}_lastCursorMoveToSelect(e,t){Q.LastCursorMoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_wordSelect(e,t){Q.WordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_wordSelectDrag(e,t){Q.WordSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lastCursorWordSelect(e,t){Q.LastCursorWordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lineSelect(e,t){Q.LineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lineSelectDrag(e,t){Q.LineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lastCursorLineSelect(e,t){Q.LastCursorLineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lastCursorLineSelectDrag(e,t){Q.LastCursorLineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_selectAll(){Q.SelectAll.runCoreEditorCommand(this.viewModel,{source:`mouse`})}_convertViewToModelPosition(e){return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(e)}emitKeyDown(e){this.userInputEvents.emitKeyDown(e)}emitKeyUp(e){this.userInputEvents.emitKeyUp(e)}emitContextMenu(e){this.userInputEvents.emitContextMenu(e)}emitMouseMove(e){this.userInputEvents.emitMouseMove(e)}emitMouseLeave(e){this.userInputEvents.emitMouseLeave(e)}emitMouseUp(e){this.userInputEvents.emitMouseUp(e)}emitMouseDown(e){this.userInputEvents.emitMouseDown(e)}emitMouseDrag(e){this.userInputEvents.emitMouseDrag(e)}emitMouseDrop(e){this.userInputEvents.emitMouseDrop(e)}emitMouseDropCanceled(){this.userInputEvents.emitMouseDropCanceled()}emitMouseWheel(e){this.userInputEvents.emitMouseWheel(e)}},Ys=class{constructor(e){this._lineFactory=e,this._set(1,[])}flush(){this._set(1,[])}_set(e,t){this._lines=t,this._rendLineNumberStart=e}_get(){return{rendLineNumberStart:this._rendLineNumberStart,lines:this._lines}}getStartLineNumber(){return this._rendLineNumberStart}getEndLineNumber(){return this._rendLineNumberStart+this._lines.length-1}getCount(){return this._lines.length}getLine(e){let t=e-this._rendLineNumberStart;if(t<0||t>=this._lines.length)throw new A(`Illegal value for lineNumber`);return this._lines[t]}onLinesDeleted(e,t){if(this.getCount()===0)return null;let n=this.getStartLineNumber(),r=this.getEndLineNumber();if(t<n){let n=t-e+1;return this._rendLineNumberStart-=n,null}if(e>r)return null;let i=0,a=0;for(let o=n;o<=r;o++){let n=o-this._rendLineNumberStart;e<=o&&o<=t&&(a===0?(i=n,a=1):a++)}if(e<n){let r=0;r=t<n?t-e+1:n-e,this._rendLineNumberStart-=r}return this._lines.splice(i,a)}onLinesChanged(e,t){let n=e+t-1;if(this.getCount()===0)return!1;let r=this.getStartLineNumber(),i=this.getEndLineNumber(),a=!1;for(let t=e;t<=n;t++)t>=r&&t<=i&&(this._lines[t-this._rendLineNumberStart].onContentChanged(),a=!0);return a}onLinesInserted(e,t){if(this.getCount()===0)return null;let n=t-e+1,r=this.getStartLineNumber(),i=this.getEndLineNumber();if(e<=r)return this._rendLineNumberStart+=n,null;if(e>i)return null;if(n+e>i)return this._lines.splice(e-this._rendLineNumberStart,i-e+1);let a=[];for(let e=0;e<n;e++)a[e]=this._lineFactory.createLine();let o=e-this._rendLineNumberStart,s=this._lines.slice(0,o),c=this._lines.slice(o,this._lines.length-n),l=this._lines.slice(this._lines.length-n,this._lines.length);return this._lines=s.concat(a).concat(c),l}onTokensChanged(e){if(this.getCount()===0)return!1;let t=this.getStartLineNumber(),n=this.getEndLineNumber(),r=!1;for(let i=0,a=e.length;i<a;i++){let a=e[i];if(a.toLineNumber<t||a.fromLineNumber>n)continue;let o=Math.max(t,a.fromLineNumber),s=Math.min(n,a.toLineNumber);for(let e=o;e<=s;e++){let t=e-this._rendLineNumberStart;this._lines[t].onTokensChanged(),r=!0}}return r}},Xs=class{constructor(e,t){this._viewContext=e,this._lineFactory=t,this.domNode=this._createDomNode(),this._linesCollection=new Ys(this._lineFactory)}_createDomNode(){let e=B(document.createElement(`div`));return e.setClassName(`view-layer`),e.setPosition(`absolute`),e.domNode.setAttribute(`role`,`presentation`),e.domNode.setAttribute(`aria-hidden`,`true`),e}onConfigurationChanged(e){return!!e.hasChanged(165)}onFlushed(e,t){if(t){let e=this._linesCollection.getStartLineNumber(),t=this._linesCollection.getEndLineNumber();for(let n=e;n<=t;n++)this._linesCollection.getLine(n).getDomNode()?.remove()}return this._linesCollection.flush(),!0}onLinesChanged(e){return this._linesCollection.onLinesChanged(e.fromLineNumber,e.count)}onLinesDeleted(e){let t=this._linesCollection.onLinesDeleted(e.fromLineNumber,e.toLineNumber);if(t)for(let e=0,n=t.length;e<n;e++)t[e].getDomNode()?.remove();return!0}onLinesInserted(e){let t=this._linesCollection.onLinesInserted(e.fromLineNumber,e.toLineNumber);if(t)for(let e=0,n=t.length;e<n;e++)t[e].getDomNode()?.remove();return!0}onScrollChanged(e){return e.scrollTopChanged}onTokensChanged(e){return this._linesCollection.onTokensChanged(e.ranges)}onZonesChanged(e){return!0}getStartLineNumber(){return this._linesCollection.getStartLineNumber()}getEndLineNumber(){return this._linesCollection.getEndLineNumber()}getVisibleLine(e){return this._linesCollection.getLine(e)}renderLines(e){let t=this._linesCollection._get(),n=new Zs(this.domNode.domNode,this._lineFactory,e,this._viewContext),r={rendLineNumberStart:t.rendLineNumberStart,lines:t.lines,linesLength:t.lines.length},i=n.render(r,e.startLineNumber,e.endLineNumber,e.relativeVerticalOffset);this._linesCollection._set(i.rendLineNumberStart,i.lines)}},Zs=class e{static{this._ttPolicy=Xr(`editorViewLayer`,{createHTML:e=>e})}constructor(e,t,n,r){this._domNode=e,this._lineFactory=t,this._viewportData=n,this._viewContext=r}render(e,t,n,r){let i={rendLineNumberStart:e.rendLineNumberStart,lines:e.lines.slice(0),linesLength:e.linesLength};if(i.rendLineNumberStart+i.linesLength-1<t||n<i.rendLineNumberStart){i.rendLineNumberStart=t,i.linesLength=n-t+1,i.lines=[];for(let e=t;e<=n;e++)i.lines[e-t]=this._lineFactory.createLine();return this._finishRendering(i,!0,r),i}if(this._renderUntouchedLines(i,Math.max(t-i.rendLineNumberStart,0),Math.min(n-i.rendLineNumberStart,i.linesLength-1),r,t),i.rendLineNumberStart>t){let e=t,a=Math.min(n,i.rendLineNumberStart-1);e<=a&&(this._insertLinesBefore(i,e,a,r,t),i.linesLength+=a-e+1)}else if(i.rendLineNumberStart<t){let e=Math.min(i.linesLength,t-i.rendLineNumberStart);e>0&&(this._removeLinesBefore(i,e),i.linesLength-=e)}if(i.rendLineNumberStart=t,i.rendLineNumberStart+i.linesLength-1<n){let e=i.rendLineNumberStart+i.linesLength,a=n;e<=a&&(this._insertLinesAfter(i,e,a,r,t),i.linesLength+=a-e+1)}else if(i.rendLineNumberStart+i.linesLength-1>n){let e=Math.max(0,n-i.rendLineNumberStart+1),t=i.linesLength-1-e+1;t>0&&(this._removeLinesAfter(i,t),i.linesLength-=t)}return this._finishRendering(i,!1,r),i}_renderUntouchedLines(e,t,n,r,i){let a=e.rendLineNumberStart,o=e.lines;for(let e=t;e<=n;e++){let t=a+e;o[e].layoutLine(t,r[t-i],this._lineHeightForLineNumber(t))}}_insertLinesBefore(e,t,n,r,i){let a=[],o=0;for(let e=t;e<=n;e++)a[o++]=this._lineFactory.createLine();e.lines=a.concat(e.lines)}_removeLinesBefore(e,t){for(let n=0;n<t;n++)e.lines[n].getDomNode()?.remove();e.lines.splice(0,t)}_insertLinesAfter(e,t,n,r,i){let a=[],o=0;for(let e=t;e<=n;e++)a[o++]=this._lineFactory.createLine();e.lines=e.lines.concat(a)}_removeLinesAfter(e,t){let n=e.linesLength-t;for(let r=0;r<t;r++)e.lines[n+r].getDomNode()?.remove();e.lines.splice(n,t)}_finishRenderingNewLines(t,n,r,i){e._ttPolicy&&(r=e._ttPolicy.createHTML(r));let a=this._domNode.lastChild;n||!a?this._domNode.innerHTML=r:a.insertAdjacentHTML(`afterend`,r);let o=this._domNode.lastChild;for(let e=t.linesLength-1;e>=0;e--){let n=t.lines[e];i[e]&&(n.setDomNode(o),o=o.previousSibling)}}_finishRenderingInvalidLines(t,n,r){let i=document.createElement(`div`);e._ttPolicy&&(n=e._ttPolicy.createHTML(n)),i.innerHTML=n;for(let e=0;e<t.linesLength;e++){let n=t.lines[e];if(r[e]){let e=i.firstChild;n.getDomNode().replaceWith(e),n.setDomNode(e)}}}static{this._sb=new er(1e5)}_finishRendering(t,n,r){let i=e._sb,a=t.linesLength,o=t.lines,s=t.rendLineNumberStart,c=[];{i.reset();let e=!1;for(let t=0;t<a;t++){let n=o[t];if(c[t]=!1,n.getDomNode())continue;let a=t+s;n.renderLine(a,r[t],this._lineHeightForLineNumber(a),this._viewportData,i)&&(c[t]=!0,e=!0)}e&&this._finishRenderingNewLines(t,n,i.build(),c)}{i.reset();let e=!1,n=[];for(let t=0;t<a;t++){let a=o[t];if(n[t]=!1,c[t])continue;let l=t+s;a.renderLine(l,r[t],this._lineHeightForLineNumber(l),this._viewportData,i)&&(n[t]=!0,e=!0)}e&&this._finishRenderingInvalidLines(t,i.build(),n)}}_lineHeightForLineNumber(e){return this._viewContext.viewLayout.getLineHeightForLineNumber(e)}},Qs=class extends ia{constructor(e){super(e),this._dynamicOverlays=[],this._isFocused=!1,this._visibleLines=new Xs(this._context,{createLine:()=>new $s(this._dynamicOverlays)}),this.domNode=this._visibleLines.domNode;let t=this._context.configuration.options.get(59);H(this.domNode,t),this.domNode.setClassName(`view-overlays`)}shouldRender(){if(super.shouldRender())return!0;for(let e=0,t=this._dynamicOverlays.length;e<t;e++)if(this._dynamicOverlays[e].shouldRender())return!0;return!1}dispose(){super.dispose();for(let e=0,t=this._dynamicOverlays.length;e<t;e++)this._dynamicOverlays[e].dispose();this._dynamicOverlays=[]}getDomNode(){return this.domNode}addDynamicOverlay(e){this._dynamicOverlays.push(e)}onConfigurationChanged(e){this._visibleLines.onConfigurationChanged(e);let t=this._context.configuration.options.get(59);return H(this.domNode,t),!0}onFlushed(e){return this._visibleLines.onFlushed(e)}onFocusChanged(e){return this._isFocused=e.isFocused,!0}onLinesChanged(e){return this._visibleLines.onLinesChanged(e)}onLinesDeleted(e){return this._visibleLines.onLinesDeleted(e)}onLinesInserted(e){return this._visibleLines.onLinesInserted(e)}onScrollChanged(e){return this._visibleLines.onScrollChanged(e)||!0}onTokensChanged(e){return this._visibleLines.onTokensChanged(e)}onZonesChanged(e){return this._visibleLines.onZonesChanged(e)}prepareRender(e){let t=this._dynamicOverlays.filter(e=>e.shouldRender());for(let n=0,r=t.length;n<r;n++){let r=t[n];r.prepareRender(e),r.onDidRender()}}render(e){this._viewOverlaysRender(e),this.domNode.toggleClassName(`focused`,this._isFocused)}_viewOverlaysRender(e){this._visibleLines.renderLines(e.viewportData)}},$s=class{constructor(e){this._dynamicOverlays=e,this._domNode=null,this._renderedContent=null}getDomNode(){return this._domNode?this._domNode.domNode:null}setDomNode(e){this._domNode=B(e)}onContentChanged(){}onTokensChanged(){}renderLine(e,t,n,r,i){let a=``;for(let t=0,n=this._dynamicOverlays.length;t<n;t++){let n=this._dynamicOverlays[t];a+=n.render(r.startLineNumber,e)}return this._renderedContent===a?!1:(this._renderedContent=a,i.appendString(`<div style="top:`),i.appendString(String(t)),i.appendString(`px;height:`),i.appendString(String(n)),i.appendString(`px;line-height:`),i.appendString(String(n)),i.appendString(`px;">`),i.appendString(a),i.appendString(`</div>`),!0)}layoutLine(e,t,n){this._domNode&&(this._domNode.setTop(t),this._domNode.setHeight(n),this._domNode.setLineHeight(n))}},ec=class extends Qs{constructor(e){super(e);let t=this._context.configuration.options.get(165);this._contentWidth=t.contentWidth,this.domNode.setHeight(0)}onConfigurationChanged(e){let t=this._context.configuration.options.get(165);return this._contentWidth=t.contentWidth,super.onConfigurationChanged(e)||!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollWidthChanged}_viewOverlaysRender(e){super._viewOverlaysRender(e),this.domNode.setWidth(Math.max(e.scrollWidth,this._contentWidth))}},tc=class extends Qs{constructor(e){super(e);let t=this._context.configuration.options,n=t.get(165);this._contentLeft=n.contentLeft,this.domNode.setClassName(`margin-view-overlays`),this.domNode.setWidth(1),H(this.domNode,t.get(59))}onConfigurationChanged(e){let t=this._context.configuration.options;H(this.domNode,t.get(59));let n=t.get(165);return this._contentLeft=n.contentLeft,super.onConfigurationChanged(e)||!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollHeightChanged}_viewOverlaysRender(e){super._viewOverlaysRender(e);let t=Math.min(e.scrollHeight,1e6);this.domNode.setHeight(t),this.domNode.setWidth(this._contentLeft)}},nc=class e{constructor(e){this.onKeyDown=null,this.onKeyUp=null,this.onContextMenu=null,this.onMouseMove=null,this.onMouseLeave=null,this.onMouseDown=null,this.onMouseUp=null,this.onMouseDrag=null,this.onMouseDrop=null,this.onMouseDropCanceled=null,this.onMouseWheel=null,this._coordinatesConverter=e}emitKeyDown(e){this.onKeyDown?.(e)}emitKeyUp(e){this.onKeyUp?.(e)}emitContextMenu(e){this.onContextMenu?.(this._convertViewToModelMouseEvent(e))}emitMouseMove(e){this.onMouseMove?.(this._convertViewToModelMouseEvent(e))}emitMouseLeave(e){this.onMouseLeave?.(this._convertViewToModelMouseEvent(e))}emitMouseDown(e){this.onMouseDown?.(this._convertViewToModelMouseEvent(e))}emitMouseUp(e){this.onMouseUp?.(this._convertViewToModelMouseEvent(e))}emitMouseDrag(e){this.onMouseDrag?.(this._convertViewToModelMouseEvent(e))}emitMouseDrop(e){this.onMouseDrop?.(this._convertViewToModelMouseEvent(e))}emitMouseDropCanceled(){this.onMouseDropCanceled?.()}emitMouseWheel(e){this.onMouseWheel?.(e)}_convertViewToModelMouseEvent(e){return e.target?{event:e.event,target:this._convertViewToModelMouseTarget(e.target)}:e}_convertViewToModelMouseTarget(t){return e.convertViewToModelMouseTarget(t,this._coordinatesConverter)}static convertViewToModelMouseTarget(e,t){let n={...e};return n.position&&=t.convertViewPositionToModelPosition(n.position),n.range&&=t.convertViewRangeToModelRange(n.range),(n.type===5||n.type===8)&&(n.detail=this.convertViewToModelViewZoneData(n.detail,t)),n}static convertViewToModelViewZoneData(e,t){return{viewZoneId:e.viewZoneId,positionBefore:e.positionBefore?t.convertViewPositionToModelPosition(e.positionBefore):e.positionBefore,positionAfter:e.positionAfter?t.convertViewPositionToModelPosition(e.positionAfter):e.positionAfter,position:t.convertViewPositionToModelPosition(e.position),afterLineNumber:t.convertViewPositionToModelPosition(new b(e.afterLineNumber,1)).lineNumber}}},rc=class extends ia{constructor(e){super(e),this.blocks=[],this.contentWidth=-1,this.contentLeft=0,this.domNode=B(document.createElement(`div`)),this.domNode.setAttribute(`role`,`presentation`),this.domNode.setAttribute(`aria-hidden`,`true`),this.domNode.setClassName(`blockDecorations-container`),this.update()}update(){let e=!1,t=this._context.configuration.options.get(165),n=t.contentWidth-t.verticalScrollbarWidth;this.contentWidth!==n&&(this.contentWidth=n,e=!0);let r=t.contentLeft;return this.contentLeft!==r&&(this.contentLeft=r,e=!0),e}dispose(){super.dispose()}onConfigurationChanged(e){return this.update()}onScrollChanged(e){return e.scrollTopChanged||e.scrollLeftChanged}onDecorationsChanged(e){return!0}onZonesChanged(e){return!0}prepareRender(e){}render(e){let t=0,n=e.getDecorationsInViewport();for(let r of n){if(!r.options.blockClassName)continue;let n=this.blocks[t];n||(n=this.blocks[t]=B(document.createElement(`div`)),this.domNode.appendChild(n));let i,a;r.options.blockIsAfterEnd?(i=e.getVerticalOffsetAfterLineNumber(r.range.endLineNumber,!1),a=e.getVerticalOffsetAfterLineNumber(r.range.endLineNumber,!0)):(i=e.getVerticalOffsetForLineNumber(r.range.startLineNumber,!0),a=r.range.isEmpty()&&!r.options.blockDoesNotCollapse?e.getVerticalOffsetForLineNumber(r.range.startLineNumber,!1):e.getVerticalOffsetAfterLineNumber(r.range.endLineNumber,!0));let[o,s,c,l]=r.options.blockPadding??[0,0,0,0];n.setClassName(`blockDecorations-block `+r.options.blockClassName),n.setLeft(this.contentLeft-l),n.setWidth(this.contentWidth+l+s),n.setTop(i-e.scrollTop-o),n.setHeight(a-i+o+c),t++}for(let e=t;e<this.blocks.length;e++)this.blocks[e].domNode.remove();this.blocks.length=t}},ic=class extends ia{constructor(e,t){super(e),this._viewDomNode=t,this._widgets={},this.domNode=B(document.createElement(`div`)),aa.write(this.domNode,1),this.domNode.setClassName(`contentWidgets`),this.domNode.setPosition(`absolute`),this.domNode.setTop(0),this.overflowingContentWidgetsDomNode=B(document.createElement(`div`)),aa.write(this.overflowingContentWidgetsDomNode,2),this.overflowingContentWidgetsDomNode.setClassName(`overflowingContentWidgets`)}dispose(){super.dispose(),this._widgets={}}onConfigurationChanged(e){let t=Object.keys(this._widgets);for(let n of t)this._widgets[n].onConfigurationChanged(e);return!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLineMappingChanged(e){return this._updateAnchorsViewPositions(),!0}onLinesChanged(e){return this._updateAnchorsViewPositions(),!0}onLinesDeleted(e){return this._updateAnchorsViewPositions(),!0}onLinesInserted(e){return this._updateAnchorsViewPositions(),!0}onScrollChanged(e){return!0}onZonesChanged(e){return!0}_updateAnchorsViewPositions(){let e=Object.keys(this._widgets);for(let t of e)this._widgets[t].updateAnchorViewPosition()}addWidget(e){let t=new ac(this._context,this._viewDomNode,e);this._widgets[t.id]=t,t.allowEditorOverflow?this.overflowingContentWidgetsDomNode.appendChild(t.domNode):this.domNode.appendChild(t.domNode),this.setShouldRender()}setWidgetPosition(e,t,n,r,i){this._widgets[e.getId()].setPosition(t,n,r,i),this.setShouldRender()}removeWidget(e){let t=e.getId();if(this._widgets.hasOwnProperty(t)){let e=this._widgets[t];delete this._widgets[t];let n=e.domNode.domNode;n.remove(),n.removeAttribute(`monaco-visible-content-widget`),this.setShouldRender()}}shouldSuppressMouseDownOnWidget(e){return this._widgets.hasOwnProperty(e)?this._widgets[e].suppressMouseDown:!1}onBeforeRender(e){let t=Object.keys(this._widgets);for(let n of t)this._widgets[n].onBeforeRender(e)}prepareRender(e){let t=Object.keys(this._widgets);for(let n of t)this._widgets[n].prepareRender(e)}render(e){let t=Object.keys(this._widgets);for(let n of t)this._widgets[n].render(e)}},ac=class{constructor(e,t,n){this._primaryAnchor=new oc(null,null),this._secondaryAnchor=new oc(null,null),this._context=e,this._viewDomNode=t,this._actual=n;let r=this._context.configuration.options,i=r.get(165),a=r.get(4);this.domNode=B(this._actual.getDomNode()),this.id=this._actual.getId(),this.allowEditorOverflow=(this._actual.allowEditorOverflow||!1)&&a,this.suppressMouseDown=this._actual.suppressMouseDown||!1,this._fixedOverflowWidgets=r.get(51),this._contentWidth=i.contentWidth,this._contentLeft=i.contentLeft,this._affinity=null,this._preference=[],this._cachedDomNodeOffsetWidth=-1,this._cachedDomNodeOffsetHeight=-1,this._maxWidth=this._getMaxWidth(),this._isVisible=!1,this._renderData=null,this.domNode.setPosition(this._fixedOverflowWidgets&&this.allowEditorOverflow?`fixed`:`absolute`),this.domNode.setDisplay(`none`),this.domNode.setVisibility(`hidden`),this.domNode.setAttribute(`widgetId`,this.id),this.domNode.setMaxWidth(this._maxWidth)}onConfigurationChanged(e){let t=this._context.configuration.options;if(e.hasChanged(165)){let e=t.get(165);this._contentLeft=e.contentLeft,this._contentWidth=e.contentWidth,this._maxWidth=this._getMaxWidth()}}updateAnchorViewPosition(){this._setPosition(this._affinity,this._primaryAnchor.modelPosition,this._secondaryAnchor.modelPosition)}_setPosition(e,t,n){this._affinity=e,this._primaryAnchor=r(t,this._context.viewModel,this._affinity),this._secondaryAnchor=r(n,this._context.viewModel,this._affinity);function r(e,t,n){if(!e)return new oc(null,null);let r=t.model.validatePosition(e);return t.coordinatesConverter.modelPositionIsVisible(r)?new oc(e,t.coordinatesConverter.convertModelPositionToViewPosition(r,n??void 0)):new oc(e,null)}}_getMaxWidth(){let e=this.domNode.domNode.ownerDocument,t=e.defaultView;return this.allowEditorOverflow?t?.innerWidth||e.documentElement.offsetWidth||e.body.offsetWidth:this._contentWidth}setPosition(e,t,n,r){this._setPosition(r,e,t),this._preference=n,this._primaryAnchor.viewPosition&&this._preference&&this._preference.length>0?this.domNode.setDisplay(`block`):this.domNode.setDisplay(`none`),this._cachedDomNodeOffsetWidth=-1,this._cachedDomNodeOffsetHeight=-1}_layoutBoxInViewport(e,t,n,r){let i=e.top,a=i,o=e.top+e.height,s=r.viewportHeight-o,c=i-n,l=a>=n,u=o,d=s>=n,f=e.left;return f+t>r.scrollLeft+r.viewportWidth&&(f=r.scrollLeft+r.viewportWidth-t),f<r.scrollLeft&&(f=r.scrollLeft),{fitsAbove:l,aboveTop:c,fitsBelow:d,belowTop:u,left:f}}_layoutHorizontalSegmentInPage(e,t,n,r){let i=Math.max(15,t.left-r),a=Math.min(t.left+t.width+r,e.width-15),o=this._viewDomNode.domNode.ownerDocument.defaultView,s=t.left+n-(o?.scrollX??0);if(s+r>a){let e=s-(a-r);s-=e,n-=e}if(s<i){let e=s-i;s-=e,n-=e}return[n,s]}_layoutBoxInPage(e,t,n,r){let i=e.top-n,a=e.top+e.height,o=Ue(this._viewDomNode.domNode),s=this._viewDomNode.domNode.ownerDocument,c=s.defaultView,l=o.top+i-(c?.scrollY??0),u=o.top+a-(c?.scrollY??0),d=Be(s.body),[f,p]=this._layoutHorizontalSegmentInPage(d,o,e.left-r.scrollLeft+this._contentLeft,t),m=l>=22,h=u+n<=d.height-22;return this._fixedOverflowWidgets?{fitsAbove:m,aboveTop:Math.max(l,22),fitsBelow:h,belowTop:u,left:p}:{fitsAbove:m,aboveTop:i,fitsBelow:h,belowTop:a,left:f}}_prepareRenderWidgetAtExactPositionOverflowing(e){return new sc(e.top,e.left+this._contentLeft)}_getAnchorsCoordinates(e){return{primary:t(this._primaryAnchor.viewPosition,this._affinity),secondary:t(this._secondaryAnchor.viewPosition?.lineNumber===this._primaryAnchor.viewPosition?.lineNumber?this._secondaryAnchor.viewPosition:null,this._affinity)};function t(t,n){if(!t)return null;let r=e.visibleRangeForPosition(t);if(!r)return null;let i=t.column===1&&n===3?0:r.left;return new cc(e.getVerticalOffsetForLineNumber(t.lineNumber)-e.scrollTop,i,e.getLineHeightForLineNumber(t.lineNumber))}}_reduceAnchorCoordinates(e,t,n){if(!t)return e;let r=this._context.configuration.options.get(59),i=t.left;return i=i<e.left?Math.max(i,e.left-n+r.typicalFullwidthCharacterWidth):Math.min(i,e.left+n-r.typicalFullwidthCharacterWidth),new cc(e.top,i,e.height)}_prepareRenderWidget(e){if(!this._preference||this._preference.length===0)return null;let{primary:t,secondary:n}=this._getAnchorsCoordinates(e);if(!t)return{kind:`offViewport`,preserveFocus:this.domNode.domNode.contains(this.domNode.domNode.ownerDocument.activeElement)};if(this._cachedDomNodeOffsetWidth===-1||this._cachedDomNodeOffsetHeight===-1){let e=null;if(typeof this._actual.beforeRender==`function`&&(e=lc(this._actual.beforeRender,this._actual)),e)this._cachedDomNodeOffsetWidth=e.width,this._cachedDomNodeOffsetHeight=e.height;else{let e=this.domNode.domNode.getBoundingClientRect();this._cachedDomNodeOffsetWidth=Math.round(e.width),this._cachedDomNodeOffsetHeight=Math.round(e.height)}}let r=this._reduceAnchorCoordinates(t,n,this._cachedDomNodeOffsetWidth),i;i=this.allowEditorOverflow?this._layoutBoxInPage(r,this._cachedDomNodeOffsetWidth,this._cachedDomNodeOffsetHeight,e):this._layoutBoxInViewport(r,this._cachedDomNodeOffsetWidth,this._cachedDomNodeOffsetHeight,e);for(let e=1;e<=2;e++)for(let t of this._preference)if(t===1){if(!i)return null;if(e===2||i.fitsAbove)return{kind:`inViewport`,coordinate:new sc(i.aboveTop,i.left),position:1}}else if(t===2){if(!i)return null;if(e===2||i.fitsBelow)return{kind:`inViewport`,coordinate:new sc(i.belowTop,i.left),position:2}}else if(this.allowEditorOverflow)return{kind:`inViewport`,coordinate:this._prepareRenderWidgetAtExactPositionOverflowing(new sc(r.top,r.left)),position:0};else return{kind:`inViewport`,coordinate:new sc(r.top,r.left),position:0};return null}onBeforeRender(e){!this._primaryAnchor.viewPosition||!this._preference||this._primaryAnchor.viewPosition.lineNumber<e.startLineNumber||this._primaryAnchor.viewPosition.lineNumber>e.endLineNumber||this.domNode.setMaxWidth(this._maxWidth)}prepareRender(e){this._renderData=this._prepareRenderWidget(e)}render(e){if(!this._renderData||this._renderData.kind===`offViewport`){this._isVisible&&(this.domNode.removeAttribute(`monaco-visible-content-widget`),this._isVisible=!1,this._renderData?.kind===`offViewport`&&this._renderData.preserveFocus?this.domNode.setTop(-1e3):this.domNode.setVisibility(`hidden`)),typeof this._actual.afterRender==`function`&&lc(this._actual.afterRender,this._actual,null,null);return}this.allowEditorOverflow?(this.domNode.setTop(this._renderData.coordinate.top),this.domNode.setLeft(this._renderData.coordinate.left)):(this.domNode.setTop(this._renderData.coordinate.top+e.scrollTop-e.bigNumbersDelta),this.domNode.setLeft(this._renderData.coordinate.left)),this._isVisible||=(this.domNode.setVisibility(`inherit`),this.domNode.setAttribute(`monaco-visible-content-widget`,`true`),!0),typeof this._actual.afterRender==`function`&&lc(this._actual.afterRender,this._actual,this._renderData.position,this._renderData.coordinate)}},oc=class{constructor(e,t){this.modelPosition=e,this.viewPosition=t}},sc=class{constructor(e,t){this.top=e,this.left=t,this._coordinateBrand=void 0}},cc=class{constructor(e,t,n){this.top=e,this.left=t,this.height=n,this._anchorCoordinateBrand=void 0}};function lc(e,t,...n){try{return e.call(t,...n)}catch{return null}}var uc=class extends ra{},dc=class extends uc{constructor(e){super(),this._context=e;let t=this._context.configuration.options,n=t.get(165);this._renderLineHighlight=t.get(110),this._renderLineHighlightOnlyWhenFocus=t.get(111),this._wordWrap=n.isViewportWrapping,this._contentLeft=n.contentLeft,this._contentWidth=n.contentWidth,this._selectionIsEmpty=!0,this._focused=!1,this._cursorLineNumbers=[1],this._selections=[new L(1,1,1,1)],this._renderData=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}_readFromSelections(){let e=!1,t=new Set;for(let e of this._selections)t.add(e.positionLineNumber);let n=Array.from(t);n.sort((e,t)=>e-t),He(this._cursorLineNumbers,n)||(this._cursorLineNumbers=n,e=!0);let r=this._selections.every(e=>e.isEmpty());return this._selectionIsEmpty!==r&&(this._selectionIsEmpty=r,e=!0),e}onThemeChanged(e){return this._readFromSelections()}onConfigurationChanged(e){let t=this._context.configuration.options,n=t.get(165);return this._renderLineHighlight=t.get(110),this._renderLineHighlightOnlyWhenFocus=t.get(111),this._wordWrap=n.isViewportWrapping,this._contentLeft=n.contentLeft,this._contentWidth=n.contentWidth,!0}onCursorStateChanged(e){return this._selections=e.selections,this._readFromSelections()}onFlushed(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollWidthChanged||e.scrollTopChanged}onZonesChanged(e){return!0}onFocusChanged(e){return this._renderLineHighlightOnlyWhenFocus?(this._focused=e.isFocused,!0):!1}prepareRender(e){if(!this._shouldRenderThis()){this._renderData=null;return}let t=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,r=[];for(let e=t;e<=n;e++){let n=e-t;r[n]=``}if(this._wordWrap){let i=this._renderOne(e,!1);for(let e of this._cursorLineNumbers){let a=this._context.viewModel.coordinatesConverter,o=a.convertViewPositionToModelPosition(new b(e,1)).lineNumber,s=a.convertModelPositionToViewPosition(new b(o,1)).lineNumber,c=a.convertModelPositionToViewPosition(new b(o,this._context.viewModel.model.getLineMaxColumn(o))).lineNumber,l=Math.max(s,t),u=Math.min(c,n);for(let e=l;e<=u;e++){let n=e-t;r[n]=i}}}let i=this._renderOne(e,!0);for(let e of this._cursorLineNumbers){if(e<t||e>n)continue;let a=e-t;r[a]=i}this._renderData=r}render(e,t){if(!this._renderData)return``;let n=t-e;return n>=this._renderData.length?``:this._renderData[n]}_shouldRenderInMargin(){return(this._renderLineHighlight===`gutter`||this._renderLineHighlight===`all`)&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}_shouldRenderInContent(){return(this._renderLineHighlight===`line`||this._renderLineHighlight===`all`)&&this._selectionIsEmpty&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}},fc=class extends dc{_renderOne(e,t){return`<div class="${`current-line`+(this._shouldRenderInMargin()?` current-line-both`:``)+(t?` current-line-exact`:``)}" style="width:${Math.max(e.scrollWidth,this._contentWidth)}px;"></div>`}_shouldRenderThis(){return this._shouldRenderInContent()}_shouldRenderOther(){return this._shouldRenderInMargin()}},pc=class extends dc{_renderOne(e,t){return`<div class="${`current-line`+(this._shouldRenderInMargin()?` current-line-margin`:``)+(this._shouldRenderOther()?` current-line-margin-both`:``)+(this._shouldRenderInMargin()&&t?` current-line-exact-margin`:``)}" style="width:${this._contentLeft}px"></div>`}_shouldRenderThis(){return!0}_shouldRenderOther(){return this._shouldRenderInContent()}};me((e,t)=>{let n=e.getColor(On);if(n&&(t.addRule(`.monaco-editor .view-overlays .current-line { background-color: ${n}; }`),t.addRule(`.monaco-editor .margin-view-overlays .current-line-margin { background-color: ${n}; border: none; }`)),!n||n.isTransparent()||e.defines(ar)){let n=e.getColor(ar);n&&(t.addRule(`.monaco-editor .view-overlays .current-line-exact { border: 2px solid ${n}; }`),t.addRule(`.monaco-editor .margin-view-overlays .current-line-exact-margin { border: 2px solid ${n}; }`),ge(e.type)&&(t.addRule(`.monaco-editor .view-overlays .current-line-exact { border-width: 1px; }`),t.addRule(`.monaco-editor .margin-view-overlays .current-line-exact-margin { border-width: 1px; }`)))}});var mc=class extends uc{constructor(e){super(),this._context=e;let t=this._context.configuration.options;this._typicalHalfwidthCharacterWidth=t.get(59).typicalHalfwidthCharacterWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){let t=this._context.configuration.options;return this._typicalHalfwidthCharacterWidth=t.get(59).typicalHalfwidthCharacterWidth,!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged||e.scrollWidthChanged}onZonesChanged(e){return!0}prepareRender(e){let t=e.getDecorationsInViewport(),n=[],r=0;for(let e=0,i=t.length;e<i;e++){let i=t[e];i.options.className&&(n[r++]=i)}n=n.sort((e,t)=>{if(e.options.zIndex<t.options.zIndex)return-1;if(e.options.zIndex>t.options.zIndex)return 1;let n=e.options.className,r=t.options.className;return n<r?-1:n>r?1:j.compareRangesUsingStarts(e.range,t.range)});let i=e.visibleRange.startLineNumber,a=e.visibleRange.endLineNumber,o=[];for(let e=i;e<=a;e++){let t=e-i;o[t]=``}this._renderWholeLineDecorations(e,n,o),this._renderNormalDecorations(e,n,o),this._renderResult=o}_renderWholeLineDecorations(e,t,n){let r=e.visibleRange.startLineNumber,i=e.visibleRange.endLineNumber;for(let e=0,a=t.length;e<a;e++){let a=t[e];if(!a.options.isWholeLine)continue;let o=`<div class="cdr `+a.options.className+`" style="left:0;width:100%;"></div>`,s=Math.max(a.range.startLineNumber,r),c=Math.min(a.range.endLineNumber,i);for(let e=s;e<=c;e++){let t=e-r;n[t]+=o}}}_renderNormalDecorations(e,t,n){let r=e.visibleRange.startLineNumber,i=null,a=!1,o=null,s=!1;for(let c=0,l=t.length;c<l;c++){let l=t[c];if(l.options.isWholeLine)continue;let u=l.options.className,d=!!l.options.showIfCollapsed,f=l.range;if(d&&f.endColumn===1&&f.endLineNumber!==f.startLineNumber&&(f=new j(f.startLineNumber,f.startColumn,f.endLineNumber-1,this._context.viewModel.getLineMaxColumn(f.endLineNumber-1))),i===u&&a===d&&j.areIntersectingOrTouching(o,f)){o=j.plusRange(o,f);continue}i!==null&&this._renderNormalDecoration(e,o,i,s,a,r,n),i=u,a=d,o=f,s=l.options.shouldFillLineOnLineBreak??!1}i!==null&&this._renderNormalDecoration(e,o,i,s,a,r,n)}_renderNormalDecoration(e,t,n,r,i,a,o){let s=e.linesVisibleRangesForRange(t,n===`findMatch`);if(s)for(let e=0,t=s.length;e<t;e++){let t=s[e];if(t.outsideRenderedLine)continue;let c=t.lineNumber-a;if(i&&t.ranges.length===1){let e=t.ranges[0];if(e.width<this._typicalHalfwidthCharacterWidth){let n=Math.round(e.left+e.width/2),r=Math.max(0,Math.round(n-this._typicalHalfwidthCharacterWidth/2));t.ranges[0]=new la(r,this._typicalHalfwidthCharacterWidth)}}for(let e=0,i=t.ranges.length;e<i;e++){let a=r&&t.continuesOnNextLine&&i===1,s=t.ranges[e],l=`<div class="cdr `+n+`" style="left:`+String(s.left)+`px;width:`+(a?`100%;`:String(s.width)+`px;`)+`"></div>`;o[c]+=l}}}render(e,t){if(!this._renderResult)return``;let n=t-e;return n<0||n>=this._renderResult.length?``:this._renderResult[n]}},hc=class extends ia{constructor(e,t,n,r){super(e);let i=this._context.configuration.options,a=i.get(117),o=i.get(83),s=i.get(49),c=i.get(120),l=i.get(158),u={listenOnDomNode:n.domNode,className:`editor-scrollable `+Oe(e.theme.type),useShadows:!1,lazyRender:!0,vertical:a.vertical,horizontal:a.horizontal,verticalHasArrows:a.verticalHasArrows,horizontalHasArrows:a.horizontalHasArrows,verticalScrollbarSize:a.verticalScrollbarSize,verticalSliderSize:a.verticalSliderSize,horizontalScrollbarSize:a.horizontalScrollbarSize,horizontalSliderSize:a.horizontalSliderSize,handleMouseWheel:a.handleMouseWheel,alwaysConsumeMouseWheel:a.alwaysConsumeMouseWheel,arrowSize:a.arrowSize,mouseWheelScrollSensitivity:o,fastScrollSensitivity:s,scrollPredominantAxis:c,scrollByPage:a.scrollByPage,inertialScroll:l};this.scrollbar=this._register(new kr(t.domNode,u,this._context.viewLayout.getScrollable())),aa.write(this.scrollbar.getDomNode(),6),this.scrollbarDomNode=B(this.scrollbar.getDomNode()),this.scrollbarDomNode.setPosition(`absolute`),this._setLayout();let d=(e,t,n)=>{let r={};{let t=e.scrollTop;t&&(r.scrollTop=this._context.viewLayout.getCurrentScrollTop()+t,e.scrollTop=0)}if(n){let t=e.scrollLeft;t&&(r.scrollLeft=this._context.viewLayout.getCurrentScrollLeft()+t,e.scrollLeft=0)}this._context.viewModel.viewLayout.setScrollPosition(r,1)};this._register(P(n.domNode,`scroll`,e=>d(n.domNode,!0,!0))),this._register(P(t.domNode,`scroll`,e=>d(t.domNode,!0,!1))),this._register(P(r.domNode,`scroll`,e=>d(r.domNode,!0,!1))),this._register(P(this.scrollbarDomNode.domNode,`scroll`,e=>d(this.scrollbarDomNode.domNode,!0,!1)))}dispose(){super.dispose()}_setLayout(){let e=this._context.configuration.options,t=e.get(165);this.scrollbarDomNode.setLeft(t.contentLeft),e.get(81).side===`right`?this.scrollbarDomNode.setWidth(t.contentWidth+t.minimap.minimapWidth):this.scrollbarDomNode.setWidth(t.contentWidth),this.scrollbarDomNode.setHeight(t.height)}getOverviewRulerLayoutInfo(){return this.scrollbar.getOverviewRulerLayoutInfo()}getDomNode(){return this.scrollbarDomNode}delegateVerticalScrollbarPointerDown(e){this.scrollbar.delegateVerticalScrollbarPointerDown(e)}delegateScrollFromMouseWheelEvent(e){this.scrollbar.delegateScrollFromMouseWheelEvent(e)}onConfigurationChanged(e){if(e.hasChanged(117)||e.hasChanged(83)||e.hasChanged(49)){let e=this._context.configuration.options,t=e.get(117),n=e.get(83),r=e.get(49),i=e.get(120),a={vertical:t.vertical,horizontal:t.horizontal,verticalScrollbarSize:t.verticalScrollbarSize,horizontalScrollbarSize:t.horizontalScrollbarSize,scrollByPage:t.scrollByPage,handleMouseWheel:t.handleMouseWheel,mouseWheelScrollSensitivity:n,fastScrollSensitivity:r,scrollPredominantAxis:i};this.scrollbar.updateOptions(a)}return e.hasChanged(165)&&this._setLayout(),!0}onScrollChanged(e){return!0}onThemeChanged(e){return this.scrollbar.updateClassName(`editor-scrollable `+Oe(this._context.theme.type)),!0}prepareRender(e){}render(e){this.scrollbar.renderNow()}},gc=class{constructor(e,t,n,r,i){this.startLineNumber=e,this.endLineNumber=t,this.className=n,this.tooltip=r,this._decorationToRenderBrand=void 0,this.zIndex=i??0}},_c=class{constructor(e,t,n){this.className=e,this.zIndex=t,this.tooltip=n}},vc=class{constructor(){this.decorations=[]}add(e){this.decorations.push(e)}getDecorations(){return this.decorations}},yc=class extends uc{_render(e,t,n){let r=[];for(let n=e;n<=t;n++){let t=n-e;r[t]=new vc}if(n.length===0)return r;n.sort((e,t)=>e.className===t.className?e.startLineNumber===t.startLineNumber?e.endLineNumber-t.endLineNumber:e.startLineNumber-t.startLineNumber:e.className<t.className?-1:1);let i=null,a=0;for(let o=0,s=n.length;o<s;o++){let s=n[o],c=s.className,l=s.zIndex,u=Math.max(s.startLineNumber,e)-e,d=Math.min(s.endLineNumber,t)-e;i===c?(u=Math.max(a+1,u),a=Math.max(a,d)):(i=c,a=d);for(let e=u;e<=a;e++)r[e].add(new _c(c,l,s.tooltip))}return r}},bc=class extends ia{constructor(e){super(e),this._widgets={},this._context=e;let t=this._context.configuration.options,n=t.get(165);this.domNode=B(document.createElement(`div`)),this.domNode.setClassName(`glyph-margin-widgets`),this.domNode.setPosition(`absolute`),this.domNode.setTop(0),this._lineHeight=t.get(75),this._glyphMargin=t.get(66),this._glyphMarginLeft=n.glyphMarginLeft,this._glyphMarginWidth=n.glyphMarginWidth,this._glyphMarginDecorationLaneCount=n.glyphMarginDecorationLaneCount,this._managedDomNodes=[],this._decorationGlyphsToRender=[]}dispose(){this._managedDomNodes=[],this._decorationGlyphsToRender=[],this._widgets={},super.dispose()}getWidgets(){return Object.values(this._widgets)}onConfigurationChanged(e){let t=this._context.configuration.options,n=t.get(165);return this._lineHeight=t.get(75),this._glyphMargin=t.get(66),this._glyphMarginLeft=n.glyphMarginLeft,this._glyphMarginWidth=n.glyphMarginWidth,this._glyphMarginDecorationLaneCount=n.glyphMarginDecorationLaneCount,!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}addWidget(e){let t=B(e.getDomNode());this._widgets[e.getId()]={widget:e,preference:e.getPosition(),domNode:t,renderInfo:null},t.setPosition(`absolute`),t.setDisplay(`none`),t.setAttribute(`widgetId`,e.getId()),this.domNode.appendChild(t),this.setShouldRender()}setWidgetPosition(e,t){let n=this._widgets[e.getId()];return n.preference.lane===t.lane&&n.preference.zIndex===t.zIndex&&j.equalsRange(n.preference.range,t.range)?!1:(n.preference=t,this.setShouldRender(),!0)}removeWidget(e){let t=e.getId();if(this._widgets[t]){let e=this._widgets[t].domNode.domNode;delete this._widgets[t],e.remove(),this.setShouldRender()}}_collectDecorationBasedGlyphRenderRequest(e,t){let n=e.visibleRange.startLineNumber,r=e.visibleRange.endLineNumber,i=e.getDecorationsInViewport();for(let e of i){let i=e.options.glyphMarginClassName;if(!i)continue;let a=Math.max(e.range.startLineNumber,n),o=Math.min(e.range.endLineNumber,r),s=e.options.glyphMargin?.position??en.Center,c=e.options.zIndex??0;for(let e=a;e<=o;e++){let n=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new b(e,0)),r=this._context.viewModel.glyphLanes.getLanesAtLine(n.lineNumber).indexOf(s);t.push(new xc(e,r,c,i))}}}_collectWidgetBasedGlyphRenderRequest(e,t){let n=e.visibleRange.startLineNumber,r=e.visibleRange.endLineNumber;for(let e of Object.values(this._widgets)){let i=e.preference.range,{startLineNumber:a,endLineNumber:o}=this._context.viewModel.coordinatesConverter.convertModelRangeToViewRange(j.lift(i));if(!a||!o||o<n||a>r)continue;let s=Math.max(a,n),c=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new b(s,0)),l=this._context.viewModel.glyphLanes.getLanesAtLine(c.lineNumber).indexOf(e.preference.lane);t.push(new Sc(s,l,e.preference.zIndex,e))}}_collectSortedGlyphRenderRequests(e){let t=[];return this._collectDecorationBasedGlyphRenderRequest(e,t),this._collectWidgetBasedGlyphRenderRequest(e,t),t.sort((e,t)=>e.lineNumber===t.lineNumber?e.laneIndex===t.laneIndex?e.zIndex===t.zIndex?t.type===e.type?e.type===0&&t.type===0?e.className<t.className?-1:1:0:t.type-e.type:t.zIndex-e.zIndex:e.laneIndex-t.laneIndex:e.lineNumber-t.lineNumber),t}prepareRender(e){if(!this._glyphMargin){this._decorationGlyphsToRender=[];return}for(let e of Object.values(this._widgets))e.renderInfo=null;let t=new yt(this._collectSortedGlyphRenderRequests(e)),n=[];for(;t.length>0;){let e=t.peek();if(!e)break;let r=t.takeWhile(t=>t.lineNumber===e.lineNumber&&t.laneIndex===e.laneIndex);if(!r||r.length===0)break;let i=r[0];if(i.type===0){let e=[];for(let t of r){if(t.zIndex!==i.zIndex||t.type!==i.type)break;(e.length===0||e[e.length-1]!==t.className)&&e.push(t.className)}n.push(i.accept(e.join(` `)))}else i.widget.renderInfo={lineNumber:i.lineNumber,laneIndex:i.laneIndex}}this._decorationGlyphsToRender=n}render(e){if(!this._glyphMargin){for(let e of Object.values(this._widgets))e.domNode.setDisplay(`none`);for(;this._managedDomNodes.length>0;)this._managedDomNodes.pop()?.domNode.remove();return}let t=Math.round(this._glyphMarginWidth/this._glyphMarginDecorationLaneCount);for(let n of Object.values(this._widgets))if(!n.renderInfo)n.domNode.setDisplay(`none`);else{let r=e.viewportData.relativeVerticalOffset[n.renderInfo.lineNumber-e.viewportData.startLineNumber],i=this._glyphMarginLeft+n.renderInfo.laneIndex*this._lineHeight;n.domNode.setDisplay(`block`),n.domNode.setTop(r),n.domNode.setLeft(i),n.domNode.setWidth(t),n.domNode.setHeight(this._lineHeight)}for(let n=0;n<this._decorationGlyphsToRender.length;n++){let r=this._decorationGlyphsToRender[n],i=r.lineNumber,a=e.viewportData.relativeVerticalOffset[i-e.viewportData.startLineNumber],o=this._glyphMarginLeft+r.laneIndex*this._lineHeight,s;n<this._managedDomNodes.length?s=this._managedDomNodes[n]:(s=B(document.createElement(`div`)),this._managedDomNodes.push(s),this.domNode.appendChild(s));let c=this._context.viewLayout.getLineHeightForLineNumber(i);s.setClassName(`cgmr codicon `+r.combinedClassName),s.setPosition(`absolute`),s.setTop(a),s.setLeft(o),s.setWidth(t),s.setHeight(c)}for(;this._managedDomNodes.length>this._decorationGlyphsToRender.length;)this._managedDomNodes.pop()?.domNode.remove()}},xc=class{constructor(e,t,n,r){this.lineNumber=e,this.laneIndex=t,this.zIndex=n,this.className=r,this.type=0}accept(e){return new Cc(this.lineNumber,this.laneIndex,e)}},Sc=class{constructor(e,t,n,r){this.lineNumber=e,this.laneIndex=t,this.zIndex=n,this.widget=r,this.type=1}},Cc=class{constructor(e,t,n){this.lineNumber=e,this.laneIndex=t,this.combinedClassName=n}},wc=class extends uc{constructor(e){super(),this._context=e,this._primaryPosition=null;let t=this._context.configuration.options,n=t.get(166),r=t.get(59);this._spaceWidth=r.spaceWidth,this._maxIndentLeft=n.wrappingColumn===-1?-1:n.wrappingColumn*r.typicalHalfwidthCharacterWidth,this._bracketPairGuideOptions=t.get(22),this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){let t=this._context.configuration.options,n=t.get(166),r=t.get(59);return this._spaceWidth=r.spaceWidth,this._maxIndentLeft=n.wrappingColumn===-1?-1:n.wrappingColumn*r.typicalHalfwidthCharacterWidth,this._bracketPairGuideOptions=t.get(22),!0}onCursorStateChanged(e){let t=e.selections[0].getPosition();return this._primaryPosition?.equals(t)?!1:(this._primaryPosition=t,!0)}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}onLanguageConfigurationChanged(e){return!0}prepareRender(e){if(!this._bracketPairGuideOptions.indentation&&this._bracketPairGuideOptions.bracketPairs===!1){this._renderResult=null;return}let t=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,r=e.scrollWidth,i=this._primaryPosition,a=this.getGuidesByLine(t,Math.min(n+1,this._context.viewModel.getLineCount()),i),o=[];for(let i=t;i<=n;i++){let n=i-t,s=a[n],c=``,l=e.visibleRangeForPosition(new b(i,1))?.left??0;for(let t of s){let n=t.column===-1?l+(t.visibleColumn-1)*this._spaceWidth:e.visibleRangeForPosition(new b(i,t.column)).left;if(n>r||this._maxIndentLeft>0&&n>this._maxIndentLeft)break;let a=t.horizontalLine?t.horizontalLine.top?`horizontal-top`:`horizontal-bottom`:`vertical`,o=t.horizontalLine?(e.visibleRangeForPosition(new b(i,t.horizontalLine.endColumn))?.left??n+this._spaceWidth)-n:this._spaceWidth;c+=`<div class="core-guide ${t.className} ${a}" style="left:${n}px;width:${o}px"></div>`}o[n]=c}this._renderResult=o}getGuidesByLine(e,t,n){let r=this._bracketPairGuideOptions.bracketPairs===!1?null:this._context.viewModel.getBracketGuidesInRangeByLine(e,t,n,{highlightActive:this._bracketPairGuideOptions.highlightActiveBracketPair,horizontalGuides:this._bracketPairGuideOptions.bracketPairsHorizontal===!0?Ln.Enabled:this._bracketPairGuideOptions.bracketPairsHorizontal===`active`?Ln.EnabledForActive:Ln.Disabled,includeInactive:this._bracketPairGuideOptions.bracketPairs===!0}),i=this._bracketPairGuideOptions.indentation?this._context.viewModel.getLinesIndentGuides(e,t):null,a=0,o=0,s=0;if(this._bracketPairGuideOptions.highlightActiveIndentation!==!1&&n){let r=this._context.viewModel.getActiveIndentGuide(n.lineNumber,e,t);a=r.startLineNumber,o=r.endLineNumber,s=r.indent}let{indentSize:c}=this._context.viewModel.model.getOptions(),l=[];for(let n=e;n<=t;n++){let t=[];l.push(t);let u=r?r[n-e]:[],d=new yt(u),f=i?i[n-e]:0;for(let e=1;e<=f;e++){let r=(e-1)*c+1,i=(this._bracketPairGuideOptions.highlightActiveIndentation===`always`||u.length===0)&&a<=n&&n<=o&&e===s;t.push(...d.takeWhile(e=>e.visibleColumn<r)||[]);let l=d.peek();(!l||l.visibleColumn!==r||l.horizontalLine)&&t.push(new En(r,-1,`core-guide-indent lvl-${(e-1)%30}`+(i?` indent-active`:``),null,-1,-1))}t.push(...d.takeWhile(e=>!0)||[])}return l}render(e,t){if(!this._renderResult)return``;let n=t-e;return n<0||n>=this._renderResult.length?``:this._renderResult[n]}};function Tc(e){if(!(e&&e.isTransparent()))return e}me((e,t)=>{let n=[{bracketColor:sn,guideColor:yn,guideColorActive:fn},{bracketColor:cn,guideColor:Xt,guideColorActive:wr},{bracketColor:un,guideColor:nn,guideColorActive:Bt},{bracketColor:Jt,guideColor:ur,guideColorActive:vn},{bracketColor:Qt,guideColor:tn,guideColorActive:Zt},{bracketColor:on,guideColor:Sn,guideColorActive:gn}],r=new Bn,i=[{indentColor:Lt,indentColorActive:qt},{indentColor:Pn,indentColorActive:Gt},{indentColor:hr,indentColorActive:ln},{indentColor:rr,indentColorActive:Jn},{indentColor:dr,indentColorActive:zt},{indentColor:Hn,indentColorActive:Kn}],a=n.map(t=>{let n=e.getColor(t.bracketColor),r=e.getColor(t.guideColor),i=e.getColor(t.guideColorActive),a=Tc(Tc(r)??n?.transparent(.3)),o=Tc(Tc(i)??n);if(!(!a||!o))return{guideColor:a,guideColorActive:o}}).filter(Ie),o=i.map(t=>{let n=e.getColor(t.indentColor),r=e.getColor(t.indentColorActive),i=Tc(n),a=Tc(r);if(!(!i||!a))return{indentColor:i,indentColorActive:a}}).filter(Ie);if(a.length>0){for(let e=0;e<30;e++){let n=a[e%a.length];t.addRule(`.monaco-editor .${r.getInlineClassNameOfLevel(e).replace(/ /g,`.`)} { --guide-color: ${n.guideColor}; --guide-color-active: ${n.guideColorActive}; }`)}t.addRule(`.monaco-editor .vertical { box-shadow: 1px 0 0 0 var(--guide-color) inset; }`),t.addRule(`.monaco-editor .horizontal-top { border-top: 1px solid var(--guide-color); }`),t.addRule(`.monaco-editor .horizontal-bottom { border-bottom: 1px solid var(--guide-color); }`),t.addRule(`.monaco-editor .vertical.${r.activeClassName} { box-shadow: 1px 0 0 0 var(--guide-color-active) inset; }`),t.addRule(`.monaco-editor .horizontal-top.${r.activeClassName} { border-top: 1px solid var(--guide-color-active); }`),t.addRule(`.monaco-editor .horizontal-bottom.${r.activeClassName} { border-bottom: 1px solid var(--guide-color-active); }`)}if(o.length>0){for(let e=0;e<30;e++){let n=o[e%o.length];t.addRule(`.monaco-editor .lines-content .core-guide-indent.lvl-${e} { --indent-color: ${n.indentColor}; --indent-color-active: ${n.indentColorActive}; }`)}t.addRule(`.monaco-editor .lines-content .core-guide-indent { box-shadow: 1px 0 0 0 var(--indent-color) inset; }`),t.addRule(`.monaco-editor .lines-content .core-guide-indent.indent-active { box-shadow: 1px 0 0 0 var(--indent-color-active) inset; }`)}});var Ec=class e extends uc{static{this.CLASS_NAME=`line-numbers`}constructor(e){super(),this._context=e,this._readConfig(),this._lastCursorModelPosition=new b(1,1),this._renderResult=null,this._activeModelLineNumber=1,this._context.addEventHandler(this)}_readConfig(){let e=this._context.configuration.options;this._lineHeight=e.get(75);let t=e.get(76);this._renderLineNumbers=t.renderType,this._renderCustomLineNumbers=t.renderFn,this._renderFinalNewline=e.get(109);let n=e.get(165);this._lineNumbersLeft=n.lineNumbersLeft,this._lineNumbersWidth=n.lineNumbersWidth}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){return this._readConfig(),!0}onCursorStateChanged(e){let t=e.selections[0].getPosition();this._lastCursorModelPosition=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(t);let n=!1;return this._activeModelLineNumber!==this._lastCursorModelPosition.lineNumber&&(this._activeModelLineNumber=this._lastCursorModelPosition.lineNumber,n=!0),(this._renderLineNumbers===2||this._renderLineNumbers===3)&&(n=!0),n}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}onDecorationsChanged(e){return e.affectsLineNumber}_getLineRenderLineNumber(e){let t=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new b(e,1));if(t.column!==1)return``;let n=t.lineNumber;if(this._renderCustomLineNumbers)return this._renderCustomLineNumbers(n);if(this._renderLineNumbers===2){let e=Math.abs(this._lastCursorModelPosition.lineNumber-n);return e===0?`<span class="relative-current-line-number">`+n+`</span>`:String(e)}return this._renderLineNumbers===3?this._lastCursorModelPosition.lineNumber===n||n%10==0||n===this._context.viewModel.getLineCount()?String(n):``:String(n)}prepareRender(t){if(this._renderLineNumbers===0){this._renderResult=null;return}let n=ae?this._lineHeight%2==0?` lh-even`:` lh-odd`:``,r=t.visibleRange.startLineNumber,i=t.visibleRange.endLineNumber,a=this._context.viewModel.getDecorationsInViewport(t.visibleRange).filter(e=>!!e.options.lineNumberClassName);a.sort((e,t)=>j.compareRangesUsingEnds(e.range,t.range));let o=0,s=this._context.viewModel.getLineCount(),c=[];for(let t=r;t<=i;t++){let i=t-r,l=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new b(t,1)).lineNumber,u=this._getLineRenderLineNumber(t),d=``;for(;o<a.length&&a[o].range.endLineNumber<t;)o++;for(let e=o;e<a.length;e++){let{range:n,options:r}=a[e];n.startLineNumber<=t&&(d+=` `+r.lineNumberClassName)}if(!u&&!d){c[i]=``;continue}t===s&&this._context.viewModel.getLineLength(t)===0&&(this._renderFinalNewline===`off`&&(u=``),this._renderFinalNewline===`dimmed`&&(d+=` dimmed-line-number`)),l===this._activeModelLineNumber&&(d+=` active-line-number`),c[i]=`<div class="${e.CLASS_NAME}${n}${d}" style="left:${this._lineNumbersLeft}px;width:${this._lineNumbersWidth}px;">${u}</div>`}this._renderResult=c}render(e,t){if(!this._renderResult)return``;let n=t-e;return n<0||n>=this._renderResult.length?``:this._renderResult[n]}};me((e,t)=>{let n=e.getColor(mr),r=e.getColor(dn);r?t.addRule(`.monaco-editor .line-numbers.dimmed-line-number { color: ${r}; }`):n&&t.addRule(`.monaco-editor .line-numbers.dimmed-line-number { color: ${n.transparent(.4)}; }`)});var Dc=`monaco-mouse-cursor-text`,Oc=class{get didDomLayout(){return this._didDomLayout}readClientRect(){if(!this._clientRectRead){this._clientRectRead=!0;let e=this._domNode.getBoundingClientRect();this.markDidDomLayout(),this._clientRectDeltaLeft=e.left,this._clientRectScale=e.width/this._domNode.offsetWidth}}get clientRectDeltaLeft(){return this._clientRectRead||this.readClientRect(),this._clientRectDeltaLeft}get clientRectScale(){return this._clientRectRead||this.readClientRect(),this._clientRectScale}constructor(e,t){this._domNode=e,this.endNode=t,this._didDomLayout=!1,this._clientRectDeltaLeft=0,this._clientRectScale=1,this._clientRectRead=!1}markDidDomLayout(){this._didDomLayout=!0}},kc=class{constructor(e,t){this.themeType=t;let n=e.options,r=n.get(59);this.renderWhitespace=n.get(113),this.experimentalWhitespaceRendering=n.get(47),this.renderControlCharacters=n.get(108),this.spaceWidth=r.spaceWidth,this.middotWidth=r.middotWidth,this.wsmiddotWidth=r.wsmiddotWidth,this.useMonospaceOptimizations=r.isMonospace&&!n.get(40),this.canUseHalfwidthRightwardsArrow=r.canUseHalfwidthRightwardsArrow,this.lineHeight=n.get(75),this.stopRenderingLineAfter=n.get(133),this.fontLigatures=n.get(60),this.verticalScrollbarSize=n.get(117).verticalScrollbarSize,this.useGpu=n.get(46)===`on`}equals(e){return this.themeType===e.themeType&&this.renderWhitespace===e.renderWhitespace&&this.experimentalWhitespaceRendering===e.experimentalWhitespaceRendering&&this.renderControlCharacters===e.renderControlCharacters&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.wsmiddotWidth===e.wsmiddotWidth&&this.useMonospaceOptimizations===e.useMonospaceOptimizations&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.lineHeight===e.lineHeight&&this.stopRenderingLineAfter===e.stopRenderingLineAfter&&this.fontLigatures===e.fontLigatures&&this.verticalScrollbarSize===e.verticalScrollbarSize&&this.useGpu===e.useGpu}},Ac=class{constructor(){this._currentVisibleRange=new j(1,1,1,1)}getCurrentVisibleRange(){return this._currentVisibleRange}setCurrentVisibleRange(e){this._currentVisibleRange=e}},jc=class{constructor(e,t,n,r,i,a,o){this.minimalReveal=e,this.lineNumber=t,this.startColumn=n,this.endColumn=r,this.startScrollTop=i,this.stopScrollTop=a,this.scrollType=o,this.type=`range`,this.minLineNumber=t,this.maxLineNumber=t}},Mc=class{constructor(e,t,n,r,i){this.minimalReveal=e,this.selections=t,this.startScrollTop=n,this.stopScrollTop=r,this.scrollType=i,this.type=`selections`;let a=t[0].startLineNumber,o=t[0].endLineNumber;for(let e=1,n=t.length;e<n;e++){let n=t[e];a=Math.min(a,n.startLineNumber),o=Math.max(o,n.endLineNumber)}this.minLineNumber=a,this.maxLineNumber=o}},Nc=class e extends ia{static{this.HORIZONTAL_EXTRA_PX=30}constructor(e,t,n){super(e);let r=this._context.configuration,i=this._context.configuration.options,a=i.get(59),o=i.get(166);this._lineHeight=i.get(75),this._typicalHalfwidthCharacterWidth=a.typicalHalfwidthCharacterWidth,this._isViewportWrapping=o.isViewportWrapping,this._revealHorizontalRightPadding=i.get(114),this._cursorSurroundingLines=i.get(35),this._cursorSurroundingLinesStyle=i.get(36),this._canUseLayerHinting=!i.get(39),this._viewLineOptions=new kc(r,this._context.theme.type),this._linesContent=n,this._textRangeRestingSpot=document.createElement(`div`),this._visibleLines=new Xs(this._context,{createLine:()=>new za(t,this._viewLineOptions)}),this.domNode=this._visibleLines.domNode,aa.write(this.domNode,8),this.domNode.setClassName(`view-lines ${Dc}`),H(this.domNode,a),this._maxLineWidth=0,this._asyncUpdateLineWidths=new s(()=>{this._updateLineWidthsSlow()},200),this._asyncCheckMonospaceFontAssumptions=new s(()=>{this._checkMonospaceFontAssumptions()},2e3),this._lastRenderedData=new Ac,this._horizontalRevealRequest=null,this._stickyScrollEnabled=i.get(131).enabled,this._maxNumberStickyLines=i.get(131).maxLineCount}dispose(){this._asyncUpdateLineWidths.dispose(),this._asyncCheckMonospaceFontAssumptions.dispose(),super.dispose()}getDomNode(){return this.domNode}onConfigurationChanged(e){this._visibleLines.onConfigurationChanged(e),e.hasChanged(166)&&(this._maxLineWidth=0);let t=this._context.configuration.options,n=t.get(59),r=t.get(166);return this._lineHeight=t.get(75),this._typicalHalfwidthCharacterWidth=n.typicalHalfwidthCharacterWidth,this._isViewportWrapping=r.isViewportWrapping,this._revealHorizontalRightPadding=t.get(114),this._cursorSurroundingLines=t.get(35),this._cursorSurroundingLinesStyle=t.get(36),this._canUseLayerHinting=!t.get(39),this._stickyScrollEnabled=t.get(131).enabled,this._maxNumberStickyLines=t.get(131).maxLineCount,H(this.domNode,n),this._onOptionsMaybeChanged(),e.hasChanged(165)&&(this._maxLineWidth=0),!0}_onOptionsMaybeChanged(){let e=this._context.configuration,t=new kc(e,this._context.theme.type);if(!this._viewLineOptions.equals(t)){this._viewLineOptions=t;let e=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber();for(let t=e;t<=n;t++)this._visibleLines.getVisibleLine(t).onOptionsChanged(this._viewLineOptions);return!0}return!1}onCursorStateChanged(e){let t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber(),r=!1;for(let e=t;e<=n;e++)r=this._visibleLines.getVisibleLine(e).onSelectionChanged()||r;return r}onDecorationsChanged(e){{let e=this._visibleLines.getStartLineNumber(),t=this._visibleLines.getEndLineNumber();for(let n=e;n<=t;n++)this._visibleLines.getVisibleLine(n).onDecorationsChanged()}return!0}onFlushed(e){let t=this._visibleLines.onFlushed(e,this._viewLineOptions.useGpu);return this._maxLineWidth=0,t}onLinesChanged(e){return this._visibleLines.onLinesChanged(e)}onLinesDeleted(e){return this._visibleLines.onLinesDeleted(e)}onLinesInserted(e){return this._visibleLines.onLinesInserted(e)}onRevealRangeRequest(e){let t=this._computeScrollTopToRevealRange(this._context.viewLayout.getFutureViewport(),e.source,e.minimalReveal,e.range,e.selections,e.verticalType);if(t===-1)return!1;let n=this._context.viewLayout.validateScrollPosition({scrollTop:t});e.revealHorizontal?e.range&&e.range.startLineNumber!==e.range.endLineNumber?n={scrollTop:n.scrollTop,scrollLeft:0}:e.range?this._horizontalRevealRequest=new jc(e.minimalReveal,e.range.startLineNumber,e.range.startColumn,e.range.endColumn,this._context.viewLayout.getCurrentScrollTop(),n.scrollTop,e.scrollType):e.selections&&e.selections.length>0&&(this._horizontalRevealRequest=new Mc(e.minimalReveal,e.selections,this._context.viewLayout.getCurrentScrollTop(),n.scrollTop,e.scrollType)):this._horizontalRevealRequest=null;let r=Math.abs(this._context.viewLayout.getCurrentScrollTop()-n.scrollTop)<=this._lineHeight?1:e.scrollType;return this._context.viewModel.viewLayout.setScrollPosition(n,r),!0}onScrollChanged(e){if(this._horizontalRevealRequest&&e.scrollLeftChanged&&(this._horizontalRevealRequest=null),this._horizontalRevealRequest&&e.scrollTopChanged){let t=Math.min(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop),n=Math.max(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop);(e.scrollTop<t||e.scrollTop>n)&&(this._horizontalRevealRequest=null)}return this.domNode.setWidth(e.scrollWidth),this._visibleLines.onScrollChanged(e)||!0}onTokensChanged(e){return this._visibleLines.onTokensChanged(e)}onZonesChanged(e){return this._context.viewModel.viewLayout.setMaxLineWidth(this._maxLineWidth),this._visibleLines.onZonesChanged(e)}onThemeChanged(e){return this._onOptionsMaybeChanged()}getPositionFromDOMInfo(e,t){let n=this._getViewLineDomNode(e);if(n===null)return null;let r=this._getLineNumberFor(n);if(r===-1||r<1||r>this._context.viewModel.getLineCount())return null;if(this._context.viewModel.getLineMaxColumn(r)===1)return new b(r,1);let i=this._visibleLines.getStartLineNumber(),a=this._visibleLines.getEndLineNumber();if(r<i||r>a)return null;let o=this._visibleLines.getVisibleLine(r).getColumnOfNodeOffset(e,t),s=this._context.viewModel.getLineMinColumn(r);return o<s&&(o=s),new b(r,o)}_getViewLineDomNode(e){for(;e&&e.nodeType===1;){if(e.className===za.CLASS_NAME)return e;e=e.parentElement}return null}_getLineNumberFor(e){let t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber();for(let r=t;r<=n;r++)if(e===this._visibleLines.getVisibleLine(r).getDomNode())return r;return-1}getLineWidth(e){let t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber();if(e<t||e>n)return-1;let r=new Oc(this.domNode.domNode,this._textRangeRestingSpot),i=this._visibleLines.getVisibleLine(e).getWidth(r);return this._updateLineWidthsSlowIfDomDidLayout(r),i}linesVisibleRangesForRange(e,t){if(this.shouldRender())return null;let n=e.endLineNumber,r=j.intersectRanges(e,this._lastRenderedData.getCurrentVisibleRange());if(!r)return null;let i=[],a=0,o=new Oc(this.domNode.domNode,this._textRangeRestingSpot),s=0;t&&(s=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new b(r.startLineNumber,1)).lineNumber);let c=this._visibleLines.getStartLineNumber(),l=this._visibleLines.getEndLineNumber();for(let e=r.startLineNumber;e<=r.endLineNumber;e++){if(e<c||e>l)continue;let u=e===r.startLineNumber?r.startColumn:1,d=e!==n,f=d?this._context.viewModel.getLineMaxColumn(e):r.endColumn,p=this._visibleLines.getVisibleLine(e).getVisibleRangesForRange(e,u,f,o);if(p){if(t&&e<n){let t=s;if(s=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new b(e+1,1)).lineNumber,t!==s){let e=p.ranges[p.ranges.length-1];e.width+=this._typicalHalfwidthCharacterWidth,this._context.viewModel.getTextDirection(t)===wn.RTL&&(e.left-=this._typicalHalfwidthCharacterWidth)}}i[a++]=new ca(p.outsideRenderedLine,e,la.from(p.ranges),d)}}return this._updateLineWidthsSlowIfDomDidLayout(o),a===0?null:i}_visibleRangesForLineRange(e,t,n){if(this.shouldRender()||e<this._visibleLines.getStartLineNumber()||e>this._visibleLines.getEndLineNumber())return null;let r=new Oc(this.domNode.domNode,this._textRangeRestingSpot),i=this._visibleLines.getVisibleLine(e).getVisibleRangesForRange(e,t,n,r);return this._updateLineWidthsSlowIfDomDidLayout(r),i}_lineIsRenderedRTL(e){return e<this._visibleLines.getStartLineNumber()||e>this._visibleLines.getEndLineNumber()?!1:this._visibleLines.getVisibleLine(e).isRenderedRTL()}visibleRangeForPosition(e){let t=this._visibleRangesForLineRange(e.lineNumber,e.column,e.column);return t?new da(t.outsideRenderedLine,t.ranges[0].left):null}_updateLineWidthsFast(){return this._updateLineWidths(!0)}_updateLineWidthsSlow(){this._updateLineWidths(!1)}_updateLineWidthsSlowIfDomDidLayout(e){e.didDomLayout&&(this._asyncUpdateLineWidths.isScheduled()||(this._asyncUpdateLineWidths.cancel(),this._updateLineWidthsSlow()))}_updateLineWidths(e){let t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber(),r=1,i=!0;for(let a=t;a<=n;a++){let t=this._visibleLines.getVisibleLine(a);if(e&&!t.getWidthIsFast()){i=!1;continue}r=Math.max(r,t.getWidth(null))}return i&&t===1&&n===this._context.viewModel.getLineCount()&&(this._maxLineWidth=0),this._ensureMaxLineWidth(r),i}_checkMonospaceFontAssumptions(){let e=-1,t=-1,n=this._visibleLines.getStartLineNumber(),r=this._visibleLines.getEndLineNumber();for(let i=n;i<=r;i++){let n=this._visibleLines.getVisibleLine(i);if(n.needsMonospaceFontCheck()){let r=n.getWidth(null);r>t&&(t=r,e=i)}}if(e!==-1&&!this._visibleLines.getVisibleLine(e).monospaceAssumptionsAreValid())for(let e=n;e<=r;e++)this._visibleLines.getVisibleLine(e).onMonospaceAssumptionsInvalidated()}prepareRender(){throw Error(`Not supported`)}render(){throw Error(`Not supported`)}renderText(e){if(this._visibleLines.renderLines(e),this._lastRenderedData.setCurrentVisibleRange(e.visibleRange),this.domNode.setWidth(this._context.viewLayout.getScrollWidth()),this.domNode.setHeight(Math.min(this._context.viewLayout.getScrollHeight(),1e6)),this._horizontalRevealRequest){let t=this._horizontalRevealRequest;if(e.startLineNumber<=t.minLineNumber&&t.maxLineNumber<=e.endLineNumber){this._horizontalRevealRequest=null,this.onDidRender();let e=this._computeScrollLeftToReveal(t);e&&(!this._isViewportWrapping&&!e.hasRTL&&this._ensureMaxLineWidth(e.maxHorizontalOffset),this._context.viewModel.viewLayout.setScrollPosition({scrollLeft:e.scrollLeft},t.scrollType))}}if(this._updateLineWidthsFast()?this._asyncUpdateLineWidths.cancel():this._asyncUpdateLineWidths.schedule(),ae&&!this._asyncCheckMonospaceFontAssumptions.isScheduled()){let e=this._visibleLines.getStartLineNumber(),t=this._visibleLines.getEndLineNumber();for(let n=e;n<=t;n++)if(this._visibleLines.getVisibleLine(n).needsMonospaceFontCheck()){this._asyncCheckMonospaceFontAssumptions.schedule();break}}this._linesContent.setLayerHinting(this._canUseLayerHinting),this._linesContent.setContain(`strict`);let t=this._context.viewLayout.getCurrentScrollTop()-e.bigNumbersDelta;this._linesContent.setTop(-t),this._linesContent.setLeft(-this._context.viewLayout.getCurrentScrollLeft())}_ensureMaxLineWidth(e){let t=Math.ceil(e);this._maxLineWidth<t&&(this._maxLineWidth=t,this._context.viewModel.viewLayout.setMaxLineWidth(this._maxLineWidth))}_computeScrollTopToRevealRange(e,t,n,r,i,a){let o=e.top,s=e.height,c=o+s,l,u,d;if(i&&i.length>0){let e=i[0].startLineNumber,t=i[0].endLineNumber;for(let n=1,r=i.length;n<r;n++){let r=i[n];e=Math.min(e,r.startLineNumber),t=Math.max(t,r.endLineNumber)}l=!1,u=this._context.viewLayout.getVerticalOffsetForLineNumber(e),d=this._context.viewLayout.getVerticalOffsetForLineNumber(t)+this._lineHeight}else if(r)l=!0,u=this._context.viewLayout.getVerticalOffsetForLineNumber(r.startLineNumber),d=this._context.viewLayout.getVerticalOffsetForLineNumber(r.endLineNumber)+this._lineHeight;else return-1;let f=(t===`mouse`||n)&&this._cursorSurroundingLinesStyle==="default",p=0,m=0;if(f)n||(p=this._lineHeight);else{let e=s/this._lineHeight,t=Math.max(this._cursorSurroundingLines,this._stickyScrollEnabled?this._maxNumberStickyLines:0),n=Math.min(e/2,t);p=n*this._lineHeight,m=Math.max(0,n-1)*this._lineHeight}n||(a===0||a===4)&&(m+=this._lineHeight),u-=p,d+=m;let h;if(d-u>s){if(!l)return-1;h=u}else if(a===5||a===6)if(a===6&&o<=u&&d<=c)h=o;else{let e=Math.max(5*this._lineHeight,s*.2),t=u-e,n=d-s;h=Math.max(n,t)}else if(a===1||a===2)if(a===2&&o<=u&&d<=c)h=o;else{let e=(u+d)/2;h=Math.max(0,e-s/2)}else h=this._computeMinimumScrolling(o,c,u,d,a===3,a===4);return h}_computeScrollLeftToReveal(t){let n=this._context.viewLayout.getCurrentViewport(),r=this._context.configuration.options.get(165),i=n.left,a=i+n.width-r.verticalScrollbarWidth,o=1073741824,s=0,c=!1;if(t.type===`range`){c=this._lineIsRenderedRTL(t.lineNumber);let e=this._visibleRangesForLineRange(t.lineNumber,t.startColumn,t.endColumn);if(!e)return null;for(let t of e.ranges)o=Math.min(o,Math.round(t.left)),s=Math.max(s,Math.round(t.left+t.width))}else for(let e of t.selections){if(e.startLineNumber!==e.endLineNumber)return null;let t=this._visibleRangesForLineRange(e.startLineNumber,e.startColumn,e.endColumn);if(c||=this._lineIsRenderedRTL(e.startLineNumber),!t)return null;for(let e of t.ranges)o=Math.min(o,Math.round(e.left)),s=Math.max(s,Math.round(e.left+e.width))}return t.minimalReveal||(o=Math.max(0,o-e.HORIZONTAL_EXTRA_PX),s+=this._revealHorizontalRightPadding),t.type===`selections`&&s-o>n.width?null:{scrollLeft:this._computeMinimumScrolling(i,a,o,s),maxHorizontalOffset:s,hasRTL:c}}_computeMinimumScrolling(e,t,n,r,i,a){e|=0,t|=0,n|=0,r|=0,i=!!i,a=!!a;let o=t-e;if(r-n<o){if(i)return n;if(a)return Math.max(0,r-o);if(n<e)return n;if(r>t)return Math.max(0,r-o)}else return n;return e}},Pc=class extends yc{constructor(e){super(),this._context=e;let t=this._context.configuration.options.get(165);this._decorationsLeft=t.decorationsLeft,this._decorationsWidth=t.decorationsWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){let t=this._context.configuration.options.get(165);return this._decorationsLeft=t.decorationsLeft,this._decorationsWidth=t.decorationsWidth,!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_getDecorations(e){let t=e.getDecorationsInViewport(),n=[],r=0;for(let e=0,i=t.length;e<i;e++){let i=t[e],a=i.options.linesDecorationsClassName,o=i.options.zIndex;a&&(n[r++]=new gc(i.range.startLineNumber,i.range.endLineNumber,a,i.options.linesDecorationsTooltip??null,o));let s=i.options.firstLineDecorationClassName;s&&(n[r++]=new gc(i.range.startLineNumber,i.range.startLineNumber,s,i.options.linesDecorationsTooltip??null,o))}return n}prepareRender(e){let t=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,r=this._render(t,n,this._getDecorations(e)),i=this._decorationsLeft.toString(),a=this._decorationsWidth.toString(),o=`" style="left:`+i+`px;width:`+a+`px;"></div>`,s=[];for(let e=t;e<=n;e++){let n=e-t,i=r[n].getDecorations(),a=``;for(let e of i){let t=`<div class="cldr `+e.className;e.tooltip!==null&&(t+=`" title="`+e.tooltip),t+=o,a+=t}s[n]=a}this._renderResult=s}render(e,t){return this._renderResult?this._renderResult[t-e]:``}},Fc=class e extends ia{static{this.CLASS_NAME=`glyph-margin`}static{this.OUTER_CLASS_NAME=`margin`}constructor(t){super(t);let n=this._context.configuration.options,r=n.get(165);this._canUseLayerHinting=!n.get(39),this._contentLeft=r.contentLeft,this._glyphMarginLeft=r.glyphMarginLeft,this._glyphMarginWidth=r.glyphMarginWidth,this._domNode=B(document.createElement(`div`)),this._domNode.setClassName(e.OUTER_CLASS_NAME),this._domNode.setPosition(`absolute`),this._domNode.setAttribute(`role`,`presentation`),this._domNode.setAttribute(`aria-hidden`,`true`),this._glyphMarginBackgroundDomNode=B(document.createElement(`div`)),this._glyphMarginBackgroundDomNode.setClassName(e.CLASS_NAME),this._domNode.appendChild(this._glyphMarginBackgroundDomNode)}dispose(){super.dispose()}getDomNode(){return this._domNode}onConfigurationChanged(e){let t=this._context.configuration.options,n=t.get(165);return this._canUseLayerHinting=!t.get(39),this._contentLeft=n.contentLeft,this._glyphMarginLeft=n.glyphMarginLeft,this._glyphMarginWidth=n.glyphMarginWidth,!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollTopChanged}prepareRender(e){}render(e){this._domNode.setLayerHinting(this._canUseLayerHinting),this._domNode.setContain(`strict`);let t=e.scrollTop-e.bigNumbersDelta;this._domNode.setTop(-t);let n=Math.min(e.scrollHeight,1e6);this._domNode.setHeight(n),this._domNode.setWidth(this._contentLeft),this._glyphMarginBackgroundDomNode.setLeft(this._glyphMarginLeft),this._glyphMarginBackgroundDomNode.setWidth(this._glyphMarginWidth),this._glyphMarginBackgroundDomNode.setHeight(n)}},Ic=class extends yc{constructor(e){super(),this._context=e,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){return!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_getDecorations(e){let t=e.getDecorationsInViewport(),n=[],r=0;for(let e=0,i=t.length;e<i;e++){let i=t[e],a=i.options.marginClassName,o=i.options.zIndex;a&&(n[r++]=new gc(i.range.startLineNumber,i.range.endLineNumber,a,null,o))}return n}prepareRender(e){let t=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,r=this._render(t,n,this._getDecorations(e)),i=[];for(let e=t;e<=n;e++){let n=e-t,a=r[n].getDecorations(),o=``;for(let e of a)o+=`<div class="cmdr `+e.className+`" style=""></div>`;i[n]=o}this._renderResult=i}render(e,t){return this._renderResult?this._renderResult[t-e]:``}},Lc=class e{static{this.Empty=new e(0,0,0,0)}constructor(t,n,r,i){this._rgba8Brand=void 0,this.r=e._clamp(t),this.g=e._clamp(n),this.b=e._clamp(r),this.a=e._clamp(i)}equals(e){return this.r===e.r&&this.g===e.g&&this.b===e.b&&this.a===e.a}static _clamp(e){return e<0?0:e>255?255:e|0}},Rc=class e extends i{static{this._INSTANCE=null}static getInstance(){return this._INSTANCE||=y(new e),this._INSTANCE}constructor(){super(),this._onDidChange=new k,this.onDidChange=this._onDidChange.event,this._updateColorMap(),this._register(Cn.onDidChange(e=>{e.changedColorMap&&this._updateColorMap()}))}_updateColorMap(){let e=Cn.getColorMap();if(!e){this._colors=[Lc.Empty],this._backgroundIsLight=!0;return}this._colors=[Lc.Empty];for(let t=1;t<e.length;t++){let n=e[t].rgba;this._colors[t]=new Lc(n.r,n.g,n.b,Math.round(n.a*255))}let t=e[2].getRelativeLuminance();this._backgroundIsLight=t>=.5,this._onDidChange.fire(void 0)}getColor(e){return(e<1||e>=this._colors.length)&&(e=2),this._colors[e]}backgroundIsLight(){return this._backgroundIsLight}},zc=(()=>{let e=[];for(let t=32;t<=126;t++)e.push(t);return e.push(65533),e})(),Bc=(e,t)=>(e-=32,e<0||e>96?t<=2?(e+96)%96:95:e),Vc=class e{constructor(t,n){this.scale=n,this._minimapCharRendererBrand=void 0,this.charDataNormal=e.soften(t,12/15),this.charDataLight=e.soften(t,50/60)}static soften(e,t){let n=new Uint8ClampedArray(e.length);for(let r=0,i=e.length;r<i;r++)n[r]=lr(e[r]*t);return n}renderChar(e,t,n,r,i,a,o,s,c,l,u){let d=1*this.scale,f=2*this.scale,p=u?1:f;if(t+d>e.width||n+p>e.height){console.warn(`bad render request outside image data`);return}let m=l?this.charDataLight:this.charDataNormal,h=Bc(r,c),g=e.width*4,_=o.r,v=o.g,y=o.b,b=i.r-_,x=i.g-v,S=i.b-y,C=Math.max(a,s),w=e.data,T=h*d*f,E=n*g+t*4;for(let e=0;e<p;e++){let e=E;for(let t=0;t<d;t++){let t=m[T++]/255*(a/255);w[e++]=_+b*t,w[e++]=v+x*t,w[e++]=y+S*t,w[e++]=C}E+=g}}blockRenderChar(e,t,n,r,i,a,o,s){let c=1*this.scale,l=2*this.scale,u=s?1:l;if(t+c>e.width||n+u>e.height){console.warn(`bad render request outside image data`);return}let d=e.width*4,f=i/255*.5,p=a.r,m=a.g,h=a.b,g=r.r-p,_=r.g-m,v=r.b-h,y=p+g*f,b=m+_*f,x=h+v*f,S=Math.max(i,o),C=e.data,w=n*d+t*4;for(let e=0;e<u;e++){let e=w;for(let t=0;t<c;t++)C[e++]=y,C[e++]=b,C[e++]=x,C[e++]=S;w+=d}}},Hc={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15},Uc=e=>{let t=new Uint8ClampedArray(e.length/2);for(let n=0;n<e.length;n+=2)t[n>>1]=Hc[e[n]]<<4|Hc[e[n+1]]&15;return t},Wc={1:he(()=>Uc(`0000511D6300CF609C709645A78432005642574171487021003C451900274D35D762755E8B629C5BA856AF57BA649530C167D1512A272A3F6038604460398526BCA2A968DB6F8957C768BE5FBE2FB467CF5D8D5B795DC7625B5DFF50DE64C466DB2FC47CD860A65E9A2EB96CB54CE06DA763AB2EA26860524D3763536601005116008177A8705E53AB738E6A982F88BAA35B5F5B626D9C636B449B737E5B7B678598869A662F6B5B8542706C704C80736A607578685B70594A49715A4522E792`)),2:he(()=>Uc(`000000000000000055394F383D2800008B8B1F210002000081B1CBCBCC820000847AAF6B9AAF2119BE08B8881AD60000A44FD07DCCF107015338130C00000000385972265F390B406E2437634B4B48031B12B8A0847000001E15B29A402F0000000000004B33460B00007A752C2A0000000000004D3900000084394B82013400ABA5CFC7AD9C0302A45A3E5A98AB000089A43382D97900008BA54AA087A70A0248A6A7AE6DBE0000BF6F94987EA40A01A06DCFA7A7A9030496C32F77891D0000A99FB1A0AFA80603B29AB9CA75930D010C0948354D3900000C0948354F37460D0028BE673D8400000000AF9D7B6E00002B007AA8933400007AA642675C2700007984CFB9C3985B768772A8A6B7B20000CAAECAAFC4B700009F94A6009F840009D09F9BA4CA9C0000CC8FC76DC87F0000C991C472A2000000A894A48CA7B501079BA2C9C69BA20000B19A5D3FA89000005CA6009DA2960901B0A7F0669FB200009D009E00B7890000DAD0F5D092820000D294D4C48BD10000B5A7A4A3B1A50402CAB6CBA6A2000000B5A7A4A3B1A8044FCDADD19D9CB00000B7778F7B8AAE0803C9AB5D3F5D3F00009EA09EA0BAB006039EA0989A8C7900009B9EF4D6B7C00000A9A7816CACA80000ABAC84705D3F000096DA635CDC8C00006F486F266F263D4784006124097B00374F6D2D6D2D6D4A3A95872322000000030000000000008D8939130000000000002E22A5C9CBC70600AB25C0B5C9B400061A2DB04CA67001082AA6BEBEBFC606002321DACBC19E03087AA08B6768380000282FBAC0B8CA7A88AD25BBA5A29900004C396C5894A6000040485A6E356E9442A32CD17EADA70000B4237923628600003E2DE9C1D7B500002F25BBA5A2990000231DB6AFB4A804023025C0B5CAB588062B2CBDBEC0C706882435A75CA20000002326BD6A82A908048B4B9A5A668000002423A09CB4BB060025259C9D8A7900001C1FCAB2C7C700002A2A9387ABA200002626A4A47D6E9D14333163A0C87500004B6F9C2D643A257049364936493647358A34438355497F1A0000A24C1D590000D38DFFBDD4CD3126`))},Gc=class e{static create(t,n){if(this.lastCreated&&t===this.lastCreated.scale&&n===this.lastFontFamily)return this.lastCreated;let r;return r=Wc[t]?new Vc(Wc[t](),t):e.createFromSampleData(e.createSampleData(n).data,t),this.lastFontFamily=n,this.lastCreated=r,r}static createSampleData(e){let t=document.createElement(`canvas`),n=t.getContext(`2d`);t.style.height=`16px`,t.height=16,t.width=960,t.style.width=`960px`,n.fillStyle=`#ffffff`,n.font=`bold 16px ${e}`,n.textBaseline=`middle`;let r=0;for(let e of zc)n.fillText(String.fromCharCode(e),r,16/2),r+=10;return n.getImageData(0,0,960,16)}static createFromSampleData(t,n){if(t.length!==640*96)throw Error(`Unexpected source in MinimapCharRenderer`);return new Vc(e._downsample(t,n),n)}static _downsampleChar(e,t,n,r,i){let a=1*i,o=2*i,s=r,c=0;for(let r=0;r<o;r++){let i=r/o*16,l=(r+1)/o*16;for(let r=0;r<a;r++){let o=r/a*10,u=(r+1)/a*10,d=0,f=0;for(let n=i;n<l;n++){let r=t+Math.floor(n)*3840,i=1-(n-Math.floor(n));for(let t=o;t<u;t++){let n=1-(t-Math.floor(t)),a=r+Math.floor(t)*4,o=n*i;f+=o,d+=e[a]*e[a+3]/255*o}}let p=d/f;c=Math.max(c,p),n[s++]=lr(p)}}return c}static _downsample(e,t){let n=2*t*1*t,r=n*96,i=new Uint8ClampedArray(r),a=0,o=0,s=0;for(let r=0;r<96;r++)s=Math.max(s,this._downsampleChar(e,o,i,a,t)),a+=n,o+=40;if(s>0){let e=255/s;for(let t=0;t<r;t++)i[t]*=e}return i}},Kc=Ae?`"Segoe WPC", "Segoe UI", sans-serif`:oe?`-apple-system, BlinkMacSystemFont, sans-serif`:`system-ui, "Ubuntu", "Droid Sans", sans-serif`,qc=class{constructor(e,t){this._viewModelDecorationBrand=void 0,this.range=e,this.options=t}};function Jc(e,t){return!(t.options.hideInCommentTokens&&Yc(e,t)||t.options.hideInStringTokens&&Xc(e,t))}function Yc(e,t){return Zc(e,t.range,e=>e===1)}function Xc(e,t){return Zc(e,t.range,e=>e===2)}function Zc(e,t,n){for(let r=t.startLineNumber;r<=t.endLineNumber;r++){let i=e.tokenization.getLineTokens(r),a=r===t.startLineNumber,o=r===t.endLineNumber,s=a?i.findTokenIndexAtOffset(t.startColumn-1):0;for(;s<i.getCount()&&!(o&&i.getStartOffset(s)>t.endColumn-1);){if(!n(i.getStandardTokenType(s)))return!1;s++}}return!0}var Qc=140,$c=2,el=class e{constructor(t,n,r){let i=t.options,a=i.get(163),o=i.get(165),s=o.minimap,c=i.get(59),l=i.get(81);this.renderMinimap=s.renderMinimap,this.size=l.size,this.minimapHeightIsEditorHeight=s.minimapHeightIsEditorHeight,this.scrollBeyondLastLine=i.get(119),this.paddingTop=i.get(96).top,this.paddingBottom=i.get(96).bottom,this.showSlider=l.showSlider,this.autohide=l.autohide,this.pixelRatio=a,this.typicalHalfwidthCharacterWidth=c.typicalHalfwidthCharacterWidth,this.lineHeight=i.get(75),this.minimapLeft=s.minimapLeft,this.minimapWidth=s.minimapWidth,this.minimapHeight=o.height,this.canvasInnerWidth=s.minimapCanvasInnerWidth,this.canvasInnerHeight=s.minimapCanvasInnerHeight,this.canvasOuterWidth=s.minimapCanvasOuterWidth,this.canvasOuterHeight=s.minimapCanvasOuterHeight,this.isSampling=s.minimapIsSampling,this.editorHeight=o.height,this.fontScale=s.minimapScale,this.minimapLineHeight=s.minimapLineHeight,this.minimapCharWidth=1*this.fontScale,this.sectionHeaderFontFamily=Kc,this.sectionHeaderFontSize=l.sectionHeaderFontSize*a,this.sectionHeaderLetterSpacing=l.sectionHeaderLetterSpacing,this.sectionHeaderFontColor=e._getSectionHeaderColor(n,r.getColor(1)),this.charRenderer=he(()=>Gc.create(this.fontScale,c.fontFamily)),this.defaultBackgroundColor=r.getColor(2),this.backgroundColor=e._getMinimapBackground(n,this.defaultBackgroundColor),this.foregroundAlpha=e._getMinimapForegroundOpacity(n)}static _getMinimapBackground(e,t){let n=e.getColor(nr);return n?new Lc(n.rgba.r,n.rgba.g,n.rgba.b,Math.round(255*n.rgba.a)):t}static _getMinimapForegroundOpacity(e){let t=e.getColor(Dn);return t?Lc._clamp(Math.round(255*t.rgba.a)):255}static _getSectionHeaderColor(e,t){let n=e.getColor(Rt);return n?new Lc(n.rgba.r,n.rgba.g,n.rgba.b,Math.round(255*n.rgba.a)):t}equals(e){return this.renderMinimap===e.renderMinimap&&this.size===e.size&&this.minimapHeightIsEditorHeight===e.minimapHeightIsEditorHeight&&this.scrollBeyondLastLine===e.scrollBeyondLastLine&&this.paddingTop===e.paddingTop&&this.paddingBottom===e.paddingBottom&&this.showSlider===e.showSlider&&this.autohide===e.autohide&&this.pixelRatio===e.pixelRatio&&this.typicalHalfwidthCharacterWidth===e.typicalHalfwidthCharacterWidth&&this.lineHeight===e.lineHeight&&this.minimapLeft===e.minimapLeft&&this.minimapWidth===e.minimapWidth&&this.minimapHeight===e.minimapHeight&&this.canvasInnerWidth===e.canvasInnerWidth&&this.canvasInnerHeight===e.canvasInnerHeight&&this.canvasOuterWidth===e.canvasOuterWidth&&this.canvasOuterHeight===e.canvasOuterHeight&&this.isSampling===e.isSampling&&this.editorHeight===e.editorHeight&&this.fontScale===e.fontScale&&this.minimapLineHeight===e.minimapLineHeight&&this.minimapCharWidth===e.minimapCharWidth&&this.sectionHeaderFontSize===e.sectionHeaderFontSize&&this.sectionHeaderLetterSpacing===e.sectionHeaderLetterSpacing&&this.defaultBackgroundColor&&this.defaultBackgroundColor.equals(e.defaultBackgroundColor)&&this.backgroundColor&&this.backgroundColor.equals(e.backgroundColor)&&this.foregroundAlpha===e.foregroundAlpha}},tl=class e{constructor(e,t,n,r,i,a,o,s,c){this.scrollTop=e,this.scrollHeight=t,this.sliderNeeded=n,this._computedSliderRatio=r,this.sliderTop=i,this.sliderHeight=a,this.topPaddingLineCount=o,this.startLineNumber=s,this.endLineNumber=c}getDesiredScrollTopFromDelta(e){return Math.round(this.scrollTop+e/this._computedSliderRatio)}getDesiredScrollTopFromTouchLocation(e){return Math.round((e-this.sliderHeight/2)/this._computedSliderRatio)}intersectWithViewport(e){let t=Math.max(this.startLineNumber,e.startLineNumber),n=Math.min(this.endLineNumber,e.endLineNumber);return t>n?null:[t,n]}getYForLineNumber(e,t){return+(e-this.startLineNumber+this.topPaddingLineCount)*t}static create(t,n,r,i,a,o,s,c,l,u,d){let f=t.pixelRatio,p=t.minimapLineHeight,m=Math.floor(t.canvasInnerHeight/p),h=t.lineHeight;if(t.minimapHeightIsEditorHeight){let n=c*t.lineHeight+t.paddingTop+t.paddingBottom;t.scrollBeyondLastLine&&(n+=Math.max(0,a-t.lineHeight-t.paddingBottom));let r=Math.max(1,Math.floor(a*a/n)),i=Math.max(0,t.minimapHeight-r),o=i/(u-a),d=l*o,f=i>0,p=Math.floor(t.canvasInnerHeight/t.minimapLineHeight);return new e(l,u,f,o,d,r,Math.floor(t.paddingTop/t.lineHeight),1,Math.min(s,p))}let g;if(o&&r!==s){let e=r-n+1;g=Math.floor(e*p/f)}else{let e=a/h;g=Math.floor(e*p/f)}let _=Math.floor(t.paddingTop/h),v=Math.floor(t.paddingBottom/h);if(t.scrollBeyondLastLine){let e=a/h;v=Math.max(v,e-1)}let y;if(v>0){let e=a/h;y=(_+s+v-e-1)*p/f}else y=Math.max(0,(_+s)*p/f-g);y=Math.min(t.minimapHeight-g,y);let b=y/(u-a),x=l*b;if(m>=_+s+v)return new e(l,u,y>0,b,x,g,_,1,s);{let r;r=n>1?n+_:Math.max(1,l/h);let a,o=Math.max(1,Math.floor(r-x*f/p));o<_?(a=_-o+1,o=1):(a=0,o=Math.max(1,o-_)),d&&d.scrollHeight===u&&(d.scrollTop>l&&(o=Math.min(o,d.startLineNumber),a=Math.max(a,d.topPaddingLineCount)),d.scrollTop<l&&(o=Math.max(o,d.startLineNumber),a=Math.min(a,d.topPaddingLineCount)));let c=Math.min(s,o-a+m-1),v=(l-i)/h,y;return y=l>=t.paddingTop?(n-o+a+v)*p/f:l/t.paddingTop*(a+v)*p/f,new e(l,u,!0,b,y,g,a,o,c)}}},nl=class e{static{this.INVALID=new e(-1)}constructor(e){this.dy=e}onContentChanged(){this.dy=-1}onTokensChanged(){this.dy=-1}},rl=class{constructor(e,t,n){this.renderedLayout=e,this._imageData=t,this._renderedLines=new Ys({createLine:()=>nl.INVALID}),this._renderedLines._set(e.startLineNumber,n)}linesEquals(e){if(!this.scrollEquals(e))return!1;let t=this._renderedLines._get().lines;for(let e=0,n=t.length;e<n;e++)if(t[e].dy===-1)return!1;return!0}scrollEquals(e){return this.renderedLayout.startLineNumber===e.startLineNumber&&this.renderedLayout.endLineNumber===e.endLineNumber}_get(){let e=this._renderedLines._get();return{imageData:this._imageData,rendLineNumberStart:e.rendLineNumberStart,lines:e.lines}}onLinesChanged(e,t){return this._renderedLines.onLinesChanged(e,t)}onLinesDeleted(e,t){this._renderedLines.onLinesDeleted(e,t)}onLinesInserted(e,t){this._renderedLines.onLinesInserted(e,t)}onTokensChanged(e){return this._renderedLines.onTokensChanged(e)}},il=class e{constructor(t,n,r,i){this._backgroundFillData=e._createBackgroundFillData(n,r,i),this._buffers=[t.createImageData(n,r),t.createImageData(n,r)],this._lastUsedBuffer=0}getBuffer(){this._lastUsedBuffer=1-this._lastUsedBuffer;let e=this._buffers[this._lastUsedBuffer];return e.data.set(this._backgroundFillData),e}static _createBackgroundFillData(e,t,n){let r=n.r,i=n.g,a=n.b,o=n.a,s=new Uint8ClampedArray(e*t*4),c=0;for(let n=0;n<t;n++)for(let t=0;t<e;t++)s[c]=r,s[c+1]=i,s[c+2]=a,s[c+3]=o,c+=4;return s}},al=class e{static compute(t,n,r){if(t.renderMinimap===0||!t.isSampling)return[null,[]];let{minimapLineCount:i}=ii.computeContainedMinimapLineCount({viewLineCount:n,scrollBeyondLastLine:t.scrollBeyondLastLine,paddingTop:t.paddingTop,paddingBottom:t.paddingBottom,height:t.editorHeight,lineHeight:t.lineHeight,pixelRatio:t.pixelRatio}),a=n/i,o=a/2;if(!r||r.minimapLines.length===0){let t=[];if(t[0]=1,i>1){for(let e=0,n=i-1;e<n;e++)t[e]=Math.round(e*a+o);t[i-1]=n}return[new e(a,t),[]]}let s=r.minimapLines,c=s.length,l=[],u=0,d=0,f=1,p=[],m=null;for(let e=0;e<i;e++){let t=Math.max(f,Math.round(e*a)),r=Math.max(t,Math.round((e+1)*a));for(;u<c&&s[u]<t;){if(p.length<10){let e=u+1+d;m&&m.type===`deleted`&&m._oldIndex===u-1?m.deleteToLineNumber++:(m={type:`deleted`,_oldIndex:u,deleteFromLineNumber:e,deleteToLineNumber:e},p.push(m)),d--}u++}let h;if(u<c&&s[u]<=r)h=s[u],u++;else if(h=e===0?1:e+1===i?n:Math.round(e*a+o),p.length<10){let t=u+1+d;m&&m.type===`inserted`&&m._i===e-1?m.insertToLineNumber++:(m={type:`inserted`,_i:e,insertFromLineNumber:t,insertToLineNumber:t},p.push(m)),d++}l[e]=h,f=h}if(p.length<10)for(;u<c;){let e=u+1+d;m&&m.type===`deleted`&&m._oldIndex===u-1?m.deleteToLineNumber++:(m={type:`deleted`,_oldIndex:u,deleteFromLineNumber:e,deleteToLineNumber:e},p.push(m)),d--,u++}else p=[{type:`flush`}];return[new e(a,l),p]}constructor(e,t){this.samplingRatio=e,this.minimapLines=t}modelLineToMinimapLine(e){return Math.min(this.minimapLines.length,Math.max(1,Math.round(e/this.samplingRatio)))}modelLineRangeToMinimapLineRange(e,t){let n=this.modelLineToMinimapLine(e)-1;for(;n>0&&this.minimapLines[n-1]>=e;)n--;let r=this.modelLineToMinimapLine(t)-1;for(;r+1<this.minimapLines.length&&this.minimapLines[r+1]<=t;)r++;if(n===r){let r=this.minimapLines[n];if(r<e||r>t)return null}return[n+1,r+1]}decorationLineRangeToMinimapLineRange(e,t){let n=this.modelLineToMinimapLine(e),r=this.modelLineToMinimapLine(t);return e!==t&&r===n&&(r===this.minimapLines.length?n>1&&n--:r++),[n,r]}onLinesDeleted(e){let t=e.toLineNumber-e.fromLineNumber+1,n=this.minimapLines.length,r=0;for(let i=this.minimapLines.length-1;i>=0&&!(this.minimapLines[i]<e.fromLineNumber);i--)this.minimapLines[i]<=e.toLineNumber?(this.minimapLines[i]=Math.max(1,e.fromLineNumber-1),n=Math.min(n,i),r=Math.max(r,i)):this.minimapLines[i]-=t;return[n,r]}onLinesInserted(e){let t=e.toLineNumber-e.fromLineNumber+1;for(let n=this.minimapLines.length-1;n>=0&&!(this.minimapLines[n]<e.fromLineNumber);n--)this.minimapLines[n]+=t}},ol=class extends ia{constructor(e){super(e),this._sectionHeaderCache=new be(10,1.5),this.tokensColorTracker=Rc.getInstance(),this._selections=[],this._minimapSelections=null,this.options=new el(this._context.configuration,this._context.theme,this.tokensColorTracker);let[t]=al.compute(this.options,this._context.viewModel.getLineCount(),null);this._samplingState=t,this._shouldCheckSampling=!1,this._actual=new sl(e.theme,this)}dispose(){this._actual.dispose(),super.dispose()}getDomNode(){return this._actual.getDomNode()}_onOptionsMaybeChanged(){let e=new el(this._context.configuration,this._context.theme,this.tokensColorTracker);return this.options.equals(e)?!1:(this.options=e,this._recreateLineSampling(),this._actual.onDidChangeOptions(),!0)}onConfigurationChanged(e){return this._onOptionsMaybeChanged()}onCursorStateChanged(e){return this._selections=e.selections,this._minimapSelections=null,this._actual.onSelectionChanged()}onDecorationsChanged(e){return e.affectsMinimap?this._actual.onDecorationsChanged():!1}onFlushed(e){return this._samplingState&&(this._shouldCheckSampling=!0),this._actual.onFlushed()}onLinesChanged(e){if(this._samplingState){let t=this._samplingState.modelLineRangeToMinimapLineRange(e.fromLineNumber,e.fromLineNumber+e.count-1);return t?this._actual.onLinesChanged(t[0],t[1]-t[0]+1):!1}else return this._actual.onLinesChanged(e.fromLineNumber,e.count)}onLinesDeleted(e){if(this._samplingState){let[t,n]=this._samplingState.onLinesDeleted(e);return t<=n&&this._actual.onLinesChanged(t+1,n-t+1),this._shouldCheckSampling=!0,!0}else return this._actual.onLinesDeleted(e.fromLineNumber,e.toLineNumber)}onLinesInserted(e){return this._samplingState?(this._samplingState.onLinesInserted(e),this._shouldCheckSampling=!0,!0):this._actual.onLinesInserted(e.fromLineNumber,e.toLineNumber)}onScrollChanged(e){return this._actual.onScrollChanged(e)}onThemeChanged(e){return this._actual.onThemeChanged(),this._onOptionsMaybeChanged(),!0}onTokensChanged(e){if(this._samplingState){let t=[];for(let n of e.ranges){let e=this._samplingState.modelLineRangeToMinimapLineRange(n.fromLineNumber,n.toLineNumber);e&&t.push({fromLineNumber:e[0],toLineNumber:e[1]})}return t.length?this._actual.onTokensChanged(t):!1}else return this._actual.onTokensChanged(e.ranges)}onTokensColorsChanged(e){return this._onOptionsMaybeChanged(),this._actual.onTokensColorsChanged()}onZonesChanged(e){return this._actual.onZonesChanged()}prepareRender(e){this._shouldCheckSampling&&(this._shouldCheckSampling=!1,this._recreateLineSampling())}render(e){let t=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber;this._samplingState&&(t=this._samplingState.modelLineToMinimapLine(t),n=this._samplingState.modelLineToMinimapLine(n));let r={viewportContainsWhitespaceGaps:e.viewportData.whitespaceViewportData.length>0,scrollWidth:e.scrollWidth,scrollHeight:e.scrollHeight,viewportStartLineNumber:t,viewportEndLineNumber:n,viewportStartLineNumberVerticalOffset:e.getVerticalOffsetForLineNumber(t),scrollTop:e.scrollTop,scrollLeft:e.scrollLeft,viewportWidth:e.viewportWidth,viewportHeight:e.viewportHeight};this._actual.render(r)}_recreateLineSampling(){this._minimapSelections=null;let e=!!this._samplingState,[t,n]=al.compute(this.options,this._context.viewModel.getLineCount(),this._samplingState);if(this._samplingState=t,e&&this._samplingState)for(let e of n)switch(e.type){case`deleted`:this._actual.onLinesDeleted(e.deleteFromLineNumber,e.deleteToLineNumber);break;case`inserted`:this._actual.onLinesInserted(e.insertFromLineNumber,e.insertToLineNumber);break;case`flush`:this._actual.onFlushed();break}}getLineCount(){return this._samplingState?this._samplingState.minimapLines.length:this._context.viewModel.getLineCount()}getRealLineCount(){return this._context.viewModel.getLineCount()}getLineContent(e){return this._samplingState?this._context.viewModel.getLineContent(this._samplingState.minimapLines[e-1]):this._context.viewModel.getLineContent(e)}getLineMaxColumn(e){return this._samplingState?this._context.viewModel.getLineMaxColumn(this._samplingState.minimapLines[e-1]):this._context.viewModel.getLineMaxColumn(e)}getMinimapLinesRenderingData(e,t,n){if(this._samplingState){let r=[];for(let i=0,a=t-e+1;i<a;i++)n[i]?r[i]=this._context.viewModel.getViewLineData(this._samplingState.minimapLines[e+i-1]):r[i]=null;return r}return this._context.viewModel.getMinimapLinesRenderingData(e,t,n).data}getSelections(){if(this._minimapSelections===null)if(this._samplingState){this._minimapSelections=[];for(let e of this._selections){let[t,n]=this._samplingState.decorationLineRangeToMinimapLineRange(e.startLineNumber,e.endLineNumber);this._minimapSelections.push(new L(t,e.startColumn,n,e.endColumn))}}else this._minimapSelections=this._selections;return this._minimapSelections}getMinimapDecorationsInViewport(e,t){return this._getMinimapDecorationsInViewport(e,t).filter(e=>!e.options.minimap?.sectionHeaderStyle)}getSectionHeaderDecorationsInViewport(e,t){let n=this.options.sectionHeaderFontSize/this.options.minimapLineHeight;return e=Math.floor(Math.max(1,e-n)),this._getMinimapDecorationsInViewport(e,t).filter(e=>!!e.options.minimap?.sectionHeaderStyle)}_getMinimapDecorationsInViewport(e,t){let n;if(this._samplingState){let r=this._samplingState.minimapLines[e-1],i=this._samplingState.minimapLines[t-1];n=new j(r,1,i,this._context.viewModel.getLineMaxColumn(i))}else n=new j(e,1,t,this._context.viewModel.getLineMaxColumn(t));let r=this._context.viewModel.getMinimapDecorationsInRange(n);if(this._samplingState){let e=[];for(let t of r){if(!t.options.minimap)continue;let n=t.range,r=this._samplingState.modelLineToMinimapLine(n.startLineNumber),i=this._samplingState.modelLineToMinimapLine(n.endLineNumber);e.push(new qc(new j(r,n.startColumn,i,n.endColumn),t.options))}return e}return r}getSectionHeaderText(e,t){let n=e.options.minimap?.sectionHeaderText;if(!n)return null;let r=this._sectionHeaderCache.get(n);if(r)return r;let i=t(n);return this._sectionHeaderCache.set(n,i),i}getOptions(){return this._context.viewModel.model.getOptions()}revealLineNumber(e){this._samplingState&&(e=this._samplingState.minimapLines[e-1]),this._context.viewModel.revealRange(`mouse`,!1,new j(e,1,e,1),1,0)}setScrollTop(e){this._context.viewModel.viewLayout.setScrollPosition({scrollTop:e},1)}},sl=class e extends i{constructor(e,t){super(),this._renderDecorations=!1,this._gestureInProgress=!1,this._isMouseOverMinimap=!1,this._theme=e,this._model=t,this._lastRenderData=null,this._buffers=null,this._selectionColor=this._theme.getColor(pr),this._domNode=B(document.createElement(`div`)),aa.write(this._domNode,9),this._domNode.setClassName(this._getMinimapDomNodeClassName()),this._domNode.setPosition(`absolute`),this._domNode.setAttribute(`role`,`presentation`),this._domNode.setAttribute(`aria-hidden`,`true`),this._shadow=B(document.createElement(`div`)),this._shadow.setClassName(`minimap-shadow-hidden`),this._domNode.appendChild(this._shadow),this._canvas=B(document.createElement(`canvas`)),this._canvas.setPosition(`absolute`),this._canvas.setLeft(0),this._domNode.appendChild(this._canvas),this._decorationsCanvas=B(document.createElement(`canvas`)),this._decorationsCanvas.setPosition(`absolute`),this._decorationsCanvas.setClassName(`minimap-decorations-layer`),this._decorationsCanvas.setLeft(0),this._domNode.appendChild(this._decorationsCanvas),this._slider=B(document.createElement(`div`)),this._slider.setPosition(`absolute`),this._slider.setClassName(`minimap-slider`),this._slider.setLayerHinting(!0),this._slider.setContain(`strict`),this._domNode.appendChild(this._slider),this._sliderHorizontal=B(document.createElement(`div`)),this._sliderHorizontal.setPosition(`absolute`),this._sliderHorizontal.setClassName(`minimap-slider-horizontal`),this._slider.appendChild(this._sliderHorizontal),this._applyLayout(),this._hideDelayedScheduler=this._register(new s(()=>this._hideImmediatelyIfMouseIsOutside(),500)),this._register(gt(this._domNode.domNode,Ze.MOUSE_OVER,()=>{this._isMouseOverMinimap=!0})),this._register(gt(this._domNode.domNode,Ze.MOUSE_LEAVE,()=>{this._isMouseOverMinimap=!1})),this._pointerDownListener=gt(this._domNode.domNode,Ze.POINTER_DOWN,e=>{e.preventDefault();let t=e.pointerType===`mouse`,n=e.button===0;if(this._model.options.renderMinimap!==0&&this._lastRenderData){if(this._model.options.size!==`proportional`){if(n&&this._lastRenderData){let t=Ue(this._slider.domNode),n=t.top+t.height/2;this._startSliderDragging(e,n,this._lastRenderData.renderedLayout)}return}if(n||!t){let t=this._model.options.minimapLineHeight,n=this._model.options.canvasInnerHeight/this._model.options.canvasOuterHeight*e.offsetY,r=Math.floor(n/t)+this._lastRenderData.renderedLayout.startLineNumber-this._lastRenderData.renderedLayout.topPaddingLineCount;r=Math.min(r,this._model.getLineCount()),this._model.revealLineNumber(r)}}}),this._sliderPointerMoveMonitor=new Ar,this._sliderPointerDownListener=gt(this._slider.domNode,Ze.POINTER_DOWN,e=>{e.preventDefault(),e.stopPropagation(),e.button===0&&this._lastRenderData&&this._startSliderDragging(e,e.pageY,this._lastRenderData.renderedLayout)}),this._gestureDisposable=jr.addTarget(this._domNode.domNode),this._sliderTouchStartListener=P(this._domNode.domNode,Ir.Start,e=>{e.preventDefault(),e.stopPropagation(),this._lastRenderData&&(this._slider.toggleClassName(`active`,!0),this._gestureInProgress=!0,this.scrollDueToTouchEvent(e))},{passive:!1}),this._sliderTouchMoveListener=P(this._domNode.domNode,Ir.Change,e=>{e.preventDefault(),e.stopPropagation(),this._lastRenderData&&this._gestureInProgress&&this.scrollDueToTouchEvent(e)},{passive:!1}),this._sliderTouchEndListener=gt(this._domNode.domNode,Ir.End,e=>{e.preventDefault(),e.stopPropagation(),this._gestureInProgress=!1,this._slider.toggleClassName(`active`,!1)})}_hideSoon(){this._hideDelayedScheduler.cancel(),this._hideDelayedScheduler.schedule()}_hideImmediatelyIfMouseIsOutside(){if(this._isMouseOverMinimap){this._hideSoon();return}this._domNode.toggleClassName(`active`,!1)}_startSliderDragging(e,t,n){if(!e.target||!(e.target instanceof Element))return;let r=e.pageX;this._slider.toggleClassName(`active`,!0);let i=(e,i)=>{let a=Ue(this._domNode.domNode),o=Math.min(Math.abs(i-r),Math.abs(i-a.left),Math.abs(i-a.left-a.width));if(Ae&&o>Qc){this._model.setScrollTop(n.scrollTop);return}let s=e-t;this._model.setScrollTop(n.getDesiredScrollTopFromDelta(s))};e.pageY!==t&&i(e.pageY,r),this._sliderPointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,e=>i(e.pageY,e.pageX),()=>{this._slider.toggleClassName(`active`,!1)})}scrollDueToTouchEvent(e){let t=this._domNode.domNode.getBoundingClientRect().top,n=this._lastRenderData.renderedLayout.getDesiredScrollTopFromTouchLocation(e.pageY-t);this._model.setScrollTop(n)}dispose(){this._pointerDownListener.dispose(),this._sliderPointerMoveMonitor.dispose(),this._sliderPointerDownListener.dispose(),this._gestureDisposable.dispose(),this._sliderTouchStartListener.dispose(),this._sliderTouchMoveListener.dispose(),this._sliderTouchEndListener.dispose(),super.dispose()}_getMinimapDomNodeClassName(){let e=[`minimap`];return this._model.options.showSlider===`always`?e.push(`slider-always`):e.push(`slider-mouseover`),this._model.options.autohide===`mouseover`?e.push(`minimap-autohide-mouseover`):this._model.options.autohide===`scroll`&&e.push(`minimap-autohide-scroll`),e.join(` `)}getDomNode(){return this._domNode}_applyLayout(){this._domNode.setLeft(this._model.options.minimapLeft),this._domNode.setWidth(this._model.options.minimapWidth),this._domNode.setHeight(this._model.options.minimapHeight),this._shadow.setHeight(this._model.options.minimapHeight),this._canvas.setWidth(this._model.options.canvasOuterWidth),this._canvas.setHeight(this._model.options.canvasOuterHeight),this._canvas.domNode.width=this._model.options.canvasInnerWidth,this._canvas.domNode.height=this._model.options.canvasInnerHeight,this._decorationsCanvas.setWidth(this._model.options.canvasOuterWidth),this._decorationsCanvas.setHeight(this._model.options.canvasOuterHeight),this._decorationsCanvas.domNode.width=this._model.options.canvasInnerWidth,this._decorationsCanvas.domNode.height=this._model.options.canvasInnerHeight,this._slider.setWidth(this._model.options.minimapWidth)}_getBuffer(){return this._buffers||this._model.options.canvasInnerWidth>0&&this._model.options.canvasInnerHeight>0&&(this._buffers=new il(this._canvas.domNode.getContext(`2d`),this._model.options.canvasInnerWidth,this._model.options.canvasInnerHeight,this._model.options.backgroundColor)),this._buffers?this._buffers.getBuffer():null}onDidChangeOptions(){this._lastRenderData=null,this._buffers=null,this._applyLayout(),this._domNode.setClassName(this._getMinimapDomNodeClassName())}onSelectionChanged(){return this._renderDecorations=!0,!0}onDecorationsChanged(){return this._renderDecorations=!0,!0}onFlushed(){return this._lastRenderData=null,!0}onLinesChanged(e,t){return this._lastRenderData?this._lastRenderData.onLinesChanged(e,t):!1}onLinesDeleted(e,t){return this._lastRenderData?.onLinesDeleted(e,t),!0}onLinesInserted(e,t){return this._lastRenderData?.onLinesInserted(e,t),!0}onScrollChanged(e){return this._model.options.autohide===`scroll`&&(e.scrollTopChanged||e.scrollHeightChanged)&&(this._domNode.toggleClassName(`active`,!0),this._hideSoon()),this._renderDecorations=!0,!0}onThemeChanged(){return this._selectionColor=this._theme.getColor(pr),this._renderDecorations=!0,!0}onTokensChanged(e){return this._lastRenderData?this._lastRenderData.onTokensChanged(e):!1}onTokensColorsChanged(){return this._lastRenderData=null,this._buffers=null,!0}onZonesChanged(){return this._lastRenderData=null,!0}render(e){if(this._model.options.renderMinimap===0){this._shadow.setClassName(`minimap-shadow-hidden`),this._sliderHorizontal.setWidth(0),this._sliderHorizontal.setHeight(0);return}e.scrollLeft+e.viewportWidth>=e.scrollWidth?this._shadow.setClassName(`minimap-shadow-hidden`):this._shadow.setClassName(`minimap-shadow-visible`);let t=tl.create(this._model.options,e.viewportStartLineNumber,e.viewportEndLineNumber,e.viewportStartLineNumberVerticalOffset,e.viewportHeight,e.viewportContainsWhitespaceGaps,this._model.getLineCount(),this._model.getRealLineCount(),e.scrollTop,e.scrollHeight,this._lastRenderData?this._lastRenderData.renderedLayout:null);this._slider.setDisplay(t.sliderNeeded?`block`:`none`),this._slider.setTop(t.sliderTop),this._slider.setHeight(t.sliderHeight),this._sliderHorizontal.setLeft(0),this._sliderHorizontal.setWidth(this._model.options.minimapWidth),this._sliderHorizontal.setTop(0),this._sliderHorizontal.setHeight(t.sliderHeight),this.renderDecorations(t),this._lastRenderData=this.renderLines(t)}renderDecorations(e){if(this._renderDecorations){this._renderDecorations=!1;let t=this._model.getSelections();t.sort(j.compareRangesUsingStarts);let n=this._model.getMinimapDecorationsInViewport(e.startLineNumber,e.endLineNumber);n.sort((e,t)=>(e.options.zIndex||0)-(t.options.zIndex||0));let{canvasInnerWidth:r,canvasInnerHeight:i}=this._model.options,a=this._model.options.minimapLineHeight,o=this._model.options.minimapCharWidth,s=this._model.getOptions().tabSize,c=this._decorationsCanvas.domNode.getContext(`2d`);c.clearRect(0,0,r,i);let l=new cl(e.startLineNumber,e.endLineNumber,!1);this._renderSelectionLineHighlights(c,t,l,e,a),this._renderDecorationsLineHighlights(c,n,l,e,a);let u=new cl(e.startLineNumber,e.endLineNumber,null);this._renderSelectionsHighlights(c,t,u,e,a,s,o,r),this._renderDecorationsHighlights(c,n,u,e,a,s,o,r),this._renderSectionHeaders(e)}}_renderSelectionLineHighlights(e,t,n,r,i){if(!this._selectionColor||this._selectionColor.isTransparent())return;e.fillStyle=this._selectionColor.transparent(.5).toString();let a=0,o=0;for(let s of t){let t=r.intersectWithViewport(s);if(!t)continue;let[c,l]=t;for(let e=c;e<=l;e++)n.set(e,!0);let u=r.getYForLineNumber(c,i),d=r.getYForLineNumber(l,i);o>=u?o=d:(o>a&&e.fillRect(8,a,e.canvas.width,o-a),a=u,o=d)}o>a&&e.fillRect(8,a,e.canvas.width,o-a)}_renderDecorationsLineHighlights(e,t,n,r,i){let a=new Map;for(let o=t.length-1;o>=0;o--){let s=t[o],c=s.options.minimap;if(!c||c.position!==1)continue;let l=r.intersectWithViewport(s.range);if(!l)continue;let[u,d]=l,f=c.getColor(this._theme.value);if(!f||f.isTransparent())continue;let p=a.get(f.toString());p||(p=f.transparent(.5).toString(),a.set(f.toString(),p)),e.fillStyle=p;for(let t=u;t<=d;t++){if(n.has(t))continue;n.set(t,!0);let a=r.getYForLineNumber(u,i);e.fillRect(8,a,e.canvas.width,i)}}}_renderSelectionsHighlights(e,t,n,r,i,a,o,s){if(!(!this._selectionColor||this._selectionColor.isTransparent()))for(let c of t){let t=r.intersectWithViewport(c);if(!t)continue;let[l,u]=t;for(let t=l;t<=u;t++)this.renderDecorationOnLine(e,n,c,this._selectionColor,r,t,i,i,a,o,s)}}_renderDecorationsHighlights(e,t,n,r,i,a,o,s){for(let c of t){let t=c.options.minimap;if(!t)continue;let l=r.intersectWithViewport(c.range);if(!l)continue;let[u,d]=l,f=t.getColor(this._theme.value);if(!(!f||f.isTransparent()))for(let l=u;l<=d;l++)switch(t.position){case 1:this.renderDecorationOnLine(e,n,c.range,f,r,l,i,i,a,o,s);continue;case 2:{let t=r.getYForLineNumber(l,i);this.renderDecoration(e,f,2,t,$c,i);continue}}}}renderDecorationOnLine(e,t,n,r,i,a,o,s,c,l,u){let d=i.getYForLineNumber(a,s);if(d+o<0||d>this._model.options.canvasInnerHeight)return;let{startLineNumber:f,endLineNumber:p}=n,m=f===a?n.startColumn:1,h=p===a?n.endColumn:this._model.getLineMaxColumn(a),g=this.getXOffsetForPosition(t,a,m,c,l,u),_=this.getXOffsetForPosition(t,a,h,c,l,u);this.renderDecoration(e,r,g,d,_-g,o)}getXOffsetForPosition(e,t,n,r,i,a){if(n===1)return 8;if((n-1)*i>=a)return a;let o=e.get(t);if(!o){let n=this._model.getLineContent(t);o=[8];let s=8;for(let e=1;e<n.length+1;e++){let t=n.charCodeAt(e-1),c=t===9?r*i:ve(t)?2*i:i,l=s+c;if(l>=a){o[e]=a;break}o[e]=l,s=l}e.set(t,o)}return n-1<o.length?o[n-1]:a}renderDecoration(e,t,n,r,i,a){e.fillStyle=t&&t.toString()||``,e.fillRect(n,r,i,a)}_renderSectionHeaders(t){let n=this._model.options.minimapLineHeight,r=this._model.options.sectionHeaderFontSize,i=this._model.options.sectionHeaderLetterSpacing,a=r*1.5,{canvasInnerWidth:o}=this._model.options,s=this._model.options.backgroundColor,c=`rgb(${s.r} ${s.g} ${s.b} / .7)`,l=this._model.options.sectionHeaderFontColor,u=`rgb(${l.r} ${l.g} ${l.b})`,d=u,f=this._decorationsCanvas.domNode.getContext(`2d`);f.letterSpacing=i+`px`,f.font=`500 `+r+`px `+this._model.options.sectionHeaderFontFamily,f.strokeStyle=d,f.lineWidth=.4;let p=this._model.getSectionHeaderDecorationsInViewport(t.startLineNumber,t.endLineNumber);p.sort((e,t)=>e.range.startLineNumber-t.range.startLineNumber);let m=e._fitSectionHeader.bind(null,f,o-8);for(let i of p){let s=t.getYForLineNumber(i.range.startLineNumber,n)+r,l=s-r,d=l+2,p=this._model.getSectionHeaderText(i,m);e._renderSectionLabel(f,p,i.options.minimap?.sectionHeaderStyle===2,c,u,o,l,a,s,d)}}static _fitSectionHeader(e,t,n){if(!n)return n;let r=e.measureText(n).width,i=e.measureText(`…`).width;if(r<=t||r<=i)return n;let a=n.length,o=r/n.length,s=Math.floor((t-i)/o)-1,c=Math.ceil(s/2);for(;c>0&&/\s/.test(n[c-1]);)--c;return n.substring(0,c)+`…`+n.substring(a-(s-c))}static _renderSectionLabel(e,t,n,r,i,a,o,s,c,l){t&&(e.fillStyle=r,e.fillRect(0,o,a,s),e.fillStyle=i,e.fillText(t,8,c)),n&&(e.beginPath(),e.moveTo(0,l),e.lineTo(a,l),e.closePath(),e.stroke())}renderLines(t){let n=t.startLineNumber,r=t.endLineNumber,i=this._model.options.minimapLineHeight;if(this._lastRenderData&&this._lastRenderData.linesEquals(t)){let e=this._lastRenderData._get();return new rl(t,e.imageData,e.lines)}let a=this._getBuffer();if(!a)return null;let[o,s,c]=e._renderUntouchedLines(a,t.topPaddingLineCount,n,r,i,this._lastRenderData),l=this._model.getMinimapLinesRenderingData(n,r,c),u=this._model.getOptions().tabSize,d=this._model.options.defaultBackgroundColor,f=this._model.options.backgroundColor,p=this._model.options.foregroundAlpha,m=this._model.tokensColorTracker,h=m.backgroundIsLight(),g=this._model.options.renderMinimap,_=this._model.options.charRenderer(),v=this._model.options.fontScale,y=this._model.options.minimapCharWidth,b=(g===1?2:3)*v,x=i>b?Math.floor((i-b)/2):0,S=f.a/255,C=new Lc(Math.round((f.r-d.r)*S+d.r),Math.round((f.g-d.g)*S+d.g),Math.round((f.b-d.b)*S+d.b),255),w=t.topPaddingLineCount*i,T=[];for(let t=0,o=r-n+1;t<o;t++)c[t]&&e._renderLine(a,C,f.a,h,g,y,m,p,_,w,x,u,l[t],v,i),T[t]=new nl(w),w+=i;let E=o===-1?0:o,ee=(s===-1?a.height:s)-E;return this._canvas.domNode.getContext(`2d`).putImageData(a,0,0,0,E,a.width,ee),new rl(t,a,T)}static _renderUntouchedLines(e,t,n,r,i,a){let o=[];if(!a){for(let e=0,t=r-n+1;e<t;e++)o[e]=!0;return[-1,-1,o]}let s=a._get(),c=s.imageData.data,l=s.rendLineNumberStart,u=s.lines,d=u.length,f=e.width,p=e.data,m=(r-n+1)*i*f*4,h=-1,g=-1,_=-1,v=-1,y=-1,b=-1,x=t*i;for(let e=n;e<=r;e++){let t=e-n,r=e-l,a=r>=0&&r<d?u[r].dy:-1;if(a===-1){o[t]=!0,x+=i;continue}let s=a*f*4,S=(a+i)*f*4,C=x*f*4,w=(x+i)*f*4;v===s&&b===C?(v=S,b=w):(_!==-1&&(p.set(c.subarray(_,v),y),h===-1&&_===0&&_===y&&(h=v),g===-1&&v===m&&_===y&&(g=_)),_=s,v=S,y=C,b=w),o[t]=!1,x+=i}return _!==-1&&(p.set(c.subarray(_,v),y),h===-1&&_===0&&_===y&&(h=v),g===-1&&v===m&&_===y&&(g=_)),[h===-1?-1:h/(f*4),g===-1?-1:g/(f*4),o]}static _renderLine(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m){let h=f.content,g=f.tokens,_=e.width-a,v=m===1,y=8,b=0,x=0;for(let f=0,m=g.getCount();f<m;f++){let m=g.getEndOffset(f),S=g.getForeground(f),C=o.getColor(S);for(;b<m;b++){if(y>_)return;let o=h.charCodeAt(b);if(o===9){let e=d-(b+x)%d;x+=e-1,y+=e*a}else if(o===32)y+=a;else{let d=ve(o)?2:1;for(let f=0;f<d;f++)if(i===2?c.blockRenderChar(e,y,l+u,C,s,t,n,v):c.renderChar(e,y,l+u,o,C,s,t,n,p,r,v),y+=a,y>_)return}}}}},cl=class{constructor(e,t,n){this._startLineNumber=e,this._endLineNumber=t,this._defaultValue=n,this._values=[];for(let e=0,t=this._endLineNumber-this._startLineNumber+1;e<t;e++)this._values[e]=n}has(e){return this.get(e)!==this._defaultValue}set(e,t){e<this._startLineNumber||e>this._endLineNumber||(this._values[e-this._startLineNumber]=t)}get(e){return e<this._startLineNumber||e>this._endLineNumber?this._defaultValue:this._values[e-this._startLineNumber]}},ll=class extends ia{constructor(e,t){super(e),this._viewDomNode=t;let n=this._context.configuration.options.get(165);this._widgets={},this._verticalScrollbarWidth=n.verticalScrollbarWidth,this._minimapWidth=n.minimap.minimapWidth,this._horizontalScrollbarHeight=n.horizontalScrollbarHeight,this._editorHeight=n.height,this._editorWidth=n.width,this._viewDomNodeRect={top:0,left:0,width:0,height:0},this._domNode=B(document.createElement(`div`)),aa.write(this._domNode,4),this._domNode.setClassName(`overlayWidgets`),this.overflowingOverlayWidgetsDomNode=B(document.createElement(`div`)),aa.write(this.overflowingOverlayWidgetsDomNode,5),this.overflowingOverlayWidgetsDomNode.setClassName(`overflowingOverlayWidgets`)}dispose(){super.dispose(),this._widgets={}}getDomNode(){return this._domNode}onConfigurationChanged(e){let t=this._context.configuration.options.get(165);return this._verticalScrollbarWidth=t.verticalScrollbarWidth,this._minimapWidth=t.minimap.minimapWidth,this._horizontalScrollbarHeight=t.horizontalScrollbarHeight,this._editorHeight=t.height,this._editorWidth=t.width,!0}_widgetCanOverflow(e){let t=this._context.configuration.options.get(4);return(e.allowEditorOverflow||!1)&&t}addWidget(e){let t=B(e.getDomNode());this._widgets[e.getId()]={widget:e,preference:null,domNode:t},t.setPosition(`absolute`),t.setAttribute(`widgetId`,e.getId()),this._widgetCanOverflow(e)?this.overflowingOverlayWidgetsDomNode.appendChild(t):this._domNode.appendChild(t),this.setShouldRender(),this._updateMaxMinWidth()}setWidgetPosition(e,t){let n=this._widgets[e.getId()],r=t?t.preference:null,i=t?.stackOridinal;return n.preference===r&&n.stack===i?(this._updateMaxMinWidth(),!1):(n.preference=r,n.stack=i,this.setShouldRender(),this._updateMaxMinWidth(),!0)}removeWidget(e){let t=e.getId();if(this._widgets.hasOwnProperty(t)){let e=this._widgets[t].domNode.domNode;delete this._widgets[t],e.remove(),this.setShouldRender(),this._updateMaxMinWidth()}}_updateMaxMinWidth(){let e=0,t=Object.keys(this._widgets);for(let n=0,r=t.length;n<r;n++){let r=t[n],i=this._widgets[r].widget.getMinContentWidthInPx?.();i!==void 0&&(e=Math.max(e,i))}this._context.viewLayout.setOverlayWidgetsMinWidth(e)}_renderWidget(e,t){let n=e.domNode;if(e.preference===null){n.setTop(``);return}let r=2*this._verticalScrollbarWidth+this._minimapWidth;if(e.preference===0||e.preference===1){if(e.preference===1){let e=n.domNode.clientHeight;n.setTop(this._editorHeight-e-2*this._horizontalScrollbarHeight)}else n.setTop(0);e.stack===void 0?n.setRight(r):(n.setTop(t[e.preference]),t[e.preference]+=n.domNode.clientWidth)}else if(e.preference===2)n.domNode.style.right=`50%`,e.stack===void 0?n.setTop(0):(n.setTop(t[2]),t[2]+=n.domNode.clientHeight);else{let{top:t,left:r}=e.preference;if(this._context.configuration.options.get(51)&&this._widgetCanOverflow(e.widget)){let e=this._viewDomNodeRect;n.setTop(t+e.top),n.setLeft(r+e.left),n.setPosition(`fixed`)}else n.setTop(t),n.setLeft(r),n.setPosition(`absolute`)}}prepareRender(e){this._viewDomNodeRect=Ue(this._viewDomNode.domNode)}render(e){this._domNode.setWidth(this._editorWidth);let t=Object.keys(this._widgets),n=Array.from({length:3},()=>0);t.sort((e,t)=>(this._widgets[e].stack||0)-(this._widgets[t].stack||0));for(let e=0,r=t.length;e<r;e++){let r=t[e];this._renderWidget(this._widgets[r],n)}}},ul=class{constructor(e,t,n,r){this._viewportBrand=void 0,this.top=e|0,this.left=t|0,this.width=n|0,this.height=r|0}},dl=class{constructor(e,t){this.tabSize=e,this.data=t}},fl=class{constructor(e,t,n,r,i,a,o){this._viewLineDataBrand=void 0,this.content=e,this.continuesWithWrappedLine=t,this.minColumn=n,this.maxColumn=r,this.startVisibleColumn=i,this.tokens=a,this.inlineDecorations=o}},pl=class e{constructor(t,n,r,i,a,o,s,c,l,u,d,f){this.minColumn=t,this.maxColumn=n,this.content=r,this.continuesWithWrappedLine=i,this.isBasicASCII=e.isBasicASCII(r,o),this.containsRTL=e.containsRTL(r,this.isBasicASCII,a),this.tokens=s,this.inlineDecorations=c,this.tabSize=l,this.startVisibleColumn=u,this.textDirection=d,this.hasVariableFonts=f}static isBasicASCII(e,t){return t?Ee(e):!0}static containsRTL(e,t,n){return!t&&n?ie(e):!1}},ml=class e{constructor(e,t,n){this.color=e,this.zIndex=t,this.data=n}static compareByRenderingProps(e,t){return e.zIndex===t.zIndex?e.color<t.color?-1:+(e.color>t.color):e.zIndex-t.zIndex}static equals(e,t){return e.color===t.color&&e.zIndex===t.zIndex&&He(e.data,t.data)}static equalsArr(t,n){return He(t,n,e.equals)}},hl=class{constructor(e,t){let n=e.options;this.lineHeight=n.get(75),this.pixelRatio=n.get(163),this.overviewRulerLanes=n.get(95),this.renderBorder=n.get(94);let r=t.getColor(sr);this.borderColor=r?r.toString():null,this.hideCursor=n.get(68);let i=t.getColor(Tn);this.cursorColorSingle=i?i.transparent(.7).toString():null;let a=t.getColor(Xn);this.cursorColorPrimary=a?a.transparent(.7).toString():null;let o=t.getColor(Nn);this.cursorColorSecondary=o?o.transparent(.7).toString():null,this.themeType=t.type;let s=n.get(81),c=s.enabled,l=s.side,u=t.getColor(Fn),d=Cn.getDefaultBackground();u?this.backgroundColor=u:c&&l===`right`?this.backgroundColor=d:this.backgroundColor=null;let f=n.get(165).overviewRuler;this.top=f.top,this.right=f.right,this.domWidth=f.width,this.domHeight=f.height,this.overviewRulerLanes===0?(this.canvasWidth=0,this.canvasHeight=0):(this.canvasWidth=this.domWidth*this.pixelRatio|0,this.canvasHeight=this.domHeight*this.pixelRatio|0);let[p,m]=this._initLanes(1,this.canvasWidth,this.overviewRulerLanes);this.x=p,this.w=m}_initLanes(e,t,n){let r=t-e;if(n>=3){let t=Math.floor(r/3),n=Math.floor(r/3),i=r-t-n,a=e,o=a+t;return[[0,a,o,a,a+t+i,a,o,a],[0,t,i,t+i,n,t+i+n,i+n,t+i+n]]}else if(n===2){let t=Math.floor(r/2),n=r-t,i=e;return[[0,i,i,i,i+t,i,i,i],[0,t,t,t,n,t+n,t+n,t+n]]}else{let t=e,n=r;return[[0,t,t,t,t,t,t,t],[0,n,n,n,n,n,n,n]]}}equals(e){return this.lineHeight===e.lineHeight&&this.pixelRatio===e.pixelRatio&&this.overviewRulerLanes===e.overviewRulerLanes&&this.renderBorder===e.renderBorder&&this.borderColor===e.borderColor&&this.hideCursor===e.hideCursor&&this.cursorColorSingle===e.cursorColorSingle&&this.cursorColorPrimary===e.cursorColorPrimary&&this.cursorColorSecondary===e.cursorColorSecondary&&this.themeType===e.themeType&&Wt.equals(this.backgroundColor,e.backgroundColor)&&this.top===e.top&&this.right===e.right&&this.domWidth===e.domWidth&&this.domHeight===e.domHeight&&this.canvasWidth===e.canvasWidth&&this.canvasHeight===e.canvasHeight}},gl=class extends ia{constructor(e){super(e),this._actualShouldRender=0,this._renderedDecorations=[],this._renderedCursorPositions=[],this._domNode=B(document.createElement(`canvas`)),this._domNode.setClassName(`decorationsOverviewRuler`),this._domNode.setPosition(`absolute`),this._domNode.setLayerHinting(!0),this._domNode.setContain(`strict`),this._domNode.setAttribute(`aria-hidden`,`true`),this._updateSettings(!1),this._tokensColorTrackerListener=Cn.onDidChange(e=>{e.changedColorMap&&this._updateSettings(!0)}),this._cursorPositions=[{position:new b(1,1),color:this._settings.cursorColorSingle}]}dispose(){super.dispose(),this._tokensColorTrackerListener.dispose()}_updateSettings(e){let t=new hl(this._context.configuration,this._context.theme);return this._settings&&this._settings.equals(t)?!1:(this._settings=t,this._domNode.setTop(this._settings.top),this._domNode.setRight(this._settings.right),this._domNode.setWidth(this._settings.domWidth),this._domNode.setHeight(this._settings.domHeight),this._domNode.domNode.width=this._settings.canvasWidth,this._domNode.domNode.height=this._settings.canvasHeight,e&&this._render(),!0)}_markRenderingIsNeeded(){return this._actualShouldRender=2,!0}_markRenderingIsMaybeNeeded(){return this._actualShouldRender=1,!0}onConfigurationChanged(e){return this._updateSettings(!1)?this._markRenderingIsNeeded():!1}onCursorStateChanged(e){this._cursorPositions=[];for(let t=0,n=e.selections.length;t<n;t++){let r=this._settings.cursorColorSingle;n>1&&(r=t===0?this._settings.cursorColorPrimary:this._settings.cursorColorSecondary),this._cursorPositions.push({position:e.selections[t].getPosition(),color:r})}return this._cursorPositions.sort((e,t)=>b.compare(e.position,t.position)),this._markRenderingIsMaybeNeeded()}onDecorationsChanged(e){return e.affectsOverviewRuler?this._markRenderingIsMaybeNeeded():!1}onFlushed(e){return this._markRenderingIsNeeded()}onScrollChanged(e){return e.scrollHeightChanged?this._markRenderingIsNeeded():!1}onZonesChanged(e){return this._markRenderingIsNeeded()}onThemeChanged(e){return this._updateSettings(!1)?this._markRenderingIsNeeded():!1}getDomNode(){return this._domNode.domNode}prepareRender(e){}render(e){this._render(),this._actualShouldRender=0}_render(){let e=this._settings.backgroundColor;if(this._settings.overviewRulerLanes===0){this._domNode.setBackgroundColor(e?Wt.Format.CSS.formatHexA(e):``),this._domNode.setDisplay(`none`);return}let t=this._context.viewModel.getAllOverviewRulerDecorations(this._context.theme);if(t.sort(ml.compareByRenderingProps),this._actualShouldRender===1&&!ml.equalsArr(this._renderedDecorations,t)&&(this._actualShouldRender=2),this._actualShouldRender===1&&!He(this._renderedCursorPositions,this._cursorPositions,(e,t)=>e.position.lineNumber===t.position.lineNumber&&e.color===t.color)&&(this._actualShouldRender=2),this._actualShouldRender===1)return;this._renderedDecorations=t,this._renderedCursorPositions=this._cursorPositions,this._domNode.setDisplay(`block`);let n=this._settings.canvasWidth,r=this._settings.canvasHeight,i=this._settings.lineHeight,a=this._context.viewLayout,o=r/this._context.viewLayout.getScrollHeight(),s=6*this._settings.pixelRatio|0,c=s/2|0,l=this._domNode.domNode.getContext(`2d`);e?e.isOpaque()?(l.fillStyle=Wt.Format.CSS.formatHexA(e),l.fillRect(0,0,n,r)):(l.clearRect(0,0,n,r),l.fillStyle=Wt.Format.CSS.formatHexA(e),l.fillRect(0,0,n,r)):l.clearRect(0,0,n,r);let u=this._settings.x,d=this._settings.w;for(let e of t){let t=e.color,n=e.data;l.fillStyle=t;let f=0,p=0,m=0;for(let e=0,t=n.length/3;e<t;e++){let t=n[3*e],h=n[3*e+1],g=n[3*e+2],_=a.getVerticalOffsetForLineNumber(h)*o|0,v=(a.getVerticalOffsetForLineNumber(g)+i)*o|0;if(v-_<s){let e=(_+v)/2|0;e<c?e=c:e+c>r&&(e=r-c),_=e-c,v=e+c}_>m+1||t!==f?(e!==0&&l.fillRect(u[f],p,d[f],m-p),f=t,p=_,m=v):v>m&&(m=v)}l.fillRect(u[f],p,d[f],m-p)}if(!this._settings.hideCursor){let e=2*this._settings.pixelRatio|0,t=e/2|0,n=this._settings.x[7],i=this._settings.w[7],s=-100,c=-100,u=null;for(let d=0,f=this._cursorPositions.length;d<f;d++){let f=this._cursorPositions[d].color;if(!f)continue;let p=this._cursorPositions[d].position,m=a.getVerticalOffsetForLineNumber(p.lineNumber)*o|0;m<t?m=t:m+t>r&&(m=r-t);let h=m-t,g=h+e;h>c+1||f!==u?(d!==0&&u&&l.fillRect(n,s,i,c-s),s=h,c=g):g>c&&(c=g),u=f,l.fillStyle=f}u&&l.fillRect(n,s,i,c-s)}this._settings.renderBorder&&this._settings.borderColor&&this._settings.overviewRulerLanes>0&&(l.beginPath(),l.lineWidth=1,l.strokeStyle=this._settings.borderColor,l.moveTo(0,0),l.lineTo(0,r),l.moveTo(1,0),l.lineTo(n,0),l.stroke())}},_l=class{constructor(e,t,n){this._colorZoneBrand=void 0,this.from=e|0,this.to=t|0,this.colorId=n|0}static compare(e,t){return e.colorId===t.colorId?e.from===t.from?e.to-t.to:e.from-t.from:e.colorId-t.colorId}},vl=class{constructor(e,t,n,r){this._overviewRulerZoneBrand=void 0,this.startLineNumber=e,this.endLineNumber=t,this.heightInLines=n,this.color=r,this._colorZone=null}static compare(e,t){return e.color===t.color?e.startLineNumber===t.startLineNumber?e.heightInLines===t.heightInLines?e.endLineNumber-t.endLineNumber:e.heightInLines-t.heightInLines:e.startLineNumber-t.startLineNumber:e.color<t.color?-1:1}setColorZone(e){this._colorZone=e}getColorZones(){return this._colorZone}},yl=class{constructor(e){this._getVerticalOffsetForLine=e,this._zones=[],this._colorZonesInvalid=!1,this._lineHeight=0,this._domWidth=0,this._domHeight=0,this._outerHeight=0,this._pixelRatio=1,this._lastAssignedId=0,this._color2Id=Object.create(null),this._id2Color=[]}getId2Color(){return this._id2Color}setZones(e){this._zones=e,this._zones.sort(vl.compare)}setLineHeight(e){return this._lineHeight===e?!1:(this._lineHeight=e,this._colorZonesInvalid=!0,!0)}setPixelRatio(e){this._pixelRatio=e,this._colorZonesInvalid=!0}getDOMWidth(){return this._domWidth}getCanvasWidth(){return this._domWidth*this._pixelRatio}setDOMWidth(e){return this._domWidth===e?!1:(this._domWidth=e,this._colorZonesInvalid=!0,!0)}getDOMHeight(){return this._domHeight}getCanvasHeight(){return this._domHeight*this._pixelRatio}setDOMHeight(e){return this._domHeight===e?!1:(this._domHeight=e,this._colorZonesInvalid=!0,!0)}getOuterHeight(){return this._outerHeight}setOuterHeight(e){return this._outerHeight===e?!1:(this._outerHeight=e,this._colorZonesInvalid=!0,!0)}resolveColorZones(){let e=this._colorZonesInvalid,t=Math.floor(this._lineHeight),n=Math.floor(this.getCanvasHeight()),r=n/Math.floor(this._outerHeight),i=Math.floor(4*this._pixelRatio/2),a=[];for(let o=0,s=this._zones.length;o<s;o++){let s=this._zones[o];if(!e){let e=s.getColorZones();if(e){a.push(e);continue}}let c=this._getVerticalOffsetForLine(s.startLineNumber),l=s.heightInLines===0?this._getVerticalOffsetForLine(s.endLineNumber)+t:c+s.heightInLines*t,u=Math.floor(r*c),d=Math.floor(r*l),f=Math.floor((u+d)/2),p=d-f;p<i&&(p=i),f-p<0&&(f=p),f+p>n&&(f=n-p);let m=s.color,h=this._color2Id[m];h||(h=++this._lastAssignedId,this._color2Id[m]=h,this._id2Color[h]=m);let g=new _l(f-p,f+p,h);s.setColorZone(g),a.push(g)}return this._colorZonesInvalid=!1,a.sort(_l.compare),a}},bl=class extends ra{constructor(e,t){super(),this._context=e;let n=this._context.configuration.options;this._domNode=B(document.createElement(`canvas`)),this._domNode.setClassName(t),this._domNode.setPosition(`absolute`),this._domNode.setLayerHinting(!0),this._domNode.setContain(`strict`),this._zoneManager=new yl(e=>this._context.viewLayout.getVerticalOffsetForLineNumber(e)),this._zoneManager.setDOMWidth(0),this._zoneManager.setDOMHeight(0),this._zoneManager.setOuterHeight(this._context.viewLayout.getScrollHeight()),this._zoneManager.setLineHeight(n.get(75)),this._zoneManager.setPixelRatio(n.get(163)),this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}onConfigurationChanged(e){let t=this._context.configuration.options;return e.hasChanged(75)&&(this._zoneManager.setLineHeight(t.get(75)),this._render()),e.hasChanged(163)&&(this._zoneManager.setPixelRatio(t.get(163)),this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render()),!0}onFlushed(e){return this._render(),!0}onScrollChanged(e){return e.scrollHeightChanged&&(this._zoneManager.setOuterHeight(e.scrollHeight),this._render()),!0}onZonesChanged(e){return this._render(),!0}getDomNode(){return this._domNode.domNode}setLayout(e){this._domNode.setTop(e.top),this._domNode.setRight(e.right);let t=!1;t=this._zoneManager.setDOMWidth(e.width)||t,t=this._zoneManager.setDOMHeight(e.height)||t,t&&(this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render())}setZones(e){this._zoneManager.setZones(e),this._render()}_render(){if(this._zoneManager.getOuterHeight()===0)return!1;let e=this._zoneManager.getCanvasWidth(),t=this._zoneManager.getCanvasHeight(),n=this._zoneManager.resolveColorZones(),r=this._zoneManager.getId2Color(),i=this._domNode.domNode.getContext(`2d`);return i.clearRect(0,0,e,t),n.length>0&&this._renderOneLane(i,n,r,e),!0}_renderOneLane(e,t,n,r){let i=0,a=0,o=0;for(let s of t){let t=s.colorId,c=s.from,l=s.to;t===i?o>=c?o=Math.max(o,l):(e.fillRect(0,a,r,o-a),a=c,o=l):(e.fillRect(0,a,r,o-a),i=t,e.fillStyle=n[i],a=c,o=l)}e.fillRect(0,a,r,o-a)}},xl=class extends ia{constructor(e){super(e),this.domNode=B(document.createElement(`div`)),this.domNode.setAttribute(`role`,`presentation`),this.domNode.setAttribute(`aria-hidden`,`true`),this.domNode.setClassName(`view-rulers`),this._renderedRulers=[];let t=this._context.configuration.options;this._rulers=t.get(116),this._typicalHalfwidthCharacterWidth=t.get(59).typicalHalfwidthCharacterWidth}dispose(){super.dispose()}onConfigurationChanged(e){let t=this._context.configuration.options;return this._rulers=t.get(116),this._typicalHalfwidthCharacterWidth=t.get(59).typicalHalfwidthCharacterWidth,!0}onScrollChanged(e){return e.scrollHeightChanged}prepareRender(e){}_ensureRulersCount(){let e=this._renderedRulers.length,t=this._rulers.length;if(e===t)return;if(e<t){let{tabSize:n}=this._context.viewModel.model.getOptions(),r=n,i=t-e;for(;i>0;){let e=B(document.createElement(`div`));e.setClassName(`view-ruler`),e.setWidth(r),this.domNode.appendChild(e),this._renderedRulers.push(e),i--}return}let n=e-t;for(;n>0;){let e=this._renderedRulers.pop();this.domNode.removeChild(e),n--}}render(e){this._ensureRulersCount();for(let t=0,n=this._rulers.length;t<n;t++){let n=this._renderedRulers[t],r=this._rulers[t];n.setBoxShadow(r.color?`1px 0 0 0 ${r.color} inset`:``),n.setHeight(Math.min(e.scrollHeight,1e6)),n.setLeft(r.column*this._typicalHalfwidthCharacterWidth)}}},Sl=class extends ia{constructor(e){super(e),this._scrollTop=0,this._width=0,this._updateWidth(),this._shouldShow=!1;let t=this._context.configuration.options.get(117);this._useShadows=t.useShadows,this._domNode=B(document.createElement(`div`)),this._domNode.setAttribute(`role`,`presentation`),this._domNode.setAttribute(`aria-hidden`,`true`)}dispose(){super.dispose()}_updateShouldShow(){let e=this._useShadows&&this._scrollTop>0;return this._shouldShow===e?!1:(this._shouldShow=e,!0)}getDomNode(){return this._domNode}_updateWidth(){let e=this._context.configuration.options.get(165);e.minimap.renderMinimap===0||e.minimap.minimapWidth>0&&e.minimap.minimapLeft===0?this._width=e.width:this._width=e.width-e.verticalScrollbarWidth}onConfigurationChanged(e){let t=this._context.configuration.options.get(117);return this._useShadows=t.useShadows,this._updateWidth(),this._updateShouldShow(),!0}onScrollChanged(e){return this._scrollTop=e.scrollTop,this._updateShouldShow()}prepareRender(e){}render(e){this._domNode.setWidth(this._width),this._domNode.setClassName(this._shouldShow?`scroll-decoration`:``)}},Cl=class{constructor(e){this.left=e.left,this.width=e.width,this.startStyle=null,this.endStyle=null}},wl=class{constructor(e,t){this.lineNumber=e,this.ranges=t}};function Tl(e){return new Cl(e)}function El(e){return new wl(e.lineNumber,e.ranges.map(Tl))}var Dl=class e extends uc{static{this.SELECTION_CLASS_NAME=`selected-text`}static{this.SELECTION_TOP_LEFT=`top-left-radius`}static{this.SELECTION_BOTTOM_LEFT=`bottom-left-radius`}static{this.SELECTION_TOP_RIGHT=`top-right-radius`}static{this.SELECTION_BOTTOM_RIGHT=`bottom-right-radius`}static{this.EDITOR_BACKGROUND_CLASS_NAME=`monaco-editor-background`}static{this.ROUNDED_PIECE_WIDTH=10}constructor(e){super(),this._previousFrameVisibleRangesWithStyle=[],this._context=e;let t=this._context.configuration.options;this._roundedSelection=t.get(115),this._typicalHalfwidthCharacterWidth=t.get(59).typicalHalfwidthCharacterWidth,this._selections=[],this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){let t=this._context.configuration.options;return this._roundedSelection=t.get(115),this._typicalHalfwidthCharacterWidth=t.get(59).typicalHalfwidthCharacterWidth,!0}onCursorStateChanged(e){return this._selections=e.selections.slice(0),!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_visibleRangesHaveGaps(e){for(let t=0,n=e.length;t<n;t++)if(e[t].ranges.length>1)return!0;return!1}_enrichVisibleRangesWithStyle(e,t,n){let r=this._typicalHalfwidthCharacterWidth/4,i=null,a=null;if(n&&n.length>0&&t.length>0){let r=t[0].lineNumber;if(r===e.startLineNumber)for(let e=0;!i&&e<n.length;e++)n[e].lineNumber===r&&(i=n[e].ranges[0]);let o=t[t.length-1].lineNumber;if(o===e.endLineNumber)for(let e=n.length-1;!a&&e>=0;e--)n[e].lineNumber===o&&(a=n[e].ranges[0]);i&&!i.startStyle&&(i=null),a&&!a.startStyle&&(a=null)}for(let e=0,n=t.length;e<n;e++){let o=t[e].ranges[0],s=o.left,c=o.left+o.width,l={top:0,bottom:0},u={top:0,bottom:0};if(e>0){let n=t[e-1].ranges[0].left,i=t[e-1].ranges[0].left+t[e-1].ranges[0].width;Ol(s-n)<r?l.top=2:s>n&&(l.top=1),Ol(c-i)<r?u.top=2:n<c&&c<i&&(u.top=1)}else i&&(l.top=i.startStyle.top,u.top=i.endStyle.top);if(e+1<n){let n=t[e+1].ranges[0].left,i=t[e+1].ranges[0].left+t[e+1].ranges[0].width;Ol(s-n)<r?l.bottom=2:n<s&&s<i&&(l.bottom=1),Ol(c-i)<r?u.bottom=2:c<i&&(u.bottom=1)}else a&&(l.bottom=a.startStyle.bottom,u.bottom=a.endStyle.bottom);o.startStyle=l,o.endStyle=u}}_getVisibleRangesWithStyle(e,t,n){let r=(t.linesVisibleRangesForRange(e,!0)||[]).map(El);return!this._visibleRangesHaveGaps(r)&&this._roundedSelection&&this._enrichVisibleRangesWithStyle(t.visibleRange,r,n),r}_createSelectionPiece(e,t,n,r,i){return`<div class="cslr `+n+`" style="top:`+e.toString()+`px;bottom:`+t.toString()+`px;left:`+r.toString()+`px;width:`+i.toString()+`px;"></div>`}_actualRenderOneSelection(t,n,r,i){if(i.length===0)return;let a=!!i[0].ranges[0].startStyle,o=i[0].lineNumber,s=i[i.length-1].lineNumber;for(let c=0,l=i.length;c<l;c++){let l=i[c],u=l.lineNumber,d=u-n,f=r?+(u===o):0,p=r?+(u!==o&&u===s):0,m=``,h=``;for(let t=0,n=l.ranges.length;t<n;t++){let n=l.ranges[t];if(a){let t=n.startStyle,r=n.endStyle;if(t.top===1||t.bottom===1){m+=this._createSelectionPiece(f,p,e.SELECTION_CLASS_NAME,n.left-e.ROUNDED_PIECE_WIDTH,e.ROUNDED_PIECE_WIDTH);let r=e.EDITOR_BACKGROUND_CLASS_NAME;t.top===1&&(r+=` `+e.SELECTION_TOP_RIGHT),t.bottom===1&&(r+=` `+e.SELECTION_BOTTOM_RIGHT),m+=this._createSelectionPiece(f,p,r,n.left-e.ROUNDED_PIECE_WIDTH,e.ROUNDED_PIECE_WIDTH)}if(r.top===1||r.bottom===1){m+=this._createSelectionPiece(f,p,e.SELECTION_CLASS_NAME,n.left+n.width,e.ROUNDED_PIECE_WIDTH);let t=e.EDITOR_BACKGROUND_CLASS_NAME;r.top===1&&(t+=` `+e.SELECTION_TOP_LEFT),r.bottom===1&&(t+=` `+e.SELECTION_BOTTOM_LEFT),m+=this._createSelectionPiece(f,p,t,n.left+n.width,e.ROUNDED_PIECE_WIDTH)}}let r=e.SELECTION_CLASS_NAME;if(a){let t=n.startStyle,i=n.endStyle;t.top===0&&(r+=` `+e.SELECTION_TOP_LEFT),t.bottom===0&&(r+=` `+e.SELECTION_BOTTOM_LEFT),i.top===0&&(r+=` `+e.SELECTION_TOP_RIGHT),i.bottom===0&&(r+=` `+e.SELECTION_BOTTOM_RIGHT)}h+=this._createSelectionPiece(f,p,r,n.left,n.width)}t[d][0]+=m,t[d][1]+=h}}prepareRender(e){let t=[],n=e.visibleRange.startLineNumber,r=e.visibleRange.endLineNumber;for(let e=n;e<=r;e++){let r=e-n;t[r]=[``,``]}let i=[];for(let r=0,a=this._selections.length;r<a;r++){let a=this._selections[r];if(a.isEmpty()){i[r]=null;continue}let o=this._getVisibleRangesWithStyle(a,e,this._previousFrameVisibleRangesWithStyle[r]);i[r]=o,this._actualRenderOneSelection(t,n,this._selections.length>1,o)}this._previousFrameVisibleRangesWithStyle=i,this._renderResult=t.map(([e,t])=>e+t)}render(e,t){if(!this._renderResult)return``;let n=t-e;return n<0||n>=this._renderResult.length?``:this._renderResult[n]}};me((e,t)=>{let n=e.getColor(Yt);n&&!n.isTransparent()&&t.addRule(`.monaco-editor .view-line span.inline-selected-text { color: ${n}; }`)});function Ol(e){return e<0?-e:e}var kl=class{constructor(e,t,n,r,i,a,o){this.top=e,this.left=t,this.paddingLeft=n,this.width=r,this.height=i,this.textContent=a,this.textContentClassName=o}},Al;(function(e){e[e.Single=0]=`Single`,e[e.MultiPrimary=1]=`MultiPrimary`,e[e.MultiSecondary=2]=`MultiSecondary`})(Al||={});var jl=class{constructor(e,t){this._context=e;let n=this._context.configuration.options,r=n.get(59);this._cursorStyle=n.get(161),this._typicalHalfwidthCharacterWidth=r.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(n.get(37),this._typicalHalfwidthCharacterWidth),this._lineCursorHeight=n.get(38),this._isVisible=!0,this._domNode=B(document.createElement(`div`)),this._domNode.setClassName(`cursor ${Dc}`),this._domNode.setHeight(this._context.viewLayout.getLineHeightForLineNumber(1)),this._domNode.setTop(0),this._domNode.setLeft(0),H(this._domNode,r),this._domNode.setDisplay(`none`),this._position=new b(1,1),this._pluralityClass=``,this.setPlurality(t),this._lastRenderedContent=``,this._renderData=null}getDomNode(){return this._domNode}getPosition(){return this._position}setPlurality(e){switch(e){default:case Al.Single:this._pluralityClass=``;break;case Al.MultiPrimary:this._pluralityClass=`cursor-primary`;break;case Al.MultiSecondary:this._pluralityClass=`cursor-secondary`;break}}show(){this._isVisible||=(this._domNode.setVisibility(`inherit`),!0)}hide(){this._isVisible&&=(this._domNode.setVisibility(`hidden`),!1)}onConfigurationChanged(e){let t=this._context.configuration.options,n=t.get(59);return this._cursorStyle=t.get(161),this._typicalHalfwidthCharacterWidth=n.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(t.get(37),this._typicalHalfwidthCharacterWidth),this._lineCursorHeight=t.get(38),H(this._domNode,n),!0}onCursorPositionChanged(e,t){return t?this._domNode.domNode.style.transitionProperty=`none`:this._domNode.domNode.style.transitionProperty=``,this._position=e,!0}_getGraphemeAwarePosition(){let{lineNumber:e,column:t}=this._position,n=this._context.viewModel.getLineContent(e),[r,i]=ke(n,t-1);return[new b(e,r+1),n.substring(r,i)]}_prepareRender(e){let t=``,n=``,[r,i]=this._getGraphemeAwarePosition(),a=this._context.viewLayout.getLineHeightForLineNumber(r.lineNumber),o=this._lineCursorHeight===0?a:Math.min(a,this._lineCursorHeight),s=(a-o)/2;if(this._cursorStyle===ri.Line||this._cursorStyle===ri.LineThin){let a=e.visibleRangeForPosition(r);if(!a||a.outsideRenderedLine)return null;let c=M(this._domNode.domNode),l;this._cursorStyle===ri.Line?(l=We(c,this._lineCursorWidth>0?this._lineCursorWidth:2),l>2&&(t=i,n=this._getTokenClassName(r))):l=We(c,1);let u=a.left,d=0;return l>=2&&u>=1&&(d=1,u-=d),new kl(e.getVerticalOffsetForLineNumber(r.lineNumber)-e.bigNumbersDelta+s,u,d,l,o,t,n)}let c=e.linesVisibleRangesForRange(new j(r.lineNumber,r.column,r.lineNumber,r.column+i.length),!1);if(!c||c.length===0)return null;let l=c[0];if(l.outsideRenderedLine||l.ranges.length===0)return null;let u=l.ranges[0],d=i===` `||u.width<1?this._typicalHalfwidthCharacterWidth:u.width;this._cursorStyle===ri.Block&&(t=i,n=this._getTokenClassName(r));let f=e.getVerticalOffsetForLineNumber(r.lineNumber)-e.bigNumbersDelta,p=a;return(this._cursorStyle===ri.Underline||this._cursorStyle===ri.UnderlineThin)&&(f+=a-2,p=2),new kl(f,u.left,0,d,p,t,n)}_getTokenClassName(e){let t=this._context.viewModel.getViewLineData(e.lineNumber),n=t.tokens.findTokenIndexAtOffset(e.column-1);return t.tokens.getClassName(n)}prepareRender(e){this._renderData=this._prepareRender(e)}render(e){return this._renderData?(this._lastRenderedContent!==this._renderData.textContent&&(this._lastRenderedContent=this._renderData.textContent,this._domNode.domNode.textContent=this._lastRenderedContent),this._domNode.setClassName(`cursor ${this._pluralityClass} ${Dc} ${this._renderData.textContentClassName}`),this._domNode.setDisplay(`block`),this._domNode.setTop(this._renderData.top),this._domNode.setLeft(this._renderData.left),this._domNode.setPaddingLeft(this._renderData.paddingLeft),this._domNode.setWidth(this._renderData.width),this._domNode.setLineHeight(this._renderData.height),this._domNode.setHeight(this._renderData.height),{domNode:this._domNode.domNode,position:this._position,contentLeft:this._renderData.left,height:this._renderData.height,width:2}):(this._domNode.setDisplay(`none`),null)}},Ml=class e extends ia{static{this.BLINK_INTERVAL=500}constructor(e){super(e);let t=this._context.configuration.options;this._readOnly=t.get(104),this._cursorBlinking=t.get(32),this._cursorStyle=t.get(161),this._cursorSmoothCaretAnimation=t.get(33),this._editContextEnabled=t.get(170),this._selectionIsEmpty=!0,this._isComposingInput=!1,this._isVisible=!1,this._primaryCursor=new jl(this._context,Al.Single),this._secondaryCursors=[],this._renderData=[],this._domNode=B(document.createElement(`div`)),this._domNode.setAttribute(`role`,`presentation`),this._domNode.setAttribute(`aria-hidden`,`true`),this._updateDomClassName(),this._domNode.appendChild(this._primaryCursor.getDomNode()),this._startCursorBlinkAnimation=new xe,this._cursorFlatBlinkInterval=new et,this._blinkingEnabled=!1,this._editorHasFocus=!1,this._updateBlinking()}dispose(){super.dispose(),this._startCursorBlinkAnimation.dispose(),this._cursorFlatBlinkInterval.dispose()}getDomNode(){return this._domNode}onCompositionStart(e){return this._isComposingInput=!0,this._updateBlinking(),!0}onCompositionEnd(e){return this._isComposingInput=!1,this._updateBlinking(),!0}onConfigurationChanged(e){let t=this._context.configuration.options;this._readOnly=t.get(104),this._cursorBlinking=t.get(32),this._cursorStyle=t.get(161),this._cursorSmoothCaretAnimation=t.get(33),this._editContextEnabled=t.get(170),this._updateBlinking(),this._updateDomClassName(),this._primaryCursor.onConfigurationChanged(e);for(let t=0,n=this._secondaryCursors.length;t<n;t++)this._secondaryCursors[t].onConfigurationChanged(e);return!0}_onCursorPositionChanged(e,t,n){let r=this._secondaryCursors.length!==t.length||this._cursorSmoothCaretAnimation===`explicit`&&n!==3;if(this._primaryCursor.setPlurality(t.length?Al.MultiPrimary:Al.Single),this._primaryCursor.onCursorPositionChanged(e,r),this._updateBlinking(),this._secondaryCursors.length<t.length){let e=t.length-this._secondaryCursors.length;for(let t=0;t<e;t++){let e=new jl(this._context,Al.MultiSecondary);this._domNode.domNode.insertBefore(e.getDomNode().domNode,this._primaryCursor.getDomNode().domNode.nextSibling),this._secondaryCursors.push(e)}}else if(this._secondaryCursors.length>t.length){let e=this._secondaryCursors.length-t.length;for(let t=0;t<e;t++)this._domNode.removeChild(this._secondaryCursors[0].getDomNode()),this._secondaryCursors.splice(0,1)}for(let e=0;e<t.length;e++)this._secondaryCursors[e].onCursorPositionChanged(t[e],r)}onCursorStateChanged(e){let t=[];for(let n=0,r=e.selections.length;n<r;n++)t[n]=e.selections[n].getPosition();this._onCursorPositionChanged(t[0],t.slice(1),e.reason);let n=e.selections[0].isEmpty();return this._selectionIsEmpty!==n&&(this._selectionIsEmpty=n,this._updateDomClassName()),!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onFocusChanged(e){return this._editorHasFocus=e.isFocused,this._updateBlinking(),!1}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return!0}onTokensChanged(e){let t=t=>{for(let n=0,r=e.ranges.length;n<r;n++)if(e.ranges[n].fromLineNumber<=t.lineNumber&&t.lineNumber<=e.ranges[n].toLineNumber)return!0;return!1};if(t(this._primaryCursor.getPosition()))return!0;for(let e of this._secondaryCursors)if(t(e.getPosition()))return!0;return!1}onZonesChanged(e){return!0}_getCursorBlinking(){return this._isComposingInput&&!this._editContextEnabled||!this._editorHasFocus?0:this._readOnly?5:this._cursorBlinking}_updateBlinking(){this._startCursorBlinkAnimation.cancel(),this._cursorFlatBlinkInterval.cancel();let t=this._getCursorBlinking(),n=t===0,r=t===5;n?this._hide():this._show(),this._blinkingEnabled=!1,this._updateDomClassName(),!n&&!r&&(t===1?this._cursorFlatBlinkInterval.cancelAndSet(()=>{this._isVisible?this._hide():this._show()},e.BLINK_INTERVAL,M(this._domNode.domNode)):this._startCursorBlinkAnimation.setIfNotSet(()=>{this._blinkingEnabled=!0,this._updateDomClassName()},e.BLINK_INTERVAL))}_updateDomClassName(){this._domNode.setClassName(this._getClassName())}_getClassName(){let e=`cursors-layer`;switch(this._selectionIsEmpty||(e+=` has-selection`),this._cursorStyle){case ri.Line:e+=` cursor-line-style`;break;case ri.Block:e+=` cursor-block-style`;break;case ri.Underline:e+=` cursor-underline-style`;break;case ri.LineThin:e+=` cursor-line-thin-style`;break;case ri.BlockOutline:e+=` cursor-block-outline-style`;break;case ri.UnderlineThin:e+=` cursor-underline-thin-style`;break;default:e+=` cursor-line-style`}if(this._blinkingEnabled)switch(this._getCursorBlinking()){case 1:e+=` cursor-blink`;break;case 2:e+=` cursor-smooth`;break;case 3:e+=` cursor-phase`;break;case 4:e+=` cursor-expand`;break;case 5:e+=` cursor-solid`;break;default:e+=` cursor-solid`}else e+=` cursor-solid`;return(this._cursorSmoothCaretAnimation===`on`||this._cursorSmoothCaretAnimation===`explicit`)&&(e+=` cursor-smooth-caret-animation`),e}_show(){this._primaryCursor.show();for(let e=0,t=this._secondaryCursors.length;e<t;e++)this._secondaryCursors[e].show();this._isVisible=!0}_hide(){this._primaryCursor.hide();for(let e=0,t=this._secondaryCursors.length;e<t;e++)this._secondaryCursors[e].hide();this._isVisible=!1}prepareRender(e){this._primaryCursor.prepareRender(e);for(let t=0,n=this._secondaryCursors.length;t<n;t++)this._secondaryCursors[t].prepareRender(e)}render(e){let t=[],n=0,r=this._primaryCursor.render(e);r&&(t[n++]=r);for(let r=0,i=this._secondaryCursors.length;r<i;r++){let i=this._secondaryCursors[r].render(e);i&&(t[n++]=i)}this._renderData=t}getLastRenderData(){return this._renderData}};me((e,t)=>{let n=[{class:`.cursor`,foreground:Tn,background:bn},{class:`.cursor-primary`,foreground:Xn,background:Mn},{class:`.cursor-secondary`,foreground:Nn,background:_r}];for(let r of n){let n=e.getColor(r.foreground);if(n){let i=e.getColor(r.background);i||=n.opposite(),t.addRule(`.monaco-editor .cursors-layer ${r.class} { background-color: ${n}; border-color: ${n}; color: ${i}; }`),ge(e.type)&&t.addRule(`.monaco-editor .cursors-layer.has-selection ${r.class} { border-left: 1px solid ${i}; border-right: 1px solid ${i}; }`)}}});var Nl=()=>{throw Error(`Invalid change accessor`)},Pl=class extends ia{constructor(e){super(e);let t=this._context.configuration.options,n=t.get(165);this._lineHeight=t.get(75),this._contentWidth=n.contentWidth,this._contentLeft=n.contentLeft,this.domNode=B(document.createElement(`div`)),this.domNode.setClassName(`view-zones`),this.domNode.setPosition(`absolute`),this.domNode.setAttribute(`role`,`presentation`),this.domNode.setAttribute(`aria-hidden`,`true`),this.marginDomNode=B(document.createElement(`div`)),this.marginDomNode.setClassName(`margin-view-zones`),this.marginDomNode.setPosition(`absolute`),this.marginDomNode.setAttribute(`role`,`presentation`),this.marginDomNode.setAttribute(`aria-hidden`,`true`),this._zones={}}dispose(){super.dispose(),this._zones={}}_recomputeWhitespacesProps(){let e=this._context.viewLayout.getWhitespaces(),t=new Map;for(let n of e)t.set(n.id,n);let n=!1;return this._context.viewModel.changeWhitespace(e=>{let r=Object.keys(this._zones);for(let i=0,a=r.length;i<a;i++){let a=r[i],o=this._zones[a],s=this._computeWhitespaceProps(o.delegate);o.isInHiddenArea=s.isInHiddenArea;let c=t.get(a);c&&(c.afterLineNumber!==s.afterViewLineNumber||c.height!==s.heightInPx)&&(e.changeOneWhitespace(a,s.afterViewLineNumber,s.heightInPx),this._safeCallOnComputedHeight(o.delegate,s.heightInPx),n=!0)}}),n}onConfigurationChanged(e){let t=this._context.configuration.options,n=t.get(165);return this._lineHeight=t.get(75),this._contentWidth=n.contentWidth,this._contentLeft=n.contentLeft,e.hasChanged(75)&&this._recomputeWhitespacesProps(),!0}onLineMappingChanged(e){return this._recomputeWhitespacesProps()}onLinesDeleted(e){return!0}onScrollChanged(e){return e.scrollTopChanged||e.scrollWidthChanged}onZonesChanged(e){return!0}onLinesInserted(e){return!0}_getZoneOrdinal(e){return e.ordinal??e.afterColumn??1e4}_computeWhitespaceProps(e){if(e.afterLineNumber===0)return{isInHiddenArea:!1,afterViewLineNumber:0,heightInPx:this._heightInPixels(e),minWidthInPx:this._minWidthInPixels(e)};let t;if(e.afterColumn!==void 0)t=this._context.viewModel.model.validatePosition({lineNumber:e.afterLineNumber,column:e.afterColumn});else{let n=this._context.viewModel.model.validatePosition({lineNumber:e.afterLineNumber,column:1}).lineNumber;t=new b(n,this._context.viewModel.model.getLineMaxColumn(n))}let n;n=t.column===this._context.viewModel.model.getLineMaxColumn(t.lineNumber)?this._context.viewModel.model.validatePosition({lineNumber:t.lineNumber+1,column:1}):this._context.viewModel.model.validatePosition({lineNumber:t.lineNumber,column:t.column+1});let r=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(t,e.afterColumnAffinity,!0),i=e.showInHiddenAreas||this._context.viewModel.coordinatesConverter.modelPositionIsVisible(n);return{isInHiddenArea:!i,afterViewLineNumber:r.lineNumber,heightInPx:i?this._heightInPixels(e):0,minWidthInPx:this._minWidthInPixels(e)}}changeViewZones(e){let t=!1;return this._context.viewModel.changeWhitespace(n=>{let r={addZone:e=>(t=!0,this._addZone(n,e)),removeZone:e=>{e&&(t=this._removeZone(n,e)||t)},layoutZone:e=>{e&&(t=this._layoutZone(n,e)||t)}};Fl(e,r),r.addZone=Nl,r.removeZone=Nl,r.layoutZone=Nl}),t}_addZone(e,t){let n=this._computeWhitespaceProps(t),r={whitespaceId:e.insertWhitespace(n.afterViewLineNumber,this._getZoneOrdinal(t),n.heightInPx,n.minWidthInPx),delegate:t,isInHiddenArea:n.isInHiddenArea,isVisible:!1,domNode:B(t.domNode),marginDomNode:t.marginDomNode?B(t.marginDomNode):null};return this._safeCallOnComputedHeight(r.delegate,n.heightInPx),r.domNode.setPosition(`absolute`),r.domNode.domNode.style.width=`100%`,r.domNode.setDisplay(`none`),r.domNode.setAttribute(`monaco-view-zone`,r.whitespaceId),this.domNode.appendChild(r.domNode),r.marginDomNode&&(r.marginDomNode.setPosition(`absolute`),r.marginDomNode.domNode.style.width=`100%`,r.marginDomNode.setDisplay(`none`),r.marginDomNode.setAttribute(`monaco-view-zone`,r.whitespaceId),this.marginDomNode.appendChild(r.marginDomNode)),this._zones[r.whitespaceId]=r,this.setShouldRender(),r.whitespaceId}_removeZone(e,t){if(this._zones.hasOwnProperty(t)){let n=this._zones[t];return delete this._zones[t],e.removeWhitespace(n.whitespaceId),n.domNode.removeAttribute(`monaco-visible-view-zone`),n.domNode.removeAttribute(`monaco-view-zone`),n.domNode.domNode.remove(),n.marginDomNode&&(n.marginDomNode.removeAttribute(`monaco-visible-view-zone`),n.marginDomNode.removeAttribute(`monaco-view-zone`),n.marginDomNode.domNode.remove()),this.setShouldRender(),!0}return!1}_layoutZone(e,t){if(this._zones.hasOwnProperty(t)){let n=this._zones[t],r=this._computeWhitespaceProps(n.delegate);return n.isInHiddenArea=r.isInHiddenArea,e.changeOneWhitespace(n.whitespaceId,r.afterViewLineNumber,r.heightInPx),this._safeCallOnComputedHeight(n.delegate,r.heightInPx),this.setShouldRender(),!0}return!1}shouldSuppressMouseDownOnViewZone(e){return this._zones.hasOwnProperty(e)?!!this._zones[e].delegate.suppressMouseDown:!1}_heightInPixels(e){return typeof e.heightInPx==`number`?e.heightInPx:typeof e.heightInLines==`number`?this._lineHeight*e.heightInLines:this._lineHeight}_minWidthInPixels(e){return typeof e.minWidthInPx==`number`?e.minWidthInPx:0}_safeCallOnComputedHeight(e,t){if(typeof e.onComputedHeight==`function`)try{e.onComputedHeight(t)}catch(e){Se(e)}}_safeCallOnDomNodeTop(e,t){if(typeof e.onDomNodeTop==`function`)try{e.onDomNodeTop(t)}catch(e){Se(e)}}prepareRender(e){}render(e){let t=e.viewportData.whitespaceViewportData,n={},r=!1;for(let e of t)this._zones[e.id].isInHiddenArea||(n[e.id]=e,r=!0);let i=Object.keys(this._zones);for(let t=0,r=i.length;t<r;t++){let r=i[t],a=this._zones[r],o=0,s=0,c=`none`;n.hasOwnProperty(r)?(o=n[r].verticalOffset-e.bigNumbersDelta,s=n[r].height,c=`block`,a.isVisible||=(a.domNode.setAttribute(`monaco-visible-view-zone`,`true`),!0),this._safeCallOnDomNodeTop(a.delegate,e.getScrolledTopFromAbsoluteTop(n[r].verticalOffset))):(a.isVisible&&=(a.domNode.removeAttribute(`monaco-visible-view-zone`),!1),this._safeCallOnDomNodeTop(a.delegate,e.getScrolledTopFromAbsoluteTop(-1e6))),a.domNode.setTop(o),a.domNode.setHeight(s),a.domNode.setDisplay(c),a.marginDomNode&&(a.marginDomNode.setTop(o),a.marginDomNode.setHeight(s),a.marginDomNode.setDisplay(c))}r&&(this.domNode.setWidth(Math.max(e.scrollWidth,this._contentWidth)),this.marginDomNode.setWidth(this._contentLeft))}};function Fl(e,t){try{return e(t)}catch(e){Se(e);return}}var Il=class extends uc{constructor(e){super(),this._context=e,this._options=new Ll(this._context.configuration),this._selection=[],this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){let t=new Ll(this._context.configuration);return this._options.equals(t)?e.hasChanged(165):(this._options=t,!0)}onCursorStateChanged(e){return this._selection=e.selections,this._options.renderWhitespace===`selection`}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}prepareRender(e){if(this._options.renderWhitespace===`none`){this._renderResult=null;return}let t=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber-t+1,r=Array(n);for(let e=0;e<n;e++)r[e]=!0;this._renderResult=[];for(let t=e.viewportData.startLineNumber;t<=e.viewportData.endLineNumber;t++){let n=t-e.viewportData.startLineNumber,r=this._context.viewModel.getViewLineRenderingData(t),i=null;if(this._options.renderWhitespace===`selection`){let e=this._selection;for(let n of e){if(n.endLineNumber<t||n.startLineNumber>t)continue;let e=n.startLineNumber===t?n.startColumn:r.minColumn,a=n.endLineNumber===t?n.endColumn:r.maxColumn;e<a&&(i||=[],i.push(new I(e-1,a-1)))}}this._renderResult[n]=this._applyRenderWhitespace(e,t,i,r)}}_applyRenderWhitespace(e,t,n,r){if(r.hasVariableFonts||this._options.renderWhitespace===`selection`&&!n||this._options.renderWhitespace===`trailing`&&r.continuesWithWrappedLine)return``;let i=this._context.theme.getColor(In),a=this._options.renderWithSVG,o=r.content,s=this._options.stopRenderingLineAfter===-1?o.length:Math.min(this._options.stopRenderingLineAfter,o.length),c=r.continuesWithWrappedLine,l=r.minColumn-1,u=this._options.renderWhitespace===`boundary`,d=this._options.renderWhitespace===`trailing`,f=e.getLineHeightForLineNumber(t),p=this._options.middotWidth,m=this._options.wsmiddotWidth,h=this._options.spaceWidth,g=Math.abs(m-h)<Math.abs(p-h)?11825:183,_=this._options.canUseHalfwidthRightwardsArrow,v=``,y=!1,x=ue(o),S;x===-1?(y=!0,x=s,S=s):S=Pe(o);let C=0,w=n&&n[C],T=0;for(let r=l;r<s;r++){let i=o.charCodeAt(r);if(w&&w.endExclusive<=r&&(C++,w=n&&n[C]),i!==9&&i!==32||d&&!y&&r<=S)continue;if(u&&r>=x&&r<=S&&i===32){let e=r-1>=0?o.charCodeAt(r-1):0,t=r+1<s?o.charCodeAt(r+1):0;if(e!==32&&t!==32)continue}if(u&&c&&r===s-1){let e=r-1>=0?o.charCodeAt(r-1):0;if(i===32&&e!==32&&e!==9)continue}if(n&&!(w&&w.start<=r&&r<w.endExclusive))continue;let l=e.visibleRangeForPosition(new b(t,r+1));l&&(a?(T=Math.max(T,l.left),i===9?v+=this._renderArrow(f,h,l.left):v+=`<circle cx="${(l.left+h/2).toFixed(2)}" cy="${(f/2).toFixed(2)}" r="${(h/7).toFixed(2)}" />`):i===9?v+=`<div class="mwh" style="left:${l.left}px;height:${f}px;">${_?`→`:`→`}</div>`:v+=`<div class="mwh" style="left:${l.left}px;height:${f}px;">${String.fromCharCode(g)}</div>`)}return a?(T=Math.round(T+h),`<svg style="bottom:0;position:absolute;width:${T}px;height:${f}px" viewBox="0 0 ${T} ${f}" xmlns="http://www.w3.org/2000/svg" fill="${i}">`+v+`</svg>`):v}_renderArrow(e,t,n){let r=t/7,i=t,a=e/2,o=n,s={x:0,y:r/2},c={x:100/125*i,y:s.y},l={x:c.x-.2*c.x,y:c.y+.2*c.x},u={x:l.x+.1*c.x,y:l.y+.1*c.x},d={x:u.x+.35*c.x,y:u.y-.35*c.x};return`<path d="M ${[s,c,l,u,d,{x:d.x,y:-d.y},{x:u.x,y:-u.y},{x:l.x,y:-l.y},{x:c.x,y:-c.y},{x:s.x,y:-s.y}].map(e=>`${(o+e.x).toFixed(2)} ${(a+e.y).toFixed(2)}`).join(` L `)}" />`}render(e,t){if(!this._renderResult)return``;let n=t-e;return n<0||n>=this._renderResult.length?``:this._renderResult[n]}},Ll=class{constructor(e){let t=e.options,n=t.get(59),r=t.get(47);r===`off`?(this.renderWhitespace=`none`,this.renderWithSVG=!1):r===`svg`?(this.renderWhitespace=t.get(113),this.renderWithSVG=!0):(this.renderWhitespace=t.get(113),this.renderWithSVG=!1),this.spaceWidth=n.spaceWidth,this.middotWidth=n.middotWidth,this.wsmiddotWidth=n.wsmiddotWidth,this.canUseHalfwidthRightwardsArrow=n.canUseHalfwidthRightwardsArrow,this.lineHeight=t.get(75),this.stopRenderingLineAfter=t.get(133)}equals(e){return this.renderWhitespace===e.renderWhitespace&&this.renderWithSVG===e.renderWithSVG&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.wsmiddotWidth===e.wsmiddotWidth&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.lineHeight===e.lineHeight&&this.stopRenderingLineAfter===e.stopRenderingLineAfter}},Rl=class{constructor(e,t,n,r){this.selections=e,this.startLineNumber=t.startLineNumber|0,this.endLineNumber=t.endLineNumber|0,this.relativeVerticalOffset=t.relativeVerticalOffset,this.bigNumbersDelta=t.bigNumbersDelta|0,this.lineHeight=t.lineHeight|0,this.whitespaceViewportData=n,this._model=r,this.visibleRange=new j(t.startLineNumber,this._model.getLineMinColumn(t.startLineNumber),t.endLineNumber,this._model.getLineMaxColumn(t.endLineNumber))}getViewLineRenderingData(e){return this._model.getViewportViewLineRenderingData(this.visibleRange,e)}getDecorationsInViewport(){return this._model.getDecorationsInViewport(this.visibleRange)}},zl=class{get type(){return this._theme.type}get value(){return this._theme}constructor(e){this._theme=e}update(e){this._theme=e}getColor(e){return this._theme.getColor(e)}},Bl=class{constructor(e,t,n){this.configuration=e,this.theme=new zl(t),this.viewModel=n,this.viewLayout=n.viewLayout}addEventHandler(e){this.viewModel.addViewEventHandler(e)}removeEventHandler(e){this.viewModel.removeViewEventHandler(e)}},Vl=new Float32Array([1,0,1,1,0,1,0,0,0,1,1,0]);function Hl(e){if(!e)throw Error(`Value "${e}" cannot be null`);return e}function Ul(e,t,n){let r=new t.ResizeObserver(t=>{let i=t.find(t=>t.target===e);if(!i)return;if(!(`devicePixelContentBoxSize`in i)){r?.disconnect(),r=void 0;return}let a=i.devicePixelContentBoxSize[0].inlineSize,o=i.devicePixelContentBoxSize[0].blockSize;a>0&&o>0&&n(a,o)});try{r.observe(e,{box:[`device-pixel-content-box`]})}catch{throw r.disconnect(),r=void 0,new A(`Could not observe device pixel dimensions`)}return x(()=>r?.disconnect())}var Wl=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},Gl=0,Kl=class extends i{get cacheKey(){return`${this.fontFamily}_${this.fontSize}px`}constructor(e,t,n,r){super(),this.fontSize=e,this.fontFamily=t,this.devicePixelRatio=n,this._decorationStyleCache=r,this.id=Gl++,this._workGlyph={source:null,boundingBox:{left:0,bottom:0,right:0,top:0},originOffset:{x:0,y:0},fontBoundingBoxAscent:0,fontBoundingBoxDescent:0},this._workGlyphConfig={chars:void 0,tokenMetadata:0,decorationStyleSetId:0},this._antiAliasing=oe?`greyscale`:`subpixel`;let i=Math.ceil(this.fontSize*n);this._canvas=new OffscreenCanvas(i*3,i*3),this._ctx=Hl(this._canvas.getContext(`2d`,{willReadFrequently:!0,alpha:this._antiAliasing===`greyscale`})),this._ctx.textBaseline=`top`,this._ctx.fillStyle=`#FFFFFF`,this._ctx.font=`${i}px ${this.fontFamily}`,this._textMetrics=this._ctx.measureText(`A`)}rasterizeGlyph(e,t,n,r){return e===``?{source:this._canvas,boundingBox:{top:0,left:0,bottom:-1,right:-1},originOffset:{x:0,y:0},fontBoundingBoxAscent:0,fontBoundingBoxDescent:0}:this._workGlyphConfig.chars===e&&this._workGlyphConfig.tokenMetadata===t&&this._workGlyphConfig.decorationStyleSetId===n?this._workGlyph:(this._workGlyphConfig.chars=e,this._workGlyphConfig.tokenMetadata=t,this._workGlyphConfig.decorationStyleSetId=n,this._rasterizeGlyph(e,t,n,r))}_rasterizeGlyph(e,t,n,r){let i=Math.ceil(this.fontSize*this.devicePixelRatio),a=i*3;this._canvas.width!==a&&(this._canvas.width=a,this._canvas.height=a),this._ctx.save();let o=(t&15)/10,s=r[Kt.getBackground(t)],c=this._decorationStyleCache.getStyleSet(n);this._antiAliasing===`subpixel`?(this._ctx.fillStyle=s,this._ctx.fillRect(0,0,this._canvas.width,this._canvas.height)):this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height);let l=new er(200),u=Kt.getFontStyle(t);u&1&&l.appendString(`italic `),c?.bold===void 0?u&2&&l.appendString(`bold `):c.bold&&l.appendString(`bold `),l.appendString(`${i}px ${this.fontFamily}`),this._ctx.font=l.build();let d=i,f=i;c?.color===void 0?this._ctx.fillStyle=r[Kt.getForeground(t)]:this._ctx.fillStyle=`#${c.color.toString(16).padStart(8,`0`)}`,this._ctx.textBaseline=`top`,c?.opacity!==void 0&&(this._ctx.globalAlpha=c.opacity),this._ctx.fillText(e,d+o,f),this._ctx.restore();let p=this._ctx.getImageData(0,0,this._canvas.width,this._canvas.height);if(this._antiAliasing===`subpixel`){let e=parseInt(s.substring(1,3),16),t=parseInt(s.substring(3,5),16),n=parseInt(s.substring(5,7),16);this._clearColor(p,e,t,n),this._ctx.putImageData(p,0,0)}return this._findGlyphBoundingBox(p,this._workGlyph.boundingBox),this._workGlyph.source=this._canvas,this._workGlyph.originOffset.x=this._workGlyph.boundingBox.left-d,this._workGlyph.originOffset.y=this._workGlyph.boundingBox.top-f,this._workGlyph.fontBoundingBoxAscent=this._textMetrics.fontBoundingBoxAscent,this._workGlyph.fontBoundingBoxDescent=this._textMetrics.fontBoundingBoxDescent,this._workGlyph}_clearColor(e,t,n,r){for(let i=0;i<e.data.length;i+=4)e.data[i]===t&&e.data[i+1]===n&&e.data[i+2]===r&&(e.data[i+3]=0)}_findGlyphBoundingBox(e,t){let n=this._canvas.height,r=this._canvas.width,i=!1;for(let a=0;a<n;a++){for(let n=0;n<r;n++){let o=a*r*4+n*4+3;if(e.data[o]!==0){t.top=a,i=!0;break}}if(i)break}t.left=0,i=!1;for(let a=0;a<r;a++){for(let o=0;o<n;o++){let n=o*r*4+a*4+3;if(e.data[n]!==0){t.left=a,i=!0;break}}if(i)break}t.right=r,i=!1;for(let a=r-1;a>=t.left;a--){for(let o=0;o<n;o++){let n=o*r*4+a*4+3;if(e.data[n]!==0){t.right=a,i=!0;break}}if(i)break}t.bottom=t.top,i=!1;for(let a=n-1;a>=0;a--){for(let n=0;n<r;n++){let o=a*r*4+n*4+3;if(e.data[o]!==0){t.bottom=a,i=!0;break}}if(i)break}}getTextMetrics(e){return this._ctx.measureText(e)}};Wl([Fr],Kl.prototype,`cacheKey`,null);var ql=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},Jl=function(e,t){return function(n,r){t(n,r,e)}},Yl=class extends i{constructor(e){super(),this._logService=e,this._tasks=[],this._i=0,this._register(x(()=>this.clear()))}enqueue(e){this._tasks.push(e),this._start()}clear(){this._idleCallback&&=(this._cancelCallback(this._idleCallback),void 0),this._i=0,this._tasks.length=0}_start(){this._idleCallback||=this._requestCallback(this._process.bind(this))}_process(e){this._idleCallback=void 0;let t=0,n=0,r=e.timeRemaining(),i=0;for(;this._i<this._tasks.length;){if(t=Date.now(),this._tasks[this._i]()||this._i++,t=Math.max(1,Date.now()-t),n=Math.max(t,n),i=e.timeRemaining(),n*1.5>i){r-t<-20&&this._logService.warn(`task queue exceeded allotted deadline by ${Math.abs(Math.round(r-t))}ms`),this._start();return}r=i}this.clear()}};Yl=ql([Jl(0,p)],Yl);var Xl=class extends Yl{_requestCallback(e){return F().setTimeout(()=>e(this._createDeadline(16)))}_cancelCallback(e){F().clearTimeout(e)}_createDeadline(e){let t=Date.now()+e;return{timeRemaining:()=>Math.max(0,t-Date.now())}}},Zl=class extends Yl{_requestCallback(e){return F().requestIdleCallback(e)}_cancelCallback(e){F().cancelIdleCallback(e)}},Ql=`requestIdleCallback`in F()?Zl:Xl,$l=class{constructor(e,t){this._canvas=e,this._textureIndex=t,this._currentRow={x:0,y:0,h:0},this._allocatedGlyphs=new Set,this._nextIndex=0,this._ctx=Hl(this._canvas.getContext(`2d`,{willReadFrequently:!0}))}allocate(e){let t=e.boundingBox.right-e.boundingBox.left+1,n=e.boundingBox.bottom-e.boundingBox.top+1;if(t>this._canvas.width||n>this._canvas.height)throw new A(`Glyph is too large for the atlas page`);if(e.boundingBox.right-e.boundingBox.left+1>this._canvas.width-this._currentRow.x&&(this._currentRow.x=0,this._currentRow.y+=this._currentRow.h,this._currentRow.h=1),this._currentRow.y+e.boundingBox.bottom-e.boundingBox.top+1>this._canvas.height)return;this._ctx.drawImage(e.source,e.boundingBox.left,e.boundingBox.top,t,n,this._currentRow.x,this._currentRow.y,t,n);let r={pageIndex:this._textureIndex,glyphIndex:this._nextIndex++,x:this._currentRow.x,y:this._currentRow.y,w:t,h:n,originOffsetX:e.originOffset.x,originOffsetY:e.originOffset.y,fontBoundingBoxAscent:e.fontBoundingBoxAscent,fontBoundingBoxDescent:e.fontBoundingBoxDescent};return this._currentRow.x+=t,this._currentRow.h=Math.max(this._currentRow.h,n),this._allocatedGlyphs.add(r),r}getUsagePreview(){let e=this._canvas.width,t=this._canvas.height,n=new OffscreenCanvas(e,t),r=Hl(n.getContext(`2d`));r.fillStyle=`#808080`,r.fillRect(0,0,e,t);let i=new Map,a=new Map;for(let e of this._allocatedGlyphs)i.set(e.y,Math.max(i.get(e.y)??0,e.h)),a.set(e.y,Math.max(a.get(e.y)??0,e.x+e.w));for(let e of this._allocatedGlyphs)r.fillStyle=`#4040FF`,r.fillRect(e.x,e.y,e.w,e.h),r.fillStyle=`#FF0000`,r.fillRect(e.x,e.y+e.h,e.w,i.get(e.y)-e.h);for(let[t,n]of a.entries())t!==this._currentRow.y&&(r.fillStyle=`#FF0000`,r.fillRect(n,t,e-n,i.get(t)));return n.convertToBlob()}getStats(){let e=this._canvas.width,t=this._canvas.height,n=0,r=0,i=e*t,a=new Map,o=new Map;for(let e of this._allocatedGlyphs)a.set(e.y,Math.max(a.get(e.y)??0,e.h)),o.set(e.y,Math.max(o.get(e.y)??0,e.x+e.w));for(let e of this._allocatedGlyphs)n+=e.w*e.h,r+=e.w*(a.get(e.y)-e.h);for(let[t,n]of o.entries())t!==this._currentRow.y&&(r+=(e-n)*a.get(t));return[`page${this._textureIndex}:`,` Total: ${i} (${e}x${t})`,` Used: ${n} (${(n/i*100).toPrecision(2)}%)`,` Wasted: ${r} (${(r/i*100).toPrecision(2)}%)`,`Efficiency: ${(n/(n+r)*100).toPrecision(2)}%`].join(`
`)}},eu=class{constructor(e,t,n){this._canvas=e,this._textureIndex=t,this._slabs=[],this._activeSlabsByDims=new ye,this._unusedRects=[],this._openRegionsByHeight=new Map,this._openRegionsByWidth=new Map,this._allocatedGlyphs=new Set,this._nextIndex=0,this._ctx=Hl(this._canvas.getContext(`2d`,{willReadFrequently:!0})),this._slabW=Math.min(n?.slabW??64<<Math.max(Math.floor(F().devicePixelRatio)-1,0),this._canvas.width),this._slabH=Math.min(n?.slabH??this._slabW,this._canvas.height),this._slabsPerRow=Math.floor(this._canvas.width/this._slabW),this._slabsPerColumn=Math.floor(this._canvas.height/this._slabH)}allocate(e){let t=e.boundingBox.right-e.boundingBox.left+1,n=e.boundingBox.bottom-e.boundingBox.top+1;if(t>this._canvas.width||n>this._canvas.height)throw new A(`Glyph is too large for the atlas page`);if(t>this._slabW||n>this._slabH){if(this._allocatedGlyphs.size>0)return;let e=this._canvas.width;for(;t<e/2&&n<e/2;)e/=2;this._slabW=e,this._slabH=e,this._slabsPerRow=Math.floor(this._canvas.width/this._slabW),this._slabsPerColumn=Math.floor(this._canvas.height/this._slabH)}let r={w:t,h:n},i=this._activeSlabsByDims.get(r.w,r.h);if(i){let e=Math.floor(this._slabW/i.entryW)*Math.floor(this._slabH/i.entryH);i.count>=e&&(i=void 0)}let a,o;if(!i)if(t<n){let e=this._openRegionsByWidth.get(t);if(e?.length)for(let r=e.length-1;r>=0;r--){let i=e[r];if(i.w>=t&&i.h>=n){a=i.x,o=i.y,t<i.w&&this._unusedRects.push({x:i.x+t,y:i.y,w:i.w-t,h:n}),i.y+=n,i.h-=n,i.h===0&&(r===e.length-1?e.pop():this._unusedRects.splice(r,1));break}}}else{let e=this._openRegionsByHeight.get(n);if(e?.length)for(let r=e.length-1;r>=0;r--){let i=e[r];if(i.w>=t&&i.h>=n){a=i.x,o=i.y,n<i.h&&this._unusedRects.push({x:i.x,y:i.y+n,w:t,h:i.h-n}),i.x+=t,i.w-=t,i.h===0&&(r===e.length-1?e.pop():this._unusedRects.splice(r,1));break}}}if(a===void 0||o===void 0){if(!i){if(this._slabs.length>=this._slabsPerRow*this._slabsPerColumn)return;i={x:Math.floor(this._slabs.length%this._slabsPerRow)*this._slabW,y:Math.floor(this._slabs.length/this._slabsPerRow)*this._slabH,entryW:r.w,entryH:r.h,count:0};let e=this._slabW%i.entryW,t=this._slabH%i.entryH;e&&tu(this._openRegionsByWidth,e,{x:i.x+this._slabW-e,w:e,y:i.y,h:this._slabH-(t??0)}),t&&tu(this._openRegionsByHeight,t,{x:i.x,w:this._slabW,y:i.y+this._slabH-t,h:t}),this._slabs.push(i),this._activeSlabsByDims.set(i,r.w,r.h)}let e=Math.floor(this._slabW/i.entryW);a=i.x+Math.floor(i.count%e)*i.entryW,o=i.y+Math.floor(i.count/e)*i.entryH,i.count++}this._ctx.drawImage(e.source,e.boundingBox.left,e.boundingBox.top,t,n,a,o,t,n);let s={pageIndex:this._textureIndex,glyphIndex:this._nextIndex++,x:a,y:o,w:t,h:n,originOffsetX:e.originOffset.x,originOffsetY:e.originOffset.y,fontBoundingBoxAscent:e.fontBoundingBoxAscent,fontBoundingBoxDescent:e.fontBoundingBoxDescent};return this._allocatedGlyphs.add(s),s}getUsagePreview(){let e=this._canvas.width,t=this._canvas.height,n=new OffscreenCanvas(e,t),r=Hl(n.getContext(`2d`));r.fillStyle=`#808080`,r.fillRect(0,0,e,t);let i=0,a=0,o=0,s=64<<Math.floor(F().devicePixelRatio)-1,c=s;for(let e of this._slabs){let t=0,n=0;for(let a=0;a<e.count;a++)t+e.entryW>s&&(t=0,n+=e.entryH),r.fillStyle=`#FF0000`,r.fillRect(e.x+t,e.y+n,e.entryW,e.entryH),i+=e.entryW*e.entryH,t+=e.entryW;let a=Math.floor(s/e.entryW),o=Math.floor(c/e.entryH);e.entryW*a*e.entryH*o}for(let e of this._allocatedGlyphs)a+=e.w*e.h,r.fillStyle=`#4040FF`,r.fillRect(e.x,e.y,e.w,e.h);let l=Array.from(this._openRegionsByWidth.values()).flat().concat(Array.from(this._openRegionsByHeight.values()).flat());for(let e of l)r.fillStyle=`#FF000088`,r.fillRect(e.x,e.y,e.w,e.h),o+=e.w*e.h;return r.globalAlpha=.5,r.drawImage(this._canvas,0,0),r.globalAlpha=1,n.convertToBlob()}getStats(){let e=this._canvas.width,t=this._canvas.height,n=0,r=0,i=0,a=0,o=0,s=e*t,c=64<<Math.floor(F().devicePixelRatio)-1,l=c;for(let e of this._slabs){let t=0,r=0;for(let i=0;i<e.count;i++)t+e.entryW>c&&(t=0,r+=e.entryH),n+=e.entryW*e.entryH,t+=e.entryW;let a=Math.floor(c/e.entryW),o=Math.floor(l/e.entryH),s=e.entryW*a*e.entryH*o;i+=c*l-s}for(let e of this._allocatedGlyphs)r+=e.w*e.h;let u=Array.from(this._openRegionsByWidth.values()).flat().concat(Array.from(this._openRegionsByHeight.values()).flat());for(let e of u)o+=e.w*e.h;let d=i-o;a=n-(r-d);let f=r/(r+a+o);return[`page[${this._textureIndex}]:`,` Total: ${s}px (${e}x${t})`,` Used: ${r}px (${(r/s*100).toFixed(2)}%)`,` Wasted: ${a}px (${(a/s*100).toFixed(2)}%)`,`Restricted: ${o}px (${(o/s*100).toFixed(2)}%) (hard to allocate)`,`Efficiency: ${f===1?`100`:(f*100).toFixed(2)}%`,` Slabs: ${this._slabs.length} of ${Math.floor(this._canvas.width/c)*Math.floor(this._canvas.height/l)}`].join(`
`)}};function tu(e,t,n){let r=e.get(t);r||(r=[],e.set(t,r)),r.push(n)}var nu=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},ru=function(e,t){return function(n,r){t(n,r,e)}},iu,au=class extends i{static{iu=this}get version(){return this._version}static{this.maximumGlyphCount=5e3}get usedArea(){return this._usedArea}get source(){return this._canvas}get glyphs(){return this._glyphInOrderSet.values()}constructor(e,t,n,r,i){switch(super(),this._logService=r,this._version=0,this._usedArea={left:0,top:0,right:0,bottom:0},this._glyphMap=new ye,this._glyphInOrderSet=new Set,this._canvas=new OffscreenCanvas(t,t),this._colorMap=i.getColorTheme().tokenColorMap,n){case`shelf`:this._allocator=new $l(this._canvas,e);break;case`slab`:this._allocator=new eu(this._canvas,e);break;default:this._allocator=n(this._canvas,e);break}this._register(x(()=>{this._canvas.width=1,this._canvas.height=1}))}getGlyph(e,t,n,r){return this._glyphMap.get(t,n,r,e.cacheKey)??this._createGlyph(e,t,n,r)}_createGlyph(e,t,n,r){if(this._glyphInOrderSet.size>=iu.maximumGlyphCount)return;let i=e.rasterizeGlyph(t,n,r,this._colorMap),a=this._allocator.allocate(i);if(a!==void 0)return this._glyphMap.set(a,t,n,r,e.cacheKey),this._glyphInOrderSet.add(a),this._version++,this._usedArea.right=Math.max(this._usedArea.right,a.x+a.w-1),this._usedArea.bottom=Math.max(this._usedArea.bottom,a.y+a.h-1),this._logService.getLevel()===te.Trace&&this._logService.trace(`New glyph`,{chars:t,tokenMetadata:n,decorationStyleSetId:r,rasterizedGlyph:i,glyph:a}),a}getUsagePreview(){return this._allocator.getUsagePreview()}getStats(){return this._allocator.getStats()}};au=iu=nu([ru(3,p),ru(4,le)],au);var ou=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},su=function(e,t){return function(n,r){t(n,r,e)}},cu,lu=class extends i{static{cu=this}static{this.maximumPageCount=16}get pages(){return this._pages}constructor(e,n,r,i,a){super(),this._maxTextureSize=e,this._decorationStyleCache=r,this._themeService=i,this._instantiationService=a,this._warmUpTask=this._register(new o),this._warmedUpRasterizers=new Set,this._pages=[],this._glyphPageIndex=new ye,this._onDidDeleteGlyphs=this._register(new k),this.onDidDeleteGlyphs=this._onDidDeleteGlyphs.event,this._allocatorType=n?.allocatorType??`slab`,this._register(Te.runAndSubscribe(this._themeService.onDidColorThemeChange,()=>{this._colorMap&&this.clear(),this._colorMap=this._themeService.getColorTheme().tokenColorMap}));let s=Math.max(1,Math.floor(F().devicePixelRatio));this.pageSize=Math.min(1024*s,this._maxTextureSize),this._initFirstPage(),this._register(x(()=>t(this._pages)))}_initFirstPage(){let e=this._instantiationService.createInstance(au,0,this.pageSize,this._allocatorType);this._pages.push(e);let t=new Kl(1,``,1,this._decorationStyleCache);e.getGlyph(t,``,0,0),t.dispose()}clear(){for(let e of this._pages)e.dispose();this._pages.length=0,this._glyphPageIndex.clear(),this._warmedUpRasterizers.clear(),this._warmUpTask.clear(),this._initFirstPage(),this._onDidDeleteGlyphs.fire()}getGlyph(e,t,n,r,i){return n&=-2048,n|=Math.floor(i%1*10),this._warmedUpRasterizers.has(e.id)||(this._warmUpAtlas(e),this._warmedUpRasterizers.add(e.id)),this._tryGetGlyph(this._glyphPageIndex.get(t,n,r,e.cacheKey)??0,e,t,n,r)}_tryGetGlyph(e,t,n,r,i){return this._glyphPageIndex.set(e,n,r,i,t.cacheKey),this._pages[e].getGlyph(t,n,r,i)??(e+1<this._pages.length?this._tryGetGlyph(e+1,t,n,r,i):void 0)??this._getGlyphFromNewPage(t,n,r,i)}_getGlyphFromNewPage(e,t,n,r){if(this._pages.length>=cu.maximumPageCount)throw Error(`Attempt to create a texture atlas page past the limit ${cu.maximumPageCount}`);return this._pages.push(this._instantiationService.createInstance(au,this._pages.length,this.pageSize,this._allocatorType)),this._glyphPageIndex.set(this._pages.length-1,t,n,r,e.cacheKey),this._pages[this._pages.length-1].getGlyph(e,t,n,r)}getStats(){return this._pages.map(e=>e.getStats())}_warmUpAtlas(e){let t=this._colorMap;if(!t)throw new A(`Cannot warm atlas without color map`);this._warmUpTask.value?.clear();let n=this._warmUpTask.value=this._instantiationService.createInstance(Ql);for(let r=65;r<=90;r++)for(let i of t.keys())n.enqueue(()=>{for(let t=0;t<1;t+=.1)this.getGlyph(e,String.fromCharCode(r),i<<15&16744448,0,t)});for(let r=97;r<=122;r++)for(let i of t.keys())n.enqueue(()=>{for(let t=0;t<1;t+=.1)this.getGlyph(e,String.fromCharCode(r),i<<15&16744448,0,t)});for(let r=33;r<=126;r++)for(let i of t.keys())n.enqueue(()=>{for(let t=0;t<1;t+=.1)this.getGlyph(e,String.fromCharCode(r),i<<15&16744448,0,t)})}};lu=cu=ou([su(3,le),su(4,Pt)],lu);var uu;(function(e){async function t(e){try{if(!navigator.gpu)throw Error(`This browser does not support WebGPU`);let e=await navigator.gpu.requestAdapter();if(!e)throw Error(`This browser supports WebGPU but it appears to be disabled`);return du(await e.requestDevice())}catch(t){throw e&&e(t.message),t}}e.requestDevice=t;function r(e,t,r){let i=e.createBuffer(t);return r&&e.queue.writeBuffer(i,0,n(r)?r():r),du(i)}e.createBuffer=r;function i(e,t){return du(e.createTexture(t))}e.createTexture=i})(uu||={});function du(e){return{object:e,dispose:()=>e.destroy()}}var fu=class{get dataOffset(){return this._startIndex}get dirtySize(){if(!(this._startIndex===void 0||this._endIndex===void 0))return this._endIndex-this._startIndex+1}get isDirty(){return this._startIndex!==void 0}flag(e,t=1){return this._flag(e),t>1&&this._flag(e+t-1),e}_flag(e){(this._startIndex===void 0||e<this._startIndex)&&(this._startIndex=e),(this._endIndex===void 0||e>this._endIndex)&&(this._endIndex=e)}clear(){this._startIndex=void 0,this._endIndex=void 0}};function pu(e,t){return new mu(e,t)}var mu=class extends i{get entryCount(){return this._entries.size}get dirtyTracker(){return this._dirtyTracker}constructor(e,n){super(),this.propertySpecs=e,this.capacity=n,this._dirtyTracker=new fu,this._propertySpecsMap=new Map,this._entries=new T,this._onDidChange=this._register(new k),this._onDidChangeBuffer=this._register(new k),this.onDidChangeBuffer=this._onDidChangeBuffer.event,this.view=new Float32Array(n*e.length),this.buffer=this.view.buffer,this._entrySize=e.length;for(let t=0;t<e.length;t++){let n={offset:t,...e[t]};this._propertySpecsMap.set(n.name,n)}this._register(x(()=>t(this._entries)))}createEntry(e){this._entries.size===this.capacity&&(this._expandBuffer(),this._onDidChangeBuffer.fire());let n=new hu(this.view,this._propertySpecsMap,this._dirtyTracker,this._entries.size,e),r=this._entries.push(n),i=[];return i.push(Te.forward(n.onDidChange,this._onDidChange)),i.push(n.onWillDispose(()=>{let e=n.i;r(),this.view.set(this.view.subarray(e*this._entrySize+2,this._entries.size*this._entrySize+2),e*this._entrySize);for(let t of this._entries)t.i>e&&t.i--;this._dirtyTracker.flag(e,(this._entries.size-e)*this._entrySize),t(i)})),n}_expandBuffer(){this.capacity*=2;let e=new Float32Array(this.capacity*this._entrySize);e.set(this.view),this.view=e,this.buffer=this.view.buffer}},hu=class extends i{constructor(e,t,n,r,i){super(),this._view=e,this._propertySpecsMap=t,this._dirtyTracker=n,this.i=r,this._onDidChange=this._register(new k),this.onDidChange=this._onDidChange.event,this._onWillDispose=this._register(new k),this.onWillDispose=this._onWillDispose.event;for(let e of this._propertySpecsMap.values())this._view[this.i*this._propertySpecsMap.size+e.offset]=i[e.name];this._dirtyTracker.flag(this.i*this._propertySpecsMap.size,this._propertySpecsMap.size)}dispose(){this._onWillDispose.fire(),super.dispose()}setRaw(e){if(e.length!==this._propertySpecsMap.size)throw Error(`Data length ${e.length} does not match the number of properties in the collection (${this._propertySpecsMap.size})`);this._view.set(e,this.i*this._propertySpecsMap.size),this._dirtyTracker.flag(this.i*this._propertySpecsMap.size,this._propertySpecsMap.size)}},gu=`
struct Vertex {
@location(0) position: vec2f,
};
struct LayoutInfo {
canvasDims: vec2f,
viewportOffset: vec2f,
viewportDims: vec2f,
}
struct ScrollOffset {
offset: vec2f,
}
struct Shape {
position: vec2f,
size: vec2f,
color: vec4f,
};
struct VSOutput {
@builtin(position) position: vec4f,
@location(1) color: vec4f,
};
// Uniforms
@group(0) @binding(1) var<uniform> layoutInfo: LayoutInfo;
// Storage buffers
@group(0) @binding(0) var<storage, read> shapes: array<Shape>;
@group(0) @binding(2) var<uniform> scrollOffset: ScrollOffset;
@vertex fn vs(
vert: Vertex,
@builtin(instance_index) instanceIndex: u32,
@builtin(vertex_index) vertexIndex : u32
) -> VSOutput {
let shape = shapes[instanceIndex];
var vsOut: VSOutput;
vsOut.position = vec4f(
(
// Top left corner
vec2f(-1, 1) +
// Convert pixel position to clipspace
vec2f( 2, -2) / layoutInfo.canvasDims *
// Shape position and size
(layoutInfo.viewportOffset - scrollOffset.offset + shape.position + vert.position * shape.size)
),
0.0,
1.0
);
vsOut.color = shape.color;
return vsOut;
}
@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {
return vsOut.color;
}
`,_u=class extends ra{constructor(e,t,n,r,i,a){super(),this._context=e,this._contentLeft=t,this._devicePixelRatio=n,this._canvas=r,this._ctx=i,this._shapeBindBuffer=this._register(new o),this._initialized=!1,this._shapeCollection=this._register(pu([{name:`x`},{name:`y`},{name:`width`},{name:`height`},{name:`red`},{name:`green`},{name:`blue`},{name:`alpha`}],32)),this._context.addEventHandler(this),this._initWebgpu(a)}async _initWebgpu(e){if(this._device=await e,this._store.isDisposed)return;let t=navigator.gpu.getPreferredCanvasFormat();this._ctx.configure({device:this._device,format:t,alphaMode:`premultiplied`}),this._renderPassColorAttachment={view:null,loadOp:`load`,storeOp:`store`},this._renderPassDescriptor={label:`Monaco rectangle renderer render pass`,colorAttachments:[this._renderPassColorAttachment]};let n;{let e=new Float32Array(6),t=(t=this._canvas.width,n=this._canvas.height)=>(e[0]=t,e[1]=n,e[2]=Math.ceil(this._context.configuration.options.get(165).contentLeft*F().devicePixelRatio),e[3]=0,e[4]=e[0]-e[2],e[5]=e[1]-e[3],e);n=this._register(uu.createBuffer(this._device,{label:`Monaco rectangle renderer uniform buffer`,size:24,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST},()=>t())).object,this._register(Ul(this._canvas,F(),(e,r)=>{this._device.queue.writeBuffer(n,0,t(e,r))}))}this._scrollOffsetBindBuffer=this._register(uu.createBuffer(this._device,{label:`Monaco rectangle renderer scroll offset buffer`,size:2*Float32Array.BYTES_PER_ELEMENT,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST})).object,this._scrollOffsetValueBuffer=new Float32Array(2);let r=()=>uu.createBuffer(this._device,{label:`Monaco rectangle renderer shape buffer`,size:this._shapeCollection.buffer.byteLength,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST});this._shapeBindBuffer.value=r(),this._register(Te.runAndSubscribe(this._shapeCollection.onDidChangeBuffer,()=>{this._shapeBindBuffer.value=r(),this._pipeline&&this._updateBindGroup(this._pipeline,n)})),this._vertexBuffer=this._register(uu.createBuffer(this._device,{label:`Monaco rectangle renderer vertex buffer`,size:Vl.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST},Vl)).object;let i=this._device.createShaderModule({label:`Monaco rectangle renderer shader module`,code:gu});this._pipeline=this._device.createRenderPipeline({label:`Monaco rectangle renderer render pipeline`,layout:`auto`,vertex:{module:i,buffers:[{arrayStride:2*Float32Array.BYTES_PER_ELEMENT,attributes:[{shaderLocation:0,offset:0,format:`float32x2`}]}]},fragment:{module:i,targets:[{format:t,blend:{color:{srcFactor:`src-alpha`,dstFactor:`one-minus-src-alpha`},alpha:{srcFactor:`src-alpha`,dstFactor:`one-minus-src-alpha`}}}]}}),this._updateBindGroup(this._pipeline,n),this._initialized=!0}_updateBindGroup(e,t){this._bindGroup=this._device.createBindGroup({label:`Monaco rectangle renderer bind group`,layout:e.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:this._shapeBindBuffer.value.object}},{binding:1,resource:{buffer:t}},{binding:2,resource:{buffer:this._scrollOffsetBindBuffer}}]})}register(e,t,n,r,i,a,o,s){return this._shapeCollection.createEntry({x:e,y:t,width:n,height:r,red:i,green:a,blue:o,alpha:s})}onScrollChanged(e){if(this._device){let e=F().devicePixelRatio;this._scrollOffsetValueBuffer[0]=this._context.viewLayout.getCurrentScrollLeft()*e,this._scrollOffsetValueBuffer[1]=this._context.viewLayout.getCurrentScrollTop()*e,this._device.queue.writeBuffer(this._scrollOffsetBindBuffer,0,this._scrollOffsetValueBuffer)}return!0}_update(){if(!this._device)return;let e=this._shapeCollection;e.dirtyTracker.isDirty&&(this._device.queue.writeBuffer(this._shapeBindBuffer.value.object,0,e.buffer,e.dirtyTracker.dataOffset,e.dirtyTracker.dirtySize*e.view.BYTES_PER_ELEMENT),e.dirtyTracker.clear())}draw(e){if(!this._initialized)return;this._update();let t=this._device.createCommandEncoder({label:`Monaco rectangle renderer command encoder`});this._renderPassColorAttachment.view=this._ctx.getCurrentTexture().createView();let n=t.beginRenderPass(this._renderPassDescriptor);n.setPipeline(this._pipeline),n.setVertexBuffer(0,this._vertexBuffer),n.setBindGroup(0,this._bindGroup);let r=Math.ceil(this._contentLeft.get()*this._devicePixelRatio.get());n.setScissorRect(r,0,this._canvas.width-r,this._canvas.height),n.draw(Vl.length/2,this._shapeCollection.entryCount),n.end();let i=t.finish();this._device.queue.submit([i])}},vu=class extends i{constructor(){super(),this._ruleCache=new Map,this._container=At(`div.monaco-decoration-css-rule-extractor`),this._dummyElement=At(`span`),this._container.appendChild(this._dummyElement),this._register(x(()=>this._container.remove()))}getStyleRules(e,t){let n=this._ruleCache.get(t);if(n)return n;this._dummyElement.className=t,e.appendChild(this._container);let r=this._getStyleRules(t);return this._ruleCache.set(t,r),e.removeChild(this._container),r}_getStyleRules(e){let t=[],n=[...qe().styleSheets];for(let r=0;r<n.length;r++){let i=n[r];for(let r of i.cssRules)if(r instanceof CSSImportRule)r.styleSheet&&n.push(r.styleSheet);else if(r instanceof CSSStyleRule){let n=`.${e}`,i=r.selectorText.indexOf(n);if(i!==-1){let e=i+n.length;(r.selectorText.length===e||r.selectorText.substring(e,e+1).match(/[ :]/))&&t.push(r)}}}return t}},yu=class{constructor(){this._nextId=1,this._cacheById=new Map,this._cacheByStyle=new ye}getOrCreateEntry(e,t,n){if(e===void 0&&t===void 0&&n===void 0)return 0;let r=this._cacheByStyle.get(e??0,+!!t,n===void 0?``:n.toFixed(2));if(r)return r.id;let i=this._nextId++,a={id:i,color:e,bold:t,opacity:n};return this._cacheById.set(i,a),this._cacheByStyle.set(a,e??0,+!!t,n===void 0?``:n.toFixed(2)),i}getStyleSet(e){if(e!==0)return this._cacheById.get(e)}},bu=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},xu=function(e,t){return function(n,r){t(n,r,e)}},Su,Cu=class extends i{static{Su=this}static{this._decorationCssRuleExtractor=new vu}static get decorationCssRuleExtractor(){return Su._decorationCssRuleExtractor}static{this._decorationStyleCache=new yu}static get decorationStyleCache(){return Su._decorationStyleCache}static get atlas(){if(!Su._atlas)throw new A(`Cannot call ViewGpuContext.textureAtlas before device is resolved`);return Su._atlas}get atlas(){return Su.atlas}constructor(e,t,n,r){super(),this._instantiationService=t,this._notificationService=n,this.configurationService=r,this.maxGpuCols=2e3,this.canvas=B(document.createElement(`canvas`)),this.canvas.setClassName(`editorCanvas`),this._register(Te.runAndSubscribe(r.onDidChangeConfiguration,e=>{if(!e||e.affectsConfiguration(`editor.scrollbar.verticalScrollbarSize`)){let e=r.getValue(`editor`).scrollbar?.verticalScrollbarSize??14;this.canvas.domNode.style.boxSizing=`border-box`,this.canvas.domNode.style.paddingRight=`${e}px`}})),this.ctx=Hl(this.canvas.domNode.getContext(`webgpu`)),Su.device||=uu.requestDevice(e=>{let t=[{label:de(78,`Use DOM-based rendering`),run:()=>this.configurationService.updateValue(`editor.experimentalGpuAcceleration`,`off`)}];this._notificationService.prompt(ir.Warning,e,t)}).then(e=>(Su.deviceSync=e.object,Su._atlas||=this._instantiationService.createInstance(lu,e.object.limits.maxTextureDimension2D,void 0,Su.decorationStyleCache),e.object));let i=Je(this,F().devicePixelRatio);this._register(P(F(),`resize`,()=>{i.set(F().devicePixelRatio,void 0)})),this.devicePixelRatio=i,this._register(hn(this.devicePixelRatio,()=>Su.atlas?.clear()));let a=Je(this,{width:this.canvas.domNode.width,height:this.canvas.domNode.height});this._register(Ul(this.canvas.domNode,F(),(e,t)=>{this.canvas.domNode.width=e,this.canvas.domNode.height=t,a.set({width:e,height:t},void 0)})),this.canvasDevicePixelDimensions=a;let o=Je(this,0);this._register(this.configurationService.onDidChangeConfiguration(t=>{o.set(e.configuration.options.get(165).contentLeft,void 0)})),this.contentLeft=o,this.rectangleRenderer=this._instantiationService.createInstance(_u,e,this.contentLeft,this.devicePixelRatio,this.canvas.domNode,this.ctx,Su.device)}canRender(e,t,n){let r=t.getViewLineRenderingData(n);if(r.containsRTL||r.maxColumn>this.maxGpuCols)return!1;if(r.inlineDecorations.length>0){let e=!0;for(let t of r.inlineDecorations){if(t.type!==0){e=!1;break}let n=Su._decorationCssRuleExtractor.getStyleRules(this.canvas.domNode,t.inlineClassName);if(e&&=n.every(e=>{if(e.selectorText.includes(`:`))return!1;for(let t of e.style)if(!Tu(t,e.style))return!1;return!0}),!e)break}return e}return!0}canRenderDetailed(e,t,n){let r=t.getViewLineRenderingData(n),i=[];if(r.containsRTL&&i.push(`containsRTL`),r.maxColumn>this.maxGpuCols&&i.push(`maxColumn > maxGpuCols`),r.inlineDecorations.length>0){let e=!0,t=[],n=[],a=[];for(let i of r.inlineDecorations){if(i.type!==0){t.push(i.type),e=!1;continue}let r=Su._decorationCssRuleExtractor.getStyleRules(this.canvas.domNode,i.inlineClassName);e&&=r.every(e=>{if(e.selectorText.includes(`:`))return n.push(e.selectorText),!1;for(let t of e.style)if(!Tu(t,e.style))return a.push(`${t}: ${e.style[t]}`),!1;return!0})}t.length>0&&i.push(`inlineDecorations with unsupported types (${t.map(e=>`\`${e}\``).join(`, `)})`),a.length>0&&i.push(`inlineDecorations with unsupported CSS rules (${a.map(e=>`\`${e}\``).join(`, `)})`),n.length>0&&i.push(`inlineDecorations with unsupported CSS selectors (${n.map(e=>`\`${e}\``).join(`, `)})`)}return i}};Cu=Su=bu([xu(1,Pt),xu(2,Vn),xu(3,Ft)],Cu);var wu=[`color`,`font-weight`,`opacity`];function Tu(e,t){if(!wu.includes(e))return!1;switch(e){default:return!0}}function Eu(e,t){return e.isBasicASCII&&t.useMonospaceOptimizations?new Du(e):new Ou(e)}var Du=class{constructor(e){this._content=e.content}getSegmentAtIndex(e){return this._content[e]}},Ou=class{constructor(e){this._segments=[];let t=e.content,n=tr.Segmenter(void 0,{granularity:`grapheme`}).value,r=Array.from(n.segment(t)),i=0;for(let e=0;e<t.length;e++){let t=r[i];if(!t)break;if(t.index!==e){this._segments.push(void 0);continue}i++,this._segments.push(t)}}getSegmentAtIndex(e){return this._segments[e]?.segment}},ku=class extends ra{get glyphRasterizer(){return this._glyphRasterizer.value}constructor(e,t,n,r){super(),this._context=e,this._viewGpuContext=t,this._device=n,this._glyphRasterizer=r,this._context.addEventHandler(this)}},Au=`
struct GlyphInfo {
position: vec2f,
size: vec2f,
origin: vec2f,
};
struct Vertex {
@location(0) position: vec2f,
};
struct Cell {
position: vec2f,
unused1: vec2f,
glyphIndex: f32,
textureIndex: f32
};
struct LayoutInfo {
canvasDims: vec2f,
viewportOffset: vec2f,
viewportDims: vec2f,
}
struct ScrollOffset {
offset: vec2f
}
struct VSOutput {
@builtin(position) position: vec4f,
@location(1) layerIndex: f32,
@location(0) texcoord: vec2f,
};
// Uniforms
@group(0) @binding(4) var<uniform> layoutInfo: LayoutInfo;
@group(0) @binding(5) var<uniform> atlasDims: vec2f;
@group(0) @binding(6) var<uniform> scrollOffset: ScrollOffset;
// Storage buffers
@group(0) @binding(0) var<storage, read> glyphInfo: array<array<GlyphInfo, ${au.maximumGlyphCount}>, ${lu.maximumPageCount}>;
@group(0) @binding(1) var<storage, read> cells: array<Cell>;
@vertex fn vs(
vert: Vertex,
@builtin(instance_index) instanceIndex: u32,
@builtin(vertex_index) vertexIndex : u32
) -> VSOutput {
let cell = cells[instanceIndex];
var glyph = glyphInfo[u32(cell.textureIndex)][u32(cell.glyphIndex)];
var vsOut: VSOutput;
// Multiple vert.position by 2,-2 to get it into clipspace which ranged from -1 to 1
vsOut.position = vec4f(
// Make everything relative to top left instead of center
vec2f(-1, 1) +
((vert.position * vec2f(2, -2)) / layoutInfo.canvasDims) * glyph.size +
((cell.position * vec2f(2, -2)) / layoutInfo.canvasDims) +
((glyph.origin * vec2f(2, -2)) / layoutInfo.canvasDims) +
(((layoutInfo.viewportOffset - scrollOffset.offset * vec2(1, -1)) * 2) / layoutInfo.canvasDims),
0.0,
1.0
);
vsOut.layerIndex = cell.textureIndex;
// Textures are flipped from natural direction on the y-axis, so flip it back
vsOut.texcoord = vert.position;
vsOut.texcoord = (
// Glyph offset (0-1)
(glyph.position / atlasDims) +
// Glyph coordinate (0-1)
(vsOut.texcoord * (glyph.size / atlasDims))
);
return vsOut;
}
@group(0) @binding(2) var ourSampler: sampler;
@group(0) @binding(3) var ourTexture: texture_2d_array<f32>;
@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {
return textureSample(ourTexture, ourSampler, vsOut.texcoord, u32(vsOut.layerIndex));
}
`,ju=class e extends ku{static{this.maxSupportedColumns=2e3}get bindGroupEntries(){return[{binding:1,resource:{buffer:this._cellBindBuffer}},{binding:6,resource:{buffer:this._scrollOffsetBindBuffer}}]}constructor(e,t,n,r){super(e,t,n,r),this.type=`viewport`,this.wgsl=Au,this._cellBindBufferLineCapacity=63,this._activeDoubleBufferIndex=0,this._visibleObjectCount=0,this._scrollInitialized=!1,this._onDidChangeBindGroupEntries=this._register(new k),this.onDidChangeBindGroupEntries=this._onDidChangeBindGroupEntries.event,this._rebuildCellBuffer(this._cellBindBufferLineCapacity),this._scrollOffsetBindBuffer=this._register(uu.createBuffer(this._device,{label:`Monaco scroll offset buffer`,size:2*Float32Array.BYTES_PER_ELEMENT,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST})).object,this._scrollOffsetValueBuffer=new Float32Array(2)}_rebuildCellBuffer(t){this._cellBindBuffer?.destroy();let n=(Math.floor(t/32)+1)*32,r=n*e.maxSupportedColumns*6*Float32Array.BYTES_PER_ELEMENT;this._cellBindBuffer=this._register(uu.createBuffer(this._device,{label:`Monaco full file cell buffer`,size:r,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST})).object,this._cellValueBuffers=[new ArrayBuffer(r),new ArrayBuffer(r)],this._cellBindBufferLineCapacity=n,this._onDidChangeBindGroupEntries.fire()}onConfigurationChanged(e){return!0}onDecorationsChanged(e){return!0}onTokensChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onLinesChanged(e){return!0}onScrollChanged(e){let t=F().devicePixelRatio;return this._scrollOffsetValueBuffer[0]=(e?.scrollLeft??this._context.viewLayout.getCurrentScrollLeft())*t,this._scrollOffsetValueBuffer[1]=(e?.scrollTop??this._context.viewLayout.getCurrentScrollTop())*t,this._device.queue.writeBuffer(this._scrollOffsetBindBuffer,0,this._scrollOffsetValueBuffer),!0}onThemeChanged(e){return!0}onLineMappingChanged(e){return!0}onZonesChanged(e){return!0}reset(){for(let e of[0,1]){let t=new Float32Array(this._cellValueBuffers[e]);t.fill(0,0,t.length),this._device.queue.writeBuffer(this._cellBindBuffer,0,t.buffer,0,t.byteLength)}}update(t,n){let r=``,i,a=0,o=0,s=0,c=0,l=0,u=0,d,f=0,p=0,m=0,h=0,g,_,v,y,b,x=0,S=0,C,w=F().devicePixelRatio,T;this._scrollInitialized||=(this.onScrollChanged(),!0),this._cellBindBufferLineCapacity<t.endLineNumber-t.startLineNumber+1&&this._rebuildCellBuffer(t.endLineNumber-t.startLineNumber+1);let E=new Float32Array(this._cellValueBuffers[this._activeDoubleBufferIndex]);E.fill(0);let ee=e.maxSupportedColumns*6;for(o=t.startLineNumber;o<=t.endLineNumber;o++)if(this._viewGpuContext.canRender(n,t,o)){y=t.getViewLineRenderingData(o),u=0,T=Eu(y,n),a=n.spaceWidth*w,c=0,C=y.tokens,p=y.minColumn-1,m=0;for(let x=0,S=C.getCount();x<S;x++)if(m=C.getEndOffset(x),!(m<=p)){for(h=C.getMetadata(x),s=p;s<m&&!(s>e.maxSupportedColumns);s++){if(i=T.getSegmentAtIndex(s),i===void 0)continue;r=i,y.isBasicASCII&&n.useMonospaceOptimizations||(a=this.glyphRasterizer.getTextMetrics(r).width),_=void 0,g=void 0,v=void 0;for(b of y.inlineDecorations){if(o<b.range.startLineNumber||o>b.range.endLineNumber||o===b.range.startLineNumber&&s<b.range.startColumn-1||o===b.range.endLineNumber&&s>=b.range.endColumn-1)continue;let e=Cu.decorationCssRuleExtractor.getStyleRules(this._viewGpuContext.canvas.domNode,b.inlineClassName);for(let t of e)for(let e of t.style){let n=t.styleMap.get(e)?.toString()??``;switch(e){case`color`:{let e=Wt.Format.CSS.parse(n);if(!e)throw new A(`Invalid color format `+n);_=e.toNumber32Bit();break}case`font-weight`:g=Mu(n)>=400;break;case`opacity`:v=Nu(n);break;default:throw new A(`Unexpected inline decoration style`)}}}if(r===` `||r===` `){if(f=((o-1)*e.maxSupportedColumns+s)*6,E.fill(0,f,f+6),r===` `){let e=s+u;u=z.nextRenderTabStop(s+u,y.tabSize),c+=a*(u-e),u-=s+1}else c+=a;continue}let p=Cu.decorationStyleCache.getOrCreateEntry(_,g,v);d=this._viewGpuContext.atlas.getGlyph(this.glyphRasterizer,r,h,p,c),l=Math.round(t.relativeVerticalOffset[o-t.startLineNumber]*w+Math.floor((t.lineHeight*w-(d.fontBoundingBoxAscent+d.fontBoundingBoxDescent))/2)+d.fontBoundingBoxAscent),f=((o-t.startLineNumber)*e.maxSupportedColumns+s)*6,E[f+0]=Math.floor(c),E[f+1]=l,E[f+4]=d.glyphIndex,E[f+5]=d.pageIndex,c+=a}p=m}x=((o-t.startLineNumber)*e.maxSupportedColumns+m)*6,S=(o-t.startLineNumber)*e.maxSupportedColumns*6,E.fill(0,x,S)}let te=(t.endLineNumber-t.startLineNumber+1)*ee;return this._device.queue.writeBuffer(this._cellBindBuffer,0,E.buffer,0,(t.endLineNumber-t.startLineNumber)*ee*Float32Array.BYTES_PER_ELEMENT),this._activeDoubleBufferIndex=+!this._activeDoubleBufferIndex,this._visibleObjectCount=te,te}draw(e,t){if(this._visibleObjectCount<=0)throw new A(`Attempt to draw 0 objects`);e.draw(Vl.length/2,this._visibleObjectCount)}};function Mu(e){switch(e){case`lighter`:case`normal`:return 400;case`bolder`:case`bold`:return 700}return parseInt(e)}function Nu(e){return e.endsWith(`%`)?parseFloat(e.substring(0,e.length-1))/100:e.match(/^\d+(?:\.\d*)/)?parseFloat(e):1}var Pu=class e extends ku{static{this.maxSupportedLines=3e3}static{this.maxSupportedColumns=200}get bindGroupEntries(){return[{binding:1,resource:{buffer:this._cellBindBuffer}},{binding:6,resource:{buffer:this._scrollOffsetBindBuffer}}]}constructor(t,n,r,i){super(t,n,r,i),this.type=`fullfile`,this.wgsl=Au,this._activeDoubleBufferIndex=0,this._upToDateLines=[new Set,new Set],this._visibleObjectCount=0,this._finalRenderedLine=0,this._scrollInitialized=!1,this._queuedBufferUpdates=[[],[]];let a=e.maxSupportedLines*e.maxSupportedColumns*6*Float32Array.BYTES_PER_ELEMENT;this._cellBindBuffer=this._register(uu.createBuffer(this._device,{label:`Monaco full file cell buffer`,size:a,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST})).object,this._cellValueBuffers=[new ArrayBuffer(a),new ArrayBuffer(a)],this._scrollOffsetBindBuffer=this._register(uu.createBuffer(this._device,{label:`Monaco scroll offset buffer`,size:2*Float32Array.BYTES_PER_ELEMENT,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST})).object,this._scrollOffsetValueBuffer=new Float32Array(2)}onConfigurationChanged(e){return this._invalidateAllLines(),this._queueBufferUpdate(e),!0}onDecorationsChanged(e){return this._invalidateAllLines(),!0}onTokensChanged(e){for(let t of e.ranges)this._invalidateLineRange(t.fromLineNumber,t.toLineNumber);return!0}onLinesDeleted(e){return this._invalidateLinesFrom(e.fromLineNumber),this._queueBufferUpdate(e),!0}onLinesInserted(e){return this._invalidateLinesFrom(e.fromLineNumber),!0}onLinesChanged(e){return this._invalidateLineRange(e.fromLineNumber,e.fromLineNumber+e.count),!0}onScrollChanged(e){let t=F().devicePixelRatio;return this._scrollOffsetValueBuffer[0]=(e?.scrollLeft??this._context.viewLayout.getCurrentScrollLeft())*t,this._scrollOffsetValueBuffer[1]=(e?.scrollTop??this._context.viewLayout.getCurrentScrollTop())*t,this._device.queue.writeBuffer(this._scrollOffsetBindBuffer,0,this._scrollOffsetValueBuffer),!0}onThemeChanged(e){return this._invalidateAllLines(),!0}onLineMappingChanged(e){return this._invalidateAllLines(),this._queueBufferUpdate(e),!0}onZonesChanged(e){return this._invalidateAllLines(),this._queueBufferUpdate(e),!0}_invalidateAllLines(){this._upToDateLines[0].clear(),this._upToDateLines[1].clear()}_invalidateLinesFrom(e){for(let t of[0,1]){let n=this._upToDateLines[t];for(let t of n)t>=e&&n.delete(t)}}_invalidateLineRange(e,t){for(let n=e;n<=t;n++)this._upToDateLines[0].delete(n),this._upToDateLines[1].delete(n)}reset(){this._invalidateAllLines();for(let e of[0,1]){let t=new Float32Array(this._cellValueBuffers[e]);t.fill(0,0,t.length),this._device.queue.writeBuffer(this._cellBindBuffer,0,t.buffer,0,t.byteLength)}this._finalRenderedLine=0}update(t,n){let r=``,i,a=0,o=0,s=0,c=0,l=0,u=0,d,f=0,p=0,m=0,h=0,g,_,v,y,b,x=0,S=0,C,w=F().devicePixelRatio,T;this._scrollInitialized||=(this.onScrollChanged(),!0);let E=new Float32Array(this._cellValueBuffers[this._activeDoubleBufferIndex]),ee=e.maxSupportedColumns*6,te=this._upToDateLines[this._activeDoubleBufferIndex],ne=3e3,D=0,re=this._queuedBufferUpdates[this._activeDoubleBufferIndex];for(;re.length;){let t=re.shift();switch(t.type){case 2:case 8:case 17:E.fill(0),ne=1,D=Math.max(D,this._finalRenderedLine),this._finalRenderedLine=0;break;case 10:{let n=(t.fromLineNumber-1)*e.maxSupportedColumns*6,r=t.toLineNumber*e.maxSupportedColumns*6,i=(this._finalRenderedLine-(t.toLineNumber-t.fromLineNumber+1))*e.maxSupportedColumns*6;E.set(E.subarray(r),n),E.fill(0,i),ne=Math.min(ne,t.fromLineNumber),D=Math.max(D,this._finalRenderedLine),this._finalRenderedLine-=t.toLineNumber-t.fromLineNumber+1;break}}}for(o=t.startLineNumber;o<=t.endLineNumber;o++){if(!this._viewGpuContext.canRender(n,t,o)){x=(o-1)*e.maxSupportedColumns*6,S=o*e.maxSupportedColumns*6,E.fill(0,x,S),ne=Math.min(ne,o),D=Math.max(D,o);continue}if(!te.has(o)){ne=Math.min(ne,o),D=Math.max(D,o),y=t.getViewLineRenderingData(o),u=0,T=Eu(y,n),a=n.spaceWidth*w,c=0,C=y.tokens,p=y.minColumn-1,m=0;for(let x=0,S=C.getCount();x<S;x++)if(m=C.getEndOffset(x),!(m<=p)){for(h=C.getMetadata(x),s=p;s<m&&!(s>e.maxSupportedColumns);s++){if(i=T.getSegmentAtIndex(s),i===void 0)continue;r=i,y.isBasicASCII&&n.useMonospaceOptimizations||(a=this.glyphRasterizer.getTextMetrics(r).width),_=void 0,g=void 0,v=void 0;for(b of y.inlineDecorations){if(o<b.range.startLineNumber||o>b.range.endLineNumber||o===b.range.startLineNumber&&s<b.range.startColumn-1||o===b.range.endLineNumber&&s>=b.range.endColumn-1)continue;let e=Cu.decorationCssRuleExtractor.getStyleRules(this._viewGpuContext.canvas.domNode,b.inlineClassName);for(let t of e)for(let e of t.style){let n=t.styleMap.get(e)?.toString()??``;switch(e){case`color`:{let e=Wt.Format.CSS.parse(n);if(!e)throw new A(`Invalid color format `+n);_=e.toNumber32Bit();break}case`font-weight`:g=Fu(n)>=400;break;case`opacity`:v=Iu(n);break;default:throw new A(`Unexpected inline decoration style`)}}}if(r===` `||r===` `){if(f=((o-1)*e.maxSupportedColumns+s)*6,E.fill(0,f,f+6),r===` `){let e=s+u;u=z.nextRenderTabStop(s+u,y.tabSize),c+=a*(u-e),u-=s+1}else c+=a;continue}let p=Cu.decorationStyleCache.getOrCreateEntry(_,g,v);d=this._viewGpuContext.atlas.getGlyph(this.glyphRasterizer,r,h,p,c),l=Math.round(t.relativeVerticalOffset[o-t.startLineNumber]*w+Math.floor((t.lineHeight*w-(d.fontBoundingBoxAscent+d.fontBoundingBoxDescent))/2)+d.fontBoundingBoxAscent),f=((o-1)*e.maxSupportedColumns+s)*6,E[f+0]=Math.floor(c),E[f+1]=l,E[f+4]=d.glyphIndex,E[f+5]=d.pageIndex,c+=a}p=m}x=((o-1)*e.maxSupportedColumns+m)*6,S=o*e.maxSupportedColumns*6,E.fill(0,x,S),te.add(o)}}let ie=(t.endLineNumber-t.startLineNumber+1)*ee;return ne=Math.min(ne,e.maxSupportedLines),D=Math.min(D,e.maxSupportedLines),ne<=D&&this._device.queue.writeBuffer(this._cellBindBuffer,(ne-1)*ee*Float32Array.BYTES_PER_ELEMENT,E.buffer,(ne-1)*ee*Float32Array.BYTES_PER_ELEMENT,(D-ne+1)*ee*Float32Array.BYTES_PER_ELEMENT),this._finalRenderedLine=Math.max(this._finalRenderedLine,D),this._activeDoubleBufferIndex=+!this._activeDoubleBufferIndex,this._visibleObjectCount=ie,ie}draw(t,n){if(this._visibleObjectCount<=0)throw new A(`Attempt to draw 0 objects`);t.draw(Vl.length/2,this._visibleObjectCount,void 0,(n.startLineNumber-1)*e.maxSupportedColumns)}_queueBufferUpdate(e){this._queuedBufferUpdates[0].push(e),this._queuedBufferUpdates[1].push(e)}};function Fu(e){switch(e){case`lighter`:case`normal`:return 400;case`bolder`:case`bold`:return 700}return parseInt(e)}function Iu(e){return e.endsWith(`%`)?parseFloat(e.substring(0,e.length-1))/100:e.match(/^\d+(?:\.\d*)/)?parseFloat(e):1}var Lu=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},Ru=function(e,t){return function(n,r){t(n,r,e)}},zu=class extends ia{constructor(e,t,n,r){super(e),this._viewGpuContext=t,this._instantiationService=n,this._logService=r,this._atlasGpuTextureVersions=[],this._initialized=!1,this._glyphRasterizer=this._register(new o),this._renderStrategy=this._register(new o),this.canvas=this._viewGpuContext.canvas.domNode,this._register(Ke(e=>{this._viewGpuContext.canvasDevicePixelDimensions.read(e);let t=this._lastViewportData;t&&setTimeout(()=>{t===this._lastViewportData&&this.renderText(t)})})),this.initWebgpu()}async initWebgpu(){if(this._device=Cu.deviceSync||await Cu.device,this._store.isDisposed)return;let e=Cu.atlas;this._register(e.onDidDeleteGlyphs(()=>{this._atlasGpuTextureVersions.length=0,this._atlasGpuTextureVersions[0]=0,this._atlasGpuTextureVersions[1]=0,this._renderStrategy.value.reset()}));let t=navigator.gpu.getPreferredCanvasFormat();this._viewGpuContext.ctx.configure({device:this._device,format:t,alphaMode:`premultiplied`}),this._renderPassColorAttachment={view:null,loadOp:`load`,storeOp:`store`},this._renderPassDescriptor={label:`Monaco render pass`,colorAttachments:[this._renderPassColorAttachment]};let n;{let e=new Float32Array(6),t=(t=this.canvas.width,n=this.canvas.height)=>(e[0]=t,e[1]=n,e[2]=Math.ceil(this._context.configuration.options.get(165).contentLeft*F().devicePixelRatio),e[3]=0,e[4]=e[0]-e[2],e[5]=e[1]-e[3],e);n=this._register(uu.createBuffer(this._device,{label:`Monaco uniform buffer`,size:24,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST},()=>t())).object,this._register(hn(this._viewGpuContext.canvasDevicePixelDimensions,({width:e,height:r})=>{this._device.queue.writeBuffer(n,0,t(e,r))})),this._register(hn(this._viewGpuContext.contentLeft,()=>{this._device.queue.writeBuffer(n,0,t())}))}let r;r=this._register(uu.createBuffer(this._device,{label:`Monaco atlas info uniform buffer`,size:8,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST},()=>{let t=new Float32Array(2);return t[0]=e.pageSize,t[1]=e.pageSize,t})).object;let i=this._context.configuration.options.get(58),a=this._context.configuration.options.get(61);this._glyphRasterizer.value=this._register(new Kl(a,i,this._viewGpuContext.devicePixelRatio.get(),Cu.decorationStyleCache)),this._register(hn(this._viewGpuContext.devicePixelRatio,()=>{this._refreshGlyphRasterizer()})),this._renderStrategy.value=this._instantiationService.createInstance(Pu,this._context,this._viewGpuContext,this._device,this._glyphRasterizer),this._glyphStorageBuffer=this._register(uu.createBuffer(this._device,{label:`Monaco glyph storage buffer`,size:lu.maximumPageCount*(au.maximumGlyphCount*24),usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST})).object,this._atlasGpuTextureVersions[0]=0,this._atlasGpuTextureVersions[1]=0,this._atlasGpuTexture=this._register(uu.createTexture(this._device,{label:`Monaco atlas texture`,format:`rgba8unorm`,size:{width:e.pageSize,height:e.pageSize,depthOrArrayLayers:lu.maximumPageCount},dimension:`2d`,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT})).object,this._updateAtlasStorageBufferAndTexture(),this._vertexBuffer=this._register(uu.createBuffer(this._device,{label:`Monaco vertex buffer`,size:Vl.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST},Vl)).object;let o=this._device.createShaderModule({label:`Monaco shader module`,code:this._renderStrategy.value.wgsl});if(this._pipeline=this._device.createRenderPipeline({label:`Monaco render pipeline`,layout:`auto`,vertex:{module:o,buffers:[{arrayStride:2*Float32Array.BYTES_PER_ELEMENT,attributes:[{shaderLocation:0,offset:0,format:`float32x2`}]}]},fragment:{module:o,targets:[{format:t,blend:{color:{srcFactor:`src-alpha`,dstFactor:`one-minus-src-alpha`},alpha:{srcFactor:`src-alpha`,dstFactor:`one-minus-src-alpha`}}}]}}),this._rebuildBindGroup=()=>{this._bindGroup=this._device.createBindGroup({label:`Monaco bind group`,layout:this._pipeline.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:this._glyphStorageBuffer}},{binding:2,resource:this._device.createSampler({label:`Monaco atlas sampler`,magFilter:`nearest`,minFilter:`nearest`})},{binding:3,resource:this._atlasGpuTexture.createView()},{binding:4,resource:{buffer:n}},{binding:5,resource:{buffer:r}},...this._renderStrategy.value.bindGroupEntries]})},this._rebuildBindGroup(),this._initialized=!0,this._initViewportData){for(let e of this._initViewportData)this.renderText(e);this._initViewportData=void 0}}_refreshRenderStrategy(e){if(this._renderStrategy.value?.type===`viewport`||e.endLineNumber<Pu.maxSupportedLines&&this._viewportMaxColumn(e)<Pu.maxSupportedColumns)return;this._logService.trace(`File is larger than ${Pu.maxSupportedLines} lines or ${Pu.maxSupportedColumns} columns, switching to viewport render strategy`);let t=this._instantiationService.createInstance(ju,this._context,this._viewGpuContext,this._device,this._glyphRasterizer);this._renderStrategy.value=t,this._register(t.onDidChangeBindGroupEntries(()=>this._rebuildBindGroup?.())),this._rebuildBindGroup?.()}_viewportMaxColumn(e){let t=0,n;for(let r=e.startLineNumber;r<=e.endLineNumber;r++)n=e.getViewLineRenderingData(r),t=Math.max(t,n.maxColumn);return t}_updateAtlasStorageBufferAndTexture(){for(let[e,t]of Cu.atlas.pages.entries()){if(e>=lu.maximumPageCount){console.log(`Attempt to upload atlas page [${e}], only ${lu.maximumPageCount} are supported currently`);continue}if(t.version===this._atlasGpuTextureVersions[e])continue;this._logService.trace(`Updating atlas page[`,e,`] from version `,this._atlasGpuTextureVersions[e],` to version `,t.version);let n=6*au.maximumGlyphCount,r=new Float32Array(n),i=0;for(let e of t.glyphs)r[i+0]=e.x,r[i+0+1]=e.y,r[i+2]=e.w,r[i+2+1]=e.h,r[i+4]=e.originOffsetX,r[i+4+1]=e.originOffsetY,i+=6;if(i/6>au.maximumGlyphCount)throw Error(`Attempting to write more glyphs (${i/6}) than the GPUBuffer can hold (${au.maximumGlyphCount})`);this._device.queue.writeBuffer(this._glyphStorageBuffer,e*6*au.maximumGlyphCount*Float32Array.BYTES_PER_ELEMENT,r,0,6*au.maximumGlyphCount),t.usedArea.right-t.usedArea.left>0&&t.usedArea.bottom-t.usedArea.top>0&&this._device.queue.copyExternalImageToTexture({source:t.source},{texture:this._atlasGpuTexture,origin:{x:t.usedArea.left,y:t.usedArea.top,z:e}},{width:t.usedArea.right-t.usedArea.left+1,height:t.usedArea.bottom-t.usedArea.top+1}),this._atlasGpuTextureVersions[e]=t.version}}prepareRender(e){throw new A(`Should not be called`)}render(e){throw new A(`Should not be called`)}onConfigurationChanged(e){return this._refreshGlyphRasterizer(),!0}onCursorStateChanged(e){return!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onLineMappingChanged(e){return!0}onRevealRangeRequest(e){return!0}onScrollChanged(e){return!0}onThemeChanged(e){return!0}onZonesChanged(e){return!0}_refreshGlyphRasterizer(){let e=this._glyphRasterizer.value;if(!e)return;let t=this._context.configuration.options.get(58),n=this._context.configuration.options.get(61),r=this._viewGpuContext.devicePixelRatio.get();(e.fontFamily!==t||e.fontSize!==n||e.devicePixelRatio!==r)&&(this._glyphRasterizer.value=new Kl(n,t,r,Cu.decorationStyleCache))}renderText(e){if(this._initialized)return this._refreshRenderStrategy(e),this._renderText(e);this._initViewportData=this._initViewportData??[],this._initViewportData.push(e)}_renderText(e){this._viewGpuContext.rectangleRenderer.draw(e);let t=new kc(this._context.configuration,this._context.theme.type);this._renderStrategy.value.update(e,t),this._updateAtlasStorageBufferAndTexture();let n=this._device.createCommandEncoder({label:`Monaco command encoder`});this._renderPassColorAttachment.view=this._viewGpuContext.ctx.getCurrentTexture().createView({label:`Monaco canvas texture view`});let r=n.beginRenderPass(this._renderPassDescriptor);r.setPipeline(this._pipeline),r.setVertexBuffer(0,this._vertexBuffer);let i=Math.ceil(this._viewGpuContext.contentLeft.get()*this._viewGpuContext.devicePixelRatio.get());r.setScissorRect(i,0,this.canvas.width-i,this.canvas.height),r.setBindGroup(0,this._bindGroup),this._renderStrategy.value.draw(r,e),r.end();let a=n.finish();this._device.queue.submit([a]),this._lastViewportData=e,this._lastViewLineOptions=t}linesVisibleRangesForRange(e,t){if(!this._lastViewportData)return null;let n=e.endLineNumber,r=j.intersectRanges(e,this._lastViewportData.visibleRange);if(!r)return null;let i=this._lastViewportData.startLineNumber,a=this._lastViewportData.endLineNumber,o=this._lastViewportData,s=this._lastViewLineOptions;if(!o||!s)return null;let c=[],l=0;t&&(l=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new b(r.startLineNumber,1)).lineNumber);for(let e=r.startLineNumber;e<=r.endLineNumber;e++){if(e<i||e>a)continue;let o=e===r.startLineNumber?r.startColumn:1,u=e!==n,d=u?this._context.viewModel.getLineMaxColumn(e):r.endColumn,f=this._visibleRangesForLineRange(e,o,d);if(f){if(t&&e<n){let t=l;l=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new b(e+1,1)).lineNumber,t!==l&&(f.ranges[f.ranges.length-1].width+=s.spaceWidth)}c.push(new ca(f.outsideRenderedLine,e,la.from(f.ranges),u))}}return c.length===0?null:c}_visibleRangesForLineRange(e,t,n){if(this.shouldRender())return null;let r=this._lastViewportData,i=this._lastViewLineOptions;if(!r||!i||e<r.startLineNumber||e>r.endLineNumber)return null;let a=r.getViewLineRenderingData(e),o=a.content,s;a.isBasicASCII&&i.useMonospaceOptimizations||(s=Eu(a,i));let c=``,l=0,u=0;for(let e=0;e<t-1;e++){if(a.isBasicASCII&&i.useMonospaceOptimizations)c=o.charAt(e);else{if(c=s.getSegmentAtIndex(e),c===void 0)continue;u+=this._renderStrategy.value.glyphRasterizer.getTextMetrics(c).width/F().devicePixelRatio-i.spaceWidth}c===` `?l=z.nextRenderTabStop(l,a.tabSize):l++}let d=l,f=0;for(let e=t-1;e<n-1;e++){if(a.isBasicASCII&&i.useMonospaceOptimizations)c=o.charAt(e);else{if(c=s.getSegmentAtIndex(e),c===void 0)continue;f+=this._renderStrategy.value.glyphRasterizer.getTextMetrics(c).width/F().devicePixelRatio-i.spaceWidth}c===` `?d=z.nextRenderTabStop(d,a.tabSize):d++}return new fa(!1,[new ua(l*i.spaceWidth+u,(d-l)*i.spaceWidth+f)])}visibleRangeForPosition(e){let t=this._visibleRangesForLineRange(e.lineNumber,e.column,e.column);return t?new da(t.outsideRenderedLine,t.ranges[0].left):null}getLineWidth(e){if(!this._lastViewportData||!this._lastViewLineOptions||!this._viewGpuContext.canRender(this._lastViewLineOptions,this._lastViewportData,e))return;let t=this._lastViewportData.getViewLineRenderingData(e),n=this._visibleRangesForLineRange(e,1,t.maxColumn)?.ranges.at(-1);if(n)return n.width}getPositionAtCoordinate(e,t){if(!this._lastViewportData||!this._lastViewLineOptions||!this._viewGpuContext.canRender(this._lastViewLineOptions,this._lastViewportData,e))return;let n=this._lastViewportData.getViewLineRenderingData(e),r=n.content,i=F().devicePixelRatio,a=t*i,o=this._lastViewLineOptions.spaceWidth*i,s=Eu(n,this._lastViewLineOptions),c=0,l=0,u=0,d=0;for(let e=0;e<r.length;e++){let t=s.getSegmentAtIndex(e);if(t===void 0){d++;continue}if(t===` `){let t=e+u;u=z.nextRenderTabStop(e+u,n.tabSize),l=o*(u-t),u-=e+1}else l=n.isBasicASCII&&this._lastViewLineOptions.useMonospaceOptimizations?o:this._renderStrategy.value.glyphRasterizer.getTextMetrics(t).width;if(a<c+l/2)break;c+=l,d++}return new b(e,d+1)}};zu=Lu([Ru(2,Pt),Ru(3,p)],zu);var Bu=class extends ia{},Vu=class{_getPageOfLine(e,t){return Math.floor((e-1)/t)}_getRangeForPage(e,t){let n=e*t;return new j(n+1,1,n+t+1,1)}fromEditorSelection(e,t,n,r){let i=this._getPageOfLine(t.startLineNumber,n),a=this._getRangeForPage(i,n),o=this._getPageOfLine(t.endLineNumber,n),s=this._getRangeForPage(o,n),c=a.intersectRanges(new j(1,1,t.startLineNumber,t.startColumn));if(r&&e.getValueLengthInRange(c,1)>500){let t=e.modifyPosition(c.getEndPosition(),-500);c=j.fromPositions(t,c.getEndPosition())}let l=e.getValueInRange(c,1),u=e.getLineCount(),d=e.getLineMaxColumn(u),f=s.intersectRanges(new j(t.endLineNumber,t.endColumn,u,d));if(r&&e.getValueLengthInRange(f,1)>500){let t=e.modifyPosition(f.getStartPosition(),500);f=j.fromPositions(f.getStartPosition(),t)}let p=e.getValueInRange(f,1),m;if(i===o||i+1===o)m=e.getValueInRange(t,1);else{let n=a.intersectRanges(t),r=s.intersectRanges(t);m=e.getValueInRange(n,1)+`…`+e.getValueInRange(r,1)}r&&m.length>2*500&&(m=m.substring(0,500)+`…`+m.substring(m.length-500,m.length));let h,g;return t.getDirection()===0?(h=l.length,g=l.length+m.length):(g=l.length,h=l.length+m.length),{value:l+m+p,selection:t,selectionStart:h,selectionEnd:g,startPositionWithinEditor:c.getStartPosition(),newlineCountBeforeSelection:c.endLineNumber-c.startLineNumber}}};function Hu(e,t){if(e.get(2)===1){let e=t.lookupKeybinding(`editor.action.toggleScreenReaderAccessibilityMode`)?.getAriaLabel(),n=t.lookupKeybinding(`workbench.action.showCommands`)?.getAriaLabel(),r=t.lookupKeybinding(`workbench.action.openGlobalKeybindings`)?.getAriaLabel(),i=de(61,`The editor is not accessible at this time.`);return e?de(62,`{0} To enable screen reader optimized mode, use {1}`,i,e):n?de(63,`{0} To enable screen reader optimized mode, open the quick pick with {1} and run the command Toggle Screen Reader Accessibility Mode, which is currently not triggerable via keyboard.`,i,n):r?de(64,`{0} Please assign a keybinding for the command Toggle Screen Reader Accessibility Mode by accessing the keybindings editor with {1} and run it.`,i,r):i}return e.get(8)}function Uu(e){let t=0,n=-1;do{if(n=e.indexOf(`
`,n+1),n===-1)break;t++}while(!0);return t}var Wu=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},Gu=function(e,t){return function(n,r){t(n,r,e)}},Ku=class{constructor(e,t,n,r,i){this._context=e,this.modelLineNumber=t,this.distanceToModelLineStart=n,this.widthOfHiddenLineTextBefore=r,this.distanceToModelLineEnd=i,this._visibleTextAreaBrand=void 0,this.startPosition=null,this.endPosition=null,this.visibleTextareaStart=null,this.visibleTextareaEnd=null,this._previousPresentation=null}prepareRender(e){let t=new b(this.modelLineNumber,this.distanceToModelLineStart+1),n=new b(this.modelLineNumber,this._context.viewModel.model.getLineMaxColumn(this.modelLineNumber)-this.distanceToModelLineEnd);this.startPosition=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(t),this.endPosition=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(n),this.startPosition.lineNumber===this.endPosition.lineNumber?(this.visibleTextareaStart=e.visibleRangeForPosition(this.startPosition),this.visibleTextareaEnd=e.visibleRangeForPosition(this.endPosition)):(this.visibleTextareaStart=null,this.visibleTextareaEnd=null)}definePresentation(e){return this._previousPresentation||(e?this._previousPresentation=e:this._previousPresentation={foreground:1,italic:!1,bold:!1,underline:!1,strikethrough:!1}),this._previousPresentation}},qu=at,Ju=class extends Bu{constructor(e,t,n,r,i,a){super(e),this._keybindingService=i,this._instantiationService=a,this._primaryCursorPosition=new b(1,1),this._primaryCursorVisibleRange=null,this._viewController=n,this._visibleRangeProvider=r,this._scrollLeft=0,this._scrollTop=0;let o=this._context.configuration.options,s=o.get(165);this._setAccessibilityOptions(o),this._contentLeft=s.contentLeft,this._contentWidth=s.contentWidth,this._contentHeight=s.height,this._fontInfo=o.get(59),this._emptySelectionClipboard=o.get(45),this._copyWithSyntaxHighlighting=o.get(31),this._visibleTextArea=null,this._selections=[new L(1,1,1,1)],this._modelSelections=[new L(1,1,1,1)],this._lastRenderPosition=null,this.textArea=B(document.createElement(`textarea`)),aa.write(this.textArea,7),this.textArea.setClassName(`inputarea ${Dc}`),this.textArea.setAttribute(`wrap`,this._textAreaWrapping&&!this._visibleTextArea?`on`:`off`);let{tabSize:c}=this._context.viewModel.model.getOptions();this.textArea.domNode.style.tabSize=`${c*this._fontInfo.spaceWidth}px`,this.textArea.setAttribute(`autocorrect`,`off`),this.textArea.setAttribute(`autocapitalize`,`off`),this.textArea.setAttribute(`autocomplete`,`off`),this.textArea.setAttribute(`spellcheck`,`false`),this.textArea.setAttribute(`aria-label`,Hu(o,this._keybindingService)),this.textArea.setAttribute(`aria-required`,o.get(9)?`true`:`false`),this.textArea.setAttribute(`tabindex`,String(o.get(140))),this.textArea.setAttribute(`role`,`textbox`),this.textArea.setAttribute(`aria-roledescription`,de(65,`editor`)),this.textArea.setAttribute(`aria-multiline`,`true`),this.textArea.setAttribute(`aria-autocomplete`,o.get(104)?`none`:`both`),this._ensureReadOnlyAttribute(),this.textAreaCover=B(document.createElement(`div`)),this.textAreaCover.setPosition(`absolute`),t.appendChild(this.textArea),t.appendChild(this.textAreaCover);let l=new Vu,u={getDataToCopy:()=>_o(this._context.viewModel,this._modelSelections,this._emptySelectionClipboard,this._copyWithSyntaxHighlighting),getScreenReaderContent:()=>{if(this._accessibilitySupport===1){let e=this._selections[0];if(oe&&e.isEmpty()){let t=e.getStartPosition(),n=this._getWordBeforePosition(t);if(n.length===0&&(n=this._getCharacterBeforePosition(t)),n.length>0)return new xo(n,n.length,n.length,j.fromPositions(t),0)}if(oe&&!e.isEmpty()&&this._context.viewModel.getValueLengthInRange(e,0)<500){let t=this._context.viewModel.getValueInRange(e,0);return new xo(t,0,t.length,e,0)}return bt&&!e.isEmpty()?new xo(`vscode-placeholder`,0,18,null,void 0):xo.EMPTY}if(wt){let e=this._selections[0];if(e.isEmpty()){let t=e.getStartPosition(),[n,r]=this._getAndroidWordAtPosition(t);if(n.length>0)return new xo(n,r,r,j.fromPositions(t),0)}return xo.EMPTY}let e=l.fromEditorSelection(this._context.viewModel,this._selections[0],this._accessibilityPageSize,this._accessibilitySupport===0);return xo.fromScreenReaderContentState(e)},deduceModelPosition:(e,t,n)=>this._context.viewModel.deduceModelPositionRelativeToViewPosition(e,t,n)},d=this._register(new Do(this.textArea.domNode));this._textAreaInput=this._register(this._instantiationService.createInstance(Eo,u,d,ne,{isAndroid:wt,isChrome:ht,isFirefox:at,isSafari:bt})),this._register(this._textAreaInput.onKeyDown(e=>{this._viewController.emitKeyDown(e)})),this._register(this._textAreaInput.onKeyUp(e=>{this._viewController.emitKeyUp(e)})),this._register(this._textAreaInput.onPaste(e=>{let t=!1,n=null,r=null;e.metadata&&(t=this._emptySelectionClipboard&&!!e.metadata.isFromEmptySelection,n=e.metadata.multicursorText===void 0?null:e.metadata.multicursorText,r=e.metadata.mode),this._viewController.paste(e.text,t,n,r)})),this._register(this._textAreaInput.onCut(()=>{this._viewController.cut()})),this._register(this._textAreaInput.onType(e=>{e.replacePrevCharCnt||e.replaceNextCharCnt||e.positionDelta?this._viewController.compositionType(e.text,e.replacePrevCharCnt,e.replaceNextCharCnt,e.positionDelta):this._viewController.type(e.text)})),this._register(this._textAreaInput.onSelectionChangeRequest(e=>{this._viewController.setSelection(e)})),this._register(this._textAreaInput.onCompositionStart(e=>{let t=this.textArea.domNode,n=this._modelSelections[0],{distanceToModelLineStart:r,widthOfHiddenTextBefore:i}=(()=>{let e=t.value.substring(0,Math.min(t.selectionStart,t.selectionEnd)),r=e.lastIndexOf(`
`),i=e.substring(r+1),a=i.lastIndexOf(` `),o=i.length-a-1,s=n.getStartPosition(),c=Math.min(s.column-1,o),l=s.column-1-c,u=i.substring(0,i.length-c),{tabSize:d}=this._context.viewModel.model.getOptions();return{distanceToModelLineStart:l,widthOfHiddenTextBefore:Yu(this.textArea.domNode.ownerDocument,u,this._fontInfo,d)}})(),{distanceToModelLineEnd:a}=(()=>{let e=t.value.substring(Math.max(t.selectionStart,t.selectionEnd)),r=e.indexOf(`
`),i=r===-1?e:e.substring(0,r),a=i.indexOf(` `),o=a===-1?i.length:i.length-a-1,s=n.getEndPosition(),c=Math.min(this._context.viewModel.model.getLineMaxColumn(s.lineNumber)-s.column,o);return{distanceToModelLineEnd:this._context.viewModel.model.getLineMaxColumn(s.lineNumber)-s.column-c}})();this._context.viewModel.revealRange(`keyboard`,!0,j.fromPositions(this._selections[0].getStartPosition()),0,1),this._visibleTextArea=new Ku(this._context,n.startLineNumber,r,i,a),this.textArea.setAttribute(`wrap`,this._textAreaWrapping&&!this._visibleTextArea?`on`:`off`),this._visibleTextArea.prepareRender(this._visibleRangeProvider),this._render(),this.textArea.setClassName(`inputarea ${Dc} ime-input`),this._viewController.compositionStart(),this._context.viewModel.onCompositionStart()})),this._register(this._textAreaInput.onCompositionUpdate(e=>{this._visibleTextArea&&(this._visibleTextArea.prepareRender(this._visibleRangeProvider),this._render())})),this._register(this._textAreaInput.onCompositionEnd(()=>{this._visibleTextArea=null,this.textArea.setAttribute(`wrap`,this._textAreaWrapping&&!this._visibleTextArea?`on`:`off`),this._render(),this.textArea.setClassName(`inputarea ${Dc}`),this._viewController.compositionEnd(),this._context.viewModel.onCompositionEnd()})),this._register(this._textAreaInput.onFocus(()=>{this._context.viewModel.setHasFocus(!0)})),this._register(this._textAreaInput.onBlur(()=>{this._context.viewModel.setHasFocus(!1)})),this._register(Zr.onDidChange(()=>{this._ensureReadOnlyAttribute()}))}get domNode(){return this.textArea}writeScreenReaderContent(e){this._textAreaInput.writeNativeTextAreaContent(e)}dispose(){super.dispose(),this.textArea.domNode.remove(),this.textAreaCover.domNode.remove()}_getAndroidWordAtPosition(e){let t=this._context.viewModel.getLineContent(e.lineNumber),n=Zn('`~!@#$%^&*()-=+[{]}\\|;:",.<>/?',[]),r=!0,i=e.column,a=!0,o=e.column,s=0;for(;s<50&&(r||a);){if(r&&i<=1&&(r=!1),r){let e=t.charCodeAt(i-2);n.get(e)===0?i--:r=!1}if(a&&o>t.length&&(a=!1),a){let e=t.charCodeAt(o-1);n.get(e)===0?o++:a=!1}s++}return[t.substring(i-1,o-1),e.column-i]}_getWordBeforePosition(e){let t=this._context.viewModel.getLineContent(e.lineNumber),n=Zn(this._context.configuration.options.get(148),[]),r=e.column,i=0;for(;r>1;){let a=t.charCodeAt(r-2);if(n.get(a)!==0||i>50)return t.substring(r-1,e.column-1);i++,r--}return t.substring(0,e.column-1)}_getCharacterBeforePosition(e){if(e.column>1){let t=this._context.viewModel.getLineContent(e.lineNumber).charAt(e.column-2);if(!ce(t.charCodeAt(0)))return t}return``}_setAccessibilityOptions(e){this._accessibilitySupport=e.get(2);let t=e.get(3);this._accessibilitySupport===2&&t===Gr.accessibilityPageSize.defaultValue?this._accessibilityPageSize=500:this._accessibilityPageSize=t;let n=e.get(165).wrappingColumn;if(n!==-1&&this._accessibilitySupport!==1){let t=e.get(59);this._textAreaWrapping=!0,this._textAreaWidth=Math.round(n*t.typicalHalfwidthCharacterWidth)}else this._textAreaWrapping=!1,this._textAreaWidth=+!qu}onConfigurationChanged(e){let t=this._context.configuration.options,n=t.get(165);this._setAccessibilityOptions(t),this._contentLeft=n.contentLeft,this._contentWidth=n.contentWidth,this._contentHeight=n.height,this._fontInfo=t.get(59),this._emptySelectionClipboard=t.get(45),this._copyWithSyntaxHighlighting=t.get(31),this.textArea.setAttribute(`wrap`,this._textAreaWrapping&&!this._visibleTextArea?`on`:`off`);let{tabSize:r}=this._context.viewModel.model.getOptions();return this.textArea.domNode.style.tabSize=`${r*this._fontInfo.spaceWidth}px`,this.textArea.setAttribute(`aria-label`,Hu(t,this._keybindingService)),this.textArea.setAttribute(`aria-required`,t.get(9)?`true`:`false`),this.textArea.setAttribute(`tabindex`,String(t.get(140))),(e.hasChanged(41)||e.hasChanged(104))&&this._ensureReadOnlyAttribute(),e.hasChanged(2)&&this._textAreaInput.writeNativeTextAreaContent(`strategy changed`),!0}onCursorStateChanged(e){return this._selections=e.selections.slice(0),this._modelSelections=e.modelSelections.slice(0),this._textAreaInput.writeNativeTextAreaContent(`selection changed`),!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return this._scrollLeft=e.scrollLeft,this._scrollTop=e.scrollTop,!0}onZonesChanged(e){return!0}isFocused(){return this._textAreaInput.isFocused()}focus(){this._textAreaInput.focusTextArea()}refreshFocusState(){this._textAreaInput.refreshFocusState()}getLastRenderData(){return this._lastRenderPosition}setAriaOptions(e){e.activeDescendant?(this.textArea.setAttribute(`aria-haspopup`,`true`),this.textArea.setAttribute(`aria-autocomplete`,`list`),this.textArea.setAttribute(`aria-activedescendant`,e.activeDescendant)):(this.textArea.setAttribute(`aria-haspopup`,`false`),this.textArea.setAttribute(`aria-autocomplete`,`both`),this.textArea.removeAttribute(`aria-activedescendant`)),e.role&&this.textArea.setAttribute(`role`,e.role)}_ensureReadOnlyAttribute(){let e=this._context.configuration.options;!Zr.enabled||e.get(41)&&e.get(104)?this.textArea.setAttribute(`readonly`,`true`):this.textArea.removeAttribute(`readonly`)}prepareRender(e){this._primaryCursorPosition=new b(this._selections[0].positionLineNumber,this._selections[0].positionColumn),this._primaryCursorVisibleRange=e.visibleRangeForPosition(this._primaryCursorPosition),this._visibleTextArea?.prepareRender(e)}render(e){this._textAreaInput.writeNativeTextAreaContent(`render`),this._render()}_render(){if(this._visibleTextArea){let e=this._visibleTextArea.visibleTextareaStart,t=this._visibleTextArea.visibleTextareaEnd,n=this._visibleTextArea.startPosition,r=this._visibleTextArea.endPosition;if(n&&r&&e&&t&&t.left>=this._scrollLeft&&e.left<=this._scrollLeft+this._contentWidth){let i=this._context.viewLayout.getVerticalOffsetForLineNumber(this._primaryCursorPosition.lineNumber)-this._scrollTop,a=Uu(this.textArea.domNode.value.substr(0,this.textArea.domNode.selectionStart)),o=this._visibleTextArea.widthOfHiddenLineTextBefore,s=this._contentLeft+e.left-this._scrollLeft,c=t.left-e.left+1;if(s<this._contentLeft){let e=this._contentLeft-s;s+=e,o+=e,c-=e}c>this._contentWidth&&(c=this._contentWidth);let l=this._context.viewLayout.getLineHeightForLineNumber(n.lineNumber),u=this._context.viewModel.getFontSizeAtPosition(this._primaryCursorPosition),d=this._context.viewModel.getViewLineData(n.lineNumber),f=d.tokens.findTokenIndexAtOffset(n.column-1),p=f===d.tokens.findTokenIndexAtOffset(r.column-1),m=this._visibleTextArea.definePresentation(p?d.tokens.getPresentation(f):null);this.textArea.domNode.scrollTop=a*l,this.textArea.domNode.scrollLeft=o,this._doRender({lastRenderPosition:null,top:i,left:s,width:c,height:l,useCover:!1,color:(Cn.getColorMap()||[])[m.foreground],italic:m.italic,bold:m.bold,underline:m.underline,strikethrough:m.strikethrough,fontSize:u})}return}if(!this._primaryCursorVisibleRange){this._renderAtTopLeft();return}let e=this._contentLeft+this._primaryCursorVisibleRange.left-this._scrollLeft;if(e<this._contentLeft||e>this._contentLeft+this._contentWidth){this._renderAtTopLeft();return}let t=this._context.viewLayout.getVerticalOffsetForLineNumber(this._selections[0].positionLineNumber)-this._scrollTop;if(t<0||t>this._contentHeight){this._renderAtTopLeft();return}if(oe||this._accessibilitySupport===2){let n=this._primaryCursorPosition.lineNumber,r=this._context.viewLayout.getLineHeightForLineNumber(n);this._doRender({lastRenderPosition:this._primaryCursorPosition,top:t,left:this._textAreaWrapping?this._contentLeft:e,width:this._textAreaWidth,height:r,useCover:!1}),this.textArea.domNode.scrollLeft=this._primaryCursorVisibleRange.left;let i=this._textAreaInput.textAreaState.newlineCountBeforeSelection??Uu(this.textArea.domNode.value.substring(0,this.textArea.domNode.selectionStart));this.textArea.domNode.scrollTop=i*r;return}this._doRender({lastRenderPosition:this._primaryCursorPosition,top:t,left:this._textAreaWrapping?this._contentLeft:e,width:this._textAreaWidth,height:+!qu,useCover:!1})}_renderAtTopLeft(){this._doRender({lastRenderPosition:null,top:0,left:0,width:this._textAreaWidth,height:+!qu,useCover:!0})}_doRender(e){this._lastRenderPosition=e.lastRenderPosition;let t=this.textArea,n=this.textAreaCover;H(t,this._fontInfo),t.setTop(e.top),t.setLeft(e.left),t.setWidth(e.width),t.setHeight(e.height),t.setLineHeight(e.height),t.setFontSize(e.fontSize??this._fontInfo.fontSize),t.setColor(e.color?Wt.Format.CSS.formatHex(e.color):``),t.setFontStyle(e.italic?`italic`:``),e.bold&&t.setFontWeight(`bold`),t.setTextDecoration(`${e.underline?` underline`:``}${e.strikethrough?` line-through`:``}`),n.setTop(e.useCover?e.top:0),n.setLeft(e.useCover?e.left:0),n.setWidth(e.useCover?e.width:0),n.setHeight(e.useCover?e.height:0);let r=this._context.configuration.options;r.get(66)?n.setClassName(`monaco-editor-background textAreaCover `+Fc.OUTER_CLASS_NAME):r.get(76).renderType===0?n.setClassName(`monaco-editor-background textAreaCover`):n.setClassName(`monaco-editor-background textAreaCover `+Ec.CLASS_NAME)}};Ju=Wu([Gu(4,Er),Gu(5,Pt)],Ju);function Yu(e,t,n,r){if(t.length===0)return 0;let i=e.createElement(`div`);i.style.position=`absolute`,i.style.top=`-50000px`,i.style.width=`50000px`;let a=e.createElement(`span`);H(a,n),a.style.whiteSpace=`pre`,a.style.tabSize=`${r*n.spaceWidth}px`,a.append(t),i.appendChild(a),e.body.appendChild(i);let o=a.offsetWidth;return i.remove(),o}var Xu=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},Zu=function(e,t){return function(n,r){t(n,r,e)}},Qu=class extends i{constructor(e,t,n){super(),this._domNode=t,this._onFocusChange=n,this._isFocused=!1,this._isPaused=!1,this._register(P(this._domNode,`focus`,()=>{e.trace(`NativeEditContext.focus`),!this._isPaused&&this.refreshFocusState()})),this._register(P(this._domNode,`blur`,()=>{e.trace(`NativeEditContext.blur`),!this._isPaused&&this._handleFocusedChanged(!1)}))}pause(){this._isPaused=!0}resume(){this._isPaused=!1,this.refreshFocusState()}_handleFocusedChanged(e){this._isFocused!==e&&(this._isFocused=e,this._onFocusChange(this._isFocused))}focus(){this._domNode.focus(),this.refreshFocusState()}refreshFocusState(){let e=St(this._domNode),t=e?e.activeElement:Xe(),n=this._domNode===t;this._handleFocusedChanged(n)}get isFocused(){return this._isFocused}};Qu=Xu([Zu(0,p)],Qu);function $u(e,t,n,r){return e.addEventListener(t,n,r),{dispose(){e.removeEventListener(t,n)}}}var ed=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},td=function(e,t){return function(n,r){t(n,r,e)}},nd=Xr(`richScreenReaderContent`,{createHTML:e=>e}),rd=`data-line-number`,id=class extends i{constructor(e,t,n,r){super(),this._domNode=e,this._context=t,this._viewController=n,this._accessibilityService=r,this._selectionChangeListener=this._register(new o),this._accessibilityPageSize=1,this._ignoreSelectionChangeTime=0,this._state=sd.NULL,this._strategy=new cd,this._renderedLines=new Map,this._renderedSelection=new L(1,1,1,1),this.onConfigurationChanged(this._context.configuration.options)}updateScreenReaderContent(e){let t=F().document.activeElement;if(!(!t||t!==this._domNode.domNode))if(this._accessibilityService.isScreenReaderOptimized()){let t=this._getScreenReaderContentLineIntervals(e);this._state.equals(t)||(this._state=t,this._renderedLines=this._renderScreenReaderContent(t)),this._renderedSelection.equalsSelection(e)||(this._renderedSelection=e,this._setSelectionOnScreenReaderContent(this._context,this._renderedLines,e))}else this._state=sd.NULL,this._setIgnoreSelectionChangeTime(`setValue`),this._domNode.domNode.textContent=``}updateScrollTop(e){let t=this._state.intervals;if(!t.length)return;let n=this._context.viewModel.viewLayout,r=t[0].startLine,i=n.getVerticalOffsetForLineNumber(r),a=n.getVerticalOffsetForLineNumber(e.positionLineNumber);this._domNode.domNode.scrollTop=a-i}onFocusChange(e){e?this._selectionChangeListener.value=this._setSelectionChangeListener():this._selectionChangeListener.value=void 0}onConfigurationChanged(e){this._accessibilityPageSize=e.get(3)}onWillCut(){this._setIgnoreSelectionChangeTime(`onCut`)}onWillPaste(){this._setIgnoreSelectionChangeTime(`onWillPaste`)}_setIgnoreSelectionChangeTime(e){this._ignoreSelectionChangeTime=Date.now()}_setSelectionChangeListener(){let e=0;return P(this._domNode.domNode.ownerDocument,`selectionchange`,()=>{if(F().document.activeElement!==this._domNode.domNode||!this._accessibilityService.isScreenReaderOptimized()||!Zr.enabled)return;let t=Date.now(),n=t-e;if(e=t,n<5)return;let r=t-this._ignoreSelectionChangeTime;if(this._ignoreSelectionChangeTime=0,r<100)return;let i=this._getEditorSelectionFromDomRange();i&&this._viewController.setSelection(i)})}_renderScreenReaderContent(e){let t=[],n=new Map;for(let r of e.intervals)for(let e=r.startLine;e<=r.endLine;e++){let r=this._renderLine(e);n.set(e,r),t.push(r.domNode)}return this._setIgnoreSelectionChangeTime(`setValue`),this._domNode.domNode.replaceChildren(...t),n}_renderLine(e){let t=this._context.viewModel,n=t.getViewLineRenderingData(e),r=this._context.configuration.options,i=r.get(59),a=r.get(133),o=r.get(108),s=r.get(60),c=r.get(40),l=ma.filter(n.inlineDecorations,e,n.minColumn,n.maxColumn),u=i.isMonospace&&!c,d=s!==qr.OFF,f;f=r.get(47)===`off`?r.get(113):`none`;let p=new va(u,i.canUseHalfwidthRightwardsArrow,n.content,n.continuesWithWrappedLine,n.isBasicASCII,n.containsRTL,n.minColumn-1,n.tokens,l,n.tabSize,n.startVisibleColumn,i.spaceWidth,i.middotWidth,i.wsmiddotWidth,a,f,o,d,null,null,0,!0),m=new er(1e4),h=Sa(p,m),g=m.build(),_=nd?.createHTML(g)??g,v=t.viewLayout.getLineHeightForLineNumber(e)+`px`,y=document.createElement(`div`);return y.innerHTML=_,y.style.lineHeight=v,y.style.height=v,y.setAttribute(rd,e.toString()),new ad(y,h.characterMapping)}_setSelectionOnScreenReaderContent(e,t,n){let r=F().document.getSelection();if(!r)return;let i=n.startLineNumber,a=n.endLineNumber,o=t.get(i),s=t.get(a);if(!o||!s)return;let c=e.viewModel,l=c.model,u=c.coordinatesConverter,d=new j(i,1,i,n.selectionStartColumn),f=u.convertViewRangeToModelRange(d),p=l.getCharacterCountInRange(f),m=new j(a,1,a,n.positionColumn),h=u.convertViewRangeToModelRange(m),g=l.getCharacterCountInRange(h),_=o.characterMapping.getDomPosition(p),v=s.characterMapping.getDomPosition(g),y=o.domNode.firstChild,b=s.domNode.firstChild,x=y.childNodes,S=b.childNodes,C=x.item(_.partIndex),w=S.item(v.partIndex);!C.firstChild||!w.firstChild||(this._setIgnoreSelectionChangeTime(`setRange`),r.setBaseAndExtent(C.firstChild,n.startColumn===1?0:_.charIndex+1,w.firstChild,n.endColumn===1?0:v.charIndex+1))}_getScreenReaderContentLineIntervals(e){return this._strategy.fromEditorSelection(this._context.viewModel,e,this._accessibilityPageSize)}_getEditorSelectionFromDomRange(){if(!this._renderedLines)return;let e=F().document.getSelection();if(!e||e.rangeCount===0)return;let t=e.getRangeAt(0),n=t.startContainer,r=t.endContainer,i=n.parentElement,a=r.parentElement;if(!i||!kt(i)||!a||!kt(a))return;let o=i.parentElement?.parentElement,s=a.parentElement?.parentElement;if(!o||!s)return;let c=o.getAttribute(rd),l=s.getAttribute(rd);if(!c||!l)return;let u=parseInt(c),d=parseInt(l),f=this._renderedLines.get(u)?.characterMapping,p=this._renderedLines.get(d)?.characterMapping;if(!f||!p)return;let m=Ka(f,i,t.startOffset),h=Ka(p,a,t.endOffset);return e.direction===`forward`?new L(u,m,d,h):new L(d,h,u,m)}};id=ed([td(3,Lr)],id);var ad=class{constructor(e,t){this.domNode=e,this.characterMapping=t}},od=class{constructor(e,t){this.startLine=e,this.endLine=t}},sd=class e{constructor(e,t){this.intervals=t;let n=``;for(let r of t)for(let t=r.startLine;t<=r.endLine;t++)n+=e.getLineContent(t)+`
`;this.value=n}equals(e){return this.value===e.value}static get NULL(){return new e({getLineContent:()=>``,getLineCount:()=>1,getLineMaxColumn:()=>1,getValueInRange:()=>``,getValueLengthInRange:()=>0,modifyPosition:(e,t)=>e},[])}},cd=class{constructor(){}_getPageOfLine(e,t){return Math.floor((e-1)/t)}_getRangeForPage(e,t,n){let r=t*n;return new od(r+1,Math.min(r+n,e.getLineCount()))}fromEditorSelection(e,t,n){let r=this._getPageOfLine(t.startLineNumber,n),i=this._getRangeForPage(e,r,n),a=this._getPageOfLine(t.endLineNumber,n),o=this._getRangeForPage(e,a,n),s=[{startLine:i.startLine,endLine:i.endLine}];return r+1<a&&s.push({startLine:o.startLine,endLine:o.endLine}),new sd(e,s)}},ld=class{constructor(e){this.replacements=e;let t=-1;for(let n of e){if(!(n.replaceRange.start>=t))throw new A(`Edits must be disjoint and sorted. Found ${n} after ${t}`);t=n.replaceRange.endExclusive}}toString(){return`[${this.replacements.map(e=>e.toString()).join(`, `)}]`}normalize(){let e=[],t;for(let n of this.replacements)if(!(n.getNewLength()===0&&n.replaceRange.length===0)){if(t&&t.replaceRange.endExclusive===n.replaceRange.start){let e=t.tryJoinTouching(n);if(e){t=e;continue}}t&&e.push(t),t=n}return t&&e.push(t),this._createNew(e)}compose(e){let t=this.normalize(),n=e.normalize();if(t.isEmpty())return n;if(n.isEmpty())return t;let r=[...t.replacements],i=[],a=0;for(let e of n.replacements){for(;;){let t=r[0];if(!t||t.replaceRange.start+a+t.getNewLength()>=e.replaceRange.start)break;r.shift(),i.push(t),a+=t.getNewLength()-t.replaceRange.length}let t=a,n,o;for(;;){let t=r[0];if(!t||t.replaceRange.start+a>e.replaceRange.endExclusive)break;n||=t,o=t,r.shift(),a+=t.getNewLength()-t.replaceRange.length}if(!n)i.push(e.delta(-a));else{let s=Math.min(n.replaceRange.start,e.replaceRange.start-t),c=e.replaceRange.start-(n.replaceRange.start+t);if(c>0){let e=n.slice(I.emptyAt(s),new I(0,c));i.push(e)}if(!o)throw new A(`Invariant violation: lastIntersecting is undefined`);let l=o.replaceRange.endExclusive+a-e.replaceRange.endExclusive;if(l>0){let e=o.slice(I.ofStartAndLength(o.replaceRange.endExclusive,0),new I(o.getNewLength()-l,o.getNewLength()));r.unshift(e),a-=e.getNewLength()-e.replaceRange.length}let u=new I(s,e.replaceRange.endExclusive-a),d=e.slice(u,new I(0,e.getNewLength()));i.push(d)}}for(;;){let e=r.shift();if(!e)break;i.push(e)}return this._createNew(i).normalize()}getNewRanges(){let e=[],t=0;for(let n of this.replacements)e.push(I.ofStartAndLength(n.replaceRange.start+t,n.getNewLength())),t+=n.getLengthDelta();return e}isEmpty(){return this.replacements.length===0}},ud=class{constructor(e){this.replaceRange=e}delta(e){return this.slice(this.replaceRange.delta(e),new I(0,this.getNewLength()))}getLengthDelta(){return this.getNewLength()-this.replaceRange.length}toString(){return`{ ${this.replaceRange.toString()} -> ${this.getNewLength()} }`}get isEmpty(){return this.getNewLength()===0&&this.replaceRange.length===0}getRangeAfterReplace(){return new I(this.replaceRange.start,this.replaceRange.start+this.getNewLength())}},dd=class extends ld{apply(e){let t=[],n=0;for(let r of this.replacements)t.push(e.substring(n,r.replaceRange.start)),t.push(r.newText),n=r.replaceRange.endExclusive;return t.push(e.substring(n)),t.join(``)}},fd=class extends ud{constructor(e,t){super(e),this.newText=t}getNewLength(){return this.newText.length}toString(){return`${this.replaceRange} -> ${JSON.stringify(this.newText)}`}replace(e){return e.substring(0,this.replaceRange.start)+this.newText+e.substring(this.replaceRange.endExclusive)}removeCommonSuffixPrefix(e){let t=e.substring(this.replaceRange.start,this.replaceRange.endExclusive),n=re(t,this.newText),r=Math.min(t.length-n,this.newText.length-n,f(t,this.newText));return new md(new I(this.replaceRange.start+n,this.replaceRange.endExclusive-r),this.newText.substring(n,this.newText.length-r))}removeCommonSuffixAndPrefix(e){return this.removeCommonSuffix(e).removeCommonPrefix(e)}removeCommonPrefix(e){let t=re(this.replaceRange.substring(e),this.newText);return t===0?this:this.slice(this.replaceRange.deltaStart(t),new I(t,this.newText.length))}removeCommonSuffix(e){let t=f(this.replaceRange.substring(e),this.newText);return t===0?this:this.slice(this.replaceRange.deltaEnd(-t),new I(0,this.newText.length-t))}toJson(){return{txt:this.newText,pos:this.replaceRange.start,len:this.replaceRange.length}}},pd=class e extends dd{static{this.empty=new e([])}static compose(t){if(t.length===0)return e.empty;let n=t[0];for(let e=1;e<t.length;e++)n=n.compose(t[e]);return n}constructor(e){super(e)}_createNew(t){return new e(t)}},md=class e extends fd{static insert(t,n){return new e(I.emptyAt(t),n)}static replace(t,n){return new e(t,n)}equals(e){return this.replaceRange.equals(e.replaceRange)&&this.newText===e.newText}tryJoinTouching(t){return new e(this.replaceRange.joinRightTouching(t.replaceRange),this.newText+t.newText)}slice(t,n){return new e(t,n?n.substring(this.newText):this.newText)}};function hd(e,t){e=e.slice();let n=[],r=0;for(let i of t.replacements){for(;;){let t=e[0];if(!t||t.endExclusive>=i.replaceRange.start)break;e.shift(),n.push(t.delta(r))}let t=[];for(;;){let n=e[0];if(!n||!n.intersectsOrTouches(i.replaceRange))break;e.shift(),t.push(n)}for(let n=t.length-1;n>=0;n--){let r=t[n],a=r.intersect(i.replaceRange).length;r=r.deltaEnd(-a+(n===0?i.newText.length:0));let o=r.start-i.replaceRange.start;o>0&&(r=r.delta(-o)),n!==0&&(r=r.delta(i.newText.length)),r=r.delta(-(i.newText.length-i.replaceRange.length)),e.unshift(r)}r+=i.newText.length-i.replaceRange.length}for(;;){let t=e[0];if(!t)break;e.shift(),n.push(t.delta(r))}return n}ei({StringEdit:pd,StringReplacement:md,TextReplacement:Jr,TextEdit:ti,TextLength:Gn});var gd=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},_d=function(e,t){return function(n,r){t(n,r,e)}},vd=class extends i{constructor(e,t,n,r){super(),this._domNode=e,this._context=t,this._viewController=n,this._accessibilityService=r,this._selectionChangeListener=this._register(new o),this._accessibilityPageSize=1,this._ignoreSelectionChangeTime=0,this._strategy=new Vu,this.onConfigurationChanged(this._context.configuration.options)}updateScreenReaderContent(e){let t=this._domNode.domNode,n=F().document.activeElement;if(!(!n||n!==t))if(this._accessibilityService.isScreenReaderOptimized()){this._state=this._getScreenReaderContentState(e),t.textContent!==this._state.value&&(this._setIgnoreSelectionChangeTime(`setValue`),t.textContent=this._state.value);let n=F().document.getSelection();if(!n)return;let r=this._getScreenReaderRange(this._state.selectionStart,this._state.selectionEnd);if(!r)return;this._setIgnoreSelectionChangeTime(`setRange`),n.setBaseAndExtent(r.anchorNode,r.anchorOffset,r.focusNode,r.focusOffset)}else this._state=void 0,this._setIgnoreSelectionChangeTime(`setValue`),this._domNode.domNode.textContent=``}updateScrollTop(e){if(!this._state)return;let t=this._context.viewModel.viewLayout,n=this._state.startPositionWithinEditor.lineNumber,r=t.getVerticalOffsetForLineNumber(n),i=t.getVerticalOffsetForLineNumber(e.positionLineNumber);this._domNode.domNode.scrollTop=i-r}onFocusChange(e){e?this._selectionChangeListener.value=this._setSelectionChangeListener():this._selectionChangeListener.value=void 0}onConfigurationChanged(e){this._accessibilityPageSize=e.get(3)}onWillCut(){this._setIgnoreSelectionChangeTime(`onCut`)}onWillPaste(){this._setIgnoreSelectionChangeTime(`onWillPaste`)}_setIgnoreSelectionChangeTime(e){this._ignoreSelectionChangeTime=Date.now()}_setSelectionChangeListener(){let e=0;return P(this._domNode.domNode.ownerDocument,`selectionchange`,()=>{let t=this._accessibilityService.isScreenReaderOptimized();if(!this._state||!t||!Zr.enabled||F().document.activeElement!==this._domNode.domNode)return;let n=F().document.getSelection();if(!n||n.rangeCount===0)return;let r=n.getRangeAt(0),i=Date.now(),a=i-e;if(e=i,a<5)return;let o=i-this._ignoreSelectionChangeTime;this._ignoreSelectionChangeTime=0,!(o<100)&&this._viewController.setSelection(this._getEditorSelectionFromDomRange(this._context,this._state,n.direction,r))})}_getScreenReaderContentState(e){let t=this._strategy.fromEditorSelection(this._context.viewModel,e,this._accessibilityPageSize,this._accessibilityService.getAccessibilitySupport()===0),n=this._context.viewModel.model.getPositionAt(1/0),r=t.value;return n.column===1&&e.getEndPosition().equals(n)&&(r+=`
`),t.value=r,t}_getScreenReaderRange(e,t){let n=this._domNode.domNode.firstChild;if(!n)return;let r=new globalThis.Range;return r.setStart(n,e),r.setEnd(n,t),{anchorNode:n,anchorOffset:e,focusNode:n,focusOffset:t}}_getEditorSelectionFromDomRange(e,t,n,r){let i=e.viewModel,a=i.model,o=i.coordinatesConverter.convertViewPositionToModelPosition(t.startPositionWithinEditor),s=a.getOffsetAt(o),c=r.startOffset+s,l=r.endOffset+s;if(a.getEndOfLineSequence()===1){let e=t.value,n=new Yr(e),i=n.getPosition(r.startOffset),a=n.getPosition(r.endOffset);c+=i.lineNumber-1,l+=a.lineNumber-1}let u=a.getPositionAt(c),d=a.getPositionAt(l),f=n===`forward`?u:d,p=n===`forward`?d:u;return L.fromPositions(f,p)}};vd=gd([_d(3,Lr)],vd);var 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 extends i{constructor(e,t,n,r,i){super(),this._domNode=e,this._context=t,this._viewController=n,this._keybindingService=r,this._accessibilityService=i,this._contentLeft=1,this._contentWidth=1,this._contentHeight=1,this._divWidth=1,this._primarySelection=new L(1,1,1,1),this._primaryCursorVisibleRange=null,this._state=this._register(new o),this._instantiateScreenReaderContent(),this._updateConfigurationSettings(),this._updateDomAttributes()}onWillPaste(){this._state.value?.onWillPaste()}onWillCut(){this._state.value?.onWillCut()}handleFocusChange(e){this._state.value?.onFocusChange(e),this.writeScreenReaderContent()}onConfigurationChanged(e){this._instantiateScreenReaderContent(),this._updateConfigurationSettings(),this._updateDomAttributes(),e.hasChanged(2)&&this.writeScreenReaderContent()}_instantiateScreenReaderContent(){let e=this._context.configuration.options.get(107);this._renderRichContent!==e&&(this._renderRichContent=e,this._state.value=this._createScreenReaderContent(e))}_createScreenReaderContent(e){return e?new id(this._domNode,this._context,this._viewController,this._accessibilityService):new vd(this._domNode,this._context,this._viewController,this._accessibilityService)}_updateConfigurationSettings(){let e=this._context.configuration.options,t=e.get(165),n=t.wrappingColumn;this._contentLeft=t.contentLeft,this._contentWidth=t.contentWidth,this._contentHeight=t.height,this._fontInfo=e.get(59),this._divWidth=Math.round(n*this._fontInfo.typicalHalfwidthCharacterWidth),this._state.value?.onConfigurationChanged(e)}_updateDomAttributes(){let e=this._context.configuration.options;this._domNode.domNode.setAttribute(`role`,`textbox`),this._domNode.domNode.setAttribute(`aria-required`,e.get(9)?`true`:`false`),this._domNode.domNode.setAttribute(`aria-multiline`,`true`),this._domNode.domNode.setAttribute(`aria-autocomplete`,e.get(104)?`none`:`both`),this._domNode.domNode.setAttribute(`aria-roledescription`,de(60,`editor`)),this._domNode.domNode.setAttribute(`aria-label`,Hu(e,this._keybindingService));let t=this._context.viewModel.model.getOptions().tabSize,n=e.get(59).spaceWidth;this._domNode.domNode.style.tabSize=`${t*n}px`;let r=e.get(154),i=r===`inherit`?e.get(153):r,a=i===`inherit`?e.get(149):i;this._domNode.domNode.style.textWrap=a===`off`?`nowrap`:`wrap`}onCursorStateChanged(e){this._primarySelection=e.selections[0]??new L(1,1,1,1)}prepareRender(e){this.writeScreenReaderContent(),this._primaryCursorVisibleRange=e.visibleRangeForPosition(this._primarySelection.getPosition())}render(e){if(!this._primaryCursorVisibleRange){this._renderAtTopLeft();return}let t=this._context.viewLayout.getCurrentScrollLeft(),n=this._contentLeft+this._primaryCursorVisibleRange.left-t;if(n<this._contentLeft||n>this._contentLeft+this._contentWidth){this._renderAtTopLeft();return}let r=this._context.viewLayout.getCurrentScrollTop(),i=this._primarySelection.positionLineNumber,a=this._context.viewLayout.getVerticalOffsetForLineNumber(i)-r;if(a<0||a>this._contentHeight){this._renderAtTopLeft();return}let o=this._context.viewLayout.getLineHeightForLineNumber(i);this._doRender(a,this._contentLeft,this._divWidth,o),this._state.value?.updateScrollTop(this._primarySelection)}_renderAtTopLeft(){this._doRender(0,0,this._contentWidth,1)}_doRender(e,t,n,r){H(this._domNode,this._fontInfo),this._domNode.setTop(e),this._domNode.setLeft(t),this._domNode.setWidth(n),this._domNode.setHeight(r),this._domNode.setLineHeight(r)}setAriaOptions(e){e.activeDescendant?(this._domNode.setAttribute(`aria-haspopup`,`true`),this._domNode.setAttribute(`aria-autocomplete`,`list`),this._domNode.setAttribute(`aria-activedescendant`,e.activeDescendant)):(this._domNode.setAttribute(`aria-haspopup`,`false`),this._domNode.setAttribute(`aria-autocomplete`,`both`),this._domNode.removeAttribute(`aria-activedescendant`)),e.role&&this._domNode.setAttribute(`role`,e.role)}writeScreenReaderContent(){this._state.value?.updateScreenReaderContent(this._primarySelection)}};xd=yd([bd(3,Er),bd(4,Lr)],xd);var Sd;(function(e){function t(e,t){return new e.EditContext(t)}e.create=t})(Sd||={});var Cd=new class{constructor(){this._nativeEditContextMapping=new Map}register(e,t){return this._nativeEditContextMapping.set(e,t),{dispose:()=>{this._nativeEditContextMapping.delete(e)}}}get(e){return this._nativeEditContextMapping.get(e)}},wd=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},Td=function(e,t){return function(n,r){t(n,r,e)}},Ed;(function(e){e.NONE=`edit-context-composition-none`,e.SECONDARY=`edit-context-composition-secondary`,e.PRIMARY=`edit-context-composition-primary`})(Ed||={});var Dd=class extends Bu{constructor(e,t,n,r,i,a,o){super(t),this._viewController=r,this._visibleRangeProvider=i,this.logService=o,this._previousEditContextSelection=new I(0,0),this._editContextPrimarySelection=new L(1,1,1,1),this._decorations=[],this._primarySelection=new L(1,1,1,1),this._targetWindowId=-1,this._scrollTop=0,this._scrollLeft=0,this._linesVisibleRanges=null,this.domNode=new Mr(document.createElement(`div`)),this.domNode.setClassName(`native-edit-context`),this._imeTextArea=new Mr(document.createElement(`textarea`)),this._imeTextArea.setClassName(`ime-text-area`),this._imeTextArea.setAttribute(`readonly`,`true`),this._imeTextArea.setAttribute(`tabindex`,`-1`),this._imeTextArea.setAttribute(`aria-hidden`,`true`),this.domNode.setAttribute(`autocorrect`,`off`),this.domNode.setAttribute(`autocapitalize`,`off`),this.domNode.setAttribute(`autocomplete`,`off`),this.domNode.setAttribute(`spellcheck`,`false`),this._updateDomAttributes(),n.appendChild(this.domNode),n.appendChild(this._imeTextArea),this._parent=n.domNode,this._focusTracker=this._register(new Qu(o,this.domNode.domNode,e=>{o.trace(`NativeEditContext#handleFocusChange : `,e),this._screenReaderSupport.handleFocusChange(e),this._context.viewModel.setHasFocus(e)}));let s=M(this.domNode.domNode);this._editContext=Sd.create(s),this.setEditContextOnDomNode(),this._screenReaderSupport=this._register(a.createInstance(xd,this.domNode,t,this._viewController)),this._register(P(this.domNode.domNode,`copy`,e=>{this.logService.trace(`NativeEditContext#copy`),this._ensureClipboardGetsEditorSelection(e)})),this._register(P(this.domNode.domNode,`cut`,e=>{this.logService.trace(`NativeEditContext#cut`),this._screenReaderSupport.onWillCut(),this._ensureClipboardGetsEditorSelection(e),this.logService.trace(`NativeEditContext#cut (before viewController.cut)`),this._viewController.cut()})),this._register(P(this.domNode.domNode,`keyup`,e=>this._onKeyUp(e))),this._register(P(this.domNode.domNode,`keydown`,async e=>this._onKeyDown(e))),this._register(P(this._imeTextArea.domNode,`keyup`,e=>this._onKeyUp(e))),this._register(P(this._imeTextArea.domNode,`keydown`,async e=>this._onKeyDown(e))),this._register(P(this.domNode.domNode,`beforeinput`,async e=>{(e.inputType===`insertParagraph`||e.inputType===`insertLineBreak`)&&this._onType(this._viewController,{text:`
`,replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0})})),this._register(P(this.domNode.domNode,`paste`,e=>{if(this.logService.trace(`NativeEditContext#paste`),e.preventDefault(),!e.clipboardData)return;let[t,n]=bo.getTextData(e.clipboardData);if(this.logService.trace(`NativeEditContext#paste with id : `,n?.id,` with text.length: `,t.length),!t)return;n||=vo.INSTANCE.get(t);let r=!1,i=null,a=null;n&&(r=this._context.configuration.options.get(45)&&!!n.isFromEmptySelection,i=n.multicursorText===void 0?null:n.multicursorText,a=n.mode),this.logService.trace(`NativeEditContext#paste (before viewController.paste)`),this._viewController.paste(t,r,i,a)})),this._register($u(this._editContext,`textformatupdate`,e=>this._handleTextFormatUpdate(e))),this._register($u(this._editContext,`characterboundsupdate`,e=>this._updateCharacterBounds(e)));let c;this._register($u(this._editContext,`textupdate`,e=>{let t=e.text;if(t.length===1){let n=t.charCodeAt(0);if(ce(n)){c=t;return}if(je(n)&&c){let n={text:c+t,selectionEnd:e.selectionEnd,selectionStart:e.selectionStart,updateRangeStart:e.updateRangeStart-1,updateRangeEnd:e.updateRangeEnd-1};c=void 0,this._emitTypeEvent(this._viewController,n);return}}this._emitTypeEvent(this._viewController,e)})),this._register($u(this._editContext,`compositionstart`,e=>{this._updateEditContext(),this._viewController.compositionStart(),this._context.viewModel.onCompositionStart()})),this._register($u(this._editContext,`compositionend`,e=>{this._updateEditContext(),this._viewController.compositionEnd(),this._context.viewModel.onCompositionEnd()}));let l=!1;this._register(Zr.onDidChange(()=>{Zr.enabled&&l&&(this._focusTracker.resume(),this.domNode.focus(),l=!1),!Zr.enabled&&this.isFocused()&&(this._focusTracker.pause(),this._imeTextArea.focus(),l=!0)})),this._register(Cd.register(e,this))}dispose(){this.domNode.domNode.editContext=void 0,this.domNode.domNode.blur(),this.domNode.domNode.remove(),this._imeTextArea.domNode.remove(),super.dispose()}setAriaOptions(e){this._screenReaderSupport.setAriaOptions(e)}getLastRenderData(){return this._primarySelection.getPosition()}prepareRender(e){this._screenReaderSupport.prepareRender(e),this._updateSelectionAndControlBoundsData(e)}onDidRender(){this._updateSelectionAndControlBoundsAfterRender()}render(e){this._screenReaderSupport.render(e)}onCursorStateChanged(e){return this._primarySelection=e.modelSelections[0]??new L(1,1,1,1),this._screenReaderSupport.onCursorStateChanged(e),this._updateEditContext(),!0}onConfigurationChanged(e){return this._screenReaderSupport.onConfigurationChanged(e),this._updateDomAttributes(),!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return this._updateEditContextOnLineChange(e.fromLineNumber,e.fromLineNumber+e.count-1),!0}onLinesDeleted(e){return this._updateEditContextOnLineChange(e.fromLineNumber,e.toLineNumber),!0}onLinesInserted(e){return this._updateEditContextOnLineChange(e.fromLineNumber,e.toLineNumber),!0}_updateEditContextOnLineChange(e,t){this._editContextPrimarySelection.endLineNumber<e||this._editContextPrimarySelection.startLineNumber>t||this._updateEditContext()}onScrollChanged(e){return this._scrollLeft=e.scrollLeft,this._scrollTop=e.scrollTop,!0}onZonesChanged(e){return!0}onWillPaste(){this.logService.trace(`NativeEditContext#onWillPaste`),this._onWillPaste()}_onWillPaste(){this._screenReaderSupport.onWillPaste()}onWillCopy(){this.logService.trace(`NativeEditContext#onWillCopy`),this.logService.trace(`NativeEditContext#isFocused : `,this.domNode.domNode===Xe())}writeScreenReaderContent(){this._screenReaderSupport.writeScreenReaderContent()}isFocused(){return this._focusTracker.isFocused}focus(){this._focusTracker.focus(),this.refreshFocusState()}refreshFocusState(){this._focusTracker.refreshFocusState()}setEditContextOnDomNode(){let e=Le(M(this.domNode.domNode));this._targetWindowId!==e&&(this.domNode.domNode.editContext=this._editContext,this._targetWindowId=e)}_onKeyUp(e){this._viewController.emitKeyUp(new nt(e))}_onKeyDown(e){let t=new nt(e);t.keyCode===114&&t.stopPropagation(),this._viewController.emitKeyDown(t)}_updateDomAttributes(){let e=this._context.configuration.options;this.domNode.domNode.setAttribute(`tabindex`,String(e.get(140)))}_updateEditContext(){let e=this._getNewEditContextState();e&&(this._editContext.updateText(0,2**53-1,e.text??` `),this._editContext.updateSelection(e.selectionStartOffset,e.selectionEndOffset),this._editContextPrimarySelection=e.editContextPrimarySelection,this._previousEditContextSelection=new I(e.selectionStartOffset,e.selectionEndOffset))}_emitTypeEvent(e,t){if(!this._editContext)return;let n=this._previousEditContextSelection.endExclusive,r=this._previousEditContextSelection.start;this._previousEditContextSelection=new I(t.selectionStart,t.selectionEnd);let i=0,a=0;t.updateRangeEnd>n&&(i=t.updateRangeEnd-n),t.updateRangeStart<r&&(a=r-t.updateRangeStart);let o=``;r<t.updateRangeStart&&(o+=this._editContext.text.substring(r,t.updateRangeStart)),o+=t.text,n>t.updateRangeEnd&&(o+=this._editContext.text.substring(t.updateRangeEnd,n));let s=0;t.selectionStart===t.selectionEnd&&r===n&&(s=t.selectionStart-(t.updateRangeStart+t.text.length));let c={text:o,replacePrevCharCnt:a,replaceNextCharCnt:i,positionDelta:s};this._onType(e,c)}_onType(e,t){t.replacePrevCharCnt||t.replaceNextCharCnt||t.positionDelta?e.compositionType(t.text,t.replacePrevCharCnt,t.replaceNextCharCnt,t.positionDelta):e.type(t.text)}_getNewEditContextState(){let e=this._primarySelection,t=this._context.viewModel.model;if(!t.isValidRange(e))return;let n=e.startLineNumber,r=e.endLineNumber,i=t.getLineMaxColumn(r),a=new j(n,1,r,i),o=t.getValueInRange(a,0);return{text:o,selectionStartOffset:e.startColumn-1,selectionEndOffset:o.length+e.endColumn-i,editContextPrimarySelection:e}}_editContextStartPosition(){return new b(this._editContextPrimarySelection.startLineNumber,1)}_handleTextFormatUpdate(e){if(!this._editContext)return;let t=e.getTextFormats(),n=this._editContextStartPosition(),r=[];t.forEach(e=>{let t=this._context.viewModel.model,i=t.getOffsetAt(n),a=t.getPositionAt(i+e.rangeStart),o=t.getPositionAt(i+e.rangeEnd),s=j.fromPositions(a,o),c=e.underlineThickness.toLowerCase(),l=Ed.NONE;switch(c){case`thin`:l=Ed.SECONDARY;break;case`thick`:l=Ed.PRIMARY;break}r.push({range:s,options:{description:`textFormatDecoration`,inlineClassName:l}})}),this._decorations=this._context.viewModel.model.deltaDecorations(this._decorations,r)}_updateSelectionAndControlBoundsData(e){let t=this._context.viewModel.coordinatesConverter.convertModelRangeToViewRange(this._primarySelection);if(this._primarySelection.isEmpty()){let n=e.visibleRangeForPosition(t.getStartPosition());this._linesVisibleRanges=n}else this._linesVisibleRanges=null}_updateSelectionAndControlBoundsAfterRender(){let e=this._context.configuration.options.get(165).contentLeft,t=this._context.viewModel.coordinatesConverter.convertModelRangeToViewRange(this._primarySelection),n=this._context.viewLayout.getVerticalOffsetForLineNumber(t.startLineNumber),r=this._context.viewLayout.getVerticalOffsetAfterLineNumber(t.endLineNumber),i=this._parent.getBoundingClientRect(),a=i.top+n-this._scrollTop,o=r-n,s=i.left+e-this._scrollLeft,c;this._primarySelection.isEmpty()?(this._linesVisibleRanges&&(s+=this._linesVisibleRanges.left),c=0):c=i.width-e;let l=new DOMRect(s,a,c,o);this._editContext.updateSelectionBounds(l),this._editContext.updateControlBounds(l)}_updateCharacterBounds(e){let t=this._context.configuration.options,n=t.get(59).typicalHalfwidthCharacterWidth,r=t.get(165).contentLeft,i=this._parent.getBoundingClientRect(),a=[],o=new Yr(this._editContext.text);for(let t=e.rangeStart;t<e.rangeEnd;t++){let e=o.getPosition(t),s=new b(this._editContextPrimarySelection.startLineNumber-1+e.lineNumber,e.column),c=s.delta(0,1),l=j.fromPositions(s,c),u=this._context.viewModel.coordinatesConverter.convertModelRangeToViewRange(l),d=this._visibleRangeProvider.linesVisibleRangesForRange(u,!0)??[],f=u.startLineNumber,p=this._context.viewLayout.getVerticalOffsetForLineNumber(f),m=i.top+p-this._scrollTop,h=0,g=n;if(d.length>0)for(let e of d[0].ranges){h=e.left,g=e.width;break}let _=this._context.viewLayout.getLineHeightForLineNumber(f);a.push(new DOMRect(i.left+r+h-this._scrollLeft,m,g,_))}this._editContext.updateCharacterBounds(e.rangeStart,a)}_ensureClipboardGetsEditorSelection(e){let t=this._context.configuration.options,n=t.get(45),r=t.get(31),i=this._context.viewModel.getCursorStates().map(e=>e.modelState.selection),a=_o(this._context.viewModel,i,n,r),o;this.logService.getLevel()===te.Trace&&(o=xr());let s={version:1,id:o,isFromEmptySelection:a.isFromEmptySelection,multicursorText:a.multicursorText,mode:a.mode};vo.INSTANCE.set(at?a.text.replace(/\r\n/g,`
`):a.text,s),e.preventDefault(),e.clipboardData&&bo.setTextData(e.clipboardData,a.text,a.html,s),this.logService.trace(`NativeEditContext#_ensureClipboardGetsEditorSelectios with id : `,o,` with text.length: `,a.text.length)}};Dd=wd([Td(5,Pt),Td(6,p)],Dd);var Od=class extends ia{constructor(e,t){super(e),this._viewGpuContext=t,this._gpuShapes=[],this._register(Ke(e=>this._updateEntries(e)))}onConfigurationChanged(e){return this._updateEntries(void 0),!0}prepareRender(e){}render(e){}_updateEntries(e){let t=this._context.configuration.options,n=t.get(116),r=t.get(59).typicalHalfwidthCharacterWidth,i=this._viewGpuContext.devicePixelRatio.read(e);for(let e=0,t=n.length;e<t;e++){let t=n[e],a=this._gpuShapes[e],o=t.color?Wt.fromHex(t.color):this._context.theme.getColor($n)??Wt.white,s=[t.column*r*i,0,Math.max(1,Math.ceil(i)),2**53-1,o.rgba.r/255,o.rgba.g/255,o.rgba.b/255,o.rgba.a];a?a.setRaw(s):this._gpuShapes[e]=this._viewGpuContext.rectangleRenderer.register(...s)}for(;this._gpuShapes.length>n.length;)this._gpuShapes.splice(-1,1)[0].dispose()}},kd=class e extends uc{static{this.CLASS_NAME=`gpu-mark`}constructor(e,t){super(),this._viewGpuContext=t,this._context=e,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){return!0}onCursorStateChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}onDecorationsChanged(e){return!0}prepareRender(t){let n=t.visibleRange.startLineNumber,r=t.visibleRange.endLineNumber,i=t.viewportData,a=new kc(this._context.configuration,this._context.theme.type),o=[];for(let t=n;t<=r;t++){let r=t-n,s=this._viewGpuContext.canRenderDetailed(a,i,t);o[r]=s.length?`<div class="${e.CLASS_NAME}" title="Cannot render on GPU: ${s.join(`, `)}"></div>`:``}this._renderResult=o}render(e,t){if(!this._renderResult)return``;let n=t-e;return n<0||n>=this._renderResult.length?``:this._renderResult[n]}},Ad=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},jd=function(e,t){return function(n,r){t(n,r,e)}},Md=class extends ra{constructor(e,t,n,r,i,a,o,s,c){super(),this._instantiationService=c,this._shouldRecomputeGlyphMarginLanes=!1,this._ownerID=t,this._widgetFocusTracker=this._register(new Fd(e,s)),this._register(this._widgetFocusTracker.onChange(()=>{this._context.viewModel.setHasWidgetFocus(this._widgetFocusTracker.hasFocus())})),this._selections=[new L(1,1,1,1)],this._renderAnimationFrame=null,this._overflowGuardContainer=B(document.createElement(`div`)),aa.write(this._overflowGuardContainer,3),this._overflowGuardContainer.setClassName(`overflow-guard`),this._viewController=new Js(r,a,o,n),this._context=new Bl(r,i,a),this._context.addEventHandler(this),this._viewParts=[],this._editContextEnabled=this._context.configuration.options.get(170),this._accessibilitySupport=this._context.configuration.options.get(2),this._editContext=this._instantiateEditContext(),this._viewParts.push(this._editContext),this._linesContent=B(document.createElement(`div`)),this._linesContent.setClassName(`lines-content monaco-editor-background`),this._linesContent.setPosition(`absolute`),this.domNode=B(document.createElement(`div`)),this.domNode.setClassName(this._getEditorClassName()),this.domNode.setAttribute(`role`,`code`),this._context.configuration.options.get(46)===`on`&&(this._viewGpuContext=this._instantiationService.createInstance(Cu,this._context)),this._scrollbar=new hc(this._context,this._linesContent,this.domNode,this._overflowGuardContainer),this._viewParts.push(this._scrollbar),this._viewLines=new Nc(this._context,this._viewGpuContext,this._linesContent),this._viewGpuContext&&(this._viewLinesGpu=this._instantiationService.createInstance(zu,this._context,this._viewGpuContext)),this._viewZones=new Pl(this._context),this._viewParts.push(this._viewZones);let l=new gl(this._context);this._viewParts.push(l);let u=new Sl(this._context);this._viewParts.push(u);let d=new ec(this._context);this._viewParts.push(d),d.addDynamicOverlay(new fc(this._context)),d.addDynamicOverlay(new Dl(this._context)),d.addDynamicOverlay(new wc(this._context)),d.addDynamicOverlay(new mc(this._context)),d.addDynamicOverlay(new Il(this._context));let f=new tc(this._context);this._viewParts.push(f),f.addDynamicOverlay(new pc(this._context)),f.addDynamicOverlay(new Ic(this._context)),f.addDynamicOverlay(new Pc(this._context)),f.addDynamicOverlay(new Ec(this._context)),this._viewGpuContext&&f.addDynamicOverlay(new kd(this._context,this._viewGpuContext)),this._glyphMarginWidgets=new bc(this._context),this._viewParts.push(this._glyphMarginWidgets);let p=new Fc(this._context);p.getDomNode().appendChild(this._viewZones.marginDomNode),p.getDomNode().appendChild(f.getDomNode()),p.getDomNode().appendChild(this._glyphMarginWidgets.domNode),this._viewParts.push(p),this._contentWidgets=new ic(this._context,this.domNode),this._viewParts.push(this._contentWidgets),this._viewCursors=new Ml(this._context),this._viewParts.push(this._viewCursors),this._overlayWidgets=new ll(this._context,this.domNode),this._viewParts.push(this._overlayWidgets);let m=this._viewGpuContext?new Od(this._context,this._viewGpuContext):new xl(this._context);this._viewParts.push(m);let h=new rc(this._context);this._viewParts.push(h);let g=new ol(this._context);if(this._viewParts.push(g),l){let e=this._scrollbar.getOverviewRulerLayoutInfo();e.parent.insertBefore(l.getDomNode(),e.insertBefore)}this._linesContent.appendChild(d.getDomNode()),`domNode`in m&&this._linesContent.appendChild(m.domNode),this._linesContent.appendChild(this._viewZones.domNode),this._linesContent.appendChild(this._viewLines.getDomNode()),this._linesContent.appendChild(this._contentWidgets.domNode),this._linesContent.appendChild(this._viewCursors.getDomNode()),this._overflowGuardContainer.appendChild(p.getDomNode()),this._overflowGuardContainer.appendChild(this._scrollbar.getDomNode()),this._viewGpuContext&&this._overflowGuardContainer.appendChild(this._viewGpuContext.canvas),this._overflowGuardContainer.appendChild(u.getDomNode()),this._overflowGuardContainer.appendChild(this._overlayWidgets.getDomNode()),this._overflowGuardContainer.appendChild(g.getDomNode()),this._overflowGuardContainer.appendChild(h.domNode),this.domNode.appendChild(this._overflowGuardContainer),s?(s.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode.domNode),s.appendChild(this._overlayWidgets.overflowingOverlayWidgetsDomNode.domNode)):(this.domNode.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode),this.domNode.appendChild(this._overlayWidgets.overflowingOverlayWidgetsDomNode)),this._applyLayout(),this._pointerHandler=this._register(new Ao(this._context,this._viewController,this._createPointerHandlerHelper()))}_instantiateEditContext(){return this._context.configuration.options.get(170)?this._instantiationService.createInstance(Dd,this._ownerID,this._context,this._overflowGuardContainer,this._viewController,this._createTextAreaHandlerHelper()):this._instantiationService.createInstance(Ju,this._context,this._overflowGuardContainer,this._viewController,this._createTextAreaHandlerHelper())}_updateEditContext(){let e=this._context.configuration.options.get(170),t=this._context.configuration.options.get(2);if(this._editContextEnabled===e&&this._accessibilitySupport===t)return;this._editContextEnabled=e,this._accessibilitySupport=t;let n=this._editContext.isFocused(),r=this._viewParts.indexOf(this._editContext);this._editContext.dispose(),this._editContext=this._instantiateEditContext(),n&&this._editContext.focus(),r!==-1&&this._viewParts.splice(r,1,this._editContext)}_computeGlyphMarginLanes(){let e=this._context.viewModel.model,t=this._context.viewModel.glyphLanes,n=[],r=0;n=n.concat(e.getAllMarginDecorations().map(e=>{let t=e.options.glyphMargin?.position??en.Center;return r=Math.max(r,e.range.endLineNumber),{range:e.range,lane:t,persist:e.options.glyphMargin?.persistLane}})),n=n.concat(this._glyphMarginWidgets.getWidgets().map(t=>{let n=e.validateRange(t.preference.range);return r=Math.max(r,n.endLineNumber),{range:n,lane:t.preference.lane}})),n.sort((e,t)=>j.compareRangesUsingStarts(e.range,t.range)),t.reset(r);for(let e of n)t.push(e.lane,e.range,e.persist);return t}_createPointerHandlerHelper(){return{viewDomNode:this.domNode.domNode,linesContentDomNode:this._linesContent.domNode,viewLinesDomNode:this._viewLines.getDomNode().domNode,viewLinesGpu:this._viewLinesGpu,focusTextArea:()=>{this.focus()},dispatchTextAreaEvent:e=>{this._editContext.domNode.domNode.dispatchEvent(e)},getLastRenderData:()=>new Za(this._viewCursors.getLastRenderData()||[],this._editContext.getLastRenderData()),renderNow:()=>{this.render(!0,!1)},shouldSuppressMouseDownOnViewZone:e=>this._viewZones.shouldSuppressMouseDownOnViewZone(e),shouldSuppressMouseDownOnWidget:e=>this._contentWidgets.shouldSuppressMouseDownOnWidget(e),getPositionFromDOMInfo:(e,t)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getPositionFromDOMInfo(e,t)),visibleRangeForPosition:(e,t)=>{this._flushAccumulatedAndRenderNow();let n=new b(e,t);return this._viewLines.visibleRangeForPosition(n)??this._viewLinesGpu?.visibleRangeForPosition(n)??null},getLineWidth:e=>{if(this._flushAccumulatedAndRenderNow(),this._viewLinesGpu){let t=this._viewLinesGpu.getLineWidth(e);if(t!==void 0)return t}return this._viewLines.getLineWidth(e)}}}_createTextAreaHandlerHelper(){return{visibleRangeForPosition:e=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(e)),linesVisibleRangesForRange:(e,t)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.linesVisibleRangesForRange(e,t))}}_applyLayout(){let e=this._context.configuration.options.get(165);this.domNode.setWidth(e.width),this.domNode.setHeight(e.height),this._overflowGuardContainer.setWidth(e.width),this._overflowGuardContainer.setHeight(e.height),this._linesContent.setWidth(16777216),this._linesContent.setHeight(16777216)}_getEditorClassName(){let e=this._editContext.isFocused()?` focused`:``;return this._context.configuration.options.get(162)+` `+Oe(this._context.theme.type)+e}handleEvents(e){super.handleEvents(e),this._scheduleRender()}onConfigurationChanged(e){return this.domNode.setClassName(this._getEditorClassName()),this._updateEditContext(),this._applyLayout(),!1}onCursorStateChanged(e){return this._selections=e.selections,!1}onDecorationsChanged(e){return e.affectsGlyphMargin&&(this._shouldRecomputeGlyphMarginLanes=!0),!1}onFocusChanged(e){return this.domNode.setClassName(this._getEditorClassName()),!1}onThemeChanged(e){return this._context.theme.update(e.theme),this.domNode.setClassName(this._getEditorClassName()),!1}dispose(){this._renderAnimationFrame!==null&&(this._renderAnimationFrame.dispose(),this._renderAnimationFrame=null),this._contentWidgets.overflowingContentWidgetsDomNode.domNode.remove(),this._overlayWidgets.overflowingOverlayWidgetsDomNode.domNode.remove(),this._context.removeEventHandler(this),this._viewGpuContext?.dispose(),this._viewLines.dispose(),this._viewLinesGpu?.dispose();for(let e of this._viewParts)e.dispose();super.dispose()}_scheduleRender(){if(this._store.isDisposed)throw new A;if(this._renderAnimationFrame===null){this._editContext instanceof Dd&&this._editContext.setEditContextOnDomNode();let e=this._createCoordinatedRendering();this._renderAnimationFrame=Pd.INSTANCE.scheduleCoordinatedRendering({window:M(this.domNode?.domNode),prepareRenderText:()=>{if(this._store.isDisposed)throw new A;try{return e.prepareRenderText()}finally{this._renderAnimationFrame=null}},renderText:()=>{if(this._store.isDisposed)throw new A;return e.renderText()},prepareRender:(t,n)=>{if(this._store.isDisposed)throw new A;return e.prepareRender(t,n)},render:(t,n)=>{if(this._store.isDisposed)throw new A;return e.render(t,n)}})}}_flushAccumulatedAndRenderNow(){let e=this._createCoordinatedRendering();Nd(()=>e.prepareRenderText());let t=Nd(()=>e.renderText());if(t){let[n,r]=t;Nd(()=>e.prepareRender(n,r)),Nd(()=>e.render(n,r))}}_getViewPartsToRender(){let e=[],t=0;for(let n of this._viewParts)n.shouldRender()&&(e[t++]=n);return e}_createCoordinatedRendering(){return{prepareRenderText:()=>{if(this._shouldRecomputeGlyphMarginLanes){this._shouldRecomputeGlyphMarginLanes=!1;let e=this._computeGlyphMarginLanes();this._context.configuration.setGlyphMarginDecorationLaneCount(e.requiredLanes)}na.onRenderStart()},renderText:()=>{if(!this.domNode.domNode.isConnected)return null;let e=this._getViewPartsToRender();if(!this._viewLines.shouldRender()&&e.length===0)return null;let t=this._context.viewLayout.getLinesViewportData();this._context.viewModel.setViewport(t.startLineNumber,t.endLineNumber,t.centeredLineNumber);let n=new Rl(this._selections,t,this._context.viewLayout.getWhitespaceViewportData(),this._context.viewModel);return this._contentWidgets.shouldRender()&&this._contentWidgets.onBeforeRender(n),this._viewLines.shouldRender()&&(this._viewLines.renderText(n),this._viewLines.onDidRender(),e=this._getViewPartsToRender()),this._viewLinesGpu?.shouldRender()&&(this._viewLinesGpu.renderText(n),this._viewLinesGpu.onDidRender()),[e,new sa(this._context.viewLayout,n,this._viewLines,this._viewLinesGpu)]},prepareRender:(e,t)=>{for(let n of e)n.prepareRender(t)},render:(e,t)=>{for(let n of e)n.render(t),n.onDidRender()}}}delegateVerticalScrollbarPointerDown(e){this._scrollbar.delegateVerticalScrollbarPointerDown(e)}delegateScrollFromMouseWheelEvent(e){this._scrollbar.delegateScrollFromMouseWheelEvent(e)}restoreState(e){this._context.viewModel.viewLayout.setScrollPosition({scrollTop:e.scrollTop,scrollLeft:e.scrollLeft},1),this._context.viewModel.visibleLinesStabilized()}getOffsetForColumn(e,t){let n=this._context.viewModel.model.validatePosition({lineNumber:e,column:t}),r=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(n);this._flushAccumulatedAndRenderNow();let i=this._viewLines.visibleRangeForPosition(new b(r.lineNumber,r.column));return i?i.left:-1}getTargetAtClientPoint(e,t){let n=this._pointerHandler.getTargetAtClientPoint(e,t);return n?nc.convertViewToModelMouseTarget(n,this._context.viewModel.coordinatesConverter):null}createOverviewRuler(e){return new bl(this._context,e)}change(e){this._viewZones.changeViewZones(e),this._scheduleRender()}render(e,t){if(t){this._viewLines.forceShouldRender();for(let e of this._viewParts)e.forceShouldRender()}e?this._flushAccumulatedAndRenderNow():this._scheduleRender()}writeScreenReaderContent(e){this._editContext.writeScreenReaderContent(e)}focus(){this._editContext.focus()}isFocused(){return this._editContext.isFocused()}isWidgetFocused(){return this._widgetFocusTracker.hasFocus()}setAriaOptions(e){this._editContext.setAriaOptions(e)}addContentWidget(e){this._contentWidgets.addWidget(e.widget),this.layoutContentWidget(e),this._scheduleRender()}layoutContentWidget(e){this._contentWidgets.setWidgetPosition(e.widget,e.position?.position??null,e.position?.secondaryPosition??null,e.position?.preference??null,e.position?.positionAffinity??null),this._scheduleRender()}removeContentWidget(e){this._contentWidgets.removeWidget(e.widget),this._scheduleRender()}addOverlayWidget(e){this._overlayWidgets.addWidget(e.widget),this.layoutOverlayWidget(e),this._scheduleRender()}layoutOverlayWidget(e){this._overlayWidgets.setWidgetPosition(e.widget,e.position)&&this._scheduleRender()}removeOverlayWidget(e){this._overlayWidgets.removeWidget(e.widget),this._scheduleRender()}addGlyphMarginWidget(e){this._glyphMarginWidgets.addWidget(e.widget),this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender()}layoutGlyphMarginWidget(e){let t=e.position;this._glyphMarginWidgets.setWidgetPosition(e.widget,t)&&(this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender())}removeGlyphMarginWidget(e){this._glyphMarginWidgets.removeWidget(e.widget),this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender()}};Md=Ad([jd(8,Pt)],Md);function Nd(e){try{return e()}catch(e){return Se(e),null}}var Pd=class e{static{this.INSTANCE=new e}constructor(){this._coordinatedRenderings=[],this._animationFrameRunners=new Map}scheduleCoordinatedRendering(e){return this._coordinatedRenderings.push(e),this._scheduleRender(e.window),{dispose:()=>{let t=this._coordinatedRenderings.indexOf(e);if(t!==-1&&(this._coordinatedRenderings.splice(t,1),this._coordinatedRenderings.length===0)){for(let[e,t]of this._animationFrameRunners)t.dispose();this._animationFrameRunners.clear()}}}}_scheduleRender(e){this._animationFrameRunners.has(e)||this._animationFrameRunners.set(e,$e(e,()=>{this._animationFrameRunners.delete(e),this._onRenderScheduled()},100))}_onRenderScheduled(){let e=this._coordinatedRenderings.slice(0);this._coordinatedRenderings=[];for(let t of e)Nd(()=>t.prepareRenderText());let t=[];for(let n=0,r=e.length;n<r;n++){let r=e[n];t[n]=Nd(()=>r.renderText())}for(let n=0,r=e.length;n<r;n++){let r=e[n],i=t[n];if(!i)continue;let[a,o]=i;Nd(()=>r.prepareRender(a,o))}for(let n=0,r=e.length;n<r;n++){let r=e[n],i=t[n];if(!i)continue;let[a,o]=i;Nd(()=>r.render(a,o))}}},Fd=class extends i{constructor(e,t){super(),this._onChange=this._register(new k),this.onChange=this._onChange.event,this._hadFocus=void 0,this._hasDomElementFocus=!1,this._domFocusTracker=this._register(ze(e)),this._overflowWidgetsDomNodeHasFocus=!1,this._register(this._domFocusTracker.onDidFocus(()=>{this._hasDomElementFocus=!0,this._update()})),this._register(this._domFocusTracker.onDidBlur(()=>{this._hasDomElementFocus=!1,this._update()})),t&&(this._overflowWidgetsDomNode=this._register(ze(t)),this._register(this._overflowWidgetsDomNode.onDidFocus(()=>{this._overflowWidgetsDomNodeHasFocus=!0,this._update()})),this._register(this._overflowWidgetsDomNode.onDidBlur(()=>{this._overflowWidgetsDomNodeHasFocus=!1,this._update()})))}_update(){let e=this._hasDomElementFocus||this._overflowWidgetsDomNodeHasFocus;this._hadFocus!==e&&(this._hadFocus=e,this._onChange.fire(void 0))}hasFocus(){return this._hadFocus??!1}},Id=class{constructor(e,t,n,r,i){this.injectionOffsets=e,this.injectionOptions=t,this.breakOffsets=n,this.breakOffsetsVisibleColumn=r,this.wrappedTextIndentLength=i}getOutputLineCount(){return this.breakOffsets.length}getMinOutputOffset(e){return e>0?this.wrappedTextIndentLength:0}getLineLength(e){let t=e>0?this.breakOffsets[e-1]:0,n=this.breakOffsets[e]-t;return e>0&&(n+=this.wrappedTextIndentLength),n}getMaxOutputOffset(e){return this.getLineLength(e)}translateToInputOffset(e,t){e>0&&(t=Math.max(0,t-this.wrappedTextIndentLength));let n=e===0?t:this.breakOffsets[e-1]+t;if(this.injectionOffsets!==null)for(let e=0;e<this.injectionOffsets.length&&n>this.injectionOffsets[e];e++)n<this.injectionOffsets[e]+this.injectionOptions[e].content.length?n=this.injectionOffsets[e]:n-=this.injectionOptions[e].content.length;return n}translateToOutputPosition(e,t=2){let n=e;if(this.injectionOffsets!==null)for(let r=0;r<this.injectionOffsets.length&&!(e<this.injectionOffsets[r]||t!==1&&e===this.injectionOffsets[r]);r++)n+=this.injectionOptions[r].content.length;return this.offsetInInputWithInjectionsToOutputPosition(n,t)}offsetInInputWithInjectionsToOutputPosition(e,t=2){let n=0,r=this.breakOffsets.length-1,i=0,a=0;for(;n<=r;){i=n+(r-n)/2|0;let o=this.breakOffsets[i];if(a=i>0?this.breakOffsets[i-1]:0,t===0)if(e<=a)r=i-1;else if(e>o)n=i+1;else break;else if(e<a)r=i-1;else if(e>=o)n=i+1;else break}let o=e-a;return i>0&&(o+=this.wrappedTextIndentLength),new zd(i,o)}normalizeOutputPosition(e,t,n){if(this.injectionOffsets!==null){let r=this.outputPositionToOffsetInInputWithInjections(e,t),i=this.normalizeOffsetInInputWithInjectionsAroundInjections(r,n);if(i!==r)return this.offsetInInputWithInjectionsToOutputPosition(i,n)}if(n===0){if(e>0&&t===this.getMinOutputOffset(e))return new zd(e-1,this.getMaxOutputOffset(e-1))}else if(n===1&&e<this.getOutputLineCount()-1&&t===this.getMaxOutputOffset(e))return new zd(e+1,this.getMinOutputOffset(e+1));return new zd(e,t)}outputPositionToOffsetInInputWithInjections(e,t){return e>0&&(t=Math.max(0,t-this.wrappedTextIndentLength)),(e>0?this.breakOffsets[e-1]:0)+t}normalizeOffsetInInputWithInjectionsAroundInjections(e,t){let n=this.getInjectedTextAtOffset(e);if(!n)return e;if(t===2){if(e===n.offsetInInputWithInjections+n.length&&Ld(this.injectionOptions[n.injectedTextIndex].cursorStops))return n.offsetInInputWithInjections+n.length;{let e=n.offsetInInputWithInjections;if(Rd(this.injectionOptions[n.injectedTextIndex].cursorStops))return e;let t=n.injectedTextIndex-1;for(;t>=0&&this.injectionOffsets[t]===this.injectionOffsets[n.injectedTextIndex]&&!(Ld(this.injectionOptions[t].cursorStops)||(e-=this.injectionOptions[t].content.length,Rd(this.injectionOptions[t].cursorStops)));)t--;return e}}else if(t===1||t===4){let e=n.offsetInInputWithInjections+n.length,t=n.injectedTextIndex;for(;t+1<this.injectionOffsets.length&&this.injectionOffsets[t+1]===this.injectionOffsets[t];)e+=this.injectionOptions[t+1].content.length,t++;return e}else if(t===0||t===3){let e=n.offsetInInputWithInjections,t=n.injectedTextIndex;for(;t-1>=0&&this.injectionOffsets[t-1]===this.injectionOffsets[t];)e-=this.injectionOptions[t-1].content.length,t--;return e}se()}getInjectedText(e,t){let n=this.outputPositionToOffsetInInputWithInjections(e,t),r=this.getInjectedTextAtOffset(n);return r?{options:this.injectionOptions[r.injectedTextIndex]}:null}getInjectedTextAtOffset(e){let t=this.injectionOffsets,n=this.injectionOptions;if(t!==null){let r=0;for(let i=0;i<t.length;i++){let a=n[i].content.length,o=t[i]+r,s=t[i]+r+a;if(o>e)break;if(e<=s)return{injectedTextIndex:i,offsetInInputWithInjections:o,length:a};r+=a}}}};function Ld(e){return e==null?!0:e===xn.Right||e===xn.Both}function Rd(e){return e==null?!0:e===xn.Left||e===xn.Both}var zd=class{constructor(e,t){this.outputLineIndex=e,this.outputOffset=t}toString(){return`${this.outputLineIndex}:${this.outputOffset}`}toPosition(e){return new b(e+this.outputLineIndex,this.outputOffset+1)}},Bd=Xr(`domLineBreaksComputer`,{createHTML:e=>e}),Vd=class e{static create(t){return new e(new WeakRef(t))}constructor(e){this.targetWindow=e}createLineBreaksComputer(e,t,n,r,i,a){let o=[],s=[];return{addRequest:(e,t,n)=>{o.push(e),s.push(t)},finalize:()=>Hd(l(this.targetWindow.deref()),o,e,t,n,r,i,s)}}};function Hd(e,t,n,r,i,a,o,s){function c(e){let n=s[e];if(n){let r=An.applyInjectedText(t[e],n),i=n.map(e=>e.options);return new Id(n.map(e=>e.column-1),i,[r.length],[],0)}else return null}if(i===-1){let e=[];for(let n=0,r=t.length;n<r;n++)e[n]=c(n);return e}let l=Math.round(i*n.typicalHalfwidthCharacterWidth),u=Math.round(r*(a===3?2:+(a===2))),d=Math.ceil(n.spaceWidth*u),f=document.createElement(`div`);H(f,n);let p=new er(1e4),m=[],h=[],g=[],_=[],v=[];for(let e=0;e<t.length;e++){let i=An.applyInjectedText(t[e],s[e]),o=0,c=0,u=l;if(a!==0)if(o=ue(i),o===-1)o=0;else{for(let e=0;e<o;e++){let t=i.charCodeAt(e)===9?r-c%r:1;c+=t}let e=Math.ceil(n.spaceWidth*c);e+n.typicalFullwidthCharacterWidth>l?(o=0,c=0):u=l-e}let f=i.substr(o),y=Ud(f,c,r,u,p,d);m[e]=o,h[e]=c,g[e]=f,_[e]=y[0],v[e]=y[1]}let y=p.build();f.innerHTML=Bd?.createHTML(y)??y,f.style.position=`absolute`,f.style.top=`10000`,o===`keepAll`?(f.style.wordBreak=`keep-all`,f.style.overflowWrap=`anywhere`):(f.style.wordBreak=`inherit`,f.style.overflowWrap=`break-word`),e.document.body.appendChild(f);let b=document.createRange(),x=Array.prototype.slice.call(f.children,0),S=[];for(let e=0;e<t.length;e++){let t=x[e],n=Wd(b,t,g[e],_[e]);if(n===null){S[e]=c(e);continue}let r=m[e],i=h[e]+u,a=v[e],o=[];for(let e=0,t=n.length;e<t;e++)o[e]=a[n[e]];if(r!==0)for(let e=0,t=n.length;e<t;e++)n[e]+=r;let l,d,f=s[e];f?(l=f.map(e=>e.options),d=f.map(e=>e.column-1)):(l=null,d=null),S[e]=new Id(d,l,n,o,i)}return f.remove(),S}function Ud(e,t,n,r,i,a){if(a!==0){let e=String(a);i.appendString(`<div style="text-indent: -`),i.appendString(e),i.appendString(`px; padding-left: `),i.appendString(e),i.appendString(`px; box-sizing: border-box; width:`)}else i.appendString(`<div style="width:`);i.appendString(String(r)),i.appendString(`px;">`);let o=e.length,s=t,c=0,l=[],u=[],d=0<o?e.charCodeAt(0):0;i.appendString(`<span>`);for(let t=0;t<o;t++){t!==0&&t%16384==0&&i.appendString(`</span><span>`),l[t]=c,u[t]=s;let r=d;d=t+1<o?e.charCodeAt(t+1):0;let a=1,f=1;switch(r){case 9:a=n-s%n,f=a;for(let e=1;e<=a;e++)e<a?i.appendCharCode(160):i.appendASCIICharCode(32);break;case 32:d===32?i.appendCharCode(160):i.appendASCIICharCode(32);break;case 60:i.appendString(`<`);break;case 62:i.appendString(`>`);break;case 38:i.appendString(`&`);break;case 0:i.appendString(`�`);break;case 65279:case 8232:case 8233:case 133:i.appendCharCode(65533);break;default:ve(r)&&f++,r<32?i.appendCharCode(9216+r):i.appendCharCode(r)}c+=a,s+=f}return i.appendString(`</span>`),l[e.length]=c,u[e.length]=s,i.appendString(`</div>`),[l,u]}function Wd(e,t,n,r){if(n.length<=1)return null;let i=Array.prototype.slice.call(t.children,0),a=[];try{Gd(e,i,r,0,null,n.length-1,null,a)}catch(e){return console.log(e),null}return a.length===0?null:(a.push(n.length),a)}function Gd(e,t,n,r,i,a,o,s){if(r===a||(i||=Kd(e,t,n[r],n[r+1]),o||=Kd(e,t,n[a],n[a+1]),Math.abs(i[0].top-o[0].top)<=.1))return;if(r+1===a){s.push(a);return}let c=r+(a-r)/2|0,l=Kd(e,t,n[c],n[c+1]);Gd(e,t,n,r,i,c,l,s),Gd(e,t,n,c,l,a,o,s)}function Kd(e,t,n,r){return e.setStart(t[n/16384|0].firstChild,n%16384),e.setEnd(t[r/16384|0].firstChild,r%16384),e.getClientRects()}var qd=class extends i{constructor(){super(),this._editor=null,this._instantiationService=null,this._instances=this._register(new Ne),this._pending=new Map,this._finishedInstantiation=[],this._finishedInstantiation[0]=!1,this._finishedInstantiation[1]=!1,this._finishedInstantiation[2]=!1,this._finishedInstantiation[3]=!1}initialize(e,t,n){this._editor=e,this._instantiationService=n;for(let e of t){if(this._pending.has(e.id)){Se(Error(`Cannot have two contributions with the same id ${e.id}`));continue}this._pending.set(e.id,e)}this._instantiateSome(0),this._register(Ve(M(this._editor.getDomNode()),()=>{this._instantiateSome(1)})),this._register(Ve(M(this._editor.getDomNode()),()=>{this._instantiateSome(2)})),this._register(Ve(M(this._editor.getDomNode()),()=>{this._instantiateSome(3)},5e3))}saveViewState(){let e={};for(let[t,n]of this._instances)typeof n.saveViewState==`function`&&(e[t]=n.saveViewState());return e}restoreViewState(e){for(let[t,n]of this._instances)typeof n.restoreViewState==`function`&&n.restoreViewState(e[t])}get(e){return this._instantiateById(e),this._instances.get(e)||null}onBeforeInteractionEvent(){this._instantiateSome(2)}onAfterModelAttached(){return Ve(M(this._editor?.getDomNode()),()=>{this._instantiateSome(1)},50)}_instantiateSome(e){if(this._finishedInstantiation[e])return;this._finishedInstantiation[e]=!0;let t=this._findPendingContributionsByInstantiation(e);for(let e of t)this._instantiateById(e.id)}_findPendingContributionsByInstantiation(e){let t=[];for(let[,n]of this._pending)n.instantiation===e&&t.push(n);return t}_instantiateById(e){let t=this._pending.get(e);if(t){if(this._pending.delete(e),!this._instantiationService||!this._editor)throw Error(`Cannot instantiate contributions before being initialized!`);try{let e=this._instantiationService.createInstance(t.ctor,this._editor);this._instances.set(t.id,e),typeof e.restoreViewState==`function`&&t.instantiation!==0&&console.warn(`Editor contribution '${t.id}' should be eager instantiated because it uses saveViewState / restoreViewState.`)}catch(e){Se(e)}}}},Jd=class{constructor(e,t,n,r,i,a,o){this.id=e,this.label=t,this.alias=n,this.metadata=r,this._precondition=i,this._run=a,this._contextKeyService=o}isSupported(){return this._contextKeyService.contextMatchesRules(this._precondition)}run(e){return this.isSupported()?this._run(e):Promise.resolve(void 0)}},Yd=class e{static create(t){return new e(t.get(151),t.get(150))}constructor(e,t){this.classifier=new Xd(e,t)}createLineBreaksComputer(e,t,n,r,i,a){let o=[],s=[],c=[];return{addRequest:(e,t,n)=>{o.push(e),s.push(t),c.push(n)},finalize:()=>{let l=e.typicalFullwidthCharacterWidth/e.typicalHalfwidthCharacterWidth,u=[];for(let e=0,d=o.length;e<d;e++){let d=s[e],f=c[e],p=o[e],m=a&&p.includes(`"`)&&p.includes(`\\n`);f&&!f.injectionOptions&&!d&&!m?u[e]=$d(this.classifier,f,p,t,n,l,r,i):u[e]=ef(this.classifier,p,d,t,n,l,r,i,m)}return Zd.length=0,Qd.length=0,u}}}},Xd=class extends vr{constructor(e,t){super(0);for(let t=0;t<e.length;t++)this.set(e.charCodeAt(t),1);for(let e=0;e<t.length;e++)this.set(t.charCodeAt(e),2)}get(e){return e>=0&&e<256?this._asciiMap[e]:e>=12352&&e<=12543||e>=13312&&e<=19903||e>=19968&&e<=40959?3:this._map.get(e)||this._defaultValue}},Zd=[],Qd=[];function $d(e,t,n,r,i,a,o,s){if(i===-1)return null;let c=n.length;if(c<=1)return null;let l=s===`keepAll`,u=t.breakOffsets,d=t.breakOffsetsVisibleColumn,f=of(n,r,i,a,o),p=i-f,m=Zd,h=Qd,g=0,_=0,v=0,y=i,b=u.length,x=0;if(x>=0){let e=Math.abs(d[x]-y);for(;x+1<b;){let t=Math.abs(d[x+1]-y);if(t>=e)break;e=t,x++}}for(;x<b;){let t=x<0?0:u[x],i=x<0?0:d[x];_>t&&(t=_,i=v);let o=0,s=0,f=0,S=0;if(i<=y){let v=i,b=t===0?0:n.charCodeAt(t-1),x=t===0?0:e.get(b),C=!0;for(let i=t;i<c;i++){let t=i,c=n.charCodeAt(i),u,d;if(ce(c)?(i++,u=0,d=2):(u=e.get(c),d=tf(c,v,r,a)),t>_&&af(b,x,c,u,l)&&(o=t,s=v),v+=d,v>y){t>_?(f=t,S=v-d):(f=i+1,S=v),v-s>p&&(o=0),C=!1;break}b=c,x=u}if(C){g>0&&(m[g]=u[u.length-1],h[g]=d[u.length-1],g++);break}}if(o===0){let c=i,u=n.charCodeAt(t),d=e.get(u),m=!1;for(let r=t-1;r>=_;r--){let t=r+1,i=n.charCodeAt(r);if(i===9){m=!0;break}let h,g;if(je(i)?(r--,h=0,g=2):(h=e.get(i),g=ve(i)?a:1),c<=y){if(f===0&&(f=t,S=c),c<=y-p)break;if(af(i,h,u,d,l)){o=t,s=c;break}}c-=g,u=i,d=h}if(o!==0){let e=p-(S-s);if(e<=r){let t=n.charCodeAt(f),i;i=ce(t)?2:tf(t,S,r,a),e-i<0&&(o=0)}}if(m){x--;continue}}if(o===0&&(o=f,s=S),o<=_){let e=n.charCodeAt(_);ce(e)?(o=_+2,s=v+2):(o=_+1,s=v+tf(e,v,r,a))}for(_=o,m[g]=o,v=s,h[g]=s,g++,y=s+p;x<0||x<b&&d[x]<s;)x++;let C=Math.abs(d[x]-y);for(;x+1<b;){let e=Math.abs(d[x+1]-y);if(e>=C)break;C=e,x++}}return g===0?null:(m.length=g,h.length=g,Zd=t.breakOffsets,Qd=t.breakOffsetsVisibleColumn,t.breakOffsets=m,t.breakOffsetsVisibleColumn=h,t.wrappedTextIndentLength=f,t)}function ef(e,t,n,r,i,a,o,s,c){let l=An.applyInjectedText(t,n),u,d;if(n&&n.length>0?(u=n.map(e=>e.options),d=n.map(e=>e.column-1)):(u=null,d=null),i===-1)return u?new Id(d,u,[l.length],[],0):null;let f=l.length;if(f<=1)return u?new Id(d,u,[l.length],[],0):null;let p=s===`keepAll`,m=of(l,r,i,a,o),h=i-m,g=[],_=[],v=0,y=0,b=0,x=i,S=l.charCodeAt(0),C=e.get(S),w=tf(S,0,r,a),T=1;ce(S)&&(w+=1,S=l.charCodeAt(1),C=e.get(S),T++);for(let t=T;t<f;t++){let n=t,i=l.charCodeAt(t),o,s,u=!1;ce(i)?(t++,o=0,s=2):(o=e.get(i),s=tf(i,w,r,a)),c&&rf(l,t)?(y=n,b=w,u=!0):af(S,C,i,o,p)&&(y=n,b=w),w+=s,(w>x||u)&&((y===0||w-b>h)&&(y=n,b=w-s),g[v]=y,_[v]=b,v++,x=b+h,y=0),S=i,C=o}return v===0&&(!n||n.length===0)?null:(g[v]=f,_[v]=w,new Id(d,u,g,_,m))}function tf(e,t,n,r){return e===9?n-t%n:ve(e)||e<32?r:1}function nf(e,t){return t-e%t}function rf(e,t){if(t>=2&&e.charAt(t-1)===`n`){let n=0;for(let r=t-2;r>=0;r--)if(e.charAt(r)===`\\`)n++;else return n%2==1}return!1}function af(e,t,n,r,i){return n!==32&&(t===2&&r!==2||t!==1&&r===1||!i&&t===3&&r!==2||!i&&r===3&&t!==1)}function of(e,t,n,r,i){let a=0;if(i!==0){let o=ue(e);if(o!==-1){for(let n=0;n<o;n++){let r=e.charCodeAt(n)===9?nf(a,t):1;a+=r}let s=i===3?2:+(i===2);for(let e=0;e<s;e++){let e=nf(a,t);a+=e}a+r>n&&(a=0)}}return a}var sf=class e{constructor(e){this._selTrackedRange=null,this._trackSelection=!0,this._setState(e,new Lo(new j(1,1,1,1),0,0,new b(1,1),0),new Lo(new j(1,1,1,1),0,0,new b(1,1),0))}dispose(e){this._removeTrackedRange(e)}startTrackingSelection(e){this._trackSelection=!0,this._updateTrackedRange(e)}stopTrackingSelection(e){this._trackSelection=!1,this._removeTrackedRange(e)}_updateTrackedRange(e){this._trackSelection&&(this._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,this.modelState.selection,0))}_removeTrackedRange(e){this._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,null,0)}asCursorState(){return new K(this.modelState,this.viewState)}readSelectionFromMarkers(e){let t=e.model._getTrackedRange(this._selTrackedRange);return this.modelState.selection.isEmpty()&&!t.isEmpty()?L.fromRange(t.collapseToEnd(),this.modelState.selection.getDirection()):L.fromRange(t,this.modelState.selection.getDirection())}ensureValidState(e){this._setState(e,this.modelState,this.viewState)}setState(e,t,n){this._setState(e,t,n)}static _validatePositionWithCache(e,t,n,r){return t.equals(n)?r:e.normalizePosition(t,2)}static _validateViewState(e,t){let n=t.position,r=t.selectionStart.getStartPosition(),i=t.selectionStart.getEndPosition(),a=e.normalizePosition(n,2),o=this._validatePositionWithCache(e,r,n,a),s=this._validatePositionWithCache(e,i,r,o);return n.equals(a)&&r.equals(o)&&i.equals(s)?t:new Lo(j.fromPositions(o,s),t.selectionStartKind,t.selectionStartLeftoverVisibleColumns+r.column-o.column,a,t.leftoverVisibleColumns+n.column-a.column)}_setState(t,n,r){if(r&&=e._validateViewState(t.viewModel,r),n){let e=t.model.validateRange(n.selectionStart),r=n.selectionStart.equalsRange(e)?n.selectionStartLeftoverVisibleColumns:0,i=t.model.validatePosition(n.position),a=n.position.equals(i)?n.leftoverVisibleColumns:0;n=new Lo(e,n.selectionStartKind,r,i,a)}else{if(!r)return;let e=t.model.validateRange(t.coordinatesConverter.convertViewRangeToModelRange(r.selectionStart)),i=t.model.validatePosition(t.coordinatesConverter.convertViewPositionToModelPosition(r.position));n=new Lo(e,r.selectionStartKind,r.selectionStartLeftoverVisibleColumns,i,r.leftoverVisibleColumns)}if(r){let e=t.coordinatesConverter.validateViewRange(r.selectionStart,n.selectionStart),i=t.coordinatesConverter.validateViewPosition(r.position,n.position);r=new Lo(e,n.selectionStartKind,n.selectionStartLeftoverVisibleColumns,i,n.leftoverVisibleColumns)}else{let e=t.coordinatesConverter.convertModelPositionToViewPosition(new b(n.selectionStart.startLineNumber,n.selectionStart.startColumn)),i=t.coordinatesConverter.convertModelPositionToViewPosition(new b(n.selectionStart.endLineNumber,n.selectionStart.endColumn)),a=new j(e.lineNumber,e.column,i.lineNumber,i.column),o=t.coordinatesConverter.convertModelPositionToViewPosition(n.position);r=new Lo(a,n.selectionStartKind,n.selectionStartLeftoverVisibleColumns,o,n.leftoverVisibleColumns)}this.modelState=n,this.viewState=r,this._updateTrackedRange(t)}},cf=class{constructor(e){this.context=e,this.cursors=[new sf(e)],this.lastAddedCursorIndex=0}dispose(){for(let e of this.cursors)e.dispose(this.context)}startTrackingSelections(){for(let e of this.cursors)e.startTrackingSelection(this.context)}stopTrackingSelections(){for(let e of this.cursors)e.stopTrackingSelection(this.context)}updateContext(e){this.context=e}ensureValidState(){for(let e of this.cursors)e.ensureValidState(this.context)}readSelectionFromMarkers(){return this.cursors.map(e=>e.readSelectionFromMarkers(this.context))}getAll(){return this.cursors.map(e=>e.asCursorState())}getViewPositions(){return this.cursors.map(e=>e.viewState.position)}getTopMostViewPosition(){return an(this.cursors,jt(e=>e.viewState.position,b.compare)).viewState.position}getBottomMostViewPosition(){return _n(this.cursors,jt(e=>e.viewState.position,b.compare)).viewState.position}getSelections(){return this.cursors.map(e=>e.modelState.selection)}getViewSelections(){return this.cursors.map(e=>e.viewState.selection)}setSelections(e){this.setStates(K.fromModelSelections(e))}getPrimaryCursor(){return this.cursors[0].asCursorState()}setStates(e){e!==null&&(this.cursors[0].setState(this.context,e[0].modelState,e[0].viewState),this._setSecondaryStates(e.slice(1)))}_setSecondaryStates(e){let t=this.cursors.length-1,n=e.length;if(t<n){let e=n-t;for(let t=0;t<e;t++)this._addSecondaryCursor()}else if(t>n){let e=t-n;for(let t=0;t<e;t++)this._removeSecondaryCursor(this.cursors.length-2)}for(let t=0;t<n;t++)this.cursors[t+1].setState(this.context,e[t].modelState,e[t].viewState)}killSecondaryCursors(){this._setSecondaryStates([])}_addSecondaryCursor(){this.cursors.push(new sf(this.context)),this.lastAddedCursorIndex=this.cursors.length-1}getLastAddedCursorIndex(){return this.cursors.length===1||this.lastAddedCursorIndex===0?0:this.lastAddedCursorIndex}_removeSecondaryCursor(e){this.lastAddedCursorIndex>=e+1&&this.lastAddedCursorIndex--,this.cursors[e+1].dispose(this.context),this.cursors.splice(e+1,1)}normalize(){if(this.cursors.length===1)return;let e=this.cursors.slice(0),t=[];for(let n=0,r=e.length;n<r;n++)t.push({index:n,selection:e[n].modelState.selection});t.sort(jt(e=>e.selection,j.compareRangesUsingStarts));for(let n=0;n<t.length-1;n++){let r=t[n],i=t[n+1],a=r.selection,o=i.selection;if(!this.context.cursorConfig.multiCursorMergeOverlapping)continue;let s;if(s=o.isEmpty()||a.isEmpty()?o.getStartPosition().isBeforeOrEqual(a.getEndPosition()):o.getStartPosition().isBefore(a.getEndPosition()),s){let a=r.index<i.index?n:n+1,o=r.index<i.index?n+1:n,s=t[o].index,c=t[a].index,l=t[o].selection,u=t[a].selection;if(!l.equalsSelection(u)){let n=l.plusRange(u),r=l.selectionStartLineNumber===l.startLineNumber&&l.selectionStartColumn===l.startColumn,i=u.selectionStartLineNumber===u.startLineNumber&&u.selectionStartColumn===u.startColumn,o;s===this.lastAddedCursorIndex?(o=r,this.lastAddedCursorIndex=c):o=i;let d;d=o?new L(n.startLineNumber,n.startColumn,n.endLineNumber,n.endColumn):new L(n.endLineNumber,n.endColumn,n.startLineNumber,n.startColumn),t[a].selection=d;let f=K.fromModelSelection(d);e[c].setState(this.context,f.modelState,f.viewState)}for(let e of t)e.index>s&&e.index--;e.splice(s,1),t.splice(o,1),this._removeSecondaryCursor(s-1),n--}}}},lf=class{constructor(e,t,n,r){this._cursorContextBrand=void 0,this.model=e,this.viewModel=t,this.coordinatesConverter=n,this.cursorConfig=r}},uf=class{constructor(){this.type=0}},df=class{constructor(){this.type=1}},ff=class{constructor(e){this.type=2,this._source=e}hasChanged(e){return this._source.hasChanged(e)}},pf=class{constructor(e,t,n){this.selections=e,this.modelSelections=t,this.reason=n,this.type=3}},mf=class{constructor(e){this.type=4,e?(this.affectsMinimap=e.affectsMinimap,this.affectsOverviewRuler=e.affectsOverviewRuler,this.affectsGlyphMargin=e.affectsGlyphMargin,this.affectsLineNumber=e.affectsLineNumber):(this.affectsMinimap=!0,this.affectsOverviewRuler=!0,this.affectsGlyphMargin=!0,this.affectsLineNumber=!0)}},hf=class{constructor(){this.type=5}},gf=class{constructor(e){this.type=6,this.isFocused=e}},_f=class{constructor(){this.type=7}},vf=class{constructor(){this.type=8}},yf=class{constructor(e,t){this.fromLineNumber=e,this.count=t,this.type=9}},bf=class{constructor(e,t){this.type=10,this.fromLineNumber=e,this.toLineNumber=t}},xf=class{constructor(e,t){this.type=11,this.fromLineNumber=e,this.toLineNumber=t}},Sf=class{constructor(e,t,n,r,i,a,o){this.source=e,this.minimalReveal=t,this.range=n,this.selections=r,this.verticalType=i,this.revealHorizontal=a,this.scrollType=o,this.type=12}},Cf=class{constructor(e){this.type=13,this.scrollWidth=e.scrollWidth,this.scrollLeft=e.scrollLeft,this.scrollHeight=e.scrollHeight,this.scrollTop=e.scrollTop,this.scrollWidthChanged=e.scrollWidthChanged,this.scrollLeftChanged=e.scrollLeftChanged,this.scrollHeightChanged=e.scrollHeightChanged,this.scrollTopChanged=e.scrollTopChanged}},wf=class{constructor(e){this.theme=e,this.type=14}},Tf=class{constructor(e){this.type=15,this.ranges=e}},Ef=class{constructor(){this.type=16}},Df=class{constructor(){this.type=17}},Of=class extends i{constructor(){super(),this._onEvent=this._register(new k),this.onEvent=this._onEvent.event,this._eventHandlers=[],this._viewEventQueue=null,this._isConsumingViewEventQueue=!1,this._collector=null,this._collectorCnt=0,this._outgoingEvents=[]}emitOutgoingEvent(e){this._addOutgoingEvent(e),this._emitOutgoingEvents()}_addOutgoingEvent(e){for(let t=0,n=this._outgoingEvents.length;t<n;t++){let n=this._outgoingEvents[t].kind===e.kind?this._outgoingEvents[t].attemptToMerge(e):null;if(n){this._outgoingEvents[t]=n;return}}this._outgoingEvents.push(e)}_emitOutgoingEvents(){for(;this._outgoingEvents.length>0;){if(this._collector||this._isConsumingViewEventQueue)return;let e=this._outgoingEvents.shift();e.isNoOp()||this._onEvent.fire(e)}}addViewEventHandler(e){for(let t=0,n=this._eventHandlers.length;t<n;t++)this._eventHandlers[t]===e&&console.warn(`Detected duplicate listener in ViewEventDispatcher`,e);this._eventHandlers.push(e)}removeViewEventHandler(e){for(let t=0;t<this._eventHandlers.length;t++)if(this._eventHandlers[t]===e){this._eventHandlers.splice(t,1);break}}beginEmitViewEvents(){return this._collectorCnt++,this._collectorCnt===1&&(this._collector=new kf),this._collector}endEmitViewEvents(){if(this._collectorCnt--,this._collectorCnt===0){let e=this._collector.outgoingEvents,t=this._collector.viewEvents;this._collector=null;for(let t of e)this._addOutgoingEvent(t);t.length>0&&this._emitMany(t)}this._emitOutgoingEvents()}emitSingleViewEvent(e){try{this.beginEmitViewEvents().emitViewEvent(e)}finally{this.endEmitViewEvents()}}_emitMany(e){this._viewEventQueue?this._viewEventQueue=this._viewEventQueue.concat(e):this._viewEventQueue=e,this._isConsumingViewEventQueue||this._consumeViewEventQueue()}_consumeViewEventQueue(){try{this._isConsumingViewEventQueue=!0,this._doConsumeQueue()}finally{this._isConsumingViewEventQueue=!1}}_doConsumeQueue(){for(;this._viewEventQueue;){let e=this._viewEventQueue;this._viewEventQueue=null;let t=this._eventHandlers.slice(0);for(let n of t)n.handleEvents(e)}}},kf=class{constructor(){this.viewEvents=[],this.outgoingEvents=[]}emitViewEvent(e){this.viewEvents.push(e)}emitOutgoingEvent(e){this.outgoingEvents.push(e)}},Af=class e{constructor(e,t,n,r){this.kind=0,this._oldContentWidth=e,this._oldContentHeight=t,this.contentWidth=n,this.contentHeight=r,this.contentWidthChanged=this._oldContentWidth!==this.contentWidth,this.contentHeightChanged=this._oldContentHeight!==this.contentHeight}isNoOp(){return!this.contentWidthChanged&&!this.contentHeightChanged}attemptToMerge(t){return t.kind===this.kind?new e(this._oldContentWidth,this._oldContentHeight,t.contentWidth,t.contentHeight):null}},jf=class e{constructor(e,t){this.kind=1,this.oldHasFocus=e,this.hasFocus=t}isNoOp(){return this.oldHasFocus===this.hasFocus}attemptToMerge(t){return t.kind===this.kind?new e(this.oldHasFocus,t.hasFocus):null}},Mf=class{constructor(e,t){this.kind=2,this.oldHasFocus=e,this.hasFocus=t}isNoOp(){return this.oldHasFocus===this.hasFocus}attemptToMerge(e){return e.kind===this.kind?new jf(this.oldHasFocus,e.hasFocus):null}},Nf=class e{constructor(e,t,n,r,i,a,o,s){this.kind=3,this._oldScrollWidth=e,this._oldScrollLeft=t,this._oldScrollHeight=n,this._oldScrollTop=r,this.scrollWidth=i,this.scrollLeft=a,this.scrollHeight=o,this.scrollTop=s,this.scrollWidthChanged=this._oldScrollWidth!==this.scrollWidth,this.scrollLeftChanged=this._oldScrollLeft!==this.scrollLeft,this.scrollHeightChanged=this._oldScrollHeight!==this.scrollHeight,this.scrollTopChanged=this._oldScrollTop!==this.scrollTop}isNoOp(){return!this.scrollWidthChanged&&!this.scrollLeftChanged&&!this.scrollHeightChanged&&!this.scrollTopChanged}attemptToMerge(t){return t.kind===this.kind?new e(this._oldScrollWidth,this._oldScrollLeft,this._oldScrollHeight,this._oldScrollTop,t.scrollWidth,t.scrollLeft,t.scrollHeight,t.scrollTop):null}},Pf=class{constructor(){this.kind=4}isNoOp(){return!1}attemptToMerge(e){return e.kind===this.kind?this:null}},Ff=class{constructor(){this.kind=5}isNoOp(){return!1}attemptToMerge(e){return e.kind===this.kind?this:null}},If=class e{constructor(e,t,n,r,i,a,o){this.kind=7,this.oldSelections=e,this.selections=t,this.oldModelVersionId=n,this.modelVersionId=r,this.source=i,this.reason=a,this.reachedMaxCursorCount=o}static _selectionsAreEqual(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;let n=e.length;if(n!==t.length)return!1;for(let r=0;r<n;r++)if(!e[r].equalsSelection(t[r]))return!1;return!0}isNoOp(){return e._selectionsAreEqual(this.oldSelections,this.selections)&&this.oldModelVersionId===this.modelVersionId}attemptToMerge(t){return t.kind===this.kind?new e(this.oldSelections,t.selections,this.oldModelVersionId,t.modelVersionId,t.source,t.reason,this.reachedMaxCursorCount||t.reachedMaxCursorCount):null}},Lf=class{constructor(){this.kind=6}isNoOp(){return!1}attemptToMerge(e){return e.kind===this.kind?this:null}},Rf=class{constructor(e){this.event=e,this.kind=8}isNoOp(){return!1}attemptToMerge(e){return null}},zf=class{constructor(e){this.event=e,this.kind=9}isNoOp(){return!1}attemptToMerge(e){return null}},Bf=class{constructor(e){this.event=e,this.kind=10}isNoOp(){return!1}attemptToMerge(e){return null}},Vf=class{constructor(e){this.event=e,this.kind=11}isNoOp(){return!1}attemptToMerge(e){return null}},Hf=class{constructor(e){this.event=e,this.kind=12}isNoOp(){return!1}attemptToMerge(e){return null}},Uf=class{constructor(e){this.event=e,this.kind=13}isNoOp(){return!1}attemptToMerge(e){return null}},Wf=class{constructor(e){this.event=e,this.kind=14}isNoOp(){return!1}attemptToMerge(e){return null}},Gf=class{constructor(e){this.event=e,this.kind=15}isNoOp(){return!1}attemptToMerge(e){return null}},Kf=class extends i{constructor(e,t,n,r){super(),this._model=e,this._knownModelVersionId=this._model.getVersionId(),this._viewModel=t,this._coordinatesConverter=n,this.context=new lf(this._model,this._viewModel,this._coordinatesConverter,r),this._cursors=new cf(this.context),this._hasFocus=!1,this._isHandling=!1,this._compositionState=null,this._columnSelectData=null,this._autoClosedActions=[],this._prevEditOperationType=0}dispose(){this._cursors.dispose(),this._autoClosedActions=t(this._autoClosedActions),super.dispose()}updateConfiguration(e){this.context=new lf(this._model,this._viewModel,this._coordinatesConverter,e),this._cursors.updateContext(this.context)}onLineMappingChanged(e){this._knownModelVersionId===this._model.getVersionId()&&this.setStates(e,`viewModel`,0,this.getCursorStates())}setHasFocus(e){this._hasFocus=e}_validateAutoClosedActions(){if(this._autoClosedActions.length>0){let e=this._cursors.getSelections();for(let t=0;t<this._autoClosedActions.length;t++){let n=this._autoClosedActions[t];n.isValid(e)||(n.dispose(),this._autoClosedActions.splice(t,1),t--)}}}getPrimaryCursorState(){return this._cursors.getPrimaryCursor()}getLastAddedCursorIndex(){return this._cursors.getLastAddedCursorIndex()}getCursorStates(){return this._cursors.getAll()}setStates(e,t,n,r){let i=!1,a=this.context.cursorConfig.multiCursorLimit;r!==null&&r.length>a&&(r=r.slice(0,a),i=!0);let o=qf.from(this._model,this);return this._cursors.setStates(r),this._cursors.normalize(),this._columnSelectData=null,this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,t,n,o,i)}setCursorColumnSelectData(e){this._columnSelectData=e}revealAll(e,t,n,r,i,a){let o=this._cursors.getViewPositions(),s=null,c=null;o.length>1?c=this._cursors.getViewSelections():s=j.fromPositions(o[0],o[0]),e.emitViewEvent(new Sf(t,n,s,c,r,i,a))}revealPrimary(e,t,n,r,i,a){let o=[this._cursors.getPrimaryCursor().viewState.selection];e.emitViewEvent(new Sf(t,n,null,o,r,i,a))}saveState(){let e=[],t=this._cursors.getSelections();for(let n=0,r=t.length;n<r;n++){let r=t[n];e.push({inSelectionMode:!r.isEmpty(),selectionStart:{lineNumber:r.selectionStartLineNumber,column:r.selectionStartColumn},position:{lineNumber:r.positionLineNumber,column:r.positionColumn}})}return e}restoreState(e,t){let n=[];for(let e=0,r=t.length;e<r;e++){let r=t[e],i=1,a=1;r.position&&r.position.lineNumber&&(i=r.position.lineNumber),r.position&&r.position.column&&(a=r.position.column);let o=i,s=a;r.selectionStart&&r.selectionStart.lineNumber&&(o=r.selectionStart.lineNumber),r.selectionStart&&r.selectionStart.column&&(s=r.selectionStart.column),n.push({selectionStartLineNumber:o,selectionStartColumn:s,positionLineNumber:i,positionColumn:a})}this.setStates(e,`restoreState`,0,K.fromModelSelections(n)),this.revealAll(e,`restoreState`,!1,0,!0,1)}onModelContentChanged(e,t){if(t instanceof pn){if(this._isHandling)return;this._isHandling=!0;try{this.setStates(e,`modelChange`,0,this.getCursorStates())}finally{this._isHandling=!1}}else{let n=t.rawContentChangedEvent;if(this._knownModelVersionId=n.versionId,this._isHandling)return;let r=n.containsEvent(1);if(this._prevEditOperationType=0,r)this._cursors.dispose(),this._cursors=new cf(this.context),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,`model`,1,null,!1);else if(this._hasFocus&&n.resultingSelection&&n.resultingSelection.length>0){let t=K.fromModelSelections(n.resultingSelection);this.setStates(e,`modelChange`,n.isUndoing?5:n.isRedoing?6:2,t)&&this.revealAll(e,`modelChange`,!1,0,!0,0)}else{let t=this._cursors.readSelectionFromMarkers();this.setStates(e,`modelChange`,2,K.fromModelSelections(t))}}}getSelection(){return this._cursors.getPrimaryCursor().modelState.selection}getTopMostViewPosition(){return this._cursors.getTopMostViewPosition()}getBottomMostViewPosition(){return this._cursors.getBottomMostViewPosition()}getCursorColumnSelectData(){if(this._columnSelectData)return this._columnSelectData;let e=this._cursors.getPrimaryCursor(),t=e.viewState.selectionStart.getStartPosition(),n=e.viewState.position;return{isReal:!1,fromViewLineNumber:t.lineNumber,fromViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,t),toViewLineNumber:n.lineNumber,toViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,n)}}getSelections(){return this._cursors.getSelections()}setSelections(e,t,n,r){this.setStates(e,t,r,K.fromModelSelections(n))}getPrevEditOperationType(){return this._prevEditOperationType}setPrevEditOperationType(e){this._prevEditOperationType=e}_pushAutoClosedAction(e,t){let n=[],r=[];for(let i=0,a=e.length;i<a;i++)n.push({range:e[i],options:{description:`auto-closed-character`,inlineClassName:`auto-closed-character`,stickiness:1}}),r.push({range:t[i],options:{description:`auto-closed-enclosing`,stickiness:1}});let i=this._model.deltaDecorations([],n),a=this._model.deltaDecorations([],r);this._autoClosedActions.push(new Jf(this._model,i,a))}_executeEditOperation(e,t){if(!e)return;e.shouldPushStackElementBefore&&this._model.pushStackElement();let n=Yf.executeCommands(this._model,this._cursors.getSelections(),e.commands,t);if(n){this._interpretCommandResult(n);let t=[],r=[];for(let n=0;n<e.commands.length;n++){let i=e.commands[n];i instanceof Es&&i.enclosingRange&&i.closeCharacterRange&&(t.push(i.closeCharacterRange),r.push(i.enclosingRange))}t.length>0&&this._pushAutoClosedAction(t,r),this._prevEditOperationType=e.type}e.shouldPushStackElementAfter&&this._model.pushStackElement()}_interpretCommandResult(e){(!e||e.length===0)&&(e=this._cursors.readSelectionFromMarkers()),this._columnSelectData=null,this._cursors.setSelections(e),this._cursors.normalize()}_emitStateChangedIfNecessary(e,t,n,r,i){let a=qf.from(this._model,this);if(a.equals(r))return!1;let o=this._cursors.getSelections(),s=this._cursors.getViewSelections();if(e.emitViewEvent(new pf(s,o,n)),!r||r.cursorState.length!==a.cursorState.length||a.cursorState.some((e,t)=>!e.modelState.equals(r.cursorState[t].modelState))){let s=r?r.cursorState.map(e=>e.modelState.selection):null,c=r?r.modelVersionId:0;e.emitOutgoingEvent(new If(s,o,c,a.modelVersionId,t||`keyboard`,n,i))}return!0}_findAutoClosingPairs(e){if(!e.length)return null;let t=[];for(let n=0,r=e.length;n<r;n++){let r=e[n];if(!r.text||r.text.indexOf(`
`)>=0)return null;let i=r.text.match(/([)\]}>'"`])([^)\]}>'"`]*)$/);if(!i)return null;let a=i[1],o=this.context.cursorConfig.autoClosingPairs.autoClosingPairsCloseSingleChar.get(a);if(!o||o.length!==1)return null;let s=o[0].open,c=r.text.length-i[2].length-1,l=r.text.lastIndexOf(s,c-1);if(l===-1)return null;t.push([l,c])}return t}executeEdits(e,t,n,r,i){let a=null;t===`snippet`&&(a=this._findAutoClosingPairs(n)),a&&(n[0]._isTracked=!0);let o=[],s=[],c=this._model.pushEditOperations(this.getSelections(),n,e=>{if(a)for(let t=0,n=a.length;t<n;t++){let[n,r]=a[t],i=e[t],c=i.range.startLineNumber,l=i.range.startColumn-1+n,u=i.range.startColumn-1+r;o.push(new j(c,u+1,c,u+2)),s.push(new j(c,l+1,c,u+2))}let t=r(e);return t&&(this._isHandling=!0),t},void 0,i);c&&(this._isHandling=!1,this.setSelections(e,t,c,0)),o.length>0&&this._pushAutoClosedAction(o,s)}_executeEdit(e,t,n,r=0){if(this.context.cursorConfig.readOnly)return;let i=qf.from(this._model,this);this._cursors.stopTrackingSelections(),this._isHandling=!0;try{this._cursors.ensureValidState(),e()}catch(e){Se(e)}this._isHandling=!1,this._cursors.startTrackingSelections(),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(t,n,r,i,!1)&&this.revealAll(t,n,!1,0,!0,0)}getAutoClosedCharacters(){return Jf.getAllAutoClosedCharacters(this._autoClosedActions)}startComposition(e){this._compositionState=new Zf(this._model,this.getSelections())}endComposition(e,t){let n=mn.cursor({kind:`compositionEnd`,detailedSource:t}),r=this._compositionState?this._compositionState.deduceOutcome(this._model,this.getSelections()):null;this._compositionState=null,this._executeEdit(()=>{t===`keyboard`&&this._executeEditOperation(Rs.compositionEndWithInterceptors(this._prevEditOperationType,this.context.cursorConfig,this._model,r,this.getSelections(),this.getAutoClosedCharacters()),n)},e,t)}type(e,t,n){let i=mn.cursor({kind:`type`,detailedSource:n});this._executeEdit(()=>{if(n===`keyboard`){let e=t.length,n=0;for(;n<e;){let e=r(t,n),a=t.substr(n,e);this._executeEditOperation(Rs.typeWithInterceptors(!!this._compositionState,this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),this.getAutoClosedCharacters(),a),i),n+=e}}else this._executeEditOperation(Rs.typeWithoutInterceptors(this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),t),i)},e,n)}compositionType(e,t,n,r,i,a){let o=mn.cursor({kind:`compositionType`,detailedSource:a});if(t.length===0&&n===0&&r===0){if(i!==0){let t=this.getSelections().map(e=>{let t=e.getPosition();return new L(t.lineNumber,t.column+i,t.lineNumber,t.column+i)});this.setSelections(e,a,t,0)}return}this._executeEdit(()=>{this._executeEditOperation(Rs.compositionType(this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),t,n,r,i),o)},e,a)}paste(e,t,n,r,i){let a=mn.cursor({kind:`paste`,detailedSource:i});this._executeEdit(()=>{this._executeEditOperation(Rs.paste(this.context.cursorConfig,this._model,this.getSelections(),t,n,r||[]),a)},e,i,4)}cut(e,t){let n=mn.cursor({kind:`cut`,detailedSource:t});this._executeEdit(()=>{this._executeEditOperation(Ho.cut(this.context.cursorConfig,this._model,this.getSelections()),n)},e,t)}executeCommand(e,t,n){let r=mn.cursor({kind:`executeCommand`,detailedSource:n});this._executeEdit(()=>{this._cursors.killSecondaryCursors(),this._executeEditOperation(new Ro(0,[t],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}),r)},e,n)}executeCommands(e,t,n){let r=mn.cursor({kind:`executeCommands`,detailedSource:n});this._executeEdit(()=>{this._executeEditOperation(new Ro(0,t,{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}),r)},e,n)}},qf=class e{static from(t,n){return new e(t.getVersionId(),n.getCursorStates())}constructor(e,t){this.modelVersionId=e,this.cursorState=t}equals(e){if(!e||this.modelVersionId!==e.modelVersionId||this.cursorState.length!==e.cursorState.length)return!1;for(let t=0,n=this.cursorState.length;t<n;t++)if(!this.cursorState[t].equals(e.cursorState[t]))return!1;return!0}},Jf=class{static getAllAutoClosedCharacters(e){let t=[];for(let n of e)t=t.concat(n.getAutoClosedCharactersRanges());return t}constructor(e,t,n){this._model=e,this._autoClosedCharactersDecorations=t,this._autoClosedEnclosingDecorations=n}dispose(){this._autoClosedCharactersDecorations=this._model.deltaDecorations(this._autoClosedCharactersDecorations,[]),this._autoClosedEnclosingDecorations=this._model.deltaDecorations(this._autoClosedEnclosingDecorations,[])}getAutoClosedCharactersRanges(){let e=[];for(let t=0;t<this._autoClosedCharactersDecorations.length;t++){let n=this._model.getDecorationRange(this._autoClosedCharactersDecorations[t]);n&&e.push(n)}return e}isValid(e){let t=[];for(let e=0;e<this._autoClosedEnclosingDecorations.length;e++){let n=this._model.getDecorationRange(this._autoClosedEnclosingDecorations[e]);if(n&&(t.push(n),n.startLineNumber!==n.endLineNumber))return!1}t.sort(j.compareRangesUsingStarts),e.sort(j.compareRangesUsingStarts);for(let n=0;n<e.length;n++)if(n>=t.length||!t[n].strictContainsRange(e[n]))return!1;return!0}},Yf=class{static executeCommands(e,t,n,r=mn.unknown({name:`executeCommands`})){let i={model:e,selectionsBefore:t,trackedRanges:[],trackedRangesDirection:[]},a=this._innerExecuteCommands(i,n,r);for(let e=0,t=i.trackedRanges.length;e<t;e++)i.model._setTrackedRange(i.trackedRanges[e],null,0);return a}static _innerExecuteCommands(e,t,n){if(this._arrayIsEmpty(t))return null;let r=this._getEditOperations(e,t);if(r.operations.length===0)return null;let i=r.operations,a=this._getLoserCursorMap(i);if(a.hasOwnProperty(`0`))return console.warn(`Ignoring commands`),null;let o=[];for(let e=0,t=i.length;e<t;e++)a.hasOwnProperty(i[e].identifier.major.toString())||o.push(i[e]);r.hadTrackedEditOperation&&o.length>0&&(o[0]._isTracked=!0);let s=e.model.pushEditOperations(e.selectionsBefore,o,n=>{let r=[];for(let t=0;t<e.selectionsBefore.length;t++)r[t]=[];for(let e of n)e.identifier&&r[e.identifier.major].push(e);let i=(e,t)=>e.identifier.minor-t.identifier.minor,a=[];for(let n=0;n<e.selectionsBefore.length;n++)r[n].length>0?(r[n].sort(i),a[n]=t[n].computeCursorState(e.model,{getInverseEditOperations:()=>r[n],getTrackedSelection:t=>{let n=parseInt(t,10),r=e.model._getTrackedRange(e.trackedRanges[n]);return e.trackedRangesDirection[n]===0?new L(r.startLineNumber,r.startColumn,r.endLineNumber,r.endColumn):new L(r.endLineNumber,r.endColumn,r.startLineNumber,r.startColumn)}})):a[n]=e.selectionsBefore[n];return a},void 0,n);s||=e.selectionsBefore;let c=[];for(let e in a)a.hasOwnProperty(e)&&c.push(parseInt(e,10));c.sort((e,t)=>t-e);for(let e of c)s.splice(e,1);return s}static _arrayIsEmpty(e){for(let t=0,n=e.length;t<n;t++)if(e[t])return!1;return!0}static _getEditOperations(e,t){let n=[],r=!1;for(let i=0,a=t.length;i<a;i++){let a=t[i];if(a){let t=this._getEditOperationsFromCommand(e,i,a);n=n.concat(t.operations),r||=t.hadTrackedEditOperation}}return{operations:n,hadTrackedEditOperation:r}}static _getEditOperationsFromCommand(e,t,n){let r=[],i=0,a=(e,a,o=!1)=>{j.isEmpty(e)&&a===``||r.push({identifier:{major:t,minor:i++},range:e,text:a,forceMoveMarkers:o,isAutoWhitespaceEdit:n.insertsAutoWhitespace})},o=!1,s={addEditOperation:a,addTrackedEditOperation:(e,t,n)=>{o=!0,a(e,t,n)},trackSelection:(t,n)=>{let r=L.liftSelection(t),i;if(r.isEmpty())if(typeof n==`boolean`)i=n?2:3;else{let t=e.model.getLineMaxColumn(r.startLineNumber);i=r.startColumn===t?2:3}else i=1;let a=e.trackedRanges.length,o=e.model._setTrackedRange(null,r,i);return e.trackedRanges[a]=o,e.trackedRangesDirection[a]=r.getDirection(),a.toString()}};try{n.getEditOperations(e.model,s)}catch(e){return Se(e),{operations:[],hadTrackedEditOperation:!1}}return{operations:r,hadTrackedEditOperation:o}}static _getLoserCursorMap(e){e=e.slice(0),e.sort((e,t)=>-j.compareRangesUsingEnds(e.range,t.range));let t={};for(let n=1;n<e.length;n++){let r=e[n-1],i=e[n];if(j.getStartPosition(r.range).isBefore(j.getEndPosition(i.range))){let a;a=r.identifier.major>i.identifier.major?r.identifier.major:i.identifier.major,t[a.toString()]=!0;for(let t=0;t<e.length;t++)e[t].identifier.major===a&&(e.splice(t,1),t<n&&n--,t--);n>0&&n--}}return t}},Xf=class{constructor(e,t,n,r){this.text=e,this.lineNumber=t,this.startSelectionOffset=n,this.endSelectionOffset=r}},Zf=class e{static _capture(e,t){let n=[];for(let r of t){if(r.startLineNumber!==r.endLineNumber)return null;let t=r.startLineNumber;n.push(new Xf(e.getLineContent(t),t,r.startColumn-1,r.endColumn-1))}return n}constructor(t,n){this._original=e._capture(t,n)}deduceOutcome(t,n){if(!this._original)return null;let r=e._capture(t,n);if(!r||this._original.length!==r.length)return null;let i=[];for(let t=0,n=this._original.length;t<n;t++)i.push(e._deduceOutcome(this._original[t],r[t]));return i}static _deduceOutcome(e,t){let n=Math.min(e.startSelectionOffset,t.startSelectionOffset,re(e.text,t.text)),r=Math.min(e.text.length-e.endSelectionOffset,t.text.length-t.endSelectionOffset,f(e.text,t.text)),i=e.text.substring(n,e.text.length-r),a=n,o=t.text.length-r,s=t.text.substring(a,o),c=new j(t.lineNumber,a+1,t.lineNumber,o+1);return new zs(i,e.startSelectionOffset-n,e.endSelectionOffset-n,s,t.startSelectionOffset-n,t.endSelectionOffset-n,c)}},Qf={getInitialState:()=>qn,tokenizeEncoded:(e,t,n)=>Un(0,n)};async function $f(e,t,n){if(!n)return tp(t,e.languageIdCodec,Qf);let r=await Cn.getOrCreate(n);return tp(t,e.languageIdCodec,r||Qf)}function ep(e,t,n,r,i,a,o){let s=`<div>`,c=0,l=0,u=!0;for(let d=0,f=t.getCount();d<f;d++){let f=t.getEndOffset(d),p=``;for(;c<f&&c<i;c++){let t=e.charCodeAt(c),n=t===9;if(l+=ve(t)?2:+!n,c<r){if(n){let e=l%a;l+=e===0?a:a-e}continue}switch(t){case 9:{let e=l%a,t=e===0?a:a-e;l+=t;let n=t;for(;n>0;)o&&u?(p+=` `,u=!1):(p+=` `,u=!0),n--;break}case 60:p+=`<`,u=!1;break;case 62:p+=`>`,u=!1;break;case 38:p+=`&`,u=!1;break;case 0:p+=`�`,u=!1;break;case 65279:case 8232:case 8233:case 133:p+=`�`,u=!1;break;case 13:p+=`​`,u=!1;break;case 32:o&&u?(p+=` `,u=!1):(p+=` `,u=!0);break;default:p+=String.fromCharCode(t),u=!1}}if(!(f<=r)&&(s+=`<span style="${t.getInlineStyle(d,n)}">${p}</span>`,f>i||c>=i||r>=i))break}return s+=`</div>`,s}function tp(e,t,n){let r=`<div class="monaco-tokenized-source">`,i=S(e),a=n.getInitialState();for(let e=0,o=i.length;e<o;e++){let o=i[e];e>0&&(r+=`<br/>`);let s=n.tokenizeEncoded(o,!0,a);fr.convertToEndOffset(s.tokens,o.length);let c=new fr(s.tokens,o,t).inflate(),l=0;for(let e=0,t=c.getCount();e<t;e++){let t=c.getClassName(e),n=c.getEndOffset(e);r+=`<span class="${t}">${De(o.substring(l,n))}</span>`,l=n}a=s.endState}return r+=`</div>`,r}var np=class{constructor(e,t,n,r,i){this.decorationId=e,this.index=t,this.lineNumber=n,this.specialHeight=r,this.prefixSum=i,this.maximumSpecialHeight=r,this.deleted=!1}},rp=class{constructor(e,t){if(this._decorationIDToCustomLine=new ip,this._orderedCustomLines=[],this._pendingSpecialLinesToInsert=[],this._invalidIndex=0,this._hasPending=!1,this._defaultLineHeight=e,t.length>0){for(let e of t)this.insertOrChangeCustomLineHeight(e.decorationId,e.startLineNumber,e.endLineNumber,e.lineHeight);this.commit()}}set defaultLineHeight(e){this._defaultLineHeight=e}get defaultLineHeight(){return this._defaultLineHeight}removeCustomLineHeight(e){let t=this._decorationIDToCustomLine.get(e);if(t){this._decorationIDToCustomLine.delete(e);for(let e of t)e.deleted=!0,this._invalidIndex=Math.min(this._invalidIndex,e.index);this._hasPending=!0}}insertOrChangeCustomLineHeight(e,t,n,r){this.removeCustomLineHeight(e);for(let i=t;i<=n;i++){let t=new np(e,-1,i,r,0);this._pendingSpecialLinesToInsert.push(t)}this._hasPending=!0}heightForLineNumber(e){let t=this._binarySearchOverOrderedCustomLinesArray(e);return t>=0?this._orderedCustomLines[t].maximumSpecialHeight:this._defaultLineHeight}getAccumulatedLineHeightsIncludingLineNumber(e){let t=this._binarySearchOverOrderedCustomLinesArray(e);if(t>=0)return this._orderedCustomLines[t].prefixSum+this._orderedCustomLines[t].maximumSpecialHeight;if(t===-1)return this._defaultLineHeight*e;let n=-(t+1),r=this._orderedCustomLines[n-1];return r.prefixSum+r.maximumSpecialHeight+this._defaultLineHeight*(e-r.lineNumber)}onLinesDeleted(e,t){let n=t-e+1,r=this._orderedCustomLines.length,i=this._binarySearchOverOrderedCustomLinesArray(e),a;if(i>=0){a=i;for(let t=i-1;t>=0&&this._orderedCustomLines[t].lineNumber===e;t--)a--}else a=i===-(r+1)&&i!==-1?r-1:-(i+1);let o=this._binarySearchOverOrderedCustomLinesArray(t),s;if(o>=0){s=o;for(let e=o+1;e<r&&this._orderedCustomLines[e].lineNumber===t;e++)s++}else s=o===-(r+1)&&o!==-1?r-1:-(o+1);let c=s>a,l=s===a&&this._orderedCustomLines[a]&&this._orderedCustomLines[a].lineNumber>=e&&this._orderedCustomLines[a].lineNumber<=t;if(c||l){let r=0;for(let e=a;e<=s;e++)r=Math.max(r,this._orderedCustomLines[e].maximumSpecialHeight);let i=0;if(a>0){let t=this._orderedCustomLines[a-1];i=t.prefixSum+t.maximumSpecialHeight+this._defaultLineHeight*(e-t.lineNumber-1)}else i=e>0?(e-1)*this._defaultLineHeight:0;let o=this._orderedCustomLines[a],c=this._orderedCustomLines[s],l=this._orderedCustomLines[s+1],u=l&&l.lineNumber===t+1?l.maximumSpecialHeight:this._defaultLineHeight,d=c.prefixSum+c.maximumSpecialHeight-o.prefixSum+this._defaultLineHeight*(t-c.lineNumber)+this._defaultLineHeight*(o.lineNumber-e)+u-r,f=new Set,p=[],m=new ip,h=0;for(let t=0;t<this._orderedCustomLines.length;t++){let o=this._orderedCustomLines[t];if(t<a)p.push(o),m.add(o.decorationId,o);else if(t>=a&&t<=s){let t=o.decorationId;f.has(t)?h++:(o.index-=h,o.lineNumber=e,o.prefixSum=i,o.maximumSpecialHeight=r,p.push(o),m.add(o.decorationId,o))}else t>s&&(o.index-=h,o.lineNumber-=n,o.prefixSum-=d,p.push(o),m.add(o.decorationId,o));f.add(o.decorationId)}this._orderedCustomLines=p,this._decorationIDToCustomLine=m}else{let e=n*this._defaultLineHeight;for(let r=s;r<this._orderedCustomLines.length;r++){let i=this._orderedCustomLines[r];i.lineNumber>t&&(i.lineNumber-=n,i.prefixSum-=e)}}}onLinesInserted(e,t){let n=t-e+1,r=this._binarySearchOverOrderedCustomLinesArray(e),i;if(r>=0){i=r;for(let t=r-1;t>=0&&this._orderedCustomLines[t].lineNumber===e;t--)i--}else i=-(r+1);let a=[],o=new Set;for(let t=i;t<this._orderedCustomLines.length;t++)this._orderedCustomLines[t].lineNumber===e&&o.add(this._orderedCustomLines[t].decorationId);let s=new Set;for(let t=i-1;t>=0;t--)this._orderedCustomLines[t].lineNumber===e-1&&s.add(this._orderedCustomLines[t].decorationId);let c=Qn(s,o);for(let e=i;e<this._orderedCustomLines.length;e++)this._orderedCustomLines[e].lineNumber+=n,this._orderedCustomLines[e].prefixSum+=this._defaultLineHeight*n;if(c.size>0){for(let t of c){let n=this._decorationIDToCustomLine.get(t);if(n){let r=n.reduce((e,t)=>Math.min(e,t.lineNumber),e),i=n.reduce((e,t)=>Math.max(e,t.lineNumber),e),o=n.reduce((e,t)=>Math.max(e,t.specialHeight),0);a.push({decorationId:t,startLineNumber:r,endLineNumber:i,lineHeight:o})}}for(let e of a)this.insertOrChangeCustomLineHeight(e.decorationId,e.startLineNumber,e.endLineNumber,e.lineHeight);this.commit()}}commit(){if(!this._hasPending)return;for(let e of this._pendingSpecialLinesToInsert){let t=this._binarySearchOverOrderedCustomLinesArray(e.lineNumber),n=t>=0?t:-(t+1);this._orderedCustomLines.splice(n,0,e),this._invalidIndex=Math.min(this._invalidIndex,n)}this._pendingSpecialLinesToInsert=[];let e=new ip,t=[];for(let n=0;n<this._invalidIndex;n++){let r=this._orderedCustomLines[n];t.push(r),e.add(r.decorationId,r)}let n=0,r=this._invalidIndex>0?t[this._invalidIndex-1]:void 0;for(let i=this._invalidIndex;i<this._orderedCustomLines.length;i++){let a=this._orderedCustomLines[i];if(a.deleted){n++;continue}if(a.index=i-n,r&&r.lineNumber===a.lineNumber)a.maximumSpecialHeight=r.maximumSpecialHeight,a.prefixSum=r.prefixSum;else{let e=a.specialHeight;for(let t=i;t<this._orderedCustomLines.length;t++){let n=this._orderedCustomLines[t];if(!n.deleted){if(n.lineNumber!==a.lineNumber)break;e=Math.max(e,n.specialHeight)}}a.maximumSpecialHeight=e;let t;t=r?r.prefixSum+r.maximumSpecialHeight+this._defaultLineHeight*(a.lineNumber-r.lineNumber-1):this._defaultLineHeight*(a.lineNumber-1),a.prefixSum=t}r=a,t.push(a),e.add(a.decorationId,a)}this._orderedCustomLines=t,this._decorationIDToCustomLine=e,this._invalidIndex=1/0,this._hasPending=!1}_binarySearchOverOrderedCustomLinesArray(e){return st(this._orderedCustomLines.length,t=>{let n=this._orderedCustomLines[t];return n.lineNumber===e?0:n.lineNumber<e?-1:1})}},ip=class{constructor(){this._map=new Map}add(e,t){let n=this._map.get(e);n?n.push(t):this._map.set(e,[t])}get(e){return this._map.get(e)}delete(e){this._map.delete(e)}},ap=class{constructor(){this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[]}insert(e){this._hasPending=!0,this._inserts.push(e)}change(e){this._hasPending=!0,this._changes.push(e)}remove(e){this._hasPending=!0,this._removes.push(e)}commit(e){if(!this._hasPending)return;let t=this._inserts,n=this._changes,r=this._removes;this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[],e._commitPendingChanges(t,n,r)}},op=class{constructor(e,t,n,r,i){this.id=e,this.afterLineNumber=t,this.ordinal=n,this.height=r,this.minWidth=i,this.prefixSum=0}},sp=class e{static{this.INSTANCE_COUNT=0}constructor(t,n,r,i,o){this._instanceId=a(++e.INSTANCE_COUNT),this._pendingChanges=new ap,this._lastWhitespaceId=0,this._arr=[],this._prefixSumValidIndex=-1,this._minWidth=-1,this._lineCount=t,this._paddingTop=r,this._paddingBottom=i,this._lineHeightsManager=new rp(n,o)}static findInsertionIndex(e,t,n){let r=0,i=e.length;for(;r<i;){let a=r+i>>>1;t===e[a].afterLineNumber?n<e[a].ordinal?i=a:r=a+1:t<e[a].afterLineNumber?i=a:r=a+1}return r}setDefaultLineHeight(e){this._lineHeightsManager.defaultLineHeight=e}setPadding(e,t){this._paddingTop=e,this._paddingBottom=t}onFlushed(e,t){this._lineCount=e,this._lineHeightsManager=new rp(this._lineHeightsManager.defaultLineHeight,t)}changeLineHeights(e){let t=!1;try{e({insertOrChangeCustomLineHeight:(e,n,r,i)=>{t=!0,this._lineHeightsManager.insertOrChangeCustomLineHeight(e,n,r,i)},removeCustomLineHeight:e=>{t=!0,this._lineHeightsManager.removeCustomLineHeight(e)}})}finally{this._lineHeightsManager.commit()}return t}changeWhitespace(e){let t=!1;try{e({insertWhitespace:(e,n,r,i)=>{t=!0,e|=0,n|=0,r|=0,i|=0;let a=this._instanceId+ ++this._lastWhitespaceId;return this._pendingChanges.insert(new op(a,e,n,r,i)),a},changeOneWhitespace:(e,n,r)=>{t=!0,n|=0,r|=0,this._pendingChanges.change({id:e,newAfterLineNumber:n,newHeight:r})},removeWhitespace:e=>{t=!0,this._pendingChanges.remove({id:e})}})}finally{this._pendingChanges.commit(this)}return t}_commitPendingChanges(e,t,n){if((e.length>0||n.length>0)&&(this._minWidth=-1),e.length+t.length+n.length<=1){for(let t of e)this._insertWhitespace(t);for(let e of t)this._changeOneWhitespace(e.id,e.newAfterLineNumber,e.newHeight);for(let e of n){let t=this._findWhitespaceIndex(e.id);t!==-1&&this._removeWhitespace(t)}return}let r=new Set;for(let e of n)r.add(e.id);let i=new Map;for(let e of t)i.set(e.id,e);let a=e=>{let t=[];for(let n of e)if(!r.has(n.id)){if(i.has(n.id)){let e=i.get(n.id);n.afterLineNumber=e.newAfterLineNumber,n.height=e.newHeight}t.push(n)}return t},o=a(this._arr).concat(a(e));o.sort((e,t)=>e.afterLineNumber===t.afterLineNumber?e.ordinal-t.ordinal:e.afterLineNumber-t.afterLineNumber),this._arr=o,this._prefixSumValidIndex=-1}_insertWhitespace(t){let n=e.findInsertionIndex(this._arr,t.afterLineNumber,t.ordinal);this._arr.splice(n,0,t),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,n-1)}_findWhitespaceIndex(e){let t=this._arr;for(let n=0,r=t.length;n<r;n++)if(t[n].id===e)return n;return-1}_changeOneWhitespace(e,t,n){let r=this._findWhitespaceIndex(e);if(r!==-1&&(this._arr[r].height!==n&&(this._arr[r].height=n,this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,r-1)),this._arr[r].afterLineNumber!==t)){let e=this._arr[r];this._removeWhitespace(r),e.afterLineNumber=t,this._insertWhitespace(e)}}_removeWhitespace(e){this._arr.splice(e,1),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,e-1)}onLinesDeleted(e,t){e|=0,t|=0,this._lineCount-=t-e+1;for(let n=0,r=this._arr.length;n<r;n++){let r=this._arr[n].afterLineNumber;e<=r&&r<=t?this._arr[n].afterLineNumber=e-1:r>t&&(this._arr[n].afterLineNumber-=t-e+1)}this._lineHeightsManager.onLinesDeleted(e,t)}onLinesInserted(e,t){e|=0,t|=0,this._lineCount+=t-e+1;for(let n=0,r=this._arr.length;n<r;n++){let r=this._arr[n].afterLineNumber;e<=r&&(this._arr[n].afterLineNumber+=t-e+1)}this._lineHeightsManager.onLinesInserted(e,t)}getWhitespacesTotalHeight(){return this._arr.length===0?0:this.getWhitespacesAccumulatedHeight(this._arr.length-1)}getWhitespacesAccumulatedHeight(e){e|=0;let t=Math.max(0,this._prefixSumValidIndex+1);t===0&&(this._arr[0].prefixSum=this._arr[0].height,t++);for(let n=t;n<=e;n++)this._arr[n].prefixSum=this._arr[n-1].prefixSum+this._arr[n].height;return this._prefixSumValidIndex=Math.max(this._prefixSumValidIndex,e),this._arr[e].prefixSum}getLinesTotalHeight(){return this._lineHeightsManager.getAccumulatedLineHeightsIncludingLineNumber(this._lineCount)+this.getWhitespacesTotalHeight()+this._paddingTop+this._paddingBottom}getWhitespaceAccumulatedHeightBeforeLineNumber(e){e|=0;let t=this._findLastWhitespaceBeforeLineNumber(e);return t===-1?0:this.getWhitespacesAccumulatedHeight(t)}_findLastWhitespaceBeforeLineNumber(e){e|=0;let t=this._arr,n=0,r=t.length-1;for(;n<=r;){let i=(r-n|0)/2|0,a=n+i|0;if(t[a].afterLineNumber<e){if(a+1>=t.length||t[a+1].afterLineNumber>=e)return a;n=a+1|0}else r=a-1|0}return-1}_findFirstWhitespaceAfterLineNumber(e){e|=0;let t=this._findLastWhitespaceBeforeLineNumber(e)+1;return t<this._arr.length?t:-1}getFirstWhitespaceIndexAfterLineNumber(e){return e|=0,this._findFirstWhitespaceAfterLineNumber(e)}getVerticalOffsetForLineNumber(e,t=!1){e|=0;let n;n=e>1?this._lineHeightsManager.getAccumulatedLineHeightsIncludingLineNumber(e-1):0;let r=this.getWhitespaceAccumulatedHeightBeforeLineNumber(e-+!!t);return n+r+this._paddingTop}getLineHeightForLineNumber(e){return this._lineHeightsManager.heightForLineNumber(e)}getVerticalOffsetAfterLineNumber(e,t=!1){return e|=0,this._lineHeightsManager.getAccumulatedLineHeightsIncludingLineNumber(e)+this.getWhitespaceAccumulatedHeightBeforeLineNumber(e+ +!!t)+this._paddingTop}getWhitespaceMinWidth(){if(this._minWidth===-1){let e=0;for(let t=0,n=this._arr.length;t<n;t++)e=Math.max(e,this._arr[t].minWidth);this._minWidth=e}return this._minWidth}isAfterLines(e){return e>this.getLinesTotalHeight()}isInTopPadding(e){return this._paddingTop===0?!1:e<this._paddingTop}isInBottomPadding(e){return this._paddingBottom===0?!1:e>=this.getLinesTotalHeight()-this._paddingBottom}getLineNumberAtOrAfterVerticalOffset(e){if(e|=0,e<0)return 1;let t=this._lineCount|0,n=1,r=t;for(;n<r;){let t=(n+r)/2|0,i=this.getLineHeightForLineNumber(t),a=this.getVerticalOffsetForLineNumber(t)|0;if(e>=a+i)n=t+1;else if(e>=a)return t;else r=t}return n>t?t:n}getLinesViewportData(e,t){e|=0,t|=0;let n=this.getLineNumberAtOrAfterVerticalOffset(e)|0,r=this.getVerticalOffsetForLineNumber(n)|0,i=this._lineCount|0,a=this.getFirstWhitespaceIndexAfterLineNumber(n)|0,o=this.getWhitespacesCount()|0,s,c;a===-1?(a=o,c=i+1,s=0):(c=this.getAfterLineNumberForWhitespaceIndex(a)|0,s=this.getHeightForWhitespaceIndex(a)|0);let l=r,u=l,d=5e5,f=0;r>=d&&(f=Math.floor(r/d)*d,f=Math.floor(f/this._lineHeightsManager.defaultLineHeight)*this._lineHeightsManager.defaultLineHeight,u-=f);let p=[],m=e+(t-e)/2,h=-1;for(let e=n;e<=i;e++){let r=this.getLineHeightForLineNumber(e);if(h===-1){let t=l,n=l+r;(t<=m&&m<n||t>m)&&(h=e)}for(l+=r,p[e-n]=u,u+=r;c===e;)u+=s,l+=s,a++,a>=o?c=i+1:(c=this.getAfterLineNumberForWhitespaceIndex(a)|0,s=this.getHeightForWhitespaceIndex(a)|0);if(l>=t){i=e;break}}h===-1&&(h=i);let g=this.getVerticalOffsetForLineNumber(i)|0,_=n,v=i;return _<v&&r<e&&_++,_<v&&g+this.getLineHeightForLineNumber(i)>t&&v--,{bigNumbersDelta:f,startLineNumber:n,endLineNumber:i,relativeVerticalOffset:p,centeredLineNumber:h,completelyVisibleStartLineNumber:_,completelyVisibleEndLineNumber:v,lineHeight:this._lineHeightsManager.defaultLineHeight}}getVerticalOffsetForWhitespaceIndex(e){e|=0;let t=this.getAfterLineNumberForWhitespaceIndex(e),n;n=t>=1?this._lineHeightsManager.getAccumulatedLineHeightsIncludingLineNumber(t):0;let r;return r=e>0?this.getWhitespacesAccumulatedHeight(e-1):0,n+r+this._paddingTop}getWhitespaceIndexAtOrAfterVerticallOffset(e){e|=0;let t=0,n=this.getWhitespacesCount()-1;if(n<0)return-1;let r=this.getVerticalOffsetForWhitespaceIndex(n),i=this.getHeightForWhitespaceIndex(n);if(e>=r+i)return-1;for(;t<n;){let r=Math.floor((t+n)/2),i=this.getVerticalOffsetForWhitespaceIndex(r),a=this.getHeightForWhitespaceIndex(r);if(e>=i+a)t=r+1;else if(e>=i)return r;else n=r}return t}getWhitespaceAtVerticalOffset(e){e|=0;let t=this.getWhitespaceIndexAtOrAfterVerticallOffset(e);if(t<0||t>=this.getWhitespacesCount())return null;let n=this.getVerticalOffsetForWhitespaceIndex(t);if(n>e)return null;let r=this.getHeightForWhitespaceIndex(t);return{id:this.getIdForWhitespaceIndex(t),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(t),verticalOffset:n,height:r}}getWhitespaceViewportData(e,t){e|=0,t|=0;let n=this.getWhitespaceIndexAtOrAfterVerticallOffset(e),r=this.getWhitespacesCount()-1;if(n<0)return[];let i=[];for(let e=n;e<=r;e++){let n=this.getVerticalOffsetForWhitespaceIndex(e),r=this.getHeightForWhitespaceIndex(e);if(n>=t)break;i.push({id:this.getIdForWhitespaceIndex(e),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(e),verticalOffset:n,height:r})}return i}getWhitespaces(){return this._arr.slice(0)}getWhitespacesCount(){return this._arr.length}getIdForWhitespaceIndex(e){return e|=0,this._arr[e].id}getAfterLineNumberForWhitespaceIndex(e){return e|=0,this._arr[e].afterLineNumber}getHeightForWhitespaceIndex(e){return e|=0,this._arr[e].height}},cp=125,lp=class{constructor(e,t,n,r){e|=0,t|=0,n|=0,r|=0,e<0&&(e=0),t<0&&(t=0),n<0&&(n=0),r<0&&(r=0),this.width=e,this.contentWidth=t,this.scrollWidth=Math.max(e,t),this.height=n,this.contentHeight=r,this.scrollHeight=Math.max(n,r)}equals(e){return this.width===e.width&&this.contentWidth===e.contentWidth&&this.height===e.height&&this.contentHeight===e.contentHeight}},up=class extends i{constructor(e,t){super(),this._onDidContentSizeChange=this._register(new k),this.onDidContentSizeChange=this._onDidContentSizeChange.event,this._dimensions=new lp(0,0,0,0),this._scrollable=this._register(new Dr({forceIntegerValues:!0,smoothScrollDuration:e,scheduleAtNextAnimationFrame:t})),this.onDidScroll=this._scrollable.onScroll}getScrollable(){return this._scrollable}setSmoothScrollDuration(e){this._scrollable.setSmoothScrollDuration(e)}validateScrollPosition(e){return this._scrollable.validateScrollPosition(e)}getScrollDimensions(){return this._dimensions}setScrollDimensions(e){if(this._dimensions.equals(e))return;let t=this._dimensions;this._dimensions=e,this._scrollable.setScrollDimensions({width:e.width,scrollWidth:e.scrollWidth,height:e.height,scrollHeight:e.scrollHeight},!0);let n=t.contentWidth!==e.contentWidth,r=t.contentHeight!==e.contentHeight;(n||r)&&this._onDidContentSizeChange.fire(new Af(t.contentWidth,t.contentHeight,e.contentWidth,e.contentHeight))}getFutureScrollPosition(){return this._scrollable.getFutureScrollPosition()}getCurrentScrollPosition(){return this._scrollable.getCurrentScrollPosition()}setScrollPositionNow(e){this._scrollable.setScrollPositionNow(e)}setScrollPositionSmooth(e){this._scrollable.setScrollPositionSmooth(e)}hasPendingScrollAnimation(){return this._scrollable.hasPendingScrollAnimation()}},dp=class extends i{constructor(e,t,n,r){super(),this._configuration=e;let i=this._configuration.options,a=i.get(165),o=i.get(96);this._linesLayout=new sp(t,i.get(75),o.top,o.bottom,n),this._maxLineWidth=0,this._overlayWidgetsMinWidth=0,this._scrollable=this._register(new up(0,r)),this._configureSmoothScrollDuration(),this._scrollable.setScrollDimensions(new lp(a.contentWidth,0,a.height,0)),this.onDidScroll=this._scrollable.onDidScroll,this.onDidContentSizeChange=this._scrollable.onDidContentSizeChange,this._updateHeight()}dispose(){super.dispose()}getScrollable(){return this._scrollable.getScrollable()}onHeightMaybeChanged(){this._updateHeight()}_configureSmoothScrollDuration(){this._scrollable.setSmoothScrollDuration(this._configuration.options.get(130)?cp:0)}onConfigurationChanged(e){let t=this._configuration.options;if(e.hasChanged(75)&&this._linesLayout.setDefaultLineHeight(t.get(75)),e.hasChanged(96)){let e=t.get(96);this._linesLayout.setPadding(e.top,e.bottom)}if(e.hasChanged(165)){let e=t.get(165),n=e.contentWidth,r=e.height,i=this._scrollable.getScrollDimensions(),a=i.contentWidth;this._scrollable.setScrollDimensions(new lp(n,i.contentWidth,r,this._getContentHeight(n,r,a)))}else this._updateHeight();e.hasChanged(130)&&this._configureSmoothScrollDuration()}onFlushed(e,t){this._linesLayout.onFlushed(e,t)}onLinesDeleted(e,t){this._linesLayout.onLinesDeleted(e,t)}onLinesInserted(e,t){this._linesLayout.onLinesInserted(e,t)}_getHorizontalScrollbarHeight(e,t){let n=this._configuration.options.get(117);return n.horizontal===2||e>=t?0:n.horizontalScrollbarSize}_getContentHeight(e,t,n){let r=this._configuration.options,i=this._linesLayout.getLinesTotalHeight();return r.get(119)?i+=Math.max(0,t-r.get(75)-r.get(96).bottom):r.get(117).ignoreHorizontalScrollbarInContentHeight||(i+=this._getHorizontalScrollbarHeight(e,n)),i}_updateHeight(){let e=this._scrollable.getScrollDimensions(),t=e.width,n=e.height,r=e.contentWidth;this._scrollable.setScrollDimensions(new lp(t,e.contentWidth,n,this._getContentHeight(t,n,r)))}getCurrentViewport(){let e=this._scrollable.getScrollDimensions(),t=this._scrollable.getCurrentScrollPosition();return new ul(t.scrollTop,t.scrollLeft,e.width,e.height)}getFutureViewport(){let e=this._scrollable.getScrollDimensions(),t=this._scrollable.getFutureScrollPosition();return new ul(t.scrollTop,t.scrollLeft,e.width,e.height)}_computeContentWidth(){let e=this._configuration.options,t=this._maxLineWidth,n=e.get(166),r=e.get(59),i=e.get(165);if(n.isViewportWrapping){let n=e.get(81);return t>i.contentWidth+r.typicalHalfwidthCharacterWidth&&n.enabled&&n.side===`right`?t+i.verticalScrollbarWidth:t}else{let n=e.get(118)*r.typicalHalfwidthCharacterWidth,a=this._linesLayout.getWhitespaceMinWidth();return Math.max(t+n+i.verticalScrollbarWidth,a,this._overlayWidgetsMinWidth)}}setMaxLineWidth(e){this._maxLineWidth=e,this._updateContentWidth()}setOverlayWidgetsMinWidth(e){this._overlayWidgetsMinWidth=e,this._updateContentWidth()}_updateContentWidth(){let e=this._scrollable.getScrollDimensions();this._scrollable.setScrollDimensions(new lp(e.width,this._computeContentWidth(),e.height,e.contentHeight)),this._updateHeight()}saveState(){let e=this._scrollable.getFutureScrollPosition(),t=e.scrollTop,n=this._linesLayout.getLineNumberAtOrAfterVerticalOffset(t);return{scrollTop:t,scrollTopWithoutViewZones:t-this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(n),scrollLeft:e.scrollLeft}}changeWhitespace(e){let t=this._linesLayout.changeWhitespace(e);return t&&this.onHeightMaybeChanged(),t}changeSpecialLineHeights(e){let t=this._linesLayout.changeLineHeights(e);return t&&this.onHeightMaybeChanged(),t}getVerticalOffsetForLineNumber(e,t=!1){return this._linesLayout.getVerticalOffsetForLineNumber(e,t)}getVerticalOffsetAfterLineNumber(e,t=!1){return this._linesLayout.getVerticalOffsetAfterLineNumber(e,t)}getLineHeightForLineNumber(e){return this._linesLayout.getLineHeightForLineNumber(e)}isAfterLines(e){return this._linesLayout.isAfterLines(e)}isInTopPadding(e){return this._linesLayout.isInTopPadding(e)}isInBottomPadding(e){return this._linesLayout.isInBottomPadding(e)}getLineNumberAtVerticalOffset(e){return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(e)}getWhitespaceAtVerticalOffset(e){return this._linesLayout.getWhitespaceAtVerticalOffset(e)}getLinesViewportData(){let e=this.getCurrentViewport();return this._linesLayout.getLinesViewportData(e.top,e.top+e.height)}getLinesViewportDataAtScrollTop(e){let t=this._scrollable.getScrollDimensions();return e+t.height>t.scrollHeight&&(e=t.scrollHeight-t.height),e<0&&(e=0),this._linesLayout.getLinesViewportData(e,e+t.height)}getWhitespaceViewportData(){let e=this.getCurrentViewport();return this._linesLayout.getWhitespaceViewportData(e.top,e.top+e.height)}getWhitespaces(){return this._linesLayout.getWhitespaces()}getContentWidth(){return this._scrollable.getScrollDimensions().contentWidth}getScrollWidth(){return this._scrollable.getScrollDimensions().scrollWidth}getContentHeight(){return this._scrollable.getScrollDimensions().contentHeight}getScrollHeight(){return this._scrollable.getScrollDimensions().scrollHeight}getCurrentScrollLeft(){return this._scrollable.getCurrentScrollPosition().scrollLeft}getCurrentScrollTop(){return this._scrollable.getCurrentScrollPosition().scrollTop}validateScrollPosition(e){return this._scrollable.validateScrollPosition(e)}setScrollPosition(e,t){t===1?this._scrollable.setScrollPositionNow(e):this._scrollable.setScrollPositionSmooth(e)}hasPendingScrollAnimation(){return this._scrollable.hasPendingScrollAnimation()}deltaScrollNow(e,t){let n=this._scrollable.getCurrentScrollPosition();this._scrollable.setScrollPositionNow({scrollLeft:n.scrollLeft+e,scrollTop:n.scrollTop+t})}},fp=class{constructor(e,t,n){this.range=e,this.inlineClassName=t,this.type=n}},pp=class{constructor(e,t,n,r){this.startOffset=e,this.endOffset=t,this.inlineClassName=n,this.inlineClassNameAffectsLetterSpacing=r}toInlineDecoration(e){return new fp(new j(e,this.startOffset+1,e,this.endOffset+1),this.inlineClassName,this.inlineClassNameAffectsLetterSpacing?3:0)}},mp=class{constructor(e,t,n,r,i){this.editorId=e,this.model=t,this.configuration=n,this._linesCollection=r,this._coordinatesConverter=i,this._decorationsCache=Object.create(null),this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}_clearCachedModelDecorationsResolver(){this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}dispose(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}reset(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}onModelDecorationsChanged(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}onLineMappingChanged(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}_getOrCreateViewModelDecoration(e){let t=e.id,n=this._decorationsCache[t];if(!n){let r=e.range,i=e.options,a;if(i.isWholeLine){let e=this._coordinatesConverter.convertModelPositionToViewPosition(new b(r.startLineNumber,1),0,!1,!0),t=this._coordinatesConverter.convertModelPositionToViewPosition(new b(r.endLineNumber,this.model.getLineMaxColumn(r.endLineNumber)),1);a=new j(e.lineNumber,e.column,t.lineNumber,t.column)}else a=this._coordinatesConverter.convertModelRangeToViewRange(r,1);n=new qc(a,i),this._decorationsCache[t]=n}return n}getMinimapDecorationsInRange(e){return this._getDecorationsInRange(e,!0,!1).decorations}getDecorationsViewportData(e){let t=this._cachedModelDecorationsResolver!==null;return t&&=e.equalsRange(this._cachedModelDecorationsResolverViewRange),t||(this._cachedModelDecorationsResolver=this._getDecorationsInRange(e,!1,!1),this._cachedModelDecorationsResolverViewRange=e),this._cachedModelDecorationsResolver}getDecorationsOnLine(e,t=!1,n=!1){let r=new j(e,this._linesCollection.getViewLineMinColumn(e),e,this._linesCollection.getViewLineMaxColumn(e));return this._getDecorationsInRange(r,t,n)}_getDecorationsInRange(e,t,n){let r=this._linesCollection.getDecorationsInRange(e,this.editorId,Rr(this.configuration.options),$r(this.configuration.options),t,n),i=e.startLineNumber,a=e.endLineNumber,o=[],s=0,c=[];for(let e=i;e<=a;e++)c[e-i]=[];let l=!1;for(let e=0,t=r.length;e<t;e++){let t=r[e],n=t.options;if(!Jc(this.model,t))continue;let u=this._getOrCreateViewModelDecoration(t),d=u.range;if(o[s++]=u,n.inlineClassName){let e=new fp(d,n.inlineClassName,n.inlineClassNameAffectsLetterSpacing?3:0),t=Math.max(i,d.startLineNumber),r=Math.min(a,d.endLineNumber);for(let n=t;n<=r;n++)c[n-i].push(e)}if(n.beforeContentClassName&&i<=d.startLineNumber&&d.startLineNumber<=a){let e=new fp(new j(d.startLineNumber,d.startColumn,d.startLineNumber,d.startColumn),n.beforeContentClassName,1);c[d.startLineNumber-i].push(e)}if(n.afterContentClassName&&i<=d.endLineNumber&&d.endLineNumber<=a){let e=new fp(new j(d.endLineNumber,d.endColumn,d.endLineNumber,d.endColumn),n.afterContentClassName,2);c[d.endLineNumber-i].push(e)}n.affectsFont&&(l=!0)}return{decorations:o,inlineDecorations:c,hasVariableFonts:l}}};function hp(e,t){return e===null?t?_p.INSTANCE:vp.INSTANCE:new gp(e,t)}var gp=class{constructor(e,t){this._projectionData=e,this._isVisible=t}isVisible(){return this._isVisible}setVisible(e){return this._isVisible=e,this}getProjectionData(){return this._projectionData}getViewLineCount(){return this._isVisible?this._projectionData.getOutputLineCount():0}getViewLineContent(e,t,n){this._assertVisible();let r=n>0?this._projectionData.breakOffsets[n-1]:0,i=this._projectionData.breakOffsets[n],a;if(this._projectionData.injectionOffsets!==null){let n=this._projectionData.injectionOffsets.map((e,t)=>new An(0,0,e+1,this._projectionData.injectionOptions[t],0));a=An.applyInjectedText(e.getLineContent(t),n).substring(r,i)}else a=e.getValueInRange({startLineNumber:t,startColumn:r+1,endLineNumber:t,endColumn:i+1});return n>0&&(a=bp(this._projectionData.wrappedTextIndentLength)+a),a}getViewLineLength(e,t,n){return this._assertVisible(),this._projectionData.getLineLength(n)}getViewLineMinColumn(e,t,n){return this._assertVisible(),this._projectionData.getMinOutputOffset(n)+1}getViewLineMaxColumn(e,t,n){return this._assertVisible(),this._projectionData.getMaxOutputOffset(n)+1}getViewLineData(e,t,n){let r=[];return this.getViewLinesData(e,t,n,1,0,[!0],r),r[0]}getViewLinesData(e,t,n,r,i,a,o){this._assertVisible();let s=this._projectionData,c=s.injectionOffsets,l=s.injectionOptions,u=null;if(c){u=[];let e=0,t=0;for(let n=0;n<s.getOutputLineCount();n++){let r=[];u[n]=r;let i=n>0?s.breakOffsets[n-1]:0,a=s.breakOffsets[n];for(;t<c.length;){let o=l[t].content.length,u=c[t]+e,d=u+o;if(u>a)break;if(i<d){let e=l[t];if(e.inlineClassName){let t=n>0?s.wrappedTextIndentLength:0,o=t+Math.max(u-i,0),c=t+Math.min(d-i,a-i);o!==c&&r.push(new pp(o,c,e.inlineClassName,e.inlineClassNameAffectsLetterSpacing))}}if(d<=a)e+=o,t++;else break}}}let d;if(c){let n=[];for(let e=0;e<c.length;e++){let t=c[e],r=l[e].tokens;r?r.forEach((r,i)=>{n.push({offset:t,text:r.substring(l[e].content),tokenMetadata:i.metadata})}):n.push({offset:t,text:l[e].content,tokenMetadata:fr.defaultTokenMetadata})}d=e.tokenization.getLineTokens(t).withInserted(n)}else d=e.tokenization.getLineTokens(t);for(let e=n;e<n+r;e++){let t=i+e-n;if(!a[t]){o[t]=null;continue}o[t]=this._getViewLineData(d,u?u[e]:null,e)}}_getViewLineData(e,t,n){this._assertVisible();let r=this._projectionData,i=n>0?r.wrappedTextIndentLength:0,a=n>0?r.breakOffsets[n-1]:0,o=r.breakOffsets[n],s=e.sliceAndInflate(a,o,i),c=s.getLineContent();n>0&&(c=bp(r.wrappedTextIndentLength)+c);let l=this._projectionData.getMinOutputOffset(n)+1,u=c.length+1,d=n+1<this.getViewLineCount(),f=n===0?0:r.breakOffsetsVisibleColumn[n-1];return new fl(c,d,l,u,f,s,t)}getModelColumnOfViewPosition(e,t){return this._assertVisible(),this._projectionData.translateToInputOffset(e,t-1)+1}getViewPositionOfModelPosition(e,t,n=2){return this._assertVisible(),this._projectionData.translateToOutputPosition(t-1,n).toPosition(e)}getViewLineNumberOfModelPosition(e,t){return this._assertVisible(),e+this._projectionData.translateToOutputPosition(t-1).outputLineIndex}normalizePosition(e,t,n){let r=t.lineNumber-e;return this._projectionData.normalizeOutputPosition(e,t.column-1,n).toPosition(r)}getInjectedTextAt(e,t){return this._projectionData.getInjectedText(e,t-1)}_assertVisible(){if(!this._isVisible)throw Error(`Not supported`)}},_p=class e{static{this.INSTANCE=new e}constructor(){}isVisible(){return!0}setVisible(e){return e?this:vp.INSTANCE}getProjectionData(){return null}getViewLineCount(){return 1}getViewLineContent(e,t,n){return e.getLineContent(t)}getViewLineLength(e,t,n){return e.getLineLength(t)}getViewLineMinColumn(e,t,n){return e.getLineMinColumn(t)}getViewLineMaxColumn(e,t,n){return e.getLineMaxColumn(t)}getViewLineData(e,t,n){let r=e.tokenization.getLineTokens(t),i=r.getLineContent();return new fl(i,!1,1,i.length+1,0,r.inflate(),null)}getViewLinesData(e,t,n,r,i,a,o){if(!a[i]){o[i]=null;return}o[i]=this.getViewLineData(e,t,0)}getModelColumnOfViewPosition(e,t){return t}getViewPositionOfModelPosition(e,t){return new b(e,t)}getViewLineNumberOfModelPosition(e,t){return e}normalizePosition(e,t,n){return t}getInjectedTextAt(e,t){return null}},vp=class e{static{this.INSTANCE=new e}constructor(){}isVisible(){return!1}setVisible(e){return e?_p.INSTANCE:this}getProjectionData(){return null}getViewLineCount(){return 0}getViewLineContent(e,t,n){throw Error(`Not supported`)}getViewLineLength(e,t,n){throw Error(`Not supported`)}getViewLineMinColumn(e,t,n){throw Error(`Not supported`)}getViewLineMaxColumn(e,t,n){throw Error(`Not supported`)}getViewLineData(e,t,n){throw Error(`Not supported`)}getViewLinesData(e,t,n,r,i,a,o){throw Error(`Not supported`)}getModelColumnOfViewPosition(e,t){throw Error(`Not supported`)}getViewPositionOfModelPosition(e,t){throw Error(`Not supported`)}getViewLineNumberOfModelPosition(e,t){throw Error(`Not supported`)}normalizePosition(e,t,n){throw Error(`Not supported`)}getInjectedTextAt(e,t){throw Error(`Not supported`)}},yp=[``];function bp(e){if(e>=yp.length)for(let t=1;t<=e;t++)yp[t]=xp(t);return yp[e]}function xp(e){return Array(e+1).join(` `)}var Sp=class{constructor(e){this._model=e}_validPosition(e){return this._model.validatePosition(e)}_validRange(e){return this._model.validateRange(e)}convertViewPositionToModelPosition(e){return this._validPosition(e)}convertViewRangeToModelRange(e){return this._validRange(e)}validateViewPosition(e,t){return this._validPosition(t)}validateViewRange(e,t){return this._validRange(t)}convertModelPositionToViewPosition(e){return this._validPosition(e)}convertModelRangeToViewRange(e){return this._validRange(e)}modelPositionIsVisible(e){let t=this._model.getLineCount();return!(e.lineNumber<1||e.lineNumber>t)}getModelLineViewLineCount(e){return 1}getViewLineNumberOfModelPosition(e,t){return e}},Cp=class{constructor(e,t,n,r,i,a,o,s,c,l,u){this._editorId=e,this.model=t,this._validModelVersionId=-1,this._domLineBreaksComputerFactory=n,this._monospaceLineBreaksComputerFactory=r,this.fontInfo=i,this.tabSize=a,this.wrappingStrategy=o,this.wrappingColumn=s,this.wrappingIndent=c,this.wordBreak=l,this.wrapOnEscapedLineFeeds=u,this._constructLines(!0,null)}dispose(){this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,[])}createCoordinatesConverter(){return new Dp(this)}_constructLines(e,t){this.modelLineProjections=[],e&&(this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,[]));let n=this.model.getLinesContent(),r=this.model.getInjectedTextDecorations(this._editorId),i=n.length,a=this.createLineBreaksComputer(),o=new yt(An.fromDecorations(r));for(let e=0;e<i;e++){let r=o.takeWhile(t=>t.lineNumber===e+1);a.addRequest(n[e],r,t?t[e]:null)}let s=a.finalize(),c=[],l=this.hiddenAreasDecorationIds.map(e=>this.model.getDecorationRange(e)).sort(j.compareRangesUsingStarts),u=1,d=0,f=-1,p=f+1<l.length?d+1:i+2;for(let e=0;e<i;e++){let t=e+1;t===p&&(f++,u=l[f].startLineNumber,d=l[f].endLineNumber,p=f+1<l.length?d+1:i+2);let n=t>=u&&t<=d,r=hp(s[e],!n);c[e]=r.getViewLineCount(),this.modelLineProjections[e]=r}this._validModelVersionId=this.model.getVersionId(),this.projectedModelLineLineCounts=new Kr(c)}getHiddenAreas(){return this.hiddenAreasDecorationIds.map(e=>this.model.getDecorationRange(e))}setHiddenAreas(e){let t=wp(e.map(e=>this.model.validateRange(e))),n=this.hiddenAreasDecorationIds.map(e=>this.model.getDecorationRange(e)).sort(j.compareRangesUsingStarts);if(t.length===n.length){let e=!1;for(let r=0;r<t.length;r++)if(!t[r].equalsRange(n[r])){e=!0;break}if(!e)return!1}let r=t.map(e=>({range:e,options:Yn.EMPTY}));this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,r);let i=t,a=1,o=0,s=-1,c=s+1<i.length?o+1:this.modelLineProjections.length+2,l=!1;for(let e=0;e<this.modelLineProjections.length;e++){let t=e+1;t===c&&(s++,a=i[s].startLineNumber,o=i[s].endLineNumber,c=s+1<i.length?o+1:this.modelLineProjections.length+2);let n=!1;if(t>=a&&t<=o?this.modelLineProjections[e].isVisible()&&(this.modelLineProjections[e]=this.modelLineProjections[e].setVisible(!1),n=!0):(l=!0,this.modelLineProjections[e].isVisible()||(this.modelLineProjections[e]=this.modelLineProjections[e].setVisible(!0),n=!0)),n){let t=this.modelLineProjections[e].getViewLineCount();this.projectedModelLineLineCounts.setValue(e,t)}}return l||this.setHiddenAreas([]),!0}modelPositionIsVisible(e,t){return e<1||e>this.modelLineProjections.length?!1:this.modelLineProjections[e-1].isVisible()}getModelLineViewLineCount(e){return e<1||e>this.modelLineProjections.length?1:this.modelLineProjections[e-1].getViewLineCount()}setTabSize(e){return this.tabSize===e?!1:(this.tabSize=e,this._constructLines(!1,null),!0)}setWrappingSettings(e,t,n,r,i){let a=this.fontInfo.equals(e),o=this.wrappingStrategy===t,s=this.wrappingColumn===n,c=this.wrappingIndent===r,l=this.wordBreak===i;if(a&&o&&s&&c&&l)return!1;let u=a&&o&&!s&&c&&l;this.fontInfo=e,this.wrappingStrategy=t,this.wrappingColumn=n,this.wrappingIndent=r,this.wordBreak=i;let d=null;if(u){d=[];for(let e=0,t=this.modelLineProjections.length;e<t;e++)d[e]=this.modelLineProjections[e].getProjectionData()}return this._constructLines(!1,d),!0}createLineBreaksComputer(){return(this.wrappingStrategy===`advanced`?this._domLineBreaksComputerFactory:this._monospaceLineBreaksComputerFactory).createLineBreaksComputer(this.fontInfo,this.tabSize,this.wrappingColumn,this.wrappingIndent,this.wordBreak,this.wrapOnEscapedLineFeeds)}onModelFlushed(){this._constructLines(!0,null)}onModelLinesDeleted(e,t,n){if(!e||e<=this._validModelVersionId)return null;let r=t===1?1:this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,i=this.projectedModelLineLineCounts.getPrefixSum(n);return this.modelLineProjections.splice(t-1,n-t+1),this.projectedModelLineLineCounts.removeValues(t-1,n-t+1),new bf(r,i)}onModelLinesInserted(e,t,n,r){if(!e||e<=this._validModelVersionId)return null;let i=t>2&&!this.modelLineProjections[t-2].isVisible(),a=t===1?1:this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,o=0,s=[],c=[];for(let e=0,t=r.length;e<t;e++){let t=hp(r[e],!i);s.push(t);let n=t.getViewLineCount();o+=n,c[e]=n}return this.modelLineProjections=this.modelLineProjections.slice(0,t-1).concat(s).concat(this.modelLineProjections.slice(t-1)),this.projectedModelLineLineCounts.insertValues(t-1,c),new xf(a,a+o-1)}onModelLineChanged(e,t,n){if(e!==null&&e<=this._validModelVersionId)return[!1,null,null,null];let r=t-1,i=this.modelLineProjections[r].getViewLineCount(),a=hp(n,this.modelLineProjections[r].isVisible());this.modelLineProjections[r]=a;let o=this.modelLineProjections[r].getViewLineCount(),s=!1,c=0,l=-1,u=0,d=-1,f=0,p=-1;i>o?(c=this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,l=c+o-1,f=l+1,p=f+(i-o)-1,s=!0):i<o?(c=this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,l=c+i-1,u=l+1,d=u+(o-i)-1,s=!0):(c=this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,l=c+o-1),this.projectedModelLineLineCounts.setValue(r,o);let m=c<=l?new yf(c,l-c+1):null,h=u<=d?new xf(u,d):null,g=f<=p?new bf(f,p):null;return[s,m,h,g]}acceptVersionId(e){this._validModelVersionId=e,this.modelLineProjections.length===1&&!this.modelLineProjections[0].isVisible()&&this.setHiddenAreas([])}getViewLineCount(){return this.projectedModelLineLineCounts.getTotalSum()}_toValidViewLineNumber(e){if(e<1)return 1;let t=this.getViewLineCount();return e>t?t:e|0}getActiveIndentGuide(e,t,n){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t),n=this._toValidViewLineNumber(n);let r=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),i=this.convertViewPositionToModelPosition(t,this.getViewLineMinColumn(t)),a=this.convertViewPositionToModelPosition(n,this.getViewLineMinColumn(n)),o=this.model.guides.getActiveIndentGuide(r.lineNumber,i.lineNumber,a.lineNumber),s=this.convertModelPositionToViewPosition(o.startLineNumber,1),c=this.convertModelPositionToViewPosition(o.endLineNumber,this.model.getLineMaxColumn(o.endLineNumber));return{startLineNumber:s.lineNumber,endLineNumber:c.lineNumber,indent:o.indent}}getViewLineInfo(e){e=this._toValidViewLineNumber(e);let t=this.projectedModelLineLineCounts.getIndexOf(e-1),n=t.index,r=t.remainder;return new Tp(n+1,r)}getMinColumnOfViewLine(e){return this.modelLineProjections[e.modelLineNumber-1].getViewLineMinColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx)}getMaxColumnOfViewLine(e){return this.modelLineProjections[e.modelLineNumber-1].getViewLineMaxColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx)}getModelStartPositionOfViewLine(e){let t=this.modelLineProjections[e.modelLineNumber-1],n=t.getViewLineMinColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx),r=t.getModelColumnOfViewPosition(e.modelLineWrappedLineIdx,n);return new b(e.modelLineNumber,r)}getModelEndPositionOfViewLine(e){let t=this.modelLineProjections[e.modelLineNumber-1],n=t.getViewLineMaxColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx),r=t.getModelColumnOfViewPosition(e.modelLineWrappedLineIdx,n);return new b(e.modelLineNumber,r)}getViewLineInfosGroupedByModelRanges(e,t){let n=this.getViewLineInfo(e),r=this.getViewLineInfo(t),i=[],a=this.getModelStartPositionOfViewLine(n),o=[];for(let e=n.modelLineNumber;e<=r.modelLineNumber;e++){let t=this.modelLineProjections[e-1];if(t.isVisible()){let i=e===n.modelLineNumber?n.modelLineWrappedLineIdx:0,a=e===r.modelLineNumber?r.modelLineWrappedLineIdx+1:t.getViewLineCount();for(let t=i;t<a;t++)o.push(new Tp(e,t))}if(!t.isVisible()&&a){let t=new b(e-1,this.model.getLineMaxColumn(e-1)+1),n=j.fromPositions(a,t);i.push(new Ep(n,o)),o=[],a=null}else t.isVisible()&&!a&&(a=new b(e,1))}if(a){let e=j.fromPositions(a,this.getModelEndPositionOfViewLine(r));i.push(new Ep(e,o))}return i}getViewLinesBracketGuides(e,t,n,r){let i=n?this.convertViewPositionToModelPosition(n.lineNumber,n.column):null,a=[];for(let n of this.getViewLineInfosGroupedByModelRanges(e,t)){let e=n.modelRange.startLineNumber,t=this.model.guides.getLinesBracketGuides(e,n.modelRange.endLineNumber,i,r);for(let r of n.viewLines){let n=t[r.modelLineNumber-e].map(e=>{if(e.forWrappedLinesAfterColumn!==-1&&this.modelLineProjections[r.modelLineNumber-1].getViewPositionOfModelPosition(0,e.forWrappedLinesAfterColumn).lineNumber>=r.modelLineWrappedLineIdx||e.forWrappedLinesBeforeOrAtColumn!==-1&&this.modelLineProjections[r.modelLineNumber-1].getViewPositionOfModelPosition(0,e.forWrappedLinesBeforeOrAtColumn).lineNumber<r.modelLineWrappedLineIdx)return;if(!e.horizontalLine)return e;let t=-1;if(e.column!==-1){let n=this.modelLineProjections[r.modelLineNumber-1].getViewPositionOfModelPosition(0,e.column);if(n.lineNumber===r.modelLineWrappedLineIdx)t=n.column;else if(n.lineNumber<r.modelLineWrappedLineIdx)t=this.getMinColumnOfViewLine(r);else if(n.lineNumber>r.modelLineWrappedLineIdx)return}let n=this.convertModelPositionToViewPosition(r.modelLineNumber,e.horizontalLine.endColumn),i=this.modelLineProjections[r.modelLineNumber-1].getViewPositionOfModelPosition(0,e.horizontalLine.endColumn);return i.lineNumber===r.modelLineWrappedLineIdx?new En(e.visibleColumn,t,e.className,new yr(e.horizontalLine.top,n.column),-1,-1):i.lineNumber<r.modelLineWrappedLineIdx?void 0:e.visibleColumn===-1?new En(e.visibleColumn,t,e.className,new yr(e.horizontalLine.top,this.getMaxColumnOfViewLine(r)),-1,-1):void 0});a.push(n.filter(e=>!!e))}}return a}getViewLinesIndentGuides(e,t){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);let n=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),r=this.convertViewPositionToModelPosition(t,this.getViewLineMaxColumn(t)),i=[],a=[],o=[],s=n.lineNumber-1,c=r.lineNumber-1,l=null;for(let e=s;e<=c;e++){let t=this.modelLineProjections[e];if(t.isVisible()){let r=t.getViewLineNumberOfModelPosition(0,e===s?n.column:1),i=t.getViewLineNumberOfModelPosition(0,this.model.getLineMaxColumn(e+1)),c=i-r+1,u=0;c>1&&t.getViewLineMinColumn(this.model,e+1,i)===1&&(u=r===0?1:2),a.push(c),o.push(u),l===null&&(l=new b(e+1,0))}else l!==null&&(i=i.concat(this.model.guides.getLinesIndentGuides(l.lineNumber,e)),l=null)}l!==null&&(i=i.concat(this.model.guides.getLinesIndentGuides(l.lineNumber,r.lineNumber)),l=null);let u=t-e+1,d=Array(u),f=0;for(let e=0,t=i.length;e<t;e++){let t=i[e],n=Math.min(u-f,a[e]),r=o[e],s;s=r===2?0:r===1?1:n;for(let e=0;e<n;e++)e===s&&(t=0),d[f++]=t}return d}getViewLineContent(e){let t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineContent(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLineLength(e){let t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineLength(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLineMinColumn(e){let t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineMinColumn(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLineMaxColumn(e){let t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineMaxColumn(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLineData(e){let t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineData(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLinesData(e,t,n){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);let r=this.projectedModelLineLineCounts.getIndexOf(e-1),i=e,a=r.index,o=r.remainder,s=[];for(let r=a,c=this.model.getLineCount();r<c;r++){let c=this.modelLineProjections[r];if(!c.isVisible())continue;let l=r===a?o:0,u=c.getViewLineCount()-l,d=!1;if(i+u>t&&(d=!0,u=t-i+1),c.getViewLinesData(this.model,r+1,l,u,i-e,n,s),i+=u,d)break}return s}validateViewPosition(e,t,n){e=this._toValidViewLineNumber(e);let r=this.projectedModelLineLineCounts.getIndexOf(e-1),i=r.index,a=r.remainder,o=this.modelLineProjections[i],s=o.getViewLineMinColumn(this.model,i+1,a),c=o.getViewLineMaxColumn(this.model,i+1,a);t<s&&(t=s),t>c&&(t=c);let l=o.getModelColumnOfViewPosition(a,t);return this.model.validatePosition(new b(i+1,l)).equals(n)?new b(e,t):this.convertModelPositionToViewPosition(n.lineNumber,n.column)}validateViewRange(e,t){let n=this.validateViewPosition(e.startLineNumber,e.startColumn,t.getStartPosition()),r=this.validateViewPosition(e.endLineNumber,e.endColumn,t.getEndPosition());return new j(n.lineNumber,n.column,r.lineNumber,r.column)}convertViewPositionToModelPosition(e,t){let n=this.getViewLineInfo(e),r=this.modelLineProjections[n.modelLineNumber-1].getModelColumnOfViewPosition(n.modelLineWrappedLineIdx,t);return this.model.validatePosition(new b(n.modelLineNumber,r))}convertViewRangeToModelRange(e){let t=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),n=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);return new j(t.lineNumber,t.column,n.lineNumber,n.column)}convertModelPositionToViewPosition(e,t,n=2,r=!1,i=!1){let a=this.model.validatePosition(new b(e,t)),o=a.lineNumber,s=a.column,c=o-1,l=!1;if(i)for(;c<this.modelLineProjections.length&&!this.modelLineProjections[c].isVisible();)c++,l=!0;else for(;c>0&&!this.modelLineProjections[c].isVisible();)c--,l=!0;if(c===0&&!this.modelLineProjections[c].isVisible())return new b(+!r,1);let u=1+this.projectedModelLineLineCounts.getPrefixSum(c),d;return d=l?i?this.modelLineProjections[c].getViewPositionOfModelPosition(u,1,n):this.modelLineProjections[c].getViewPositionOfModelPosition(u,this.model.getLineMaxColumn(c+1),n):this.modelLineProjections[o-1].getViewPositionOfModelPosition(u,s,n),d}convertModelRangeToViewRange(e,t=0){if(e.isEmpty()){let n=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn,t);return j.fromPositions(n)}else{let t=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn,1),n=this.convertModelPositionToViewPosition(e.endLineNumber,e.endColumn,0);return new j(t.lineNumber,t.column,n.lineNumber,n.column)}}getViewLineNumberOfModelPosition(e,t){let n=e-1;if(this.modelLineProjections[n].isVisible()){let e=1+this.projectedModelLineLineCounts.getPrefixSum(n);return this.modelLineProjections[n].getViewLineNumberOfModelPosition(e,t)}for(;n>0&&!this.modelLineProjections[n].isVisible();)n--;if(n===0&&!this.modelLineProjections[n].isVisible())return 1;let r=1+this.projectedModelLineLineCounts.getPrefixSum(n);return this.modelLineProjections[n].getViewLineNumberOfModelPosition(r,this.model.getLineMaxColumn(n+1))}getDecorationsInRange(e,t,n,r,i,a){let o=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),s=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);if(s.lineNumber-o.lineNumber<=e.endLineNumber-e.startLineNumber)return this.model.getDecorationsInRange(new j(o.lineNumber,1,s.lineNumber,s.column),t,n,r,i,a);let c=[],l=o.lineNumber-1,u=s.lineNumber-1,d=null;for(let e=l;e<=u;e++)if(this.modelLineProjections[e].isVisible())d===null&&(d=new b(e+1,e===l?o.column:1));else if(d!==null){let a=this.model.getLineMaxColumn(e);c=c.concat(this.model.getDecorationsInRange(new j(d.lineNumber,d.column,e,a),t,n,r,i)),d=null}d!==null&&(c=c.concat(this.model.getDecorationsInRange(new j(d.lineNumber,d.column,s.lineNumber,s.column),t,n,r,i)),d=null),c.sort((e,t)=>{let n=j.compareRangesUsingStarts(e.range,t.range);return n===0?e.id<t.id?-1:+(e.id>t.id):n});let f=[],p=0,m=null;for(let e of c){let t=e.id;m!==t&&(m=t,f[p++]=e)}return f}getInjectedTextAt(e){let t=this.getViewLineInfo(e.lineNumber);return this.modelLineProjections[t.modelLineNumber-1].getInjectedTextAt(t.modelLineWrappedLineIdx,e.column)}normalizePosition(e,t){let n=this.getViewLineInfo(e.lineNumber);return this.modelLineProjections[n.modelLineNumber-1].normalizePosition(n.modelLineWrappedLineIdx,e,t)}getLineIndentColumn(e){let t=this.getViewLineInfo(e);return t.modelLineWrappedLineIdx===0?this.model.getLineIndentColumn(t.modelLineNumber):0}};function wp(e){if(e.length===0)return[];let t=e.slice();t.sort(j.compareRangesUsingStarts);let n=[],r=t[0].startLineNumber,i=t[0].endLineNumber;for(let e=1,a=t.length;e<a;e++){let a=t[e];a.startLineNumber>i+1?(n.push(new j(r,1,i,1)),r=a.startLineNumber,i=a.endLineNumber):a.endLineNumber>i&&(i=a.endLineNumber)}return n.push(new j(r,1,i,1)),n}var Tp=class{constructor(e,t){this.modelLineNumber=e,this.modelLineWrappedLineIdx=t}},Ep=class{constructor(e,t){this.modelRange=e,this.viewLines=t}},Dp=class{constructor(e){this._lines=e}convertViewPositionToModelPosition(e){return this._lines.convertViewPositionToModelPosition(e.lineNumber,e.column)}convertViewRangeToModelRange(e){return this._lines.convertViewRangeToModelRange(e)}validateViewPosition(e,t){return this._lines.validateViewPosition(e.lineNumber,e.column,t)}validateViewRange(e,t){return this._lines.validateViewRange(e,t)}convertModelPositionToViewPosition(e,t,n,r){return this._lines.convertModelPositionToViewPosition(e.lineNumber,e.column,t,n,r)}convertModelRangeToViewRange(e,t){return this._lines.convertModelRangeToViewRange(e,t)}modelPositionIsVisible(e){return this._lines.modelPositionIsVisible(e.lineNumber,e.column)}getModelLineViewLineCount(e){return this._lines.getModelLineViewLineCount(e)}getViewLineNumberOfModelPosition(e,t){return this._lines.getViewLineNumberOfModelPosition(e,t)}},Op=class{constructor(e){this.model=e}dispose(){}createCoordinatesConverter(){return new Sp(this.model)}getHiddenAreas(){return[]}setHiddenAreas(e){return!1}setTabSize(e){return!1}setWrappingSettings(e,t,n,r){return!1}createLineBreaksComputer(){let e=[];return{addRequest:(t,n,r)=>{e.push(null)},finalize:()=>e}}onModelFlushed(){}onModelLinesDeleted(e,t,n){return new bf(t,n)}onModelLinesInserted(e,t,n,r){return new xf(t,n)}onModelLineChanged(e,t,n){return[!1,new yf(t,1),null,null]}acceptVersionId(e){}getViewLineCount(){return this.model.getLineCount()}getActiveIndentGuide(e,t,n){return{startLineNumber:e,endLineNumber:e,indent:0}}getViewLinesBracketGuides(e,t,n){return Array(t-e+1).fill([])}getViewLinesIndentGuides(e,t){let n=t-e+1,r=Array(n);for(let e=0;e<n;e++)r[e]=0;return r}getViewLineContent(e){return this.model.getLineContent(e)}getViewLineLength(e){return this.model.getLineLength(e)}getViewLineMinColumn(e){return this.model.getLineMinColumn(e)}getViewLineMaxColumn(e){return this.model.getLineMaxColumn(e)}getViewLineData(e){let t=this.model.tokenization.getLineTokens(e),n=t.getLineContent();return new fl(n,!1,1,n.length+1,0,t.inflate(),null)}getViewLinesData(e,t,n){let r=this.model.getLineCount();e=Math.min(Math.max(1,e),r),t=Math.min(Math.max(1,t),r);let i=[];for(let r=e;r<=t;r++){let t=r-e;i[t]=n[t]?this.getViewLineData(r):null}return i}getDecorationsInRange(e,t,n,r,i,a){return this.model.getDecorationsInRange(e,t,n,r,i,a)}normalizePosition(e,t){return this.model.normalizePosition(e,t)}getLineIndentColumn(e){return this.model.getLineIndentColumn(e)}getInjectedTextAt(e){return null}},kp=en.Right,Ap=class{constructor(e){this.persist=0,this._requiredLanes=1,this.lanes=new Uint8Array(Math.ceil((e+1)*kp/8))}reset(e){let t=Math.ceil((e+1)*kp/8);this.lanes.length<t?this.lanes=new Uint8Array(t):this.lanes.fill(0),this._requiredLanes=1}get requiredLanes(){return this._requiredLanes}push(e,t,n){n&&(this.persist|=1<<e-1);for(let n=t.startLineNumber;n<=t.endLineNumber;n++){let t=kp*n+(e-1);this.lanes[t>>>3]|=1<<t%8,this._requiredLanes=Math.max(this._requiredLanes,this.countAtLine(n))}}getLanesAtLine(e){let t=[],n=kp*e;for(let e=0;e<kp;e++)(this.persist&1<<e||this.lanes[n>>>3]&1<<n%8)&&t.push(e+1),n++;return t.length?t:[en.Center]}countAtLine(e){let t=kp*e,n=0;for(let e=0;e<kp;e++)(this.persist&1<<e||this.lanes[t>>>3]&1<<t%8)&&n++,t++;return n}},jp=class extends i{constructor(e,t,n,r,i,a,o,c,l,u){if(super(),this.languageConfigurationService=o,this._themeService=c,this._attachedView=l,this._transactionalTarget=u,this.hiddenAreasModel=new Pp,this.previousHiddenAreas=[],this._editorId=e,this._configuration=t,this.model=n,this._eventDispatcher=new Of,this.onEvent=this._eventDispatcher.onEvent,this.cursorConfig=new Po(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._updateConfigurationViewLineCount=this._register(new s(()=>this._updateConfigurationViewLineCountNow(),0)),this._hasFocus=!1,this._viewportStart=Mp.create(this.model),this.glyphLanes=new Ap(0),this.model.isTooLargeForTokenization())this._lines=new Op(this.model);else{let e=this._configuration.options,t=e.get(59),n=e.get(156),a=e.get(166),o=e.get(155),s=e.get(146),c=e.get(160);this._lines=new Cp(this._editorId,this.model,r,i,t,this.model.getOptions().tabSize,n,a.wrappingColumn,o,s,c)}this.coordinatesConverter=this._lines.createCoordinatesConverter(),this._cursor=this._register(new Kf(n,this,this.coordinatesConverter,this.cursorConfig)),this.viewLayout=this._register(new dp(this._configuration,this.getLineCount(),this._getCustomLineHeights(),a)),this._register(this.viewLayout.onDidScroll(e=>{e.scrollTopChanged&&this._handleVisibleLinesChanged(),e.scrollTopChanged&&this._viewportStart.invalidate(),this._eventDispatcher.emitSingleViewEvent(new Cf(e)),this._eventDispatcher.emitOutgoingEvent(new Nf(e.oldScrollWidth,e.oldScrollLeft,e.oldScrollHeight,e.oldScrollTop,e.scrollWidth,e.scrollLeft,e.scrollHeight,e.scrollTop))})),this._register(this.viewLayout.onDidContentSizeChange(e=>{this._eventDispatcher.emitOutgoingEvent(e)})),this._decorations=new mp(this._editorId,this.model,this._configuration,this._lines,this.coordinatesConverter),this._registerModelEvents(),this._register(this._configuration.onDidChangeFast(e=>{try{let t=this._eventDispatcher.beginEmitViewEvents();this._onConfigurationChanged(t,e)}finally{this._eventDispatcher.endEmitViewEvents()}})),this._register(Rc.getInstance().onDidChange(()=>{this._eventDispatcher.emitSingleViewEvent(new Ef)})),this._register(this._themeService.onDidColorThemeChange(e=>{this._invalidateDecorationsColorCache(),this._eventDispatcher.emitSingleViewEvent(new wf(e))})),this._updateConfigurationViewLineCountNow()}dispose(){super.dispose(),this._decorations.dispose(),this._lines.dispose(),this._viewportStart.dispose(),this._eventDispatcher.dispose()}createLineBreaksComputer(){return this._lines.createLineBreaksComputer()}addViewEventHandler(e){this._eventDispatcher.addViewEventHandler(e)}removeViewEventHandler(e){this._eventDispatcher.removeViewEventHandler(e)}_getCustomLineHeights(){return this._configuration.options.get(5)?this.model.getCustomLineHeightsDecorations(this._editorId).map(e=>{let t=e.range.startLineNumber,n=this.coordinatesConverter.convertModelRangeToViewRange(new j(t,1,t,this.model.getLineMaxColumn(t)));return{decorationId:e.id,startLineNumber:n.startLineNumber,endLineNumber:n.endLineNumber,lineHeight:e.options.lineHeight||0}}):[]}_updateConfigurationViewLineCountNow(){this._configuration.setViewLineCount(this._lines.getViewLineCount())}getModelVisibleRanges(){let e=this.viewLayout.getLinesViewportData(),t=new j(e.startLineNumber,this.getLineMinColumn(e.startLineNumber),e.endLineNumber,this.getLineMaxColumn(e.endLineNumber));return this._toModelVisibleRanges(t)}visibleLinesStabilized(){let e=this.getModelVisibleRanges();this._attachedView.setVisibleLines(e,!0)}_handleVisibleLinesChanged(){let e=this.getModelVisibleRanges();this._attachedView.setVisibleLines(e,!1)}setHasFocus(e){this._hasFocus=e,this._cursor.setHasFocus(e),this._eventDispatcher.emitSingleViewEvent(new gf(e)),this._eventDispatcher.emitOutgoingEvent(new jf(!e,e))}setHasWidgetFocus(e){this._eventDispatcher.emitOutgoingEvent(new Mf(!e,e))}onCompositionStart(){this._eventDispatcher.emitSingleViewEvent(new uf)}onCompositionEnd(){this._eventDispatcher.emitSingleViewEvent(new df)}_captureStableViewport(){if(this._viewportStart.isValid&&this.viewLayout.getCurrentScrollTop()>0){let e=new b(this._viewportStart.viewLineNumber,this.getLineMinColumn(this._viewportStart.viewLineNumber));return new Lp(this.coordinatesConverter.convertViewPositionToModelPosition(e),this._viewportStart.startLineDelta)}return new Lp(null,0)}_onConfigurationChanged(e,t){let n=this._captureStableViewport(),r=this._configuration.options,i=r.get(59),a=r.get(156),o=r.get(166),s=r.get(155),c=r.get(146);this._lines.setWrappingSettings(i,a,o.wrappingColumn,s,c)&&(e.emitViewEvent(new hf),e.emitViewEvent(new vf),e.emitViewEvent(new mf(null)),this._cursor.onLineMappingChanged(e),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount(),this._getCustomLineHeights()),this._updateConfigurationViewLineCount.schedule()),t.hasChanged(104)&&(this._decorations.reset(),e.emitViewEvent(new mf(null))),t.hasChanged(112)&&(this._decorations.reset(),e.emitViewEvent(new mf(null))),e.emitViewEvent(new ff(t)),this.viewLayout.onConfigurationChanged(t),n.recoverViewportStart(this.coordinatesConverter,this.viewLayout),Po.shouldRecreate(t)&&(this.cursorConfig=new Po(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig))}_registerModelEvents(){this._register(this.model.onDidChangeContentOrInjectedText(e=>{try{let t=this._eventDispatcher.beginEmitViewEvents(),n=!1,r=!1,i=e instanceof Cr?e.rawContentChangedEvent.changes:e.changes,a=e instanceof Cr?e.rawContentChangedEvent.versionId:null,o=this._lines.createLineBreaksComputer();for(let e of i)switch(e.changeType){case 4:for(let t=0;t<e.detail.length;t++){let n=e.detail[t],r=e.injectedTexts[t];r&&=r.filter(e=>!e.ownerId||e.ownerId===this._editorId),o.addRequest(n,r,null)}break;case 2:{let t=null;e.injectedText&&(t=e.injectedText.filter(e=>!e.ownerId||e.ownerId===this._editorId)),o.addRequest(e.detail,t,null);break}}let s=new yt(o.finalize());for(let e of i)switch(e.changeType){case 1:this._lines.onModelFlushed(),t.emitViewEvent(new hf),this._decorations.reset(),this.viewLayout.onFlushed(this.getLineCount(),this._getCustomLineHeights()),n=!0;break;case 3:{let r=this._lines.onModelLinesDeleted(a,e.fromLineNumber,e.toLineNumber);r!==null&&(t.emitViewEvent(r),this.viewLayout.onLinesDeleted(r.fromLineNumber,r.toLineNumber)),n=!0;break}case 4:{let r=s.takeCount(e.detail.length),i=this._lines.onModelLinesInserted(a,e.fromLineNumber,e.toLineNumber,r);i!==null&&(t.emitViewEvent(i),this.viewLayout.onLinesInserted(i.fromLineNumber,i.toLineNumber)),n=!0;break}case 2:{let n=s.dequeue(),[i,o,c,l]=this._lines.onModelLineChanged(a,e.lineNumber,n);r=i,o&&t.emitViewEvent(o),c&&(t.emitViewEvent(c),this.viewLayout.onLinesInserted(c.fromLineNumber,c.toLineNumber)),l&&(t.emitViewEvent(l),this.viewLayout.onLinesDeleted(l.fromLineNumber,l.toLineNumber));break}case 5:break}a!==null&&this._lines.acceptVersionId(a),this.viewLayout.onHeightMaybeChanged(),!n&&r&&(t.emitViewEvent(new vf),t.emitViewEvent(new mf(null)),this._cursor.onLineMappingChanged(t),this._decorations.onLineMappingChanged())}finally{this._eventDispatcher.endEmitViewEvents()}let t=this._viewportStart.isValid;if(this._viewportStart.invalidate(),this._configuration.setModelLineCount(this.model.getLineCount()),this._updateConfigurationViewLineCountNow(),!this._hasFocus&&this.model.getAttachedEditorCount()>=2&&t){let e=this.model._getTrackedRange(this._viewportStart.modelTrackedRange);if(e){let t=this.coordinatesConverter.convertModelPositionToViewPosition(e.getStartPosition()),n=this.viewLayout.getVerticalOffsetForLineNumber(t.lineNumber);this.viewLayout.setScrollPosition({scrollTop:n+this._viewportStart.startLineDelta},1)}}try{let t=this._eventDispatcher.beginEmitViewEvents();e instanceof Cr&&t.emitOutgoingEvent(new Vf(e.contentChangedEvent)),this._cursor.onModelContentChanged(t,e)}finally{this._eventDispatcher.endEmitViewEvents()}this._handleVisibleLinesChanged()})),this._configuration.options.get(5)&&this._register(this.model.onDidChangeLineHeight(e=>{let t=e.changes.filter(e=>e.ownerId===this._editorId||e.ownerId===0);if(this.viewLayout.changeSpecialLineHeights(e=>{for(let n of t){let{decorationId:t,lineNumber:r,lineHeight:i}=n,a=this.coordinatesConverter.convertModelRangeToViewRange(new j(r,1,r,this.model.getLineMaxColumn(r)));i===null?e.removeCustomLineHeight(t):e.insertOrChangeCustomLineHeight(t,a.startLineNumber,a.endLineNumber,i)}}),t.length>0){let e=new Vt(t);this._eventDispatcher.emitOutgoingEvent(new Wf(e))}})),this._configuration.options.get(172)&&this._register(this.model.onDidChangeFont(e=>{let t=e.changes.filter(e=>e.ownerId===this._editorId||e.ownerId===0);if(t.length>0){let e=new Sr(t);this._eventDispatcher.emitOutgoingEvent(new Gf(e))}})),this._register(this.model.onDidChangeTokens(e=>{let t=[];for(let n=0,r=e.ranges.length;n<r;n++){let r=e.ranges[n];t[n]={fromLineNumber:this.coordinatesConverter.convertModelPositionToViewPosition(new b(r.fromLineNumber,1)).lineNumber,toLineNumber:this.coordinatesConverter.convertModelPositionToViewPosition(new b(r.toLineNumber,this.model.getLineMaxColumn(r.toLineNumber))).lineNumber}}this._eventDispatcher.emitSingleViewEvent(new Tf(t)),this._eventDispatcher.emitOutgoingEvent(new Uf(e))})),this._register(this.model.onDidChangeLanguageConfiguration(e=>{this._eventDispatcher.emitSingleViewEvent(new _f),this.cursorConfig=new Po(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new Bf(e))})),this._register(this.model.onDidChangeLanguage(e=>{this.cursorConfig=new Po(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new zf(e))})),this._register(this.model.onDidChangeOptions(e=>{if(this._lines.setTabSize(this.model.getOptions().tabSize)){try{let e=this._eventDispatcher.beginEmitViewEvents();e.emitViewEvent(new hf),e.emitViewEvent(new vf),e.emitViewEvent(new mf(null)),this._cursor.onLineMappingChanged(e),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount(),this._getCustomLineHeights())}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule()}this.cursorConfig=new Po(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new Hf(e))})),this._register(this.model.onDidChangeDecorations(e=>{this._decorations.onModelDecorationsChanged(),this._eventDispatcher.emitSingleViewEvent(new mf(e)),this._eventDispatcher.emitOutgoingEvent(new Rf(e))}))}getFontSizeAtPosition(e){if(!this._configuration.options.get(172))return null;let t=this.model.getFontDecorationsInRange(j.fromPositions(e),this._editorId),n=this._configuration.options.get(59).fontSize+`px`;for(let e of t)if(e.options.fontSize){n=e.options.fontSize;break}return n}setHiddenAreas(e,t,n){this.hiddenAreasModel.setHiddenAreas(t,e);let r=this.hiddenAreasModel.getMergedRanges();if(r===this.previousHiddenAreas&&!n)return;this.previousHiddenAreas=r;let i=this._captureStableViewport(),a=!1;try{let e=this._eventDispatcher.beginEmitViewEvents();a=this._lines.setHiddenAreas(r),a&&(e.emitViewEvent(new hf),e.emitViewEvent(new vf),e.emitViewEvent(new mf(null)),this._cursor.onLineMappingChanged(e),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount(),this._getCustomLineHeights()),this.viewLayout.onHeightMaybeChanged());let t=i.viewportStartModelPosition?.lineNumber;t&&r.some(e=>e.startLineNumber<=t&&t<=e.endLineNumber)||i.recoverViewportStart(this.coordinatesConverter,this.viewLayout)}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule(),a&&this._eventDispatcher.emitOutgoingEvent(new Ff)}getVisibleRangesPlusViewportAboveBelow(){let e=this._configuration.options.get(165),t=this._configuration.options.get(75),n=Math.max(20,Math.round(e.height/t)),r=this.viewLayout.getLinesViewportData(),i=Math.max(1,r.completelyVisibleStartLineNumber-n),a=Math.min(this.getLineCount(),r.completelyVisibleEndLineNumber+n);return this._toModelVisibleRanges(new j(i,this.getLineMinColumn(i),a,this.getLineMaxColumn(a)))}getVisibleRanges(){let e=this.getCompletelyVisibleViewRange();return this._toModelVisibleRanges(e)}getHiddenAreas(){return this._lines.getHiddenAreas()}_toModelVisibleRanges(e){let t=this.coordinatesConverter.convertViewRangeToModelRange(e),n=this._lines.getHiddenAreas();if(n.length===0)return[t];let r=[],i=0,a=t.startLineNumber,o=t.startColumn,s=t.endLineNumber,c=t.endColumn;for(let e=0,t=n.length;e<t;e++){let t=n[e].startLineNumber,c=n[e].endLineNumber;c<a||t>s||(a<t&&(r[i++]=new j(a,o,t-1,this.model.getLineMaxColumn(t-1))),a=c+1,o=1)}return(a<s||a===s&&o<c)&&(r[i++]=new j(a,o,s,c)),r}getCompletelyVisibleViewRange(){let e=this.viewLayout.getLinesViewportData(),t=e.completelyVisibleStartLineNumber,n=e.completelyVisibleEndLineNumber;return new j(t,this.getLineMinColumn(t),n,this.getLineMaxColumn(n))}getCompletelyVisibleViewRangeAtScrollTop(e){let t=this.viewLayout.getLinesViewportDataAtScrollTop(e),n=t.completelyVisibleStartLineNumber,r=t.completelyVisibleEndLineNumber;return new j(n,this.getLineMinColumn(n),r,this.getLineMaxColumn(r))}saveState(){let e=this.viewLayout.saveState(),t=e.scrollTop,n=this.viewLayout.getLineNumberAtVerticalOffset(t),r=this.coordinatesConverter.convertViewPositionToModelPosition(new b(n,this.getLineMinColumn(n))),i=this.viewLayout.getVerticalOffsetForLineNumber(n)-t;return{scrollLeft:e.scrollLeft,firstPosition:r,firstPositionDeltaTop:i}}reduceRestoreState(e){if(e.firstPosition===void 0)return this._reduceRestoreStateCompatibility(e);let t=this.model.validatePosition(e.firstPosition),n=this.coordinatesConverter.convertModelPositionToViewPosition(t),r=this.viewLayout.getVerticalOffsetForLineNumber(n.lineNumber)-e.firstPositionDeltaTop;return{scrollLeft:e.scrollLeft,scrollTop:r}}_reduceRestoreStateCompatibility(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTopWithoutViewZones}}getTabSize(){return this.model.getOptions().tabSize}getLineCount(){return this._lines.getViewLineCount()}setViewport(e,t,n){this._viewportStart.update(this,e)}getActiveIndentGuide(e,t,n){return this._lines.getActiveIndentGuide(e,t,n)}getLinesIndentGuides(e,t){return this._lines.getViewLinesIndentGuides(e,t)}getBracketGuidesInRangeByLine(e,t,n,r){return this._lines.getViewLinesBracketGuides(e,t,n,r)}getLineContent(e){return this._lines.getViewLineContent(e)}getLineLength(e){return this._lines.getViewLineLength(e)}getLineMinColumn(e){return this._lines.getViewLineMinColumn(e)}getLineMaxColumn(e){return this._lines.getViewLineMaxColumn(e)}getLineFirstNonWhitespaceColumn(e){let t=ue(this.getLineContent(e));return t===-1?0:t+1}getLineLastNonWhitespaceColumn(e){let t=Pe(this.getLineContent(e));return t===-1?0:t+2}getMinimapDecorationsInRange(e){return this._decorations.getMinimapDecorationsInRange(e)}getDecorationsInViewport(e){return this._decorations.getDecorationsViewportData(e).decorations}getInjectedTextAt(e){return this._lines.getInjectedTextAt(e)}_getTextDirection(e,t){let n=0;for(let r of t){let t=r.range;if(t.startLineNumber>e||t.endLineNumber<e)continue;let i=r.options.textDirection;i===wn.RTL?n++:i===wn.LTR&&n--}return n>0?wn.RTL:wn.LTR}getTextDirection(e){let t=this._decorations.getDecorationsOnLine(e);return this._getTextDirection(e,t.decorations)}getViewportViewLineRenderingData(e,t){let n=this._decorations.getDecorationsViewportData(e),r=n.inlineDecorations[t-e.startLineNumber];return this._getViewLineRenderingData(t,r,n.hasVariableFonts,n.decorations)}getViewLineRenderingData(e){let t=this._decorations.getDecorationsOnLine(e);return this._getViewLineRenderingData(e,t.inlineDecorations[0],t.hasVariableFonts,t.decorations)}_getViewLineRenderingData(e,t,n,r){let i=this.model.mightContainRTL(),a=this.model.mightContainNonBasicASCII(),o=this.getTabSize(),s=this._lines.getViewLineData(e);return s.inlineDecorations&&(t=[...t,...s.inlineDecorations.map(t=>t.toInlineDecoration(e))]),new pl(s.minColumn,s.maxColumn,s.content,s.continuesWithWrappedLine,i,a,s.tokens,t,o,s.startVisibleColumn,this._getTextDirection(e,r),n)}getViewLineData(e){return this._lines.getViewLineData(e)}getMinimapLinesRenderingData(e,t,n){let r=this._lines.getViewLinesData(e,t,n);return new dl(this.getTabSize(),r)}getAllOverviewRulerDecorations(e){let t=this.model.getOverviewRulerDecorations(this._editorId,Rr(this._configuration.options),$r(this._configuration.options)),n=new Np;for(let r of t){let t=r.options,i=t.overviewRuler;if(!i)continue;let a=i.position;if(a===0)continue;let o=i.getColor(e.value),s=this.coordinatesConverter.getViewLineNumberOfModelPosition(r.range.startLineNumber,r.range.startColumn),c=this.coordinatesConverter.getViewLineNumberOfModelPosition(r.range.endLineNumber,r.range.endColumn);n.accept(o,t.zIndex,s,c,a)}return n.asArray}_invalidateDecorationsColorCache(){let e=this.model.getOverviewRulerDecorations();for(let t of e)t.options.overviewRuler?.invalidateCachedColor(),t.options.minimap?.invalidateCachedColor()}getValueInRange(e,t){let n=this.coordinatesConverter.convertViewRangeToModelRange(e);return this.model.getValueInRange(n,t)}getValueLengthInRange(e,t){let n=this.coordinatesConverter.convertViewRangeToModelRange(e);return this.model.getValueLengthInRange(n,t)}modifyPosition(e,t){let n=this.coordinatesConverter.convertViewPositionToModelPosition(e),r=this.model.modifyPosition(n,t);return this.coordinatesConverter.convertModelPositionToViewPosition(r)}deduceModelPositionRelativeToViewPosition(e,t,n){let r=this.coordinatesConverter.convertViewPositionToModelPosition(e);this.model.getEOL().length===2&&(t<0?t-=n:t+=n);let i=this.model.getOffsetAt(r)+t;return this.model.getPositionAt(i)}getPlainTextToCopy(e,t,n){let r=n?`\r
`:this.model.getEOL();e=e.slice(0),e.sort(j.compareRangesUsingStarts);let i=!1,a=!1;for(let t of e)t.isEmpty()?i=!0:a=!0;if(!a){if(!t)return``;let n=e.map(e=>e.startLineNumber),i=``;for(let e=0;e<n.length;e++)e>0&&n[e-1]===n[e]||(i+=this.model.getLineContent(n[e])+r);return i}if(i&&t){let t=[],r=0;for(let i of e){let e=i.startLineNumber;i.isEmpty()?e!==r&&t.push(this.model.getLineContent(e)):t.push(this.model.getValueInRange(i,n?2:0)),r=e}return t.length===1?t[0]:t}let o=[];for(let t of e)t.isEmpty()||o.push(this.model.getValueInRange(t,n?2:0));return o.length===1?o[0]:o}getRichTextToCopy(e,t){let n=this.model.getLanguageId();if(n===`plaintext`||e.length!==1)return null;let r=e[0];if(r.isEmpty()){if(!t)return null;let e=r.startLineNumber;r=new j(e,this.model.getLineMinColumn(e),e,this.model.getLineMaxColumn(e))}let i=this._configuration.options.get(59),a=this._getColorMap(),o=/[:;\\\/<>]/.test(i.fontFamily)||i.fontFamily===Br.fontFamily,s;return o?s=Br.fontFamily:(s=i.fontFamily,s=s.replace(/"/g,`'`),/[,']/.test(s)||/[+ ]/.test(s)&&(s=`'${s}'`),s=`${s}, ${Br.fontFamily}`),{mode:n,html:`<div style="color: ${a[1]};background-color: ${a[2]};font-family: ${s};font-weight: ${i.fontWeight};font-size: ${i.fontSize}px;line-height: ${i.lineHeight}px;white-space: pre;">`+this._getHTMLToCopy(r,a)+`</div>`}}_getHTMLToCopy(e,t){let n=e.startLineNumber,r=e.startColumn,i=e.endLineNumber,a=e.endColumn,o=this.getTabSize(),s=``;for(let e=n;e<=i;e++){let c=this.model.tokenization.getLineTokens(e),l=c.getLineContent(),u=e===n?r-1:0,d=e===i?a-1:l.length;l===``?s+=`<br>`:s+=ep(l,c.inflate(),t,u,d,o,Ae)}return s}_getColorMap(){let e=Cn.getColorMap(),t=[`#000000`];if(e)for(let n=1,r=e.length;n<r;n++)t[n]=Wt.Format.CSS.formatHex(e[n]);return t}getPrimaryCursorState(){return this._cursor.getPrimaryCursorState()}getLastAddedCursorIndex(){return this._cursor.getLastAddedCursorIndex()}getCursorStates(){return this._cursor.getCursorStates()}setCursorStates(e,t,n){return this._withViewEventsCollector(r=>this._cursor.setStates(r,e,t,n))}getCursorColumnSelectData(){return this._cursor.getCursorColumnSelectData()}getCursorAutoClosedCharacters(){return this._cursor.getAutoClosedCharacters()}setCursorColumnSelectData(e){this._cursor.setCursorColumnSelectData(e)}getPrevEditOperationType(){return this._cursor.getPrevEditOperationType()}setPrevEditOperationType(e){this._cursor.setPrevEditOperationType(e)}getSelection(){return this._cursor.getSelection()}getSelections(){return this._cursor.getSelections()}getPosition(){return this._cursor.getPrimaryCursorState().modelState.position}setSelections(e,t,n=0){this._withViewEventsCollector(r=>this._cursor.setSelections(r,e,t,n))}saveCursorState(){return this._cursor.saveState()}restoreCursorState(e){this._withViewEventsCollector(t=>this._cursor.restoreState(t,e))}_executeCursorEdit(e){if(this._cursor.context.cursorConfig.readOnly){this._eventDispatcher.emitOutgoingEvent(new Lf);return}this._withViewEventsCollector(e)}executeEdits(e,t,n,r){this._executeCursorEdit(i=>this._cursor.executeEdits(i,e,t,n,r))}startComposition(){this._executeCursorEdit(e=>this._cursor.startComposition(e))}endComposition(e){this._executeCursorEdit(t=>this._cursor.endComposition(t,e))}type(e,t){this._executeCursorEdit(n=>this._cursor.type(n,e,t))}compositionType(e,t,n,r,i){this._executeCursorEdit(a=>this._cursor.compositionType(a,e,t,n,r,i))}paste(e,t,n,r){this._executeCursorEdit(i=>this._cursor.paste(i,e,t,n,r))}cut(e){this._executeCursorEdit(t=>this._cursor.cut(t,e))}executeCommand(e,t){this._executeCursorEdit(n=>this._cursor.executeCommand(n,e,t))}executeCommands(e,t){this._executeCursorEdit(n=>this._cursor.executeCommands(n,e,t))}revealAllCursors(e,t,n=!1){this._withViewEventsCollector(r=>this._cursor.revealAll(r,e,n,0,t,0))}revealPrimaryCursor(e,t,n=!1){this._withViewEventsCollector(r=>this._cursor.revealPrimary(r,e,n,0,t,0))}revealTopMostCursor(e){let t=this._cursor.getTopMostViewPosition(),n=new j(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector(t=>t.emitViewEvent(new Sf(e,!1,n,null,0,!0,0)))}revealBottomMostCursor(e){let t=this._cursor.getBottomMostViewPosition(),n=new j(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector(t=>t.emitViewEvent(new Sf(e,!1,n,null,0,!0,0)))}revealRange(e,t,n,r,i){this._withViewEventsCollector(a=>a.emitViewEvent(new Sf(e,!1,n,null,r,t,i)))}changeWhitespace(e){this.viewLayout.changeWhitespace(e)&&(this._eventDispatcher.emitSingleViewEvent(new Df),this._eventDispatcher.emitOutgoingEvent(new Pf))}_withViewEventsCollector(e){return this._transactionalTarget.batchChanges(()=>{try{return e(this._eventDispatcher.beginEmitViewEvents())}finally{this._eventDispatcher.endEmitViewEvents()}})}batchEvents(e){this._withViewEventsCollector(()=>{e()})}normalizePosition(e,t){return this._lines.normalizePosition(e,t)}getLineIndentColumn(e){return this._lines.getLineIndentColumn(e)}},Mp=class e{static create(t){return new e(t,1,!1,t._setTrackedRange(null,new j(1,1,1,1),1),0)}get viewLineNumber(){return this._viewLineNumber}get isValid(){return this._isValid}get modelTrackedRange(){return this._modelTrackedRange}get startLineDelta(){return this._startLineDelta}constructor(e,t,n,r,i){this._model=e,this._viewLineNumber=t,this._isValid=n,this._modelTrackedRange=r,this._startLineDelta=i}dispose(){this._model._setTrackedRange(this._modelTrackedRange,null,1)}update(e,t){let n=e.coordinatesConverter.convertViewPositionToModelPosition(new b(t,e.getLineMinColumn(t))),r=e.model._setTrackedRange(this._modelTrackedRange,new j(n.lineNumber,n.column,n.lineNumber,n.column),1),i=e.viewLayout.getVerticalOffsetForLineNumber(t),a=e.viewLayout.getCurrentScrollTop();this._viewLineNumber=t,this._isValid=!0,this._modelTrackedRange=r,this._startLineDelta=a-i}invalidate(){this._isValid=!1}},Np=class{constructor(){this._asMap=Object.create(null),this.asArray=[]}accept(e,t,n,r,i){let a=this._asMap[e];if(a){let e=a.data,t=e[e.length-3],o=e[e.length-1];if(t===i&&o+1>=n){r>o&&(e[e.length-1]=r);return}e.push(i,n,r)}else{let a=new ml(e,t,[i,n,r]);this._asMap[e]=a,this.asArray.push(a)}}},Pp=class{constructor(){this.hiddenAreas=new Map,this.shouldRecompute=!1,this.ranges=[]}setHiddenAreas(e,t){let n=this.hiddenAreas.get(e);n&&Ip(n,t)||(this.hiddenAreas.set(e,t),this.shouldRecompute=!0)}getMergedRanges(){if(!this.shouldRecompute)return this.ranges;this.shouldRecompute=!1;let e=Array.from(this.hiddenAreas.values()).reduce((e,t)=>Fp(e,t),[]);return Ip(this.ranges,e)||(this.ranges=e),this.ranges}};function Fp(e,t){let n=[],r=0,i=0;for(;r<e.length&&i<t.length;){let a=e[r],o=t[i];if(a.endLineNumber<o.startLineNumber-1)n.push(e[r++]);else if(o.endLineNumber<a.startLineNumber-1)n.push(t[i++]);else{let e=Math.min(a.startLineNumber,o.startLineNumber),t=Math.max(a.endLineNumber,o.endLineNumber);n.push(new j(e,1,t,1)),r++,i++}}for(;r<e.length;)n.push(e[r++]);for(;i<t.length;)n.push(t[i++]);return n}function Ip(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!e[n].equalsRange(t[n]))return!1;return!0}var Lp=class{constructor(e,t){this.viewportStartModelPosition=e,this.startLineDelta=t}recoverViewportStart(e,t){if(!this.viewportStartModelPosition)return;let n=e.convertModelPositionToViewPosition(this.viewportStartModelPosition),r=t.getVerticalOffsetForLineNumber(n.lineNumber);t.setScrollPosition({scrollTop:r+this.startLineDelta},1)}},Rp=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},zp=function(e,t){return function(n,r){t(n,r,e)}},Bp,Vp=class extends i{static{Bp=this}static{this.dropIntoEditorDecorationOptions=Yn.register({description:`workbench-dnd-target`,className:`dnd-target`})}get isSimpleWidget(){return this._configuration.isSimpleWidget}get contextMenuId(){return this._configuration.contextMenuId}get contextKeyService(){return this._contextKeyService}constructor(e,t,n,r,i,a,o,s,c,l,u,d){super(),this.languageConfigurationService=u,this._deliveryQueue=pe(),this._contributions=this._register(new qd),this._onDidDispose=this._register(new k),this.onDidDispose=this._onDidDispose.event,this._onDidChangeModelContent=this._register(new k({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelContent=this._onDidChangeModelContent.event,this._onDidChangeModelLanguage=this._register(new k({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelLanguage=this._onDidChangeModelLanguage.event,this._onDidChangeModelLanguageConfiguration=this._register(new k({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelLanguageConfiguration=this._onDidChangeModelLanguageConfiguration.event,this._onDidChangeModelOptions=this._register(new k({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelOptions=this._onDidChangeModelOptions.event,this._onDidChangeModelDecorations=this._register(new k({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelDecorations=this._onDidChangeModelDecorations.event,this._onDidChangeLineHeight=this._register(new k({deliveryQueue:this._deliveryQueue})),this.onDidChangeLineHeight=this._onDidChangeLineHeight.event,this._onDidChangeFont=this._register(new k({deliveryQueue:this._deliveryQueue})),this.onDidChangeFont=this._onDidChangeFont.event,this._onDidChangeModelTokens=this._register(new k({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelTokens=this._onDidChangeModelTokens.event,this._onDidChangeConfiguration=this._register(new k({deliveryQueue:this._deliveryQueue})),this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this._onWillChangeModel=this._register(new k({deliveryQueue:this._deliveryQueue})),this.onWillChangeModel=this._onWillChangeModel.event,this._onDidChangeModel=this._register(new k({deliveryQueue:this._deliveryQueue})),this.onDidChangeModel=this._onDidChangeModel.event,this._onDidChangeCursorPosition=this._register(new k({deliveryQueue:this._deliveryQueue})),this.onDidChangeCursorPosition=this._onDidChangeCursorPosition.event,this._onDidChangeCursorSelection=this._register(new k({deliveryQueue:this._deliveryQueue})),this.onDidChangeCursorSelection=this._onDidChangeCursorSelection.event,this._onDidAttemptReadOnlyEdit=this._register(new $(this._contributions,this._deliveryQueue)),this.onDidAttemptReadOnlyEdit=this._onDidAttemptReadOnlyEdit.event,this._onDidLayoutChange=this._register(new k({deliveryQueue:this._deliveryQueue})),this.onDidLayoutChange=this._onDidLayoutChange.event,this._editorTextFocus=this._register(new Wp({deliveryQueue:this._deliveryQueue})),this.onDidFocusEditorText=this._editorTextFocus.onDidChangeToTrue,this.onDidBlurEditorText=this._editorTextFocus.onDidChangeToFalse,this._editorWidgetFocus=this._register(new Wp({deliveryQueue:this._deliveryQueue})),this.onDidFocusEditorWidget=this._editorWidgetFocus.onDidChangeToTrue,this.onDidBlurEditorWidget=this._editorWidgetFocus.onDidChangeToFalse,this._onWillType=this._register(new $(this._contributions,this._deliveryQueue)),this.onWillType=this._onWillType.event,this._onDidType=this._register(new $(this._contributions,this._deliveryQueue)),this.onDidType=this._onDidType.event,this._onDidCompositionStart=this._register(new $(this._contributions,this._deliveryQueue)),this.onDidCompositionStart=this._onDidCompositionStart.event,this._onDidCompositionEnd=this._register(new $(this._contributions,this._deliveryQueue)),this.onDidCompositionEnd=this._onDidCompositionEnd.event,this._onDidPaste=this._register(new $(this._contributions,this._deliveryQueue)),this.onDidPaste=this._onDidPaste.event,this._onMouseUp=this._register(new $(this._contributions,this._deliveryQueue)),this.onMouseUp=this._onMouseUp.event,this._onMouseDown=this._register(new $(this._contributions,this._deliveryQueue)),this.onMouseDown=this._onMouseDown.event,this._onMouseDrag=this._register(new $(this._contributions,this._deliveryQueue)),this.onMouseDrag=this._onMouseDrag.event,this._onMouseDrop=this._register(new $(this._contributions,this._deliveryQueue)),this.onMouseDrop=this._onMouseDrop.event,this._onMouseDropCanceled=this._register(new $(this._contributions,this._deliveryQueue)),this.onMouseDropCanceled=this._onMouseDropCanceled.event,this._onDropIntoEditor=this._register(new $(this._contributions,this._deliveryQueue)),this.onDropIntoEditor=this._onDropIntoEditor.event,this._onContextMenu=this._register(new $(this._contributions,this._deliveryQueue)),this.onContextMenu=this._onContextMenu.event,this._onMouseMove=this._register(new $(this._contributions,this._deliveryQueue)),this.onMouseMove=this._onMouseMove.event,this._onMouseLeave=this._register(new $(this._contributions,this._deliveryQueue)),this.onMouseLeave=this._onMouseLeave.event,this._onMouseWheel=this._register(new $(this._contributions,this._deliveryQueue)),this.onMouseWheel=this._onMouseWheel.event,this._onKeyUp=this._register(new $(this._contributions,this._deliveryQueue)),this.onKeyUp=this._onKeyUp.event,this._onKeyDown=this._register(new $(this._contributions,this._deliveryQueue)),this.onKeyDown=this._onKeyDown.event,this._onDidContentSizeChange=this._register(new k({deliveryQueue:this._deliveryQueue})),this.onDidContentSizeChange=this._onDidContentSizeChange.event,this._onDidScrollChange=this._register(new k({deliveryQueue:this._deliveryQueue})),this.onDidScrollChange=this._onDidScrollChange.event,this._onDidChangeViewZones=this._register(new k({deliveryQueue:this._deliveryQueue})),this.onDidChangeViewZones=this._onDidChangeViewZones.event,this._onDidChangeHiddenAreas=this._register(new k({deliveryQueue:this._deliveryQueue})),this.onDidChangeHiddenAreas=this._onDidChangeHiddenAreas.event,this._updateCounter=0,this._onWillTriggerEditorOperationEvent=this._register(new k),this._onBeginUpdate=this._register(new k),this.onBeginUpdate=this._onBeginUpdate.event,this._onEndUpdate=this._register(new k),this.onEndUpdate=this._onEndUpdate.event,this._onBeforeExecuteEdit=this._register(new k),this.onBeforeExecuteEdit=this._onBeforeExecuteEdit.event,this._actions=new Map,this._bannerDomNode=null,this._dropIntoEditorDecorations=this.createDecorationsCollection(),this.inComposition=!1,i.willCreateCodeEditor();let f={...t};if(this._domElement=e,this._overflowWidgetsDomNode=f.overflowWidgetsDomNode,delete f.overflowWidgetsDomNode,this._id=++Hp,this._decorationTypeKeysToIds={},this._decorationTypeSubtypes={},this._telemetryData=n.telemetryData,this._configuration=this._register(this._createConfiguration(n.isSimpleWidget||!1,n.contextMenuId??(n.isSimpleWidget?pt.SimpleEditorContext:pt.EditorContext),f,l)),this._register(this._configuration.onDidChange(e=>{this._onDidChangeConfiguration.fire(e);let t=this._configuration.options;if(e.hasChanged(165)){let e=t.get(165);this._onDidLayoutChange.fire(e)}})),this._contextKeyService=this._register(o.createScoped(this._domElement)),n.contextKeyValues)for(let[e,t]of Object.entries(n.contextKeyValues))this._contextKeyService.createKey(e,t);this._notificationService=c,this._codeEditorService=i,this._commandService=a,this._themeService=s,this._register(new Gp(this,this._contextKeyService)),this._register(new Kp(this,this._contextKeyService,d)),this._instantiationService=this._register(r.createChild(new Qr([h,this._contextKeyService]))),this._modelData=null,this._contentWidgets={},this._overlayWidgets={},this._glyphMarginWidgets={};let p;p=Array.isArray(n.contributions)?n.contributions:it.getEditorContributions(),this._contributions.initialize(this,p,this._instantiationService);for(let e of it.getEditorActions()){if(this._actions.has(e.id)){Se(Error(`Cannot have two actions with the same id ${e.id}`));continue}let t=new Jd(e.id,e.label,e.alias,e.metadata,e.precondition??void 0,t=>this._instantiationService.invokeFunction(n=>Promise.resolve(e.runEditorCommand(n,this,t))),this._contextKeyService);this._actions.set(t.id,t)}let m=()=>!this._configuration.options.get(104)&&this._configuration.options.get(43).enabled;this._register(new ot(this._domElement,{onDragOver:e=>{if(!m())return;let t=this.getTargetAtClientPoint(e.clientX,e.clientY);t?.position&&this.showDropIndicatorAt(t.position)},onDrop:async e=>{if(!m()||(this.removeDropIndicator(),!e.dataTransfer))return;let t=this.getTargetAtClientPoint(e.clientX,e.clientY);t?.position&&this._onDropIntoEditor.fire({position:t.position,event:e})},onDragLeave:()=>{this.removeDropIndicator()},onDragEnd:()=>{this.removeDropIndicator()}})),this._codeEditorService.addCodeEditor(this)}writeScreenReaderContent(e){this._modelData?.view.writeScreenReaderContent(e)}_createConfiguration(e,t,n,r){return new Yi(e,t,n,this._domElement,r)}getId(){return this.getEditorType()+`:`+this._id}getEditorType(){return Oi.ICodeEditor}dispose(){this._codeEditorService.removeCodeEditor(this),this._actions.clear(),this._contentWidgets={},this._overlayWidgets={},this._removeDecorationTypes(),this._postDetachModelCleanup(this._detachModel()),this._onDidDispose.fire(),super.dispose()}invokeWithinContext(e){return this._instantiationService.invokeFunction(e)}updateOptions(e){this._configuration.updateOptions(e||{})}getOptions(){return this._configuration.options}getOption(e){return this._configuration.options.get(e)}getRawOptions(){return this._configuration.getRawOptions()}getOverflowWidgetsDomNode(){return this._overflowWidgetsDomNode}getConfiguredWordAtPosition(e){return this._modelData?Uo.getWordAtPosition(this._modelData.model,this._configuration.options.get(148),this._configuration.options.get(147),e):null}getValue(e=null){if(!this._modelData)return``;let t=!!(e&&e.preserveBOM),n=0;return e&&e.lineEnding&&e.lineEnding===`
`?n=1:e&&e.lineEnding&&e.lineEnding===`\r
`&&(n=2),this._modelData.model.getValue(n,t)}setValue(e){try{if(this._beginUpdate(),!this._modelData)return;this._modelData.model.setValue(e)}finally{this._endUpdate()}}getModel(){return this._modelData?this._modelData.model:null}setModel(e=null){try{this._beginUpdate();let t=e;if(this._modelData===null&&t===null||this._modelData&&this._modelData.model===t)return;let n={oldModelUrl:this._modelData?.model.uri||null,newModelUrl:t?.uri||null};this._onWillChangeModel.fire(n);let r=this.hasTextFocus(),i=this._detachModel();this._attachModel(t),this.hasModel()?r&&this.focus():(this._editorTextFocus.setValue(!1),this._editorWidgetFocus.setValue(!1)),this._removeDecorationTypes(),this._onDidChangeModel.fire(n),this._postDetachModelCleanup(i),this._contributionsDisposable=this._contributions.onAfterModelAttached()}finally{this._endUpdate()}}_removeDecorationTypes(){if(this._decorationTypeKeysToIds={},this._decorationTypeSubtypes){for(let e in this._decorationTypeSubtypes){let t=this._decorationTypeSubtypes[e];for(let n in t)this._removeDecorationType(e+`-`+n)}this._decorationTypeSubtypes={}}}getVisibleRanges(){return this._modelData?this._modelData.viewModel.getVisibleRanges():[]}getVisibleRangesPlusViewportAboveBelow(){return this._modelData?this._modelData.viewModel.getVisibleRangesPlusViewportAboveBelow():[]}getWhitespaces(){return this._modelData?this._modelData.viewModel.viewLayout.getWhitespaces():[]}static _getVerticalOffsetAfterPosition(e,t,n,r){let i=e.model.validatePosition({lineNumber:t,column:n}),a=e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(i);return e.viewModel.viewLayout.getVerticalOffsetAfterLineNumber(a.lineNumber,r)}getTopForLineNumber(e,t=!1){return this._modelData?Bp._getVerticalOffsetForPosition(this._modelData,e,1,t):-1}getTopForPosition(e,t){return this._modelData?Bp._getVerticalOffsetForPosition(this._modelData,e,t,!1):-1}static _getVerticalOffsetForPosition(e,t,n,r=!1){let i=e.model.validatePosition({lineNumber:t,column:n}),a=e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(i);return e.viewModel.viewLayout.getVerticalOffsetForLineNumber(a.lineNumber,r)}getBottomForLineNumber(e,t=!1){if(!this._modelData)return-1;let n=this._modelData.model.getLineMaxColumn(e);return Bp._getVerticalOffsetAfterPosition(this._modelData,e,n,t)}getLineHeightForPosition(e){if(!this._modelData)return-1;let t=this._modelData.viewModel,n=t.coordinatesConverter,r=b.lift(e);if(n.modelPositionIsVisible(r)){let e=n.convertModelPositionToViewPosition(r);return t.viewLayout.getLineHeightForLineNumber(e.lineNumber)}return 0}setHiddenAreas(e,t,n){this._modelData?.viewModel.setHiddenAreas(e.map(e=>j.lift(e)),t,n)}getVisibleColumnFromPosition(e){if(!this._modelData)return e.column;let t=this._modelData.model.validatePosition(e),n=this._modelData.model.getOptions().tabSize;return z.visibleColumnFromColumn(this._modelData.model.getLineContent(t.lineNumber),t.column,n)+1}getPosition(){return this._modelData?this._modelData.viewModel.getPosition():null}setPosition(e,t=`api`){if(this._modelData){if(!b.isIPosition(e))throw Error(`Invalid arguments`);this._modelData.viewModel.setSelections(t,[{selectionStartLineNumber:e.lineNumber,selectionStartColumn:e.column,positionLineNumber:e.lineNumber,positionColumn:e.column}])}}_sendRevealRange(e,t,n,r){if(!this._modelData)return;if(!j.isIRange(e))throw Error(`Invalid arguments`);let i=this._modelData.model.validateRange(e),a=this._modelData.viewModel.coordinatesConverter.convertModelRangeToViewRange(i);this._modelData.viewModel.revealRange(`api`,n,a,t,r)}revealLine(e,t=0){this._revealLine(e,0,t)}revealLineInCenter(e,t=0){this._revealLine(e,1,t)}revealLineInCenterIfOutsideViewport(e,t=0){this._revealLine(e,2,t)}revealLineNearTop(e,t=0){this._revealLine(e,5,t)}_revealLine(e,t,n){if(typeof e!=`number`)throw Error(`Invalid arguments`);this._sendRevealRange(new j(e,1,e,1),t,!1,n)}revealPosition(e,t=0){this._revealPosition(e,0,!0,t)}revealPositionInCenter(e,t=0){this._revealPosition(e,1,!0,t)}revealPositionInCenterIfOutsideViewport(e,t=0){this._revealPosition(e,2,!0,t)}revealPositionNearTop(e,t=0){this._revealPosition(e,5,!0,t)}_revealPosition(e,t,n,r){if(!b.isIPosition(e))throw Error(`Invalid arguments`);this._sendRevealRange(new j(e.lineNumber,e.column,e.lineNumber,e.column),t,n,r)}getSelection(){return this._modelData?this._modelData.viewModel.getSelection():null}getSelections(){return this._modelData?this._modelData.viewModel.getSelections():null}setSelection(e,t=`api`){let n=L.isISelection(e),r=j.isIRange(e);if(!n&&!r)throw Error(`Invalid arguments`);if(n)this._setSelectionImpl(e,t);else if(r){let n={selectionStartLineNumber:e.startLineNumber,selectionStartColumn:e.startColumn,positionLineNumber:e.endLineNumber,positionColumn:e.endColumn};this._setSelectionImpl(n,t)}}_setSelectionImpl(e,t){if(!this._modelData)return;let n=new L(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn);this._modelData.viewModel.setSelections(t,[n])}revealLines(e,t,n=0){this._revealLines(e,t,0,n)}revealLinesInCenter(e,t,n=0){this._revealLines(e,t,1,n)}revealLinesInCenterIfOutsideViewport(e,t,n=0){this._revealLines(e,t,2,n)}revealLinesNearTop(e,t,n=0){this._revealLines(e,t,5,n)}_revealLines(e,t,n,r){if(typeof e!=`number`||typeof t!=`number`)throw Error(`Invalid arguments`);this._sendRevealRange(new j(e,1,t,1),n,!1,r)}revealRange(e,t=0,n=!1,r=!0){this._revealRange(e,+!!n,r,t)}revealRangeInCenter(e,t=0){this._revealRange(e,1,!0,t)}revealRangeInCenterIfOutsideViewport(e,t=0){this._revealRange(e,2,!0,t)}revealRangeNearTop(e,t=0){this._revealRange(e,5,!0,t)}revealRangeNearTopIfOutsideViewport(e,t=0){this._revealRange(e,6,!0,t)}revealRangeAtTop(e,t=0){this._revealRange(e,3,!0,t)}_revealRange(e,t,n,r){if(!j.isIRange(e))throw Error(`Invalid arguments`);this._sendRevealRange(j.lift(e),t,n,r)}setSelections(e,t=`api`,n=0){if(this._modelData){if(!e||e.length===0)throw Error(`Invalid arguments`);for(let t=0,n=e.length;t<n;t++)if(!L.isISelection(e[t]))throw Error(`Invalid arguments`);this._modelData.viewModel.setSelections(t,e,n)}}getContentWidth(){return this._modelData?this._modelData.viewModel.viewLayout.getContentWidth():-1}getScrollWidth(){return this._modelData?this._modelData.viewModel.viewLayout.getScrollWidth():-1}getScrollLeft(){return this._modelData?this._modelData.viewModel.viewLayout.getCurrentScrollLeft():-1}getContentHeight(){return this._modelData?this._modelData.viewModel.viewLayout.getContentHeight():-1}getScrollHeight(){return this._modelData?this._modelData.viewModel.viewLayout.getScrollHeight():-1}getScrollTop(){return this._modelData?this._modelData.viewModel.viewLayout.getCurrentScrollTop():-1}setScrollLeft(e,t=1){if(this._modelData){if(typeof e!=`number`)throw Error(`Invalid arguments`);this._modelData.viewModel.viewLayout.setScrollPosition({scrollLeft:e},t)}}setScrollTop(e,t=1){if(this._modelData){if(typeof e!=`number`)throw Error(`Invalid arguments`);this._modelData.viewModel.viewLayout.setScrollPosition({scrollTop:e},t)}}setScrollPosition(e,t=1){this._modelData&&this._modelData.viewModel.viewLayout.setScrollPosition(e,t)}hasPendingScrollAnimation(){return this._modelData?this._modelData.viewModel.viewLayout.hasPendingScrollAnimation():!1}saveViewState(){if(!this._modelData)return null;let e=this._contributions.saveViewState();return{cursorState:this._modelData.viewModel.saveCursorState(),viewState:this._modelData.viewModel.saveState(),contributionsState:e}}restoreViewState(e){if(!this._modelData||!this._modelData.hasRealView)return;let t=e;if(t&&t.cursorState&&t.viewState){let e=t.cursorState;Array.isArray(e)?e.length>0&&this._modelData.viewModel.restoreCursorState(e):this._modelData.viewModel.restoreCursorState([e]),this._contributions.restoreViewState(t.contributionsState||{});let n=this._modelData.viewModel.reduceRestoreState(t.viewState);this._modelData.view.restoreState(n)}}handleInitialized(){this._getViewModel()?.visibleLinesStabilized()}getContribution(e){return this._contributions.get(e)}getActions(){return Array.from(this._actions.values())}getSupportedActions(){let e=this.getActions();return e=e.filter(e=>e.isSupported()),e}getAction(e){return this._actions.get(e)||null}trigger(e,t,n){n||={};try{switch(this._onWillTriggerEditorOperationEvent.fire({source:e,handlerId:t,payload:n}),this._beginUpdate(),t){case`compositionStart`:this._startComposition();return;case`compositionEnd`:this._endComposition(e);return;case`type`:{let t=n;this._type(e,t.text||``);return}case`replacePreviousChar`:{let t=n;this._compositionType(e,t.text||``,t.replaceCharCnt||0,0,0);return}case`compositionType`:{let t=n;this._compositionType(e,t.text||``,t.replacePrevCharCnt||0,t.replaceNextCharCnt||0,t.positionDelta||0);return}case`paste`:{let t=n;this._paste(e,t.text||``,t.pasteOnNewLine||!1,t.multicursorText||null,t.mode||null,t.clipboardEvent);return}case`cut`:this._cut(e);return}let r=this.getAction(t);if(r){Promise.resolve(r.run(n)).then(void 0,Se);return}if(!this._modelData||this._triggerEditorCommand(e,t,n))return;this._triggerCommand(t,n)}finally{this._endUpdate()}}_triggerCommand(e,t){this._commandService.executeCommand(e,t)}_startComposition(){this._modelData&&(this.inComposition=!0,this._modelData.viewModel.startComposition(),this._onDidCompositionStart.fire())}_endComposition(e){this._modelData&&(this.inComposition=!1,this._modelData.viewModel.endComposition(e),this._onDidCompositionEnd.fire())}_type(e,t){!this._modelData||t.length===0||(e===`keyboard`&&this._onWillType.fire(t),this._modelData.viewModel.type(t,e),e===`keyboard`&&this._onDidType.fire(t))}_compositionType(e,t,n,r,i){this._modelData&&this._modelData.viewModel.compositionType(t,n,r,i,e)}_paste(e,t,n,r,i,a){if(!this._modelData)return;let o=this._modelData.viewModel,s=o.getSelection().getStartPosition();o.paste(t,n,r,e);let c=o.getSelection().getStartPosition();e===`keyboard`&&this._onDidPaste.fire({clipboardEvent:a,range:new j(s.lineNumber,s.column,c.lineNumber,c.column),languageId:i})}_cut(e){this._modelData&&this._modelData.viewModel.cut(e)}_triggerEditorCommand(e,t,n){let r=it.getEditorCommand(t);return r?(n||={},ee(n)&&(n.source=e),this._instantiationService.invokeFunction(e=>{Promise.resolve(r.runEditorCommand(e,this,n)).then(void 0,Se)}),!0):!1}_getViewModel(){return this._modelData?this._modelData.viewModel:null}pushUndoStop(){return!this._modelData||this._configuration.options.get(104)?!1:(this._modelData.model.pushStackElement(),!0)}popUndoStop(){return!this._modelData||this._configuration.options.get(104)?!1:(this._modelData.model.popStackElement(),!0)}edit(e,t){return this.executeEdits(t,e.replacements.map(e=>({range:e.range,text:e.text})),void 0)}executeEdits(e,t,n){if(!this._modelData||this._configuration.options.get(104))return!1;let r;r=n?Array.isArray(n)?()=>n:n:()=>null;let i,a;return e instanceof Ut?(a=e,i=e.metadata.source):(a=mn.unknown({name:i}),i=e),this._onBeforeExecuteEdit.fire({source:i??void 0}),this._modelData.viewModel.executeEdits(i,t,r,a),!0}executeCommand(e,t){this._modelData&&this._modelData.viewModel.executeCommand(t,e)}executeCommands(e,t){this._modelData&&this._modelData.viewModel.executeCommands(t,e)}createDecorationsCollection(e){return new qp(this,e)}changeDecorations(e){return this._modelData?this._modelData.model.changeDecorations(e,this._id):null}getLineDecorations(e){if(!this._modelData)return null;let t=this._configuration.options;return this._modelData.model.getLineDecorations(e,this._id,Rr(t),$r(t))}getDecorationsInRange(e){if(!this._modelData)return null;let t=this._configuration.options;return this._modelData.model.getDecorationsInRange(e,this._id,Rr(t),$r(t))}getFontSizeAtPosition(e){return this._modelData?this._modelData.viewModel.getFontSizeAtPosition(e):null}deltaDecorations(e,t){return this._modelData?e.length===0&&t.length===0?e:this._modelData.model.deltaDecorations(e,t,this._id):[]}removeDecorations(e){!this._modelData||e.length===0||this._modelData.model.changeDecorations(t=>{t.deltaDecorations(e,[])})}removeDecorationsByType(e){let t=this._decorationTypeKeysToIds[e];t&&this.changeDecorations(e=>e.deltaDecorations(t,[])),this._decorationTypeKeysToIds.hasOwnProperty(e)&&delete this._decorationTypeKeysToIds[e],this._decorationTypeSubtypes.hasOwnProperty(e)&&delete this._decorationTypeSubtypes[e]}getLayoutInfo(){return this._configuration.options.get(165)}createOverviewRuler(e){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.createOverviewRuler(e)}getContainerDomNode(){return this._domElement}getDomNode(){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.domNode.domNode}delegateVerticalScrollbarPointerDown(e){!this._modelData||!this._modelData.hasRealView||this._modelData.view.delegateVerticalScrollbarPointerDown(e)}delegateScrollFromMouseWheelEvent(e){!this._modelData||!this._modelData.hasRealView||this._modelData.view.delegateScrollFromMouseWheelEvent(e)}layout(e,t=!1){this._configuration.observeContainer(e),t||this.render()}focus(){!this._modelData||!this._modelData.hasRealView||this._modelData.view.focus()}hasTextFocus(){return!this._modelData||!this._modelData.hasRealView?!1:this._modelData.view.isFocused()}hasWidgetFocus(){return!this._modelData||!this._modelData.hasRealView?!1:this._modelData.view.isWidgetFocused()}addContentWidget(e){let t={widget:e,position:e.getPosition()};this._contentWidgets.hasOwnProperty(e.getId())&&console.warn(`Overwriting a content widget with the same id:`+e.getId()),this._contentWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addContentWidget(t)}layoutContentWidget(e){let t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){let n=this._contentWidgets[t];n.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutContentWidget(n)}}removeContentWidget(e){let t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){let e=this._contentWidgets[t];delete this._contentWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeContentWidget(e)}}addOverlayWidget(e){let t={widget:e,position:e.getPosition()};this._overlayWidgets.hasOwnProperty(e.getId())&&console.warn(`Overwriting an overlay widget with the same id.`),this._overlayWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addOverlayWidget(t)}layoutOverlayWidget(e){let t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){let n=this._overlayWidgets[t];n.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutOverlayWidget(n)}}removeOverlayWidget(e){let t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){let e=this._overlayWidgets[t];delete this._overlayWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeOverlayWidget(e)}}addGlyphMarginWidget(e){let t={widget:e,position:e.getPosition()};this._glyphMarginWidgets.hasOwnProperty(e.getId())&&console.warn(`Overwriting a glyph margin widget with the same id.`),this._glyphMarginWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addGlyphMarginWidget(t)}layoutGlyphMarginWidget(e){let t=e.getId();if(this._glyphMarginWidgets.hasOwnProperty(t)){let n=this._glyphMarginWidgets[t];n.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutGlyphMarginWidget(n)}}removeGlyphMarginWidget(e){let t=e.getId();if(this._glyphMarginWidgets.hasOwnProperty(t)){let e=this._glyphMarginWidgets[t];delete this._glyphMarginWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeGlyphMarginWidget(e)}}changeViewZones(e){!this._modelData||!this._modelData.hasRealView||this._modelData.view.change(e)}getTargetAtClientPoint(e,t){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.getTargetAtClientPoint(e,t)}getScrolledVisiblePosition(e){if(!this._modelData||!this._modelData.hasRealView)return null;let t=this._modelData.model.validatePosition(e),n=this._configuration.options.get(165);return{top:Bp._getVerticalOffsetForPosition(this._modelData,t.lineNumber,t.column)-this.getScrollTop(),left:this._modelData.view.getOffsetForColumn(t.lineNumber,t.column)+n.glyphMarginWidth+n.lineNumbersWidth+n.decorationsWidth-this.getScrollLeft(),height:this.getLineHeightForPosition(t)}}getOffsetForColumn(e,t){return!this._modelData||!this._modelData.hasRealView?-1:this._modelData.view.getOffsetForColumn(e,t)}render(e=!1){!this._modelData||!this._modelData.hasRealView||this._modelData.viewModel.batchEvents(()=>{this._modelData.view.render(!0,e)})}setAriaOptions(e){!this._modelData||!this._modelData.hasRealView||this._modelData.view.setAriaOptions(e)}applyFontInfo(e){H(e,this._configuration.options.get(59))}setBanner(e,t){this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._bannerDomNode.remove(),this._bannerDomNode=e,this._configuration.setReservedHeight(e?t:0),this._bannerDomNode&&this._domElement.prepend(this._bannerDomNode)}_attachModel(e){if(!e){this._modelData=null;return}let t=[];this._domElement.setAttribute(`data-mode-id`,e.getLanguageId()),this._configuration.setIsDominatedByLongLines(e.isDominatedByLongLines()),this._configuration.setModelLineCount(e.getLineCount());let n=e.onBeforeAttached(),r=new jp(this._id,this._configuration,e,Vd.create(M(this._domElement)),Yd.create(this._configuration.options),e=>tt(M(this._domElement),e),this.languageConfigurationService,this._themeService,n,{batchChanges:e=>{try{return this._beginUpdate(),e()}finally{this._endUpdate()}}});t.push(e.onWillDispose(()=>this.setModel(null))),t.push(r.onEvent(t=>{switch(t.kind){case 0:this._onDidContentSizeChange.fire(t);break;case 1:this._editorTextFocus.setValue(t.hasFocus);break;case 2:this._editorWidgetFocus.setValue(t.hasFocus);break;case 3:this._onDidScrollChange.fire(t);break;case 4:this._onDidChangeViewZones.fire();break;case 5:this._onDidChangeHiddenAreas.fire();break;case 6:this._onDidAttemptReadOnlyEdit.fire();break;case 7:{if(t.reachedMaxCursorCount){let e=de(83,`The number of cursors has been limited to {0}. Consider using [find and replace](https://code.visualstudio.com/docs/editor/codebasics#_find-and-replace) for larger changes or increase the editor multi cursor limit setting.`,this.getOption(89));this._notificationService.prompt(ir.Warning,e,[{label:`Find and Replace`,run:()=>{this._commandService.executeCommand(`editor.action.startFindReplaceAction`)}},{label:de(84,`Increase Multi Cursor Limit`),run:()=>{this._commandService.executeCommand(`workbench.action.openSettings2`,{query:`editor.multiCursorLimit`})}}])}let e=[];for(let n=0,r=t.selections.length;n<r;n++)e[n]=t.selections[n].getPosition();let n={position:e[0],secondaryPositions:e.slice(1),reason:t.reason,source:t.source};this._onDidChangeCursorPosition.fire(n);let r={selection:t.selections[0],secondarySelections:t.selections.slice(1),modelVersionId:t.modelVersionId,oldSelections:t.oldSelections,oldModelVersionId:t.oldModelVersionId,source:t.source,reason:t.reason};this._onDidChangeCursorSelection.fire(r);break}case 8:this._onDidChangeModelDecorations.fire(t.event);break;case 9:this._domElement.setAttribute(`data-mode-id`,e.getLanguageId()),this._onDidChangeModelLanguage.fire(t.event);break;case 10:this._onDidChangeModelLanguageConfiguration.fire(t.event);break;case 11:this._onDidChangeModelContent.fire(t.event);break;case 12:this._onDidChangeModelOptions.fire(t.event);break;case 13:this._onDidChangeModelTokens.fire(t.event);break;case 14:this._onDidChangeLineHeight.fire(t.event);break;case 15:this._onDidChangeFont.fire(t.event);break}}));let[i,a]=this._createView(r);if(a){this._domElement.appendChild(i.domNode.domNode);let t=Object.keys(this._contentWidgets);for(let e=0,n=t.length;e<n;e++){let n=t[e];i.addContentWidget(this._contentWidgets[n])}t=Object.keys(this._overlayWidgets);for(let e=0,n=t.length;e<n;e++){let n=t[e];i.addOverlayWidget(this._overlayWidgets[n])}t=Object.keys(this._glyphMarginWidgets);for(let e=0,n=t.length;e<n;e++){let n=t[e];i.addGlyphMarginWidget(this._glyphMarginWidgets[n])}i.render(!1,!0),i.domNode.domNode.setAttribute(`data-uri`,e.uri.toString())}this._modelData=new Up(e,r,i,a,t,n)}_createView(e){let t;t=this.isSimpleWidget?{paste:(e,t,n,r)=>{this._paste(`keyboard`,e,t,n,r)},type:e=>{this._type(`keyboard`,e)},compositionType:(e,t,n,r)=>{this._compositionType(`keyboard`,e,t,n,r)},startComposition:()=>{this._startComposition()},endComposition:()=>{this._endComposition(`keyboard`)},cut:()=>{this._cut(`keyboard`)}}:{paste:(e,t,n,r)=>{let i={text:e,pasteOnNewLine:t,multicursorText:n,mode:r};this._commandService.executeCommand(`paste`,i)},type:e=>{let t={text:e};this._commandService.executeCommand(`type`,t)},compositionType:(e,t,n,r)=>{if(n||r){let i={text:e,replacePrevCharCnt:t,replaceNextCharCnt:n,positionDelta:r};this._commandService.executeCommand(`compositionType`,i)}else{let n={text:e,replaceCharCnt:t};this._commandService.executeCommand(`replacePreviousChar`,n)}},startComposition:()=>{this._commandService.executeCommand(`compositionStart`,{})},endComposition:()=>{this._commandService.executeCommand(`compositionEnd`,{})},cut:()=>{this._commandService.executeCommand(`cut`,{})}};let n=new nc(e.coordinatesConverter);return n.onKeyDown=e=>this._onKeyDown.fire(e),n.onKeyUp=e=>this._onKeyUp.fire(e),n.onContextMenu=e=>this._onContextMenu.fire(e),n.onMouseMove=e=>this._onMouseMove.fire(e),n.onMouseLeave=e=>this._onMouseLeave.fire(e),n.onMouseDown=e=>this._onMouseDown.fire(e),n.onMouseUp=e=>this._onMouseUp.fire(e),n.onMouseDrag=e=>this._onMouseDrag.fire(e),n.onMouseDrop=e=>this._onMouseDrop.fire(e),n.onMouseDropCanceled=e=>this._onMouseDropCanceled.fire(e),n.onMouseWheel=e=>this._onMouseWheel.fire(e),[new Md(this._domElement,this.getId(),t,this._configuration,this._themeService.getColorTheme(),e,n,this._overflowWidgetsDomNode,this._instantiationService),!0]}_postDetachModelCleanup(e){e?.removeAllDecorationsWithOwnerId(this._id)}_detachModel(){if(this._contributionsDisposable?.dispose(),this._contributionsDisposable=void 0,!this._modelData)return null;let e=this._modelData.model,t=this._modelData.hasRealView?this._modelData.view.domNode.domNode:null;return this._modelData.dispose(),this._modelData=null,this._domElement.removeAttribute(`data-mode-id`),t&&this._domElement.contains(t)&&t.remove(),this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._bannerDomNode.remove(),e}_removeDecorationType(e){this._codeEditorService.removeDecorationType(e)}hasModel(){return this._modelData!==null}showDropIndicatorAt(e){let t=[{range:new j(e.lineNumber,e.column,e.lineNumber,e.column),options:Bp.dropIntoEditorDecorationOptions}];this._dropIntoEditorDecorations.set(t),this.revealPosition(e,1)}removeDropIndicator(){this._dropIntoEditorDecorations.clear()}_beginUpdate(){this._updateCounter++,this._updateCounter===1&&this._onBeginUpdate.fire()}_endUpdate(){this._updateCounter--,this._updateCounter===0&&this._onEndUpdate.fire()}};Vp=Bp=Rp([zp(3,Pt),zp(4,dt),zp(5,c),zp(6,h),zp(7,le),zp(8,Vn),zp(9,Lr),zp(10,kn),zp(11,It)],Vp);var Hp=0,Up=class{constructor(e,t,n,r,i,a){this.model=e,this.viewModel=t,this.view=n,this.hasRealView=r,this.listenersToRemove=i,this.attachedView=a}dispose(){t(this.listenersToRemove),this.model.onBeforeDetached(this.attachedView),this.hasRealView&&this.view.dispose(),this.viewModel.dispose()}},Wp=class extends i{constructor(e){super(),this._emitterOptions=e,this._onDidChangeToTrue=this._register(new k(this._emitterOptions)),this.onDidChangeToTrue=this._onDidChangeToTrue.event,this._onDidChangeToFalse=this._register(new k(this._emitterOptions)),this.onDidChangeToFalse=this._onDidChangeToFalse.event,this._value=0}setValue(e){let t=e?2:1;this._value!==t&&(this._value=t,this._value===2?this._onDidChangeToTrue.fire():this._value===1&&this._onDidChangeToFalse.fire())}},$=class extends k{constructor(e,t){super({deliveryQueue:t}),this._contributions=e}fire(e){this._contributions.onBeforeInteractionEvent(),super.fire(e)}},Gp=class extends i{constructor(e,t){super(),this._editor=e,t.createKey(`editorId`,e.getId()),this._editorSimpleInput=V.editorSimpleInput.bindTo(t),this._editorFocus=V.focus.bindTo(t),this._textInputFocus=V.textInputFocus.bindTo(t),this._editorTextFocus=V.editorTextFocus.bindTo(t),this._tabMovesFocus=V.tabMovesFocus.bindTo(t),this._editorReadonly=V.readOnly.bindTo(t),this._inDiffEditor=V.inDiffEditor.bindTo(t),this._editorColumnSelection=V.columnSelection.bindTo(t),this._hasMultipleSelections=V.hasMultipleSelections.bindTo(t),this._hasNonEmptySelection=V.hasNonEmptySelection.bindTo(t),this._canUndo=V.canUndo.bindTo(t),this._canRedo=V.canRedo.bindTo(t),this._register(this._editor.onDidChangeConfiguration(()=>this._updateFromConfig())),this._register(this._editor.onDidChangeCursorSelection(()=>this._updateFromSelection())),this._register(this._editor.onDidFocusEditorWidget(()=>this._updateFromFocus())),this._register(this._editor.onDidBlurEditorWidget(()=>this._updateFromFocus())),this._register(this._editor.onDidFocusEditorText(()=>this._updateFromFocus())),this._register(this._editor.onDidBlurEditorText(()=>this._updateFromFocus())),this._register(this._editor.onDidChangeModel(()=>this._updateFromModel())),this._register(this._editor.onDidChangeConfiguration(()=>this._updateFromModel())),this._register(Ui.onDidChangeTabFocus(e=>this._tabMovesFocus.set(e))),this._updateFromConfig(),this._updateFromSelection(),this._updateFromFocus(),this._updateFromModel(),this._editorSimpleInput.set(this._editor.isSimpleWidget)}_updateFromConfig(){let e=this._editor.getOptions();this._tabMovesFocus.set(e.get(164)||Ui.getTabFocusMode()),this._editorReadonly.set(e.get(104)),this._inDiffEditor.set(e.get(70)),this._editorColumnSelection.set(e.get(28))}_updateFromSelection(){let e=this._editor.getSelections();e?(this._hasMultipleSelections.set(e.length>1),this._hasNonEmptySelection.set(e.some(e=>!e.isEmpty()))):(this._hasMultipleSelections.reset(),this._hasNonEmptySelection.reset())}_updateFromFocus(){this._editorFocus.set(this._editor.hasWidgetFocus()&&!this._editor.isSimpleWidget),this._editorTextFocus.set(this._editor.hasTextFocus()&&!this._editor.isSimpleWidget),this._textInputFocus.set(this._editor.hasTextFocus())}_updateFromModel(){let e=this._editor.getModel();this._canUndo.set(!!(e&&e.canUndo())),this._canRedo.set(!!(e&&e.canRedo()))}},Kp=class extends i{constructor(e,t,n){super(),this._editor=e,this._contextKeyService=t,this._languageFeaturesService=n,this._langId=V.languageId.bindTo(t),this._hasCompletionItemProvider=V.hasCompletionItemProvider.bindTo(t),this._hasCodeActionsProvider=V.hasCodeActionsProvider.bindTo(t),this._hasCodeLensProvider=V.hasCodeLensProvider.bindTo(t),this._hasDefinitionProvider=V.hasDefinitionProvider.bindTo(t),this._hasDeclarationProvider=V.hasDeclarationProvider.bindTo(t),this._hasImplementationProvider=V.hasImplementationProvider.bindTo(t),this._hasTypeDefinitionProvider=V.hasTypeDefinitionProvider.bindTo(t),this._hasHoverProvider=V.hasHoverProvider.bindTo(t),this._hasDocumentHighlightProvider=V.hasDocumentHighlightProvider.bindTo(t),this._hasDocumentSymbolProvider=V.hasDocumentSymbolProvider.bindTo(t),this._hasReferenceProvider=V.hasReferenceProvider.bindTo(t),this._hasRenameProvider=V.hasRenameProvider.bindTo(t),this._hasSignatureHelpProvider=V.hasSignatureHelpProvider.bindTo(t),this._hasInlayHintsProvider=V.hasInlayHintsProvider.bindTo(t),this._hasDocumentFormattingProvider=V.hasDocumentFormattingProvider.bindTo(t),this._hasDocumentSelectionFormattingProvider=V.hasDocumentSelectionFormattingProvider.bindTo(t),this._hasMultipleDocumentFormattingProvider=V.hasMultipleDocumentFormattingProvider.bindTo(t),this._hasMultipleDocumentSelectionFormattingProvider=V.hasMultipleDocumentSelectionFormattingProvider.bindTo(t),this._isInEmbeddedEditor=V.isInEmbeddedEditor.bindTo(t);let r=()=>this._update();this._register(e.onDidChangeModel(r)),this._register(e.onDidChangeModelLanguage(r)),this._register(n.completionProvider.onDidChange(r)),this._register(n.codeActionProvider.onDidChange(r)),this._register(n.codeLensProvider.onDidChange(r)),this._register(n.definitionProvider.onDidChange(r)),this._register(n.declarationProvider.onDidChange(r)),this._register(n.implementationProvider.onDidChange(r)),this._register(n.typeDefinitionProvider.onDidChange(r)),this._register(n.hoverProvider.onDidChange(r)),this._register(n.documentHighlightProvider.onDidChange(r)),this._register(n.documentSymbolProvider.onDidChange(r)),this._register(n.referenceProvider.onDidChange(r)),this._register(n.renameProvider.onDidChange(r)),this._register(n.documentFormattingEditProvider.onDidChange(r)),this._register(n.documentRangeFormattingEditProvider.onDidChange(r)),this._register(n.signatureHelpProvider.onDidChange(r)),this._register(n.inlayHintsProvider.onDidChange(r)),r()}dispose(){super.dispose()}reset(){this._contextKeyService.bufferChangeEvents(()=>{this._langId.reset(),this._hasCompletionItemProvider.reset(),this._hasCodeActionsProvider.reset(),this._hasCodeLensProvider.reset(),this._hasDefinitionProvider.reset(),this._hasDeclarationProvider.reset(),this._hasImplementationProvider.reset(),this._hasTypeDefinitionProvider.reset(),this._hasHoverProvider.reset(),this._hasDocumentHighlightProvider.reset(),this._hasDocumentSymbolProvider.reset(),this._hasReferenceProvider.reset(),this._hasRenameProvider.reset(),this._hasDocumentFormattingProvider.reset(),this._hasDocumentSelectionFormattingProvider.reset(),this._hasSignatureHelpProvider.reset(),this._isInEmbeddedEditor.reset()})}_update(){let e=this._editor.getModel();if(!e){this.reset();return}this._contextKeyService.bufferChangeEvents(()=>{this._langId.set(e.getLanguageId()),this._hasCompletionItemProvider.set(this._languageFeaturesService.completionProvider.has(e)),this._hasCodeActionsProvider.set(this._languageFeaturesService.codeActionProvider.has(e)),this._hasCodeLensProvider.set(this._languageFeaturesService.codeLensProvider.has(e)),this._hasDefinitionProvider.set(this._languageFeaturesService.definitionProvider.has(e)),this._hasDeclarationProvider.set(this._languageFeaturesService.declarationProvider.has(e)),this._hasImplementationProvider.set(this._languageFeaturesService.implementationProvider.has(e)),this._hasTypeDefinitionProvider.set(this._languageFeaturesService.typeDefinitionProvider.has(e)),this._hasHoverProvider.set(this._languageFeaturesService.hoverProvider.has(e)),this._hasDocumentHighlightProvider.set(this._languageFeaturesService.documentHighlightProvider.has(e)),this._hasDocumentSymbolProvider.set(this._languageFeaturesService.documentSymbolProvider.has(e)),this._hasReferenceProvider.set(this._languageFeaturesService.referenceProvider.has(e)),this._hasRenameProvider.set(this._languageFeaturesService.renameProvider.has(e)),this._hasSignatureHelpProvider.set(this._languageFeaturesService.signatureHelpProvider.has(e)),this._hasInlayHintsProvider.set(this._languageFeaturesService.inlayHintsProvider.has(e)),this._hasDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.has(e)||this._languageFeaturesService.documentRangeFormattingEditProvider.has(e)),this._hasDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.has(e)),this._hasMultipleDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.all(e).length+this._languageFeaturesService.documentRangeFormattingEditProvider.all(e).length>1),this._hasMultipleDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.all(e).length>1),this._isInEmbeddedEditor.set(e.uri.scheme===we.walkThroughSnippet||e.uri.scheme===we.vscodeChatCodeBlock)})}},qp=class{get length(){return this._decorationIds.length}constructor(e,t){this._editor=e,this._decorationIds=[],this._isChangingDecorations=!1,Array.isArray(t)&&t.length>0&&this.set(t)}onDidChange(e,t,n){return this._editor.onDidChangeModelDecorations(n=>{this._isChangingDecorations||e.call(t,n)},n)}getRange(e){return!this._editor.hasModel()||e>=this._decorationIds.length?null:this._editor.getModel().getDecorationRange(this._decorationIds[e])}getRanges(){if(!this._editor.hasModel())return[];let e=this._editor.getModel(),t=[];for(let n of this._decorationIds){let r=e.getDecorationRange(n);r&&t.push(r)}return t}has(e){return this._decorationIds.includes(e.id)}clear(){this._decorationIds.length!==0&&this.set([])}set(e){try{this._isChangingDecorations=!0,this._editor.changeDecorations(t=>{this._decorationIds=t.deltaDecorations(this._decorationIds,e)})}finally{this._isChangingDecorations=!1}return this._decorationIds}append(e){let t=[];try{this._isChangingDecorations=!0,this._editor.changeDecorations(n=>{t=n.deltaDecorations([],e),this._decorationIds=this._decorationIds.concat(t)})}finally{this._isChangingDecorations=!1}return t}},Jp=`%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%206%203'%20enable-background%3D'new%200%200%206%203'%20height%3D'3'%20width%3D'6'%3E%3Cg%20fill%3D'`,Yp=`'%3E%3Cpolygon%20points%3D'5.5%2C0%202.5%2C3%201.1%2C3%204.1%2C0'%2F%3E%3Cpolygon%20points%3D'4%2C0%206%2C2%206%2C0.6%205.4%2C0'%2F%3E%3Cpolygon%20points%3D'0%2C2%201%2C3%202.4%2C3%200%2C0.6'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E`;function Xp(e){return Jp+encodeURIComponent(e.toString())+Yp}var Zp=`%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%223%22%20width%3D%2212%22%3E%3Cg%20fill%3D%22`,Qp=`%22%3E%3Ccircle%20cx%3D%221%22%20cy%3D%221%22%20r%3D%221%22%2F%3E%3Ccircle%20cx%3D%225%22%20cy%3D%221%22%20r%3D%221%22%2F%3E%3Ccircle%20cx%3D%229%22%20cy%3D%221%22%20r%3D%221%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E`;function $p(e){return Zp+encodeURIComponent(e.toString())+Qp}me((e,t)=>{let n=e.getColor(br);n&&(t.addRule(`.monaco-editor .squiggly-error { background: url("data:image/svg+xml,${Xp(n)}") repeat-x bottom left; }`),t.addRule(`:root { --monaco-editor-error-decoration: url("data:image/svg+xml,${Xp(n)}"); }`));let r=e.getColor($t);r&&(t.addRule(`.monaco-editor .squiggly-warning { background: url("data:image/svg+xml,${Xp(r)}") repeat-x bottom left; }`),t.addRule(`:root { --monaco-editor-warning-decoration: url("data:image/svg+xml,${Xp(r)}"); }`));let i=e.getColor(rn);i&&(t.addRule(`.monaco-editor .squiggly-info { background: url("data:image/svg+xml,${Xp(i)}") repeat-x bottom left; }`),t.addRule(`:root { --monaco-editor-info-decoration: url("data:image/svg+xml,${Xp(i)}"); }`));let a=e.getColor(Wn);a&&(t.addRule(`.monaco-editor .squiggly-hint { background: url("data:image/svg+xml,${$p(a)}") no-repeat bottom left; }`),t.addRule(`:root { --monaco-editor-hint-decoration: url("data:image/svg+xml,${$p(a)}"); }`));let o=e.getColor(Rn);o&&(t.addRule(`.monaco-editor.showUnused .squiggly-inline-unnecessary { opacity: ${o.rgba.a}; }`),t.addRule(`:root { --monaco-editor-unnecessary-decoration-opacity: ${o.rgba.a}; }`))});export{bo as A,Ui as B,Zo as C,Wo as D,Uo as E,xa as F,Di as G,Mi as H,Sa as I,Si as K,wa as L,vo as M,Ka as N,q as O,va as P,ma as R,rs as S,J as T,H as U,Ri as V,Oi as W,Gs as _,Cd as a,cs as b,hd as c,Hl as d,vl as f,Jc as g,Xc as h,Jd as i,yo as j,K as k,Cu as l,Yc as m,fp as n,pd as o,pl as p,vi as q,$f as r,md as s,Vp as t,Kl as u,Rs as v,qo as w,ds as x,xs as y,Gi as z};