UNPKG

ruru

Version:

Grafast-flavoured GraphiQL distribution

2 lines • 245 kB
export const __webpack_esm_id__=1320;export const __webpack_esm_ids__=[1320];export const __webpack_esm_modules__={19031(e,t,n){n.r(t),n.d(t,{VSBuffer:()=>o,readUInt16LE:()=>a,readUInt32BE:()=>l,readUInt8:()=>c,writeUInt16LE:()=>h,writeUInt32BE:()=>d,writeUInt8:()=>u});var i=n(55003);const r="undefined"!=typeof Buffer;let s;new i.Lazy(()=>new Uint8Array(256));class o{static wrap(e){return r&&!Buffer.isBuffer(e)&&(e=Buffer.from(e.buffer,e.byteOffset,e.byteLength)),new o(e)}constructor(e){this.buffer=e,this.byteLength=this.buffer.byteLength}toString(){return r?this.buffer.toString():(s||(s=new TextDecoder),s.decode(this.buffer))}}function a(e,t){return(0|e[t+0])>>>0|e[t+1]<<8>>>0}function h(e,t,n){e[n+0]=255&t,t>>>=8,e[n+1]=255&t}function l(e,t){return e[t]*2**24+65536*e[t+1]+256*e[t+2]+e[t+3]}function d(e,t,n){e[n+3]=t,t>>>=8,e[n+2]=t,t>>>=8,e[n+1]=t,t>>>=8,e[n]=t}function c(e,t){return e[t]}function u(e,t,n){e[n]=t}},10492(e,t,n){n.r(t),n.d(t,{CursorColumns:()=>r});var i=n(60891);class r{static _nextVisibleColumn(e,t,n){return 9===e?r.nextRenderTabStop(t,n):i.isFullWidthCharacter(e)||i.isEmojiImprecise(e)?t+2:t+1}static visibleColumnFromColumn(e,t,n){const r=Math.min(t-1,e.length),s=e.substring(0,r),o=new i.GraphemeIterator(s);let a=0;for(;!o.eol();){const e=i.getNextCodePoint(s,r,o.offset);o.nextGraphemeLength(),a=this._nextVisibleColumn(e,a,n)}return a}static columnFromVisibleColumn(e,t,n){if(t<=0)return 1;const r=e.length,s=new i.GraphemeIterator(e);let o=0,a=1;for(;!s.eol();){const h=i.getNextCodePoint(e,r,s.offset);s.nextGraphemeLength();const l=this._nextVisibleColumn(h,o,n),d=s.offset+1;if(l>=t)return l-t<t-o?d:a;o=l,a=d}return r+1}static nextRenderTabStop(e,t){return e+t-e%t}static nextIndentTabStop(e,t){return e+t-e%t}static prevRenderTabStop(e,t){return Math.max(0,e-1-(e-1)%t)}static prevIndentTabStop(e,t){return Math.max(0,e-1-(e-1)%t)}}},41422(e,t,n){n.r(t),n.d(t,{deprecatedEditorActiveIndentGuides:()=>I,deprecatedEditorIndentGuides:()=>L,editorActiveIndentGuide1:()=>B,editorActiveIndentGuide2:()=>O,editorActiveIndentGuide3:()=>N,editorActiveIndentGuide4:()=>R,editorActiveIndentGuide5:()=>A,editorActiveIndentGuide6:()=>D,editorActiveLineNumber:()=>z,editorBracketHighlightingForeground1:()=>te,editorBracketHighlightingForeground2:()=>ne,editorBracketHighlightingForeground3:()=>ie,editorBracketHighlightingForeground4:()=>re,editorBracketHighlightingForeground5:()=>se,editorBracketHighlightingForeground6:()=>oe,editorBracketHighlightingUnexpectedBracketForeground:()=>ae,editorBracketMatchBackground:()=>U,editorBracketMatchBorder:()=>W,editorBracketPairGuideActiveBackground1:()=>fe,editorBracketPairGuideActiveBackground2:()=>_e,editorBracketPairGuideActiveBackground3:()=>pe,editorBracketPairGuideActiveBackground4:()=>me,editorBracketPairGuideActiveBackground5:()=>Ce,editorBracketPairGuideActiveBackground6:()=>ke,editorBracketPairGuideBackground1:()=>he,editorBracketPairGuideBackground2:()=>le,editorBracketPairGuideBackground3:()=>de,editorBracketPairGuideBackground4:()=>ce,editorBracketPairGuideBackground5:()=>ue,editorBracketPairGuideBackground6:()=>ge,editorCodeLensForeground:()=>F,editorCursorBackground:()=>f,editorCursorForeground:()=>g,editorDimmedLineNumber:()=>P,editorGutter:()=>V,editorIndentGuide1:()=>T,editorIndentGuide2:()=>S,editorIndentGuide3:()=>v,editorIndentGuide4:()=>x,editorIndentGuide5:()=>E,editorIndentGuide6:()=>w,editorLineHighlight:()=>a,editorLineHighlightBorder:()=>h,editorLineNumbers:()=>b,editorMultiCursorPrimaryBackground:()=>p,editorMultiCursorPrimaryForeground:()=>_,editorMultiCursorSecondaryBackground:()=>C,editorMultiCursorSecondaryForeground:()=>m,editorOverviewRulerBackground:()=>H,editorOverviewRulerBorder:()=>G,editorRangeHighlight:()=>l,editorRangeHighlightBorder:()=>d,editorRuler:()=>y,editorSymbolHighlight:()=>c,editorSymbolHighlightBorder:()=>u,editorUnicodeHighlightBackground:()=>Le,editorUnicodeHighlightBorder:()=>be,editorUnnecessaryCodeBorder:()=>j,editorUnnecessaryCodeOpacity:()=>q,editorWhitespaces:()=>k,ghostTextBackground:()=>K,ghostTextBorder:()=>$,ghostTextForeground:()=>Z,overviewRulerError:()=>Y,overviewRulerInfo:()=>ee,overviewRulerRangeHighlight:()=>Q,overviewRulerWarning:()=>J});var i=n(12003),r=n(63962),s=n(53698),o=n(19729);const a=(0,s.registerColor)("editor.lineHighlightBackground",null,i.localize("lineHighlight","Background color for the highlight of line at the cursor position.")),h=(0,s.registerColor)("editor.lineHighlightBorder",{dark:"#282828",light:"#eeeeee",hcDark:"#f38518",hcLight:s.contrastBorder},i.localize("lineHighlightBorderBox","Background color for the border around the line at the cursor position.")),l=(0,s.registerColor)("editor.rangeHighlightBackground",{dark:"#ffffff0b",light:"#fdff0033",hcDark:null,hcLight:null},i.localize("rangeHighlight","Background color of highlighted ranges, like by quick open and find features. The color must not be opaque so as not to hide underlying decorations."),!0),d=(0,s.registerColor)("editor.rangeHighlightBorder",{dark:null,light:null,hcDark:s.activeContrastBorder,hcLight:s.activeContrastBorder},i.localize("rangeHighlightBorder","Background color of the border around highlighted ranges.")),c=(0,s.registerColor)("editor.symbolHighlightBackground",{dark:s.editorFindMatchHighlight,light:s.editorFindMatchHighlight,hcDark:null,hcLight:null},i.localize("symbolHighlight","Background color of highlighted symbol, like for go to definition or go next/previous symbol. The color must not be opaque so as not to hide underlying decorations."),!0),u=(0,s.registerColor)("editor.symbolHighlightBorder",{dark:null,light:null,hcDark:s.activeContrastBorder,hcLight:s.activeContrastBorder},i.localize("symbolHighlightBorder","Background color of the border around highlighted symbols.")),g=(0,s.registerColor)("editorCursor.foreground",{dark:"#AEAFAD",light:r.Color.black,hcDark:r.Color.white,hcLight:"#0F4A85"},i.localize("caret","Color of the editor cursor.")),f=(0,s.registerColor)("editorCursor.background",null,i.localize("editorCursorBackground","The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor.")),_=(0,s.registerColor)("editorMultiCursor.primary.foreground",g,i.localize("editorMultiCursorPrimaryForeground","Color of the primary editor cursor when multiple cursors are present.")),p=(0,s.registerColor)("editorMultiCursor.primary.background",f,i.localize("editorMultiCursorPrimaryBackground","The background color of the primary editor cursor when multiple cursors are present. Allows customizing the color of a character overlapped by a block cursor.")),m=(0,s.registerColor)("editorMultiCursor.secondary.foreground",g,i.localize("editorMultiCursorSecondaryForeground","Color of secondary editor cursors when multiple cursors are present.")),C=(0,s.registerColor)("editorMultiCursor.secondary.background",f,i.localize("editorMultiCursorSecondaryBackground","The background color of secondary editor cursors when multiple cursors are present. Allows customizing the color of a character overlapped by a block cursor.")),k=(0,s.registerColor)("editorWhitespace.foreground",{dark:"#e3e4e229",light:"#33333333",hcDark:"#e3e4e229",hcLight:"#CCCCCC"},i.localize("editorWhitespaces","Color of whitespace characters in the editor.")),b=(0,s.registerColor)("editorLineNumber.foreground",{dark:"#858585",light:"#237893",hcDark:r.Color.white,hcLight:"#292929"},i.localize("editorLineNumbers","Color of editor line numbers.")),L=(0,s.registerColor)("editorIndentGuide.background",k,i.localize("editorIndentGuides","Color of the editor indentation guides."),!1,i.localize("deprecatedEditorIndentGuides","'editorIndentGuide.background' is deprecated. Use 'editorIndentGuide.background1' instead.")),I=(0,s.registerColor)("editorIndentGuide.activeBackground",k,i.localize("editorActiveIndentGuide","Color of the active editor indentation guides."),!1,i.localize("deprecatedEditorActiveIndentGuide","'editorIndentGuide.activeBackground' is deprecated. Use 'editorIndentGuide.activeBackground1' instead.")),T=(0,s.registerColor)("editorIndentGuide.background1",L,i.localize("editorIndentGuides1","Color of the editor indentation guides (1).")),S=(0,s.registerColor)("editorIndentGuide.background2","#00000000",i.localize("editorIndentGuides2","Color of the editor indentation guides (2).")),v=(0,s.registerColor)("editorIndentGuide.background3","#00000000",i.localize("editorIndentGuides3","Color of the editor indentation guides (3).")),x=(0,s.registerColor)("editorIndentGuide.background4","#00000000",i.localize("editorIndentGuides4","Color of the editor indentation guides (4).")),E=(0,s.registerColor)("editorIndentGuide.background5","#00000000",i.localize("editorIndentGuides5","Color of the editor indentation guides (5).")),w=(0,s.registerColor)("editorIndentGuide.background6","#00000000",i.localize("editorIndentGuides6","Color of the editor indentation guides (6).")),B=(0,s.registerColor)("editorIndentGuide.activeBackground1",I,i.localize("editorActiveIndentGuide1","Color of the active editor indentation guides (1).")),O=(0,s.registerColor)("editorIndentGuide.activeBackground2","#00000000",i.localize("editorActiveIndentGuide2","Color of the active editor indentation guides (2).")),N=(0,s.registerColor)("editorIndentGuide.activeBackground3","#00000000",i.localize("editorActiveIndentGuide3","Color of the active editor indentation guides (3).")),R=(0,s.registerColor)("editorIndentGuide.activeBackground4","#00000000",i.localize("editorActiveIndentGuide4","Color of the active editor indentation guides (4).")),A=(0,s.registerColor)("editorIndentGuide.activeBackground5","#00000000",i.localize("editorActiveIndentGuide5","Color of the active editor indentation guides (5).")),D=(0,s.registerColor)("editorIndentGuide.activeBackground6","#00000000",i.localize("editorActiveIndentGuide6","Color of the active editor indentation guides (6).")),M=(0,s.registerColor)("editorActiveLineNumber.foreground",{dark:"#c6c6c6",light:"#0B216F",hcDark:s.activeContrastBorder,hcLight:s.activeContrastBorder},i.localize("editorActiveLineNumber","Color of editor active line number"),!1,i.localize("deprecatedEditorActiveLineNumber","Id is deprecated. Use 'editorLineNumber.activeForeground' instead.")),z=(0,s.registerColor)("editorLineNumber.activeForeground",M,i.localize("editorActiveLineNumber","Color of editor active line number")),P=(0,s.registerColor)("editorLineNumber.dimmedForeground",null,i.localize("editorDimmedLineNumber","Color of the final editor line when editor.renderFinalNewline is set to dimmed.")),y=(0,s.registerColor)("editorRuler.foreground",{dark:"#5A5A5A",light:r.Color.lightgrey,hcDark:r.Color.white,hcLight:"#292929"},i.localize("editorRuler","Color of the editor rulers.")),F=(0,s.registerColor)("editorCodeLens.foreground",{dark:"#999999",light:"#919191",hcDark:"#999999",hcLight:"#292929"},i.localize("editorCodeLensForeground","Foreground color of editor CodeLens")),U=(0,s.registerColor)("editorBracketMatch.background",{dark:"#0064001a",light:"#0064001a",hcDark:"#0064001a",hcLight:"#0000"},i.localize("editorBracketMatchBackground","Background color behind matching brackets")),W=(0,s.registerColor)("editorBracketMatch.border",{dark:"#888",light:"#B9B9B9",hcDark:s.contrastBorder,hcLight:s.contrastBorder},i.localize("editorBracketMatchBorder","Color for matching brackets boxes")),G=(0,s.registerColor)("editorOverviewRuler.border",{dark:"#7f7f7f4d",light:"#7f7f7f4d",hcDark:"#7f7f7f4d",hcLight:"#666666"},i.localize("editorOverviewRulerBorder","Color of the overview ruler border.")),H=(0,s.registerColor)("editorOverviewRuler.background",null,i.localize("editorOverviewRulerBackground","Background color of the editor overview ruler.")),V=(0,s.registerColor)("editorGutter.background",s.editorBackground,i.localize("editorGutter","Background color of the editor gutter. The gutter contains the glyph margins and the line numbers.")),j=(0,s.registerColor)("editorUnnecessaryCode.border",{dark:null,light:null,hcDark:r.Color.fromHex("#fff").transparent(.8),hcLight:s.contrastBorder},i.localize("unnecessaryCodeBorder","Border color of unnecessary (unused) source code in the editor.")),q=(0,s.registerColor)("editorUnnecessaryCode.opacity",{dark:r.Color.fromHex("#000a"),light:r.Color.fromHex("#0007"),hcDark:null,hcLight:null},i.localize("unnecessaryCodeOpacity","Opacity of unnecessary (unused) source code in the editor. For example, \"#000000c0\" will render the code with 75% opacity. For high contrast themes, use the  'editorUnnecessaryCode.border' theme color to underline unnecessary code instead of fading it out.")),$=(0,s.registerColor)("editorGhostText.border",{dark:null,light:null,hcDark:r.Color.fromHex("#fff").transparent(.8),hcLight:r.Color.fromHex("#292929").transparent(.8)},i.localize("editorGhostTextBorder","Border color of ghost text in the editor.")),Z=(0,s.registerColor)("editorGhostText.foreground",{dark:r.Color.fromHex("#ffffff56"),light:r.Color.fromHex("#0007"),hcDark:null,hcLight:null},i.localize("editorGhostTextForeground","Foreground color of the ghost text in the editor.")),K=(0,s.registerColor)("editorGhostText.background",null,i.localize("editorGhostTextBackground","Background color of the ghost text in the editor.")),X=new r.Color(new r.RGBA(0,122,204,.6)),Q=(0,s.registerColor)("editorOverviewRuler.rangeHighlightForeground",X,i.localize("overviewRulerRangeHighlight","Overview ruler marker color for range highlights. The color must not be opaque so as not to hide underlying decorations."),!0),Y=(0,s.registerColor)("editorOverviewRuler.errorForeground",{dark:new r.Color(new r.RGBA(255,18,18,.7)),light:new r.Color(new r.RGBA(255,18,18,.7)),hcDark:new r.Color(new r.RGBA(255,50,50,1)),hcLight:"#B5200D"},i.localize("overviewRuleError","Overview ruler marker color for errors.")),J=(0,s.registerColor)("editorOverviewRuler.warningForeground",{dark:s.editorWarningForeground,light:s.editorWarningForeground,hcDark:s.editorWarningBorder,hcLight:s.editorWarningBorder},i.localize("overviewRuleWarning","Overview ruler marker color for warnings.")),ee=(0,s.registerColor)("editorOverviewRuler.infoForeground",{dark:s.editorInfoForeground,light:s.editorInfoForeground,hcDark:s.editorInfoBorder,hcLight:s.editorInfoBorder},i.localize("overviewRuleInfo","Overview ruler marker color for infos.")),te=(0,s.registerColor)("editorBracketHighlight.foreground1",{dark:"#FFD700",light:"#0431FAFF",hcDark:"#FFD700",hcLight:"#0431FAFF"},i.localize("editorBracketHighlightForeground1","Foreground color of brackets (1). Requires enabling bracket pair colorization.")),ne=(0,s.registerColor)("editorBracketHighlight.foreground2",{dark:"#DA70D6",light:"#319331FF",hcDark:"#DA70D6",hcLight:"#319331FF"},i.localize("editorBracketHighlightForeground2","Foreground color of brackets (2). Requires enabling bracket pair colorization.")),ie=(0,s.registerColor)("editorBracketHighlight.foreground3",{dark:"#179FFF",light:"#7B3814FF",hcDark:"#87CEFA",hcLight:"#7B3814FF"},i.localize("editorBracketHighlightForeground3","Foreground color of brackets (3). Requires enabling bracket pair colorization.")),re=(0,s.registerColor)("editorBracketHighlight.foreground4","#00000000",i.localize("editorBracketHighlightForeground4","Foreground color of brackets (4). Requires enabling bracket pair colorization.")),se=(0,s.registerColor)("editorBracketHighlight.foreground5","#00000000",i.localize("editorBracketHighlightForeground5","Foreground color of brackets (5). Requires enabling bracket pair colorization.")),oe=(0,s.registerColor)("editorBracketHighlight.foreground6","#00000000",i.localize("editorBracketHighlightForeground6","Foreground color of brackets (6). Requires enabling bracket pair colorization.")),ae=(0,s.registerColor)("editorBracketHighlight.unexpectedBracket.foreground",{dark:new r.Color(new r.RGBA(255,18,18,.8)),light:new r.Color(new r.RGBA(255,18,18,.8)),hcDark:"new Color(new RGBA(255, 50, 50, 1))",hcLight:"#B5200D"},i.localize("editorBracketHighlightUnexpectedBracketForeground","Foreground color of unexpected brackets.")),he=(0,s.registerColor)("editorBracketPairGuide.background1","#00000000",i.localize("editorBracketPairGuide.background1","Background color of inactive bracket pair guides (1). Requires enabling bracket pair guides.")),le=(0,s.registerColor)("editorBracketPairGuide.background2","#00000000",i.localize("editorBracketPairGuide.background2","Background color of inactive bracket pair guides (2). Requires enabling bracket pair guides.")),de=(0,s.registerColor)("editorBracketPairGuide.background3","#00000000",i.localize("editorBracketPairGuide.background3","Background color of inactive bracket pair guides (3). Requires enabling bracket pair guides.")),ce=(0,s.registerColor)("editorBracketPairGuide.background4","#00000000",i.localize("editorBracketPairGuide.background4","Background color of inactive bracket pair guides (4). Requires enabling bracket pair guides.")),ue=(0,s.registerColor)("editorBracketPairGuide.background5","#00000000",i.localize("editorBracketPairGuide.background5","Background color of inactive bracket pair guides (5). Requires enabling bracket pair guides.")),ge=(0,s.registerColor)("editorBracketPairGuide.background6","#00000000",i.localize("editorBracketPairGuide.background6","Background color of inactive bracket pair guides (6). Requires enabling bracket pair guides.")),fe=(0,s.registerColor)("editorBracketPairGuide.activeBackground1","#00000000",i.localize("editorBracketPairGuide.activeBackground1","Background color of active bracket pair guides (1). Requires enabling bracket pair guides.")),_e=(0,s.registerColor)("editorBracketPairGuide.activeBackground2","#00000000",i.localize("editorBracketPairGuide.activeBackground2","Background color of active bracket pair guides (2). Requires enabling bracket pair guides.")),pe=(0,s.registerColor)("editorBracketPairGuide.activeBackground3","#00000000",i.localize("editorBracketPairGuide.activeBackground3","Background color of active bracket pair guides (3). Requires enabling bracket pair guides.")),me=(0,s.registerColor)("editorBracketPairGuide.activeBackground4","#00000000",i.localize("editorBracketPairGuide.activeBackground4","Background color of active bracket pair guides (4). Requires enabling bracket pair guides.")),Ce=(0,s.registerColor)("editorBracketPairGuide.activeBackground5","#00000000",i.localize("editorBracketPairGuide.activeBackground5","Background color of active bracket pair guides (5). Requires enabling bracket pair guides.")),ke=(0,s.registerColor)("editorBracketPairGuide.activeBackground6","#00000000",i.localize("editorBracketPairGuide.activeBackground6","Background color of active bracket pair guides (6). Requires enabling bracket pair guides.")),be=(0,s.registerColor)("editorUnicodeHighlight.border",s.editorWarningForeground,i.localize("editorUnicodeHighlight.border","Border color used to highlight unicode characters.")),Le=(0,s.registerColor)("editorUnicodeHighlight.background",s.editorWarningBackground,i.localize("editorUnicodeHighlight.background","Background color used to highlight unicode characters."));(0,o.registerThemingParticipant)((e,t)=>{const n=e.getColor(s.editorBackground),i=e.getColor(a),r=i&&!i.isTransparent()?i:n;r&&t.addRule(`.monaco-editor .inputarea.ime-input { background-color: ${r}; }`)})},92802(e,t,n){n.r(t),n.d(t,{normalizeIndentation:()=>s});var i=n(60891),r=n(10492);function s(e,t,n){let s=i.firstNonWhitespaceIndex(e);return-1===s&&(s=e.length),function(e,t,n){let i=0;for(let n=0;n<e.length;n++)"\t"===e.charAt(n)?i=r.CursorColumns.nextIndentTabStop(i,t):i++;let s="";if(!n){const e=Math.floor(i/t);i%=t;for(let t=0;t<e;t++)s+="\t"}for(let e=0;e<i;e++)s+=" ";return s}(e.substring(0,s),t,n)+e.substring(s)}},15801(e,t,n){n.r(t),n.d(t,{StringBuilder:()=>u,decodeUTF16LE:()=>c,getPlatformTextDecoder:()=>d});var i=n(60891),r=n(69958),s=n(19031);let o,a,h;function l(){return o||(o=new TextDecoder("UTF-16LE")),o}function d(){return h||(h=r.isLittleEndian()?l():(a||(a=new TextDecoder("UTF-16BE")),a)),h}function c(e,t,n){const i=new Uint16Array(e.buffer,t,n);return n>0&&(65279===i[0]||65534===i[0])?function(e,t,n){const i=[];let r=0;for(let o=0;o<n;o++){const n=s.readUInt16LE(e,t);t+=2,i[r++]=String.fromCharCode(n)}return i.join("")}(e,t,n):l().decode(i)}class u{constructor(e){this._capacity=0|e,this._buffer=new Uint16Array(this._capacity),this._completedStrings=null,this._bufferLength=0}reset(){this._completedStrings=null,this._bufferLength=0}build(){return null!==this._completedStrings?(this._flushBuffer(),this._completedStrings.join("")):this._buildBuffer()}_buildBuffer(){if(0===this._bufferLength)return"";const e=new Uint16Array(this._buffer.buffer,0,this._bufferLength);return d().decode(e)}_flushBuffer(){const e=this._buildBuffer();this._bufferLength=0,null===this._completedStrings?this._completedStrings=[e]:this._completedStrings[this._completedStrings.length]=e}appendCharCode(e){const t=this._capacity-this._bufferLength;t<=1&&(0===t||i.isHighSurrogate(e))&&this._flushBuffer(),this._buffer[this._bufferLength++]=e}appendASCIICharCode(e){this._bufferLength===this._capacity&&this._flushBuffer(),this._buffer[this._bufferLength++]=e}appendString(e){const t=e.length;if(this._bufferLength+t>=this._capacity)return this._flushBuffer(),void(this._completedStrings[this._completedStrings.length]=e);for(let n=0;n<t;n++)this._buffer[this._bufferLength++]=e.charCodeAt(n)}}},5870(e,t,n){n.r(t),n.d(t,{TextChange:()=>o,compressConsecutiveTextChanges:()=>a});var i=n(19031),r=n(15801);function s(e){return e.replace(/\n/g,"\\n").replace(/\r/g,"\\r")}class o{get oldLength(){return this.oldText.length}get oldEnd(){return this.oldPosition+this.oldText.length}get newLength(){return this.newText.length}get newEnd(){return this.newPosition+this.newText.length}constructor(e,t,n,i){this.oldPosition=e,this.oldText=t,this.newPosition=n,this.newText=i}toString(){return 0===this.oldText.length?`(insert@${this.oldPosition} "${s(this.newText)}")`:0===this.newText.length?`(delete@${this.oldPosition} "${s(this.oldText)}")`:`(replace@${this.oldPosition} "${s(this.oldText)}" with "${s(this.newText)}")`}static _writeStringSize(e){return 4+2*e.length}static _writeString(e,t,n){const r=t.length;i.writeUInt32BE(e,r,n),n+=4;for(let s=0;s<r;s++)i.writeUInt16LE(e,t.charCodeAt(s),n),n+=2;return n}static _readString(e,t){const n=i.readUInt32BE(e,t);return t+=4,(0,r.decodeUTF16LE)(e,t,n)}writeSize(){return 8+o._writeStringSize(this.oldText)+o._writeStringSize(this.newText)}write(e,t){return i.writeUInt32BE(e,this.oldPosition,t),t+=4,i.writeUInt32BE(e,this.newPosition,t),t+=4,t=o._writeString(e,this.oldText,t),o._writeString(e,this.newText,t)}static read(e,t,n){const r=i.readUInt32BE(e,t);t+=4;const s=i.readUInt32BE(e,t);t+=4;const a=o._readString(e,t);t+=o._writeStringSize(a);const h=o._readString(e,t);return t+=o._writeStringSize(h),n.push(new o(r,a,s,h)),t}}function a(e,t){return null===e||0===e.length?t:new h(e,t).compress()}class h{constructor(e,t){this._prevEdits=e,this._currEdits=t,this._result=[],this._resultLen=0,this._prevLen=this._prevEdits.length,this._prevDeltaOffset=0,this._currLen=this._currEdits.length,this._currDeltaOffset=0}compress(){let e=0,t=0,n=this._getPrev(e),i=this._getCurr(t);for(;e<this._prevLen||t<this._currLen;){if(null===n){this._acceptCurr(i),i=this._getCurr(++t);continue}if(null===i){this._acceptPrev(n),n=this._getPrev(++e);continue}if(i.oldEnd<=n.newPosition){this._acceptCurr(i),i=this._getCurr(++t);continue}if(n.newEnd<=i.oldPosition){this._acceptPrev(n),n=this._getPrev(++e);continue}if(i.oldPosition<n.newPosition){const[e,t]=h._splitCurr(i,n.newPosition-i.oldPosition);this._acceptCurr(e),i=t;continue}if(n.newPosition<i.oldPosition){const[e,t]=h._splitPrev(n,i.oldPosition-n.newPosition);this._acceptPrev(e),n=t;continue}let r,s;if(i.oldEnd===n.newEnd)r=n,s=i,n=this._getPrev(++e),i=this._getCurr(++t);else if(i.oldEnd<n.newEnd){const[e,o]=h._splitPrev(n,i.oldLength);r=e,s=i,n=o,i=this._getCurr(++t)}else{const[t,o]=h._splitCurr(i,n.newLength);r=n,s=t,n=this._getPrev(++e),i=o}this._result[this._resultLen++]=new o(r.oldPosition,r.oldText,s.newPosition,s.newText),this._prevDeltaOffset+=r.newLength-r.oldLength,this._currDeltaOffset+=s.newLength-s.oldLength}const r=h._merge(this._result);return h._removeNoOps(r)}_acceptCurr(e){this._result[this._resultLen++]=h._rebaseCurr(this._prevDeltaOffset,e),this._currDeltaOffset+=e.newLength-e.oldLength}_getCurr(e){return e<this._currLen?this._currEdits[e]:null}_acceptPrev(e){this._result[this._resultLen++]=h._rebasePrev(this._currDeltaOffset,e),this._prevDeltaOffset+=e.newLength-e.oldLength}_getPrev(e){return e<this._prevLen?this._prevEdits[e]:null}static _rebaseCurr(e,t){return new o(t.oldPosition-e,t.oldText,t.newPosition,t.newText)}static _rebasePrev(e,t){return new o(t.oldPosition,t.oldText,t.newPosition+e,t.newText)}static _splitPrev(e,t){const n=e.newText.substr(0,t),i=e.newText.substr(t);return[new o(e.oldPosition,e.oldText,e.newPosition,n),new o(e.oldEnd,"",e.newPosition+t,i)]}static _splitCurr(e,t){const n=e.oldText.substr(0,t),i=e.oldText.substr(t);return[new o(e.oldPosition,n,e.newPosition,e.newText),new o(e.oldPosition+t,i,e.newEnd,"")]}static _merge(e){if(0===e.length)return e;const t=[];let n=0,i=e[0];for(let r=1;r<e.length;r++){const s=e[r];i.oldEnd===s.oldPosition?i=new o(i.oldPosition,i.oldText+s.oldText,i.newPosition,i.newText+s.newText):(t[n++]=i,i=s)}return t[n++]=i,t}static _removeNoOps(e){if(0===e.length)return e;const t=[];let n=0;for(let i=0;i<e.length;i++){const r=e[i];r.oldText!==r.newText&&(t[n++]=r)}return t}}},33099(e,t,n){n.r(t),n.d(t,{EDITOR_MODEL_DEFAULTS:()=>i});const i={tabSize:4,indentSize:4,insertSpaces:!0,detectIndentation:!0,trimAutoWhitespace:!0,largeFileOptimizations:!0,bracketPairColorizationOptions:{enabled:!0,independentColorPoolPerBracketType:!1}}},32125(e,t,n){var i;n.r(t),n.d(t,{AutoClosingPairs:()=>s,IndentAction:()=>i,StandardAutoClosingPairConditional:()=>r}),function(e){e[e.None=0]="None",e[e.Indent=1]="Indent",e[e.IndentOutdent=2]="IndentOutdent",e[e.Outdent=3]="Outdent"}(i||(i={}));class r{constructor(e){if(this._neutralCharacter=null,this._neutralCharacterSearched=!1,this.open=e.open,this.close=e.close,this._inString=!0,this._inComment=!0,this._inRegEx=!0,Array.isArray(e.notIn))for(let t=0,n=e.notIn.length;t<n;t++)switch(e.notIn[t]){case"string":this._inString=!1;break;case"comment":this._inComment=!1;break;case"regex":this._inRegEx=!1}}isOK(e){switch(e){case 0:return!0;case 1:return this._inComment;case 2:return this._inString;case 3:return this._inRegEx}}shouldAutoClose(e,t){if(0===e.getTokenCount())return!0;const n=e.findTokenIndexAtOffset(t-2),i=e.getStandardTokenType(n);return this.isOK(i)}_findNeutralCharacterInRange(e,t){for(let n=e;n<=t;n++){const e=String.fromCharCode(n);if(!this.open.includes(e)&&!this.close.includes(e))return e}return null}findNeutralCharacter(){return this._neutralCharacterSearched||(this._neutralCharacterSearched=!0,this._neutralCharacter||(this._neutralCharacter=this._findNeutralCharacterInRange(48,57)),this._neutralCharacter||(this._neutralCharacter=this._findNeutralCharacterInRange(97,122)),this._neutralCharacter||(this._neutralCharacter=this._findNeutralCharacterInRange(65,90))),this._neutralCharacter}}class s{constructor(e){this.autoClosingPairsOpenByStart=new Map,this.autoClosingPairsOpenByEnd=new Map,this.autoClosingPairsCloseByStart=new Map,this.autoClosingPairsCloseByEnd=new Map,this.autoClosingPairsCloseSingleChar=new Map;for(const t of e)o(this.autoClosingPairsOpenByStart,t.open.charAt(0),t),o(this.autoClosingPairsOpenByEnd,t.open.charAt(t.open.length-1),t),o(this.autoClosingPairsCloseByStart,t.close.charAt(0),t),o(this.autoClosingPairsCloseByEnd,t.close.charAt(t.close.length-1),t),1===t.close.length&&1===t.open.length&&o(this.autoClosingPairsCloseSingleChar,t.close,t)}}function o(e,t,n){e.has(t)?e.get(t).push(n):e.set(t,[n])}},53439(e,t,n){n.d(t,{ILanguageConfigurationService:()=>O,LanguageConfigurationChangeEvent:()=>y,LanguageConfigurationRegistry:()=>F,LanguageConfigurationService:()=>N,LanguageConfigurationServiceChangeEvent:()=>B,ResolvedLanguageConfiguration:()=>U,getIndentationAtPosition:()=>D}),n.r(t);var i=n(22573),r=n(32293),s=n(60891),o=n(58561),a=n(32125);class h{static{this.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES=";:.,=}])> \n\t"}static{this.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS="'\"`;:.,=}])> \n\t"}constructor(e){if(e.autoClosingPairs?this._autoClosingPairs=e.autoClosingPairs.map(e=>new a.StandardAutoClosingPairConditional(e)):e.brackets?this._autoClosingPairs=e.brackets.map(e=>new a.StandardAutoClosingPairConditional({open:e[0],close:e[1]})):this._autoClosingPairs=[],e.__electricCharacterSupport&&e.__electricCharacterSupport.docComment){const t=e.__electricCharacterSupport.docComment;this._autoClosingPairs.push(new a.StandardAutoClosingPairConditional({open:t.open,close:t.close||""}))}this._autoCloseBeforeForQuotes="string"==typeof e.autoCloseBefore?e.autoCloseBefore:h.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES,this._autoCloseBeforeForBrackets="string"==typeof e.autoCloseBefore?e.autoCloseBefore:h.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS,this._surroundingPairs=e.surroundingPairs||this._autoClosingPairs}getAutoClosingPairs(){return this._autoClosingPairs}getAutoCloseBeforeSet(e){return e?this._autoCloseBeforeForQuotes:this._autoCloseBeforeForBrackets}getSurroundingPairs(){return this._surroundingPairs}}var l=n(6995),d=n(94457),c=n(24979);class u{constructor(e){this._richEditBrackets=e}getElectricCharacters(){const e=[];if(this._richEditBrackets)for(const t of this._richEditBrackets.brackets)for(const n of t.close){const t=n.charAt(n.length-1);e.push(t)}return(0,l.distinct)(e)}onElectricCharacter(e,t,n){if(!this._richEditBrackets||0===this._richEditBrackets.brackets.length)return null;const i=t.findTokenIndexAtOffset(n-1);if((0,d.ignoreBracketsInToken)(t.getStandardTokenType(i)))return null;const r=this._richEditBrackets.reversedRegex,s=t.getLineContent().substring(0,n-1)+e,o=c.BracketsUtils.findPrevBracketInRange(r,1,s,0,s.length);if(!o)return null;const a=s.substring(o.startColumn-1,o.endColumn-1).toLowerCase();if(this._richEditBrackets.textIsOpenBracket[a])return null;const h=t.getActualLineContentBefore(o.startColumn-1);return/^\s*$/.test(h)?{matchOpenBracket:a}:null}}function g(e){return e.global&&(e.lastIndex=0),!0}class f{constructor(e){this._indentationRules=e}shouldIncrease(e){return!!(this._indentationRules&&this._indentationRules.increaseIndentPattern&&g(this._indentationRules.increaseIndentPattern)&&this._indentationRules.increaseIndentPattern.test(e))}shouldDecrease(e){return!!(this._indentationRules&&this._indentationRules.decreaseIndentPattern&&g(this._indentationRules.decreaseIndentPattern)&&this._indentationRules.decreaseIndentPattern.test(e))}shouldIndentNextLine(e){return!!(this._indentationRules&&this._indentationRules.indentNextLinePattern&&g(this._indentationRules.indentNextLinePattern)&&this._indentationRules.indentNextLinePattern.test(e))}shouldIgnore(e){return!!(this._indentationRules&&this._indentationRules.unIndentedLinePattern&&g(this._indentationRules.unIndentedLinePattern)&&this._indentationRules.unIndentedLinePattern.test(e))}getIndentMetadata(e){let t=0;return this.shouldIncrease(e)&&(t+=1),this.shouldDecrease(e)&&(t+=2),this.shouldIndentNextLine(e)&&(t+=4),this.shouldIgnore(e)&&(t+=8),t}}var _=n(73226);class p{constructor(e){(e=e||{}).brackets=e.brackets||[["(",")"],["{","}"],["[","]"]],this._brackets=[],e.brackets.forEach(e=>{const t=p._createOpenBracketRegExp(e[0]),n=p._createCloseBracketRegExp(e[1]);t&&n&&this._brackets.push({open:e[0],openRegExp:t,close:e[1],closeRegExp:n})}),this._regExpRules=e.onEnterRules||[]}onEnter(e,t,n,i){if(e>=3)for(let e=0,r=this._regExpRules.length;e<r;e++){const r=this._regExpRules[e];if([{reg:r.beforeText,text:n},{reg:r.afterText,text:i},{reg:r.previousLineText,text:t}].every(e=>!e.reg||(e.reg.lastIndex=0,e.reg.test(e.text))))return r.action}if(e>=2&&n.length>0&&i.length>0)for(let e=0,t=this._brackets.length;e<t;e++){const t=this._brackets[e];if(t.openRegExp.test(n)&&t.closeRegExp.test(i))return{indentAction:a.IndentAction.IndentOutdent}}if(e>=2&&n.length>0)for(let e=0,t=this._brackets.length;e<t;e++)if(this._brackets[e].openRegExp.test(n))return{indentAction:a.IndentAction.Indent};return null}static _createOpenBracketRegExp(e){let t=s.escapeRegExpCharacters(e);return/\B/.test(t.charAt(0))||(t="\\b"+t),t+="\\s*$",p._safeRegExp(t)}static _createCloseBracketRegExp(e){let t=s.escapeRegExpCharacters(e);return/\B/.test(t.charAt(t.length-1))||(t+="\\b"),t="^\\s*"+t,p._safeRegExp(t)}static _safeRegExp(e){try{return new RegExp(e)}catch(e){return(0,_.onUnexpectedError)(e),null}}}var m=n(35184),C=n(64602),k=n(49471),b=n(17531),L=n(85838),I=n(97747);class T{constructor(e,t){this.languageId=e;const n=t.brackets?S(t.brackets):[],i=new I.CachedFunction(e=>{const t=new Set;return{info:new x(this,e,t),closing:t}}),r=new I.CachedFunction(e=>{const t=new Set,n=new Set;return{info:new E(this,e,t,n),opening:t,openingColorized:n}});for(const[e,t]of n){const n=i.get(e),s=r.get(t);n.closing.add(s.info),s.opening.add(n.info)}const s=t.colorizedBracketPairs?S(t.colorizedBracketPairs):n.filter(e=>!("<"===e[0]&&">"===e[1]));for(const[e,t]of s){const n=i.get(e),s=r.get(t);n.closing.add(s.info),s.openingColorized.add(n.info),s.opening.add(n.info)}this._openingBrackets=new Map([...i.cachedValues].map(([e,t])=>[e,t.info])),this._closingBrackets=new Map([...r.cachedValues].map(([e,t])=>[e,t.info]))}get openingBrackets(){return[...this._openingBrackets.values()]}get closingBrackets(){return[...this._closingBrackets.values()]}getOpeningBracketInfo(e){return this._openingBrackets.get(e)}getClosingBracketInfo(e){return this._closingBrackets.get(e)}getBracketInfo(e){return this.getOpeningBracketInfo(e)||this.getClosingBracketInfo(e)}getBracketRegExp(e){const t=Array.from([...this._openingBrackets.keys(),...this._closingBrackets.keys()]);return(0,c.createBracketOrRegExp)(t,e)}}function S(e){return e.filter(([e,t])=>""!==e&&""!==t)}class v{constructor(e,t){this.config=e,this.bracketText=t}get languageId(){return this.config.languageId}}class x extends v{constructor(e,t,n){super(e,t),this.openedBrackets=n,this.isOpeningBracket=!0}}class E extends v{constructor(e,t,n,i){super(e,t),this.openingBrackets=n,this.openingColorizedBrackets=i,this.isOpeningBracket=!1}closes(e){return e.config===this.config&&this.openingBrackets.has(e)}closesColorized(e){return e.config===this.config&&this.openingColorizedBrackets.has(e)}getOpeningBrackets(){return[...this.openingBrackets]}}var w=function(e,t){return function(n,i){t(n,i,e)}};class B{constructor(e){this.languageId=e}affects(e){return!this.languageId||this.languageId===e}}const O=(0,m.createDecorator)("languageConfigurationService");let N=class extends r.Disposable{constructor(e,t){super(),this.configurationService=e,this.languageService=t,this._registry=this._register(new F),this.onDidChangeEmitter=this._register(new i.Emitter),this.onDidChange=this.onDidChangeEmitter.event,this.configurations=new Map;const n=new Set(Object.values(R));this._register(this.configurationService.onDidChangeConfiguration(e=>{const t=e.change.keys.some(e=>n.has(e)),i=e.change.overrides.filter(([e,t])=>t.some(e=>n.has(e))).map(([e])=>e);if(t)this.configurations.clear(),this.onDidChangeEmitter.fire(new B(void 0));else for(const e of i)this.languageService.isRegisteredLanguageId(e)&&(this.configurations.delete(e),this.onDidChangeEmitter.fire(new B(e)))})),this._register(this._registry.onDidChange(e=>{this.configurations.delete(e.languageId),this.onDidChangeEmitter.fire(new B(e.languageId))}))}register(e,t,n){return this._registry.register(e,t,n)}getLanguageConfiguration(e){let t=this.configurations.get(e);return t||(t=function(e,t,n,i){let r=t.getLanguageConfiguration(e);if(!r){if(!i.isRegisteredLanguageId(e))return new U(e,{});r=new U(e,{})}const s=function(e,t){const n=t.getValue(R.brackets,{overrideIdentifier:e}),i=t.getValue(R.colorizedBracketPairs,{overrideIdentifier:e});return{brackets:A(n),colorizedBracketPairs:A(i)}}(r.languageId,n),o=z([r.underlyingConfig,s]);return new U(r.languageId,o)}(e,this._registry,this.configurationService,this.languageService),this.configurations.set(e,t)),t}};N=function(e,t,n,i){var r,s=arguments.length,o=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(s<3?r(o):s>3?r(t,n,o):r(t,n))||o);return s>3&&o&&Object.defineProperty(t,n,o),o}([w(0,C.IConfigurationService),w(1,k.ILanguageService)],N);const R={brackets:"editor.language.brackets",colorizedBracketPairs:"editor.language.colorizedBracketPairs"};function A(e){if(Array.isArray(e))return e.map(e=>{if(Array.isArray(e)&&2===e.length)return[e[0],e[1]]}).filter(e=>!!e)}function D(e,t,n){const i=e.getLineContent(t);let r=s.getLeadingWhitespace(i);return r.length>n-1&&(r=r.substring(0,n-1)),r}class M{constructor(e){this.languageId=e,this._resolved=null,this._entries=[],this._order=0,this._resolved=null}register(e,t){const n=new P(e,t,++this._order);return this._entries.push(n),this._resolved=null,(0,r.toDisposable)(()=>{for(let e=0;e<this._entries.length;e++)if(this._entries[e]===n){this._entries.splice(e,1),this._resolved=null;break}})}getResolvedConfiguration(){if(!this._resolved){const e=this._resolve();e&&(this._resolved=new U(this.languageId,e))}return this._resolved}_resolve(){return 0===this._entries.length?null:(this._entries.sort(P.cmp),z(this._entries.map(e=>e.configuration)))}}function z(e){let t={comments:void 0,brackets:void 0,wordPattern:void 0,indentationRules:void 0,onEnterRules:void 0,autoClosingPairs:void 0,surroundingPairs:void 0,autoCloseBefore:void 0,folding:void 0,colorizedBracketPairs:void 0,__electricCharacterSupport:void 0};for(const n of e)t={comments:n.comments||t.comments,brackets:n.brackets||t.brackets,wordPattern:n.wordPattern||t.wordPattern,indentationRules:n.indentationRules||t.indentationRules,onEnterRules:n.onEnterRules||t.onEnterRules,autoClosingPairs:n.autoClosingPairs||t.autoClosingPairs,surroundingPairs:n.surroundingPairs||t.surroundingPairs,autoCloseBefore:n.autoCloseBefore||t.autoCloseBefore,folding:n.folding||t.folding,colorizedBracketPairs:n.colorizedBracketPairs||t.colorizedBracketPairs,__electricCharacterSupport:n.__electricCharacterSupport||t.__electricCharacterSupport};return t}class P{constructor(e,t,n){this.configuration=e,this.priority=t,this.order=n}static cmp(e,t){return e.priority===t.priority?e.order-t.order:e.priority-t.priority}}class y{constructor(e){this.languageId=e}}class F extends r.Disposable{constructor(){super(),this._entries=new Map,this._onDidChange=this._register(new i.Emitter),this.onDidChange=this._onDidChange.event,this._register(this.register(L.PLAINTEXT_LANGUAGE_ID,{brackets:[["(",")"],["[","]"],["{","}"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],colorizedBracketPairs:[],folding:{offSide:!0}},0))}register(e,t,n=0){let i=this._entries.get(e);i||(i=new M(e),this._entries.set(e,i));const s=i.register(t,n);return this._onDidChange.fire(new y(e)),(0,r.toDisposable)(()=>{s.dispose(),this._onDidChange.fire(new y(e))})}getLanguageConfiguration(e){const t=this._entries.get(e);return t?.getResolvedConfiguration()||null}}class U{constructor(e,t){this.languageId=e,this.underlyingConfig=t,this._brackets=null,this._electricCharacter=null,this._onEnterSupport=this.underlyingConfig.brackets||this.underlyingConfig.indentationRules||this.underlyingConfig.onEnterRules?new p(this.underlyingConfig):null,this.comments=U._handleComments(this.underlyingConfig),this.characterPair=new h(this.underlyingConfig),this.wordDefinition=this.underlyingConfig.wordPattern||o.DEFAULT_WORD_REGEXP,this.indentationRules=this.underlyingConfig.indentationRules,this.underlyingConfig.indentationRules?this.indentRulesSupport=new f(this.underlyingConfig.indentationRules):this.indentRulesSupport=null,this.foldingRules=this.underlyingConfig.folding||{},this.bracketsNew=new T(e,this.underlyingConfig)}getWordDefinition(){return(0,o.ensureValidWordDefinition)(this.wordDefinition)}get brackets(){return!this._brackets&&this.underlyingConfig.brackets&&(this._brackets=new c.RichEditBrackets(this.languageId,this.underlyingConfig.brackets)),this._brackets}get electricCharacter(){return this._electricCharacter||(this._electricCharacter=new u(this.brackets)),this._electricCharacter}onEnter(e,t,n,i){return this._onEnterSupport?this._onEnterSupport.onEnter(e,t,n,i):null}getAutoClosingPairs(){return new a.AutoClosingPairs(this.characterPair.getAutoClosingPairs())}getAutoCloseBeforeSet(e){return this.characterPair.getAutoCloseBeforeSet(e)}getSurroundingPairs(){return this.characterPair.getSurroundingPairs()}static _handleComments(e){const t=e.comments;if(!t)return null;const n={};if(t.lineComment&&(n.lineCommentToken=t.lineComment),t.blockComment){const[e,i]=t.blockComment;n.blockCommentStartToken=e,n.blockCommentEndToken=i}return n}}(0,b.registerSingleton)(O,N,1)},37229(e,t,n){n.r(t),n.d(t,{NullState:()=>r,nullTokenize:()=>s,nullTokenizeEncoded:()=>o});var i=n(51753);const r=new class{clone(){return this}equals(e){return this===e}};function s(e,t){return new i.TokenizationResult([new i.Token(0,"",e)],t)}function o(e,t){const n=new Uint32Array(2);return n[0]=0,n[1]=(32768|e|2<<24)>>>0,new i.EncodedTokenizationResult(n,null===t?r:t)}},94457(e,t,n){function i(e,t){const n=e.getCount(),i=e.findTokenIndexAtOffset(t),s=e.getLanguageId(i);let o=i;for(;o+1<n&&e.getLanguageId(o+1)===s;)o++;let a=i;for(;a>0&&e.getLanguageId(a-1)===s;)a--;return new r(e,s,a,o+1,e.getStartOffset(a),e.getEndOffset(o))}n.r(t),n.d(t,{ScopedLineTokens:()=>r,createScopedLineTokens:()=>i,ignoreBracketsInToken:()=>s});class r{constructor(e,t,n,i,r,s){this._scopedLineTokensBrand=void 0,this._actual=e,this.languageId=t,this._firstTokenIndex=n,this._lastTokenIndex=i,this.firstCharOffset=r,this._lastCharOffset=s,this.languageIdCodec=e.languageIdCodec}getLineContent(){return this._actual.getLineContent().substring(this.firstCharOffset,this._lastCharOffset)}getLineLength(){return this._lastCharOffset-this.firstCharOffset}getActualLineContentBefore(e){return this._actual.getLineContent().substring(0,this.firstCharOffset+e)}getTokenCount(){return this._lastTokenIndex-this._firstTokenIndex}findTokenIndexAtOffset(e){return this._actual.findTokenIndexAtOffset(e+this.firstCharOffset)-this._firstTokenIndex}getStandardTokenType(e){return this._actual.getStandardTokenType(e+this._firstTokenIndex)}toIViewLineTokens(){return this._actual.sliceAndInflate(this.firstCharOffset,this._lastCharOffset,0)}}function s(e){return!!(3&e)}},24979(e,t,n){n.r(t),n.d(t,{BracketsUtils:()=>f,RichEditBracket:()=>o,RichEditBrackets:()=>a,createBracketOrRegExp:()=>u});var i=n(60891),r=n(15801),s=n(81304);class o{constructor(e,t,n,i,r,s){this._richEditBracketBrand=void 0,this.languageId=e,this.index=t,this.open=n,this.close=i,this.forwardRegex=r,this.reversedRegex=s,this._openSet=o._toSet(this.open),this._closeSet=o._toSet(this.close)}isOpen(e){return this._openSet.has(e)}isClose(e){return this._closeSet.has(e)}static _toSet(e){const t=new Set;for(const n of e)t.add(n);return t}}class a{constructor(e,t){this._richEditBracketsBrand=void 0;const n=function(e){const t=e.length;e=e.map(e=>[e[0].toLowerCase(),e[1].toLowerCase()]);const n=[];for(let e=0;e<t;e++)n[e]=e;const i=(e,t)=>{const[n,i]=e,[r,s]=t;return n===r||n===s||i===r||i===s},r=(e,i)=>{const r=Math.min(e,i),s=Math.max(e,i);for(let e=0;e<t;e++)n[e]===s&&(n[e]=r)};for(let s=0;s<t;s++){const o=e[s];for(let a=s+1;a<t;a++)i(o,e[a])&&r(n[s],n[a])}const s=[];for(let i=0;i<t;i++){const r=[],o=[];for(let s=0;s<t;s++)if(n[s]===i){const[t,n]=e[s];r.push(t),o.push(n)}r.length>0&&s.push({open:r,close:o})}return s}(t);this.brackets=n.map((t,i)=>new o(e,i,t.open,t.close,function(e,t,n,i){let r=[];r=r.concat(e),r=r.concat(t);for(let e=0,t=r.length;e<t;e++)h(r[e],n,i,r);return r=d(r),r.sort(l),r.reverse(),u(r)}(t.open,t.close,n,i),function(e,t,n,i){let r=[];r=r.concat(e),r=r.concat(t);for(let e=0,t=r.length;e<t;e++)h(r[e],n,i,r);return r=d(r),r.sort(l),r.reverse(),u(r.map(g))}(t.open,t.close,n,i))),this.forwardRegex=function(e){let t=[];for(const n of e){for(const e of n.open)t.push(e);for(const e of n.close)t.push(e)}return t=d(t),u(t)}(this.brackets),this.reversedRegex=function(e){let t=[];for(const n of e){for(const e of n.open)t.push(e);for(const e of n.close)t.push(e)}return t=d(t),u(t.map(g))}(this.brackets),this.textIsBracket={},this.textIsOpenBracket={},this.maxBracketLength=0;for(const e of this.brackets){for(const t of e.open)this.textIsBracket[t]=e,this.textIsOpenBracket[t]=!0,this.maxBracketLength=Math.max(this.maxBracketLength,t.length);for(const t of e.close)this.textIsBracket[t]=e,this.textIsOpenBracket[t]=!1,this.maxBracketLength=Math.max(this.maxBracketLength,t.length)}}}function h(e,t,n,i){for(let r=0,s=t.length;r<s;r++){if(r===n)continue;const s=t[r];for(const t of s.open)t.indexOf(e)>=0&&i.push(t);for(const t of s.close)t.indexOf(e)>=0&&i.push(t)}}function l(e,t){return e.length-t.length}function d(e){if(e.length<=1)return e;const t=[],n=new Set;for(const i of e)n.has(i)||(t.push(i),n.add(i));return t}function c(e){const t=/^[\w ]+$/.test(e);return e=i.escapeRegExpCharacters(e),t?`\\b${e}\\b`:e}function u(e,t){const n=`(${e.map(c).join(")|(")})`;return i.createRegExp(n,!0,t)}const g=function(){let e=null,t=null;return function(n){return e!==n&&(e=n,t=function(e){const t=new Uint16Array(e.length);let n=0;for(let i=e.length-1;i>=0;i--)t[n++]=e.charCodeAt(i);return r.getPlatformTextDecoder().decode(t)}(e)),t}}();class f{static _findPrevBracketInText(e,t,n,i){const r=n.match(e);if(!r)return null;const o=n.length-(r.index||0),a=r[0].length,h=i+o;return new s.Range(t,h-a+1,t,h+1)}static findPrevBracketInRange(e,t,n,i,r){const s=g(n).substring(n.length-r,n.length-i);return this._findPrevBracketInText(e,t,s,i)}static findNextBracketInText(e,t,n,i){const r=n.match(e);if(!r)return null;const o=r.index||0,a=r[0].length;if(0===a)return null;const h=i+o;return new s.Range(t,h+1,t,h+1+a)}static findNextBracketInRange(e,t,n,i,r){const s=n.substring(i,r);return this.findNextBracketInText(e,t,s,i)}}},26610(e,t,n){n.r(t),n.d(t,{BracketAstNode:()=>m,InvalidBracketAstNode:()=>C,ListAstNode:()=>l,PairAstNode:()=>h,TextAstNode:()=>p});var i=n(73226),r=n(10492),s=n(87440),o=n(969);class a{get length(){return this._length}constructor(e){this._length=e}}class h extends a{static create(e,t,n){let i=e.length;return t&&(i=(0,s.lengthAdd)(i,t.length)),n&&(i=(0,s.lengthAdd)(i,n.length)),new h(i,e,t,n,t?t.missingOpeningBracketIds:o.SmallImmutableSet.getEmpty())}get kind(){return 2}get listHeight(){return 0}get childrenLength(){return 3}getChild(e){switch(e){case 0:return this.openingBracket;case 1:return this.child;case 2:return this.closingBracket}throw new Error("Invalid child index")}get children(){const e=[];return e.push(this.openingBracket),this.child&&e.push(this.child),this.closingBracket&&e.push(this.closingBracket),e}constructor(e,t,n,i,r){super(e),this.openingBracket=t,this.child=n,this.closingBracket=i,this.missingOpeningBracketIds=r}canBeReused(e){return null!==this.closingBracket&&!e.intersects(this.missingOpeningBracketIds)}deepClone(){return new h(this.length,this.openingBracket.deepClone(),this.child&&this.child.deepClone(),this.closingBracket&&this.closingBracket.deepClone(),this.missingOpeningBracketIds)}computeMinIndentation(e,t){return this.child?this.child.computeMinIndentation((0,s.lengthAdd)(e,this.openingBracket.length),t):Number.MAX_SAFE_INTEGER}}class l extends a{static create23(e,t,n,i=!1){let r=e.length,o=e.missingOpeningBracketIds;if(e.listHeight!==t.listHeight)throw new Error("Invalid list heights");if(r=(0,s.lengthAdd)(r,t.length),o=o.merge(t.missingOpeningBracketIds),n){if(e.listHeight!==n.listHeight)throw new Error("Invalid list heights");r=(0,s.lengthAdd)(r,n.length),o=o.merge(n.missingOpeningBracketIds)}return i?new c(r,e.listHeight+1,e,t,n,o):new d(r,e.listHeight+1,e,t,n,o)}static getEmpty(){return new g(s.lengthZero,0,[],o.SmallImmutableSet.getEmpty())}get kind(){return 4}get missingOpeningBracketIds(){return this._missingOpeningBracketIds}constructor(e,t,n){super(e),this.listHeight=t,this._missingOpeningBracketIds=n,this.cachedMinIndentation=-1}throwIfImmutable(){}makeLastElementMutable(){this.throwIfImmutable();const e=this.childrenLength;if(0===e)return;const t=this.getChild(e-1),n=4===t.kind?t.toMutable():t;return t!==n&&this.setChild(e-1,n),n}makeFirstElementMutable(){if(this.throwIfImmutable(),0===this.childrenLength)return;const e=this.getChild(0),t=4===e.kind?e.toMutable():e;return e!==t&&this.setChild(0,t),t}canBeReused(e){if(e.intersects(this.missingOpeningBracketIds))return!1;if(0===this.childrenLength)return!1;let t=this;for(;4===t.kind;){const e=t.childrenLength;if(0===e)throw new i.BugIndicatingError;t=t.getChild(e-1)}return t.canBeReused(e)}handleChildrenChanged(){this.throwIfImmutable();const e=this.childrenLength;let t=this.getChild(0).length,n=this.getChild(0).missingOpeningBracketIds;for(let i=1;i<e;i++){const e=this.getChild(i);t=(0,s.lengthAdd)(t,e.length),n=n.merge(e.missingOpeningBracketIds)}this._length=t,this._missingOpeningBracketIds=n,this.cachedMinIndentation=-1}computeMinIndentation(e,t){if(-1!==this.cachedMinIndentation)return this.cachedMinIndentation;let n=Number.MAX_SAFE_INTEGER,i=e;for(let e=0;e<this.childrenLength;e++){const r=this.getChild(e);r&&(n=Math.min(n,r.computeMinIndentation(i,t)),i=(0,s.lengthAdd)(i,r.length))}return this.cachedMinIndentation=n,n}}class d extends l{get childrenLength(){return null!==this._item3?3:2}getChild(e){switch(e){case 0:return this._item1;case 1:return this._item2;case 2:return this._item3}throw new Error("Invalid child index")}setChild(e,t){switch(e){case 0:return void(this._item1=t);case 1:return void(this._item2=t);case 2:return void(this._item3=t)}throw new Error("Invalid child index")}get children(){return this._item3?[this._item1,this._item2,this._item3]:[this._item1,this._item2]}get item1(){return this._item1}get item2(){return this._item2}get item3(){return this._item3}constructor(e,t,n,i,r,s){super(e,t,s),this._item1=n,this._item2=i,this._item3=r}deepClone(){return new d(this.length,this.listHeight,this._item1.deepClone(),this._item2.deepClone(),this._item3?this._item3.deepClone():null,this.missingOpeningBracketIds)}appendChildOfSameHeight(e){if(this._item3)throw new Error("Cannot append to a full (2,3) tree node");this.throwIfImmutable(),this._item3=e,this.handleChildrenChanged()}unappendChild(){if(!this._item3)throw new Error("Cannot remove from a non-full (2,3) tree node");this.throwIfImmutable();const e=this._item3;return this._item3=null,this.handleChildrenChanged(),e}prependChildOfSameHeight(e){if(this._item3)throw new Error("Cannot prepend to a full (2,3) tree node");this.throwIfImmutable(),this._item3=this._item2,this._item2=this._item1,this._item1=e,this.handleChildrenChanged()}unprependChild(){if(!this._item3)throw new Error("Cannot remove from a non-full (2,3) tree node");this.throwIfImmutable();const e=this._item1;return this._item1=this._item2,this._item2=this._item3,this._item3=null,this.handleChildrenChanged(),e}toMutable(){return this}}class c extends d{toMutable(){return new d(this.length,this.listHeight,this.item1,this.item2,this.item3,this.missingOpeningBracketIds)}throwIfImmutable(){throw new Error("this instance is immutable")}}class u extends l{get childrenLength(){return this._children.length}getChild(e){return this._children[e]}setChild(e,t){this._children[e]=t}get children(){return this._children}constructor(e,t,n,i){super(e,t,i),this._children=n}deepClone(){const e=new Array(this._children.length);for(let t=0;t<this._children.length;t++)e[t]=this._children[t].deepClone();return new u(this.length,this.listHeight,e,this.missingOpeningBracketIds)}appendChildOfSameHeight(e){this.throwIfImmutable(),this._children.push(e),this.handleChildrenChanged()}unappendChild(){this.throwIfImmutable();const e=this._children.pop();return this.handleChildrenChanged(),e}prependChildOfSameHeight(e){this.throwIfImmutable(),this._children.unshift(e),this.handleChildrenChanged()}unprependChild(){this.throwIfImmutable();const e=this._children.shift();return this.handleChildrenChanged(),e}toMutable(){return this}}class g extends u{toMutable(){return new u(this.length,this.listHeight,[...this.children],this.missingOpeningBracketIds)}throwIfImmutable(){throw new Error("this instance is immutable")}}const f=[];class _ extends a{get listHeight(){return 0}get childrenLength(){return 0}getChild(e){return null}get children(){return f}deepClone(){return this}}class p extends _{get kind(){return 0}get missingOpeningBracketIds(){return o.SmallImmutableSet.getEmpty()}canBeReused(e){return!0}computeMinIndentation(e,t){const n=(0,s.lengthToObj)(e),i=(0===n.columnCount?n.lineCount:n.lineCount+1)+1,o=(0,s.lengthGetLineCount)((0,s.lengthAdd)(e,this.length))+1;let a=Number.MAX_SAFE_INTEGER;for(let e=i;e<=o;e++){const n=t.getLineFirstNonWhitespaceColumn(e),i=t.getLineContent(e);if(0===n)continue;const s=r.CursorColumns.visibleColumnFromColumn(i,n,t.getOptions().tabSize);a=Math.min(a,s)}return a}}class m extends _{static create(e,t,n){return new m(e,t,n)}get kind(){return 1}get missingOpeningBracketIds(){return o.SmallImmutableSet.getEmpty()}constructor(e,t,n){super(e),this.bracketInfo=t,this.bracketIds=n}get text(){return this.bracketInfo.bracketText}get languageId(){return this.bracketInfo.languageId}canBeReused(e){return!1}computeMinIndentation(e,t){return Number.MAX_SAFE_INTEGER}}class C extends _{get kind(){return 3}constructor(e,t){super(t),this.missingOpeningBracketIds=e}canBeReused(e){return!e.intersects(this.missingOpeningBracketIds)}computeMinIndentation(e,t){return Number.MAX_SAFE_INTEGER}}},24717(e,t,n){n.r(t),n.d(t,{BeforeEditPositionMapper:()=>o,TextEditInfo:()=>s});var i=n(81304),r=n(87440);class s{static fromModelContentChanges(e){return e.map(e=>{const t=i.Range.lift(e.range);return new s((0,r.positionToLength)(t.getStartPosition()),(0,r.positionToLength)(t.getEndPosition()),(0,r.lengthOfString)(e.text))}).reverse()}constructor(e,t,n){this.startOffset=e,this.endOffset=t,this.newLength=n}toString(){return`[${(0,r.lengthToObj)(this.startOffset)}...${(0,r.lengthToObj)(this.endOffset)}) -> ${(0,r.lengthToObj)(this.newLength)}`}}class o{constructor(e){this.nextEditIdx=0,this.deltaOldToNewLineCount=0,this.deltaOldToNewColumnCount=0,this.deltaLineIdxInOld=-1,this.edits=e.map(e=>a.from(e))}getOffsetBeforeChange(e){return this.adjustNextEdit(e),this.translateCurToOld(e)}getDistanceToNextChange(e){this.adjustNextEdit(e);const t=this.edits[this.nextEditIdx],n=t?this.translateOldToCur(t.offsetObj):null;return null===n?null:(0,r.lengthDiffNonNegative)(e,n)}translateOldToCur(e){return e.lineCount===this.deltaLineIdxInOld?(0,r.toLength)(e.lineCount+this.deltaOldToNewLineCount,e.columnCount+this.deltaOldToNewColumnCount):(0,r.toLength)(e.lineCount+this.deltaOldToNewLineCount,e.columnCount)}translateCurToOld(e){const t=(0,r.lengthToObj)(e);return t.lineCount-this.deltaOldToNewLineCount===this.deltaLineIdxInOld?(0,r.toLength)(t.lineCount-this.deltaOldToNewLineCount,t.columnCount-this.deltaOldToNewColumnCount):(0,r.toLength)(t.lineCount-this.deltaOldToNewLineCount,t.columnCount)}adjustNextEdit(e){for(;this.nextEditIdx<this.edits.length;){const t=this.edits[this.nextEditIdx],n=this.translateOldToCur(t.endOffsetAfterObj);if(!(0,r.lengthLessThanEqual)(n,e))break;{this.nextEditIdx++;const e=(0,r.lengthToObj)(n),i=(0,r.lengthToObj)(this.translateOldToCur(t.endOffsetBeforeObj)),s=e.lineCount-i.lineCount;this.deltaOldToNewLineCount+=s;const o=this.deltaLineIdxInOld===t.endOffsetBeforeObj.lineCount?this.deltaOldToNewColumnCount:0,a=e.columnCount-i.columnCount;this.deltaOldToNewColumnCount=o+a,this.deltaLineIdxInOld=t.endOffsetBeforeObj.lineCount}}}}class a{static from(e){return new a(e.startOffset,e.endOffset,e.newLength)}constructor(e,t,n){this.endOffsetBeforeObj=(0,r.lengthToObj)(t),this.endOffsetAfterObj=(0,r.lengthToObj)((0,r.lengthAdd)(e,n)),this.offsetObj=(0,r.lengthToObj)(e)}}},50261(e,t,n){n.r(t),n.d(t,{BracketTokens:()=>h,LanguageAgnosticBracketTokens:()=>l});var i=n(60891),r=n(26610),s=n(87440),o=n(969),a=n(57047);class h{static createFromLanguage(e,t){function n(e){return t.getKey(`${e.languageId}:::${e.bracketText}`)}const i=new Map;for(const t of e.bracketsNew.openingBrackets){const e=(0,s.toLength)(0,t.bracketText.length),h=n(t),l=o.SmallImmutableSet.getEmpty().add(h,o.identityKeyProvider);i.set(t.bracketText,new a.Token(e,1,h,l,r.BracketAstNode.create(e,t,l)))}for(const t of e.bracketsNew.closingBrackets){const e=(0,s.toLength)(0,t.bracketText.length);let h=o.SmallImmutableSet.getEmpty();const l=t.getOpeningBrackets();for(const e of l)h=h.add(n(e),o.identityKeyProvider);i.set(t.bracketText,new a.Token(e,2,n(l[0]),h,r.BracketAstNode.create(e,t,h)))}return new h(i)}constructor(e){this.map=e,this.hasRegExp=!1,this._regExpGlobal=null}getRegExpStr(){if(this.isEmpty)return null;{const e=[...this.map.keys()];return e.sort(),e.reverse(),e.map(e=>function(e){let t=(0,i.escapeRegExpCharacters)(e);return/^[\w ]+/.test(e)&&(t=`\\b${t}`),/[\w ]+$/.test(e)&&(t=`${t}\\b`),t}(e)).join("|")}}get regExpGlobal(){if(!this.hasRegExp){const e=this.getRegExpStr();this._regExpGlobal=e?new RegExp(e,"gi"):null,this.hasRegExp=!0}return this._regExpGlobal}getToken(e){return this.map.get(e.toLowerCase())}findClosingTokenText(e){for(const[t,n]of this.map)if(2===n.kind&&n.bracketIds.intersects(e))return t}get isEmpty(){return 0===this.map.size}}class l{constructor(e,t){this.denseKeyProvider=e,this.getLanguageConfiguration=t,this.languageIdToBracketTokens=new Map}didLanguageChange(e){return this.languageIdToBracketTokens.has(e)}getSingleLanguageBracketTokens(e){let t=this.languageIdToBracketTokens.get(e);return t||(t=h.createFromLanguage(this.getLanguageConfiguration(e),this.denseKeyProvider),this.languageIdToBracketTokens.set(e,t)),t}}},60439(e,t,n){n.r(t),n.d(t,{combineTextEditInfos:()=>o});var i=n(6995),r=n(24717),s=n(87440);function o(e,t){if(0===e.length)return t;if(0===t.length)return e;const n=new i.ArrayQueue(h(e)),o=h(t);o.push({modified:!1,lengthBefore:void 0,lengthAfter:void 0});let l=n.dequeue();function d(e){if(void 0===e){const e=n.takeWhile(e=>!0)||[];return l&&e.unshift(l),e}const t=[];for(;l&&!(0,s.lengthIsZero)(e);){const[i,r]=l.splitAt(e);t.push(i),e=(0,s.lengthDiffNonNegative)(i.lengthAfter,e),l=r??n.dequeue()}return(0,s.lengthIsZero)(e)||t.push(new a(!1,e,e)),t}const c=[];function u(e,t,n){if(c.length>0&&(0,s.lengthEquals)(c[c.length-1].endOffset,e)){const e=c[c.length-1];c[c.length-1]=new r.TextEditInfo(e.startOffset,t,(0,s.lengthAdd)(e.newLength,n))}else c.push({startOffset:e,endOffset:t,newLength:n})}let g=s.lengthZero;for(const e of o){const t=d(e.lengthBefore);if(e.modified){const n=(0,s.sumLengths)(t,e=>e.lengthBefore),i=(0,s.lengthAdd)(g,n);u(g,i,e.lengthAfter),g=i}else for(const e of t){const t=g;g=(0,s.lengthAdd)(g,e.lengthBefore),e.modified&&u(t,g,e.lengthAfter)}}return c}class a{constructor(e,t,n){this.modified=e,this.lengthBefore=t,this.lengthAfter=n}splitAt(e){const t=(0,s.lengthDiffNonNegative)(e,this.lengthAfter);return(0,s.lengthEquals)(t,s.lengthZero)?[this,void 0]:this.modified?[new a(this.modified,this.lengthBefore,e),new a(this.modified,s.lengthZero,t)]:[new a(this.modified,e,e),new a(this.modified,t,t)]}toString(){return`${this.modified?"M":"U"}:${(0,s.lengthToObj)(this.lengthBefore)} -> ${(0,s.lengthToObj)(this.lengthAfter)}`}}function h(e){const t=[];let n=s.lengthZero;for(const i of e){const e=(0,s.lengthDiffNonNegative)(n,i.startOffset);(0,s.lengthIsZero)(e)||t.push(new a(!1,e,e));const r=(0,s.lengthDiffNonNegative)(i.startOffset,i.endOffset);t.push(new a(!0,r,i.newLength)),n=i.endOffset}return t}},87440(e,t,n){n.r(t),n.d(t,{lengthAdd:()=>f,lengthDiff:()=>o,lengthDiffNonNegative:()=>m,lengthEquals:()=>p,lengthGetColumnCountIfZeroLineCount:()=>g,lengthGetLineCount:()=>u,lengthGreaterThanEqual:()=>b,lengthIsZero:()=>h,lengthLessThan:()=>C,lengthLessThanEqual:()=>k,lengthOfString:()=>T,lengthToObj:()=>c,lengthZero:()=>a,lengthsToRange:()=>I,positionToLength:()=>L,sumLengths:()=>_,toLength:()=>d});var i=n(60891),r=n(81304),s=n(53334);function o(e,t,n,i){return e!==n?d(n-e,i):d(0,i-t)}const a=0;function h(e){return 0===e}const l=2**26;function d(e,t){return e*l+t}function c(e){const t=e,n=Math.floor(t/l),i=t-n*l;return new s.TextLength(n,i)}function u(e){return Math.floor(e/l)}function g(e){return e}function f(e,t){let n=e+t;return t>=l&&(n-=e%l),n}function _(e,t){return e.reduce((e,n)=>f(e,t(n)),a)}function p(e,t){return e===t}function m(e,t){const n=e,i=t;if(i-n<=0)return a;const r=Math.floor(n/l),s=Math.floor(i/l),o=i-s*l;return r===s?d(0,o-(n-r*l)):d(s-r,o)}function C(e,t){return e<t}function k(e,t){return e<=t}function b(e,t){return e>=t}function L(e){return d(e.lineNumber-1,e.column-1)}function I(e,t){const n=e,i=Math.floor(n/l),s=n-i*l,o=t,a=Math.floor(o/l),h=o-a*l;return new r.Range(i+1,s+1,a+1,h+1)}function T(e){const t=(0,i.splitLines)(e);return d(t.length-1,t[t.length-1].length)}},59799(e,t,n){n.d(t,{parseDocument:()=>g}),n.r(t);var i=n(26610),r=n(24717),s=n(969),o=n(87440);function a(e,t=!1){if(0===e.length)return null;if(1===e.length)return e[0];let n=e.length;for(;n>3;){const r=n>>1;for(let s=0;s<r;s++){const r=s<<1;e[s]=i.ListAstNode.create23(e[r],e[r+1],r+3===n?e[r+2]:null,t)}n=r}return i.ListAstNode.create23(e[0],e[1],n>=3?e[2]:null,t)}function h(e,t){return Math.abs(e.listHeight-t.listHeight)}function l(e,t){return e.listHeight===t.listHeight?i.ListAstNode.create23(e,t,null,!1):e.listHeight>t.listHeight?function(e,t){let n=e=e.toMutable();const r=[];let s;for(;;){if(t.listHeight===n.listHeight){s=t;break}if(4!==n.kind)throw new Error("unexpected");r.push(n),n=n.makeLastElementMutable()}for(let e=r.length-1;e>=0;e--){const t=r[e];s?t.childrenLength>=3?s=i.ListAstNode.create23(t.unappendChild(),s,null,!1):(t.appendChildOfSameHeight(s),s=void 0):t.handleChildrenChanged()}return s?i.ListAstNode.create23(e,s,null,!1):e}(e,t):function(e,t){let n=e=e.toMutable();const r=[];for(;t.listHeight!==n.listHeight;){if(4!==n.kind)throw new Error("unexpected");r.push(n),n=n.makeFirstElementMutable()}let s=t;for(let e=r.length-1;e>=0;e--){const t=r[e];s?t.childrenLength>=3?s=i.ListAstNode.create23(s,t.unprependChild(),null,!1):(t.prependChildOfSameHeight(s),s=void 0):t.handleChildrenChanged()}return s?i.ListAstNode.create23(s,e,null,!1):e}(t,e)}class d{constructor(e){this.lastOffset=o.lengthZero,this.nextNodes=[e],this.offsets=[o.lengthZero],this.idxs=[]}readLongestNodeAt(e,t){if((0,o.lengthLessThan)(e,this.lastOffset))throw new Error("Invalid offset");for(this.lastOffset=e;;){const n=u(this.nextNodes);if(!n)return;const i=u(this.offsets);if((0,o.lengthLessThan)(e,i))return;if((0,o.lengthLessThan)(i,e))if((0,o.lengthAdd)(i,n.length)<=e)this.nextNodeAfterCurrent();else{const e=c(n);-1!==e?(this.nextNodes.push(n.getChild(e)),this.offsets.push(i),this.idxs.push(e)):this.nextNodeAfterCurrent()}else{if(t(n))return this.nextNodeAfterCurrent(),n;{const e=c(n);if(-1===e)return void this.nextNodeAfterCurrent();this.nextNodes.push(n.getChild(e)),this.offsets.push(i),this.idxs.push(e)}}}}nextNodeAfterCurrent(){for(;;){const e=u(this.offsets),t=u(this.nextNodes);if(this.nextNodes.pop(),this.offsets.pop(),0===this.idxs.length)break;const n=u(this.nextNodes),i=c(n,this.idxs[this.idxs.length-1]);if(-1!==i){this.nextNodes.push(n.getChild(i)),this.offsets.push((0,o.lengthAdd)(e,t.length)),this.idxs[this.idxs.length-1]=i;break}this.idxs.pop()}}}function c(e,t=-1){for(;;){if(++t>=e.childrenLength)return-1;if(e.getChild(t))return t}}function u(e){return e.length>0?e[e.length-1]:void 0}function g(e,t,n,i){return new f(e,t,n,i).parseDocument()}class f{constructor(e,t,n,i){if(this.tokenizer=e,this.createImmutableLists=i,this._itemsConstructed=0,this._itemsFromCache=0,n&&i)throw new Error("Not supported");this.oldNodeReader=n?new d(n):void 0,this.positionMapper=new r.BeforeEditPositionMapper(t)}parseDocument(){this._itemsConstructed=0,this._itemsFromCache=0;let e=this.parseList(s.SmallImmutableSet.getEmpty(),0);return e||(e=i.ListAstNode.getEmpty()),e}parseList(e,t){const n=[];for(;;){let i=this.tryReadChildFromCache(e);if(!i){const n=this.tokenizer.peek();if(!n||2===n.kind&&n.bracketIds.intersects(e))break;i=this.parseChild(e,t+1)}4===i.kind&&0===i.childrenLength||n.push(i)}const i=this.oldNodeReader?function(e){if(0===e.length)return null;if(1===e.length)return e[0];let t=0;function n(){if(t>=e.length)return null;const n=t,i=e[n].listHeight;for(t++;t<e.length&&e[t].listHeight===i;)t++;return t-n>=2?a(0===n&&t===e.length?e:e.slice(n,t),!1):e[n]}let i=n(),r=n();if(!r)return i;for(let e=n();e;e=n())h(i,r)<=h(r,e)?(i=l(i,r),r=e):r=l(r,e);return l(i,r)}(n):a(n,this.createImmutableLists);return i}tryReadChildFromCache(e){if(this.oldNodeReader){const t=this.positionMapper.getDistanceToNextChange(this.tokenizer.offset);if(null===t||!(0,o.lengthIsZero)(t)){const n=this.oldNodeReader.readLongestNodeAt(this.positionMapper.getOffsetBeforeChange(this.tokenizer.offset),n=>!(null!==t&&!(0,o.lengthLessThan)(n.length,t))&&n.canBeReused(e));if(n)return this._itemsFromCache++,this.tokenizer.skip(n.length),n}}}parseChild(e,t){this._itemsConstructed++;const n=this.tokenizer.read();switch(n.kind){case 2:return new i.InvalidBracketAstNode(n.bracketIds,n.length);case 0:return n.astNode;case 1:{if(t>300)return new i.TextAstNode(n.length);const r=e.merge(n.bracketIds),s=this.parseList(r,t+1),o=this.tokenizer.peek();return o&&2===o.kind&&(o.bracketId===n.bracketId||o.bracketIds.intersects(n.bracketIds))?(this.tokenizer.read(),i.PairAstNode.create(n.astNode,s,o.astNode)):i.PairAstNode.create(n.astNode,s,null)}default:throw new Error("unexpected")}}}},969(e,t,n){n.r(t),n.d(t,{DenseKeyProvider:()=>o,SmallImmutableSet:()=>r,identityKeyProvider:()=>s});const i=[];class r{static{this.cache=new Array(129)}static create(e,t){if(e<=128&&0===t.length){let n=r.cache[e];return n||(n=new r(e,t),r.cache[e]=n),n}return new r(e,t)}static{this.empty=r.create(0,i)}static getEmpty(){return this.empty}constructor(e,t){this.items=e,this.additionalItems=t}add(e,t){const n=t.getKey(e);let i=n>>5;if(0===i){const e=1<<n|this.items;return e===this.items?this:r.create(e,this.additionalItems)}i--;const s=this.additionalItems.slice(0);for(;s.length<i;)s.push(0);return s[i]|=1<<(31&n),r.create(this.items,s)}merge(e){const t=this.items|e.items;if(this.additionalItems===i&&e.additionalItems===i)return t===this.items?this:t===e.items?e:r.create(t,i);const n=[];for(let t=0;t<Math.max(this.additionalItems.length,e.additionalItems.length);t++){const i=this.additionalItems[t]||0,r=e.additionalItems[t]||0;n.push(i|r)}return r.create(t,n)}intersects(e){if(0!==(this.items&e.items))return!0;for(let t=0;t<Math.min(this.additionalItems.length,e.additionalItems.length);t++)if(0!==(this.additionalItems[t]&e.additionalItems[t]))return!0;return!1}}const s={getKey:e=>e};class o{constructor(){this.items=new Map}getKey(e){let t=this.items.get(e);return void 0===t&&(t=this.items.size,this.items.set(e,t)),t}}},57047(e,t,n){n.r(t),n.d(t,{FastTokenizer:()=>c,TextBufferTokenizer:()=>l,Token:()=>h});var i=n(73226),r=n(22519),s=n(26610),o=n(87440),a=n(969);class h{constructor(e,t,n,i,r){this.length=e,this.kind=t,this.bracketId=n,this.bracketIds=i,this.astNode=r}}class l{constructor(e,t){this.textModel=e,this.bracketTokens=t,this.reader=new d(this.textModel,this.bracketTokens),this._offset=o.lengthZero,this.didPeek=!1,this.peeked=null,this.textBufferLineCount=e.getLineCount(),this.textBufferLastLineLength=e.getLineLength(this.textBufferLineCount)}get offset(){return this._offset}get length(){return(0,o.toLength)(this.textBufferLineCount-1,this.textBufferLastLineLength)}skip(e){this.didPeek=!1,this._offset=(0,o.lengthAdd)(this._offset,e);const t=(0,o.lengthToObj)(this._offset);this.reader.setPosition(t.lineCount,t.columnCount)}read(){let e;return this.peeked?(this.didPeek=!1,e=this.peeked):e=this.reader.read(),e&&(this._offset=(0,o.lengthAdd)(this._offset,e.length)),e}peek(){return this.didPeek||(this.peeked=this.reader.read(),this.didPeek=!0),this.peeked}}class d{constructor(e,t){this.textModel=e,this.bracketTokens=t,this.lineIdx=0,this.line=null,this.lineCharOffset=0,this.lineTokens=null,this.lineTokenOffset=0,this.peekedToken=null,this.textBufferLineCount=e.getLineCount(),this.textBufferLastLineLength=e.getLineLength(this.textBufferLineCount)}setPosition(e,t){e===this.lineIdx?(this.lineCharOffset=t,null!==this.line&&(this.lineTokenOffset=0===this.lineCharOffset?0:this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset))):(this.lineIdx=e,this.lineCharOffset=t,this.line=null),this.peekedToken=null}read(){if(this.peekedToken){const e=this.peekedToken;return this.peekedToken=null,this.lineCharOffset+=(0,o.lengthGetColumnCountIfZeroLineCount)(e.length),e}if(this.lineIdx>this.textBufferLineCount-1||this.lineIdx===this.textBufferLineCount-1&&this.lineCharOffset>=this.textBufferLastLineLength)return null;null===this.line&&(this.lineTokens=this.textModel.tokenization.getLineTokens(this.lineIdx+1),this.line=this.lineTokens.getLineContent(),this.lineTokenOffset=0===this.lineCharOffset?0:this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset));const e=this.lineIdx,t=this.lineCharOffset;let n=0;for(;;){const i=this.lineTokens,s=i.getCount();let a=null;if(this.lineTokenOffset<s){const h=i.getMetadata(this.lineTokenOffset);for(;this.lineTokenOffset+1<s&&h===i.getMetadata(this.lineTokenOffset+1);)this.lineTokenOffset++;const l=0===r.TokenMetadata.getTokenType(h),d=r.TokenMetadata.containsBalancedBrackets(h),c=i.getEndOffset(this.lineTokenOffset);if(d&&l&&this.lineCharOffset<c){const e=i.getLanguageId(this.lineTokenOffset),t=this.line.substring(this.lineCharOffset,c),n=this.bracketTokens.getSingleLanguageBracketTokens(e),r=n.regExpGlobal;if(r){r.lastIndex=0;const e=r.exec(t);e&&(a=n.getToken(e[0]),a&&(this.lineCharOffset+=e.index))}}if(n+=c-this.lineCharOffset,a){if(e!==this.lineIdx||t!==this.lineCharOffset){this.peekedToken=a;break}return this.lineCharOffset+=(0,o.lengthGetColumnCountIfZeroLineCount)(a.length),a}this.lineTokenOffset++,this.lineCharOffset=c}else{if(this.lineIdx===this.textBufferLineCount-1)break;if(this.lineIdx++,this.lineTokens=this.textModel.tokenization.getLineTokens(this.lineIdx+1),this.lineTokenOffset=0,this.line=this.lineTokens.getLineContent(),this.lineCharOffset=0,n+=33,n>1e3)break}if(n>1500)break}const i=(0,o.lengthDiff)(e,t,this.lineIdx,this.lineCharOffset);return new h(i,0,-1,a.SmallImmutableSet.getEmpty(),new s.TextAstNode(i))}}class c{constructor(e,t){this.text=e,this._offset=o.lengthZero,this.idx=0;const n=t.getRegExpStr(),i=n?new RegExp(n+"|\n","gi"):null,r=[];let l,d=0,c=0,u=0,g=0;const f=[];for(let e=0;e<60;e++)f.push(new h((0,o.toLength)(0,e),0,-1,a.SmallImmutableSet.getEmpty(),new s.TextAstNode((0,o.toLength)(0,e))));const _=[];for(let e=0;e<60;e++)_.push(new h((0,o.toLength)(1,e),0,-1,a.SmallImmutableSet.getEmpty(),new s.TextAstNode((0,o.toLength)(1,e))));if(i)for(i.lastIndex=0;null!==(l=i.exec(e));){const e=l.index,n=l[0];if("\n"===n)d++,c=e+1;else{if(u!==e){let t;if(g===d){const n=e-u;if(n<f.length)t=f[n];else{const e=(0,o.toLength)(0,n);t=new h(e,0,-1,a.SmallImmutableSet.getEmpty(),new s.TextAstNode(e))}}else{const n=d-g,i=e-c;if(1===n&&i<_.length)t=_[i];else{const e=(0,o.toLength)(n,i);t=new h(e,0,-1,a.SmallImmutableSet.getEmpty(),new s.TextAstNode(e))}}r.push(t)}r.push(t.getToken(n)),u=e+n.length,g=d}}const p=e.length;if(u!==p){const e=g===d?(0,o.toLength)(0,p-u):(0,o.toLength)(d-g,p-c);r.push(new h(e,0,-1,a.SmallImmutableSet.getEmpty(),new s.TextAstNode(e)))}this.length=(0,o.toLength)(d,p-c),this.tokens=r}get offset(){return this._offset}read(){return this.tokens[this.idx++]||null}peek(){return this.tokens[this.idx]||null}skip(e){throw new i.NotSupportedError}}},95683(e,t,n){n.r(t),n.d(t,{EditStack:()=>p,MultiModelEditStackElement:()=>g,SingleModelEditStackData:()=>c,SingleModelEditStackElement:()=>u,isEditStackElement:()=>_});var i=n(12003),r=n(73226),s=n(15719),o=n(5839),a=n(5870),h=n(19031),l=n(1268);function d(e){return e.toString()}class c{static create(e,t){const n=e.getAlternativeVersionId(),i=f(e);return new c(n,n,i,i,t,t,[])}constructor(e,t,n,i,r,s,o){this.beforeVersionId=e,this.afterVersionId=t,this.beforeEOL=n,this.afterEOL=i,this.beforeCursorState=r,this.afterCursorState=s,this.changes=o}append(e,t,n,i,r){t.length>0&&(this.changes=(0,a.compressConsecutiveTextChanges)(this.changes,t)),this.afterEOL=n,this.afterVersionId=i,this.afterCursorState=r}static _writeSelectionsSize(e){return 4+16*(e?e.length:0)}static _writeSelections(e,t,n){if(h.writeUInt32BE(e,t?t.length:0,n),n+=4,t)for(const i of t)h.writeUInt32BE(e,i.selectionStartLineNumber,n),n+=4,h.writeUInt32BE(e,i.selectionStartColumn,n),n+=4,h.writeUInt32BE(e,i.positionLineNumber,n),n+=4,h.writeUInt32BE(e,i.positionColumn,n),n+=4;return n}static _readSelections(e,t,n){const i=h.readUInt32BE(e,t);t+=4;for(let r=0;r<i;r++){const i=h.readUInt32BE(e,t);t+=4;const r=h.readUInt32BE(e,t);t+=4;const o=h.readUInt32BE(e,t);t+=4;const a=h.readUInt32BE(e,t);t+=4,n.push(new s.Selection(i,r,o,a))}return t}serialize(){let e=10+c._writeSelectionsSize(this.beforeCursorState)+c._writeSelectionsSize(this.afterCursorState)+4;for(const t of this.changes)e+=t.writeSize();const t=new Uint8Array(e);let n=0;h.writeUInt32BE(t,this.beforeVersionId,n),n+=4,h.writeUInt32BE(t,this.afterVersionId,n),n+=4,h.writeUInt8(t,this.beforeEOL,n),n+=1,h.writeUInt8(t,this.afterEOL,n),n+=1,n=c._writeSelections(t,this.beforeCursorState,n),n=c._writeSelections(t,this.afterCursorState,n),h.writeUInt32BE(t,this.changes.length,n),n+=4;for(const e of this.changes)n=e.write(t,n);return t.buffer}static deserialize(e){const t=new Uint8Array(e);let n=0;const i=h.readUInt32BE(t,n);n+=4;const r=h.readUInt32BE(t,n);n+=4;const s=h.readUInt8(t,n);n+=1;const o=h.readUInt8(t,n);n+=1;const l=[];n=c._readSelections(t,n,l);const d=[];n=c._readSelections(t,n,d);const u=h.readUInt32BE(t,n);n+=4;const g=[];for(let e=0;e<u;e++)n=a.TextChange.read(t,n,g);return new c(i,r,s,o,l,d,g)}}class u{get type(){return 0}get resource(){return o.URI.isUri(this.model)?this.model:this.model.uri}constructor(e,t,n,i){this.label=e,this.code=t,this.model=n,this._data=c.create(n,i)}toString(){return(this._data instanceof c?this._data:c.deserialize(this._data)).changes.map(e=>e.toString()).join(", ")}matchesResource(e){return(o.URI.isUri(this.model)?this.model:this.model.uri).toString()===e.toString()}setModel(e){this.model=e}canAppend(e){return this.model===e&&this._data instanceof c}append(e,t,n,i,r){this._data instanceof c&&this._data.append(e,t,n,i,r)}close(){this._data instanceof c&&(this._data=this._data.serialize())}open(){this._data instanceof c||(this._data=c.deserialize(this._data))}undo(){if(o.URI.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof c&&(this._data=this._data.serialize());const e=c.deserialize(this._data);this.model._applyUndo(e.changes,e.beforeEOL,e.beforeVersionId,e.beforeCursorState)}redo(){if(o.URI.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof c&&(this._data=this._data.serialize());const e=c.deserialize(this._data);this.model._applyRedo(e.changes,e.afterEOL,e.afterVersionId,e.afterCursorState)}heapSize(){return this._data instanceof c&&(this._data=this._data.serialize()),this._data.byteLength+168}}class g{get resources(){return this._editStackElementsArr.map(e=>e.resource)}constructor(e,t,n){this.label=e,this.code=t,this.type=1,this._isOpen=!0,this._editStackElementsArr=n.slice(0),this._editStackElementsMap=new Map;for(const e of this._editStackElementsArr){const t=d(e.resource);this._editStackElementsMap.set(t,e)}this._delegate=null}prepareUndoRedo(){if(this._delegate)return this._delegate.prepareUndoRedo(this)}matchesResource(e){const t=d(e);return this._editStackElementsMap.has(t)}setModel(e){const t=d(o.URI.isUri(e)?e:e.uri);this._editStackElementsMap.has(t)&&this._editStackElementsMap.get(t).setModel(e)}canAppend(e){if(!this._isOpen)return!1;const t=d(e.uri);return!!this._editStackElementsMap.has(t)&&this._editStackElementsMap.get(t).canAppend(e)}append(e,t,n,i,r){const s=d(e.uri);this._editStackElementsMap.get(s).append(e,t,n,i,r)}close(){this._isOpen=!1}open(){}undo(){this._isOpen=!1;for(const e of this._editStackElementsArr)e.undo()}redo(){for(const e of this._editStackElementsArr)e.redo()}heapSize(e){const t=d(e);return this._editStackElementsMap.has(t)?this._editStackElementsMap.get(t).heapSize():0}split(){return this._editStackElementsArr}toString(){const e=[];for(const t of this._editStackElementsArr)e.push(`${(0,l.basename)(t.resource)}: ${t}`);return`{${e.join(", ")}}`}}function f(e){return"\n"===e.getEOL()?0:1}function _(e){return!!e&&(e instanceof u||e instanceof g)}class p{constructor(e,t){this._model=e,this._undoRedoService=t}pushStackElement(){const e=this._undoRedoService.getLastElement(this._model.uri);_(e)&&e.close()}popStackElement(){const e=this._undoRedoService.getLastElement(this._model.uri);_(e)&&e.open()}clear(){this._undoRedoService.removeElements(this._model.uri)}_getOrCreateEditStackElement(e,t){const n=this._undoRedoService.getLastElement(this._model.uri);if(_(n)&&n.canAppend(this._model))return n;const r=new u(i.localize("edit","Typing"),"undoredo.textBufferEdit",this._model,e);return this._undoRedoService.pushElement(r,t),r}pushEOL(e){const t=this._getOrCreateEditStackElement(null,void 0);this._model.setEOL(e),t.append(this._model,[],f(this._model),this._model.getAlternativeVersionId(),null)}pushEditOperation(e,t,n,i){const r=this._getOrCreateEditStackElement(e,i),s=this._model.applyEdits(t,!0),o=p._computeCursorState(n,s),a=s.map((e,t)=>({index:t,textChange:e.textChange}));return a.sort((e,t)=>e.textChange.oldPosition===t.textChange.oldPosition?e.index-t.index:e.textChange.oldPosition-t.textChange.oldPosition),r.append(this._model,a.map(e=>e.textChange),f(this._model),this._model.getAlternativeVersionId(),o),o}static _computeCursorState(e,t){try{return e?e(t):null}catch(e){return(0,r.onUnexpectedError)(e),null}}}},45277(e,t,n){n.r(t),n.d(t,{BracketPairGuidesClassNames:()=>u,GuidesTextModelPart:()=>c});var i=n(35380),r=n(60891),s=n(10492),o=n(81304),a=n(80354),h=n(83958),l=n(75212),d=n(73226);class c extends a.TextModelPart{constructor(e,t){super(),this.textModel=e,this.languageConfigurationService=t}getLanguageConfiguration(e){return this.languageConfigurationService.getLanguageConfiguration(e)}_computeIndentLevel(e){return(0,h.computeIndentLevel)(this.textModel.getLineContent(e+1),this.textModel.getOptions().tabSize)}getActiveIndentGuide(e,t,n){this.assertNotDisposed();const i=this.textModel.getLineCount();if(e<1||e>i)throw new d.BugIndicatingError("Illegal value for lineNumber");const r=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,s=Boolean(r&&r.offSide);let o=-2,a=-1,h=-2,l=-1;const c=e=>{if(-1!==o&&(-2===o||o>e-1)){o=-1,a=-1;for(let t=e-2;t>=0;t--){const e=this._computeIndentLevel(t);if(e>=0){o=t,a=e;break}}}if(-2===h){h=-1,l=-1;for(let t=e;t<i;t++){const e=this._computeIndentLevel(t);if(e>=0){h=t,l=e;break}}}};let u=-2,g=-1,f=-2,_=-1;const p=e=>{if(-2===u){u=-1,g=-1;for(let t=e-2;t>=0;t--){const e=this._computeIndentLevel(t);if(e>=0){u=t,g=e;break}}}if(-1!==f&&(-2===f||f<e-1)){f=-1,_=-1;for(let t=e;t<i;t++){const e=this._computeIndentLevel(t);if(e>=0){f=t,_=e;break}}}};let m=0,C=!0,k=0,b=!0,L=0,I=0;for(let r=0;C||b;r++){const o=e-r,d=e+r;r>1&&(o<1||o<t)&&(C=!1),r>1&&(d>i||d>n)&&(b=!1),r>5e4&&(C=!1,b=!1);let f=-1;if(C&&o>=1){const e=this._computeIndentLevel(o-1);e>=0?(h=o-1,l=e,f=Math.ceil(e/this.textModel.getOptions().indentSize)):(c(o),f=this._getIndentLevelForWhitespaceLine(s,a,l))}let T=-1;if(b&&d<=i){const e=this._computeIndentLevel(d-1);e>=0?(u=d-1,g=e,T=Math.ceil(e/this.textModel.getOptions().indentSize)):(p(d),T=this._getIndentLevelForWhitespaceLine(s,g,_))}if(0!==r){if(1===r){if(d<=i&&T>=0&&I+1===T){C=!1,m=d,k=d,L=T;continue}if(o>=1&&f>=0&&f-1===I){b=!1,m=o,k=o,L=f;continue}if(m=e,k=e,L=I,0===L)return{startLineNumber:m,endLineNumber:k,indent:L}}C&&(f>=L?m=o:C=!1),b&&(T>=L?k=d:b=!1)}else I=f}return{startLineNumber:m,endLineNumber:k,indent:L}}getLinesBracketGuides(e,t,n,s){const a=[];for(let n=e;n<=t;n++)a.push([]);const h=this.textModel.bracketPairs.getBracketPairsInRangeWithMinIndentation(new o.Range(e,1,t,this.textModel.getLineMaxColumn(t))).toArray();let d;if(n&&h.length>0){const r=(e<=n.lineNumber&&n.lineNumber<=t?h:this.textModel.bracketPairs.getBracketPairsInRange(o.Range.fromPositions(n)).toArray()).filter(e=>o.Range.strictContainsPosition(e.range,n));d=(0,i.findLast)(r,e=>true)?.range}const c=this.textModel.getOptions().bracketPairColorizationOptions.independentColorPoolPerBracketType,g=new u;for(const n of h){if(!n.closingBracketRange)continue;const i=d&&n.range.equalsRange(d);if(!i&&!s.includeInactive)continue;const o=g.getInlineClassName(n.nestingLevel,n.nestingLevelOfEqualBracketType,c)+(s.highlightActive&&i?" "+g.activeClassName:""),h=n.openingBracketRange.getStartPosition(),u=n.closingBracketRange.getStartPosition(),f=s.horizontalGuides===l.HorizontalGuidesState.Enabled||s.horizontalGuides===l.HorizontalGuidesState.EnabledForActive&&i;if(n.range.startLineNumber===n.range.endLineNumber){f&&a[n.range.startLineNumber-e].push(new l.IndentGuide(-1,n.openingBracketRange.getEndPosition().column,o,new l.IndentGuideHorizontalLine(!1,u.column),-1,-1));continue}const _=this.getVisibleColumnFromPosition(u),p=this.getVisibleColumnFromPosition(n.openingBracketRange.getStartPosition()),m=Math.min(p,_,n.minVisibleColumnIndentation+1);let C=!1;r.firstNonWhitespaceIndex(this.textModel.getLineContent(n.closingBracketRange.startLineNumber))<n.closingBracketRange.startColumn-1&&(C=!0);const k=Math.max(h.lineNumber,e),b=Math.min(u.lineNumber,t),L=C?1:0;for(let t=k;t<b+L;t++)a[t-e].push(new l.IndentGuide(m,-1,o,null,t===h.lineNumber?h.column:-1,t===u.lineNumber?u.column:-1));f&&(h.lineNumber>=e&&p>m&&a[h.lineNumber-e].push(new l.IndentGuide(m,-1,o,new l.IndentGuideHorizontalLine(!1,h.column),-1,-1)),u.lineNumber<=t&&_>m&&a[u.lineNumber-e].push(new l.IndentGuide(m,-1,o,new l.IndentGuideHorizontalLine(!C,u.column),-1,-1)))}for(const e of a)e.sort((e,t)=>e.visibleColumn-t.visibleColumn);return a}getVisibleColumnFromPosition(e){return s.CursorColumns.visibleColumnFromColumn(this.textModel.getLineContent(e.lineNumber),e.column,this.textModel.getOptions().tabSize)+1}getLinesIndentGuides(e,t){this.assertNotDisposed();const n=this.textModel.getLineCount();if(e<1||e>n)throw new Error("Illegal value for startLineNumber");if(t<1||t>n)throw new Error("Illegal value for endLineNumber");const i=this.textModel.getOptions(),r=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,s=Boolean(r&&r.offSide),o=new Array(t-e+1);let a=-2,h=-1,l=-2,d=-1;for(let r=e;r<=t;r++){const t=r-e,c=this._computeIndentLevel(r-1);if(c>=0)a=r-1,h=c,o[t]=Math.ceil(c/i.indentSize);else{if(-2===a){a=-1,h=-1;for(let e=r-2;e>=0;e--){const t=this._computeIndentLevel(e);if(t>=0){a=e,h=t;break}}}if(-1!==l&&(-2===l||l<r-1)){l=-1,d=-1;for(let e=r;e<n;e++){const t=this._computeIndentLevel(e);if(t>=0){l=e,d=t;break}}}o[t]=this._getIndentLevelForWhitespaceLine(s,h,d)}}return o}_getIndentLevelForWhitespaceLine(e,t,n){const i=this.textModel.getOptions();return-1===t||-1===n?0:t<n?1+Math.floor(t/i.indentSize):t===n||e?Math.ceil(n/i.indentSize):1+Math.floor(n/i.indentSize)}}class u{constructor(){this.activeClassName="indent-active"}getInlineClassName(e,t,n){return this.getInlineClassNameOfLevel(n?t:e)}getInlineClassNameOfLevel(e){return"bracket-indent-guide lvl-"+e%30}}},12882(e,t,n){n.d(t,{ModelDecorationGlyphMarginOptions:()=>Kt,ModelDecorationInjectedTextOptions:()=>Qt,ModelDecorationMinimapOptions:()=>Xt,ModelDecorationOptions:()=>Yt,ModelDecorationOverviewRulerOptions:()=>Zt,TextModel:()=>Wt,createTextBuffer:()=>Pt,createTextBufferFactory:()=>Mt,createTextBufferFactoryFromSnapshot:()=>zt,indentOfLine:()=>Gt}),n.r(t);var i=n(6995),r=n(63962),s=n(73226),o=n(22573),a=n(32293),h=n(60891),l=n(5839),d=n(44301),c=n(92802),u=n(55818),g=n(81304),f=n(15719),_=n(33099),p=n(49471),m=n(53439),C=n(92692),k=n(94457),b=n(24979);class L{constructor(e,t,n,i){this.range=e,this.nestingLevel=t,this.nestingLevelOfEqualBracketType=n,this.isInvalid=i}}class I{constructor(e,t,n,i,r,s){this.range=e,this.openingBracketRange=t,this.closingBracketRange=n,this.nestingLevel=i,this.nestingLevelOfEqualBracketType=r,this.bracketPairNode=s}get openingBracketInfo(){return this.bracketPairNode.openingBracket.bracketInfo}}class T extends I{constructor(e,t,n,i,r,s,o){super(e,t,n,i,r,s),this.minVisibleColumnIndentation=o}}var S=n(24717),v=n(50261),x=n(87440),E=n(59799),w=n(969),B=n(57047),O=n(60439);class N extends a.Disposable{didLanguageChange(e){return this.brackets.didLanguageChange(e)}constructor(e,t){if(super(),this.textModel=e,this.getLanguageConfiguration=t,this.didChangeEmitter=new o.Emitter,this.denseKeyProvider=new w.DenseKeyProvider,this.brackets=new v.LanguageAgnosticBracketTokens(this.denseKeyProvider,this.getLanguageConfiguration),this.onDidChange=this.didChangeEmitter.event,this.queuedTextEditsForInitialAstWithoutTokens=[],this.queuedTextEdits=[],e.tokenization.hasTokens)2===e.tokenization.backgroundTokenizationState?(this.initialAstWithoutTokens=void 0,this.astWithTokens=this.parseDocumentFromTextBuffer([],void 0,!1)):(this.initialAstWithoutTokens=this.parseDocumentFromTextBuffer([],void 0,!0),this.astWithTokens=this.initialAstWithoutTokens);else{const e=this.brackets.getSingleLanguageBracketTokens(this.textModel.getLanguageId()),t=new B.FastTokenizer(this.textModel.getValue(),e);this.initialAstWithoutTokens=(0,E.parseDocument)(t,[],void 0,!0),this.astWithTokens=this.initialAstWithoutTokens}}handleDidChangeBackgroundTokenizationState(){if(2===this.textModel.tokenization.backgroundTokenizationState){const e=void 0===this.initialAstWithoutTokens;this.initialAstWithoutTokens=void 0,e||this.didChangeEmitter.fire()}}handleDidChangeTokens({ranges:e}){const t=e.map(e=>new S.TextEditInfo((0,x.toLength)(e.fromLineNumber-1,0),(0,x.toLength)(e.toLineNumber,0),(0,x.toLength)(e.toLineNumber-e.fromLineNumber+1,0)));this.handleEdits(t,!0),this.initialAstWithoutTokens||this.didChangeEmitter.fire()}handleContentChanged(e){const t=S.TextEditInfo.fromModelContentChanges(e.changes);this.handleEdits(t,!1)}handleEdits(e,t){const n=(0,O.combineTextEditInfos)(this.queuedTextEdits,e);this.queuedTextEdits=n,this.initialAstWithoutTokens&&!t&&(this.queuedTextEditsForInitialAstWithoutTokens=(0,O.combineTextEditInfos)(this.queuedTextEditsForInitialAstWithoutTokens,e))}flushQueue(){this.queuedTextEdits.length>0&&(this.astWithTokens=this.parseDocumentFromTextBuffer(this.queuedTextEdits,this.astWithTokens,!1),this.queuedTextEdits=[]),this.queuedTextEditsForInitialAstWithoutTokens.length>0&&(this.initialAstWithoutTokens&&(this.initialAstWithoutTokens=this.parseDocumentFromTextBuffer(this.queuedTextEditsForInitialAstWithoutTokens,this.initialAstWithoutTokens,!1)),this.queuedTextEditsForInitialAstWithoutTokens=[])}parseDocumentFromTextBuffer(e,t,n){const i=t,r=new B.TextBufferTokenizer(this.textModel,this.brackets);return(0,E.parseDocument)(r,e,i,n)}getBracketsInRange(e,t){this.flushQueue();const n=(0,x.toLength)(e.startLineNumber-1,e.startColumn-1),r=(0,x.toLength)(e.endLineNumber-1,e.endColumn-1);return new i.CallbackIterable(e=>{const i=this.initialAstWithoutTokens||this.astWithTokens;D(i,x.lengthZero,i.length,n,r,e,0,0,new Map,t)})}getBracketPairsInRange(e,t){this.flushQueue();const n=(0,x.positionToLength)(e.getStartPosition()),r=(0,x.positionToLength)(e.getEndPosition());return new i.CallbackIterable(e=>{const i=this.initialAstWithoutTokens||this.astWithTokens,s=new M(e,t,this.textModel);z(i,x.lengthZero,i.length,n,r,s,0,new Map)})}getFirstBracketAfter(e){this.flushQueue();const t=this.initialAstWithoutTokens||this.astWithTokens;return A(t,x.lengthZero,t.length,(0,x.positionToLength)(e))}getFirstBracketBefore(e){this.flushQueue();const t=this.initialAstWithoutTokens||this.astWithTokens;return R(t,x.lengthZero,t.length,(0,x.positionToLength)(e))}}function R(e,t,n,i){if(4===e.kind||2===e.kind){const r=[];for(const i of e.children)n=(0,x.lengthAdd)(t,i.length),r.push({nodeOffsetStart:t,nodeOffsetEnd:n}),t=n;for(let t=r.length-1;t>=0;t--){const{nodeOffsetStart:n,nodeOffsetEnd:s}=r[t];if((0,x.lengthLessThan)(n,i)){const r=R(e.children[t],n,s,i);if(r)return r}}return null}if(3===e.kind)return null;if(1===e.kind){const i=(0,x.lengthsToRange)(t,n);return{bracketInfo:e.bracketInfo,range:i}}return null}function A(e,t,n,i){if(4===e.kind||2===e.kind){for(const r of e.children){if(n=(0,x.lengthAdd)(t,r.length),(0,x.lengthLessThan)(i,n)){const e=A(r,t,n,i);if(e)return e}t=n}return null}if(3===e.kind)return null;if(1===e.kind){const i=(0,x.lengthsToRange)(t,n);return{bracketInfo:e.bracketInfo,range:i}}return null}function D(e,t,n,i,r,s,o,a,h,l,d=!1){if(o>200)return!0;e:for(;;)switch(e.kind){case 4:{const a=e.childrenLength;for(let d=0;d<a;d++){const a=e.getChild(d);if(a){if(n=(0,x.lengthAdd)(t,a.length),(0,x.lengthLessThanEqual)(t,r)&&(0,x.lengthGreaterThanEqual)(n,i)){if((0,x.lengthGreaterThanEqual)(n,r)){e=a;continue e}if(!D(a,t,n,i,r,s,o,0,h,l))return!1}t=n}}return!0}case 2:{const d=!l||!e.closingBracket||e.closingBracket.bracketInfo.closesColorized(e.openingBracket.bracketInfo);let c=0;if(h){let t=h.get(e.openingBracket.text);void 0===t&&(t=0),c=t,d&&(t++,h.set(e.openingBracket.text,t))}const u=e.childrenLength;for(let g=0;g<u;g++){const u=e.getChild(g);if(u){if(n=(0,x.lengthAdd)(t,u.length),(0,x.lengthLessThanEqual)(t,r)&&(0,x.lengthGreaterThanEqual)(n,i)){if((0,x.lengthGreaterThanEqual)(n,r)&&1!==u.kind){e=u,d?(o++,a=c+1):a=c;continue e}if((d||1!==u.kind||!e.closingBracket)&&!D(u,t,n,i,r,s,d?o+1:o,d?c+1:c,h,l,!e.closingBracket))return!1}t=n}}return h?.set(e.openingBracket.text,c),!0}case 3:{const e=(0,x.lengthsToRange)(t,n);return s(new L(e,o-1,0,!0))}case 1:{const e=(0,x.lengthsToRange)(t,n);return s(new L(e,o-1,a-1,d))}case 0:return!0}}class M{constructor(e,t,n){this.push=e,this.includeMinIndentation=t,this.textModel=n}}function z(e,t,n,i,r,s,o,a){if(o>200)return!0;let h=!0;if(2===e.kind){let l=0;if(a){let t=a.get(e.openingBracket.text);void 0===t&&(t=0),l=t,t++,a.set(e.openingBracket.text,t)}const d=(0,x.lengthAdd)(t,e.openingBracket.length);let c=-1;if(s.includeMinIndentation&&(c=e.computeMinIndentation(t,s.textModel)),h=s.push(new T((0,x.lengthsToRange)(t,n),(0,x.lengthsToRange)(t,d),e.closingBracket?(0,x.lengthsToRange)((0,x.lengthAdd)(d,e.child?.length||x.lengthZero),n):void 0,o,l,e,c)),t=d,h&&e.child){const l=e.child;if(n=(0,x.lengthAdd)(t,l.length),(0,x.lengthLessThanEqual)(t,r)&&(0,x.lengthGreaterThanEqual)(n,i)&&(h=z(l,t,n,i,r,s,o+1,a),!h))return!1}a?.set(e.openingBracket.text,l)}else{let n=t;for(const t of e.children){const e=n;if(n=(0,x.lengthAdd)(n,t.length),(0,x.lengthLessThanEqual)(e,r)&&(0,x.lengthLessThanEqual)(i,n)&&(h=z(t,e,n,i,r,s,o,a),!h))return!1}}return h}class P extends a.Disposable{get canBuildAST(){return this.textModel.getValueLength()<=5e6}constructor(e,t){super(),this.textModel=e,this.languageConfigurationService=t,this.bracketPairsTree=this._register(new a.MutableDisposable),this.onDidChangeEmitter=new o.Emitter,this.onDidChange=this.onDidChangeEmitter.event,this.bracketsRequested=!1}handleLanguageConfigurationServiceChange(e){e.languageId&&!this.bracketPairsTree.value?.object.didLanguageChange(e.languageId)||(this.bracketPairsTree.clear(),this.updateBracketPairsTree())}handleDidChangeOptions(e){this.bracketPairsTree.clear(),this.updateBracketPairsTree()}handleDidChangeLanguage(e){this.bracketPairsTree.clear(),this.updateBracketPairsTree()}handleDidChangeContent(e){this.bracketPairsTree.value?.object.handleContentChanged(e)}handleDidChangeBackgroundTokenizationState(){this.bracketPairsTree.value?.object.handleDidChangeBackgroundTokenizationState()}handleDidChangeTokens(e){this.bracketPairsTree.value?.object.handleDidChangeTokens(e)}updateBracketPairsTree(){if(this.bracketsRequested&&this.canBuildAST){if(!this.bracketPairsTree.value){const n=new a.DisposableStore;this.bracketPairsTree.value=(e=n.add(new N(this.textModel,e=>this.languageConfigurationService.getLanguageConfiguration(e))),t=n,{object:e,dispose:()=>t?.dispose()}),n.add(this.bracketPairsTree.value.object.onDidChange(e=>this.onDidChangeEmitter.fire(e))),this.onDidChangeEmitter.fire()}}else this.bracketPairsTree.value&&(this.bracketPairsTree.clear(),this.onDidChangeEmitter.fire());var e,t}getBracketPairsInRange(e){return this.bracketsRequested=!0,this.updateBracketPairsTree(),this.bracketPairsTree.value?.object.getBracketPairsInRange(e,!1)||i.CallbackIterable.empty}getBracketPairsInRangeWithMinIndentation(e){return this.bracketsRequested=!0,this.updateBracketPairsTree(),this.bracketPairsTree.value?.object.getBracketPairsInRange(e,!0)||i.CallbackIterable.empty}getBracketsInRange(e,t=!1){return this.bracketsRequested=!0,this.updateBracketPairsTree(),this.bracketPairsTree.value?.object.getBracketsInRange(e,t)||i.CallbackIterable.empty}findMatchingBracketUp(e,t,n){const i=this.textModel.validatePosition(t),r=this.textModel.getLanguageIdAtPosition(i.lineNumber,i.column);if(this.canBuildAST){const n=this.languageConfigurationService.getLanguageConfiguration(r).bracketsNew.getClosingBracketInfo(e);if(!n)return null;const i=this.getBracketPairsInRange(g.Range.fromPositions(t,t)).findLast(e=>n.closes(e.openingBracketInfo));return i?i.openingBracketRange:null}{const t=e.toLowerCase(),s=this.languageConfigurationService.getLanguageConfiguration(r).brackets;if(!s)return null;const o=s.textIsBracket[t];return o?U(this._findMatchingBracketUp(o,i,y(n))):null}}matchBracket(e,t){if(this.canBuildAST){const t=this.getBracketPairsInRange(g.Range.fromPositions(e,e)).filter(t=>void 0!==t.closingBracketRange&&(t.openingBracketRange.containsPosition(e)||t.closingBracketRange.containsPosition(e))).findLastMaxBy((0,i.compareBy)(t=>t.openingBracketRange.containsPosition(e)?t.openingBracketRange:t.closingBracketRange,g.Range.compareRangesUsingStarts));return t?[t.openingBracketRange,t.closingBracketRange]:null}{const n=y(t);return this._matchBracket(this.textModel.validatePosition(e),n)}}_establishBracketSearchOffsets(e,t,n,i){const r=t.getCount(),s=t.getLanguageId(i);let o=Math.max(0,e.column-1-n.maxBracketLength);for(let e=i-1;e>=0;e--){const n=t.getEndOffset(e);if(n<=o)break;if((0,k.ignoreBracketsInToken)(t.getStandardTokenType(e))||t.getLanguageId(e)!==s){o=n;break}}let a=Math.min(t.getLineContent().length,e.column-1+n.maxBracketLength);for(let e=i+1;e<r;e++){const n=t.getStartOffset(e);if(n>=a)break;if((0,k.ignoreBracketsInToken)(t.getStandardTokenType(e))||t.getLanguageId(e)!==s){a=n;break}}return{searchStartOffset:o,searchEndOffset:a}}_matchBracket(e,t){const n=e.lineNumber,i=this.textModel.tokenization.getLineTokens(n),r=this.textModel.getLineContent(n),s=i.findTokenIndexAtOffset(e.column-1);if(s<0)return null;const o=this.languageConfigurationService.getLanguageConfiguration(i.getLanguageId(s)).brackets;if(o&&!(0,k.ignoreBracketsInToken)(i.getStandardTokenType(s))){let{searchStartOffset:a,searchEndOffset:h}=this._establishBracketSearchOffsets(e,i,o,s),l=null;for(;;){const i=b.BracketsUtils.findNextBracketInRange(o.forwardRegex,n,r,a,h);if(!i)break;if(i.startColumn<=e.column&&e.column<=i.endColumn){const e=r.substring(i.startColumn-1,i.endColumn-1).toLowerCase(),n=this._matchFoundBracket(i,o.textIsBracket[e],o.textIsOpenBracket[e],t);if(n){if(n instanceof F)return null;l=n}}a=i.endColumn-1}if(l)return l}if(s>0&&i.getStartOffset(s)===e.column-1){const o=s-1,a=this.languageConfigurationService.getLanguageConfiguration(i.getLanguageId(o)).brackets;if(a&&!(0,k.ignoreBracketsInToken)(i.getStandardTokenType(o))){const{searchStartOffset:s,searchEndOffset:h}=this._establishBracketSearchOffsets(e,i,a,o),l=b.BracketsUtils.findPrevBracketInRange(a.reversedRegex,n,r,s,h);if(l&&l.startColumn<=e.column&&e.column<=l.endColumn){const e=r.substring(l.startColumn-1,l.endColumn-1).toLowerCase(),n=this._matchFoundBracket(l,a.textIsBracket[e],a.textIsOpenBracket[e],t);if(n)return n instanceof F?null:n}}}return null}_matchFoundBracket(e,t,n,i){if(!t)return null;const r=n?this._findMatchingBracketDown(t,e.getEndPosition(),i):this._findMatchingBracketUp(t,e.getStartPosition(),i);return r?r instanceof F?r:[e,r]:null}_findMatchingBracketUp(e,t,n){const i=e.languageId,r=e.reversedRegex;let s=-1,o=0;const a=(t,i,a,h)=>{for(;;){if(n&&++o%100==0&&!n())return F.INSTANCE;const l=b.BracketsUtils.findPrevBracketInRange(r,t,i,a,h);if(!l)break;const d=i.substring(l.startColumn-1,l.endColumn-1).toLowerCase();if(e.isOpen(d)?s++:e.isClose(d)&&s--,0===s)return l;h=l.startColumn-1}return null};for(let e=t.lineNumber;e>=1;e--){const n=this.textModel.tokenization.getLineTokens(e),r=n.getCount(),s=this.textModel.getLineContent(e);let o=r-1,h=s.length,l=s.length;e===t.lineNumber&&(o=n.findTokenIndexAtOffset(t.column-1),h=t.column-1,l=t.column-1);let d=!0;for(;o>=0;o--){const t=n.getLanguageId(o)===i&&!(0,k.ignoreBracketsInToken)(n.getStandardTokenType(o));if(t)d?h=n.getStartOffset(o):(h=n.getStartOffset(o),l=n.getEndOffset(o));else if(d&&h!==l){const t=a(e,s,h,l);if(t)return t}d=t}if(d&&h!==l){const t=a(e,s,h,l);if(t)return t}}return null}_findMatchingBracketDown(e,t,n){const i=e.languageId,r=e.forwardRegex;let s=1,o=0;const a=(t,i,a,h)=>{for(;;){if(n&&++o%100==0&&!n())return F.INSTANCE;const l=b.BracketsUtils.findNextBracketInRange(r,t,i,a,h);if(!l)break;const d=i.substring(l.startColumn-1,l.endColumn-1).toLowerCase();if(e.isOpen(d)?s++:e.isClose(d)&&s--,0===s)return l;a=l.endColumn-1}return null},h=this.textModel.getLineCount();for(let e=t.lineNumber;e<=h;e++){const n=this.textModel.tokenization.getLineTokens(e),r=n.getCount(),s=this.textModel.getLineContent(e);let o=0,h=0,l=0;e===t.lineNumber&&(o=n.findTokenIndexAtOffset(t.column-1),h=t.column-1,l=t.column-1);let d=!0;for(;o<r;o++){const t=n.getLanguageId(o)===i&&!(0,k.ignoreBracketsInToken)(n.getStandardTokenType(o));if(t)d||(h=n.getStartOffset(o)),l=n.getEndOffset(o);else if(d&&h!==l){const t=a(e,s,h,l);if(t)return t}d=t}if(d&&h!==l){const t=a(e,s,h,l);if(t)return t}}return null}findPrevBracket(e){const t=this.textModel.validatePosition(e);if(this.canBuildAST)return this.bracketsRequested=!0,this.updateBracketPairsTree(),this.bracketPairsTree.value?.object.getFirstBracketBefore(t)||null;let n=null,i=null,r=null;for(let e=t.lineNumber;e>=1;e--){const s=this.textModel.tokenization.getLineTokens(e),o=s.getCount(),a=this.textModel.getLineContent(e);let h=o-1,l=a.length,d=a.length;if(e===t.lineNumber){h=s.findTokenIndexAtOffset(t.column-1),l=t.column-1,d=t.column-1;const e=s.getLanguageId(h);n!==e&&(n=e,i=this.languageConfigurationService.getLanguageConfiguration(n).brackets,r=this.languageConfigurationService.getLanguageConfiguration(n).bracketsNew)}let c=!0;for(;h>=0;h--){const t=s.getLanguageId(h);if(n!==t){if(i&&r&&c&&l!==d){const t=b.BracketsUtils.findPrevBracketInRange(i.reversedRegex,e,a,l,d);if(t)return this._toFoundBracket(r,t);c=!1}n=t,i=this.languageConfigurationService.getLanguageConfiguration(n).brackets,r=this.languageConfigurationService.getLanguageConfiguration(n).bracketsNew}const o=!!i&&!(0,k.ignoreBracketsInToken)(s.getStandardTokenType(h));if(o)c?l=s.getStartOffset(h):(l=s.getStartOffset(h),d=s.getEndOffset(h));else if(r&&i&&c&&l!==d){const t=b.BracketsUtils.findPrevBracketInRange(i.reversedRegex,e,a,l,d);if(t)return this._toFoundBracket(r,t)}c=o}if(r&&i&&c&&l!==d){const t=b.BracketsUtils.findPrevBracketInRange(i.reversedRegex,e,a,l,d);if(t)return this._toFoundBracket(r,t)}}return null}findNextBracket(e){const t=this.textModel.validatePosition(e);if(this.canBuildAST)return this.bracketsRequested=!0,this.updateBracketPairsTree(),this.bracketPairsTree.value?.object.getFirstBracketAfter(t)||null;const n=this.textModel.getLineCount();let i=null,r=null,s=null;for(let e=t.lineNumber;e<=n;e++){const n=this.textModel.tokenization.getLineTokens(e),o=n.getCount(),a=this.textModel.getLineContent(e);let h=0,l=0,d=0;if(e===t.lineNumber){h=n.findTokenIndexAtOffset(t.column-1),l=t.column-1,d=t.column-1;const e=n.getLanguageId(h);i!==e&&(i=e,r=this.languageConfigurationService.getLanguageConfiguration(i).brackets,s=this.languageConfigurationService.getLanguageConfiguration(i).bracketsNew)}let c=!0;for(;h<o;h++){const t=n.getLanguageId(h);if(i!==t){if(s&&r&&c&&l!==d){const t=b.BracketsUtils.findNextBracketInRange(r.forwardRegex,e,a,l,d);if(t)return this._toFoundBracket(s,t);c=!1}i=t,r=this.languageConfigurationService.getLanguageConfiguration(i).brackets,s=this.languageConfigurationService.getLanguageConfiguration(i).bracketsNew}const o=!!r&&!(0,k.ignoreBracketsInToken)(n.getStandardTokenType(h));if(o)c||(l=n.getStartOffset(h)),d=n.getEndOffset(h);else if(s&&r&&c&&l!==d){const t=b.BracketsUtils.findNextBracketInRange(r.forwardRegex,e,a,l,d);if(t)return this._toFoundBracket(s,t)}c=o}if(s&&r&&c&&l!==d){const t=b.BracketsUtils.findNextBracketInRange(r.forwardRegex,e,a,l,d);if(t)return this._toFoundBracket(s,t)}}return null}findEnclosingBrackets(e,t){const n=this.textModel.validatePosition(e);if(this.canBuildAST){const e=g.Range.fromPositions(n),t=this.getBracketPairsInRange(g.Range.fromPositions(n,n)).findLast(t=>void 0!==t.closingBracketRange&&t.range.strictContainsRange(e));return t?[t.openingBracketRange,t.closingBracketRange]:null}const i=y(t),r=this.textModel.getLineCount(),s=new Map;let o=[];const a=(e,t)=>{if(!s.has(e)){const n=[];for(let e=0,i=t?t.brackets.length:0;e<i;e++)n[e]=0;s.set(e,n)}o=s.get(e)};let h=0;const l=(e,t,n,r,s)=>{for(;;){if(i&&++h%100==0&&!i())return F.INSTANCE;const a=b.BracketsUtils.findNextBracketInRange(e.forwardRegex,t,n,r,s);if(!a)break;const l=n.substring(a.startColumn-1,a.endColumn-1).toLowerCase(),d=e.textIsBracket[l];if(d&&(d.isOpen(l)?o[d.index]++:d.isClose(l)&&o[d.index]--,-1===o[d.index]))return this._matchFoundBracket(a,d,!1,i);r=a.endColumn-1}return null};let d=null,c=null;for(let e=n.lineNumber;e<=r;e++){const t=this.textModel.tokenization.getLineTokens(e),i=t.getCount(),r=this.textModel.getLineContent(e);let s=0,o=0,h=0;if(e===n.lineNumber){s=t.findTokenIndexAtOffset(n.column-1),o=n.column-1,h=n.column-1;const e=t.getLanguageId(s);d!==e&&(d=e,c=this.languageConfigurationService.getLanguageConfiguration(d).brackets,a(d,c))}let u=!0;for(;s<i;s++){const n=t.getLanguageId(s);if(d!==n){if(c&&u&&o!==h){const t=l(c,e,r,o,h);if(t)return U(t);u=!1}d=n,c=this.languageConfigurationService.getLanguageConfiguration(d).brackets,a(d,c)}const i=!!c&&!(0,k.ignoreBracketsInToken)(t.getStandardTokenType(s));if(i)u||(o=t.getStartOffset(s)),h=t.getEndOffset(s);else if(c&&u&&o!==h){const t=l(c,e,r,o,h);if(t)return U(t)}u=i}if(c&&u&&o!==h){const t=l(c,e,r,o,h);if(t)return U(t)}}return null}_toFoundBracket(e,t){if(!t)return null;let n=this.textModel.getValueInRange(t);n=n.toLowerCase();const i=e.getBracketInfo(n);return i?{range:t,bracketInfo:i}:null}}function y(e){if(void 0===e)return()=>!0;{const t=Date.now();return()=>Date.now()-t<=e}}class F{static{this.INSTANCE=new F}constructor(){this._searchCanceledBrand=void 0}}function U(e){return e instanceof F?null:e}var W=n(41422),G=n(19729);class H extends a.Disposable{constructor(e){super(),this.textModel=e,this.colorProvider=new V,this.onDidChangeEmitter=new o.Emitter,this.onDidChange=this.onDidChangeEmitter.event,this.colorizationOptions=e.getOptions().bracketPairColorizationOptions,this._register(e.bracketPairs.onDidChange(e=>{this.onDidChangeEmitter.fire()}))}handleDidChangeOptions(e){this.colorizationOptions=this.textModel.getOptions().bracketPairColorizationOptions}getDecorationsInRange(e,t,n,i){return i||void 0===t?[]:this.colorizationOptions.enabled?this.textModel.bracketPairs.getBracketsInRange(e,!0).map(e=>({id:`bracket${e.range.toString()}-${e.nestingLevel}`,options:{description:"BracketPairColorization",inlineClassName:this.colorProvider.getInlineClassName(e,this.colorizationOptions.independentColorPoolPerBracketType)},ownerId:0,range:e.range})).toArray():[]}getAllDecorations(e,t){return void 0===e?[]:this.colorizationOptions.enabled?this.getDecorationsInRange(new g.Range(1,1,this.textModel.getLineCount(),1),e,t):[]}}class V{constructor(){this.unexpectedClosingBracketClassName="unexpected-closing-bracket"}getInlineClassName(e,t){return e.isInvalid?this.unexpectedClosingBracketClassName:this.getInlineClassNameOfLevel(t?e.nestingLevelOfEqualBracketType:e.nestingLevel)}getInlineClassNameOfLevel(e){return"bracket-highlighting-"+e%30}}(0,G.registerThemingParticipant)((e,t)=>{const n=[W.editorBracketHighlightingForeground1,W.editorBracketHighlightingForeground2,W.editorBracketHighlightingForeground3,W.editorBracketHighlightingForeground4,W.editorBracketHighlightingForeground5,W.editorBracketHighlightingForeground6],i=new V;t.addRule(`.monaco-editor .${i.unexpectedClosingBracketClassName} { color: ${e.getColor(W.editorBracketHighlightingUnexpectedBracketForeground)}; }`);const r=n.map(t=>e.getColor(t)).filter(e=>!!e).filter(e=>!e.isTransparent());for(let e=0;e<30;e++){const n=r[e%r.length];t.addRule(`.monaco-editor .${i.getInlineClassNameOfLevel(e)} { color: ${n}; }`)}});var j=n(95683),q=n(45277);class ${constructor(){this.spacesDiff=0,this.looksLikeAlignment=!1}}function Z(e,t,n,i,r){let s;for(r.spacesDiff=0,r.looksLikeAlignment=!1,s=0;s<t&&s<i&&e.charCodeAt(s)===n.charCodeAt(s);s++);let o=0,a=0;for(let n=s;n<t;n++)32===e.charCodeAt(n)?o++:a++;let h=0,l=0;for(let e=s;e<i;e++)32===n.charCodeAt(e)?h++:l++;if(o>0&&a>0)return;if(h>0&&l>0)return;const d=Math.abs(a-l),c=Math.abs(o-h);if(0===d)return r.spacesDiff=c,void(c>0&&0<=h-1&&h-1<e.length&&h<n.length&&32!==n.charCodeAt(h)&&32===e.charCodeAt(h-1)&&44===e.charCodeAt(e.length-1)&&(r.looksLikeAlignment=!0));c%d!==0||(r.spacesDiff=c/d)}function K(e,t,n){const i=Math.min(e.getLineCount(),1e4);let r=0,s=0,o="",a=0;const h=[2,4,6,8,3,5,7],l=[0,0,0,0,0,0,0,0,0],d=new $;for(let h=1;h<=i;h++){const i=e.getLineLength(h),c=e.getLineContent(h),u=i<=65536;let g=!1,f=0,_=0,p=0;for(let t=0,n=i;t<n;t++){const n=u?c.charCodeAt(t):e.getLineCharCode(h,t);if(9===n)p++;else{if(32!==n){g=!0,f=t;break}_++}}if(!g)continue;if(p>0?r++:_>1&&s++,Z(o,a,c,f,d),d.looksLikeAlignment&&(!n||t!==d.spacesDiff))continue;const m=d.spacesDiff;m<=8&&l[m]++,o=c,a=f}let c=n;r!==s&&(c=r<s);let u=t;if(c){let e=c?0:.1*i;h.forEach(t=>{const n=l[t];n>e&&(e=n,u=t)}),4===u&&l[4]>0&&l[2]>0&&l[2]>=l[4]/2&&(u=2)}return{insertSpaces:c,tabSize:u}}function X(e){return(1&e.metadata)>>>0}function Q(e,t){e.metadata=254&e.metadata|t}function Y(e){return(2&e.metadata)>>>1==1}function J(e,t){e.metadata=253&e.metadata|(t?1:0)<<1}function ee(e){return(4&e.metadata)>>>2==1}function te(e,t){e.metadata=251&e.metadata|(t?1:0)<<2}function ne(e){return(64&e.metadata)>>>6==1}function ie(e,t){e.metadata=191&e.metadata|(t?1:0)<<6}function re(e,t){e.metadata=231&e.metadata|t<<3}function se(e,t){e.metadata=223&e.metadata|(t?1:0)<<5}class oe{constructor(e,t,n){this.metadata=0,this.parent=this,this.left=this,this.right=this,Q(this,1),this.start=t,this.end=n,this.delta=0,this.maxEnd=n,this.id=e,this.ownerId=0,this.options=null,te(this,!1),ie(this,!1),re(this,1),se(this,!1),this.cachedVersionId=0,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=n,this.range=null,J(this,!1)}reset(e,t,n,i){this.start=t,this.end=n,this.maxEnd=n,this.cachedVersionId=e,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=n,this.range=i}setOptions(e){this.options=e;const t=this.options.className;te(this,"squiggly-error"===t||"squiggly-warning"===t||"squiggly-info"===t),ie(this,null!==this.options.glyphMarginClassName),re(this,this.options.stickiness),se(this,this.options.collapseOnReplaceEdit)}setCachedOffsets(e,t,n){this.cachedVersionId!==n&&(this.range=null),this.cachedVersionId=n,this.cachedAbsoluteStart=e,this.cachedAbsoluteEnd=t}detach(){this.parent=null,this.left=null,this.right=null}}const ae=new oe(null,0,0);ae.parent=ae,ae.left=ae,ae.right=ae,Q(ae,0);class he{constructor(){this.root=ae,this.requestNormalizeDelta=!1}intervalSearch(e,t,n,i,r,s){return this.root===ae?[]:function(e,t,n,i,r,s,o){let a=e.root,h=0,l=0,d=0,c=0;const u=[];let g=0;for(;a!==ae;)if(Y(a))J(a.left,!1),J(a.right,!1),a===a.parent.right&&(h-=a.parent.delta),a=a.parent;else{if(!Y(a.left)){if(l=h+a.maxEnd,l<t){J(a,!0);continue}if(a.left!==ae){a=a.left;continue}}if(d=h+a.start,d>n)J(a,!0);else{if(c=h+a.end,c>=t){a.setCachedOffsets(d,c,s);let e=!0;i&&a.ownerId&&a.ownerId!==i&&(e=!1),r&&ee(a)&&(e=!1),o&&!ne(a)&&(e=!1),e&&(u[g++]=a)}J(a,!0),a.right===ae||Y(a.right)||(h+=a.delta,a=a.right)}}return J(e.root,!1),u}(this,e,t,n,i,r,s)}search(e,t,n,i){return this.root===ae?[]:function(e,t,n,i,r){let s=e.root,o=0,a=0,h=0;const l=[];let d=0;for(;s!==ae;){if(Y(s)){J(s.left,!1),J(s.right,!1),s===s.parent.right&&(o-=s.parent.delta),s=s.parent;continue}if(s.left!==ae&&!Y(s.left)){s=s.left;continue}a=o+s.start,h=o+s.end,s.setCachedOffsets(a,h,i);let e=!0;t&&s.ownerId&&s.ownerId!==t&&(e=!1),n&&ee(s)&&(e=!1),r&&!ne(s)&&(e=!1),e&&(l[d++]=s),J(s,!0),s.right===ae||Y(s.right)||(o+=s.delta,s=s.right)}return J(e.root,!1),l}(this,e,t,n,i)}collectNodesFromOwner(e){return function(e,t){let n=e.root;const i=[];let r=0;for(;n!==ae;)Y(n)?(J(n.left,!1),J(n.right,!1),n=n.parent):n.left===ae||Y(n.left)?(n.ownerId===t&&(i[r++]=n),J(n,!0),n.right===ae||Y(n.right)||(n=n.right)):n=n.left;return J(e.root,!1),i}(this,e)}collectNodesPostOrder(){return function(e){let t=e.root;const n=[];let i=0;for(;t!==ae;)Y(t)?(J(t.left,!1),J(t.right,!1),t=t.parent):t.left===ae||Y(t.left)?t.right===ae||Y(t.right)?(n[i++]=t,J(t,!0)):t=t.right:t=t.left;return J(e.root,!1),n}(this)}insert(e){ce(this,e),this._normalizeDeltaIfNecessary()}delete(e){ue(this,e),this._normalizeDeltaIfNecessary()}resolveNode(e,t){const n=e;let i=0;for(;e!==this.root;)e===e.parent.right&&(i+=e.parent.delta),e=e.parent;const r=n.start+i,s=n.end+i;n.setCachedOffsets(r,s,t)}acceptReplace(e,t,n,i){const r=function(e,t,n){let i=e.root,r=0,s=0,o=0,a=0;const h=[];let l=0;for(;i!==ae;)if(Y(i))J(i.left,!1),J(i.right,!1),i===i.parent.right&&(r-=i.parent.delta),i=i.parent;else{if(!Y(i.left)){if(s=r+i.maxEnd,s<t){J(i,!0);continue}if(i.left!==ae){i=i.left;continue}}o=r+i.start,o>n?J(i,!0):(a=r+i.end,a>=t&&(i.setCachedOffsets(o,a,0),h[l++]=i),J(i,!0),i.right===ae||Y(i.right)||(r+=i.delta,i=i.right))}return J(e.root,!1),h}(this,e,e+t);for(let e=0,t=r.length;e<t;e++)ue(this,r[e]);this._normalizeDeltaIfNecessary(),function(e,t,n,i){let r=e.root,s=0,o=0,a=0;const h=i-(n-t);for(;r!==ae;)if(Y(r))J(r.left,!1),J(r.right,!1),r===r.parent.right&&(s-=r.parent.delta),me(r),r=r.parent;else{if(!Y(r.left)){if(o=s+r.maxEnd,o<t){J(r,!0);continue}if(r.left!==ae){r=r.left;continue}}a=s+r.start,a>n?(r.start+=h,r.end+=h,r.delta+=h,(r.delta<-1073741824||r.delta>1073741824)&&(e.requestNormalizeDelta=!0),J(r,!0)):(J(r,!0),r.right===ae||Y(r.right)||(s+=r.delta,r=r.right))}J(e.root,!1)}(this,e,e+t,n),this._normalizeDeltaIfNecessary();for(let s=0,o=r.length;s<o;s++){const o=r[s];o.start=o.cachedAbsoluteStart,o.end=o.cachedAbsoluteEnd,de(o,e,e+t,n,i),o.maxEnd=o.end,ce(this,o)}this._normalizeDeltaIfNecessary()}_normalizeDeltaIfNecessary(){this.requestNormalizeDelta&&(this.requestNormalizeDelta=!1,function(e){let t=e.root,n=0;for(;t!==ae;)t.left===ae||Y(t.left)?t.right===ae||Y(t.right)?(t.start=n+t.start,t.end=n+t.end,t.delta=0,me(t),J(t,!0),J(t.left,!1),J(t.right,!1),t===t.parent.right&&(n-=t.parent.delta),t=t.parent):(n+=t.delta,t=t.right):t=t.left;J(e.root,!1)}(this))}}function le(e,t,n,i){return e<n||!(e>n)&&1!==i&&(2===i||t)}function de(e,t,n,i,r){const s=function(e){return(24&e.metadata)>>>3}(e),o=0===s||2===s,a=1===s||2===s,h=n-t,l=i,d=Math.min(h,l),c=e.start;let u=!1;const g=e.end;let f=!1;t<=c&&g<=n&&function(e){return(32&e.metadata)>>>5==1}(e)&&(e.start=t,u=!0,e.end=t,f=!0);{const e=r?1:h>0?2:0;!u&&le(c,o,t,e)&&(u=!0),!f&&le(g,a,t,e)&&(f=!0)}if(d>0&&!r){const e=h>l?2:0;!u&&le(c,o,t+d,e)&&(u=!0),!f&&le(g,a,t+d,e)&&(f=!0)}{const i=r?1:0;!u&&le(c,o,n,i)&&(e.start=t+l,u=!0),!f&&le(g,a,n,i)&&(e.end=t+l,f=!0)}const _=l-h;u||(e.start=Math.max(0,c+_)),f||(e.end=Math.max(0,g+_)),e.start>e.end&&(e.end=e.start)}function ce(e,t){if(e.root===ae)return t.parent=ae,t.left=ae,t.right=ae,Q(t,0),e.root=t,e.root;!function(e,t){let n=0,i=e.root;const r=t.start,s=t.end;for(;;)if(ke(r,s,i.start+n,i.end+n)<0){if(i.left===ae){t.start-=n,t.end-=n,t.maxEnd-=n,i.left=t;break}i=i.left}else{if(i.right===ae){t.start-=n+i.delta,t.end-=n+i.delta,t.maxEnd-=n+i.delta,i.right=t;break}n+=i.delta,i=i.right}t.parent=i,t.left=ae,t.right=ae,Q(t,1)}(e,t),Ce(t.parent);let n=t;for(;n!==e.root&&1===X(n.parent);)if(n.parent===n.parent.parent.left){const t=n.parent.parent.right;1===X(t)?(Q(n.parent,0),Q(t,0),Q(n.parent.parent,1),n=n.parent.parent):(n===n.parent.right&&(n=n.parent,fe(e,n)),Q(n.parent,0),Q(n.parent.parent,1),_e(e,n.parent.parent))}else{const t=n.parent.parent.left;1===X(t)?(Q(n.parent,0),Q(t,0),Q(n.parent.parent,1),n=n.parent.parent):(n===n.parent.left&&(n=n.parent,_e(e,n)),Q(n.parent,0),Q(n.parent.parent,1),fe(e,n.parent.parent))}return Q(e.root,0),t}function ue(e,t){let n,i;if(t.left===ae?(n=t.right,i=t,n.delta+=t.delta,(n.delta<-1073741824||n.delta>1073741824)&&(e.requestNormalizeDelta=!0),n.start+=t.delta,n.end+=t.delta):t.right===ae?(n=t.left,i=t):(i=function(e){for(;e.left!==ae;)e=e.left;return e}(t.right),n=i.right,n.start+=i.delta,n.end+=i.delta,n.delta+=i.delta,(n.delta<-1073741824||n.delta>1073741824)&&(e.requestNormalizeDelta=!0),i.start+=t.delta,i.end+=t.delta,i.delta=t.delta,(i.delta<-1073741824||i.delta>1073741824)&&(e.requestNormalizeDelta=!0)),i===e.root)return e.root=n,Q(n,0),t.detach(),ge(),me(n),void(e.root.parent=ae);const r=1===X(i);if(i===i.parent.left?i.parent.left=n:i.parent.right=n,i===t?n.parent=i.parent:(i.parent===t?n.parent=i:n.parent=i.parent,i.left=t.left,i.right=t.right,i.parent=t.parent,Q(i,X(t)),t===e.root?e.root=i:t===t.parent.left?t.parent.left=i:t.parent.right=i,i.left!==ae&&(i.left.parent=i),i.right!==ae&&(i.right.parent=i)),t.detach(),r)return Ce(n.parent),i!==t&&(Ce(i),Ce(i.parent)),void ge();let s;for(Ce(n),Ce(n.parent),i!==t&&(Ce(i),Ce(i.parent));n!==e.root&&0===X(n);)n===n.parent.left?(s=n.parent.right,1===X(s)&&(Q(s,0),Q(n.parent,1),fe(e,n.parent),s=n.parent.right),0===X(s.left)&&0===X(s.right)?(Q(s,1),n=n.parent):(0===X(s.right)&&(Q(s.left,0),Q(s,1),_e(e,s),s=n.parent.right),Q(s,X(n.parent)),Q(n.parent,0),Q(s.right,0),fe(e,n.parent),n=e.root)):(s=n.parent.left,1===X(s)&&(Q(s,0),Q(n.parent,1),_e(e,n.parent),s=n.parent.left),0===X(s.left)&&0===X(s.right)?(Q(s,1),n=n.parent):(0===X(s.left)&&(Q(s.right,0),Q(s,1),fe(e,s),s=n.parent.left),Q(s,X(n.parent)),Q(n.parent,0),Q(s.left,0),_e(e,n.parent),n=e.root));Q(n,0),ge()}function ge(){ae.parent=ae,ae.delta=0,ae.start=0,ae.end=0}function fe(e,t){const n=t.right;n.delta+=t.delta,(n.delta<-1073741824||n.delta>1073741824)&&(e.requestNormalizeDelta=!0),n.start+=t.delta,n.end+=t.delta,t.right=n.left,n.left!==ae&&(n.left.parent=t),n.parent=t.parent,t.parent===ae?e.root=n:t===t.parent.left?t.parent.left=n:t.parent.right=n,n.left=t,t.parent=n,me(t),me(n)}function _e(e,t){const n=t.left;t.delta-=n.delta,(t.delta<-1073741824||t.delta>1073741824)&&(e.requestNormalizeDelta=!0),t.start-=n.delta,t.end-=n.delta,t.left=n.right,n.right!==ae&&(n.right.parent=t),n.parent=t.parent,t.parent===ae?e.root=n:t===t.parent.right?t.parent.right=n:t.parent.left=n,n.right=t,t.parent=n,me(t),me(n)}function pe(e){let t=e.end;if(e.left!==ae){const n=e.left.maxEnd;n>t&&(t=n)}if(e.right!==ae){const n=e.right.maxEnd+e.delta;n>t&&(t=n)}return t}function me(e){e.maxEnd=pe(e)}function Ce(e){for(;e!==ae;){const t=pe(e);if(e.maxEnd===t)return;e.maxEnd=t,e=e.parent}}function ke(e,t,n,i){return e===n?t-i:e-n}class be{constructor(e,t){this.piece=e,this.color=t,this.size_left=0,this.lf_left=0,this.parent=this,this.left=this,this.right=this}next(){if(this.right!==Le)return Ie(this.right);let e=this;for(;e.parent!==Le&&e.parent.left!==e;)e=e.parent;return e.parent===Le?Le:e.parent}prev(){if(this.left!==Le)return Te(this.left);let e=this;for(;e.parent!==Le&&e.parent.right!==e;)e=e.parent;return e.parent===Le?Le:e.parent}detach(){this.parent=null,this.left=null,this.right=null}}const Le=new be(null,0);function Ie(e){for(;e.left!==Le;)e=e.left;return e}function Te(e){for(;e.right!==Le;)e=e.right;return e}function Se(e){return e===Le?0:e.size_left+e.piece.length+Se(e.right)}function ve(e){return e===Le?0:e.lf_left+e.piece.lineFeedCnt+ve(e.right)}function xe(){Le.parent=Le}function Ee(e,t){const n=t.right;n.size_left+=t.size_left+(t.piece?t.piece.length:0),n.lf_left+=t.lf_left+(t.piece?t.piece.lineFeedCnt:0),t.right=n.left,n.left!==Le&&(n.left.parent=t),n.parent=t.parent,t.parent===Le?e.root=n:t.parent.left===t?t.parent.left=n:t.parent.right=n,n.left=t,t.parent=n}function we(e,t){const n=t.left;t.left=n.right,n.right!==Le&&(n.right.parent=t),n.parent=t.parent,t.size_left-=n.size_left+(n.piece?n.piece.length:0),t.lf_left-=n.lf_left+(n.piece?n.piece.lineFeedCnt:0),t.parent===Le?e.root=n:t===t.parent.right?t.parent.right=n:t.parent.left=n,n.right=t,t.parent=n}function Be(e,t){let n,i;if(t.left===Le?(i=t,n=i.right):t.right===Le?(i=t,n=i.left):(i=Ie(t.right),n=i.right),i===e.root)return e.root=n,n.color=0,t.detach(),xe(),void(e.root.parent=Le);const r=1===i.color;if(i===i.parent.left?i.parent.left=n:i.parent.right=n,i===t?(n.parent=i.parent,Re(e,n)):(i.parent===t?n.parent=i:n.parent=i.parent,Re(e,n),i.left=t.left,i.right=t.right,i.parent=t.parent,i.color=t.color,t===e.root?e.root=i:t===t.parent.left?t.parent.left=i:t.parent.right=i,i.left!==Le&&(i.left.parent=i),i.right!==Le&&(i.right.parent=i),i.size_left=t.size_left,i.lf_left=t.lf_left,Re(e,i)),t.detach(),n.parent.left===n){const t=Se(n),i=ve(n);if(t!==n.parent.size_left||i!==n.parent.lf_left){const r=t-n.parent.size_left,s=i-n.parent.lf_left;n.parent.size_left=t,n.parent.lf_left=i,Ne(e,n.parent,r,s)}}if(Re(e,n.parent),r)return void xe();let s;for(;n!==e.root&&0===n.color;)n===n.parent.left?(s=n.parent.right,1===s.color&&(s.color=0,n.parent.color=1,Ee(e,n.parent),s=n.parent.right),0===s.left.color&&0===s.right.color?(s.color=1,n=n.parent):(0===s.right.color&&(s.left.color=0,s.color=1,we(e,s),s=n.parent.right),s.color=n.parent.color,n.parent.color=0,s.right.color=0,Ee(e,n.parent),n=e.root)):(s=n.parent.left,1===s.color&&(s.color=0,n.parent.color=1,we(e,n.parent),s=n.parent.left),0===s.left.color&&0===s.right.color?(s.color=1,n=n.parent):(0===s.left.color&&(s.right.color=0,s.color=1,Ee(e,s),s=n.parent.left),s.color=n.parent.color,n.parent.color=0,s.left.color=0,we(e,n.parent),n=e.root));n.color=0,xe()}function Oe(e,t){for(Re(e,t);t!==e.root&&1===t.parent.color;)if(t.parent===t.parent.parent.left){const n=t.parent.parent.right;1===n.color?(t.parent.color=0,n.color=0,t.parent.parent.color=1,t=t.parent.parent):(t===t.parent.right&&Ee(e,t=t.parent),t.parent.color=0,t.parent.parent.color=1,we(e,t.parent.parent))}else{const n=t.parent.parent.left;1===n.color?(t.parent.color=0,n.color=0,t.parent.parent.color=1,t=t.parent.parent):(t===t.parent.left&&we(e,t=t.parent),t.parent.color=0,t.parent.parent.color=1,Ee(e,t.parent.parent))}e.root.color=0}function Ne(e,t,n,i){for(;t!==e.root&&t!==Le;)t.parent.left===t&&(t.parent.size_left+=n,t.parent.lf_left+=i),t=t.parent}function Re(e,t){let n=0,i=0;if(t!==e.root){for(;t!==e.root&&t===t.parent.right;)t=t.parent;if(t!==e.root)for(n=Se((t=t.parent).left)-t.size_left,i=ve(t.left)-t.lf_left,t.size_left+=n,t.lf_left+=i;t!==e.root&&(0!==n||0!==i);)t.parent.left===t&&(t.parent.size_left+=n,t.parent.lf_left+=i),t=t.parent}}Le.parent=Le,Le.left=Le,Le.right=Le,Le.color=0;var Ae=n(15439);const De=65535;function Me(e){let t;return t=e[e.length-1]<65536?new Uint16Array(e.length):new Uint32Array(e.length),t.set(e,0),t}class ze{constructor(e,t,n,i,r){this.lineStarts=e,this.cr=t,this.lf=n,this.crlf=i,this.isBasicASCII=r}}function Pe(e,t=!0){const n=[0];let i=1;for(let t=0,r=e.length;t<r;t++){const s=e.charCodeAt(t);13===s?t+1<r&&10===e.charCodeAt(t+1)?(n[i++]=t+2,t++):n[i++]=t+1:10===s&&(n[i++]=t+1)}return t?Me(n):n}class ye{constructor(e,t,n,i,r){this.bufferIndex=e,this.start=t,this.end=n,this.lineFeedCnt=i,this.length=r}}class Fe{constructor(e,t){this.buffer=e,this.lineStarts=t}}class Ue{constructor(e,t){this._pieces=[],this._tree=e,this._BOM=t,this._index=0,e.root!==Le&&e.iterate(e.root,e=>(e!==Le&&this._pieces.push(e.piece),!0))}read(){return 0===this._pieces.length?0===this._index?(this._index++,this._BOM):null:this._index>this._pieces.length-1?null:0===this._index?this._BOM+this._tree.getPieceContent(this._pieces[this._index++]):this._tree.getPieceContent(this._pieces[this._index++])}}class We{constructor(e){this._limit=e,this._cache=[]}get(e){for(let t=this._cache.length-1;t>=0;t--){const n=this._cache[t];if(n.nodeStartOffset<=e&&n.nodeStartOffset+n.node.piece.length>=e)return n}return null}get2(e){for(let t=this._cache.length-1;t>=0;t--){const n=this._cache[t];if(n.nodeStartLineNumber&&n.nodeStartLineNumber<e&&n.nodeStartLineNumber+n.node.piece.lineFeedCnt>=e)return n}return null}set(e){this._cache.length>=this._limit&&this._cache.shift(),this._cache.push(e)}validate(e){let t=!1;const n=this._cache;for(let i=0;i<n.length;i++){const r=n[i];(null===r.node.parent||r.nodeStartOffset>=e)&&(n[i]=null,t=!0)}if(t){const e=[];for(const t of n)null!==t&&e.push(t);this._cache=e}}}class Ge{constructor(e,t,n){this.create(e,t,n)}create(e,t,n){this._buffers=[new Fe("",[0])],this._lastChangeBufferPos={line:0,column:0},this.root=Le,this._lineCnt=1,this._length=0,this._EOL=t,this._EOLLength=t.length,this._EOLNormalized=n;let i=null;for(let t=0,n=e.length;t<n;t++)if(e[t].buffer.length>0){e[t].lineStarts||(e[t].lineStarts=Pe(e[t].buffer));const n=new ye(t+1,{line:0,column:0},{line:e[t].lineStarts.length-1,column:e[t].buffer.length-e[t].lineStarts[e[t].lineStarts.length-1]},e[t].lineStarts.length-1,e[t].buffer.length);this._buffers.push(e[t]),i=this.rbInsertRight(i,n)}this._searchCache=new We(1),this._lastVisitedLine={lineNumber:0,value:""},this.computeBufferMetadata()}normalizeEOL(e){const t=65535-Math.floor(21845),n=2*t;let i="",r=0;const s=[];if(this.iterate(this.root,o=>{const a=this.getNodeContent(o),h=a.length;if(r<=t||r+h<n)return i+=a,r+=h,!0;const l=i.replace(/\r\n|\r|\n/g,e);return s.push(new Fe(l,Pe(l))),i=a,r=h,!0}),r>0){const t=i.replace(/\r\n|\r|\n/g,e);s.push(new Fe(t,Pe(t)))}this.create(s,e,!0)}getEOL(){return this._EOL}setEOL(e){this._EOL=e,this._EOLLength=this._EOL.length,this.normalizeEOL(e)}createSnapshot(e){return new Ue(this,e)}getOffsetAt(e,t){let n=0,i=this.root;for(;i!==Le;)if(i.left!==Le&&i.lf_left+1>=e)i=i.left;else{if(i.lf_left+i.piece.lineFeedCnt+1>=e)return n+=i.size_left,n+(this.getAccumulatedValue(i,e-i.lf_left-2)+t-1);e-=i.lf_left+i.piece.lineFeedCnt,n+=i.size_left+i.piece.length,i=i.right}return n}getPositionAt(e){e=Math.floor(e),e=Math.max(0,e);let t=this.root,n=0;const i=e;for(;t!==Le;)if(0!==t.size_left&&t.size_left>=e)t=t.left;else{if(t.size_left+t.piece.length>=e){const r=this.getIndexOf(t,e-t.size_left);if(n+=t.lf_left+r.index,0===r.index){const e=i-this.getOffsetAt(n+1,1);return new u.Position(n+1,e+1)}return new u.Position(n+1,r.remainder+1)}if(e-=t.size_left+t.piece.length,n+=t.lf_left+t.piece.lineFeedCnt,t.right===Le){const t=i-e-this.getOffsetAt(n+1,1);return new u.Position(n+1,t+1)}t=t.right}return new u.Position(1,1)}getValueInRange(e,t){if(e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn)return"";const n=this.nodeAt2(e.startLineNumber,e.startColumn),i=this.nodeAt2(e.endLineNumber,e.endColumn),r=this.getValueInRange2(n,i);return t?t===this._EOL&&this._EOLNormalized&&t===this.getEOL()&&this._EOLNormalized?r:r.replace(/\r\n|\r|\n/g,t):r}getValueInRange2(e,t){if(e.node===t.node){const n=e.node,i=this._buffers[n.piece.bufferIndex].buffer,r=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);return i.substring(r+e.remainder,r+t.remainder)}let n=e.node;const i=this._buffers[n.piece.bufferIndex].buffer,r=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);let s=i.substring(r+e.remainder,r+n.piece.length);for(n=n.next();n!==Le;){const e=this._buffers[n.piece.bufferIndex].buffer,i=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);if(n===t.node){s+=e.substring(i,i+t.remainder);break}s+=e.substr(i,n.piece.length),n=n.next()}return s}getLinesContent(){const e=[];let t=0,n="",i=!1;return this.iterate(this.root,r=>{if(r===Le)return!0;const s=r.piece;let o=s.length;if(0===o)return!0;const a=this._buffers[s.bufferIndex].buffer,h=this._buffers[s.bufferIndex].lineStarts,l=s.start.line,d=s.end.line;let c=h[l]+s.start.column;if(i&&(10===a.charCodeAt(c)&&(c++,o--),e[t++]=n,n="",i=!1,0===o))return!0;if(l===d)return this._EOLNormalized||13!==a.charCodeAt(c+o-1)?n+=a.substr(c,o):(i=!0,n+=a.substr(c,o-1)),!0;n+=this._EOLNormalized?a.substring(c,Math.max(c,h[l+1]-this._EOLLength)):a.substring(c,h[l+1]).replace(/(\r\n|\r|\n)$/,""),e[t++]=n;for(let i=l+1;i<d;i++)n=this._EOLNormalized?a.substring(h[i],h[i+1]-this._EOLLength):a.substring(h[i],h[i+1]).replace(/(\r\n|\r|\n)$/,""),e[t++]=n;return this._EOLNormalized||13!==a.charCodeAt(h[d]+s.end.column-1)?n=a.substr(h[d],s.end.column):(i=!0,0===s.end.column?t--:n=a.substr(h[d],s.end.column-1)),!0}),i&&(e[t++]=n,n=""),e[t++]=n,e}getLength(){return this._length}getLineCount(){return this._lineCnt}getLineContent(e){return this._lastVisitedLine.lineNumber===e||(this._lastVisitedLine.lineNumber=e,e===this._lineCnt?this._lastVisitedLine.value=this.getLineRawContent(e):this._EOLNormalized?this._lastVisitedLine.value=this.getLineRawContent(e,this._EOLLength):this._lastVisitedLine.value=this.getLineRawContent(e).replace(/(\r\n|\r|\n)$/,"")),this._lastVisitedLine.value}_getCharCode(e){if(e.remainder===e.node.piece.length){const t=e.node.next();if(!t)return 0;const n=this._buffers[t.piece.bufferIndex],i=this.offsetInBuffer(t.piece.bufferIndex,t.piece.start);return n.buffer.charCodeAt(i)}{const t=this._buffers[e.node.piece.bufferIndex],n=this.offsetInBuffer(e.node.piece.bufferIndex,e.node.piece.start)+e.remainder;return t.buffer.charCodeAt(n)}}getLineCharCode(e,t){const n=this.nodeAt2(e,t+1);return this._getCharCode(n)}getLineLength(e){if(e===this.getLineCount()){const t=this.getOffsetAt(e,1);return this.getLength()-t}return this.getOffsetAt(e+1,1)-this.getOffsetAt(e,1)-this._EOLLength}findMatchesInNode(e,t,n,i,r,s,o,a,h,l,d){const c=this._buffers[e.piece.bufferIndex],u=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start),f=this.offsetInBuffer(e.piece.bufferIndex,r),_=this.offsetInBuffer(e.piece.bufferIndex,s);let p;const m={line:0,column:0};let C,k;t._wordSeparators?(C=c.buffer.substring(f,_),k=e=>e+f,t.reset(0)):(C=c.buffer,k=e=>e,t.reset(f));do{if(p=t.next(C),p){if(k(p.index)>=_)return l;this.positionInBuffer(e,k(p.index)-u,m);const t=this.getLineFeedCnt(e.piece.bufferIndex,r,m),s=m.line===r.line?m.column-r.column+i:m.column+1,o=s+p[0].length;if(d[l++]=(0,Ae.createFindMatch)(new g.Range(n+t,s,n+t,o),p,a),k(p.index)+p[0].length>=_)return l;if(l>=h)return l}}while(p);return l}findMatchesLineByLine(e,t,n,i){const r=[];let s=0;const o=new Ae.Searcher(t.wordSeparators,t.regex);let a=this.nodeAt2(e.startLineNumber,e.startColumn);if(null===a)return[];const h=this.nodeAt2(e.endLineNumber,e.endColumn);if(null===h)return[];let l=this.positionInBuffer(a.node,a.remainder);const d=this.positionInBuffer(h.node,h.remainder);if(a.node===h.node)return this.findMatchesInNode(a.node,o,e.startLineNumber,e.startColumn,l,d,t,n,i,s,r),r;let c=e.startLineNumber,u=a.node;for(;u!==h.node;){const h=this.getLineFeedCnt(u.piece.bufferIndex,l,u.piece.end);if(h>=1){const a=this._buffers[u.piece.bufferIndex].lineStarts,d=this.offsetInBuffer(u.piece.bufferIndex,u.piece.start),g=a[l.line+h],f=c===e.startLineNumber?e.startColumn:1;if(s=this.findMatchesInNode(u,o,c,f,l,this.positionInBuffer(u,g-d),t,n,i,s,r),s>=i)return r;c+=h}const d=c===e.startLineNumber?e.startColumn-1:0;if(c===e.endLineNumber){const a=this.getLineContent(c).substring(d,e.endColumn-1);return s=this._findMatchesInLine(t,o,a,e.endLineNumber,d,s,r,n,i),r}if(s=this._findMatchesInLine(t,o,this.getLineContent(c).substr(d),c,d,s,r,n,i),s>=i)return r;c++,a=this.nodeAt2(c,1),u=a.node,l=this.positionInBuffer(a.node,a.remainder)}if(c===e.endLineNumber){const a=c===e.startLineNumber?e.startColumn-1:0,h=this.getLineContent(c).substring(a,e.endColumn-1);return s=this._findMatchesInLine(t,o,h,e.endLineNumber,a,s,r,n,i),r}const g=c===e.startLineNumber?e.startColumn:1;return s=this.findMatchesInNode(h.node,o,c,g,l,d,t,n,i,s,r),r}_findMatchesInLine(e,t,n,i,r,s,o,a,h){const l=e.wordSeparators;if(!a&&e.simpleSearch){const t=e.simpleSearch,a=t.length,d=n.length;let c=-a;for(;-1!==(c=n.indexOf(t,c+a));)if((!l||(0,Ae.isValidMatch)(l,n,d,c,a))&&(o[s++]=new C.FindMatch(new g.Range(i,c+1+r,i,c+1+a+r),null),s>=h))return s;return s}let d;t.reset(0);do{if(d=t.next(n),d&&(o[s++]=(0,Ae.createFindMatch)(new g.Range(i,d.index+1+r,i,d.index+1+d[0].length+r),d,a),s>=h))return s}while(d);return s}insert(e,t,n=!1){if(this._EOLNormalized=this._EOLNormalized&&n,this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",this.root!==Le){const{node:n,remainder:i,nodeStartOffset:r}=this.nodeAt(e),s=n.piece,o=s.bufferIndex,a=this.positionInBuffer(n,i);if(0===n.piece.bufferIndex&&s.end.line===this._lastChangeBufferPos.line&&s.end.column===this._lastChangeBufferPos.column&&r+s.length===e&&t.length<De)return this.appendToNode(n,t),void this.computeBufferMetadata();if(r===e)this.insertContentToNodeLeft(t,n),this._searchCache.validate(e);else if(r+n.piece.length>e){const e=[];let r=new ye(s.bufferIndex,a,s.end,this.getLineFeedCnt(s.bufferIndex,a,s.end),this.offsetInBuffer(o,s.end)-this.offsetInBuffer(o,a));if(this.shouldCheckCRLF()&&this.endWithCR(t)&&10===this.nodeCharCodeAt(n,i)){const e={line:r.start.line+1,column:0};r=new ye(r.bufferIndex,e,r.end,this.getLineFeedCnt(r.bufferIndex,e,r.end),r.length-1),t+="\n"}if(this.shouldCheckCRLF()&&this.startWithLF(t))if(13===this.nodeCharCodeAt(n,i-1)){const r=this.positionInBuffer(n,i-1);this.deleteNodeTail(n,r),t="\r"+t,0===n.piece.length&&e.push(n)}else this.deleteNodeTail(n,a);else this.deleteNodeTail(n,a);const h=this.createNewPieces(t);r.length>0&&this.rbInsertRight(n,r);let l=n;for(let e=0;e<h.length;e++)l=this.rbInsertRight(l,h[e]);this.deleteNodes(e)}else this.insertContentToNodeRight(t,n)}else{const e=this.createNewPieces(t);let n=this.rbInsertLeft(null,e[0]);for(let t=1;t<e.length;t++)n=this.rbInsertRight(n,e[t])}this.computeBufferMetadata()}delete(e,t){if(this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",t<=0||this.root===Le)return;const n=this.nodeAt(e),i=this.nodeAt(e+t),r=n.node,s=i.node;if(r===s){const s=this.positionInBuffer(r,n.remainder),o=this.positionInBuffer(r,i.remainder);if(n.nodeStartOffset===e){if(t===r.piece.length){const e=r.next();return Be(this,r),this.validateCRLFWithPrevNode(e),void this.computeBufferMetadata()}return this.deleteNodeHead(r,o),this._searchCache.validate(e),this.validateCRLFWithPrevNode(r),void this.computeBufferMetadata()}return n.nodeStartOffset+r.piece.length===e+t?(this.deleteNodeTail(r,s),this.validateCRLFWithNextNode(r),void this.computeBufferMetadata()):(this.shrinkNode(r,s,o),void this.computeBufferMetadata())}const o=[],a=this.positionInBuffer(r,n.remainder);this.deleteNodeTail(r,a),this._searchCache.validate(e),0===r.piece.length&&o.push(r);const h=this.positionInBuffer(s,i.remainder);this.deleteNodeHead(s,h),0===s.piece.length&&o.push(s);for(let e=r.next();e!==Le&&e!==s;e=e.next())o.push(e);const l=0===r.piece.length?r.prev():r;this.deleteNodes(o),this.validateCRLFWithNextNode(l),this.computeBufferMetadata()}insertContentToNodeLeft(e,t){const n=[];if(this.shouldCheckCRLF()&&this.endWithCR(e)&&this.startWithLF(t)){const i=t.piece,r={line:i.start.line+1,column:0},s=new ye(i.bufferIndex,r,i.end,this.getLineFeedCnt(i.bufferIndex,r,i.end),i.length-1);t.piece=s,e+="\n",Ne(this,t,-1,-1),0===t.piece.length&&n.push(t)}const i=this.createNewPieces(e);let r=this.rbInsertLeft(t,i[i.length-1]);for(let e=i.length-2;e>=0;e--)r=this.rbInsertLeft(r,i[e]);this.validateCRLFWithPrevNode(r),this.deleteNodes(n)}insertContentToNodeRight(e,t){this.adjustCarriageReturnFromNext(e,t)&&(e+="\n");const n=this.createNewPieces(e),i=this.rbInsertRight(t,n[0]);let r=i;for(let e=1;e<n.length;e++)r=this.rbInsertRight(r,n[e]);this.validateCRLFWithPrevNode(i)}positionInBuffer(e,t,n){const i=e.piece,r=e.piece.bufferIndex,s=this._buffers[r].lineStarts,o=s[i.start.line]+i.start.column+t;let a=i.start.line,h=i.end.line,l=0,d=0,c=0;for(;a<=h&&(l=a+(h-a)/2|0,c=s[l],l!==h);)if(d=s[l+1],o<c)h=l-1;else{if(!(o>=d))break;a=l+1}return n?(n.line=l,n.column=o-c,null):{line:l,column:o-c}}getLineFeedCnt(e,t,n){if(0===n.column)return n.line-t.line;const i=this._buffers[e].lineStarts;if(n.line===i.length-1)return n.line-t.line;const r=i[n.line+1],s=i[n.line]+n.column;if(r>s+1)return n.line-t.line;const o=s-1;return 13===this._buffers[e].buffer.charCodeAt(o)?n.line-t.line+1:n.line-t.line}offsetInBuffer(e,t){return this._buffers[e].lineStarts[t.line]+t.column}deleteNodes(e){for(let t=0;t<e.length;t++)Be(this,e[t])}createNewPieces(e){if(e.length>De){const t=[];for(;e.length>De;){const n=e.charCodeAt(65534);let i;13===n||n>=55296&&n<=56319?(i=e.substring(0,65534),e=e.substring(65534)):(i=e.substring(0,De),e=e.substring(De));const r=Pe(i);t.push(new ye(this._buffers.length,{line:0,column:0},{line:r.length-1,column:i.length-r[r.length-1]},r.length-1,i.length)),this._buffers.push(new Fe(i,r))}const n=Pe(e);return t.push(new ye(this._buffers.length,{line:0,column:0},{line:n.length-1,column:e.length-n[n.length-1]},n.length-1,e.length)),this._buffers.push(new Fe(e,n)),t}let t=this._buffers[0].buffer.length;const n=Pe(e,!1);let i=this._lastChangeBufferPos;if(this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-1]===t&&0!==t&&this.startWithLF(e)&&this.endWithCR(this._buffers[0].buffer)){this._lastChangeBufferPos={line:this._lastChangeBufferPos.line,column:this._lastChangeBufferPos.column+1},i=this._lastChangeBufferPos;for(let e=0;e<n.length;e++)n[e]+=t+1;this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(n.slice(1)),this._buffers[0].buffer+="_"+e,t+=1}else{if(0!==t)for(let e=0;e<n.length;e++)n[e]+=t;this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(n.slice(1)),this._buffers[0].buffer+=e}const r=this._buffers[0].buffer.length,s=this._buffers[0].lineStarts.length-1,o={line:s,column:r-this._buffers[0].lineStarts[s]},a=new ye(0,i,o,this.getLineFeedCnt(0,i,o),r-t);return this._lastChangeBufferPos=o,[a]}getLineRawContent(e,t=0){let n=this.root,i="";const r=this._searchCache.get2(e);if(r){n=r.node;const s=this.getAccumulatedValue(n,e-r.nodeStartLineNumber-1),o=this._buffers[n.piece.bufferIndex].buffer,a=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);if(r.nodeStartLineNumber+n.piece.lineFeedCnt!==e){const i=this.getAccumulatedValue(n,e-r.nodeStartLineNumber);return o.substring(a+s,a+i-t)}i=o.substring(a+s,a+n.piece.length)}else{let r=0;const s=e;for(;n!==Le;)if(n.left!==Le&&n.lf_left>=e-1)n=n.left;else{if(n.lf_left+n.piece.lineFeedCnt>e-1){const i=this.getAccumulatedValue(n,e-n.lf_left-2),o=this.getAccumulatedValue(n,e-n.lf_left-1),a=this._buffers[n.piece.bufferIndex].buffer,h=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);return r+=n.size_left,this._searchCache.set({node:n,nodeStartOffset:r,nodeStartLineNumber:s-(e-1-n.lf_left)}),a.substring(h+i,h+o-t)}if(n.lf_left+n.piece.lineFeedCnt===e-1){const t=this.getAccumulatedValue(n,e-n.lf_left-2),r=this._buffers[n.piece.bufferIndex].buffer,s=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);i=r.substring(s+t,s+n.piece.length);break}e-=n.lf_left+n.piece.lineFeedCnt,r+=n.size_left+n.piece.length,n=n.right}}for(n=n.next();n!==Le;){const e=this._buffers[n.piece.bufferIndex].buffer;if(n.piece.lineFeedCnt>0){const r=this.getAccumulatedValue(n,0),s=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);return i+=e.substring(s,s+r-t),i}{const t=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);i+=e.substr(t,n.piece.length)}n=n.next()}return i}computeBufferMetadata(){let e=this.root,t=1,n=0;for(;e!==Le;)t+=e.lf_left+e.piece.lineFeedCnt,n+=e.size_left+e.piece.length,e=e.right;this._lineCnt=t,this._length=n,this._searchCache.validate(this._length)}getIndexOf(e,t){const n=e.piece,i=this.positionInBuffer(e,t),r=i.line-n.start.line;if(this.offsetInBuffer(n.bufferIndex,n.end)-this.offsetInBuffer(n.bufferIndex,n.start)===t){const t=this.getLineFeedCnt(e.piece.bufferIndex,n.start,i);if(t!==r)return{index:t,remainder:0}}return{index:r,remainder:i.column}}getAccumulatedValue(e,t){if(t<0)return 0;const n=e.piece,i=this._buffers[n.bufferIndex].lineStarts,r=n.start.line+t+1;return r>n.end.line?i[n.end.line]+n.end.column-i[n.start.line]-n.start.column:i[r]-i[n.start.line]-n.start.column}deleteNodeTail(e,t){const n=e.piece,i=n.lineFeedCnt,r=this.offsetInBuffer(n.bufferIndex,n.end),s=t,o=this.offsetInBuffer(n.bufferIndex,s),a=this.getLineFeedCnt(n.bufferIndex,n.start,s),h=a-i,l=o-r,d=n.length+l;e.piece=new ye(n.bufferIndex,n.start,s,a,d),Ne(this,e,l,h)}deleteNodeHead(e,t){const n=e.piece,i=n.lineFeedCnt,r=this.offsetInBuffer(n.bufferIndex,n.start),s=t,o=this.getLineFeedCnt(n.bufferIndex,s,n.end),a=o-i,h=r-this.offsetInBuffer(n.bufferIndex,s),l=n.length+h;e.piece=new ye(n.bufferIndex,s,n.end,o,l),Ne(this,e,h,a)}shrinkNode(e,t,n){const i=e.piece,r=i.start,s=i.end,o=i.length,a=i.lineFeedCnt,h=t,l=this.getLineFeedCnt(i.bufferIndex,i.start,h),d=this.offsetInBuffer(i.bufferIndex,t)-this.offsetInBuffer(i.bufferIndex,r);e.piece=new ye(i.bufferIndex,i.start,h,l,d),Ne(this,e,d-o,l-a);const c=new ye(i.bufferIndex,n,s,this.getLineFeedCnt(i.bufferIndex,n,s),this.offsetInBuffer(i.bufferIndex,s)-this.offsetInBuffer(i.bufferIndex,n)),u=this.rbInsertRight(e,c);this.validateCRLFWithPrevNode(u)}appendToNode(e,t){this.adjustCarriageReturnFromNext(t,e)&&(t+="\n");const n=this.shouldCheckCRLF()&&this.startWithLF(t)&&this.endWithCR(e),i=this._buffers[0].buffer.length;this._buffers[0].buffer+=t;const r=Pe(t,!1);for(let e=0;e<r.length;e++)r[e]+=i;if(n){const e=this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-2];this._buffers[0].lineStarts.pop(),this._lastChangeBufferPos={line:this._lastChangeBufferPos.line-1,column:i-e}}this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(r.slice(1));const s=this._buffers[0].lineStarts.length-1,o={line:s,column:this._buffers[0].buffer.length-this._buffers[0].lineStarts[s]},a=e.piece.length+t.length,h=e.piece.lineFeedCnt,l=this.getLineFeedCnt(0,e.piece.start,o),d=l-h;e.piece=new ye(e.piece.bufferIndex,e.piece.start,o,l,a),this._lastChangeBufferPos=o,Ne(this,e,t.length,d)}nodeAt(e){let t=this.root;const n=this._searchCache.get(e);if(n)return{node:n.node,nodeStartOffset:n.nodeStartOffset,remainder:e-n.nodeStartOffset};let i=0;for(;t!==Le;)if(t.size_left>e)t=t.left;else{if(t.size_left+t.piece.length>=e){i+=t.size_left;const n={node:t,remainder:e-t.size_left,nodeStartOffset:i};return this._searchCache.set(n),n}e-=t.size_left+t.piece.length,i+=t.size_left+t.piece.length,t=t.right}return null}nodeAt2(e,t){let n=this.root,i=0;for(;n!==Le;)if(n.left!==Le&&n.lf_left>=e-1)n=n.left;else{if(n.lf_left+n.piece.lineFeedCnt>e-1){const r=this.getAccumulatedValue(n,e-n.lf_left-2),s=this.getAccumulatedValue(n,e-n.lf_left-1);return i+=n.size_left,{node:n,remainder:Math.min(r+t-1,s),nodeStartOffset:i}}if(n.lf_left+n.piece.lineFeedCnt===e-1){const r=this.getAccumulatedValue(n,e-n.lf_left-2);if(r+t-1<=n.piece.length)return{node:n,remainder:r+t-1,nodeStartOffset:i};t-=n.piece.length-r;break}e-=n.lf_left+n.piece.lineFeedCnt,i+=n.size_left+n.piece.length,n=n.right}for(n=n.next();n!==Le;){if(n.piece.lineFeedCnt>0){const e=this.getAccumulatedValue(n,0),i=this.offsetOfNode(n);return{node:n,remainder:Math.min(t-1,e),nodeStartOffset:i}}if(n.piece.length>=t-1)return{node:n,remainder:t-1,nodeStartOffset:this.offsetOfNode(n)};t-=n.piece.length,n=n.next()}return null}nodeCharCodeAt(e,t){if(e.piece.lineFeedCnt<1)return-1;const n=this._buffers[e.piece.bufferIndex],i=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start)+t;return n.buffer.charCodeAt(i)}offsetOfNode(e){if(!e)return 0;let t=e.size_left;for(;e!==this.root;)e.parent.right===e&&(t+=e.parent.size_left+e.parent.piece.length),e=e.parent;return t}shouldCheckCRLF(){return!(this._EOLNormalized&&"\n"===this._EOL)}startWithLF(e){if("string"==typeof e)return 10===e.charCodeAt(0);if(e===Le||0===e.piece.lineFeedCnt)return!1;const t=e.piece,n=this._buffers[t.bufferIndex].lineStarts,i=t.start.line,r=n[i]+t.start.column;return i!==n.length-1&&(!(n[i+1]>r+1)&&10===this._buffers[t.bufferIndex].buffer.charCodeAt(r))}endWithCR(e){return"string"==typeof e?13===e.charCodeAt(e.length-1):e!==Le&&0!==e.piece.lineFeedCnt&&13===this.nodeCharCodeAt(e,e.piece.length-1)}validateCRLFWithPrevNode(e){if(this.shouldCheckCRLF()&&this.startWithLF(e)){const t=e.prev();this.endWithCR(t)&&this.fixCRLF(t,e)}}validateCRLFWithNextNode(e){if(this.shouldCheckCRLF()&&this.endWithCR(e)){const t=e.next();this.startWithLF(t)&&this.fixCRLF(e,t)}}fixCRLF(e,t){const n=[],i=this._buffers[e.piece.bufferIndex].lineStarts;let r;r=0===e.piece.end.column?{line:e.piece.end.line-1,column:i[e.piece.end.line]-i[e.piece.end.line-1]-1}:{line:e.piece.end.line,column:e.piece.end.column-1};const s=e.piece.length-1,o=e.piece.lineFeedCnt-1;e.piece=new ye(e.piece.bufferIndex,e.piece.start,r,o,s),Ne(this,e,-1,-1),0===e.piece.length&&n.push(e);const a={line:t.piece.start.line+1,column:0},h=t.piece.length-1,l=this.getLineFeedCnt(t.piece.bufferIndex,a,t.piece.end);t.piece=new ye(t.piece.bufferIndex,a,t.piece.end,l,h),Ne(this,t,-1,-1),0===t.piece.length&&n.push(t);const d=this.createNewPieces("\r\n");this.rbInsertRight(e,d[0]);for(let e=0;e<n.length;e++)Be(this,n[e])}adjustCarriageReturnFromNext(e,t){if(this.shouldCheckCRLF()&&this.endWithCR(e)){const n=t.next();if(this.startWithLF(n)){if(e+="\n",1===n.piece.length)Be(this,n);else{const e=n.piece,t={line:e.start.line+1,column:0},i=e.length-1,r=this.getLineFeedCnt(e.bufferIndex,t,e.end);n.piece=new ye(e.bufferIndex,t,e.end,r,i),Ne(this,n,-1,-1)}return!0}}return!1}iterate(e,t){if(e===Le)return t(Le);const n=this.iterate(e.left,t);return n?t(e)&&this.iterate(e.right,t):n}getNodeContent(e){if(e===Le)return"";const t=this._buffers[e.piece.bufferIndex],n=e.piece,i=this.offsetInBuffer(n.bufferIndex,n.start),r=this.offsetInBuffer(n.bufferIndex,n.end);return t.buffer.substring(i,r)}getPieceContent(e){const t=this._buffers[e.bufferIndex],n=this.offsetInBuffer(e.bufferIndex,e.start),i=this.offsetInBuffer(e.bufferIndex,e.end);return t.buffer.substring(n,i)}rbInsertRight(e,t){const n=new be(t,1);if(n.left=Le,n.right=Le,n.parent=Le,n.size_left=0,n.lf_left=0,this.root===Le)this.root=n,n.color=0;else if(e.right===Le)e.right=n,n.parent=e;else{const t=Ie(e.right);t.left=n,n.parent=t}return Oe(this,n),n}rbInsertLeft(e,t){const n=new be(t,1);if(n.left=Le,n.right=Le,n.parent=Le,n.size_left=0,n.lf_left=0,this.root===Le)this.root=n,n.color=0;else if(e.left===Le)e.left=n,n.parent=e;else{const t=Te(e.left);t.right=n,n.parent=t}return Oe(this,n),n}}var He=n(5870);class Ve extends a.Disposable{constructor(e,t,n,i,r,s,a){super(),this._onDidChangeContent=this._register(new o.Emitter),this._BOM=t,this._mightContainNonBasicASCII=!s,this._mightContainRTL=i,this._mightContainUnusualLineTerminators=r,this._pieceTree=new Ge(e,n,a)}mightContainRTL(){return this._mightContainRTL}mightContainUnusualLineTerminators(){return this._mightContainUnusualLineTerminators}resetMightContainUnusualLineTerminators(){this._mightContainUnusualLineTerminators=!1}mightContainNonBasicASCII(){return this._mightContainNonBasicASCII}getBOM(){return this._BOM}getEOL(){return this._pieceTree.getEOL()}createSnapshot(e){return this._pieceTree.createSnapshot(e?this._BOM:"")}getOffsetAt(e,t){return this._pieceTree.getOffsetAt(e,t)}getPositionAt(e){return this._pieceTree.getPositionAt(e)}getRangeAt(e,t){const n=e+t,i=this.getPositionAt(e),r=this.getPositionAt(n);return new g.Range(i.lineNumber,i.column,r.lineNumber,r.column)}getValueInRange(e,t=0){if(e.isEmpty())return"";const n=this._getEndOfLine(t);return this._pieceTree.getValueInRange(e,n)}getValueLengthInRange(e,t=0){if(e.isEmpty())return 0;if(e.startLineNumber===e.endLineNumber)return e.endColumn-e.startColumn;const n=this.getOffsetAt(e.startLineNumber,e.startColumn),i=this.getOffsetAt(e.endLineNumber,e.endColumn);let r=0;const s=this._getEndOfLine(t),o=this.getEOL();return s.length!==o.length&&(r=(s.length-o.length)*(e.endLineNumber-e.startLineNumber)),i-n+r}getCharacterCountInRange(e,t=0){if(this._mightContainNonBasicASCII){let n=0;const i=e.startLineNumber,r=e.endLineNumber;for(let t=i;t<=r;t++){const s=this.getLineContent(t),o=t===i?e.startColumn-1:0,a=t===r?e.endColumn-1:s.length;for(let e=o;e<a;e++)h.isHighSurrogate(s.charCodeAt(e))?(n+=1,e+=1):n+=1}return n+=this._getEndOfLine(t).length*(r-i),n}return this.getValueLengthInRange(e,t)}getLength(){return this._pieceTree.getLength()}getLineCount(){return this._pieceTree.getLineCount()}getLinesContent(){return this._pieceTree.getLinesContent()}getLineContent(e){return this._pieceTree.getLineContent(e)}getLineCharCode(e,t){return this._pieceTree.getLineCharCode(e,t)}getLineLength(e){return this._pieceTree.getLineLength(e)}getLineFirstNonWhitespaceColumn(e){const t=h.firstNonWhitespaceIndex(this.getLineContent(e));return-1===t?0:t+1}getLineLastNonWhitespaceColumn(e){const t=h.lastNonWhitespaceIndex(this.getLineContent(e));return-1===t?0:t+2}_getEndOfLine(e){switch(e){case 1:return"\n";case 2:return"\r\n";case 0:return this.getEOL();default:throw new Error("Unknown EOL preference")}}setEOL(e){this._pieceTree.setEOL(e)}applyEdits(e,t,n){let i=this._mightContainRTL,r=this._mightContainUnusualLineTerminators,s=this._mightContainNonBasicASCII,o=!0,a=[];for(let t=0;t<e.length;t++){const n=e[t];o&&n._isTracked&&(o=!1);const l=n.range;if(n.text){let e=!0;s||(e=!h.isBasicASCII(n.text),s=e),!i&&e&&(i=h.containsRTL(n.text)),!r&&e&&(r=h.containsUnusualLineTerminators(n.text))}let c="",u=0,g=0,f=0;if(n.text){let e;[u,g,f,e]=(0,d.countEOL)(n.text);const t=this.getEOL();c=0===e||e===("\r\n"===t?2:1)?n.text:n.text.replace(/\r\n|\r|\n/g,t)}a[t]={sortIndex:t,identifier:n.identifier||null,range:l,rangeOffset:this.getOffsetAt(l.startLineNumber,l.startColumn),rangeLength:this.getValueLengthInRange(l),text:c,eolCount:u,firstLineLength:g,lastLineLength:f,forceMoveMarkers:Boolean(n.forceMoveMarkers),isAutoWhitespaceEdit:n.isAutoWhitespaceEdit||!1}}a.sort(Ve._sortOpsAscending);let l=!1;for(let e=0,t=a.length-1;e<t;e++){const t=a[e].range.getEndPosition(),n=a[e+1].range.getStartPosition();if(n.isBeforeOrEqual(t)){if(n.isBefore(t))throw new Error("Overlapping ranges are not allowed!");l=!0}}o&&(a=this._reduceOperations(a));const c=n||t?Ve._getInverseEditRanges(a):[],u=[];if(t)for(let e=0;e<a.length;e++){const t=a[e],n=c[e];if(t.isAutoWhitespaceEdit&&t.range.isEmpty())for(let e=n.startLineNumber;e<=n.endLineNumber;e++){let i="";e===n.startLineNumber&&(i=this.getLineContent(t.range.startLineNumber),-1!==h.firstNonWhitespaceIndex(i))||u.push({lineNumber:e,oldContent:i})}}let g=null;if(n){let e=0;g=[];for(let t=0;t<a.length;t++){const n=a[t],i=c[t],r=this.getValueInRange(n.range),s=n.rangeOffset+e;e+=n.text.length-r.length,g[t]={sortIndex:n.sortIndex,identifier:n.identifier,range:i,text:r,textChange:new He.TextChange(n.rangeOffset,r,s,n.text)}}l||g.sort((e,t)=>e.sortIndex-t.sortIndex)}this._mightContainRTL=i,this._mightContainUnusualLineTerminators=r,this._mightContainNonBasicASCII=s;const f=this._doApplyEdits(a);let _=null;if(t&&u.length>0){u.sort((e,t)=>t.lineNumber-e.lineNumber),_=[];for(let e=0,t=u.length;e<t;e++){const t=u[e].lineNumber;if(e>0&&u[e-1].lineNumber===t)continue;const n=u[e].oldContent,i=this.getLineContent(t);0!==i.length&&i!==n&&-1===h.firstNonWhitespaceIndex(i)&&_.push(t)}}return this._onDidChangeContent.fire(),new C.ApplyEditsResult(g,f,_)}_reduceOperations(e){return e.length<1e3?e:[this._toSingleEditOperation(e)]}_toSingleEditOperation(e){let t=!1;const n=e[0].range,i=e[e.length-1].range,r=new g.Range(n.startLineNumber,n.startColumn,i.endLineNumber,i.endColumn);let s=n.startLineNumber,o=n.startColumn;const a=[];for(let n=0,i=e.length;n<i;n++){const i=e[n],r=i.range;t=t||i.forceMoveMarkers,a.push(this.getValueInRange(new g.Range(s,o,r.startLineNumber,r.startColumn))),i.text.length>0&&a.push(i.text),s=r.endLineNumber,o=r.endColumn}const h=a.join(""),[l,c,u]=(0,d.countEOL)(h);return{sortIndex:0,identifier:e[0].identifier,range:r,rangeOffset:this.getOffsetAt(r.startLineNumber,r.startColumn),rangeLength:this.getValueLengthInRange(r,0),text:h,eolCount:l,firstLineLength:c,lastLineLength:u,forceMoveMarkers:t,isAutoWhitespaceEdit:!1}}_doApplyEdits(e){e.sort(Ve._sortOpsDescending);const t=[];for(let n=0;n<e.length;n++){const i=e[n],r=i.range.startLineNumber,s=i.range.startColumn,o=i.range.endLineNumber,a=i.range.endColumn;if(r===o&&s===a&&0===i.text.length)continue;i.text?(this._pieceTree.delete(i.rangeOffset,i.rangeLength),this._pieceTree.insert(i.rangeOffset,i.text,!0)):this._pieceTree.delete(i.rangeOffset,i.rangeLength);const h=new g.Range(r,s,o,a);t.push({range:h,rangeLength:i.rangeLength,text:i.text,rangeOffset:i.rangeOffset,forceMoveMarkers:i.forceMoveMarkers})}return t}findMatchesLineByLine(e,t,n,i){return this._pieceTree.findMatchesLineByLine(e,t,n,i)}static _getInverseEditRanges(e){const t=[];let n=0,i=0,r=null;for(let s=0,o=e.length;s<o;s++){const o=e[s];let a,h,l;if(r?r.range.endLineNumber===o.range.startLineNumber?(a=n,h=i+(o.range.startColumn-r.range.endColumn)):(a=n+(o.range.startLineNumber-r.range.endLineNumber),h=o.range.startColumn):(a=o.range.startLineNumber,h=o.range.startColumn),o.text.length>0){const e=o.eolCount+1;l=1===e?new g.Range(a,h,a,h+o.firstLineLength):new g.Range(a,h,a+e-1,o.lastLineLength+1)}else l=new g.Range(a,h,a,h);n=l.endLineNumber,i=l.endColumn,t.push(l),r=o}return t}static _sortOpsAscending(e,t){const n=g.Range.compareRangesUsingEnds(e.range,t.range);return 0===n?e.sortIndex-t.sortIndex:n}static _sortOpsDescending(e,t){const n=g.Range.compareRangesUsingEnds(e.range,t.range);return 0===n?t.sortIndex-e.sortIndex:-n}}class je{constructor(e,t,n,i,r,s,o,a,h){this._chunks=e,this._bom=t,this._cr=n,this._lf=i,this._crlf=r,this._containsRTL=s,this._containsUnusualLineTerminators=o,this._isBasicASCII=a,this._normalizeEOL=h}_getEOL(e){const t=this._cr+this._lf+this._crlf,n=this._cr+this._crlf;return 0===t?1===e?"\n":"\r\n":n>t/2?"\r\n":"\n"}create(e){const t=this._getEOL(e),n=this._chunks;if(this._normalizeEOL&&("\r\n"===t&&(this._cr>0||this._lf>0)||"\n"===t&&(this._cr>0||this._crlf>0)))for(let e=0,i=n.length;e<i;e++){const i=n[e].buffer.replace(/\r\n|\r|\n/g,t),r=Pe(i);n[e]=new Fe(i,r)}const i=new Ve(n,this._bom,t,this._containsRTL,this._containsUnusualLineTerminators,this._isBasicASCII,this._normalizeEOL);return{textBuffer:i,disposable:i}}}class qe{constructor(){this.chunks=[],this.BOM="",this._hasPreviousChar=!1,this._previousChar=0,this._tmpLineStarts=[],this.cr=0,this.lf=0,this.crlf=0,this.containsRTL=!1,this.containsUnusualLineTerminators=!1,this.isBasicASCII=!0}acceptChunk(e){if(0===e.length)return;0===this.chunks.length&&h.startsWithUTF8BOM(e)&&(this.BOM=h.UTF8_BOM_CHARACTER,e=e.substr(1));const t=e.charCodeAt(e.length-1);13===t||t>=55296&&t<=56319?(this._acceptChunk1(e.substr(0,e.length-1),!1),this._hasPreviousChar=!0,this._previousChar=t):(this._acceptChunk1(e,!1),this._hasPreviousChar=!1,this._previousChar=t)}_acceptChunk1(e,t){(t||0!==e.length)&&(this._hasPreviousChar?this._acceptChunk2(String.fromCharCode(this._previousChar)+e):this._acceptChunk2(e))}_acceptChunk2(e){const t=function(e,t){e.length=0,e[0]=0;let n=1,i=0,r=0,s=0,o=!0;for(let a=0,h=t.length;a<h;a++){const l=t.charCodeAt(a);13===l?a+1<h&&10===t.charCodeAt(a+1)?(s++,e[n++]=a+2,a++):(i++,e[n++]=a+1):10===l?(r++,e[n++]=a+1):o&&9!==l&&(l<32||l>126)&&(o=!1)}const a=new ze(Me(e),i,r,s,o);return e.length=0,a}(this._tmpLineStarts,e);this.chunks.push(new Fe(e,t.lineStarts)),this.cr+=t.cr,this.lf+=t.lf,this.crlf+=t.crlf,t.isBasicASCII||(this.isBasicASCII=!1,this.containsRTL||(this.containsRTL=h.containsRTL(e)),this.containsUnusualLineTerminators||(this.containsUnusualLineTerminators=h.containsUnusualLineTerminators(e)))}finish(e=!0){return this._finish(),new je(this.chunks,this.BOM,this.cr,this.lf,this.crlf,this.containsRTL,this.containsUnusualLineTerminators,this.isBasicASCII,e)}_finish(){if(0===this.chunks.length&&this._acceptChunk1("",!0),this._hasPreviousChar){this._hasPreviousChar=!1;const e=this.chunks[this.chunks.length-1];e.buffer+=String.fromCharCode(this._previousChar);const t=Pe(e.buffer);e.lineStarts=t,13===this._previousChar&&this.cr++}}}var $e=n(81394),Ze=n(58561),Ke=n(51753),Xe=n(80354),Qe=n(30325),Ye=n(69958),Je=n(30222),et=n(66401),tt=n(37229);class nt{constructor(e){this._default=e,this._store=[]}get(e){return e<this._store.length?this._store[e]:this._default}set(e,t){for(;e>=this._store.length;)this._store[this._store.length]=this._default;this._store[e]=t}replace(e,t,n){if(e>=this._store.length)return;if(0===t)return void this.insert(e,n);if(0===n)return void this.delete(e,t);const i=this._store.slice(0,e),r=this._store.slice(e+t),s=function(e,t){const n=[];for(let i=0;i<e;i++)n[i]=t;return n}(n,this._default);this._store=i.concat(s,r)}delete(e,t){0===t||e>=this._store.length||this._store.splice(e,t)}insert(e,t){if(0===t||e>=this._store.length)return;const n=[];for(let e=0;e<t;e++)n[e]=this._default;this._store=(0,i.arrayInsert)(this._store,e,n)}}class it{get startLineNumber(){return this._startLineNumber}get endLineNumber(){return this._startLineNumber+this._tokens.length-1}constructor(e,t){this._startLineNumber=e,this._tokens=t}getLineTokens(e){return this._tokens[e-this._startLineNumber]}appendLineTokens(e){this._tokens.push(e)}}class rt{constructor(){this._tokens=[]}add(e,t){if(this._tokens.length>0){const n=this._tokens[this._tokens.length-1];if(n.endLineNumber+1===e)return void n.appendLineTokens(t)}this._tokens.push(new it(e,[t]))}finalize(){return this._tokens}}var st=n(57922);class ot{constructor(e,t){this.tokenizationSupport=t,this.initialState=this.tokenizationSupport.getInitialState(),this.store=new ht(e)}getStartState(e){return this.store.getStartState(e,this.initialState)}getFirstInvalidLine(){return this.store.getFirstInvalidLine(this.initialState)}}class at extends ot{constructor(e,t,n,i){super(e,t),this._textModel=n,this._languageIdCodec=i}updateTokensUntilLine(e,t){const n=this._textModel.getLanguageId();for(;;){const i=this.getFirstInvalidLine();if(!i||i.lineNumber>t)break;const r=this._textModel.getLineContent(i.lineNumber),s=ct(this._languageIdCodec,n,this.tokenizationSupport,r,!0,i.startState);e.add(i.lineNumber,s.tokens),this.store.setEndState(i.lineNumber,s.endState)}}getTokenTypeIfInsertingCharacter(e,t){const n=this.getStartState(e.lineNumber);if(!n)return 0;const i=this._textModel.getLanguageId(),r=this._textModel.getLineContent(e.lineNumber),s=r.substring(0,e.column-1)+t+r.substring(e.column-1),o=ct(this._languageIdCodec,i,this.tokenizationSupport,s,!0,n),a=new st.LineTokens(o.tokens,s,this._languageIdCodec);if(0===a.getCount())return 0;const h=a.findTokenIndexAtOffset(e.column-1);return a.getStandardTokenType(h)}tokenizeLineWithEdit(e,t,n){const i=e.lineNumber,r=e.column,s=this.getStartState(i);if(!s)return null;const o=this._textModel.getLineContent(i),a=o.substring(0,r-1)+n+o.substring(r-1+t),h=this._textModel.getLanguageIdAtPosition(i,0),l=ct(this._languageIdCodec,h,this.tokenizationSupport,a,!0,s);return new st.LineTokens(l.tokens,a,this._languageIdCodec)}hasAccurateTokensForLine(e){return e<this.store.getFirstInvalidEndStateLineNumberOrMax()}isCheapToTokenize(e){const t=this.store.getFirstInvalidEndStateLineNumberOrMax();return e<t||e===t&&this._textModel.getLineLength(e)<2048}tokenizeHeuristically(e,t,n){if(n<=this.store.getFirstInvalidEndStateLineNumberOrMax())return{heuristicTokens:!1};if(t<=this.store.getFirstInvalidEndStateLineNumberOrMax())return this.updateTokensUntilLine(e,n),{heuristicTokens:!1};let i=this.guessStartState(t);const r=this._textModel.getLanguageId();for(let s=t;s<=n;s++){const t=this._textModel.getLineContent(s),n=ct(this._languageIdCodec,r,this.tokenizationSupport,t,!0,i);e.add(s,n.tokens),i=n.endState}return{heuristicTokens:!0}}guessStartState(e){let t=this._textModel.getLineFirstNonWhitespaceColumn(e);const n=[];let i=null;for(let r=e-1;t>1&&r>=1;r--){const e=this._textModel.getLineFirstNonWhitespaceColumn(r);if(0!==e&&e<t&&(n.push(this._textModel.getLineContent(r)),t=e,i=this.getStartState(r),i))break}i||(i=this.tokenizationSupport.getInitialState()),n.reverse();const r=this._textModel.getLanguageId();let s=i;for(const e of n)s=ct(this._languageIdCodec,r,this.tokenizationSupport,e,!1,s).endState;return s}}class ht{constructor(e){this.lineCount=e,this._tokenizationStateStore=new lt,this._invalidEndStatesLineNumbers=new dt,this._invalidEndStatesLineNumbers.addRange(new et.OffsetRange(1,e+1))}getEndState(e){return this._tokenizationStateStore.getEndState(e)}setEndState(e,t){if(!t)throw new s.BugIndicatingError("Cannot set null/undefined state");this._invalidEndStatesLineNumbers.delete(e);const n=this._tokenizationStateStore.setEndState(e,t);return n&&e<this.lineCount&&this._invalidEndStatesLineNumbers.addRange(new et.OffsetRange(e+1,e+2)),n}acceptChange(e,t){this.lineCount+=t-e.length,this._tokenizationStateStore.acceptChange(e,t),this._invalidEndStatesLineNumbers.addRangeAndResize(new et.OffsetRange(e.startLineNumber,e.endLineNumberExclusive),t)}acceptChanges(e){for(const t of e){const[e]=(0,d.countEOL)(t.text);this.acceptChange(new $e.LineRange(t.range.startLineNumber,t.range.endLineNumber+1),e+1)}}invalidateEndStateRange(e){this._invalidEndStatesLineNumbers.addRange(new et.OffsetRange(e.startLineNumber,e.endLineNumberExclusive))}getFirstInvalidEndStateLineNumber(){return this._invalidEndStatesLineNumbers.min}getFirstInvalidEndStateLineNumberOrMax(){return this.getFirstInvalidEndStateLineNumber()||Number.MAX_SAFE_INTEGER}allStatesValid(){return null===this._invalidEndStatesLineNumbers.min}getStartState(e,t){return 1===e?t:this.getEndState(e-1)}getFirstInvalidLine(e){const t=this.getFirstInvalidEndStateLineNumber();if(null===t)return null;const n=this.getStartState(t,e);if(!n)throw new s.BugIndicatingError("Start state must be defined");return{lineNumber:t,startState:n}}}class lt{constructor(){this._lineEndStates=new nt(null)}getEndState(e){return this._lineEndStates.get(e)}setEndState(e,t){const n=this._lineEndStates.get(e);return!(n&&n.equals(t)||(this._lineEndStates.set(e,t),0))}acceptChange(e,t){let n=e.length;t>0&&n>0&&(n--,t--),this._lineEndStates.replace(e.startLineNumber,n,t)}}class dt{constructor(){this._ranges=[]}get min(){return 0===this._ranges.length?null:this._ranges[0].start}delete(e){const t=this._ranges.findIndex(t=>t.contains(e));if(-1!==t){const n=this._ranges[t];n.start===e?n.endExclusive===e+1?this._ranges.splice(t,1):this._ranges[t]=new et.OffsetRange(e+1,n.endExclusive):n.endExclusive===e+1?this._ranges[t]=new et.OffsetRange(n.start,e):this._ranges.splice(t,1,new et.OffsetRange(n.start,e),new et.OffsetRange(e+1,n.endExclusive))}}addRange(e){et.OffsetRange.addRange(e,this._ranges)}addRangeAndResize(e,t){let n=0;for(;!(n>=this._ranges.length||e.start<=this._ranges[n].endExclusive);)n++;let i=n;for(;!(i>=this._ranges.length||e.endExclusive<this._ranges[i].start);)i++;const r=t-e.length;for(let e=i;e<this._ranges.length;e++)this._ranges[e]=this._ranges[e].delta(r);if(n===i){const i=new et.OffsetRange(e.start,e.start+t);i.isEmpty||this._ranges.splice(n,0,i)}else{const t=Math.min(e.start,this._ranges[n].start),s=Math.max(e.endExclusive,this._ranges[i-1].endExclusive),o=new et.OffsetRange(t,s+r);o.isEmpty?this._ranges.splice(n,i-n):this._ranges.splice(n,i-n,o)}}toString(){return this._ranges.map(e=>e.toString()).join(" + ")}}function ct(e,t,n,i,r,o){let a=null;if(n)try{a=n.tokenizeEncoded(i,r,o.clone())}catch(e){(0,s.onUnexpectedError)(e)}return a||(a=(0,tt.nullTokenizeEncoded)(e.encodeLanguageId(t),o)),st.LineTokens.convertToEndOffset(a.tokens,i.length),a}class ut{constructor(e,t){this._tokenizerWithStateStore=e,this._backgroundTokenStore=t,this._isDisposed=!1,this._isScheduled=!1}dispose(){this._isDisposed=!0}handleChanges(){this._beginBackgroundTokenization()}_beginBackgroundTokenization(){!this._isScheduled&&this._tokenizerWithStateStore._textModel.isAttachedToEditor()&&this._hasLinesToTokenize()&&(this._isScheduled=!0,(0,Qe.runWhenGlobalIdle)(e=>{this._isScheduled=!1,this._backgroundTokenizeWithDeadline(e)}))}_backgroundTokenizeWithDeadline(e){const t=Date.now()+e.timeRemaining(),n=()=>{!this._isDisposed&&this._tokenizerWithStateStore._textModel.isAttachedToEditor()&&this._hasLinesToTokenize()&&(this._backgroundTokenizeForAtLeast1ms(),Date.now()<t?(0,Ye.setTimeout0)(n):this._beginBackgroundTokenization())};n()}_backgroundTokenizeForAtLeast1ms(){const e=this._tokenizerWithStateStore._textModel.getLineCount(),t=new rt,n=Je.StopWatch.create(!1);do{if(n.elapsed()>1)break;if(this._tokenizeOneInvalidLine(t)>=e)break}while(this._hasLinesToTokenize());this._backgroundTokenStore.setTokens(t.finalize()),this.checkFinished()}_hasLinesToTokenize(){return!!this._tokenizerWithStateStore&&!this._tokenizerWithStateStore.store.allStatesValid()}_tokenizeOneInvalidLine(e){const t=this._tokenizerWithStateStore?.getFirstInvalidLine();return t?(this._tokenizerWithStateStore.updateTokensUntilLine(e,t.lineNumber),t.lineNumber):this._tokenizerWithStateStore._textModel.getLineCount()+1}checkFinished(){this._isDisposed||this._tokenizerWithStateStore.store.allStatesValid()&&this._backgroundTokenStore.backgroundTokenizationFinished()}requestTokens(e,t){this._tokenizerWithStateStore.store.invalidateEndStateRange(new $e.LineRange(e,t))}}class gt{constructor(){this._onDidChangeVisibleRanges=new o.Emitter,this.onDidChangeVisibleRanges=this._onDidChangeVisibleRanges.event,this._views=new Set}attachView(){const e=new ft(t=>{this._onDidChangeVisibleRanges.fire({view:e,state:t})});return this._views.add(e),e}detachView(e){this._views.delete(e),this._onDidChangeVisibleRanges.fire({view:e,state:void 0})}}class ft{constructor(e){this.handleStateChange=e}setVisibleLines(e,t){const n=e.map(e=>new $e.LineRange(e.startLineNumber,e.endLineNumber+1));this.handleStateChange({visibleLineRanges:n,stabilized:t})}}class _t extends a.Disposable{get lineRanges(){return this._lineRanges}constructor(e){super(),this._refreshTokens=e,this.runner=this._register(new Qe.RunOnceScheduler(()=>this.update(),50)),this._computedLineRanges=[],this._lineRanges=[]}update(){(0,i.equals)(this._computedLineRanges,this._lineRanges,(e,t)=>e.equals(t))||(this._computedLineRanges=this._lineRanges,this._refreshTokens())}handleStateChange(e){this._lineRanges=e.visibleLineRanges,e.stabilized?(this.runner.cancel(),this.update()):this.runner.schedule()}}class pt extends a.Disposable{get backgroundTokenizationState(){return this._backgroundTokenizationState}constructor(e,t,n){super(),this._languageIdCodec=e,this._textModel=t,this.getLanguageId=n,this._backgroundTokenizationState=1,this._onDidChangeBackgroundTokenizationState=this._register(new o.Emitter),this.onDidChangeBackgroundTokenizationState=this._onDidChangeBackgroundTokenizationState.event,this._onDidChangeTokens=this._register(new o.Emitter),this.onDidChangeTokens=this._onDidChangeTokens.event}tokenizeIfCheap(e){this.isCheapToTokenize(e)&&this.forceTokenization(e)}}class mt extends pt{constructor(e,t,n,i){super(t,n,i),this._treeSitterService=e,this._tokenizationSupport=null,this._initialize()}_initialize(){const e=this.getLanguageId();this._tokenizationSupport&&this._lastLanguageId===e||(this._lastLanguageId=e,this._tokenizationSupport=Ke.TreeSitterTokenizationRegistry.get(e))}getLineTokens(e){const t=this._textModel.getLineContent(e);if(this._tokenizationSupport){const n=this._tokenizationSupport.tokenizeEncoded(e,this._textModel);if(n)return new st.LineTokens(n,t,this._languageIdCodec)}return st.LineTokens.createEmpty(t,this._languageIdCodec)}resetTokenization(e=!0){e&&this._onDidChangeTokens.fire({semanticTokensApplied:!1,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]}),this._initialize()}handleDidChangeAttached(){}handleDidChangeContent(e){e.isFlush&&this.resetTokenization(!1)}forceTokenization(e){}hasAccurateTokensForLine(e){return!0}isCheapToTokenize(e){return!0}getTokenTypeIfInsertingCharacter(e,t,n){return 0}tokenizeLineWithEdit(e,t,n){return null}get hasTokens(){return void 0!==this._treeSitterService.getParseResult(this._textModel)}}var Ct=n(47105);const kt=new Uint32Array(0).buffer;class bt{static deleteBeginning(e,t){return null===e||e===kt?e:bt.delete(e,0,t)}static deleteEnding(e,t){if(null===e||e===kt)return e;const n=Lt(e),i=n[n.length-2];return bt.delete(e,t,i)}static delete(e,t,n){if(null===e||e===kt||t===n)return e;const i=Lt(e),r=i.length>>>1;if(0===t&&i[i.length-2]===n)return kt;const s=st.LineTokens.findIndexInTokensArray(i,t),o=s>0?i[s-1<<1]:0;if(n<i[s<<1]){const o=n-t;for(let e=s;e<r;e++)i[e<<1]-=o;return e}let a,h;o!==t?(i[s<<1]=t,a=s+1<<1,h=t):(a=s<<1,h=o);const l=n-t;for(let e=s+1;e<r;e++){const t=i[e<<1]-l;t>h&&(i[a++]=t,i[a++]=i[1+(e<<1)],h=t)}if(a===i.length)return e;const d=new Uint32Array(a);return d.set(i.subarray(0,a),0),d.buffer}static append(e,t){if(t===kt)return e;if(e===kt)return t;if(null===e)return e;if(null===t)return null;const n=Lt(e),i=Lt(t),r=i.length>>>1,s=new Uint32Array(n.length+i.length);s.set(n,0);let o=n.length;const a=n[n.length-2];for(let e=0;e<r;e++)s[o++]=i[e<<1]+a,s[o++]=i[1+(e<<1)];return s.buffer}static insert(e,t,n){if(null===e||e===kt)return e;const i=Lt(e),r=i.length>>>1;let s=st.LineTokens.findIndexInTokensArray(i,t);s>0&&i[s-1<<1]===t&&s--;for(let e=s;e<r;e++)i[e<<1]+=n;return e}}function Lt(e){return e instanceof Uint32Array?e:new Uint32Array(e)}var It=n(22519);class Tt{constructor(e){this._lineTokens=[],this._len=0,this._languageIdCodec=e}flush(){this._lineTokens=[],this._len=0}get hasTokens(){return this._lineTokens.length>0}getTokens(e,t,n){let i=null;if(t<this._len&&(i=this._lineTokens[t]),null!==i&&i!==kt)return new st.LineTokens(Lt(i),n,this._languageIdCodec);const r=new Uint32Array(2);return r[0]=n.length,r[1]=St(this._languageIdCodec.encodeLanguageId(e)),new st.LineTokens(r,n,this._languageIdCodec)}static _massageTokens(e,t,n){const i=n?Lt(n):null;if(0===t){let t=!1;if(i&&i.length>1&&(t=It.TokenMetadata.getLanguageId(i[1])!==e),!t)return kt}if(!i||0===i.length){const n=new Uint32Array(2);return n[0]=t,n[1]=St(e),n.buffer}return i[i.length-2]=t,0===i.byteOffset&&i.byteLength===i.buffer.byteLength?i.buffer:i}_ensureLine(e){for(;e>=this._len;)this._lineTokens[this._len]=null,this._len++}_deleteLines(e,t){0!==t&&(e+t>this._len&&(t=this._len-e),this._lineTokens.splice(e,t),this._len-=t)}_insertLines(e,t){if(0===t)return;const n=[];for(let e=0;e<t;e++)n[e]=null;this._lineTokens=i.arrayInsert(this._lineTokens,e,n),this._len+=t}setTokens(e,t,n,i,r){const s=Tt._massageTokens(this._languageIdCodec.encodeLanguageId(e),n,i);this._ensureLine(t);const o=this._lineTokens[t];return this._lineTokens[t]=s,!!r&&!Tt._equals(o,s)}static _equals(e,t){if(!e||!t)return!e&&!t;const n=Lt(e),i=Lt(t);if(n.length!==i.length)return!1;for(let e=0,t=n.length;e<t;e++)if(n[e]!==i[e])return!1;return!0}acceptEdit(e,t,n){this._acceptDeleteRange(e),this._acceptInsertText(new u.Position(e.startLineNumber,e.startColumn),t,n)}_acceptDeleteRange(e){const t=e.startLineNumber-1;if(t>=this._len)return;if(e.startLineNumber===e.endLineNumber){if(e.startColumn===e.endColumn)return;return void(this._lineTokens[t]=bt.delete(this._lineTokens[t],e.startColumn-1,e.endColumn-1))}this._lineTokens[t]=bt.deleteEnding(this._lineTokens[t],e.startColumn-1);const n=e.endLineNumber-1;let i=null;n<this._len&&(i=bt.deleteBeginning(this._lineTokens[n],e.endColumn-1)),this._lineTokens[t]=bt.append(this._lineTokens[t],i),this._deleteLines(e.startLineNumber,e.endLineNumber-e.startLineNumber)}_acceptInsertText(e,t,n){if(0===t&&0===n)return;const i=e.lineNumber-1;i>=this._len||(0!==t?(this._lineTokens[i]=bt.deleteEnding(this._lineTokens[i],e.column-1),this._lineTokens[i]=bt.insert(this._lineTokens[i],e.column-1,n),this._insertLines(e.lineNumber,t)):this._lineTokens[i]=bt.insert(this._lineTokens[i],e.column-1,n))}setMultilineTokens(e,t){if(0===e.length)return{changes:[]};const n=[];for(let i=0,r=e.length;i<r;i++){const r=e[i];let s=0,o=0,a=!1;for(let e=r.startLineNumber;e<=r.endLineNumber;e++)a?(this.setTokens(t.getLanguageId(),e-1,t.getLineLength(e),r.getLineTokens(e),!1),o=e):this.setTokens(t.getLanguageId(),e-1,t.getLineLength(e),r.getLineTokens(e),!0)&&(a=!0,s=e,o=e);a&&n.push({fromLineNumber:s,toLineNumber:o})}return{changes:n}}}function St(e){return(32768|e|2<<24|1024)>>>0}class vt{constructor(e){this._pieces=[],this._isComplete=!1,this._languageIdCodec=e}flush(){this._pieces=[],this._isComplete=!1}isEmpty(){return 0===this._pieces.length}set(e,t){this._pieces=e||[],this._isComplete=t}setPartial(e,t){let n=e;if(t.length>0){const i=t[0].getRange(),r=t[t.length-1].getRange();if(!i||!r)return e;n=e.plusRange(i).plusRange(r)}let r=null;for(let e=0,t=this._pieces.length;e<t;e++){const i=this._pieces[e];if(i.endLineNumber<n.startLineNumber)continue;if(i.startLineNumber>n.endLineNumber){r=r||{index:e};break}if(i.removeTokens(n),i.isEmpty()){this._pieces.splice(e,1),e--,t--;continue}if(i.endLineNumber<n.startLineNumber)continue;if(i.startLineNumber>n.endLineNumber){r=r||{index:e};continue}const[s,o]=i.split(n);s.isEmpty()?r=r||{index:e}:o.isEmpty()||(this._pieces.splice(e,1,s,o),e++,t++,r=r||{index:e})}return r=r||{index:this._pieces.length},t.length>0&&(this._pieces=i.arrayInsert(this._pieces,r.index,t)),n}isComplete(){return this._isComplete}addSparseTokens(e,t){if(0===t.getLineContent().length)return t;const n=this._pieces;if(0===n.length)return t;const i=n[vt._findFirstPieceWithLine(n,e)].getLineTokens(e);if(!i)return t;const r=t.getCount(),s=i.getCount();let o=0;const a=[];let h=0,l=0;const d=(e,t)=>{e!==l&&(l=e,a[h++]=e,a[h++]=t)};for(let e=0;e<s;e++){const n=i.getStartCharacter(e),s=i.getEndCharacter(e),a=i.getMetadata(e),h=((1&a?2048:0)|(2&a?4096:0)|(4&a?8192:0)|(8&a?16384:0)|(16&a?16744448:0)|(32&a?4278190080:0))>>>0,l=~h>>>0;for(;o<r&&t.getEndOffset(o)<=n;)d(t.getEndOffset(o),t.getMetadata(o)),o++;for(o<r&&t.getStartOffset(o)<n&&d(n,t.getMetadata(o));o<r&&t.getEndOffset(o)<s;)d(t.getEndOffset(o),t.getMetadata(o)&l|a&h),o++;if(o<r)d(s,t.getMetadata(o)&l|a&h),t.getEndOffset(o)===s&&o++;else{const e=Math.min(Math.max(0,o-1),r-1);d(s,t.getMetadata(e)&l|a&h)}}for(;o<r;)d(t.getEndOffset(o),t.getMetadata(o)),o++;return new st.LineTokens(new Uint32Array(a),t.getLineContent(),this._languageIdCodec)}static _findFirstPieceWithLine(e,t){let n=0,i=e.length-1;for(;n<i;){let r=n+Math.floor((i-n)/2);if(e[r].endLineNumber<t)n=r+1;else{if(!(e[r].startLineNumber>t)){for(;r>n&&e[r-1].startLineNumber<=t&&t<=e[r-1].endLineNumber;)r--;return r}i=r-1}}return n}acceptEdit(e,t,n,i,r){for(const s of this._pieces)s.acceptEdit(e,t,n,i,r)}}var xt,Et=function(e,t){return function(n,i){t(n,i,e)}};let wt=xt=class extends Xe.TextModelPart{constructor(e,t,n,i,r,s,h){super(),this._textModel=e,this._bracketPairsTextModelPart=t,this._languageId=n,this._attachedViews=i,this._languageService=r,this._languageConfigurationService=s,this._treeSitterService=h,this._semanticTokens=new vt(this._languageService.languageIdCodec),this._onDidChangeLanguage=this._register(new o.Emitter),this.onDidChangeLanguage=this._onDidChangeLanguage.event,this._onDidChangeLanguageConfiguration=this._register(new o.Emitter),this.onDidChangeLanguageConfiguration=this._onDidChangeLanguageConfiguration.event,this._onDidChangeTokens=this._register(new o.Emitter),this.onDidChangeTokens=this._onDidChangeTokens.event,this._tokensDisposables=this._register(new a.DisposableStore),this._register(this._languageConfigurationService.onDidChange(e=>{e.affects(this._languageId)&&this._onDidChangeLanguageConfiguration.fire({})})),this._register(o.Event.filter(Ke.TreeSitterTokenizationRegistry.onDidChange,e=>e.changedLanguages.includes(this._languageId))(()=>{this.createPreferredTokenProvider()})),this.createPreferredTokenProvider()}createGrammarTokens(){return this._register(new Bt(this._languageService.languageIdCodec,this._textModel,()=>this._languageId,this._attachedViews))}createTreeSitterTokens(){return this._register(new mt(this._treeSitterService,this._languageService.languageIdCodec,this._textModel,()=>this._languageId))}createTokens(e){const t=void 0!==this._tokens;this._tokens?.dispose(),this._tokens=e?this.createTreeSitterTokens():this.createGrammarTokens(),this._tokensDisposables.clear(),this._tokensDisposables.add(this._tokens.onDidChangeTokens(e=>{this._emitModelTokensChangedEvent(e)})),this._tokensDisposables.add(this._tokens.onDidChangeBackgroundTokenizationState(e=>{this._bracketPairsTextModelPart.handleDidChangeBackgroundTokenizationState()})),t&&this._tokens.resetTokenization()}createPreferredTokenProvider(){Ke.TreeSitterTokenizationRegistry.get(this._languageId)?this._tokens instanceof mt||this.createTokens(!0):this._tokens instanceof Bt||this.createTokens(!1)}handleLanguageConfigurationServiceChange(e){e.affects(this._languageId)&&this._onDidChangeLanguageConfiguration.fire({})}handleDidChangeContent(e){if(e.isFlush)this._semanticTokens.flush();else if(!e.isEolChange)for(const t of e.changes){const[e,n,i]=(0,d.countEOL)(t.text);this._semanticTokens.acceptEdit(t.range,e,n,i,t.text.length>0?t.text.charCodeAt(0):0)}this._tokens.handleDidChangeContent(e)}handleDidChangeAttached(){this._tokens.handleDidChangeAttached()}getLineTokens(e){this.validateLineNumber(e);const t=this._tokens.getLineTokens(e);return this._semanticTokens.addSparseTokens(e,t)}_emitModelTokensChangedEvent(e){this._textModel._isDisposing()||(this._bracketPairsTextModelPart.handleDidChangeTokens(e),this._onDidChangeTokens.fire(e))}validateLineNumber(e){if(e<1||e>this._textModel.getLineCount())throw new s.BugIndicatingError("Illegal value for lineNumber")}get hasTokens(){return this._tokens.hasTokens}resetTokenization(){this._tokens.resetTokenization()}get backgroundTokenizationState(){return this._tokens.backgroundTokenizationState}forceTokenization(e){this.validateLineNumber(e),this._tokens.forceTokenization(e)}hasAccurateTokensForLine(e){return this.validateLineNumber(e),this._tokens.hasAccurateTokensForLine(e)}isCheapToTokenize(e){return this.validateLineNumber(e),this._tokens.isCheapToTokenize(e)}tokenizeIfCheap(e){this.validateLineNumber(e),this._tokens.tokenizeIfCheap(e)}getTokenTypeIfInsertingCharacter(e,t,n){return this._tokens.getTokenTypeIfInsertingCharacter(e,t,n)}tokenizeLineWithEdit(e,t,n){return this._tokens.tokenizeLineWithEdit(e,t,n)}setSemanticTokens(e,t){this._semanticTokens.set(e,t),this._emitModelTokensChangedEvent({semanticTokensApplied:null!==e,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]})}hasCompleteSemanticTokens(){return this._semanticTokens.isComplete()}hasSomeSemanticTokens(){return!this._semanticTokens.isEmpty()}setPartialSemanticTokens(e,t){if(this.hasCompleteSemanticTokens())return;const n=this._textModel.validateRange(this._semanticTokens.setPartial(e,t));this._emitModelTokensChangedEvent({semanticTokensApplied:!0,ranges:[{fromLineNumber:n.startLineNumber,toLineNumber:n.endLineNumber}]})}getWordAtPosition(e){this.assertNotDisposed();const t=this._textModel.validatePosition(e),n=this._textModel.getLineContent(t.lineNumber),i=this.getLineTokens(t.lineNumber),r=i.findTokenIndexAtOffset(t.column-1),[s,o]=xt._findLanguageBoundaries(i,r),a=(0,Ze.getWordAtText)(t.column,this.getLanguageConfiguration(i.getLanguageId(r)).getWordDefinition(),n.substring(s,o),s);if(a&&a.startColumn<=e.column&&e.column<=a.endColumn)return a;if(r>0&&s===t.column-1){const[s,o]=xt._findLanguageBoundaries(i,r-1),a=(0,Ze.getWordAtText)(t.column,this.getLanguageConfiguration(i.getLanguageId(r-1)).getWordDefinition(),n.substring(s,o),s);if(a&&a.startColumn<=e.column&&e.column<=a.endColumn)return a}return null}getLanguageConfiguration(e){return this._languageConfigurationService.getLanguageConfiguration(e)}static _findLanguageBoundaries(e,t){const n=e.getLanguageId(t);let i=0;for(let r=t;r>=0&&e.getLanguageId(r)===n;r--)i=e.getStartOffset(r);let r=e.getLineContent().length;for(let i=t,s=e.getCount();i<s&&e.getLanguageId(i)===n;i++)r=e.getEndOffset(i);return[i,r]}getWordUntilPosition(e){const t=this.getWordAtPosition(e);return t?{word:t.word.substr(0,e.column-t.startColumn),startColumn:t.startColumn,endColumn:e.column}:{word:"",startColumn:e.column,endColumn:e.column}}getLanguageId(){return this._languageId}getLanguageIdAtPosition(e,t){const n=this._textModel.validatePosition(new u.Position(e,t)),i=this.getLineTokens(n.lineNumber);return i.getLanguageId(i.findTokenIndexAtOffset(n.column-1))}setLanguageId(e,t="api"){if(this._languageId===e)return;const n={oldLanguage:this._languageId,newLanguage:e,source:t};this._languageId=e,this._bracketPairsTextModelPart.handleDidChangeLanguage(n),this._tokens.resetTokenization(),this.createPreferredTokenProvider(),this._onDidChangeLanguage.fire(n),this._onDidChangeLanguageConfiguration.fire({})}};wt=xt=function(e,t,n,i){var r,s=arguments.length,o=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(s<3?r(o):s>3?r(t,n,o):r(t,n))||o);return s>3&&o&&Object.defineProperty(t,n,o),o}([Et(4,p.ILanguageService),Et(5,m.ILanguageConfigurationService),Et(6,Ct.ITreeSitterParserService)],wt);class Bt extends pt{constructor(e,t,n,i){super(e,t,n),this._tokenizer=null,this._defaultBackgroundTokenizer=null,this._backgroundTokenizer=this._register(new a.MutableDisposable),this._tokens=new Tt(this._languageIdCodec),this._debugBackgroundTokenizer=this._register(new a.MutableDisposable),this._attachedViewStates=this._register(new a.DisposableMap),this._register(Ke.TokenizationRegistry.onDidChange(e=>{const t=this.getLanguageId();-1!==e.changedLanguages.indexOf(t)&&this.resetTokenization()})),this.resetTokenization(),this._register(i.onDidChangeVisibleRanges(({view:e,state:t})=>{if(t){let n=this._attachedViewStates.get(e);n||(n=new _t(()=>this.refreshRanges(n.lineRanges)),this._attachedViewStates.set(e,n)),n.handleStateChange(t)}else this._attachedViewStates.deleteAndDispose(e)}))}resetTokenization(e=!0){this._tokens.flush(),this._debugBackgroundTokens?.flush(),this._debugBackgroundStates&&(this._debugBackgroundStates=new ht(this._textModel.getLineCount())),e&&this._onDidChangeTokens.fire({semanticTokensApplied:!1,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]});const[t,n]=(()=>{if(this._textModel.isTooLargeForTokenization())return[null,null];const e=Ke.TokenizationRegistry.get(this.getLanguageId());if(!e)return[null,null];let t;try{t=e.getInitialState()}catch(e){return(0,s.onUnexpectedError)(e),[null,null]}return[e,t]})();if(this._tokenizer=t&&n?new at(this._textModel.getLineCount(),t,this._textModel,this._languageIdCodec):null,this._backgroundTokenizer.clear(),this._defaultBackgroundTokenizer=null,this._tokenizer){const e={setTokens:e=>{this.setTokens(e)},backgroundTokenizationFinished:()=>{2!==this._backgroundTokenizationState&&(this._backgroundTokenizationState=2,this._onDidChangeBackgroundTokenizationState.fire())},setEndState:(e,t)=>{if(!this._tokenizer)return;const n=this._tokenizer.store.getFirstInvalidEndStateLineNumber();null!==n&&e>=n&&this._tokenizer?.store.setEndState(e,t)}};t&&t.createBackgroundTokenizer&&!t.backgroundTokenizerShouldOnlyVerifyTokens&&(this._backgroundTokenizer.value=t.createBackgroundTokenizer(this._textModel,e)),this._backgroundTokenizer.value||this._textModel.isTooLargeForTokenization()||(this._backgroundTokenizer.value=this._defaultBackgroundTokenizer=new ut(this._tokenizer,e),this._defaultBackgroundTokenizer.handleChanges()),t?.backgroundTokenizerShouldOnlyVerifyTokens&&t.createBackgroundTokenizer?(this._debugBackgroundTokens=new Tt(this._languageIdCodec),this._debugBackgroundStates=new ht(this._textModel.getLineCount()),this._debugBackgroundTokenizer.clear(),this._debugBackgroundTokenizer.value=t.createBackgroundTokenizer(this._textModel,{setTokens:e=>{this._debugBackgroundTokens?.setMultilineTokens(e,this._textModel)},backgroundTokenizationFinished(){},setEndState:(e,t)=>{this._debugBackgroundStates?.setEndState(e,t)}})):(this._debugBackgroundTokens=void 0,this._debugBackgroundStates=void 0,this._debugBackgroundTokenizer.value=void 0)}this.refreshAllVisibleLineTokens()}handleDidChangeAttached(){this._defaultBackgroundTokenizer?.handleChanges()}handleDidChangeContent(e){if(e.isFlush)this.resetTokenization(!1);else if(!e.isEolChange){for(const t of e.changes){const[e,n]=(0,d.countEOL)(t.text);this._tokens.acceptEdit(t.range,e,n),this._debugBackgroundTokens?.acceptEdit(t.range,e,n)}this._debugBackgroundStates?.acceptChanges(e.changes),this._tokenizer&&this._tokenizer.store.acceptChanges(e.changes),this._defaultBackgroundTokenizer?.handleChanges()}}setTokens(e){const{changes:t}=this._tokens.setMultilineTokens(e,this._textModel);return t.length>0&&this._onDidChangeTokens.fire({semanticTokensApplied:!1,ranges:t}),{changes:t}}refreshAllVisibleLineTokens(){const e=$e.LineRange.joinMany([...this._attachedViewStates].map(([e,t])=>t.lineRanges));this.refreshRanges(e)}refreshRanges(e){for(const t of e)this.refreshRange(t.startLineNumber,t.endLineNumberExclusive-1)}refreshRange(e,t){if(!this._tokenizer)return;e=Math.max(1,Math.min(this._textModel.getLineCount(),e)),t=Math.min(this._textModel.getLineCount(),t);const n=new rt,{heuristicTokens:i}=this._tokenizer.tokenizeHeuristically(n,e,t),r=this.setTokens(n.finalize());if(i)for(const e of r.changes)this._backgroundTokenizer.value?.requestTokens(e.fromLineNumber,e.toLineNumber+1);this._defaultBackgroundTokenizer?.checkFinished()}forceTokenization(e){const t=new rt;this._tokenizer?.updateTokensUntilLine(t,e),this.setTokens(t.finalize()),this._defaultBackgroundTokenizer?.checkFinished()}hasAccurateTokensForLine(e){return!this._tokenizer||this._tokenizer.hasAccurateTokensForLine(e)}isCheapToTokenize(e){return!this._tokenizer||this._tokenizer.isCheapToTokenize(e)}getLineTokens(e){const t=this._textModel.getLineContent(e),n=this._tokens.getTokens(this._textModel.getLanguageId(),e-1,t);if(this._debugBackgroundTokens&&this._debugBackgroundStates&&this._tokenizer&&this._debugBackgroundStates.getFirstInvalidEndStateLineNumberOrMax()>e&&this._tokenizer.store.getFirstInvalidEndStateLineNumberOrMax()>e){const i=this._debugBackgroundTokens.getTokens(this._textModel.getLanguageId(),e-1,t);!n.equals(i)&&this._debugBackgroundTokenizer.value?.reportMismatchingTokens&&this._debugBackgroundTokenizer.value.reportMismatchingTokens(e)}return n}getTokenTypeIfInsertingCharacter(e,t,n){if(!this._tokenizer)return 0;const i=this._textModel.validatePosition(new u.Position(e,t));return this.forceTokenization(i.lineNumber),this._tokenizer.getTokenTypeIfInsertingCharacter(i,n)}tokenizeLineWithEdit(e,t,n){if(!this._tokenizer)return null;const i=this._textModel.validatePosition(e);return this.forceTokenization(i.lineNumber),this._tokenizer.tokenizeLineWithEdit(i,t,n)}get hasTokens(){return this._tokens.hasTokens}}var Ot,Nt=n(2520),Rt=n(35184),At=n(3216),Dt=function(e,t){return function(n,i){t(n,i,e)}};function Mt(e){const t=new qe;return t.acceptChunk(e),t.finish()}function zt(e){const t=new qe;let n;for(;"string"==typeof(n=e.read());)t.acceptChunk(n);return t.finish()}function Pt(e,t){let n;return n="string"==typeof e?Mt(e):C.isITextSnapshot(e)?zt(e):e,n.create(t)}let yt=0;class Ft{constructor(e){this._source=e,this._eos=!1}read(){if(this._eos)return null;const e=[];let t=0,n=0;for(;;){const i=this._source.read();if(null===i)return this._eos=!0,0===t?null:e.join("");if(i.length>0&&(e[t++]=i,n+=i.length),n>=65536)return e.join("")}}}const Ut=()=>{throw new Error("Invalid change accessor")};let Wt=class extends a.Disposable{static{Ot=this}static{this._MODEL_SYNC_LIMIT=52428800}static{this.LARGE_FILE_SIZE_THRESHOLD=20971520}static{this.LARGE_FILE_LINE_COUNT_THRESHOLD=3e5}static{this.LARGE_FILE_HEAP_OPERATION_THRESHOLD=268435456}static{this.DEFAULT_CREATION_OPTIONS={isForSimpleWidget:!1,tabSize:_.EDITOR_MODEL_DEFAULTS.tabSize,indentSize:_.EDITOR_MODEL_DEFAULTS.indentSize,insertSpaces:_.EDITOR_MODEL_DEFAULTS.insertSpaces,detectIndentation:!1,defaultEOL:1,trimAutoWhitespace:_.EDITOR_MODEL_DEFAULTS.trimAutoWhitespace,largeFileOptimizations:_.EDITOR_MODEL_DEFAULTS.largeFileOptimizations,bracketPairColorizationOptions:_.EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions}}static resolveOptions(e,t){if(t.detectIndentation){const n=K(e,t.tabSize,t.insertSpaces);return new C.TextModelResolvedOptions({tabSize:n.tabSize,indentSize:"tabSize",insertSpaces:n.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL,bracketPairColorizationOptions:t.bracketPairColorizationOptions})}return new C.TextModelResolvedOptions(t)}get onDidChangeLanguage(){return this._tokenizationTextModelPart.onDidChangeLanguage}get onDidChangeLanguageConfiguration(){return this._tokenizationTextModelPart.onDidChangeLanguageConfiguration}get onDidChangeTokens(){return this._tokenizationTextModelPart.onDidChangeTokens}onDidChangeContent(e){return this._eventEmitter.slowEvent(t=>e(t.contentChangedEvent))}onDidChangeContentOrInjectedText(e){return(0,a.combinedDisposable)(this._eventEmitter.fastEvent(t=>e(t)),this._onDidChangeInjectedText.event(t=>e(t)))}_isDisposing(){return this.__isDisposing}get tokenization(){return this._tokenizationTextModelPart}get bracketPairs(){return this._bracketPairs}get guides(){return this._guidesTextModelPart}constructor(e,t,n,i=null,r,s,d,c){super(),this._undoRedoService=r,this._languageService=s,this._languageConfigurationService=d,this.instantiationService=c,this._onWillDispose=this._register(new o.Emitter),this.onWillDispose=this._onWillDispose.event,this._onDidChangeDecorations=this._register(new tn(e=>this.handleBeforeFireDecorationsChangedEvent(e))),this.onDidChangeDecorations=this._onDidChangeDecorations.event,this._onDidChangeOptions=this._register(new o.Emitter),this.onDidChangeOptions=this._onDidChangeOptions.event,this._onDidChangeAttached=this._register(new o.Emitter),this.onDidChangeAttached=this._onDidChangeAttached.event,this._onDidChangeInjectedText=this._register(new o.Emitter),this._eventEmitter=this._register(new nn),this._languageSelectionListener=this._register(new a.MutableDisposable),this._deltaDecorationCallCnt=0,this._attachedViews=new gt,yt++,this.id="$model"+yt,this.isForSimpleWidget=n.isForSimpleWidget,this._associatedResource=null==i?l.URI.parse("inmemory://model/"+yt):i,this._attachedEditorCount=0;const{textBuffer:u,disposable:f}=Pt(e,n.defaultEOL);this._buffer=u,this._bufferDisposable=f,this._options=Ot.resolveOptions(this._buffer,n);const _="string"==typeof t?t:t.languageId;"string"!=typeof t&&(this._languageSelectionListener.value=t.onDidChange(()=>this._setLanguage(t.languageId))),this._bracketPairs=this._register(new P(this,this._languageConfigurationService)),this._guidesTextModelPart=this._register(new q.GuidesTextModelPart(this,this._languageConfigurationService)),this._decorationProvider=this._register(new H(this)),this._tokenizationTextModelPart=this.instantiationService.createInstance(wt,this,this._bracketPairs,_,this._attachedViews);const p=this._buffer.getLineCount(),m=this._buffer.getValueLengthInRange(new g.Range(1,1,p,this._buffer.getLineLength(p)+1),0);n.largeFileOptimizations?(this._isTooLargeForTokenization=m>Ot.LARGE_FILE_SIZE_THRESHOLD||p>Ot.LARGE_FILE_LINE_COUNT_THRESHOLD,this._isTooLargeForHeapOperation=m>Ot.LARGE_FILE_HEAP_OPERATION_THRESHOLD):(this._isTooLargeForTokenization=!1,this._isTooLargeForHeapOperation=!1),this._isTooLargeForSyncing=m>Ot._MODEL_SYNC_LIMIT,this._versionId=1,this._alternativeVersionId=1,this._initialUndoRedoSnapshot=null,this._isDisposed=!1,this.__isDisposing=!1,this._instanceId=h.singleLetterHash(yt),this._lastDecorationId=0,this._decorations=Object.create(null),this._decorationsTree=new jt,this._commandManager=new j.EditStack(this,this._undoRedoService),this._isUndoing=!1,this._isRedoing=!1,this._trimAutoWhitespaceLines=null,this._register(this._decorationProvider.onDidChange(()=>{this._onDidChangeDecorations.beginDeferredEmit(),this._onDidChangeDecorations.fire(),this._onDidChangeDecorations.endDeferredEmit()})),this._languageService.requestRichLanguageFeatures(_),this._register(this._languageConfigurationService.onDidChange(e=>{this._bracketPairs.handleLanguageConfigurationServiceChange(e),this._tokenizationTextModelPart.handleLanguageConfigurationServiceChange(e)}))}dispose(){this.__isDisposing=!0,this._onWillDispose.fire(),this._tokenizationTextModelPart.dispose(),this._isDisposed=!0,super.dispose(),this._bufferDisposable.dispose(),this.__isDisposing=!1;const e=new Ve([],"","\n",!1,!1,!0,!0);e.dispose(),this._buffer=e,this._bufferDisposable=a.Disposable.None}_assertNotDisposed(){if(this._isDisposed)throw new s.BugIndicatingError("Model is disposed!")}_emitContentChangedEvent(e,t){this.__isDisposing||(this._tokenizationTextModelPart.handleDidChangeContent(t),this._bracketPairs.handleDidChangeContent(t),this._eventEmitter.fire(new Nt.InternalModelContentChangeEvent(e,t)))}setValue(e){if(this._assertNotDisposed(),null==e)throw(0,s.illegalArgument)();const{textBuffer:t,disposable:n}=Pt(e,this._options.defaultEOL);this._setValueFromTextBuffer(t,n)}_createContentChanged2(e,t,n,i,r,s,o,a){return{changes:[{range:e,rangeOffset:t,rangeLength:n,text:i}],eol:this._buffer.getEOL(),isEolChange:a,versionId:this.getVersionId(),isUndoing:r,isRedoing:s,isFlush:o}}_setValueFromTextBuffer(e,t){this._assertNotDisposed();const n=this.getFullModelRange(),i=this.getValueLengthInRange(n),r=this.getLineCount(),s=this.getLineMaxColumn(r);this._buffer=e,this._bufferDisposable.dispose(),this._bufferDisposable=t,this._increaseVersionId(),this._decorations=Object.create(null),this._decorationsTree=new jt,this._commandManager.clear(),this._trimAutoWhitespaceLines=null,this._emitContentChangedEvent(new Nt.ModelRawContentChangedEvent([new Nt.ModelRawFlush],this._versionId,!1,!1),this._createContentChanged2(new g.Range(1,1,r,s),0,i,this.getValue(),!1,!1,!0,!1))}setEOL(e){this._assertNotDisposed();const t=1===e?"\r\n":"\n";if(this._buffer.getEOL()===t)return;const n=this.getFullModelRange(),i=this.getValueLengthInRange(n),r=this.getLineCount(),s=this.getLineMaxColumn(r);this._onBeforeEOLChange(),this._buffer.setEOL(t),this._increaseVersionId(),this._onAfterEOLChange(),this._emitContentChangedEvent(new Nt.ModelRawContentChangedEvent([new Nt.ModelRawEOLChanged],this._versionId,!1,!1),this._createContentChanged2(new g.Range(1,1,r,s),0,i,this.getValue(),!1,!1,!1,!0))}_onBeforeEOLChange(){this._decorationsTree.ensureAllNodesHaveRanges(this)}_onAfterEOLChange(){const e=this.getVersionId(),t=this._decorationsTree.collectNodesPostOrder();for(let n=0,i=t.length;n<i;n++){const i=t[n],r=i.range,s=i.cachedAbsoluteStart-i.start,o=this._buffer.getOffsetAt(r.startLineNumber,r.startColumn),a=this._buffer.getOffsetAt(r.endLineNumber,r.endColumn);i.cachedAbsoluteStart=o,i.cachedAbsoluteEnd=a,i.cachedVersionId=e,i.start=o-s,i.end=a-s,me(i)}}onBeforeAttached(){return this._attachedEditorCount++,1===this._attachedEditorCount&&(this._tokenizationTextModelPart.handleDidChangeAttached(),this._onDidChangeAttached.fire(void 0)),this._attachedViews.attachView()}onBeforeDetached(e){this._attachedEditorCount--,0===this._attachedEditorCount&&(this._tokenizationTextModelPart.handleDidChangeAttached(),this._onDidChangeAttached.fire(void 0)),this._attachedViews.detachView(e)}isAttachedToEditor(){return this._attachedEditorCount>0}getAttachedEditorCount(){return this._attachedEditorCount}isTooLargeForSyncing(){return this._isTooLargeForSyncing}isTooLargeForTokenization(){return this._isTooLargeForTokenization}isTooLargeForHeapOperation(){return this._isTooLargeForHeapOperation}isDisposed(){return this._isDisposed}isDominatedByLongLines(){if(this._assertNotDisposed(),this.isTooLargeForTokenization())return!1;let e=0,t=0;const n=this._buffer.getLineCount();for(let i=1;i<=n;i++){const n=this._buffer.getLineLength(i);n>=1e4?t+=n:e+=n}return t>e}get uri(){return this._associatedResource}getOptions(){return this._assertNotDisposed(),this._options}getFormattingOptions(){return{tabSize:this._options.indentSize,insertSpaces:this._options.insertSpaces}}updateOptions(e){this._assertNotDisposed();const t=void 0!==e.tabSize?e.tabSize:this._options.tabSize,n=void 0!==e.indentSize?e.indentSize:this._options.originalIndentSize,i=void 0!==e.insertSpaces?e.insertSpaces:this._options.insertSpaces,r=void 0!==e.trimAutoWhitespace?e.trimAutoWhitespace:this._options.trimAutoWhitespace,s=void 0!==e.bracketColorizationOptions?e.bracketColorizationOptions:this._options.bracketPairColorizationOptions,o=new C.TextModelResolvedOptions({tabSize:t,indentSize:n,insertSpaces:i,defaultEOL:this._options.defaultEOL,trimAutoWhitespace:r,bracketPairColorizationOptions:s});if(this._options.equals(o))return;const a=this._options.createChangeEvent(o);this._options=o,this._bracketPairs.handleDidChangeOptions(a),this._decorationProvider.handleDidChangeOptions(a),this._onDidChangeOptions.fire(a)}detectIndentation(e,t){this._assertNotDisposed();const n=K(this._buffer,t,e);this.updateOptions({insertSpaces:n.insertSpaces,tabSize:n.tabSize,indentSize:n.tabSize})}normalizeIndentation(e){return this._assertNotDisposed(),(0,c.normalizeIndentation)(e,this._options.indentSize,this._options.insertSpaces)}getVersionId(){return this._assertNotDisposed(),this._versionId}mightContainRTL(){return this._buffer.mightContainRTL()}mightContainUnusualLineTerminators(){return this._buffer.mightContainUnusualLineTerminators()}removeUnusualLineTerminators(e=null){const t=this.findMatches(h.UNUSUAL_LINE_TERMINATORS.source,!1,!0,!1,null,!1,1073741824);this._buffer.resetMightContainUnusualLineTerminators(),this.pushEditOperations(e,t.map(e=>({range:e.range,text:null})),()=>null)}mightContainNonBasicASCII(){return this._buffer.mightContainNonBasicASCII()}getAlternativeVersionId(){return this._assertNotDisposed(),this._alternativeVersionId}getInitialUndoRedoSnapshot(){return this._assertNotDisposed(),this._initialUndoRedoSnapshot}getOffsetAt(e){this._assertNotDisposed();const t=this._validatePosition(e.lineNumber,e.column,0);return this._buffer.getOffsetAt(t.lineNumber,t.column)}getPositionAt(e){this._assertNotDisposed();const t=Math.min(this._buffer.getLength(),Math.max(0,e));return this._buffer.getPositionAt(t)}_increaseVersionId(){this._versionId=this._versionId+1,this._alternativeVersionId=this._versionId}_overwriteVersionId(e){this._versionId=e}_overwriteAlternativeVersionId(e){this._alternativeVersionId=e}_overwriteInitialUndoRedoSnapshot(e){this._initialUndoRedoSnapshot=e}getValue(e,t=!1){if(this._assertNotDisposed(),this.isTooLargeForHeapOperation())throw new s.BugIndicatingError("Operation would exceed heap memory limits");const n=this.getFullModelRange(),i=this.getValueInRange(n,e);return t?this._buffer.getBOM()+i:i}createSnapshot(e=!1){return new Ft(this._buffer.createSnapshot(e))}getValueLength(e,t=!1){this._assertNotDisposed();const n=this.getFullModelRange(),i=this.getValueLengthInRange(n,e);return t?this._buffer.getBOM().length+i:i}getValueInRange(e,t=0){return this._assertNotDisposed(),this._buffer.getValueInRange(this.validateRange(e),t)}getValueLengthInRange(e,t=0){return this._assertNotDisposed(),this._buffer.getValueLengthInRange(this.validateRange(e),t)}getCharacterCountInRange(e,t=0){return this._assertNotDisposed(),this._buffer.getCharacterCountInRange(this.validateRange(e),t)}getLineCount(){return this._assertNotDisposed(),this._buffer.getLineCount()}getLineContent(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new s.BugIndicatingError("Illegal value for lineNumber");return this._buffer.getLineContent(e)}getLineLength(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new s.BugIndicatingError("Illegal value for lineNumber");return this._buffer.getLineLength(e)}getLinesContent(){if(this._assertNotDisposed(),this.isTooLargeForHeapOperation())throw new s.BugIndicatingError("Operation would exceed heap memory limits");return this._buffer.getLinesContent()}getEOL(){return this._assertNotDisposed(),this._buffer.getEOL()}getEndOfLineSequence(){return this._assertNotDisposed(),"\n"===this._buffer.getEOL()?0:1}getLineMinColumn(e){return this._assertNotDisposed(),1}getLineMaxColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new s.BugIndicatingError("Illegal value for lineNumber");return this._buffer.getLineLength(e)+1}getLineFirstNonWhitespaceColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new s.BugIndicatingError("Illegal value for lineNumber");return this._buffer.getLineFirstNonWhitespaceColumn(e)}getLineLastNonWhitespaceColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new s.BugIndicatingError("Illegal value for lineNumber");return this._buffer.getLineLastNonWhitespaceColumn(e)}_validateRangeRelaxedNoAllocations(e){const t=this._buffer.getLineCount(),n=e.startLineNumber,i=e.startColumn;let r=Math.floor("number"!=typeof n||isNaN(n)?1:n),s=Math.floor("number"!=typeof i||isNaN(i)?1:i);if(r<1)r=1,s=1;else if(r>t)r=t,s=this.getLineMaxColumn(r);else if(s<=1)s=1;else{const e=this.getLineMaxColumn(r);s>=e&&(s=e)}const o=e.endLineNumber,a=e.endColumn;let h=Math.floor("number"!=typeof o||isNaN(o)?1:o),l=Math.floor("number"!=typeof a||isNaN(a)?1:a);if(h<1)h=1,l=1;else if(h>t)h=t,l=this.getLineMaxColumn(h);else if(l<=1)l=1;else{const e=this.getLineMaxColumn(h);l>=e&&(l=e)}return n===r&&i===s&&o===h&&a===l&&e instanceof g.Range&&!(e instanceof f.Selection)?e:new g.Range(r,s,h,l)}_isValidPosition(e,t,n){if("number"!=typeof e||"number"!=typeof t)return!1;if(isNaN(e)||isNaN(t))return!1;if(e<1||t<1)return!1;if((0|e)!==e||(0|t)!==t)return!1;if(e>this._buffer.getLineCount())return!1;if(1===t)return!0;if(t>this.getLineMaxColumn(e))return!1;if(1===n){const n=this._buffer.getLineCharCode(e,t-2);if(h.isHighSurrogate(n))return!1}return!0}_validatePosition(e,t,n){const i=Math.floor("number"!=typeof e||isNaN(e)?1:e),r=Math.floor("number"!=typeof t||isNaN(t)?1:t),s=this._buffer.getLineCount();if(i<1)return new u.Position(1,1);if(i>s)return new u.Position(s,this.getLineMaxColumn(s));if(r<=1)return new u.Position(i,1);const o=this.getLineMaxColumn(i);if(r>=o)return new u.Position(i,o);if(1===n){const e=this._buffer.getLineCharCode(i,r-2);if(h.isHighSurrogate(e))return new u.Position(i,r-1)}return new u.Position(i,r)}validatePosition(e){return this._assertNotDisposed(),e instanceof u.Position&&this._isValidPosition(e.lineNumber,e.column,1)?e:this._validatePosition(e.lineNumber,e.column,1)}_isValidRange(e,t){const n=e.startLineNumber,i=e.startColumn,r=e.endLineNumber,s=e.endColumn;if(!this._isValidPosition(n,i,0))return!1;if(!this._isValidPosition(r,s,0))return!1;if(1===t){const e=i>1?this._buffer.getLineCharCode(n,i-2):0,t=s>1&&s<=this._buffer.getLineLength(r)?this._buffer.getLineCharCode(r,s-2):0,o=h.isHighSurrogate(e),a=h.isHighSurrogate(t);return!o&&!a}return!0}validateRange(e){if(this._assertNotDisposed(),e instanceof g.Range&&!(e instanceof f.Selection)&&this._isValidRange(e,1))return e;const t=this._validatePosition(e.startLineNumber,e.startColumn,0),n=this._validatePosition(e.endLineNumber,e.endColumn,0),i=t.lineNumber,r=t.column,s=n.lineNumber,o=n.column;{const e=r>1?this._buffer.getLineCharCode(i,r-2):0,t=o>1&&o<=this._buffer.getLineLength(s)?this._buffer.getLineCharCode(s,o-2):0,n=h.isHighSurrogate(e),a=h.isHighSurrogate(t);return n||a?i===s&&r===o?new g.Range(i,r-1,s,o-1):n&&a?new g.Range(i,r-1,s,o+1):n?new g.Range(i,r-1,s,o):new g.Range(i,r,s,o+1):new g.Range(i,r,s,o)}}modifyPosition(e,t){this._assertNotDisposed();const n=this.getOffsetAt(e)+t;return this.getPositionAt(Math.min(this._buffer.getLength(),Math.max(0,n)))}getFullModelRange(){this._assertNotDisposed();const e=this.getLineCount();return new g.Range(1,1,e,this.getLineMaxColumn(e))}findMatchesLineByLine(e,t,n,i){return this._buffer.findMatchesLineByLine(e,t,n,i)}findMatches(e,t,n,i,r,s,o=999){this._assertNotDisposed();let a=null;null!==t&&(Array.isArray(t)||(t=[t]),t.every(e=>g.Range.isIRange(e))&&(a=t.map(e=>this.validateRange(e)))),null===a&&(a=[this.getFullModelRange()]),a=a.sort((e,t)=>e.startLineNumber-t.startLineNumber||e.startColumn-t.startColumn);const h=[];let l;if(h.push(a.reduce((e,t)=>g.Range.areIntersecting(e,t)?e.plusRange(t):(h.push(e),t))),!n&&e.indexOf("\n")<0){const t=new Ae.SearchParams(e,n,i,r).parseSearchRequest();if(!t)return[];l=e=>this.findMatchesLineByLine(e,t,s,o)}else l=t=>Ae.TextModelSearch.findMatches(this,new Ae.SearchParams(e,n,i,r),t,s,o);return h.map(l).reduce((e,t)=>e.concat(t),[])}findNextMatch(e,t,n,i,r,s){this._assertNotDisposed();const o=this.validatePosition(t);if(!n&&e.indexOf("\n")<0){const t=new Ae.SearchParams(e,n,i,r).parseSearchRequest();if(!t)return null;const a=this.getLineCount();let h=new g.Range(o.lineNumber,o.column,a,this.getLineMaxColumn(a)),l=this.findMatchesLineByLine(h,t,s,1);return Ae.TextModelSearch.findNextMatch(this,new Ae.SearchParams(e,n,i,r),o,s),l.length>0?l[0]:(h=new g.Range(1,1,o.lineNumber,this.getLineMaxColumn(o.lineNumber)),l=this.findMatchesLineByLine(h,t,s,1),l.length>0?l[0]:null)}return Ae.TextModelSearch.findNextMatch(this,new Ae.SearchParams(e,n,i,r),o,s)}findPreviousMatch(e,t,n,i,r,s){this._assertNotDisposed();const o=this.validatePosition(t);return Ae.TextModelSearch.findPreviousMatch(this,new Ae.SearchParams(e,n,i,r),o,s)}pushStackElement(){this._commandManager.pushStackElement()}popStackElement(){this._commandManager.popStackElement()}pushEOL(e){if(("\n"===this.getEOL()?0:1)!==e)try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),null===this._initialUndoRedoSnapshot&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEOL(e)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_validateEditOperation(e){return e instanceof C.ValidAnnotatedEditOperation?e:new C.ValidAnnotatedEditOperation(e.identifier||null,this.validateRange(e.range),e.text,e.forceMoveMarkers||!1,e.isAutoWhitespaceEdit||!1,e._isTracked||!1)}_validateEditOperations(e){const t=[];for(let n=0,i=e.length;n<i;n++)t[n]=this._validateEditOperation(e[n]);return t}pushEditOperations(e,t,n,i){try{return this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._pushEditOperations(e,this._validateEditOperations(t),n,i)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_pushEditOperations(e,t,n,i){if(this._options.trimAutoWhitespace&&this._trimAutoWhitespaceLines){const n=t.map(e=>({range:this.validateRange(e.range),text:e.text}));let i=!0;if(e)for(let t=0,r=e.length;t<r;t++){const r=e[t];let s=!1;for(let e=0,t=n.length;e<t;e++){const t=n[e].range,i=t.startLineNumber>r.endLineNumber,o=r.startLineNumber>t.endLineNumber;if(!i&&!o){s=!0;break}}if(!s){i=!1;break}}if(i)for(let e=0,i=this._trimAutoWhitespaceLines.length;e<i;e++){const i=this._trimAutoWhitespaceLines[e],r=this.getLineMaxColumn(i);let s=!0;for(let e=0,t=n.length;e<t;e++){const t=n[e].range,o=n[e].text;if(!(i<t.startLineNumber||i>t.endLineNumber||i===t.startLineNumber&&t.startColumn===r&&t.isEmpty()&&o&&o.length>0&&"\n"===o.charAt(0)||i===t.startLineNumber&&1===t.startColumn&&t.isEmpty()&&o&&o.length>0&&"\n"===o.charAt(o.length-1))){s=!1;break}}if(s){const e=new g.Range(i,1,i,r);t.push(new C.ValidAnnotatedEditOperation(null,e,null,!1,!1,!1))}}this._trimAutoWhitespaceLines=null}return null===this._initialUndoRedoSnapshot&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEditOperation(e,t,n,i)}_applyUndo(e,t,n,i){const r=e.map(e=>{const t=this.getPositionAt(e.newPosition),n=this.getPositionAt(e.newEnd);return{range:new g.Range(t.lineNumber,t.column,n.lineNumber,n.column),text:e.oldText}});this._applyUndoRedoEdits(r,t,!0,!1,n,i)}_applyRedo(e,t,n,i){const r=e.map(e=>{const t=this.getPositionAt(e.oldPosition),n=this.getPositionAt(e.oldEnd);return{range:new g.Range(t.lineNumber,t.column,n.lineNumber,n.column),text:e.newText}});this._applyUndoRedoEdits(r,t,!1,!0,n,i)}_applyUndoRedoEdits(e,t,n,i,r,s){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._isUndoing=n,this._isRedoing=i,this.applyEdits(e,!1),this.setEOL(t),this._overwriteAlternativeVersionId(r)}finally{this._isUndoing=!1,this._isRedoing=!1,this._eventEmitter.endDeferredEmit(s),this._onDidChangeDecorations.endDeferredEmit()}}applyEdits(e,t=!1){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit();const n=this._validateEditOperations(e);return this._doApplyEdits(n,t)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_doApplyEdits(e,t){const n=this._buffer.getLineCount(),r=this._buffer.applyEdits(e,this._options.trimAutoWhitespace,t),s=this._buffer.getLineCount(),o=r.changes;if(this._trimAutoWhitespaceLines=r.trimAutoWhitespaceLineNumbers,0!==o.length){for(let e=0,t=o.length;e<t;e++){const t=o[e];this._decorationsTree.acceptReplace(t.rangeOffset,t.rangeLength,t.text.length,t.forceMoveMarkers)}const e=[];this._increaseVersionId();let t=n;for(let n=0,r=o.length;n<r;n++){const r=o[n],[a]=(0,d.countEOL)(r.text);this._onDidChangeDecorations.fire();const h=r.range.startLineNumber,l=r.range.endLineNumber,c=l-h,g=a,f=Math.min(c,g),_=g-c,p=s-t-_+h,m=p,C=p+g,k=this._decorationsTree.getInjectedTextInInterval(this,this.getOffsetAt(new u.Position(m,1)),this.getOffsetAt(new u.Position(C,this.getLineMaxColumn(C))),0),b=Nt.LineInjectedText.fromDecorations(k),L=new i.ArrayQueue(b);for(let t=f;t>=0;t--){const n=h+t,i=p+t;L.takeFromEndWhile(e=>e.lineNumber>i);const r=L.takeFromEndWhile(e=>e.lineNumber===i);e.push(new Nt.ModelRawLineChanged(n,this.getLineContent(i),r))}if(f<c){const t=h+f;e.push(new Nt.ModelRawLinesDeleted(t+1,l))}if(f<g){const n=new i.ArrayQueue(b),r=h+f,o=g-f,a=s-t-o+r+1,l=[],d=[];for(let e=0;e<o;e++){const t=a+e;d[e]=this.getLineContent(t),n.takeWhile(e=>e.lineNumber<t),l[e]=n.takeWhile(e=>e.lineNumber===t)}e.push(new Nt.ModelRawLinesInserted(r+1,h+g,d,l))}t+=_}this._emitContentChangedEvent(new Nt.ModelRawContentChangedEvent(e,this.getVersionId(),this._isUndoing,this._isRedoing),{changes:o,eol:this._buffer.getEOL(),isEolChange:!1,versionId:this.getVersionId(),isUndoing:this._isUndoing,isRedoing:this._isRedoing,isFlush:!1})}return null===r.reverseEdits?void 0:r.reverseEdits}undo(){return this._undoRedoService.undo(this.uri)}canUndo(){return this._undoRedoService.canUndo(this.uri)}redo(){return this._undoRedoService.redo(this.uri)}canRedo(){return this._undoRedoService.canRedo(this.uri)}handleBeforeFireDecorationsChangedEvent(e){if(null===e||0===e.size)return;const t=Array.from(e).map(e=>new Nt.ModelRawLineChanged(e,this.getLineContent(e),this._getInjectedTextInLine(e)));this._onDidChangeInjectedText.fire(new Nt.ModelInjectedTextChangedEvent(t))}changeDecorations(e,t=0){this._assertNotDisposed();try{return this._onDidChangeDecorations.beginDeferredEmit(),this._changeDecorations(t,e)}finally{this._onDidChangeDecorations.endDeferredEmit()}}_changeDecorations(e,t){const n={addDecoration:(t,n)=>this._deltaDecorationsImpl(e,[],[{range:t,options:n}])[0],changeDecoration:(e,t)=>{this._changeDecorationImpl(e,t)},changeDecorationOptions:(e,t)=>{this._changeDecorationOptionsImpl(e,en(t))},removeDecoration:t=>{this._deltaDecorationsImpl(e,[t],[])},deltaDecorations:(t,n)=>0===t.length&&0===n.length?[]:this._deltaDecorationsImpl(e,t,n)};let i=null;try{i=t(n)}catch(e){(0,s.onUnexpectedError)(e)}return n.addDecoration=Ut,n.changeDecoration=Ut,n.changeDecorationOptions=Ut,n.removeDecoration=Ut,n.deltaDecorations=Ut,i}deltaDecorations(e,t,n=0){if(this._assertNotDisposed(),e||(e=[]),0===e.length&&0===t.length)return[];try{return this._deltaDecorationCallCnt++,this._deltaDecorationCallCnt>1&&(console.warn("Invoking deltaDecorations recursively could lead to leaking decorations."),(0,s.onUnexpectedError)(new Error("Invoking deltaDecorations recursively could lead to leaking decorations."))),this._onDidChangeDecorations.beginDeferredEmit(),this._deltaDecorationsImpl(n,e,t)}finally{this._onDidChangeDecorations.endDeferredEmit(),this._deltaDecorationCallCnt--}}_getTrackedRange(e){return this.getDecorationRange(e)}_setTrackedRange(e,t,n){const i=e?this._decorations[e]:null;if(!i)return t?this._deltaDecorationsImpl(0,[],[{range:t,options:Jt[n]}],!0)[0]:null;if(!t)return this._decorationsTree.delete(i),delete this._decorations[i.id],null;const r=this._validateRangeRelaxedNoAllocations(t),s=this._buffer.getOffsetAt(r.startLineNumber,r.startColumn),o=this._buffer.getOffsetAt(r.endLineNumber,r.endColumn);return this._decorationsTree.delete(i),i.reset(this.getVersionId(),s,o,r),i.setOptions(Jt[n]),this._decorationsTree.insert(i),i.id}removeAllDecorationsWithOwnerId(e){if(this._isDisposed)return;const t=this._decorationsTree.collectNodesFromOwner(e);for(let e=0,n=t.length;e<n;e++){const n=t[e];this._decorationsTree.delete(n),delete this._decorations[n.id]}}getDecorationOptions(e){const t=this._decorations[e];return t?t.options:null}getDecorationRange(e){const t=this._decorations[e];return t?this._decorationsTree.getNodeRange(this,t):null}getLineDecorations(e,t=0,n=!1){return e<1||e>this.getLineCount()?[]:this.getLinesDecorations(e,e,t,n)}getLinesDecorations(e,t,n=0,r=!1,s=!1){const o=this.getLineCount(),a=Math.min(o,Math.max(1,e)),h=Math.min(o,Math.max(1,t)),l=this.getLineMaxColumn(h),d=new g.Range(a,1,h,l),c=this._getDecorationsInRange(d,n,r,s);return(0,i.pushMany)(c,this._decorationProvider.getDecorationsInRange(d,n,r)),c}getDecorationsInRange(e,t=0,n=!1,r=!1,s=!1){const o=this.validateRange(e),a=this._getDecorationsInRange(o,t,n,s);return(0,i.pushMany)(a,this._decorationProvider.getDecorationsInRange(o,t,n,r)),a}getOverviewRulerDecorations(e=0,t=!1){return this._decorationsTree.getAll(this,e,t,!0,!1)}getInjectedTextDecorations(e=0){return this._decorationsTree.getAllInjectedText(this,e)}_getInjectedTextInLine(e){const t=this._buffer.getOffsetAt(e,1),n=t+this._buffer.getLineLength(e),i=this._decorationsTree.getInjectedTextInInterval(this,t,n,0);return Nt.LineInjectedText.fromDecorations(i).filter(t=>t.lineNumber===e)}getAllDecorations(e=0,t=!1){let n=this._decorationsTree.getAll(this,e,t,!1,!1);return n=n.concat(this._decorationProvider.getAllDecorations(e,t)),n}getAllMarginDecorations(e=0){return this._decorationsTree.getAll(this,e,!1,!1,!0)}_getDecorationsInRange(e,t,n,i){const r=this._buffer.getOffsetAt(e.startLineNumber,e.startColumn),s=this._buffer.getOffsetAt(e.endLineNumber,e.endColumn);return this._decorationsTree.getAllInInterval(this,r,s,t,n,i)}getRangeAt(e,t){return this._buffer.getRangeAt(e,t-e)}_changeDecorationImpl(e,t){const n=this._decorations[e];if(!n)return;if(n.options.after){const t=this.getDecorationRange(e);this._onDidChangeDecorations.recordLineAffectedByInjectedText(t.endLineNumber)}if(n.options.before){const t=this.getDecorationRange(e);this._onDidChangeDecorations.recordLineAffectedByInjectedText(t.startLineNumber)}const i=this._validateRangeRelaxedNoAllocations(t),r=this._buffer.getOffsetAt(i.startLineNumber,i.startColumn),s=this._buffer.getOffsetAt(i.endLineNumber,i.endColumn);this._decorationsTree.delete(n),n.reset(this.getVersionId(),r,s,i),this._decorationsTree.insert(n),this._onDidChangeDecorations.checkAffectedAndFire(n.options),n.options.after&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(i.endLineNumber),n.options.before&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(i.startLineNumber)}_changeDecorationOptionsImpl(e,t){const n=this._decorations[e];if(!n)return;const i=!(!n.options.overviewRuler||!n.options.overviewRuler.color),r=!(!t.overviewRuler||!t.overviewRuler.color);if(this._onDidChangeDecorations.checkAffectedAndFire(n.options),this._onDidChangeDecorations.checkAffectedAndFire(t),n.options.after||t.after){const e=this._decorationsTree.getNodeRange(this,n);this._onDidChangeDecorations.recordLineAffectedByInjectedText(e.endLineNumber)}if(n.options.before||t.before){const e=this._decorationsTree.getNodeRange(this,n);this._onDidChangeDecorations.recordLineAffectedByInjectedText(e.startLineNumber)}const s=i!==r,o=function(e){return!!e.after||!!e.before}(t)!==Vt(n);s||o?(this._decorationsTree.delete(n),n.setOptions(t),this._decorationsTree.insert(n)):n.setOptions(t)}_deltaDecorationsImpl(e,t,n,i=!1){const r=this.getVersionId(),s=t.length;let o=0;const a=n.length;let h=0;this._onDidChangeDecorations.beginDeferredEmit();try{const l=new Array(a);for(;o<s||h<a;){let d=null;if(o<s){do{d=this._decorations[t[o++]]}while(!d&&o<s);if(d){if(d.options.after){const e=this._decorationsTree.getNodeRange(this,d);this._onDidChangeDecorations.recordLineAffectedByInjectedText(e.endLineNumber)}if(d.options.before){const e=this._decorationsTree.getNodeRange(this,d);this._onDidChangeDecorations.recordLineAffectedByInjectedText(e.startLineNumber)}this._decorationsTree.delete(d),i||this._onDidChangeDecorations.checkAffectedAndFire(d.options)}}if(h<a){if(!d){const e=++this._lastDecorationId,t=`${this._instanceId};${e}`;d=new oe(t,0,0),this._decorations[t]=d}const t=n[h],s=this._validateRangeRelaxedNoAllocations(t.range),o=en(t.options),a=this._buffer.getOffsetAt(s.startLineNumber,s.startColumn),c=this._buffer.getOffsetAt(s.endLineNumber,s.endColumn);d.ownerId=e,d.reset(r,a,c,s),d.setOptions(o),d.options.after&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(s.endLineNumber),d.options.before&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(s.startLineNumber),i||this._onDidChangeDecorations.checkAffectedAndFire(o),this._decorationsTree.insert(d),l[h]=d.id,h++}else d&&delete this._decorations[d.id]}return l}finally{this._onDidChangeDecorations.endDeferredEmit()}}getLanguageId(){return this.tokenization.getLanguageId()}setLanguage(e,t){"string"==typeof e?(this._languageSelectionListener.clear(),this._setLanguage(e,t)):(this._languageSelectionListener.value=e.onDidChange(()=>this._setLanguage(e.languageId,t)),this._setLanguage(e.languageId,t))}_setLanguage(e,t){this.tokenization.setLanguageId(e,t),this._languageService.requestRichLanguageFeatures(e)}getLanguageIdAtPosition(e,t){return this.tokenization.getLanguageIdAtPosition(e,t)}getWordAtPosition(e){return this._tokenizationTextModelPart.getWordAtPosition(e)}getWordUntilPosition(e){return this._tokenizationTextModelPart.getWordUntilPosition(e)}normalizePosition(e,t){return e}getLineIndentColumn(e){return Gt(this.getLineContent(e))+1}};function Gt(e){let t=0;for(const n of e){if(" "!==n&&"\t"!==n)break;t++}return t}function Ht(e){return!(!e.options.overviewRuler||!e.options.overviewRuler.color)}function Vt(e){return!!e.options.after||!!e.options.before}Wt=Ot=function(e,t,n,i){var r,s=arguments.length,o=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(s<3?r(o):s>3?r(t,n,o):r(t,n))||o);return s>3&&o&&Object.defineProperty(t,n,o),o}([Dt(4,At.IUndoRedoService),Dt(5,p.ILanguageService),Dt(6,m.ILanguageConfigurationService),Dt(7,Rt.IInstantiationService)],Wt);class jt{constructor(){this._decorationsTree0=new he,this._decorationsTree1=new he,this._injectedTextDecorationsTree=new he}ensureAllNodesHaveRanges(e){this.getAll(e,0,!1,!1,!1)}_ensureNodesHaveRanges(e,t){for(const n of t)null===n.range&&(n.range=e.getRangeAt(n.cachedAbsoluteStart,n.cachedAbsoluteEnd));return t}getAllInInterval(e,t,n,i,r,s){const o=e.getVersionId(),a=this._intervalSearch(t,n,i,r,o,s);return this._ensureNodesHaveRanges(e,a)}_intervalSearch(e,t,n,i,r,s){const o=this._decorationsTree0.intervalSearch(e,t,n,i,r,s),a=this._decorationsTree1.intervalSearch(e,t,n,i,r,s),h=this._injectedTextDecorationsTree.intervalSearch(e,t,n,i,r,s);return o.concat(a).concat(h)}getInjectedTextInInterval(e,t,n,i){const r=e.getVersionId(),s=this._injectedTextDecorationsTree.intervalSearch(t,n,i,!1,r,!1);return this._ensureNodesHaveRanges(e,s).filter(e=>e.options.showIfCollapsed||!e.range.isEmpty())}getAllInjectedText(e,t){const n=e.getVersionId(),i=this._injectedTextDecorationsTree.search(t,!1,n,!1);return this._ensureNodesHaveRanges(e,i).filter(e=>e.options.showIfCollapsed||!e.range.isEmpty())}getAll(e,t,n,i,r){const s=e.getVersionId(),o=this._search(t,n,i,s,r);return this._ensureNodesHaveRanges(e,o)}_search(e,t,n,i,r){if(n)return this._decorationsTree1.search(e,t,i,r);{const n=this._decorationsTree0.search(e,t,i,r),s=this._decorationsTree1.search(e,t,i,r),o=this._injectedTextDecorationsTree.search(e,t,i,r);return n.concat(s).concat(o)}}collectNodesFromOwner(e){const t=this._decorationsTree0.collectNodesFromOwner(e),n=this._decorationsTree1.collectNodesFromOwner(e),i=this._injectedTextDecorationsTree.collectNodesFromOwner(e);return t.concat(n).concat(i)}collectNodesPostOrder(){const e=this._decorationsTree0.collectNodesPostOrder(),t=this._decorationsTree1.collectNodesPostOrder(),n=this._injectedTextDecorationsTree.collectNodesPostOrder();return e.concat(t).concat(n)}insert(e){Vt(e)?this._injectedTextDecorationsTree.insert(e):Ht(e)?this._decorationsTree1.insert(e):this._decorationsTree0.insert(e)}delete(e){Vt(e)?this._injectedTextDecorationsTree.delete(e):Ht(e)?this._decorationsTree1.delete(e):this._decorationsTree0.delete(e)}getNodeRange(e,t){const n=e.getVersionId();return t.cachedVersionId!==n&&this._resolveNode(t,n),null===t.range&&(t.range=e.getRangeAt(t.cachedAbsoluteStart,t.cachedAbsoluteEnd)),t.range}_resolveNode(e,t){Vt(e)?this._injectedTextDecorationsTree.resolveNode(e,t):Ht(e)?this._decorationsTree1.resolveNode(e,t):this._decorationsTree0.resolveNode(e,t)}acceptReplace(e,t,n,i){this._decorationsTree0.acceptReplace(e,t,n,i),this._decorationsTree1.acceptReplace(e,t,n,i),this._injectedTextDecorationsTree.acceptReplace(e,t,n,i)}}function qt(e){return e.replace(/[^a-z0-9\-_]/gi," ")}class $t{constructor(e){this.color=e.color||"",this.darkColor=e.darkColor||""}}class Zt extends $t{constructor(e){super(e),this._resolvedColor=null,this.position="number"==typeof e.position?e.position:C.OverviewRulerLane.Center}getColor(e){return this._resolvedColor||("light"!==e.type&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,e):this._resolvedColor=this._resolveColor(this.color,e)),this._resolvedColor}invalidateCachedColor(){this._resolvedColor=null}_resolveColor(e,t){if("string"==typeof e)return e;const n=e?t.getColor(e.id):null;return n?n.toString():""}}class Kt{constructor(e){this.position=e?.position??C.GlyphMarginLane.Center,this.persistLane=e?.persistLane}}class Xt extends $t{constructor(e){super(e),this.position=e.position,this.sectionHeaderStyle=e.sectionHeaderStyle??null,this.sectionHeaderText=e.sectionHeaderText??null}getColor(e){return this._resolvedColor||("light"!==e.type&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,e):this._resolvedColor=this._resolveColor(this.color,e)),this._resolvedColor}invalidateCachedColor(){this._resolvedColor=void 0}_resolveColor(e,t){return"string"==typeof e?r.Color.fromHex(e):t.getColor(e.id)}}class Qt{static from(e){return e instanceof Qt?e:new Qt(e)}constructor(e){this.content=e.content||"",this.inlineClassName=e.inlineClassName||null,this.inlineClassNameAffectsLetterSpacing=e.inlineClassNameAffectsLetterSpacing||!1,this.attachedData=e.attachedData||null,this.cursorStops=e.cursorStops||null}}class Yt{static register(e){return new Yt(e)}static createDynamic(e){return new Yt(e)}constructor(e){this.description=e.description,this.blockClassName=e.blockClassName?qt(e.blockClassName):null,this.blockDoesNotCollapse=e.blockDoesNotCollapse??null,this.blockIsAfterEnd=e.blockIsAfterEnd??null,this.blockPadding=e.blockPadding??null,this.stickiness=e.stickiness||0,this.zIndex=e.zIndex||0,this.className=e.className?qt(e.className):null,this.shouldFillLineOnLineBreak=e.shouldFillLineOnLineBreak??null,this.hoverMessage=e.hoverMessage||null,this.glyphMarginHoverMessage=e.glyphMarginHoverMessage||null,this.lineNumberHoverMessage=e.lineNumberHoverMessage||null,this.isWholeLine=e.isWholeLine||!1,this.showIfCollapsed=e.showIfCollapsed||!1,this.collapseOnReplaceEdit=e.collapseOnReplaceEdit||!1,this.overviewRuler=e.overviewRuler?new Zt(e.overviewRuler):null,this.minimap=e.minimap?new Xt(e.minimap):null,this.glyphMargin=e.glyphMarginClassName?new Kt(e.glyphMargin):null,this.glyphMarginClassName=e.glyphMarginClassName?qt(e.glyphMarginClassName):null,this.linesDecorationsClassName=e.linesDecorationsClassName?qt(e.linesDecorationsClassName):null,this.lineNumberClassName=e.lineNumberClassName?qt(e.lineNumberClassName):null,this.linesDecorationsTooltip=e.linesDecorationsTooltip?h.htmlAttributeEncodeValue(e.linesDecorationsTooltip):null,this.firstLineDecorationClassName=e.firstLineDecorationClassName?qt(e.firstLineDecorationClassName):null,this.marginClassName=e.marginClassName?qt(e.marginClassName):null,this.inlineClassName=e.inlineClassName?qt(e.inlineClassName):null,this.inlineClassNameAffectsLetterSpacing=e.inlineClassNameAffectsLetterSpacing||!1,this.beforeContentClassName=e.beforeContentClassName?qt(e.beforeContentClassName):null,this.afterContentClassName=e.afterContentClassName?qt(e.afterContentClassName):null,this.after=e.after?Qt.from(e.after):null,this.before=e.before?Qt.from(e.before):null,this.hideInCommentTokens=e.hideInCommentTokens??!1,this.hideInStringTokens=e.hideInStringTokens??!1}}Yt.EMPTY=Yt.register({description:"empty"});const Jt=[Yt.register({description:"tracked-range-always-grows-when-typing-at-edges",stickiness:0}),Yt.register({description:"tracked-range-never-grows-when-typing-at-edges",stickiness:1}),Yt.register({description:"tracked-range-grows-only-when-typing-before",stickiness:2}),Yt.register({description:"tracked-range-grows-only-when-typing-after",stickiness:3})];function en(e){return e instanceof Yt?e:Yt.createDynamic(e)}class tn extends a.Disposable{constructor(e){super(),this.handleBeforeFire=e,this._actual=this._register(new o.Emitter),this.event=this._actual.event,this._affectedInjectedTextLines=null,this._deferredCnt=0,this._shouldFireDeferred=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._affectsGlyphMargin=!1,this._affectsLineNumber=!1}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(){this._deferredCnt--,0===this._deferredCnt&&(this._shouldFireDeferred&&this.doFire(),this._affectedInjectedTextLines?.clear(),this._affectedInjectedTextLines=null)}recordLineAffectedByInjectedText(e){this._affectedInjectedTextLines||(this._affectedInjectedTextLines=new Set),this._affectedInjectedTextLines.add(e)}checkAffectedAndFire(e){this._affectsMinimap||=!!e.minimap?.position,this._affectsOverviewRuler||=!!e.overviewRuler?.color,this._affectsGlyphMargin||=!!e.glyphMarginClassName,this._affectsLineNumber||=!!e.lineNumberClassName,this.tryFire()}fire(){this._affectsMinimap=!0,this._affectsOverviewRuler=!0,this._affectsGlyphMargin=!0,this.tryFire()}tryFire(){0===this._deferredCnt?this.doFire():this._shouldFireDeferred=!0}doFire(){this.handleBeforeFire(this._affectedInjectedTextLines);const e={affectsMinimap:this._affectsMinimap,affectsOverviewRuler:this._affectsOverviewRuler,affectsGlyphMargin:this._affectsGlyphMargin,affectsLineNumber:this._affectsLineNumber};this._shouldFireDeferred=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._affectsGlyphMargin=!1,this._actual.fire(e)}}class nn extends a.Disposable{constructor(){super(),this._fastEmitter=this._register(new o.Emitter),this.fastEvent=this._fastEmitter.event,this._slowEmitter=this._register(new o.Emitter),this.slowEvent=this._slowEmitter.event,this._deferredCnt=0,this._deferredEvent=null}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(e=null){if(this._deferredCnt--,0===this._deferredCnt&&null!==this._deferredEvent){this._deferredEvent.rawContentChangedEvent.resultingSelection=e;const t=this._deferredEvent;this._deferredEvent=null,this._fastEmitter.fire(t),this._slowEmitter.fire(t)}}fire(e){this._deferredCnt>0?this._deferredEvent?this._deferredEvent=this._deferredEvent.merge(e):this._deferredEvent=e:(this._fastEmitter.fire(e),this._slowEmitter.fire(e))}}},80354(e,t,n){n.r(t),n.d(t,{TextModelPart:()=>r});var i=n(32293);class r extends i.Disposable{constructor(){super(...arguments),this._isDisposed=!1}dispose(){super.dispose(),this._isDisposed=!0}assertNotDisposed(){if(this._isDisposed)throw new Error("TextModelPart is disposed!")}}},83958(e,t,n){function i(e,t){let n=0,i=0;const r=e.length;for(;i<r;){const r=e.charCodeAt(i);if(32===r)n++;else{if(9!==r)break;n=n-n%t+t}i++}return i===r?-1:n}n.r(t),n.d(t,{computeIndentLevel:()=>i})},91320(e,t,n){n.r(t),n.d(t,{DefaultModelSHA1Computer:()=>S,ModelService:()=>T});var i,r=n(22573),s=n(32293),o=n(69958),a=n(12882),h=n(33099),l=n(85838),d=n(93533),c=n(64602),u=n(3216),g=n(58053),f=n(95683),_=n(54835),p=n(32477),m=n(35184),C=function(e,t){return function(n,i){t(n,i,e)}};function k(e){return e.toString()}class b{constructor(e,t,n){this.model=e,this._modelEventListeners=new s.DisposableStore,this.model=e,this._modelEventListeners.add(e.onWillDispose(()=>t(e))),this._modelEventListeners.add(e.onDidChangeLanguage(t=>n(e,t)))}dispose(){this._modelEventListeners.dispose()}}const L=o.isLinux||o.isMacintosh?1:2;class I{constructor(e,t,n,i,r,s,o,a){this.uri=e,this.initialUndoRedoSnapshot=t,this.time=n,this.sharesUndoRedoStack=i,this.heapSize=r,this.sha1=s,this.versionId=o,this.alternativeVersionId=a}}let T=class extends s.Disposable{static{i=this}static{this.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK=20971520}constructor(e,t,n,i){super(),this._configurationService=e,this._resourcePropertiesService=t,this._undoRedoService=n,this._instantiationService=i,this._onModelAdded=this._register(new r.Emitter),this.onModelAdded=this._onModelAdded.event,this._onModelRemoved=this._register(new r.Emitter),this.onModelRemoved=this._onModelRemoved.event,this._onModelModeChanged=this._register(new r.Emitter),this.onModelLanguageChanged=this._onModelModeChanged.event,this._modelCreationOptionsByLanguageAndResource=Object.create(null),this._models={},this._disposedModels=new Map,this._disposedModelsHeapSize=0,this._register(this._configurationService.onDidChangeConfiguration(e=>this._updateModelOptions(e))),this._updateModelOptions(void 0)}static _readModelOptions(e,t){let n=h.EDITOR_MODEL_DEFAULTS.tabSize;if(e.editor&&void 0!==e.editor.tabSize){const t=parseInt(e.editor.tabSize,10);isNaN(t)||(n=t),n<1&&(n=1)}let i="tabSize";if(e.editor&&void 0!==e.editor.indentSize&&"tabSize"!==e.editor.indentSize){const t=parseInt(e.editor.indentSize,10);isNaN(t)||(i=Math.max(t,1))}let r=h.EDITOR_MODEL_DEFAULTS.insertSpaces;e.editor&&void 0!==e.editor.insertSpaces&&(r="false"!==e.editor.insertSpaces&&Boolean(e.editor.insertSpaces));let s=L;const o=e.eol;"\r\n"===o?s=2:"\n"===o&&(s=1);let a=h.EDITOR_MODEL_DEFAULTS.trimAutoWhitespace;e.editor&&void 0!==e.editor.trimAutoWhitespace&&(a="false"!==e.editor.trimAutoWhitespace&&Boolean(e.editor.trimAutoWhitespace));let l=h.EDITOR_MODEL_DEFAULTS.detectIndentation;e.editor&&void 0!==e.editor.detectIndentation&&(l="false"!==e.editor.detectIndentation&&Boolean(e.editor.detectIndentation));let d=h.EDITOR_MODEL_DEFAULTS.largeFileOptimizations;e.editor&&void 0!==e.editor.largeFileOptimizations&&(d="false"!==e.editor.largeFileOptimizations&&Boolean(e.editor.largeFileOptimizations));let c=h.EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions;return e.editor?.bracketPairColorization&&"object"==typeof e.editor.bracketPairColorization&&(c={enabled:!!e.editor.bracketPairColorization.enabled,independentColorPoolPerBracketType:!!e.editor.bracketPairColorization.independentColorPoolPerBracketType}),{isForSimpleWidget:t,tabSize:n,indentSize:i,insertSpaces:r,detectIndentation:l,defaultEOL:s,trimAutoWhitespace:a,largeFileOptimizations:d,bracketPairColorizationOptions:c}}_getEOL(e,t){if(e)return this._resourcePropertiesService.getEOL(e,t);const n=this._configurationService.getValue("files.eol",{overrideIdentifier:t});return n&&"string"==typeof n&&"auto"!==n?n:3===o.OS||2===o.OS?"\n":"\r\n"}_shouldRestoreUndoStack(){const e=this._configurationService.getValue("files.restoreUndoStack");return"boolean"!=typeof e||e}getCreationOptions(e,t,n){const r="string"==typeof e?e:e.languageId;let s=this._modelCreationOptionsByLanguageAndResource[r+t];if(!s){const e=this._configurationService.getValue("editor",{overrideIdentifier:r,resource:t}),o=this._getEOL(t,r);s=i._readModelOptions({editor:e,eol:o},n),this._modelCreationOptionsByLanguageAndResource[r+t]=s}return s}_updateModelOptions(e){const t=this._modelCreationOptionsByLanguageAndResource;this._modelCreationOptionsByLanguageAndResource=Object.create(null);const n=Object.keys(this._models);for(let r=0,s=n.length;r<s;r++){const s=n[r],o=this._models[s],a=o.model.getLanguageId(),h=o.model.uri;if(e&&!e.affectsConfiguration("editor",{overrideIdentifier:a,resource:h})&&!e.affectsConfiguration("files.eol",{overrideIdentifier:a,resource:h}))continue;const l=t[a+h],d=this.getCreationOptions(a,h,o.model.isForSimpleWidget);i._setModelOptionsForModel(o.model,d,l)}}static _setModelOptionsForModel(e,t,n){n&&n.defaultEOL!==t.defaultEOL&&1===e.getLineCount()&&e.setEOL(1===t.defaultEOL?0:1),n&&n.detectIndentation===t.detectIndentation&&n.insertSpaces===t.insertSpaces&&n.tabSize===t.tabSize&&n.indentSize===t.indentSize&&n.trimAutoWhitespace===t.trimAutoWhitespace&&(0,p.equals)(n.bracketPairColorizationOptions,t.bracketPairColorizationOptions)||(t.detectIndentation?(e.detectIndentation(t.insertSpaces,t.tabSize),e.updateOptions({trimAutoWhitespace:t.trimAutoWhitespace,bracketColorizationOptions:t.bracketPairColorizationOptions})):e.updateOptions({insertSpaces:t.insertSpaces,tabSize:t.tabSize,indentSize:t.indentSize,trimAutoWhitespace:t.trimAutoWhitespace,bracketColorizationOptions:t.bracketPairColorizationOptions}))}_insertDisposedModel(e){this._disposedModels.set(k(e.uri),e),this._disposedModelsHeapSize+=e.heapSize}_removeDisposedModel(e){const t=this._disposedModels.get(k(e));return t&&(this._disposedModelsHeapSize-=t.heapSize),this._disposedModels.delete(k(e)),t}_ensureDisposedModelsHeapSize(e){if(this._disposedModelsHeapSize>e){const t=[];for(this._disposedModels.forEach(e=>{e.sharesUndoRedoStack||t.push(e)}),t.sort((e,t)=>e.time-t.time);t.length>0&&this._disposedModelsHeapSize>e;){const e=t.shift();this._removeDisposedModel(e.uri),null!==e.initialUndoRedoSnapshot&&this._undoRedoService.restoreSnapshot(e.initialUndoRedoSnapshot)}}}_createModelData(e,t,n,i){const r=this.getCreationOptions(t,n,i),s=this._instantiationService.createInstance(a.TextModel,e,t,r,n);if(n&&this._disposedModels.has(k(n))){const e=this._removeDisposedModel(n),t=this._undoRedoService.getElements(n),i=this._getSHA1Computer(),r=!!i.canComputeSHA1(s)&&i.computeSHA1(s)===e.sha1;if(r||e.sharesUndoRedoStack){for(const e of t.past)(0,f.isEditStackElement)(e)&&e.matchesResource(n)&&e.setModel(s);for(const e of t.future)(0,f.isEditStackElement)(e)&&e.matchesResource(n)&&e.setModel(s);this._undoRedoService.setElementsValidFlag(n,!0,e=>(0,f.isEditStackElement)(e)&&e.matchesResource(n)),r&&(s._overwriteVersionId(e.versionId),s._overwriteAlternativeVersionId(e.alternativeVersionId),s._overwriteInitialUndoRedoSnapshot(e.initialUndoRedoSnapshot))}else null!==e.initialUndoRedoSnapshot&&this._undoRedoService.restoreSnapshot(e.initialUndoRedoSnapshot)}const o=k(s.uri);if(this._models[o])throw new Error("ModelService: Cannot add model because it already exists!");const h=new b(s,e=>this._onWillDispose(e),(e,t)=>this._onDidChangeLanguage(e,t));return this._models[o]=h,h}createModel(e,t,n,i=!1){let r;return r=t?this._createModelData(e,t,n,i):this._createModelData(e,l.PLAINTEXT_LANGUAGE_ID,n,i),this._onModelAdded.fire(r.model),r.model}getModels(){const e=[],t=Object.keys(this._models);for(let n=0,i=t.length;n<i;n++){const i=t[n];e.push(this._models[i].model)}return e}getModel(e){const t=k(e),n=this._models[t];return n?n.model:null}_schemaShouldMaintainUndoRedoElements(e){return e.scheme===_.Schemas.file||e.scheme===_.Schemas.vscodeRemote||e.scheme===_.Schemas.vscodeUserData||e.scheme===_.Schemas.vscodeNotebookCell||"fake-fs"===e.scheme}_onWillDispose(e){const t=k(e.uri),n=this._models[t],r=this._undoRedoService.getUriComparisonKey(e.uri)!==e.uri.toString();let s=!1,o=0;if(r||this._shouldRestoreUndoStack()&&this._schemaShouldMaintainUndoRedoElements(e.uri)){const t=this._undoRedoService.getElements(e.uri);if(t.past.length>0||t.future.length>0){for(const n of t.past)(0,f.isEditStackElement)(n)&&n.matchesResource(e.uri)&&(s=!0,o+=n.heapSize(e.uri),n.setModel(e.uri));for(const n of t.future)(0,f.isEditStackElement)(n)&&n.matchesResource(e.uri)&&(s=!0,o+=n.heapSize(e.uri),n.setModel(e.uri))}}const a=i.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK,h=this._getSHA1Computer();if(s)if(r||!(o>a)&&h.canComputeSHA1(e))this._ensureDisposedModelsHeapSize(a-o),this._undoRedoService.setElementsValidFlag(e.uri,!1,t=>(0,f.isEditStackElement)(t)&&t.matchesResource(e.uri)),this._insertDisposedModel(new I(e.uri,n.model.getInitialUndoRedoSnapshot(),Date.now(),r,o,h.computeSHA1(e),e.getVersionId(),e.getAlternativeVersionId()));else{const e=n.model.getInitialUndoRedoSnapshot();null!==e&&this._undoRedoService.restoreSnapshot(e)}else if(!r){const e=n.model.getInitialUndoRedoSnapshot();null!==e&&this._undoRedoService.restoreSnapshot(e)}delete this._models[t],n.dispose(),delete this._modelCreationOptionsByLanguageAndResource[e.getLanguageId()+e.uri],this._onModelRemoved.fire(e)}_onDidChangeLanguage(e,t){const n=t.oldLanguage,r=e.getLanguageId(),s=this.getCreationOptions(n,e.uri,e.isForSimpleWidget),o=this.getCreationOptions(r,e.uri,e.isForSimpleWidget);i._setModelOptionsForModel(e,o,s),this._onModelModeChanged.fire({model:e,oldLanguageId:n})}_getSHA1Computer(){return new S}};T=i=function(e,t,n,i){var r,s=arguments.length,o=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(s<3?r(o):s>3?r(t,n,o):r(t,n))||o);return s>3&&o&&Object.defineProperty(t,n,o),o}([C(0,c.IConfigurationService),C(1,d.ITextResourcePropertiesService),C(2,u.IUndoRedoService),C(3,m.IInstantiationService)],T);class S{static{this.MAX_MODEL_SIZE=10485760}canComputeSHA1(e){return e.getValueLength()<=S.MAX_MODEL_SIZE}computeSHA1(e){const t=new g.StringSHA1,n=e.createSnapshot();let i;for(;i=n.read();)t.update(i);return t.digest()}}},93533(e,t,n){n.r(t),n.d(t,{ITextResourceConfigurationService:()=>r,ITextResourcePropertiesService:()=>s});var i=n(35184);const r=(0,i.createDecorator)("textResourceConfigurationService"),s=(0,i.createDecorator)("textResourcePropertiesService")},47105(e,t,n){n.r(t),n.d(t,{ITreeSitterParserService:()=>i});const i=(0,n(35184).createDecorator)("treeSitterParserService")},2520(e,t,n){n.r(t),n.d(t,{InternalModelContentChangeEvent:()=>c,LineInjectedText:()=>r,ModelInjectedTextChangedEvent:()=>d,ModelRawContentChangedEvent:()=>l,ModelRawEOLChanged:()=>h,ModelRawFlush:()=>i,ModelRawLineChanged:()=>s,ModelRawLinesDeleted:()=>o,ModelRawLinesInserted:()=>a});class i{constructor(){this.changeType=1}}class r{static applyInjectedText(e,t){if(!t||0===t.length)return e;let n="",i=0;for(const r of t)n+=e.substring(i,r.column-1),i=r.column-1,n+=r.options.content;return n+=e.substring(i),n}static fromDecorations(e){const t=[];for(const n of e)n.options.before&&n.options.before.content.length>0&&t.push(new r(n.ownerId,n.range.startLineNumber,n.range.startColumn,n.options.before,0)),n.options.after&&n.options.after.content.length>0&&t.push(new r(n.ownerId,n.range.endLineNumber,n.range.endColumn,n.options.after,1));return t.sort((e,t)=>e.lineNumber===t.lineNumber?e.column===t.column?e.order-t.order:e.column-t.column:e.lineNumber-t.lineNumber),t}constructor(e,t,n,i,r){this.ownerId=e,this.lineNumber=t,this.column=n,this.options=i,this.order=r}}class s{constructor(e,t,n){this.changeType=2,this.lineNumber=e,this.detail=t,this.injectedText=n}}class o{constructor(e,t){this.changeType=3,this.fromLineNumber=e,this.toLineNumber=t}}class a{constructor(e,t,n,i){this.changeType=4,this.injectedTexts=i,this.fromLineNumber=e,this.toLineNumber=t,this.detail=n}}class h{constructor(){this.changeType=5}}class l{constructor(e,t,n,i){this.changes=e,this.versionId=t,this.isUndoing=n,this.isRedoing=i,this.resultingSelection=null}containsEvent(e){for(let t=0,n=this.changes.length;t<n;t++)if(this.changes[t].changeType===e)return!0;return!1}static merge(e,t){const n=[].concat(e.changes).concat(t.changes),i=t.versionId,r=e.isUndoing||t.isUndoing,s=e.isRedoing||t.isRedoing;return new l(n,i,r,s)}}class d{constructor(e){this.changes=e}}class c{constructor(e,t){this.rawContentChangedEvent=e,this.contentChangedEvent=t}merge(e){const t=l.merge(this.rawContentChangedEvent,e.rawContentChangedEvent),n=c._mergeChangeEvents(this.contentChangedEvent,e.contentChangedEvent);return new c(t,n)}static _mergeChangeEvents(e,t){const n=[].concat(e.changes).concat(t.changes),i=t.eol,r=t.versionId,s=e.isUndoing||t.isUndoing,o=e.isRedoing||t.isRedoing,a=e.isFlush||t.isFlush;return{changes:n,eol:i,isEolChange:e.isEolChange&&t.isEolChange,versionId:r,isUndoing:s,isRedoing:o,isFlush:a}}}},75212(e,t,n){var i;n.r(t),n.d(t,{HorizontalGuidesState:()=>i,IndentGuide:()=>r,IndentGuideHorizontalLine:()=>s}),function(e){e[e.Disabled=0]="Disabled",e[e.EnabledForActive=1]="EnabledForActive",e[e.Enabled=2]="Enabled"}(i||(i={}));class r{constructor(e,t,n,i,r,s){if(this.visibleColumn=e,this.column=t,this.className=n,this.horizontalLine=i,this.forWrappedLinesAfterColumn=r,this.forWrappedLinesBeforeOrAtColumn=s,-1!==e==(-1!==t))throw new Error}}class s{constructor(e,t){this.top=e,this.endColumn=t}}},57922(e,t,n){n.r(t),n.d(t,{LineTokens:()=>r,getStandardTokenTypeAtPosition:()=>o});var i=n(22519);class r{static{this.defaultTokenMetadata=33587200}static createEmpty(e,t){const n=r.defaultTokenMetadata,i=new Uint32Array(2);return i[0]=e.length,i[1]=n,new r(i,e,t)}static createFromTextAndMetadata(e,t){let n=0,i="";const s=new Array;for(const{text:t,metadata:r}of e)s.push(n+t.length,r),n+=t.length,i+=t;return new r(new Uint32Array(s),i,t)}constructor(e,t,n){this._lineTokensBrand=void 0,this._tokens=e,this._tokensCount=this._tokens.length>>>1,this._text=t,this.languageIdCodec=n}equals(e){return e instanceof r&&this.slicedEquals(e,0,this._tokensCount)}slicedEquals(e,t,n){if(this._text!==e._text)return!1;if(this._tokensCount!==e._tokensCount)return!1;const i=t<<1,r=i+(n<<1);for(let t=i;t<r;t++)if(this._tokens[t]!==e._tokens[t])return!1;return!0}getLineContent(){return this._text}getCount(){return this._tokensCount}getStartOffset(e){return e>0?this._tokens[e-1<<1]:0}getMetadata(e){return this._tokens[1+(e<<1)]}getLanguageId(e){const t=this._tokens[1+(e<<1)],n=i.TokenMetadata.getLanguageId(t);return this.languageIdCodec.decodeLanguageId(n)}getStandardTokenType(e){const t=this._tokens[1+(e<<1)];return i.TokenMetadata.getTokenType(t)}getForeground(e){const t=this._tokens[1+(e<<1)];return i.TokenMetadata.getForeground(t)}getClassName(e){const t=this._tokens[1+(e<<1)];return i.TokenMetadata.getClassNameFromMetadata(t)}getInlineStyle(e,t){const n=this._tokens[1+(e<<1)];return i.TokenMetadata.getInlineStyleFromMetadata(n,t)}getPresentation(e){const t=this._tokens[1+(e<<1)];return i.TokenMetadata.getPresentationFromMetadata(t)}getEndOffset(e){return this._tokens[e<<1]}findTokenIndexAtOffset(e){return r.findIndexInTokensArray(this._tokens,e)}inflate(){return this}sliceAndInflate(e,t,n){return new s(this,e,t,n)}static convertToEndOffset(e,t){const n=(e.length>>>1)-1;for(let t=0;t<n;t++)e[t<<1]=e[t+1<<1];e[n<<1]=t}static findIndexInTokensArray(e,t){if(e.length<=2)return 0;let n=0,i=(e.length>>>1)-1;for(;n<i;){const r=n+Math.floor((i-n)/2),s=e[r<<1];if(s===t)return r+1;s<t?n=r+1:s>t&&(i=r)}return n}withInserted(e){if(0===e.length)return this;let t=0,n=0,i="";const s=new Array;let o=0;for(;;){const r=t<this._tokensCount?this._tokens[t<<1]:-1,a=n<e.length?e[n]:null;if(-1!==r&&(null===a||r<=a.offset)){i+=this._text.substring(o,r);const e=this._tokens[1+(t<<1)];s.push(i.length,e),t++,o=r}else{if(!a)break;if(a.offset>o){i+=this._text.substring(o,a.offset);const e=this._tokens[1+(t<<1)];s.push(i.length,e),o=a.offset}i+=a.text,s.push(i.length,a.tokenMetadata),n++}}return new r(new Uint32Array(s),i,this.languageIdCodec)}getTokenText(e){const t=this.getStartOffset(e),n=this.getEndOffset(e);return this._text.substring(t,n)}forEach(e){const t=this.getCount();for(let n=0;n<t;n++)e(n)}}class s{constructor(e,t,n,i){this._source=e,this._startOffset=t,this._endOffset=n,this._deltaOffset=i,this._firstTokenIndex=e.findTokenIndexAtOffset(t),this.languageIdCodec=e.languageIdCodec,this._tokensCount=0;for(let t=this._firstTokenIndex,i=e.getCount();t<i&&!(e.getStartOffset(t)>=n);t++)this._tokensCount++}getMetadata(e){return this._source.getMetadata(this._firstTokenIndex+e)}getLanguageId(e){return this._source.getLanguageId(this._firstTokenIndex+e)}getLineContent(){return this._source.getLineContent().substring(this._startOffset,this._endOffset)}equals(e){return e instanceof s&&this._startOffset===e._startOffset&&this._endOffset===e._endOffset&&this._deltaOffset===e._deltaOffset&&this._source.slicedEquals(e._source,this._firstTokenIndex,this._tokensCount)}getCount(){return this._tokensCount}getStandardTokenType(e){return this._source.getStandardTokenType(this._firstTokenIndex+e)}getForeground(e){return this._source.getForeground(this._firstTokenIndex+e)}getEndOffset(e){const t=this._source.getEndOffset(this._firstTokenIndex+e);return Math.min(this._endOffset,t)-this._startOffset+this._deltaOffset}getClassName(e){return this._source.getClassName(this._firstTokenIndex+e)}getInlineStyle(e,t){return this._source.getInlineStyle(this._firstTokenIndex+e,t)}getPresentation(e){return this._source.getPresentation(this._firstTokenIndex+e)}findTokenIndexAtOffset(e){return this._source.findTokenIndexAtOffset(e+this._startOffset-this._deltaOffset)-this._firstTokenIndex}getTokenText(e){const t=this._firstTokenIndex+e,n=this._source.getStartOffset(t),i=this._source.getEndOffset(t);let r=this._source.getTokenText(t);return n<this._startOffset&&(r=r.substring(this._startOffset-n)),i>this._endOffset&&(r=r.substring(0,r.length-(i-this._endOffset))),r}forEach(e){for(let t=0;t<this.getCount();t++)e(t)}}function o(e,t){const n=t.lineNumber;if(!e.tokenization.isCheapToTokenize(n))return;e.tokenization.forceTokenization(n);const i=e.tokenization.getLineTokens(n),r=i.findTokenIndexAtOffset(t.column-1);return i.getStandardTokenType(r)}},72015(e,t,n){n.r(t),n.d(t,{SyncDescriptor:()=>i});class i{constructor(e,t=[],n=!1){this.ctor=e,this.staticArguments=t,this.supportsDelayedInstantiation=n}}},17531(e,t,n){n.r(t),n.d(t,{getSingletonServiceDescriptors:()=>o,registerSingleton:()=>s});var i=n(72015);const r=[];function s(e,t,n){t instanceof i.SyncDescriptor||(t=new i.SyncDescriptor(t,[],Boolean(n))),r.push([e,t])}function o(){return r}},3216(e,t,n){n.r(t),n.d(t,{IUndoRedoService:()=>i,ResourceEditStackSnapshot:()=>r,UndoRedoGroup:()=>s,UndoRedoSource:()=>o});const i=(0,n(35184).createDecorator)("undoRedoService");class r{constructor(e,t){this.resource=e,this.elements=t}}class s{static{this._ID=0}constructor(){this.id=s._ID++,this.order=1}nextOrder(){return 0===this.id?0:this.order++}static{this.None=new s}}class o{static{this._ID=0}constructor(){this.id=o._ID++,this.order=1}nextOrder(){return 0===this.id?0:this.order++}static{this.None=new o}}}};
//# sourceMappingURL=1320.js.map