@journeyapps-labs/reactor-mod-editor 0.0.0-dev-20250801180850
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -0
- package/dist/@types/EditorModule.d.ts +7 -0
- package/dist/@types/MonacoCommandPalletSearchEngine.d.ts +21 -0
- package/dist/@types/actions/ChangeEditorThemeAction.d.ts +9 -0
- package/dist/@types/index.d.ts +16 -0
- package/dist/@types/languages/languages.d.ts +39 -0
- package/dist/@types/languages/logs.d.ts +3 -0
- package/dist/@types/providers/EditorThemeProvider.d.ts +14 -0
- package/dist/@types/settings/StoredThemesSettings.d.ts +13 -0
- package/dist/@types/settings/VimSupportSetting.d.ts +7 -0
- package/dist/@types/shortcuts/MonacoShortcut.d.ts +9 -0
- package/dist/@types/shortcuts/MonacoShortcutHandler.d.ts +17 -0
- package/dist/@types/shortcuts/MonacoShortcutMap.d.ts +83 -0
- package/dist/@types/stores/MonacoStore.d.ts +38 -0
- package/dist/@types/stores/MonacoThemeStore.d.ts +34 -0
- package/dist/@types/stores/keybindings/KeybindingsRegistry.d.ts +46 -0
- package/dist/@types/stores/keybindings/MonacoKeybindingStore.d.ts +27 -0
- package/dist/@types/stores/keybindings/definitions.d.ts +21 -0
- package/dist/@types/stores/keybindings/utils.d.ts +2 -0
- package/dist/@types/theme/EditorThemePreferencesWidget.d.ts +26 -0
- package/dist/@types/theme/SmartEditorThemePreferencesWidget.d.ts +8 -0
- package/dist/@types/theme/UploadVSIXThemeBtnWidget.d.ts +12 -0
- package/dist/@types/theme/patchThemeService.d.ts +9 -0
- package/dist/@types/theme/theme-utils.d.ts +61 -0
- package/dist/@types/theme-reactor/editor-theme-fragment.d.ts +41 -0
- package/dist/@types/utils/paths.d.ts +23 -0
- package/dist/@types/utils/useEditorStickyHeader.d.ts +8 -0
- package/dist/@types/widgets/DualEditorWidget.d.ts +7 -0
- package/dist/@types/widgets/EditorWidget.d.ts +15 -0
- package/dist/@types/widgets/MonacoEditorWidget.d.ts +10 -0
- package/dist/@types/widgets/SimpleEditorWidget.d.ts +8 -0
- package/dist/EditorModule.js +73 -0
- package/dist/EditorModule.js.map +1 -0
- package/dist/MonacoCommandPalletSearchEngine.js +52 -0
- package/dist/MonacoCommandPalletSearchEngine.js.map +1 -0
- package/dist/actions/ChangeEditorThemeAction.js +43 -0
- package/dist/actions/ChangeEditorThemeAction.js.map +1 -0
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -0
- package/dist/languages/languages.js +155 -0
- package/dist/languages/languages.js.map +1 -0
- package/dist/languages/logs.js +110 -0
- package/dist/languages/logs.js.map +1 -0
- package/dist/providers/EditorThemeProvider.js +26 -0
- package/dist/providers/EditorThemeProvider.js.map +1 -0
- package/dist/settings/StoredThemesSettings.js +45 -0
- package/dist/settings/StoredThemesSettings.js.map +1 -0
- package/dist/settings/VimSupportSetting.js +19 -0
- package/dist/settings/VimSupportSetting.js.map +1 -0
- package/dist/shortcuts/MonacoShortcut.js +27 -0
- package/dist/shortcuts/MonacoShortcut.js.map +1 -0
- package/dist/shortcuts/MonacoShortcutHandler.js +119 -0
- package/dist/shortcuts/MonacoShortcutHandler.js.map +1 -0
- package/dist/shortcuts/MonacoShortcutMap.js +84 -0
- package/dist/shortcuts/MonacoShortcutMap.js.map +1 -0
- package/dist/stores/MonacoStore.js +119 -0
- package/dist/stores/MonacoStore.js.map +1 -0
- package/dist/stores/MonacoThemeStore.js +143 -0
- package/dist/stores/MonacoThemeStore.js.map +1 -0
- package/dist/stores/keybindings/KeybindingsRegistry.js +131 -0
- package/dist/stores/keybindings/KeybindingsRegistry.js.map +1 -0
- package/dist/stores/keybindings/MonacoKeybindingStore.js +105 -0
- package/dist/stores/keybindings/MonacoKeybindingStore.js.map +1 -0
- package/dist/stores/keybindings/definitions.js +5 -0
- package/dist/stores/keybindings/definitions.js.map +1 -0
- package/dist/stores/keybindings/utils.js +12 -0
- package/dist/stores/keybindings/utils.js.map +1 -0
- package/dist/theme/EditorThemePreferencesWidget.js +160 -0
- package/dist/theme/EditorThemePreferencesWidget.js.map +1 -0
- package/dist/theme/SmartEditorThemePreferencesWidget.js +62 -0
- package/dist/theme/SmartEditorThemePreferencesWidget.js.map +1 -0
- package/dist/theme/UploadVSIXThemeBtnWidget.js +93 -0
- package/dist/theme/UploadVSIXThemeBtnWidget.js.map +1 -0
- package/dist/theme/patchThemeService.js +146 -0
- package/dist/theme/patchThemeService.js.map +1 -0
- package/dist/theme/theme-utils.js +65 -0
- package/dist/theme/theme-utils.js.map +1 -0
- package/dist/theme-reactor/editor-theme-fragment.js +70 -0
- package/dist/theme-reactor/editor-theme-fragment.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/utils/paths.js +110 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/useEditorStickyHeader.js +45 -0
- package/dist/utils/useEditorStickyHeader.js.map +1 -0
- package/dist/widgets/DualEditorWidget.js +79 -0
- package/dist/widgets/DualEditorWidget.js.map +1 -0
- package/dist/widgets/EditorWidget.js +85 -0
- package/dist/widgets/EditorWidget.js.map +1 -0
- package/dist/widgets/MonacoEditorWidget.js +29 -0
- package/dist/widgets/MonacoEditorWidget.js.map +1 -0
- package/dist/widgets/SimpleEditorWidget.js +71 -0
- package/dist/widgets/SimpleEditorWidget.js.map +1 -0
- package/dist-module/00a5102416a37050fa62.tmLanguage +1282 -0
- package/dist-module/092ac75109eb363dd826.tmLanguage +424 -0
- package/dist-module/100.bundle.js +1 -0
- package/dist-module/116.bundle.js +1 -0
- package/dist-module/173.bundle.js +1 -0
- package/dist-module/179.bundle.js +1 -0
- package/dist-module/18358219dee0ad14cc0c.tmLanguage +765 -0
- package/dist-module/195.bundle.js +1 -0
- package/dist-module/277.bundle.js +1 -0
- package/dist-module/299.bundle.js +1 -0
- package/dist-module/306.bundle.js +1 -0
- package/dist-module/344.bundle.js +1 -0
- package/dist-module/399345f371a7cb9eb1ba.tmLanguage +629 -0
- package/dist-module/404.bundle.js +4 -0
- package/dist-module/404.bundle.js.LICENSE.txt +6 -0
- package/dist-module/404.bundle.js.map +1 -0
- package/dist-module/43.bundle.js +1 -0
- package/dist-module/438.bundle.js +3 -0
- package/dist-module/438.bundle.js.map +1 -0
- package/dist-module/479.bundle.js +1 -0
- package/dist-module/491.bundle.js +1 -0
- package/dist-module/513.bundle.js +1 -0
- package/dist-module/549.bundle.js +1 -0
- package/dist-module/5e221c90a0dcbd4af855.tmLanguage +237 -0
- package/dist-module/6486a2df9ca5896c2cb6.tmLanguage +5739 -0
- package/dist-module/65.bundle.js +1 -0
- package/dist-module/66.bundle.js +1 -0
- package/dist-module/685.bundle.js +1 -0
- package/dist-module/6e3d5ec6699a8d147d29.wasm +0 -0
- package/dist-module/7.bundle.js +1 -0
- package/dist-module/703774d50b4d4526a465.tmLanguage +386 -0
- package/dist-module/717.bundle.js +2 -0
- package/dist-module/728.bundle.js +1 -0
- package/dist-module/77a7afbe329083ed0f59.tmLanguage +1183 -0
- package/dist-module/78.bundle.js +1 -0
- package/dist-module/829.bundle.js +1 -0
- package/dist-module/831968f77a9412d07cc2.tmLanguage +506 -0
- package/dist-module/862.bundle.js +1 -0
- package/dist-module/87.bundle.js +1 -0
- package/dist-module/923.bundle.js +1 -0
- package/dist-module/931.bundle.js +1 -0
- package/dist-module/933.bundle.js +3 -0
- package/dist-module/933.bundle.js.map +1 -0
- package/dist-module/970.bundle.js +1 -0
- package/dist-module/984.bundle.js +1 -0
- package/dist-module/992.bundle.js +1 -0
- package/dist-module/996.bundle.js +1 -0
- package/dist-module/9c8494157d226e95da5e.tmLanguage +1377 -0
- package/dist-module/a3e215de85a86294de8a.tmLanguage +385 -0
- package/dist-module/ba5650c2a0269a236153.tmLanguage +9349 -0
- package/dist-module/bundle.js +97 -0
- package/dist-module/bundle.js.LICENSE.txt +27 -0
- package/dist-module/bundle.js.map +1 -0
- package/dist-module/editor.worker.bundle.js +1 -0
- package/dist-module/f6283f7ccaed1249d9eb.ttf +0 -0
- package/dist-module/json.worker.bundle.js +2 -0
- package/dist-module/json.worker.bundle.js.LICENSE.txt +6 -0
- package/dist-module/yaml.worker.bundle.js +1 -0
- package/media/css.tmLanguage +1183 -0
- package/media/handlebars.tmLanguage +1282 -0
- package/media/html.tmLanguage +506 -0
- package/media/javascript.tmLanguage +5739 -0
- package/media/json.tmLanguage +386 -0
- package/media/jxml.tmLanguage +424 -0
- package/media/markdown.tmLanguage +1377 -0
- package/media/regularExpressions.tmLanguage +237 -0
- package/media/sql.tmLanguage +765 -0
- package/media/themes/ayu-light.json5 +847 -0
- package/media/themes/ayu-mirage.json5 +846 -0
- package/media/themes/journey.json5 +1061 -0
- package/media/themes/oxide.json5 +579 -0
- package/media/themes/reactor.json5 +775 -0
- package/media/themes/scarlet.json5 +836 -0
- package/media/typescript.tmLanguage +9349 -0
- package/media/xml.tmLanguage +385 -0
- package/media/yaml.tmLanguage +629 -0
- package/package.json +45 -0
- package/reactor.config.json +4 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_journeyapps_labs_reactor_mod_editor=self.webpackChunk_journeyapps_labs_reactor_mod_editor||[]).push([[100],{1100:(e,t,n)=>{n.r(t),n.d(t,{DefaultModelSHA1Computer:()=>ps,ModelService:()=>_s});var i=n(1069),s=n(714),r=n(7622),o=n(7840),a=n(6378),h=n(5146),l=n(5259),c=n(8095),u=n(9517);class d{static _nextVisibleColumn(e,t,n){return 9===e?d.nextRenderTabStop(t,n):l.ne(e)||l.Ss(e)?t+2:t+1}static visibleColumnFromColumn(e,t,n){const i=Math.min(t-1,e.length),s=e.substring(0,i),r=new l.km(s);let o=0;for(;!r.eol();){const e=l.Z5(s,i,r.offset);r.nextGraphemeLength(),o=this._nextVisibleColumn(e,o,n)}return o}static columnFromVisibleColumn(e,t,n){if(t<=0)return 1;const i=e.length,s=new l.km(e);let r=0,o=1;for(;!s.eol();){const a=l.Z5(e,i,s.offset);s.nextGraphemeLength();const h=this._nextVisibleColumn(a,r,n),c=s.offset+1;if(h>=t)return h-t<t-r?c:o;r=h,o=c}return i+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)}}var g=n(3434),f=n(520),_=n(9399);const p={tabSize:4,indentSize:4,insertSpaces:!0,detectIndentation:!0,trimAutoWhitespace:!0,largeFileOptimizations:!0,bracketPairColorizationOptions:{enabled:!0,independentColorPoolPerBracketType:!1}};var m,C=n(3087),k=n(9025);!function(e){e[e.None=0]="None",e[e.Indent=1]="Indent",e[e.IndentOutdent=2]="IndentOutdent",e[e.Outdent=3]="Outdent"}(m||(m={}));class b{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 L{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)I(this.autoClosingPairsOpenByStart,t.open.charAt(0),t),I(this.autoClosingPairsOpenByEnd,t.open.charAt(t.open.length-1),t),I(this.autoClosingPairsCloseByStart,t.close.charAt(0),t),I(this.autoClosingPairsCloseByEnd,t.close.charAt(t.close.length-1),t),1===t.close.length&&1===t.open.length&&I(this.autoClosingPairsCloseSingleChar,t.close,t)}}function I(e,t,n){e.has(t)?e.get(t).push(n):e.set(t,[n])}class T{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 b(e)):e.brackets?this._autoClosingPairs=e.brackets.map(e=>new b({open:e[0],close:e[1]})):this._autoClosingPairs=[],e.__electricCharacterSupport&&e.__electricCharacterSupport.docComment){const t=e.__electricCharacterSupport.docComment;this._autoClosingPairs.push(new b({open:t.open,close:t.close||""}))}this._autoCloseBeforeForQuotes="string"==typeof e.autoCloseBefore?e.autoCloseBefore:T.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES,this._autoCloseBeforeForBrackets="string"==typeof e.autoCloseBefore?e.autoCloseBefore:T.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}}function x(e){return!!(3&e)}var S=n(2055);let v,w,E;function N(){return v||(v=new TextDecoder("UTF-16LE")),v}class O{constructor(e,t,n,i,s,r){this._richEditBracketBrand=void 0,this.languageId=e,this.index=t,this.open=n,this.close=i,this.forwardRegex=s,this.reversedRegex=r,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 B{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,[s,r]=t;return n===s||n===r||i===s||i===r},s=(e,i)=>{const s=Math.min(e,i),r=Math.max(e,i);for(let e=0;e<t;e++)n[e]===r&&(n[e]=s)};for(let r=0;r<t;r++){const o=e[r];for(let a=r+1;a<t;a++)i(o,e[a])&&s(n[r],n[a])}const r=[];for(let i=0;i<t;i++){const s=[],o=[];for(let r=0;r<t;r++)if(n[r]===i){const[t,n]=e[r];s.push(t),o.push(n)}s.length>0&&r.push({open:s,close:o})}return r}(t);this.brackets=n.map((t,i)=>new O(e,i,t.open,t.close,function(e,t,n,i){let s=[];s=s.concat(e),s=s.concat(t);for(let e=0,t=s.length;e<t;e++)R(s[e],n,i,s);return s=D(s),s.sort(M),s.reverse(),z(s)}(t.open,t.close,n,i),function(e,t,n,i){let s=[];s=s.concat(e),s=s.concat(t);for(let e=0,t=s.length;e<t;e++)R(s[e],n,i,s);return s=D(s),s.sort(M),s.reverse(),z(s.map(P))}(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),z(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),z(t.map(P))}(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 R(e,t,n,i){for(let s=0,r=t.length;s<r;s++){if(s===n)continue;const r=t[s];for(const t of r.open)t.indexOf(e)>=0&&i.push(t);for(const t of r.close)t.indexOf(e)>=0&&i.push(t)}}function M(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 A(e){const t=/^[\w ]+$/.test(e);return e=l.bm(e),t?`\\b${e}\\b`:e}function z(e,t){const n=`(${e.map(A).join(")|(")})`;return l.OS(n,!0,t)}const P=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(E||(E=r.cm()?N():(w||(w=new TextDecoder("UTF-16BE")),w)),E).decode(t)}(e)),t}}();class y{static _findPrevBracketInText(e,t,n,i){const s=n.match(e);if(!s)return null;const r=n.length-(s.index||0),o=s[0].length,a=i+r;return new f.Q(t,a-o+1,t,a+1)}static findPrevBracketInRange(e,t,n,i,s){const r=P(n).substring(n.length-s,n.length-i);return this._findPrevBracketInText(e,t,r,i)}static findNextBracketInText(e,t,n,i){const s=n.match(e);if(!s)return null;const r=s.index||0,o=s[0].length;if(0===o)return null;const a=i+r;return new f.Q(t,a+1,t,a+1+o)}static findNextBracketInRange(e,t,n,i,s){const r=n.substring(i,s);return this.findNextBracketInText(e,t,r,i)}}class F{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,o.dM)(e)}onElectricCharacter(e,t,n){if(!this._richEditBrackets||0===this._richEditBrackets.brackets.length)return null;const i=t.findTokenIndexAtOffset(n-1);if(x(t.getStandardTokenType(i)))return null;const s=this._richEditBrackets.reversedRegex,r=t.getLineContent().substring(0,n-1)+e,o=y.findPrevBracketInRange(s,1,r,0,r.length);if(!o)return null;const a=r.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 W(e){return e.global&&(e.lastIndex=0),!0}class V{constructor(e){this._indentationRules=e}shouldIncrease(e){return!!(this._indentationRules&&this._indentationRules.increaseIndentPattern&&W(this._indentationRules.increaseIndentPattern)&&this._indentationRules.increaseIndentPattern.test(e))}shouldDecrease(e){return!!(this._indentationRules&&this._indentationRules.decreaseIndentPattern&&W(this._indentationRules.decreaseIndentPattern)&&this._indentationRules.decreaseIndentPattern.test(e))}shouldIndentNextLine(e){return!!(this._indentationRules&&this._indentationRules.indentNextLinePattern&&W(this._indentationRules.indentNextLinePattern)&&this._indentationRules.indentNextLinePattern.test(e))}shouldIgnore(e){return!!(this._indentationRules&&this._indentationRules.unIndentedLinePattern&&W(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}}class U{constructor(e){(e=e||{}).brackets=e.brackets||[["(",")"],["{","}"],["[","]"]],this._brackets=[],e.brackets.forEach(e=>{const t=U._createOpenBracketRegExp(e[0]),n=U._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,s=this._regExpRules.length;e<s;e++){const s=this._regExpRules[e];if([{reg:s.beforeText,text:n},{reg:s.afterText,text:i},{reg:s.previousLineText,text:t}].every(e=>!e.reg||(e.reg.lastIndex=0,e.reg.test(e.text))))return s.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:m.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:m.Indent};return null}static _createOpenBracketRegExp(e){let t=l.bm(e);return/\B/.test(t.charAt(0))||(t="\\b"+t),t+="\\s*$",U._safeRegExp(t)}static _createCloseBracketRegExp(e){let t=l.bm(e);return/\B/.test(t.charAt(t.length-1))||(t+="\\b"),t="^\\s*"+t,U._safeRegExp(t)}static _safeRegExp(e){try{return new RegExp(e)}catch(e){return(0,h.dz)(e),null}}}var j=n(6640),H=n(8602),G=n(7300),q=n(9166),Q=n(3715);class ${constructor(e,t){this.languageId=e;const n=t.brackets?K(t.brackets):[],i=new Q.VV(e=>{const t=new Set;return{info:new Y(this,e,t),closing:t}}),s=new Q.VV(e=>{const t=new Set,n=new Set;return{info:new Z(this,e,t,n),opening:t,openingColorized:n}});for(const[e,t]of n){const n=i.get(e),r=s.get(t);n.closing.add(r.info),r.opening.add(n.info)}const r=t.colorizedBracketPairs?K(t.colorizedBracketPairs):n.filter(e=>!("<"===e[0]&&">"===e[1]));for(const[e,t]of r){const n=i.get(e),r=s.get(t);n.closing.add(r.info),r.openingColorized.add(n.info),r.opening.add(n.info)}this._openingBrackets=new Map([...i.cachedValues].map(([e,t])=>[e,t.info])),this._closingBrackets=new Map([...s.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){return z(Array.from([...this._openingBrackets.keys(),...this._closingBrackets.keys()]),e)}}function K(e){return e.filter(([e,t])=>""!==e&&""!==t)}class X{constructor(e,t){this.config=e,this.bracketText=t}get languageId(){return this.config.languageId}}class Y extends X{constructor(e,t,n){super(e,t),this.openedBrackets=n,this.isOpeningBracket=!0}}class Z extends X{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 J=function(e,t){return function(n,i){t(n,i,e)}};class ee{constructor(e){this.languageId=e}affects(e){return!this.languageId||this.languageId===e}}const te=(0,j.u1)("languageConfigurationService");let ne=class extends s.jG{constructor(e,t){super(),this.configurationService=e,this.languageService=t,this._registry=this._register(new le),this.onDidChangeEmitter=this._register(new i.vl),this.onDidChange=this.onDidChangeEmitter.event,this.configurations=new Map;const n=new Set(Object.values(ie));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 ee(void 0));else for(const e of i)this.languageService.isRegisteredLanguageId(e)&&(this.configurations.delete(e),this.onDidChangeEmitter.fire(new ee(e)))})),this._register(this._registry.onDidChange(e=>{this.configurations.delete(e.languageId),this.onDidChangeEmitter.fire(new ee(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 s=t.getLanguageConfiguration(e);if(!s){if(!i.isRegisteredLanguageId(e))return new ce(e,{});s=new ce(e,{})}const r=function(e,t){const n=t.getValue(ie.brackets,{overrideIdentifier:e}),i=t.getValue(ie.colorizedBracketPairs,{overrideIdentifier:e});return{brackets:se(n),colorizedBracketPairs:se(i)}}(s.languageId,n),o=oe([s.underlyingConfig,r]);return new ce(s.languageId,o)}(e,this._registry,this.configurationService,this.languageService),this.configurations.set(e,t)),t}};ne=function(e,t,n,i){var s,r=arguments.length,o=r<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--)(s=e[a])&&(o=(r<3?s(o):r>3?s(t,n,o):s(t,n))||o);return r>3&&o&&Object.defineProperty(t,n,o),o}([J(0,H.pG),J(1,C.L)],ne);const ie={brackets:"editor.language.brackets",colorizedBracketPairs:"editor.language.colorizedBracketPairs"};function se(e){if(Array.isArray(e))return e.map(e=>{if(Array.isArray(e)&&2===e.length)return[e[0],e[1]]}).filter(e=>!!e)}class re{constructor(e){this.languageId=e,this._resolved=null,this._entries=[],this._order=0,this._resolved=null}register(e,t){const n=new ae(e,t,++this._order);return this._entries.push(n),this._resolved=null,(0,s.s)(()=>{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 ce(this.languageId,e))}return this._resolved}_resolve(){return 0===this._entries.length?null:(this._entries.sort(ae.cmp),oe(this._entries.map(e=>e.configuration)))}}function oe(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 ae{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 he{constructor(e){this.languageId=e}}class le extends s.jG{constructor(){super(),this._entries=new Map,this._onDidChange=this._register(new i.vl),this.onDidChange=this._onDidChange.event,this._register(this.register(q.vH,{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 re(e),this._entries.set(e,i));const r=i.register(t,n);return this._onDidChange.fire(new he(e)),(0,s.s)(()=>{r.dispose(),this._onDidChange.fire(new he(e))})}getLanguageConfiguration(e){const t=this._entries.get(e);return t?.getResolvedConfiguration()||null}}class ce{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 U(this.underlyingConfig):null,this.comments=ce._handleComments(this.underlyingConfig),this.characterPair=new T(this.underlyingConfig),this.wordDefinition=this.underlyingConfig.wordPattern||k.Ld,this.indentationRules=this.underlyingConfig.indentationRules,this.underlyingConfig.indentationRules?this.indentRulesSupport=new V(this.underlyingConfig.indentationRules):this.indentRulesSupport=null,this.foldingRules=this.underlyingConfig.folding||{},this.bracketsNew=new $(e,this.underlyingConfig)}getWordDefinition(){return(0,k.Io)(this.wordDefinition)}get brackets(){return!this._brackets&&this.underlyingConfig.brackets&&(this._brackets=new B(this.languageId,this.underlyingConfig.brackets)),this._brackets}get electricCharacter(){return this._electricCharacter||(this._electricCharacter=new F(this.brackets)),this._electricCharacter}onEnter(e,t,n,i){return this._onEnterSupport?this._onEnterSupport.onEnter(e,t,n,i):null}getAutoClosingPairs(){return new L(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,G.v)(te,ne,1);var ue=n(1284);class de{constructor(e,t,n,i){this.range=e,this.nestingLevel=t,this.nestingLevelOfEqualBracketType=n,this.isInvalid=i}}class ge{constructor(e,t,n,i,s,r){this.range=e,this.openingBracketRange=t,this.closingBracketRange=n,this.nestingLevel=i,this.nestingLevelOfEqualBracketType=s,this.bracketPairNode=r}get openingBracketInfo(){return this.bracketPairNode.openingBracket.bracketInfo}}class fe extends ge{constructor(e,t,n,i,s,r,o){super(e,t,n,i,s,r),this.minVisibleColumnIndentation=o}}var _e=n(9398);function pe(e){return 0===e}const me=2**26;function Ce(e,t){return e*me+t}function ke(e){const t=e,n=Math.floor(t/me),i=t-n*me;return new _e.W(n,i)}function be(e){return e}function Le(e,t){let n=e+t;return t>=me&&(n-=e%me),n}function Ie(e,t){return e.reduce((e,n)=>Le(e,t(n)),0)}function Te(e,t){return e===t}function xe(e,t){const n=e,i=t;if(i-n<=0)return 0;const s=Math.floor(n/me),r=Math.floor(i/me),o=i-r*me;return s===r?Ce(0,o-(n-s*me)):Ce(r-s,o)}function Se(e,t){return e<t}function ve(e,t){return e<=t}function we(e,t){return e>=t}function Ee(e){return Ce(e.lineNumber-1,e.column-1)}function Ne(e,t){const n=e,i=Math.floor(n/me),s=n-i*me,r=t,o=Math.floor(r/me),a=r-o*me;return new f.Q(i+1,s+1,o+1,a+1)}class Oe{static fromModelContentChanges(e){return e.map(e=>{const t=f.Q.lift(e.range);return new Oe(Ee(t.getStartPosition()),Ee(t.getEndPosition()),function(e){const t=(0,l.uz)(e);return Ce(t.length-1,t[t.length-1].length)}(e.text))}).reverse()}constructor(e,t,n){this.startOffset=e,this.endOffset=t,this.newLength=n}toString(){return`[${ke(this.startOffset)}...${ke(this.endOffset)}) -> ${ke(this.newLength)}`}}class Be{constructor(e){this.nextEditIdx=0,this.deltaOldToNewLineCount=0,this.deltaOldToNewColumnCount=0,this.deltaLineIdxInOld=-1,this.edits=e.map(e=>Re.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:xe(e,n)}translateOldToCur(e){return e.lineCount===this.deltaLineIdxInOld?Ce(e.lineCount+this.deltaOldToNewLineCount,e.columnCount+this.deltaOldToNewColumnCount):Ce(e.lineCount+this.deltaOldToNewLineCount,e.columnCount)}translateCurToOld(e){const t=ke(e);return t.lineCount-this.deltaOldToNewLineCount===this.deltaLineIdxInOld?Ce(t.lineCount-this.deltaOldToNewLineCount,t.columnCount-this.deltaOldToNewColumnCount):Ce(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(!ve(n,e))break;{this.nextEditIdx++;const e=ke(n),i=ke(this.translateOldToCur(t.endOffsetBeforeObj)),s=e.lineCount-i.lineCount;this.deltaOldToNewLineCount+=s;const r=this.deltaLineIdxInOld===t.endOffsetBeforeObj.lineCount?this.deltaOldToNewColumnCount:0,o=e.columnCount-i.columnCount;this.deltaOldToNewColumnCount=r+o,this.deltaLineIdxInOld=t.endOffsetBeforeObj.lineCount}}}}class Re{static from(e){return new Re(e.startOffset,e.endOffset,e.newLength)}constructor(e,t,n){this.endOffsetBeforeObj=ke(t),this.endOffsetAfterObj=ke(Le(e,n)),this.offsetObj=ke(e)}}const Me=[];class De{static{this.cache=new Array(129)}static create(e,t){if(e<=128&&0===t.length){let n=De.cache[e];return n||(n=new De(e,t),De.cache[e]=n),n}return new De(e,t)}static{this.empty=De.create(0,Me)}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:De.create(e,this.additionalItems)}i--;const s=this.additionalItems.slice(0);for(;s.length<i;)s.push(0);return s[i]|=1<<(31&n),De.create(this.items,s)}merge(e){const t=this.items|e.items;if(this.additionalItems===Me&&e.additionalItems===Me)return t===this.items?this:t===e.items?e:De.create(t,Me);const n=[];for(let t=0;t<Math.max(this.additionalItems.length,e.additionalItems.length);t++){const i=this.additionalItems[t]||0,s=e.additionalItems[t]||0;n.push(i|s)}return De.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 Ae={getKey:e=>e};class ze{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}}class Pe{get length(){return this._length}constructor(e){this._length=e}}class ye extends Pe{static create(e,t,n){let i=e.length;return t&&(i=Le(i,t.length)),n&&(i=Le(i,n.length)),new ye(i,e,t,n,t?t.missingOpeningBracketIds:De.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,s){super(e),this.openingBracket=t,this.child=n,this.closingBracket=i,this.missingOpeningBracketIds=s}canBeReused(e){return null!==this.closingBracket&&!e.intersects(this.missingOpeningBracketIds)}deepClone(){return new ye(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(Le(e,this.openingBracket.length),t):Number.MAX_SAFE_INTEGER}}class Fe extends Pe{static create23(e,t,n,i=!1){let s=e.length,r=e.missingOpeningBracketIds;if(e.listHeight!==t.listHeight)throw new Error("Invalid list heights");if(s=Le(s,t.length),r=r.merge(t.missingOpeningBracketIds),n){if(e.listHeight!==n.listHeight)throw new Error("Invalid list heights");s=Le(s,n.length),r=r.merge(n.missingOpeningBracketIds)}return i?new Ve(s,e.listHeight+1,e,t,n,r):new We(s,e.listHeight+1,e,t,n,r)}static getEmpty(){return new je(0,0,[],De.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 h.D7;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=Le(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 s=this.getChild(e);s&&(n=Math.min(n,s.computeMinIndentation(i,t)),i=Le(i,s.length))}return this.cachedMinIndentation=n,n}}class We extends Fe{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,s,r){super(e,t,r),this._item1=n,this._item2=i,this._item3=s}deepClone(){return new We(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 Ve extends We{toMutable(){return new We(this.length,this.listHeight,this.item1,this.item2,this.item3,this.missingOpeningBracketIds)}throwIfImmutable(){throw new Error("this instance is immutable")}}class Ue extends Fe{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 Ue(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 je extends Ue{toMutable(){return new Ue(this.length,this.listHeight,[...this.children],this.missingOpeningBracketIds)}throwIfImmutable(){throw new Error("this instance is immutable")}}const He=[];class Ge extends Pe{get listHeight(){return 0}get childrenLength(){return 0}getChild(e){return null}get children(){return He}deepClone(){return this}}class qe extends Ge{get kind(){return 0}get missingOpeningBracketIds(){return De.getEmpty()}canBeReused(e){return!0}computeMinIndentation(e,t){const n=ke(e),i=(0===n.columnCount?n.lineCount:n.lineCount+1)+1,s=(r=Le(e,this.length),Math.floor(r/me)+1);var r;let o=Number.MAX_SAFE_INTEGER;for(let e=i;e<=s;e++){const n=t.getLineFirstNonWhitespaceColumn(e),i=t.getLineContent(e);if(0===n)continue;const s=d.visibleColumnFromColumn(i,n,t.getOptions().tabSize);o=Math.min(o,s)}return o}}class Qe extends Ge{static create(e,t,n){return new Qe(e,t,n)}get kind(){return 1}get missingOpeningBracketIds(){return De.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 $e extends Ge{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}}var Ke=n(7511);class Xe{constructor(e,t,n,i,s){this.length=e,this.kind=t,this.bracketId=n,this.bracketIds=i,this.astNode=s}}class Ye{constructor(e,t){this.textModel=e,this.bracketTokens=t,this.reader=new Ze(this.textModel,this.bracketTokens),this._offset=0,this.didPeek=!1,this.peeked=null,this.textBufferLineCount=e.getLineCount(),this.textBufferLastLineLength=e.getLineLength(this.textBufferLineCount)}get offset(){return this._offset}get length(){return Ce(this.textBufferLineCount-1,this.textBufferLastLineLength)}skip(e){this.didPeek=!1,this._offset=Le(this._offset,e);const t=ke(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=Le(this._offset,e.length)),e}peek(){return this.didPeek||(this.peeked=this.reader.read(),this.didPeek=!0),this.peeked}}class Ze{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+=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 r=null;if(this.lineTokenOffset<s){const o=i.getMetadata(this.lineTokenOffset);for(;this.lineTokenOffset+1<s&&o===i.getMetadata(this.lineTokenOffset+1);)this.lineTokenOffset++;const a=0===Ke.x.getTokenType(o),h=Ke.x.containsBalancedBrackets(o),l=i.getEndOffset(this.lineTokenOffset);if(h&&a&&this.lineCharOffset<l){const e=i.getLanguageId(this.lineTokenOffset),t=this.line.substring(this.lineCharOffset,l),n=this.bracketTokens.getSingleLanguageBracketTokens(e),s=n.regExpGlobal;if(s){s.lastIndex=0;const e=s.exec(t);e&&(r=n.getToken(e[0]),r&&(this.lineCharOffset+=e.index))}}if(n+=l-this.lineCharOffset,r){if(e!==this.lineIdx||t!==this.lineCharOffset){this.peekedToken=r;break}return this.lineCharOffset+=be(r.length),r}this.lineTokenOffset++,this.lineCharOffset=l}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=(s=e,r=t,o=this.lineIdx,a=this.lineCharOffset,s!==o?Ce(o-s,a):Ce(0,a-r));var s,r,o,a;return new Xe(i,0,-1,De.getEmpty(),new qe(i))}}class Je{constructor(e,t){this.text=e,this._offset=0,this.idx=0;const n=t.getRegExpStr(),i=n?new RegExp(n+"|\n","gi"):null,s=[];let r,o=0,a=0,h=0,l=0;const c=[];for(let e=0;e<60;e++)c.push(new Xe(Ce(0,e),0,-1,De.getEmpty(),new qe(Ce(0,e))));const u=[];for(let e=0;e<60;e++)u.push(new Xe(Ce(1,e),0,-1,De.getEmpty(),new qe(Ce(1,e))));if(i)for(i.lastIndex=0;null!==(r=i.exec(e));){const e=r.index,n=r[0];if("\n"===n)o++,a=e+1;else{if(h!==e){let t;if(l===o){const n=e-h;if(n<c.length)t=c[n];else{const e=Ce(0,n);t=new Xe(e,0,-1,De.getEmpty(),new qe(e))}}else{const n=o-l,i=e-a;if(1===n&&i<u.length)t=u[i];else{const e=Ce(n,i);t=new Xe(e,0,-1,De.getEmpty(),new qe(e))}}s.push(t)}s.push(t.getToken(n)),h=e+n.length,l=o}}const d=e.length;if(h!==d){const e=l===o?Ce(0,d-h):Ce(o-l,d-a);s.push(new Xe(e,0,-1,De.getEmpty(),new qe(e)))}this.length=Ce(o,d-a),this.tokens=s}get offset(){return this._offset}read(){return this.tokens[this.idx++]||null}peek(){return this.tokens[this.idx]||null}skip(e){throw new h.EM}}class et{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=Ce(0,t.bracketText.length),s=n(t),r=De.getEmpty().add(s,Ae);i.set(t.bracketText,new Xe(e,1,s,r,Qe.create(e,t,r)))}for(const t of e.bracketsNew.closingBrackets){const e=Ce(0,t.bracketText.length);let s=De.getEmpty();const r=t.getOpeningBrackets();for(const e of r)s=s.add(n(e),Ae);i.set(t.bracketText,new Xe(e,2,n(r[0]),s,Qe.create(e,t,s)))}return new et(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,l.bm)(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 tt{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=et.createFromLanguage(this.getLanguageConfiguration(e),this.denseKeyProvider),this.languageIdToBracketTokens.set(e,t)),t}}function nt(e,t=!1){if(0===e.length)return null;if(1===e.length)return e[0];let n=e.length;for(;n>3;){const i=n>>1;for(let s=0;s<i;s++){const i=s<<1;e[s]=Fe.create23(e[i],e[i+1],i+3===n?e[i+2]:null,t)}n=i}return Fe.create23(e[0],e[1],n>=3?e[2]:null,t)}function it(e,t){return Math.abs(e.listHeight-t.listHeight)}function st(e,t){return e.listHeight===t.listHeight?Fe.create23(e,t,null,!1):e.listHeight>t.listHeight?function(e,t){let n=e=e.toMutable();const i=[];let s;for(;;){if(t.listHeight===n.listHeight){s=t;break}if(4!==n.kind)throw new Error("unexpected");i.push(n),n=n.makeLastElementMutable()}for(let e=i.length-1;e>=0;e--){const t=i[e];s?t.childrenLength>=3?s=Fe.create23(t.unappendChild(),s,null,!1):(t.appendChildOfSameHeight(s),s=void 0):t.handleChildrenChanged()}return s?Fe.create23(e,s,null,!1):e}(e,t):function(e,t){let n=e=e.toMutable();const i=[];for(;t.listHeight!==n.listHeight;){if(4!==n.kind)throw new Error("unexpected");i.push(n),n=n.makeFirstElementMutable()}let s=t;for(let e=i.length-1;e>=0;e--){const t=i[e];s?t.childrenLength>=3?s=Fe.create23(s,t.unprependChild(),null,!1):(t.prependChildOfSameHeight(s),s=void 0):t.handleChildrenChanged()}return s?Fe.create23(s,e,null,!1):e}(t,e)}class rt{constructor(e){this.lastOffset=0,this.nextNodes=[e],this.offsets=[0],this.idxs=[]}readLongestNodeAt(e,t){if(Se(e,this.lastOffset))throw new Error("Invalid offset");for(this.lastOffset=e;;){const n=at(this.nextNodes);if(!n)return;const i=at(this.offsets);if(Se(e,i))return;if(Se(i,e))if(Le(i,n.length)<=e)this.nextNodeAfterCurrent();else{const e=ot(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=ot(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=at(this.offsets),t=at(this.nextNodes);if(this.nextNodes.pop(),this.offsets.pop(),0===this.idxs.length)break;const n=at(this.nextNodes),i=ot(n,this.idxs[this.idxs.length-1]);if(-1!==i){this.nextNodes.push(n.getChild(i)),this.offsets.push(Le(e,t.length)),this.idxs[this.idxs.length-1]=i;break}this.idxs.pop()}}}function ot(e,t=-1){for(;;){if(++t>=e.childrenLength)return-1;if(e.getChild(t))return t}}function at(e){return e.length>0?e[e.length-1]:void 0}function ht(e,t,n,i){return new lt(e,t,n,i).parseDocument()}class lt{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 rt(n):void 0,this.positionMapper=new Be(t)}parseDocument(){this._itemsConstructed=0,this._itemsFromCache=0;let e=this.parseList(De.getEmpty(),0);return e||(e=Fe.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?nt(0===n&&t===e.length?e:e.slice(n,t),!1):e[n]}let i=n(),s=n();if(!s)return i;for(let e=n();e;e=n())it(i,s)<=it(s,e)?(i=st(i,s),s=e):s=st(s,e);return st(i,s)}(n):nt(n,this.createImmutableLists);return i}tryReadChildFromCache(e){if(this.oldNodeReader){const t=this.positionMapper.getDistanceToNextChange(this.tokenizer.offset);if(null===t||!pe(t)){const n=this.oldNodeReader.readLongestNodeAt(this.positionMapper.getOffsetBeforeChange(this.tokenizer.offset),n=>!(null!==t&&!Se(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 $e(n.bracketIds,n.length);case 0:return n.astNode;case 1:{if(t>300)return new qe(n.length);const i=e.merge(n.bracketIds),s=this.parseList(i,t+1),r=this.tokenizer.peek();return r&&2===r.kind&&(r.bracketId===n.bracketId||r.bracketIds.intersects(n.bracketIds))?(this.tokenizer.read(),ye.create(n.astNode,s,r.astNode)):ye.create(n.astNode,s,null)}default:throw new Error("unexpected")}}}function ct(e,t){if(0===e.length)return t;if(0===t.length)return e;const n=new o.j3(dt(e)),i=dt(t);i.push({modified:!1,lengthBefore:void 0,lengthAfter:void 0});let s=n.dequeue();function r(e){if(void 0===e){const e=n.takeWhile(e=>!0)||[];return s&&e.unshift(s),e}const t=[];for(;s&&!pe(e);){const[i,r]=s.splitAt(e);t.push(i),e=xe(i.lengthAfter,e),s=r??n.dequeue()}return pe(e)||t.push(new ut(!1,e,e)),t}const a=[];function h(e,t,n){if(a.length>0&&Te(a[a.length-1].endOffset,e)){const e=a[a.length-1];a[a.length-1]=new Oe(e.startOffset,t,Le(e.newLength,n))}else a.push({startOffset:e,endOffset:t,newLength:n})}let l=0;for(const e of i){const t=r(e.lengthBefore);if(e.modified){const n=Le(l,Ie(t,e=>e.lengthBefore));h(l,n,e.lengthAfter),l=n}else for(const e of t){const t=l;l=Le(l,e.lengthBefore),e.modified&&h(t,l,e.lengthAfter)}}return a}class ut{constructor(e,t,n){this.modified=e,this.lengthBefore=t,this.lengthAfter=n}splitAt(e){const t=xe(e,this.lengthAfter);return Te(t,0)?[this,void 0]:this.modified?[new ut(this.modified,this.lengthBefore,e),new ut(this.modified,0,t)]:[new ut(this.modified,e,e),new ut(this.modified,t,t)]}toString(){return`${this.modified?"M":"U"}:${ke(this.lengthBefore)} -> ${ke(this.lengthAfter)}`}}function dt(e){const t=[];let n=0;for(const i of e){const e=xe(n,i.startOffset);pe(e)||t.push(new ut(!1,e,e));const s=xe(i.startOffset,i.endOffset);t.push(new ut(!0,s,i.newLength)),n=i.endOffset}return t}class gt extends s.jG{didLanguageChange(e){return this.brackets.didLanguageChange(e)}constructor(e,t){if(super(),this.textModel=e,this.getLanguageConfiguration=t,this.didChangeEmitter=new i.vl,this.denseKeyProvider=new ze,this.brackets=new tt(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 Je(this.textModel.getValue(),e);this.initialAstWithoutTokens=ht(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 Oe(Ce(e.fromLineNumber-1,0),Ce(e.toLineNumber,0),Ce(e.toLineNumber-e.fromLineNumber+1,0)));this.handleEdits(t,!0),this.initialAstWithoutTokens||this.didChangeEmitter.fire()}handleContentChanged(e){const t=Oe.fromModelContentChanges(e.changes);this.handleEdits(t,!1)}handleEdits(e,t){const n=ct(this.queuedTextEdits,e);this.queuedTextEdits=n,this.initialAstWithoutTokens&&!t&&(this.queuedTextEditsForInitialAstWithoutTokens=ct(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;return ht(new Ye(this.textModel,this.brackets),e,i,n)}getBracketsInRange(e,t){this.flushQueue();const n=Ce(e.startLineNumber-1,e.startColumn-1),i=Ce(e.endLineNumber-1,e.endColumn-1);return new o.c1(e=>{const s=this.initialAstWithoutTokens||this.astWithTokens;pt(s,0,s.length,n,i,e,0,0,new Map,t)})}getBracketPairsInRange(e,t){this.flushQueue();const n=Ee(e.getStartPosition()),i=Ee(e.getEndPosition());return new o.c1(e=>{const s=this.initialAstWithoutTokens||this.astWithTokens,r=new mt(e,t,this.textModel);Ct(s,0,s.length,n,i,r,0,new Map)})}getFirstBracketAfter(e){this.flushQueue();const t=this.initialAstWithoutTokens||this.astWithTokens;return _t(t,0,t.length,Ee(e))}getFirstBracketBefore(e){this.flushQueue();const t=this.initialAstWithoutTokens||this.astWithTokens;return ft(t,0,t.length,Ee(e))}}function ft(e,t,n,i){if(4===e.kind||2===e.kind){const s=[];for(const i of e.children)n=Le(t,i.length),s.push({nodeOffsetStart:t,nodeOffsetEnd:n}),t=n;for(let t=s.length-1;t>=0;t--){const{nodeOffsetStart:n,nodeOffsetEnd:r}=s[t];if(Se(n,i)){const s=ft(e.children[t],n,r,i);if(s)return s}}return null}if(3===e.kind)return null;if(1===e.kind){const i=Ne(t,n);return{bracketInfo:e.bracketInfo,range:i}}return null}function _t(e,t,n,i){if(4===e.kind||2===e.kind){for(const s of e.children){if(Se(i,n=Le(t,s.length))){const e=_t(s,t,n,i);if(e)return e}t=n}return null}if(3===e.kind)return null;if(1===e.kind){const i=Ne(t,n);return{bracketInfo:e.bracketInfo,range:i}}return null}function pt(e,t,n,i,s,r,o,a,h,l,c=!1){if(o>200)return!0;e:for(;;)switch(e.kind){case 4:{const a=e.childrenLength;for(let c=0;c<a;c++){const a=e.getChild(c);if(a){if(n=Le(t,a.length),ve(t,s)&&we(n,i)){if(we(n,s)){e=a;continue e}if(!pt(a,t,n,i,s,r,o,0,h,l))return!1}t=n}}return!0}case 2:{const c=!l||!e.closingBracket||e.closingBracket.bracketInfo.closesColorized(e.openingBracket.bracketInfo);let u=0;if(h){let t=h.get(e.openingBracket.text);void 0===t&&(t=0),u=t,c&&(t++,h.set(e.openingBracket.text,t))}const d=e.childrenLength;for(let g=0;g<d;g++){const d=e.getChild(g);if(d){if(n=Le(t,d.length),ve(t,s)&&we(n,i)){if(we(n,s)&&1!==d.kind){e=d,c?(o++,a=u+1):a=u;continue e}if((c||1!==d.kind||!e.closingBracket)&&!pt(d,t,n,i,s,r,c?o+1:o,c?u+1:u,h,l,!e.closingBracket))return!1}t=n}}return h?.set(e.openingBracket.text,u),!0}case 3:{const e=Ne(t,n);return r(new de(e,o-1,0,!0))}case 1:{const e=Ne(t,n);return r(new de(e,o-1,a-1,c))}case 0:return!0}}class mt{constructor(e,t,n){this.push=e,this.includeMinIndentation=t,this.textModel=n}}function Ct(e,t,n,i,s,r,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 c=Le(t,e.openingBracket.length);let u=-1;if(r.includeMinIndentation&&(u=e.computeMinIndentation(t,r.textModel)),h=r.push(new fe(Ne(t,n),Ne(t,c),e.closingBracket?Ne(Le(c,e.child?.length||0),n):void 0,o,l,e,u)),t=c,h&&e.child){const l=e.child;if(n=Le(t,l.length),ve(t,s)&&we(n,i)&&(h=Ct(l,t,n,i,s,r,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=Le(n,t.length),ve(e,s)&&ve(i,n)&&(h=Ct(t,e,n,i,s,r,o,a),!h))return!1}}return h}class kt extends s.jG{get canBuildAST(){return this.textModel.getValueLength()<=5e6}constructor(e,t){super(),this.textModel=e,this.languageConfigurationService=t,this.bracketPairsTree=this._register(new s.HE),this.onDidChangeEmitter=new i.vl,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 s.Cm;this.bracketPairsTree.value=(e=n.add(new gt(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)||o.c1.empty}getBracketPairsInRangeWithMinIndentation(e){return this.bracketsRequested=!0,this.updateBracketPairsTree(),this.bracketPairsTree.value?.object.getBracketPairsInRange(e,!0)||o.c1.empty}getBracketsInRange(e,t=!1){return this.bracketsRequested=!0,this.updateBracketPairsTree(),this.bracketPairsTree.value?.object.getBracketsInRange(e,t)||o.c1.empty}findMatchingBracketUp(e,t,n){const i=this.textModel.validatePosition(t),s=this.textModel.getLanguageIdAtPosition(i.lineNumber,i.column);if(this.canBuildAST){const n=this.languageConfigurationService.getLanguageConfiguration(s).bracketsNew.getClosingBracketInfo(e);if(!n)return null;const i=this.getBracketPairsInRange(f.Q.fromPositions(t,t)).findLast(e=>n.closes(e.openingBracketInfo));return i?i.openingBracketRange:null}{const t=e.toLowerCase(),r=this.languageConfigurationService.getLanguageConfiguration(s).brackets;if(!r)return null;const o=r.textIsBracket[t];return o?It(this._findMatchingBracketUp(o,i,bt(n))):null}}matchBracket(e,t){if(this.canBuildAST){const t=this.getBracketPairsInRange(f.Q.fromPositions(e,e)).filter(t=>void 0!==t.closingBracketRange&&(t.openingBracketRange.containsPosition(e)||t.closingBracketRange.containsPosition(e))).findLastMaxBy((0,o.VE)(t=>t.openingBracketRange.containsPosition(e)?t.openingBracketRange:t.closingBracketRange,f.Q.compareRangesUsingStarts));return t?[t.openingBracketRange,t.closingBracketRange]:null}{const n=bt(t);return this._matchBracket(this.textModel.validatePosition(e),n)}}_establishBracketSearchOffsets(e,t,n,i){const s=t.getCount(),r=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(x(t.getStandardTokenType(e))||t.getLanguageId(e)!==r){o=n;break}}let a=Math.min(t.getLineContent().length,e.column-1+n.maxBracketLength);for(let e=i+1;e<s;e++){const n=t.getStartOffset(e);if(n>=a)break;if(x(t.getStandardTokenType(e))||t.getLanguageId(e)!==r){a=n;break}}return{searchStartOffset:o,searchEndOffset:a}}_matchBracket(e,t){const n=e.lineNumber,i=this.textModel.tokenization.getLineTokens(n),s=this.textModel.getLineContent(n),r=i.findTokenIndexAtOffset(e.column-1);if(r<0)return null;const o=this.languageConfigurationService.getLanguageConfiguration(i.getLanguageId(r)).brackets;if(o&&!x(i.getStandardTokenType(r))){let{searchStartOffset:a,searchEndOffset:h}=this._establishBracketSearchOffsets(e,i,o,r),l=null;for(;;){const i=y.findNextBracketInRange(o.forwardRegex,n,s,a,h);if(!i)break;if(i.startColumn<=e.column&&e.column<=i.endColumn){const e=s.substring(i.startColumn-1,i.endColumn-1).toLowerCase(),n=this._matchFoundBracket(i,o.textIsBracket[e],o.textIsOpenBracket[e],t);if(n){if(n instanceof Lt)return null;l=n}}a=i.endColumn-1}if(l)return l}if(r>0&&i.getStartOffset(r)===e.column-1){const o=r-1,a=this.languageConfigurationService.getLanguageConfiguration(i.getLanguageId(o)).brackets;if(a&&!x(i.getStandardTokenType(o))){const{searchStartOffset:r,searchEndOffset:h}=this._establishBracketSearchOffsets(e,i,a,o),l=y.findPrevBracketInRange(a.reversedRegex,n,s,r,h);if(l&&l.startColumn<=e.column&&e.column<=l.endColumn){const e=s.substring(l.startColumn-1,l.endColumn-1).toLowerCase(),n=this._matchFoundBracket(l,a.textIsBracket[e],a.textIsOpenBracket[e],t);if(n)return n instanceof Lt?null:n}}}return null}_matchFoundBracket(e,t,n,i){if(!t)return null;const s=n?this._findMatchingBracketDown(t,e.getEndPosition(),i):this._findMatchingBracketUp(t,e.getStartPosition(),i);return s?s instanceof Lt?s:[e,s]:null}_findMatchingBracketUp(e,t,n){const i=e.languageId,s=e.reversedRegex;let r=-1,o=0;const a=(t,i,a,h)=>{for(;;){if(n&&++o%100==0&&!n())return Lt.INSTANCE;const l=y.findPrevBracketInRange(s,t,i,a,h);if(!l)break;const c=i.substring(l.startColumn-1,l.endColumn-1).toLowerCase();if(e.isOpen(c)?r++:e.isClose(c)&&r--,0===r)return l;h=l.startColumn-1}return null};for(let e=t.lineNumber;e>=1;e--){const n=this.textModel.tokenization.getLineTokens(e),s=n.getCount(),r=this.textModel.getLineContent(e);let o=s-1,h=r.length,l=r.length;e===t.lineNumber&&(o=n.findTokenIndexAtOffset(t.column-1),h=t.column-1,l=t.column-1);let c=!0;for(;o>=0;o--){const t=n.getLanguageId(o)===i&&!x(n.getStandardTokenType(o));if(t)c?h=n.getStartOffset(o):(h=n.getStartOffset(o),l=n.getEndOffset(o));else if(c&&h!==l){const t=a(e,r,h,l);if(t)return t}c=t}if(c&&h!==l){const t=a(e,r,h,l);if(t)return t}}return null}_findMatchingBracketDown(e,t,n){const i=e.languageId,s=e.forwardRegex;let r=1,o=0;const a=(t,i,a,h)=>{for(;;){if(n&&++o%100==0&&!n())return Lt.INSTANCE;const l=y.findNextBracketInRange(s,t,i,a,h);if(!l)break;const c=i.substring(l.startColumn-1,l.endColumn-1).toLowerCase();if(e.isOpen(c)?r++:e.isClose(c)&&r--,0===r)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),s=n.getCount(),r=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 c=!0;for(;o<s;o++){const t=n.getLanguageId(o)===i&&!x(n.getStandardTokenType(o));if(t)c||(h=n.getStartOffset(o)),l=n.getEndOffset(o);else if(c&&h!==l){const t=a(e,r,h,l);if(t)return t}c=t}if(c&&h!==l){const t=a(e,r,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,s=null;for(let e=t.lineNumber;e>=1;e--){const r=this.textModel.tokenization.getLineTokens(e),o=r.getCount(),a=this.textModel.getLineContent(e);let h=o-1,l=a.length,c=a.length;if(e===t.lineNumber){h=r.findTokenIndexAtOffset(t.column-1),l=t.column-1,c=t.column-1;const e=r.getLanguageId(h);n!==e&&(n=e,i=this.languageConfigurationService.getLanguageConfiguration(n).brackets,s=this.languageConfigurationService.getLanguageConfiguration(n).bracketsNew)}let u=!0;for(;h>=0;h--){const t=r.getLanguageId(h);if(n!==t){if(i&&s&&u&&l!==c){const t=y.findPrevBracketInRange(i.reversedRegex,e,a,l,c);if(t)return this._toFoundBracket(s,t);u=!1}n=t,i=this.languageConfigurationService.getLanguageConfiguration(n).brackets,s=this.languageConfigurationService.getLanguageConfiguration(n).bracketsNew}const o=!!i&&!x(r.getStandardTokenType(h));if(o)u?l=r.getStartOffset(h):(l=r.getStartOffset(h),c=r.getEndOffset(h));else if(s&&i&&u&&l!==c){const t=y.findPrevBracketInRange(i.reversedRegex,e,a,l,c);if(t)return this._toFoundBracket(s,t)}u=o}if(s&&i&&u&&l!==c){const t=y.findPrevBracketInRange(i.reversedRegex,e,a,l,c);if(t)return this._toFoundBracket(s,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,s=null,r=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,c=0;if(e===t.lineNumber){h=n.findTokenIndexAtOffset(t.column-1),l=t.column-1,c=t.column-1;const e=n.getLanguageId(h);i!==e&&(i=e,s=this.languageConfigurationService.getLanguageConfiguration(i).brackets,r=this.languageConfigurationService.getLanguageConfiguration(i).bracketsNew)}let u=!0;for(;h<o;h++){const t=n.getLanguageId(h);if(i!==t){if(r&&s&&u&&l!==c){const t=y.findNextBracketInRange(s.forwardRegex,e,a,l,c);if(t)return this._toFoundBracket(r,t);u=!1}i=t,s=this.languageConfigurationService.getLanguageConfiguration(i).brackets,r=this.languageConfigurationService.getLanguageConfiguration(i).bracketsNew}const o=!!s&&!x(n.getStandardTokenType(h));if(o)u||(l=n.getStartOffset(h)),c=n.getEndOffset(h);else if(r&&s&&u&&l!==c){const t=y.findNextBracketInRange(s.forwardRegex,e,a,l,c);if(t)return this._toFoundBracket(r,t)}u=o}if(r&&s&&u&&l!==c){const t=y.findNextBracketInRange(s.forwardRegex,e,a,l,c);if(t)return this._toFoundBracket(r,t)}}return null}findEnclosingBrackets(e,t){const n=this.textModel.validatePosition(e);if(this.canBuildAST){const e=f.Q.fromPositions(n),t=this.getBracketPairsInRange(f.Q.fromPositions(n,n)).findLast(t=>void 0!==t.closingBracketRange&&t.range.strictContainsRange(e));return t?[t.openingBracketRange,t.closingBracketRange]:null}const i=bt(t),s=this.textModel.getLineCount(),r=new Map;let o=[];const a=(e,t)=>{if(!r.has(e)){const n=[];for(let e=0,i=t?t.brackets.length:0;e<i;e++)n[e]=0;r.set(e,n)}o=r.get(e)};let h=0;const l=(e,t,n,s,r)=>{for(;;){if(i&&++h%100==0&&!i())return Lt.INSTANCE;const a=y.findNextBracketInRange(e.forwardRegex,t,n,s,r);if(!a)break;const l=n.substring(a.startColumn-1,a.endColumn-1).toLowerCase(),c=e.textIsBracket[l];if(c&&(c.isOpen(l)?o[c.index]++:c.isClose(l)&&o[c.index]--,-1===o[c.index]))return this._matchFoundBracket(a,c,!1,i);s=a.endColumn-1}return null};let c=null,u=null;for(let e=n.lineNumber;e<=s;e++){const t=this.textModel.tokenization.getLineTokens(e),i=t.getCount(),s=this.textModel.getLineContent(e);let r=0,o=0,h=0;if(e===n.lineNumber){r=t.findTokenIndexAtOffset(n.column-1),o=n.column-1,h=n.column-1;const e=t.getLanguageId(r);c!==e&&(c=e,u=this.languageConfigurationService.getLanguageConfiguration(c).brackets,a(c,u))}let d=!0;for(;r<i;r++){const n=t.getLanguageId(r);if(c!==n){if(u&&d&&o!==h){const t=l(u,e,s,o,h);if(t)return It(t);d=!1}c=n,u=this.languageConfigurationService.getLanguageConfiguration(c).brackets,a(c,u)}const i=!!u&&!x(t.getStandardTokenType(r));if(i)d||(o=t.getStartOffset(r)),h=t.getEndOffset(r);else if(u&&d&&o!==h){const t=l(u,e,s,o,h);if(t)return It(t)}d=i}if(u&&d&&o!==h){const t=l(u,e,s,o,h);if(t)return It(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 bt(e){if(void 0===e)return()=>!0;{const t=Date.now();return()=>Date.now()-t<=e}}class Lt{static{this.INSTANCE=new Lt}constructor(){this._searchCanceledBrand=void 0}}function It(e){return e instanceof Lt?null:e}var Tt=n(862),xt=n(9996);class St extends s.jG{constructor(e){super(),this.textModel=e,this.colorProvider=new vt,this.onDidChangeEmitter=new i.vl,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 f.Q(1,1,this.textModel.getLineCount(),1),e,t):[]}}class vt{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,xt.zy)((e,t)=>{const n=[Tt.sN,Tt.lQ,Tt.ss,Tt.l5,Tt.sH,Tt.zp],i=new vt;t.addRule(`.monaco-editor .${i.unexpectedClosingBracketClassName} { color: ${e.getColor(Tt.s7)}; }`);const s=n.map(t=>e.getColor(t)).filter(e=>!!e).filter(e=>!e.isTransparent());for(let e=0;e<30;e++){const n=s[e%s.length];t.addRule(`.monaco-editor .${i.getInlineClassNameOfLevel(e)} { color: ${n}; }`)}});var wt=n(5459);function Et(e){return e.replace(/\n/g,"\\n").replace(/\r/g,"\\r")}class Nt{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} "${Et(this.newText)}")`:0===this.newText.length?`(delete@${this.oldPosition} "${Et(this.oldText)}")`:`(replace@${this.oldPosition} "${Et(this.oldText)}" with "${Et(this.newText)}")`}static _writeStringSize(e){return 4+2*e.length}static _writeString(e,t,n){const i=t.length;S.Sw(e,i,n),n+=4;for(let s=0;s<i;s++)S.gN(e,t.charCodeAt(s),n),n+=2;return n}static _readString(e,t){const n=S.bb(e,t);return function(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 s=0;for(let r=0;r<n;r++){const n=S.$l(e,t);t+=2,i[s++]=String.fromCharCode(n)}return i.join("")}(e,t,n):N().decode(i)}(e,t+=4,n)}writeSize(){return 8+Nt._writeStringSize(this.oldText)+Nt._writeStringSize(this.newText)}write(e,t){return S.Sw(e,this.oldPosition,t),t+=4,S.Sw(e,this.newPosition,t),t+=4,t=Nt._writeString(e,this.oldText,t),Nt._writeString(e,this.newText,t)}static read(e,t,n){const i=S.bb(e,t);t+=4;const s=S.bb(e,t);t+=4;const r=Nt._readString(e,t);t+=Nt._writeStringSize(r);const o=Nt._readString(e,t);return t+=Nt._writeStringSize(o),n.push(new Nt(i,r,s,o)),t}}class Ot{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]=Ot._splitCurr(i,n.newPosition-i.oldPosition);this._acceptCurr(e),i=t;continue}if(n.newPosition<i.oldPosition){const[e,t]=Ot._splitPrev(n,i.oldPosition-n.newPosition);this._acceptPrev(e),n=t;continue}let s,r;if(i.oldEnd===n.newEnd)s=n,r=i,n=this._getPrev(++e),i=this._getCurr(++t);else if(i.oldEnd<n.newEnd){const[e,o]=Ot._splitPrev(n,i.oldLength);s=e,r=i,n=o,i=this._getCurr(++t)}else{const[t,o]=Ot._splitCurr(i,n.newLength);s=n,r=t,n=this._getPrev(++e),i=o}this._result[this._resultLen++]=new Nt(s.oldPosition,s.oldText,r.newPosition,r.newText),this._prevDeltaOffset+=s.newLength-s.oldLength,this._currDeltaOffset+=r.newLength-r.oldLength}const s=Ot._merge(this._result);return Ot._removeNoOps(s)}_acceptCurr(e){this._result[this._resultLen++]=Ot._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++]=Ot._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 Nt(t.oldPosition-e,t.oldText,t.newPosition,t.newText)}static _rebasePrev(e,t){return new Nt(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 Nt(e.oldPosition,e.oldText,e.newPosition,n),new Nt(e.oldEnd,"",e.newPosition+t,i)]}static _splitCurr(e,t){const n=e.oldText.substr(0,t),i=e.oldText.substr(t);return[new Nt(e.oldPosition,n,e.newPosition,e.newText),new Nt(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 s=1;s<e.length;s++){const r=e[s];i.oldEnd===r.oldPosition?i=new Nt(i.oldPosition,i.oldText+r.oldText,i.newPosition,i.newText+r.newText):(t[n++]=i,i=r)}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 s=e[i];s.oldText!==s.newText&&(t[n++]=s)}return t}}var Bt=n(5908);function Rt(e){return e.toString()}class Mt{static create(e,t){const n=e.getAlternativeVersionId(),i=zt(e);return new Mt(n,n,i,i,t,t,[])}constructor(e,t,n,i,s,r,o){this.beforeVersionId=e,this.afterVersionId=t,this.beforeEOL=n,this.afterEOL=i,this.beforeCursorState=s,this.afterCursorState=r,this.changes=o}append(e,t,n,i,s){var r,o;t.length>0&&(this.changes=(o=t,null===(r=this.changes)||0===r.length?o:new Ot(r,o).compress())),this.afterEOL=n,this.afterVersionId=i,this.afterCursorState=s}static _writeSelectionsSize(e){return 4+16*(e?e.length:0)}static _writeSelections(e,t,n){if(S.Sw(e,t?t.length:0,n),n+=4,t)for(const i of t)S.Sw(e,i.selectionStartLineNumber,n),n+=4,S.Sw(e,i.selectionStartColumn,n),n+=4,S.Sw(e,i.positionLineNumber,n),n+=4,S.Sw(e,i.positionColumn,n),n+=4;return n}static _readSelections(e,t,n){const i=S.bb(e,t);t+=4;for(let s=0;s<i;s++){const i=S.bb(e,t);t+=4;const s=S.bb(e,t);t+=4;const r=S.bb(e,t);t+=4;const o=S.bb(e,t);t+=4,n.push(new _.L(i,s,r,o))}return t}serialize(){let e=10+Mt._writeSelectionsSize(this.beforeCursorState)+Mt._writeSelectionsSize(this.afterCursorState)+4;for(const t of this.changes)e+=t.writeSize();const t=new Uint8Array(e);let n=0;S.Sw(t,this.beforeVersionId,n),n+=4,S.Sw(t,this.afterVersionId,n),n+=4,S.Gs(t,this.beforeEOL,n),n+=1,S.Gs(t,this.afterEOL,n),n+=1,n=Mt._writeSelections(t,this.beforeCursorState,n),n=Mt._writeSelections(t,this.afterCursorState,n),S.Sw(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=S.bb(t,n);n+=4;const s=S.bb(t,n);n+=4;const r=S.pJ(t,n);n+=1;const o=S.pJ(t,n);n+=1;const a=[];n=Mt._readSelections(t,n,a);const h=[];n=Mt._readSelections(t,n,h);const l=S.bb(t,n);n+=4;const c=[];for(let e=0;e<l;e++)n=Nt.read(t,n,c);return new Mt(i,s,r,o,a,h,c)}}class Dt{get type(){return 0}get resource(){return c.r.isUri(this.model)?this.model:this.model.uri}constructor(e,t,n,i){this.label=e,this.code=t,this.model=n,this._data=Mt.create(n,i)}toString(){return(this._data instanceof Mt?this._data:Mt.deserialize(this._data)).changes.map(e=>e.toString()).join(", ")}matchesResource(e){return(c.r.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 Mt}append(e,t,n,i,s){this._data instanceof Mt&&this._data.append(e,t,n,i,s)}close(){this._data instanceof Mt&&(this._data=this._data.serialize())}open(){this._data instanceof Mt||(this._data=Mt.deserialize(this._data))}undo(){if(c.r.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof Mt&&(this._data=this._data.serialize());const e=Mt.deserialize(this._data);this.model._applyUndo(e.changes,e.beforeEOL,e.beforeVersionId,e.beforeCursorState)}redo(){if(c.r.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof Mt&&(this._data=this._data.serialize());const e=Mt.deserialize(this._data);this.model._applyRedo(e.changes,e.afterEOL,e.afterVersionId,e.afterCursorState)}heapSize(){return this._data instanceof Mt&&(this._data=this._data.serialize()),this._data.byteLength+168}}class At{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=Rt(e.resource);this._editStackElementsMap.set(t,e)}this._delegate=null}prepareUndoRedo(){if(this._delegate)return this._delegate.prepareUndoRedo(this)}matchesResource(e){const t=Rt(e);return this._editStackElementsMap.has(t)}setModel(e){const t=Rt(c.r.isUri(e)?e:e.uri);this._editStackElementsMap.has(t)&&this._editStackElementsMap.get(t).setModel(e)}canAppend(e){if(!this._isOpen)return!1;const t=Rt(e.uri);return!!this._editStackElementsMap.has(t)&&this._editStackElementsMap.get(t).canAppend(e)}append(e,t,n,i,s){const r=Rt(e.uri);this._editStackElementsMap.get(r).append(e,t,n,i,s)}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=Rt(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,Bt.P8)(t.resource)}: ${t}`);return`{${e.join(", ")}}`}}function zt(e){return"\n"===e.getEOL()?0:1}function Pt(e){return!!e&&(e instanceof Dt||e instanceof At)}class yt{constructor(e,t){this._model=e,this._undoRedoService=t}pushStackElement(){const e=this._undoRedoService.getLastElement(this._model.uri);Pt(e)&&e.close()}popStackElement(){const e=this._undoRedoService.getLastElement(this._model.uri);Pt(e)&&e.open()}clear(){this._undoRedoService.removeElements(this._model.uri)}_getOrCreateEditStackElement(e,t){const n=this._undoRedoService.getLastElement(this._model.uri);if(Pt(n)&&n.canAppend(this._model))return n;const i=new Dt(wt.kg("edit","Typing"),"undoredo.textBufferEdit",this._model,e);return this._undoRedoService.pushElement(i,t),i}pushEOL(e){const t=this._getOrCreateEditStackElement(null,void 0);this._model.setEOL(e),t.append(this._model,[],zt(this._model),this._model.getAlternativeVersionId(),null)}pushEditOperation(e,t,n,i){const s=this._getOrCreateEditStackElement(e,i),r=this._model.applyEdits(t,!0),o=yt._computeCursorState(n,r),a=r.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),s.append(this._model,a.map(e=>e.textChange),zt(this._model),this._model.getAlternativeVersionId(),o),o}static _computeCursorState(e,t){try{return e?e(t):null}catch(e){return(0,h.dz)(e),null}}}var Ft,Wt=n(404);class Vt extends s.jG{constructor(){super(...arguments),this._isDisposed=!1}dispose(){super.dispose(),this._isDisposed=!0}assertNotDisposed(){if(this._isDisposed)throw new Error("TextModelPart is disposed!")}}!function(e){e[e.Disabled=0]="Disabled",e[e.EnabledForActive=1]="EnabledForActive",e[e.Enabled=2]="Enabled"}(Ft||(Ft={}));class Ut{constructor(e,t,n,i,s,r){if(this.visibleColumn=e,this.column=t,this.className=n,this.horizontalLine=i,this.forWrappedLinesAfterColumn=s,this.forWrappedLinesBeforeOrAtColumn=r,-1!==e==(-1!==t))throw new Error}}class jt{constructor(e,t){this.top=e,this.endColumn=t}}class Ht extends Vt{constructor(e,t){super(),this.textModel=e,this.languageConfigurationService=t}getLanguageConfiguration(e){return this.languageConfigurationService.getLanguageConfiguration(e)}_computeIndentLevel(e){return function(e,t){let n=0,i=0;const s=e.length;for(;i<s;){const s=e.charCodeAt(i);if(32===s)n++;else{if(9!==s)break;n=n-n%t+t}i++}return i===s?-1:n}(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 h.D7("Illegal value for lineNumber");const s=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,r=Boolean(s&&s.offSide);let o=-2,a=-1,l=-2,c=-1;const u=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===l){l=-1,c=-1;for(let t=e;t<i;t++){const e=this._computeIndentLevel(t);if(e>=0){l=t,c=e;break}}}};let d=-2,g=-1,f=-2,_=-1;const p=e=>{if(-2===d){d=-1,g=-1;for(let t=e-2;t>=0;t--){const e=this._computeIndentLevel(t);if(e>=0){d=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 s=0;C||b;s++){const o=e-s,h=e+s;s>1&&(o<1||o<t)&&(C=!1),s>1&&(h>i||h>n)&&(b=!1),s>5e4&&(C=!1,b=!1);let f=-1;if(C&&o>=1){const e=this._computeIndentLevel(o-1);e>=0?(l=o-1,c=e,f=Math.ceil(e/this.textModel.getOptions().indentSize)):(u(o),f=this._getIndentLevelForWhitespaceLine(r,a,c))}let T=-1;if(b&&h<=i){const e=this._computeIndentLevel(h-1);e>=0?(d=h-1,g=e,T=Math.ceil(e/this.textModel.getOptions().indentSize)):(p(h),T=this._getIndentLevelForWhitespaceLine(r,g,_))}if(0!==s){if(1===s){if(h<=i&&T>=0&&I+1===T){C=!1,m=h,k=h,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=h:b=!1)}else I=f}return{startLineNumber:m,endLineNumber:k,indent:L}}getLinesBracketGuides(e,t,n,i){const s=[];for(let n=e;n<=t;n++)s.push([]);const r=this.textModel.bracketPairs.getBracketPairsInRangeWithMinIndentation(new f.Q(e,1,t,this.textModel.getLineMaxColumn(t))).toArray();let o;if(n&&r.length>0){const i=(e<=n.lineNumber&&n.lineNumber<=t?r:this.textModel.bracketPairs.getBracketPairsInRange(f.Q.fromPositions(n)).toArray()).filter(e=>f.Q.strictContainsPosition(e.range,n));o=(0,Wt.Uk)(i,e=>true)?.range}const a=this.textModel.getOptions().bracketPairColorizationOptions.independentColorPoolPerBracketType,h=new Gt;for(const n of r){if(!n.closingBracketRange)continue;const r=o&&n.range.equalsRange(o);if(!r&&!i.includeInactive)continue;const c=h.getInlineClassName(n.nestingLevel,n.nestingLevelOfEqualBracketType,a)+(i.highlightActive&&r?" "+h.activeClassName:""),u=n.openingBracketRange.getStartPosition(),d=n.closingBracketRange.getStartPosition(),g=i.horizontalGuides===Ft.Enabled||i.horizontalGuides===Ft.EnabledForActive&&r;if(n.range.startLineNumber===n.range.endLineNumber){g&&s[n.range.startLineNumber-e].push(new Ut(-1,n.openingBracketRange.getEndPosition().column,c,new jt(!1,d.column),-1,-1));continue}const f=this.getVisibleColumnFromPosition(d),_=this.getVisibleColumnFromPosition(n.openingBracketRange.getStartPosition()),p=Math.min(_,f,n.minVisibleColumnIndentation+1);let m=!1;l.HG(this.textModel.getLineContent(n.closingBracketRange.startLineNumber))<n.closingBracketRange.startColumn-1&&(m=!0);const C=Math.max(u.lineNumber,e),k=Math.min(d.lineNumber,t),b=m?1:0;for(let t=C;t<k+b;t++)s[t-e].push(new Ut(p,-1,c,null,t===u.lineNumber?u.column:-1,t===d.lineNumber?d.column:-1));g&&(u.lineNumber>=e&&_>p&&s[u.lineNumber-e].push(new Ut(p,-1,c,new jt(!1,u.column),-1,-1)),d.lineNumber<=t&&f>p&&s[d.lineNumber-e].push(new Ut(p,-1,c,new jt(!m,d.column),-1,-1)))}for(const e of s)e.sort((e,t)=>e.visibleColumn-t.visibleColumn);return s}getVisibleColumnFromPosition(e){return d.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(),s=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,r=Boolean(s&&s.offSide),o=new Array(t-e+1);let a=-2,h=-1,l=-2,c=-1;for(let s=e;s<=t;s++){const t=s-e,u=this._computeIndentLevel(s-1);if(u>=0)a=s-1,h=u,o[t]=Math.ceil(u/i.indentSize);else{if(-2===a){a=-1,h=-1;for(let e=s-2;e>=0;e--){const t=this._computeIndentLevel(e);if(t>=0){a=e,h=t;break}}}if(-1!==l&&(-2===l||l<s-1)){l=-1,c=-1;for(let e=s;e<n;e++){const t=this._computeIndentLevel(e);if(t>=0){l=e,c=t;break}}}o[t]=this._getIndentLevelForWhitespaceLine(r,h,c)}}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 Gt{constructor(){this.activeClassName="indent-active"}getInlineClassName(e,t,n){return this.getInlineClassNameOfLevel(n?t:e)}getInlineClassNameOfLevel(e){return"bracket-indent-guide lvl-"+e%30}}class qt{constructor(){this.spacesDiff=0,this.looksLikeAlignment=!1}}function Qt(e,t,n,i,s){let r;for(s.spacesDiff=0,s.looksLikeAlignment=!1,r=0;r<t&&r<i&&e.charCodeAt(r)===n.charCodeAt(r);r++);let o=0,a=0;for(let n=r;n<t;n++)32===e.charCodeAt(n)?o++:a++;let h=0,l=0;for(let e=r;e<i;e++)32===n.charCodeAt(e)?h++:l++;if(o>0&&a>0)return;if(h>0&&l>0)return;const c=Math.abs(a-l),u=Math.abs(o-h);if(0===c)return s.spacesDiff=u,void(u>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)&&(s.looksLikeAlignment=!0));u%c!==0||(s.spacesDiff=u/c)}function $t(e,t,n){const i=Math.min(e.getLineCount(),1e4);let s=0,r=0,o="",a=0;const h=[2,4,6,8,3,5,7],l=[0,0,0,0,0,0,0,0,0],c=new qt;for(let h=1;h<=i;h++){const i=e.getLineLength(h),u=e.getLineContent(h),d=i<=65536;let g=!1,f=0,_=0,p=0;for(let t=0,n=i;t<n;t++){const n=d?u.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?s++:_>1&&r++,Qt(o,a,u,f,c),c.looksLikeAlignment&&(!n||t!==c.spacesDiff))continue;const m=c.spacesDiff;m<=8&&l[m]++,o=u,a=f}let u=n;s!==r&&(u=s<r);let d=t;if(u){let e=u?0:.1*i;h.forEach(t=>{const n=l[t];n>e&&(e=n,d=t)}),4===d&&l[4]>0&&l[2]>0&&l[2]>=l[4]/2&&(d=2)}return{insertSpaces:u,tabSize:d}}function Kt(e){return(1&e.metadata)>>>0}function Xt(e,t){e.metadata=254&e.metadata|t}function Yt(e){return(2&e.metadata)>>>1==1}function Zt(e,t){e.metadata=253&e.metadata|(t?1:0)<<1}function Jt(e){return(4&e.metadata)>>>2==1}function en(e,t){e.metadata=251&e.metadata|(t?1:0)<<2}function tn(e){return(64&e.metadata)>>>6==1}function nn(e,t){e.metadata=191&e.metadata|(t?1:0)<<6}function sn(e,t){e.metadata=231&e.metadata|t<<3}function rn(e,t){e.metadata=223&e.metadata|(t?1:0)<<5}class on{constructor(e,t,n){this.metadata=0,this.parent=this,this.left=this,this.right=this,Xt(this,1),this.start=t,this.end=n,this.delta=0,this.maxEnd=n,this.id=e,this.ownerId=0,this.options=null,en(this,!1),nn(this,!1),sn(this,1),rn(this,!1),this.cachedVersionId=0,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=n,this.range=null,Zt(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;en(this,"squiggly-error"===t||"squiggly-warning"===t||"squiggly-info"===t),nn(this,null!==this.options.glyphMarginClassName),sn(this,this.options.stickiness),rn(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 an=new on(null,0,0);an.parent=an,an.left=an,an.right=an,Xt(an,0);class hn{constructor(){this.root=an,this.requestNormalizeDelta=!1}intervalSearch(e,t,n,i,s,r){return this.root===an?[]:function(e,t,n,i,s,r,o){let a=e.root,h=0,l=0,c=0,u=0;const d=[];let g=0;for(;a!==an;)if(Yt(a))Zt(a.left,!1),Zt(a.right,!1),a===a.parent.right&&(h-=a.parent.delta),a=a.parent;else{if(!Yt(a.left)){if(l=h+a.maxEnd,l<t){Zt(a,!0);continue}if(a.left!==an){a=a.left;continue}}if(c=h+a.start,c>n)Zt(a,!0);else{if(u=h+a.end,u>=t){a.setCachedOffsets(c,u,r);let e=!0;i&&a.ownerId&&a.ownerId!==i&&(e=!1),s&&Jt(a)&&(e=!1),o&&!tn(a)&&(e=!1),e&&(d[g++]=a)}Zt(a,!0),a.right===an||Yt(a.right)||(h+=a.delta,a=a.right)}}return Zt(e.root,!1),d}(this,e,t,n,i,s,r)}search(e,t,n,i){return this.root===an?[]:function(e,t,n,i,s){let r=e.root,o=0,a=0,h=0;const l=[];let c=0;for(;r!==an;){if(Yt(r)){Zt(r.left,!1),Zt(r.right,!1),r===r.parent.right&&(o-=r.parent.delta),r=r.parent;continue}if(r.left!==an&&!Yt(r.left)){r=r.left;continue}a=o+r.start,h=o+r.end,r.setCachedOffsets(a,h,i);let e=!0;t&&r.ownerId&&r.ownerId!==t&&(e=!1),n&&Jt(r)&&(e=!1),s&&!tn(r)&&(e=!1),e&&(l[c++]=r),Zt(r,!0),r.right===an||Yt(r.right)||(o+=r.delta,r=r.right)}return Zt(e.root,!1),l}(this,e,t,n,i)}collectNodesFromOwner(e){return function(e,t){let n=e.root;const i=[];let s=0;for(;n!==an;)Yt(n)?(Zt(n.left,!1),Zt(n.right,!1),n=n.parent):n.left===an||Yt(n.left)?(n.ownerId===t&&(i[s++]=n),Zt(n,!0),n.right===an||Yt(n.right)||(n=n.right)):n=n.left;return Zt(e.root,!1),i}(this,e)}collectNodesPostOrder(){return function(e){let t=e.root;const n=[];let i=0;for(;t!==an;)Yt(t)?(Zt(t.left,!1),Zt(t.right,!1),t=t.parent):t.left===an||Yt(t.left)?t.right===an||Yt(t.right)?(n[i++]=t,Zt(t,!0)):t=t.right:t=t.left;return Zt(e.root,!1),n}(this)}insert(e){un(this,e),this._normalizeDeltaIfNecessary()}delete(e){dn(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 s=n.start+i,r=n.end+i;n.setCachedOffsets(s,r,t)}acceptReplace(e,t,n,i){const s=function(e,t,n){let i=e.root,s=0,r=0,o=0,a=0;const h=[];let l=0;for(;i!==an;)if(Yt(i))Zt(i.left,!1),Zt(i.right,!1),i===i.parent.right&&(s-=i.parent.delta),i=i.parent;else{if(!Yt(i.left)){if(r=s+i.maxEnd,r<t){Zt(i,!0);continue}if(i.left!==an){i=i.left;continue}}o=s+i.start,o>n?Zt(i,!0):(a=s+i.end,a>=t&&(i.setCachedOffsets(o,a,0),h[l++]=i),Zt(i,!0),i.right===an||Yt(i.right)||(s+=i.delta,i=i.right))}return Zt(e.root,!1),h}(this,e,e+t);for(let e=0,t=s.length;e<t;e++)dn(this,s[e]);this._normalizeDeltaIfNecessary(),function(e,t,n,i){let s=e.root,r=0,o=0,a=0;const h=i-(n-t);for(;s!==an;)if(Yt(s))Zt(s.left,!1),Zt(s.right,!1),s===s.parent.right&&(r-=s.parent.delta),mn(s),s=s.parent;else{if(!Yt(s.left)){if(o=r+s.maxEnd,o<t){Zt(s,!0);continue}if(s.left!==an){s=s.left;continue}}a=r+s.start,a>n?(s.start+=h,s.end+=h,s.delta+=h,(s.delta<-1073741824||s.delta>1073741824)&&(e.requestNormalizeDelta=!0),Zt(s,!0)):(Zt(s,!0),s.right===an||Yt(s.right)||(r+=s.delta,s=s.right))}Zt(e.root,!1)}(this,e,e+t,n),this._normalizeDeltaIfNecessary();for(let r=0,o=s.length;r<o;r++){const o=s[r];o.start=o.cachedAbsoluteStart,o.end=o.cachedAbsoluteEnd,cn(o,e,e+t,n,i),o.maxEnd=o.end,un(this,o)}this._normalizeDeltaIfNecessary()}_normalizeDeltaIfNecessary(){this.requestNormalizeDelta&&(this.requestNormalizeDelta=!1,function(e){let t=e.root,n=0;for(;t!==an;)t.left===an||Yt(t.left)?t.right===an||Yt(t.right)?(t.start=n+t.start,t.end=n+t.end,t.delta=0,mn(t),Zt(t,!0),Zt(t.left,!1),Zt(t.right,!1),t===t.parent.right&&(n-=t.parent.delta),t=t.parent):(n+=t.delta,t=t.right):t=t.left;Zt(e.root,!1)}(this))}}function ln(e,t,n,i){return e<n||!(e>n)&&1!==i&&(2===i||t)}function cn(e,t,n,i,s){const r=function(e){return(24&e.metadata)>>>3}(e),o=0===r||2===r,a=1===r||2===r,h=n-t,l=i,c=Math.min(h,l),u=e.start;let d=!1;const g=e.end;let f=!1;t<=u&&g<=n&&function(e){return(32&e.metadata)>>>5==1}(e)&&(e.start=t,d=!0,e.end=t,f=!0);{const e=s?1:h>0?2:0;!d&&ln(u,o,t,e)&&(d=!0),!f&&ln(g,a,t,e)&&(f=!0)}if(c>0&&!s){const e=h>l?2:0;!d&&ln(u,o,t+c,e)&&(d=!0),!f&&ln(g,a,t+c,e)&&(f=!0)}{const i=s?1:0;!d&&ln(u,o,n,i)&&(e.start=t+l,d=!0),!f&&ln(g,a,n,i)&&(e.end=t+l,f=!0)}const _=l-h;d||(e.start=Math.max(0,u+_)),f||(e.end=Math.max(0,g+_)),e.start>e.end&&(e.end=e.start)}function un(e,t){if(e.root===an)return t.parent=an,t.left=an,t.right=an,Xt(t,0),e.root=t,e.root;!function(e,t){let n=0,i=e.root;const s=t.start,r=t.end;for(;;)if(kn(s,r,i.start+n,i.end+n)<0){if(i.left===an){t.start-=n,t.end-=n,t.maxEnd-=n,i.left=t;break}i=i.left}else{if(i.right===an){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=an,t.right=an,Xt(t,1)}(e,t),Cn(t.parent);let n=t;for(;n!==e.root&&1===Kt(n.parent);)if(n.parent===n.parent.parent.left){const t=n.parent.parent.right;1===Kt(t)?(Xt(n.parent,0),Xt(t,0),Xt(n.parent.parent,1),n=n.parent.parent):(n===n.parent.right&&(n=n.parent,fn(e,n)),Xt(n.parent,0),Xt(n.parent.parent,1),_n(e,n.parent.parent))}else{const t=n.parent.parent.left;1===Kt(t)?(Xt(n.parent,0),Xt(t,0),Xt(n.parent.parent,1),n=n.parent.parent):(n===n.parent.left&&(n=n.parent,_n(e,n)),Xt(n.parent,0),Xt(n.parent.parent,1),fn(e,n.parent.parent))}return Xt(e.root,0),t}function dn(e,t){let n,i;if(t.left===an?(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===an?(n=t.left,i=t):(i=function(e){for(;e.left!==an;)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,Xt(n,0),t.detach(),gn(),mn(n),void(e.root.parent=an);const s=1===Kt(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,Xt(i,Kt(t)),t===e.root?e.root=i:t===t.parent.left?t.parent.left=i:t.parent.right=i,i.left!==an&&(i.left.parent=i),i.right!==an&&(i.right.parent=i)),t.detach(),s)return Cn(n.parent),i!==t&&(Cn(i),Cn(i.parent)),void gn();let r;for(Cn(n),Cn(n.parent),i!==t&&(Cn(i),Cn(i.parent));n!==e.root&&0===Kt(n);)n===n.parent.left?(r=n.parent.right,1===Kt(r)&&(Xt(r,0),Xt(n.parent,1),fn(e,n.parent),r=n.parent.right),0===Kt(r.left)&&0===Kt(r.right)?(Xt(r,1),n=n.parent):(0===Kt(r.right)&&(Xt(r.left,0),Xt(r,1),_n(e,r),r=n.parent.right),Xt(r,Kt(n.parent)),Xt(n.parent,0),Xt(r.right,0),fn(e,n.parent),n=e.root)):(r=n.parent.left,1===Kt(r)&&(Xt(r,0),Xt(n.parent,1),_n(e,n.parent),r=n.parent.left),0===Kt(r.left)&&0===Kt(r.right)?(Xt(r,1),n=n.parent):(0===Kt(r.left)&&(Xt(r.right,0),Xt(r,1),fn(e,r),r=n.parent.left),Xt(r,Kt(n.parent)),Xt(n.parent,0),Xt(r.left,0),_n(e,n.parent),n=e.root));Xt(n,0),gn()}function gn(){an.parent=an,an.delta=0,an.start=0,an.end=0}function fn(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!==an&&(n.left.parent=t),n.parent=t.parent,t.parent===an?e.root=n:t===t.parent.left?t.parent.left=n:t.parent.right=n,n.left=t,t.parent=n,mn(t),mn(n)}function _n(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!==an&&(n.right.parent=t),n.parent=t.parent,t.parent===an?e.root=n:t===t.parent.right?t.parent.right=n:t.parent.left=n,n.right=t,t.parent=n,mn(t),mn(n)}function pn(e){let t=e.end;if(e.left!==an){const n=e.left.maxEnd;n>t&&(t=n)}if(e.right!==an){const n=e.right.maxEnd+e.delta;n>t&&(t=n)}return t}function mn(e){e.maxEnd=pn(e)}function Cn(e){for(;e!==an;){const t=pn(e);if(e.maxEnd===t)return;e.maxEnd=t,e=e.parent}}function kn(e,t,n,i){return e===n?t-i:e-n}class bn{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!==Ln)return In(this.right);let e=this;for(;e.parent!==Ln&&e.parent.left!==e;)e=e.parent;return e.parent===Ln?Ln:e.parent}prev(){if(this.left!==Ln)return Tn(this.left);let e=this;for(;e.parent!==Ln&&e.parent.right!==e;)e=e.parent;return e.parent===Ln?Ln:e.parent}detach(){this.parent=null,this.left=null,this.right=null}}const Ln=new bn(null,0);function In(e){for(;e.left!==Ln;)e=e.left;return e}function Tn(e){for(;e.right!==Ln;)e=e.right;return e}function xn(e){return e===Ln?0:e.size_left+e.piece.length+xn(e.right)}function Sn(e){return e===Ln?0:e.lf_left+e.piece.lineFeedCnt+Sn(e.right)}function vn(){Ln.parent=Ln}function wn(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!==Ln&&(n.left.parent=t),n.parent=t.parent,t.parent===Ln?e.root=n:t.parent.left===t?t.parent.left=n:t.parent.right=n,n.left=t,t.parent=n}function En(e,t){const n=t.left;t.left=n.right,n.right!==Ln&&(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===Ln?e.root=n:t===t.parent.right?t.parent.right=n:t.parent.left=n,n.right=t,t.parent=n}function Nn(e,t){let n,i;if(t.left===Ln?(i=t,n=i.right):t.right===Ln?(i=t,n=i.left):(i=In(t.right),n=i.right),i===e.root)return e.root=n,n.color=0,t.detach(),vn(),void(e.root.parent=Ln);const s=1===i.color;if(i===i.parent.left?i.parent.left=n:i.parent.right=n,i===t?(n.parent=i.parent,Rn(e,n)):(i.parent===t?n.parent=i:n.parent=i.parent,Rn(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!==Ln&&(i.left.parent=i),i.right!==Ln&&(i.right.parent=i),i.size_left=t.size_left,i.lf_left=t.lf_left,Rn(e,i)),t.detach(),n.parent.left===n){const t=xn(n),i=Sn(n);if(t!==n.parent.size_left||i!==n.parent.lf_left){const s=t-n.parent.size_left,r=i-n.parent.lf_left;n.parent.size_left=t,n.parent.lf_left=i,Bn(e,n.parent,s,r)}}if(Rn(e,n.parent),s)return void vn();let r;for(;n!==e.root&&0===n.color;)n===n.parent.left?(r=n.parent.right,1===r.color&&(r.color=0,n.parent.color=1,wn(e,n.parent),r=n.parent.right),0===r.left.color&&0===r.right.color?(r.color=1,n=n.parent):(0===r.right.color&&(r.left.color=0,r.color=1,En(e,r),r=n.parent.right),r.color=n.parent.color,n.parent.color=0,r.right.color=0,wn(e,n.parent),n=e.root)):(r=n.parent.left,1===r.color&&(r.color=0,n.parent.color=1,En(e,n.parent),r=n.parent.left),0===r.left.color&&0===r.right.color?(r.color=1,n=n.parent):(0===r.left.color&&(r.right.color=0,r.color=1,wn(e,r),r=n.parent.left),r.color=n.parent.color,n.parent.color=0,r.left.color=0,En(e,n.parent),n=e.root));n.color=0,vn()}function On(e,t){for(Rn(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&&wn(e,t=t.parent),t.parent.color=0,t.parent.parent.color=1,En(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&&En(e,t=t.parent),t.parent.color=0,t.parent.parent.color=1,wn(e,t.parent.parent))}e.root.color=0}function Bn(e,t,n,i){for(;t!==e.root&&t!==Ln;)t.parent.left===t&&(t.parent.size_left+=n,t.parent.lf_left+=i),t=t.parent}function Rn(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=xn((t=t.parent).left)-t.size_left,i=Sn(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}}Ln.parent=Ln,Ln.left=Ln,Ln.right=Ln,Ln.color=0;var Mn=n(6);const Dn=65535;function An(e){let t;return t=e[e.length-1]<65536?new Uint16Array(e.length):new Uint32Array(e.length),t.set(e,0),t}class zn{constructor(e,t,n,i,s){this.lineStarts=e,this.cr=t,this.lf=n,this.crlf=i,this.isBasicASCII=s}}function Pn(e,t=!0){const n=[0];let i=1;for(let t=0,s=e.length;t<s;t++){const r=e.charCodeAt(t);13===r?t+1<s&&10===e.charCodeAt(t+1)?(n[i++]=t+2,t++):n[i++]=t+1:10===r&&(n[i++]=t+1)}return t?An(n):n}class yn{constructor(e,t,n,i,s){this.bufferIndex=e,this.start=t,this.end=n,this.lineFeedCnt=i,this.length=s}}class Fn{constructor(e,t){this.buffer=e,this.lineStarts=t}}class Wn{constructor(e,t){this._pieces=[],this._tree=e,this._BOM=t,this._index=0,e.root!==Ln&&e.iterate(e.root,e=>(e!==Ln&&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 Vn{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 s=n[i];(null===s.node.parent||s.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 Un{constructor(e,t,n){this.create(e,t,n)}create(e,t,n){this._buffers=[new Fn("",[0])],this._lastChangeBufferPos={line:0,column:0},this.root=Ln,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=Pn(e[t].buffer));const n=new yn(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 Vn(1),this._lastVisitedLine={lineNumber:0,value:""},this.computeBufferMetadata()}normalizeEOL(e){const t=65535-Math.floor(21845),n=2*t;let i="",s=0;const r=[];if(this.iterate(this.root,o=>{const a=this.getNodeContent(o),h=a.length;if(s<=t||s+h<n)return i+=a,s+=h,!0;const l=i.replace(/\r\n|\r|\n/g,e);return r.push(new Fn(l,Pn(l))),i=a,s=h,!0}),s>0){const t=i.replace(/\r\n|\r|\n/g,e);r.push(new Fn(t,Pn(t)))}this.create(r,e,!0)}getEOL(){return this._EOL}setEOL(e){this._EOL=e,this._EOLLength=this._EOL.length,this.normalizeEOL(e)}createSnapshot(e){return new Wn(this,e)}getOffsetAt(e,t){let n=0,i=this.root;for(;i!==Ln;)if(i.left!==Ln&&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!==Ln;)if(0!==t.size_left&&t.size_left>=e)t=t.left;else{if(t.size_left+t.piece.length>=e){const s=this.getIndexOf(t,e-t.size_left);if(n+=t.lf_left+s.index,0===s.index){const e=i-this.getOffsetAt(n+1,1);return new g.y(n+1,e+1)}return new g.y(n+1,s.remainder+1)}if(e-=t.size_left+t.piece.length,n+=t.lf_left+t.piece.lineFeedCnt,t.right===Ln){const t=i-e-this.getOffsetAt(n+1,1);return new g.y(n+1,t+1)}t=t.right}return new g.y(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),s=this.getValueInRange2(n,i);return t?t===this._EOL&&this._EOLNormalized&&t===this.getEOL()&&this._EOLNormalized?s:s.replace(/\r\n|\r|\n/g,t):s}getValueInRange2(e,t){if(e.node===t.node){const n=e.node,i=this._buffers[n.piece.bufferIndex].buffer,s=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);return i.substring(s+e.remainder,s+t.remainder)}let n=e.node;const i=this._buffers[n.piece.bufferIndex].buffer,s=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);let r=i.substring(s+e.remainder,s+n.piece.length);for(n=n.next();n!==Ln;){const e=this._buffers[n.piece.bufferIndex].buffer,i=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);if(n===t.node){r+=e.substring(i,i+t.remainder);break}r+=e.substr(i,n.piece.length),n=n.next()}return r}getLinesContent(){const e=[];let t=0,n="",i=!1;return this.iterate(this.root,s=>{if(s===Ln)return!0;const r=s.piece;let o=r.length;if(0===o)return!0;const a=this._buffers[r.bufferIndex].buffer,h=this._buffers[r.bufferIndex].lineStarts,l=r.start.line,c=r.end.line;let u=h[l]+r.start.column;if(i&&(10===a.charCodeAt(u)&&(u++,o--),e[t++]=n,n="",i=!1,0===o))return!0;if(l===c)return this._EOLNormalized||13!==a.charCodeAt(u+o-1)?n+=a.substr(u,o):(i=!0,n+=a.substr(u,o-1)),!0;n+=this._EOLNormalized?a.substring(u,Math.max(u,h[l+1]-this._EOLLength)):a.substring(u,h[l+1]).replace(/(\r\n|\r|\n)$/,""),e[t++]=n;for(let i=l+1;i<c;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[c]+r.end.column-1)?n=a.substr(h[c],r.end.column):(i=!0,0===r.end.column?t--:n=a.substr(h[c],r.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,s,r,o,a,h,l,c){const u=this._buffers[e.piece.bufferIndex],d=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start),g=this.offsetInBuffer(e.piece.bufferIndex,s),_=this.offsetInBuffer(e.piece.bufferIndex,r);let p;const m={line:0,column:0};let C,k;t._wordSeparators?(C=u.buffer.substring(g,_),k=e=>e+g,t.reset(0)):(C=u.buffer,k=e=>e,t.reset(g));do{if(p=t.next(C),p){if(k(p.index)>=_)return l;this.positionInBuffer(e,k(p.index)-d,m);const t=this.getLineFeedCnt(e.piece.bufferIndex,s,m),r=m.line===s.line?m.column-s.column+i:m.column+1,o=r+p[0].length;if(c[l++]=(0,Mn.dr)(new f.Q(n+t,r,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 s=[];let r=0;const o=new Mn.W5(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 c=this.positionInBuffer(h.node,h.remainder);if(a.node===h.node)return this.findMatchesInNode(a.node,o,e.startLineNumber,e.startColumn,l,c,t,n,i,r,s),s;let u=e.startLineNumber,d=a.node;for(;d!==h.node;){const h=this.getLineFeedCnt(d.piece.bufferIndex,l,d.piece.end);if(h>=1){const a=this._buffers[d.piece.bufferIndex].lineStarts,c=this.offsetInBuffer(d.piece.bufferIndex,d.piece.start),g=a[l.line+h],f=u===e.startLineNumber?e.startColumn:1;if(r=this.findMatchesInNode(d,o,u,f,l,this.positionInBuffer(d,g-c),t,n,i,r,s),r>=i)return s;u+=h}const c=u===e.startLineNumber?e.startColumn-1:0;if(u===e.endLineNumber){const a=this.getLineContent(u).substring(c,e.endColumn-1);return r=this._findMatchesInLine(t,o,a,e.endLineNumber,c,r,s,n,i),s}if(r=this._findMatchesInLine(t,o,this.getLineContent(u).substr(c),u,c,r,s,n,i),r>=i)return s;u++,a=this.nodeAt2(u,1),d=a.node,l=this.positionInBuffer(a.node,a.remainder)}if(u===e.endLineNumber){const a=u===e.startLineNumber?e.startColumn-1:0,h=this.getLineContent(u).substring(a,e.endColumn-1);return r=this._findMatchesInLine(t,o,h,e.endLineNumber,a,r,s,n,i),s}const g=u===e.startLineNumber?e.startColumn:1;return r=this.findMatchesInNode(h.node,o,u,g,l,c,t,n,i,r,s),s}_findMatchesInLine(e,t,n,i,s,r,o,a,h){const l=e.wordSeparators;if(!a&&e.simpleSearch){const t=e.simpleSearch,a=t.length,c=n.length;let u=-a;for(;-1!==(u=n.indexOf(t,u+a));)if((!l||(0,Mn.wC)(l,n,c,u,a))&&(o[r++]=new ue.Dg(new f.Q(i,u+1+s,i,u+1+a+s),null),r>=h))return r;return r}let c;t.reset(0);do{if(c=t.next(n),c&&(o[r++]=(0,Mn.dr)(new f.Q(i,c.index+1+s,i,c.index+1+c[0].length+s),c,a),r>=h))return r}while(c);return r}insert(e,t,n=!1){if(this._EOLNormalized=this._EOLNormalized&&n,this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",this.root!==Ln){const{node:n,remainder:i,nodeStartOffset:s}=this.nodeAt(e),r=n.piece,o=r.bufferIndex,a=this.positionInBuffer(n,i);if(0===n.piece.bufferIndex&&r.end.line===this._lastChangeBufferPos.line&&r.end.column===this._lastChangeBufferPos.column&&s+r.length===e&&t.length<Dn)return this.appendToNode(n,t),void this.computeBufferMetadata();if(s===e)this.insertContentToNodeLeft(t,n),this._searchCache.validate(e);else if(s+n.piece.length>e){const e=[];let s=new yn(r.bufferIndex,a,r.end,this.getLineFeedCnt(r.bufferIndex,a,r.end),this.offsetInBuffer(o,r.end)-this.offsetInBuffer(o,a));if(this.shouldCheckCRLF()&&this.endWithCR(t)&&10===this.nodeCharCodeAt(n,i)){const e={line:s.start.line+1,column:0};s=new yn(s.bufferIndex,e,s.end,this.getLineFeedCnt(s.bufferIndex,e,s.end),s.length-1),t+="\n"}if(this.shouldCheckCRLF()&&this.startWithLF(t))if(13===this.nodeCharCodeAt(n,i-1)){const s=this.positionInBuffer(n,i-1);this.deleteNodeTail(n,s),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);s.length>0&&this.rbInsertRight(n,s);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===Ln)return;const n=this.nodeAt(e),i=this.nodeAt(e+t),s=n.node,r=i.node;if(s===r){const r=this.positionInBuffer(s,n.remainder),o=this.positionInBuffer(s,i.remainder);if(n.nodeStartOffset===e){if(t===s.piece.length){const e=s.next();return Nn(this,s),this.validateCRLFWithPrevNode(e),void this.computeBufferMetadata()}return this.deleteNodeHead(s,o),this._searchCache.validate(e),this.validateCRLFWithPrevNode(s),void this.computeBufferMetadata()}return n.nodeStartOffset+s.piece.length===e+t?(this.deleteNodeTail(s,r),this.validateCRLFWithNextNode(s),void this.computeBufferMetadata()):(this.shrinkNode(s,r,o),void this.computeBufferMetadata())}const o=[],a=this.positionInBuffer(s,n.remainder);this.deleteNodeTail(s,a),this._searchCache.validate(e),0===s.piece.length&&o.push(s);const h=this.positionInBuffer(r,i.remainder);this.deleteNodeHead(r,h),0===r.piece.length&&o.push(r);for(let e=s.next();e!==Ln&&e!==r;e=e.next())o.push(e);const l=0===s.piece.length?s.prev():s;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,s={line:i.start.line+1,column:0},r=new yn(i.bufferIndex,s,i.end,this.getLineFeedCnt(i.bufferIndex,s,i.end),i.length-1);t.piece=r,e+="\n",Bn(this,t,-1,-1),0===t.piece.length&&n.push(t)}const i=this.createNewPieces(e);let s=this.rbInsertLeft(t,i[i.length-1]);for(let e=i.length-2;e>=0;e--)s=this.rbInsertLeft(s,i[e]);this.validateCRLFWithPrevNode(s),this.deleteNodes(n)}insertContentToNodeRight(e,t){this.adjustCarriageReturnFromNext(e,t)&&(e+="\n");const n=this.createNewPieces(e),i=this.rbInsertRight(t,n[0]);let s=i;for(let e=1;e<n.length;e++)s=this.rbInsertRight(s,n[e]);this.validateCRLFWithPrevNode(i)}positionInBuffer(e,t,n){const i=e.piece,s=e.piece.bufferIndex,r=this._buffers[s].lineStarts,o=r[i.start.line]+i.start.column+t;let a=i.start.line,h=i.end.line,l=0,c=0,u=0;for(;a<=h&&(l=a+(h-a)/2|0,u=r[l],l!==h);)if(c=r[l+1],o<u)h=l-1;else{if(!(o>=c))break;a=l+1}return n?(n.line=l,n.column=o-u,null):{line:l,column:o-u}}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 s=i[n.line+1],r=i[n.line]+n.column;if(s>r+1)return n.line-t.line;const o=r-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++)Nn(this,e[t])}createNewPieces(e){if(e.length>Dn){const t=[];for(;e.length>Dn;){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,Dn),e=e.substring(Dn));const s=Pn(i);t.push(new yn(this._buffers.length,{line:0,column:0},{line:s.length-1,column:i.length-s[s.length-1]},s.length-1,i.length)),this._buffers.push(new Fn(i,s))}const n=Pn(e);return t.push(new yn(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 Fn(e,n)),t}let t=this._buffers[0].buffer.length;const n=Pn(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 s=this._buffers[0].buffer.length,r=this._buffers[0].lineStarts.length-1,o={line:r,column:s-this._buffers[0].lineStarts[r]},a=new yn(0,i,o,this.getLineFeedCnt(0,i,o),s-t);return this._lastChangeBufferPos=o,[a]}getLineRawContent(e,t=0){let n=this.root,i="";const s=this._searchCache.get2(e);if(s){n=s.node;const r=this.getAccumulatedValue(n,e-s.nodeStartLineNumber-1),o=this._buffers[n.piece.bufferIndex].buffer,a=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);if(s.nodeStartLineNumber+n.piece.lineFeedCnt!==e){const i=this.getAccumulatedValue(n,e-s.nodeStartLineNumber);return o.substring(a+r,a+i-t)}i=o.substring(a+r,a+n.piece.length)}else{let s=0;const r=e;for(;n!==Ln;)if(n.left!==Ln&&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 s+=n.size_left,this._searchCache.set({node:n,nodeStartOffset:s,nodeStartLineNumber:r-(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),s=this._buffers[n.piece.bufferIndex].buffer,r=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);i=s.substring(r+t,r+n.piece.length);break}e-=n.lf_left+n.piece.lineFeedCnt,s+=n.size_left+n.piece.length,n=n.right}}for(n=n.next();n!==Ln;){const e=this._buffers[n.piece.bufferIndex].buffer;if(n.piece.lineFeedCnt>0){const s=this.getAccumulatedValue(n,0),r=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);return i+=e.substring(r,r+s-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!==Ln;)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),s=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!==s)return{index:t,remainder:0}}return{index:s,remainder:i.column}}getAccumulatedValue(e,t){if(t<0)return 0;const n=e.piece,i=this._buffers[n.bufferIndex].lineStarts,s=n.start.line+t+1;return s>n.end.line?i[n.end.line]+n.end.column-i[n.start.line]-n.start.column:i[s]-i[n.start.line]-n.start.column}deleteNodeTail(e,t){const n=e.piece,i=n.lineFeedCnt,s=this.offsetInBuffer(n.bufferIndex,n.end),r=t,o=this.offsetInBuffer(n.bufferIndex,r),a=this.getLineFeedCnt(n.bufferIndex,n.start,r),h=a-i,l=o-s,c=n.length+l;e.piece=new yn(n.bufferIndex,n.start,r,a,c),Bn(this,e,l,h)}deleteNodeHead(e,t){const n=e.piece,i=n.lineFeedCnt,s=this.offsetInBuffer(n.bufferIndex,n.start),r=t,o=this.getLineFeedCnt(n.bufferIndex,r,n.end),a=o-i,h=s-this.offsetInBuffer(n.bufferIndex,r),l=n.length+h;e.piece=new yn(n.bufferIndex,r,n.end,o,l),Bn(this,e,h,a)}shrinkNode(e,t,n){const i=e.piece,s=i.start,r=i.end,o=i.length,a=i.lineFeedCnt,h=t,l=this.getLineFeedCnt(i.bufferIndex,i.start,h),c=this.offsetInBuffer(i.bufferIndex,t)-this.offsetInBuffer(i.bufferIndex,s);e.piece=new yn(i.bufferIndex,i.start,h,l,c),Bn(this,e,c-o,l-a);const u=new yn(i.bufferIndex,n,r,this.getLineFeedCnt(i.bufferIndex,n,r),this.offsetInBuffer(i.bufferIndex,r)-this.offsetInBuffer(i.bufferIndex,n)),d=this.rbInsertRight(e,u);this.validateCRLFWithPrevNode(d)}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 s=Pn(t,!1);for(let e=0;e<s.length;e++)s[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(s.slice(1));const r=this._buffers[0].lineStarts.length-1,o={line:r,column:this._buffers[0].buffer.length-this._buffers[0].lineStarts[r]},a=e.piece.length+t.length,h=e.piece.lineFeedCnt,l=this.getLineFeedCnt(0,e.piece.start,o),c=l-h;e.piece=new yn(e.piece.bufferIndex,e.piece.start,o,l,a),this._lastChangeBufferPos=o,Bn(this,e,t.length,c)}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!==Ln;)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!==Ln;)if(n.left!==Ln&&n.lf_left>=e-1)n=n.left;else{if(n.lf_left+n.piece.lineFeedCnt>e-1){const s=this.getAccumulatedValue(n,e-n.lf_left-2),r=this.getAccumulatedValue(n,e-n.lf_left-1);return i+=n.size_left,{node:n,remainder:Math.min(s+t-1,r),nodeStartOffset:i}}if(n.lf_left+n.piece.lineFeedCnt===e-1){const s=this.getAccumulatedValue(n,e-n.lf_left-2);if(s+t-1<=n.piece.length)return{node:n,remainder:s+t-1,nodeStartOffset:i};t-=n.piece.length-s;break}e-=n.lf_left+n.piece.lineFeedCnt,i+=n.size_left+n.piece.length,n=n.right}for(n=n.next();n!==Ln;){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===Ln||0===e.piece.lineFeedCnt)return!1;const t=e.piece,n=this._buffers[t.bufferIndex].lineStarts,i=t.start.line,s=n[i]+t.start.column;return i!==n.length-1&&(!(n[i+1]>s+1)&&10===this._buffers[t.bufferIndex].buffer.charCodeAt(s))}endWithCR(e){return"string"==typeof e?13===e.charCodeAt(e.length-1):e!==Ln&&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 s;s=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 r=e.piece.length-1,o=e.piece.lineFeedCnt-1;e.piece=new yn(e.piece.bufferIndex,e.piece.start,s,o,r),Bn(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 yn(t.piece.bufferIndex,a,t.piece.end,l,h),Bn(this,t,-1,-1),0===t.piece.length&&n.push(t);const c=this.createNewPieces("\r\n");this.rbInsertRight(e,c[0]);for(let e=0;e<n.length;e++)Nn(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)Nn(this,n);else{const e=n.piece,t={line:e.start.line+1,column:0},i=e.length-1,s=this.getLineFeedCnt(e.bufferIndex,t,e.end);n.piece=new yn(e.bufferIndex,t,e.end,s,i),Bn(this,n,-1,-1)}return!0}}return!1}iterate(e,t){if(e===Ln)return t(Ln);const n=this.iterate(e.left,t);return n?t(e)&&this.iterate(e.right,t):n}getNodeContent(e){if(e===Ln)return"";const t=this._buffers[e.piece.bufferIndex],n=e.piece,i=this.offsetInBuffer(n.bufferIndex,n.start),s=this.offsetInBuffer(n.bufferIndex,n.end);return t.buffer.substring(i,s)}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 bn(t,1);if(n.left=Ln,n.right=Ln,n.parent=Ln,n.size_left=0,n.lf_left=0,this.root===Ln)this.root=n,n.color=0;else if(e.right===Ln)e.right=n,n.parent=e;else{const t=In(e.right);t.left=n,n.parent=t}return On(this,n),n}rbInsertLeft(e,t){const n=new bn(t,1);if(n.left=Ln,n.right=Ln,n.parent=Ln,n.size_left=0,n.lf_left=0,this.root===Ln)this.root=n,n.color=0;else if(e.left===Ln)e.left=n,n.parent=e;else{const t=Tn(e.left);t.right=n,n.parent=t}return On(this,n),n}}class jn extends s.jG{constructor(e,t,n,s,r,o,a){super(),this._onDidChangeContent=this._register(new i.vl),this._BOM=t,this._mightContainNonBasicASCII=!o,this._mightContainRTL=s,this._mightContainUnusualLineTerminators=r,this._pieceTree=new Un(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),s=this.getPositionAt(n);return new f.Q(i.lineNumber,i.column,s.lineNumber,s.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 s=0;const r=this._getEndOfLine(t),o=this.getEOL();return r.length!==o.length&&(s=(r.length-o.length)*(e.endLineNumber-e.startLineNumber)),i-n+s}getCharacterCountInRange(e,t=0){if(this._mightContainNonBasicASCII){let n=0;const i=e.startLineNumber,s=e.endLineNumber;for(let t=i;t<=s;t++){const r=this.getLineContent(t),o=t===i?e.startColumn-1:0,a=t===s?e.endColumn-1:r.length;for(let e=o;e<a;e++)l.pc(r.charCodeAt(e))?(n+=1,e+=1):n+=1}return n+=this._getEndOfLine(t).length*(s-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=l.HG(this.getLineContent(e));return-1===t?0:t+1}getLineLastNonWhitespaceColumn(e){const t=l.lT(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,s=this._mightContainUnusualLineTerminators,r=this._mightContainNonBasicASCII,o=!0,a=[];for(let t=0;t<e.length;t++){const n=e[t];o&&n._isTracked&&(o=!1);const h=n.range;if(n.text){let e=!0;r||(e=!l.aC(n.text),r=e),!i&&e&&(i=l.E_(n.text)),!s&&e&&(s=l.$X(n.text))}let c="",d=0,g=0,f=0;if(n.text){let e;[d,g,f,e]=(0,u.W)(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:h,rangeOffset:this.getOffsetAt(h.startLineNumber,h.startColumn),rangeLength:this.getValueLengthInRange(h),text:c,eolCount:d,firstLineLength:g,lastLineLength:f,forceMoveMarkers:Boolean(n.forceMoveMarkers),isAutoWhitespaceEdit:n.isAutoWhitespaceEdit||!1}}a.sort(jn._sortOpsAscending);let h=!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!");h=!0}}o&&(a=this._reduceOperations(a));const c=n||t?jn._getInverseEditRanges(a):[],d=[];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!==l.HG(i))||d.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],s=this.getValueInRange(n.range),r=n.rangeOffset+e;e+=n.text.length-s.length,g[t]={sortIndex:n.sortIndex,identifier:n.identifier,range:i,text:s,textChange:new Nt(n.rangeOffset,s,r,n.text)}}h||g.sort((e,t)=>e.sortIndex-t.sortIndex)}this._mightContainRTL=i,this._mightContainUnusualLineTerminators=s,this._mightContainNonBasicASCII=r;const f=this._doApplyEdits(a);let _=null;if(t&&d.length>0){d.sort((e,t)=>t.lineNumber-e.lineNumber),_=[];for(let e=0,t=d.length;e<t;e++){const t=d[e].lineNumber;if(e>0&&d[e-1].lineNumber===t)continue;const n=d[e].oldContent,i=this.getLineContent(t);0!==i.length&&i!==n&&-1===l.HG(i)&&_.push(t)}}return this._onDidChangeContent.fire(),new ue.F4(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,s=new f.Q(n.startLineNumber,n.startColumn,i.endLineNumber,i.endColumn);let r=n.startLineNumber,o=n.startColumn;const a=[];for(let n=0,i=e.length;n<i;n++){const i=e[n],s=i.range;t=t||i.forceMoveMarkers,a.push(this.getValueInRange(new f.Q(r,o,s.startLineNumber,s.startColumn))),i.text.length>0&&a.push(i.text),r=s.endLineNumber,o=s.endColumn}const h=a.join(""),[l,c,d]=(0,u.W)(h);return{sortIndex:0,identifier:e[0].identifier,range:s,rangeOffset:this.getOffsetAt(s.startLineNumber,s.startColumn),rangeLength:this.getValueLengthInRange(s,0),text:h,eolCount:l,firstLineLength:c,lastLineLength:d,forceMoveMarkers:t,isAutoWhitespaceEdit:!1}}_doApplyEdits(e){e.sort(jn._sortOpsDescending);const t=[];for(let n=0;n<e.length;n++){const i=e[n],s=i.range.startLineNumber,r=i.range.startColumn,o=i.range.endLineNumber,a=i.range.endColumn;if(s===o&&r===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 f.Q(s,r,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,s=null;for(let r=0,o=e.length;r<o;r++){const o=e[r];let a,h,l;if(s?s.range.endLineNumber===o.range.startLineNumber?(a=n,h=i+(o.range.startColumn-s.range.endColumn)):(a=n+(o.range.startLineNumber-s.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 f.Q(a,h,a,h+o.firstLineLength):new f.Q(a,h,a+e-1,o.lastLineLength+1)}else l=new f.Q(a,h,a,h);n=l.endLineNumber,i=l.endColumn,t.push(l),s=o}return t}static _sortOpsAscending(e,t){const n=f.Q.compareRangesUsingEnds(e.range,t.range);return 0===n?e.sortIndex-t.sortIndex:n}static _sortOpsDescending(e,t){const n=f.Q.compareRangesUsingEnds(e.range,t.range);return 0===n?t.sortIndex-e.sortIndex:-n}}class Hn{constructor(e,t,n,i,s,r,o,a,h){this._chunks=e,this._bom=t,this._cr=n,this._lf=i,this._crlf=s,this._containsRTL=r,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),s=Pn(i);n[e]=new Fn(i,s)}const i=new jn(n,this._bom,t,this._containsRTL,this._containsUnusualLineTerminators,this._isBasicASCII,this._normalizeEOL);return{textBuffer:i,disposable:i}}}class Gn{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&&l.LU(e)&&(this.BOM=l.r_,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,s=0,r=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)?(r++,e[n++]=a+2,a++):(i++,e[n++]=a+1):10===l?(s++,e[n++]=a+1):o&&9!==l&&(l<32||l>126)&&(o=!1)}const a=new zn(An(e),i,s,r,o);return e.length=0,a}(this._tmpLineStarts,e);this.chunks.push(new Fn(e,t.lineStarts)),this.cr+=t.cr,this.lf+=t.lf,this.crlf+=t.crlf,t.isBasicASCII||(this.isBasicASCII=!1,this.containsRTL||(this.containsRTL=l.E_(e)),this.containsUnusualLineTerminators||(this.containsUnusualLineTerminators=l.$X(e)))}finish(e=!0){return this._finish(),new Hn(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=Pn(e.buffer);e.lineStarts=t,13===this._previousChar&&this.cr++}}}var qn=n(9874),Qn=n(3641),$n=n(7911),Kn=n(1726),Xn=n(1729);const Yn=new class{clone(){return this}equals(e){return this===e}};class Zn{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),s=this._store.slice(e+t),r=function(e,t){const n=[];for(let i=0;i<e;i++)n[i]=t;return n}(n,this._default);this._store=i.concat(r,s)}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,o.nK)(this._store,e,n)}}class Jn{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 ei{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 Jn(e,[t]))}finalize(){return this._tokens}}class ti{static{this.defaultTokenMetadata=33587200}static createEmpty(e,t){const n=ti.defaultTokenMetadata,i=new Uint32Array(2);return i[0]=e.length,i[1]=n,new ti(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 ti(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 ti&&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,s=i+(n<<1);for(let t=i;t<s;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=Ke.x.getLanguageId(t);return this.languageIdCodec.decodeLanguageId(n)}getStandardTokenType(e){const t=this._tokens[1+(e<<1)];return Ke.x.getTokenType(t)}getForeground(e){const t=this._tokens[1+(e<<1)];return Ke.x.getForeground(t)}getClassName(e){const t=this._tokens[1+(e<<1)];return Ke.x.getClassNameFromMetadata(t)}getInlineStyle(e,t){const n=this._tokens[1+(e<<1)];return Ke.x.getInlineStyleFromMetadata(n,t)}getPresentation(e){const t=this._tokens[1+(e<<1)];return Ke.x.getPresentationFromMetadata(t)}getEndOffset(e){return this._tokens[e<<1]}findTokenIndexAtOffset(e){return ti.findIndexInTokensArray(this._tokens,e)}inflate(){return this}sliceAndInflate(e,t,n){return new ni(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 s=n+Math.floor((i-n)/2),r=e[s<<1];if(r===t)return s+1;r<t?n=s+1:r>t&&(i=s)}return n}withInserted(e){if(0===e.length)return this;let t=0,n=0,i="";const s=new Array;let r=0;for(;;){const o=t<this._tokensCount?this._tokens[t<<1]:-1,a=n<e.length?e[n]:null;if(-1!==o&&(null===a||o<=a.offset)){i+=this._text.substring(r,o);const e=this._tokens[1+(t<<1)];s.push(i.length,e),t++,r=o}else{if(!a)break;if(a.offset>r){i+=this._text.substring(r,a.offset);const e=this._tokens[1+(t<<1)];s.push(i.length,e),r=a.offset}i+=a.text,s.push(i.length,a.tokenMetadata),n++}}return new ti(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 ni{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 ni&&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 s=this._source.getTokenText(t);return n<this._startOffset&&(s=s.substring(this._startOffset-n)),i>this._endOffset&&(s=s.substring(0,s.length-(i-this._endOffset))),s}forEach(e){for(let t=0;t<this.getCount();t++)e(t)}}class ii{constructor(e,t){this.tokenizationSupport=t,this.initialState=this.tokenizationSupport.getInitialState(),this.store=new ri(e)}getStartState(e){return this.store.getStartState(e,this.initialState)}getFirstInvalidLine(){return this.store.getFirstInvalidLine(this.initialState)}}class si extends ii{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 s=this._textModel.getLineContent(i.lineNumber),r=hi(this._languageIdCodec,n,this.tokenizationSupport,s,!0,i.startState);e.add(i.lineNumber,r.tokens),this.store.setEndState(i.lineNumber,r.endState)}}getTokenTypeIfInsertingCharacter(e,t){const n=this.getStartState(e.lineNumber);if(!n)return 0;const i=this._textModel.getLanguageId(),s=this._textModel.getLineContent(e.lineNumber),r=s.substring(0,e.column-1)+t+s.substring(e.column-1),o=hi(this._languageIdCodec,i,this.tokenizationSupport,r,!0,n),a=new ti(o.tokens,r,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,s=e.column,r=this.getStartState(i);if(!r)return null;const o=this._textModel.getLineContent(i),a=o.substring(0,s-1)+n+o.substring(s-1+t),h=this._textModel.getLanguageIdAtPosition(i,0),l=hi(this._languageIdCodec,h,this.tokenizationSupport,a,!0,r);return new ti(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 s=this._textModel.getLanguageId();for(let r=t;r<=n;r++){const t=this._textModel.getLineContent(r),n=hi(this._languageIdCodec,s,this.tokenizationSupport,t,!0,i);e.add(r,n.tokens),i=n.endState}return{heuristicTokens:!0}}guessStartState(e){let t=this._textModel.getLineFirstNonWhitespaceColumn(e);const n=[];let i=null;for(let s=e-1;t>1&&s>=1;s--){const e=this._textModel.getLineFirstNonWhitespaceColumn(s);if(0!==e&&e<t&&(n.push(this._textModel.getLineContent(s)),t=e,i=this.getStartState(s),i))break}i||(i=this.tokenizationSupport.getInitialState()),n.reverse();const s=this._textModel.getLanguageId();let r=i;for(const e of n)r=hi(this._languageIdCodec,s,this.tokenizationSupport,e,!1,r).endState;return r}}class ri{constructor(e){this.lineCount=e,this._tokenizationStateStore=new oi,this._invalidEndStatesLineNumbers=new ai,this._invalidEndStatesLineNumbers.addRange(new Xn.L(1,e+1))}getEndState(e){return this._tokenizationStateStore.getEndState(e)}setEndState(e,t){if(!t)throw new h.D7("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 Xn.L(e+1,e+2)),n}acceptChange(e,t){this.lineCount+=t-e.length,this._tokenizationStateStore.acceptChange(e,t),this._invalidEndStatesLineNumbers.addRangeAndResize(new Xn.L(e.startLineNumber,e.endLineNumberExclusive),t)}acceptChanges(e){for(const t of e){const[e]=(0,u.W)(t.text);this.acceptChange(new qn.M(t.range.startLineNumber,t.range.endLineNumber+1),e+1)}}invalidateEndStateRange(e){this._invalidEndStatesLineNumbers.addRange(new Xn.L(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 h.D7("Start state must be defined");return{lineNumber:t,startState:n}}}class oi{constructor(){this._lineEndStates=new Zn(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 ai{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 Xn.L(e+1,n.endExclusive):n.endExclusive===e+1?this._ranges[t]=new Xn.L(n.start,e):this._ranges.splice(t,1,new Xn.L(n.start,e),new Xn.L(e+1,n.endExclusive))}}addRange(e){Xn.L.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 s=t-e.length;for(let e=i;e<this._ranges.length;e++)this._ranges[e]=this._ranges[e].delta(s);if(n===i){const i=new Xn.L(e.start,e.start+t);i.isEmpty||this._ranges.splice(n,0,i)}else{const t=Math.min(e.start,this._ranges[n].start),r=Math.max(e.endExclusive,this._ranges[i-1].endExclusive),o=new Xn.L(t,r+s);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 hi(e,t,n,i,s,r){let o=null;if(n)try{o=n.tokenizeEncoded(i,s,r.clone())}catch(e){(0,h.dz)(e)}return o||(o=function(e,t){const n=new Uint32Array(2);return n[0]=0,n[1]=(32768|e|2<<24)>>>0,new Qn.rY(n,null===t?Yn:t)}(e.encodeLanguageId(t),r)),ti.convertToEndOffset(o.tokens,i.length),o}class li{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,$n.$6)(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,r._p)(n):this._beginBackgroundTokenization())};n()}_backgroundTokenizeForAtLeast1ms(){const e=this._tokenizerWithStateStore._textModel.getLineCount(),t=new ei,n=Kn.W.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 qn.M(e,t))}}class ci{constructor(){this._onDidChangeVisibleRanges=new i.vl,this.onDidChangeVisibleRanges=this._onDidChangeVisibleRanges.event,this._views=new Set}attachView(){const e=new ui(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 ui{constructor(e){this.handleStateChange=e}setVisibleLines(e,t){const n=e.map(e=>new qn.M(e.startLineNumber,e.endLineNumber+1));this.handleStateChange({visibleLineRanges:n,stabilized:t})}}class di extends s.jG{get lineRanges(){return this._lineRanges}constructor(e){super(),this._refreshTokens=e,this.runner=this._register(new $n.uC(()=>this.update(),50)),this._computedLineRanges=[],this._lineRanges=[]}update(){(0,o.aI)(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 gi extends s.jG{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 i.vl),this.onDidChangeBackgroundTokenizationState=this._onDidChangeBackgroundTokenizationState.event,this._onDidChangeTokens=this._register(new i.vl),this.onDidChangeTokens=this._onDidChangeTokens.event}tokenizeIfCheap(e){this.isCheapToTokenize(e)&&this.forceTokenization(e)}}class fi extends gi{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=Qn.OB.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 ti(n,t,this._languageIdCodec)}return ti.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 _i=n(2513);const pi=new Uint32Array(0).buffer;class mi{static deleteBeginning(e,t){return null===e||e===pi?e:mi.delete(e,0,t)}static deleteEnding(e,t){if(null===e||e===pi)return e;const n=Ci(e),i=n[n.length-2];return mi.delete(e,t,i)}static delete(e,t,n){if(null===e||e===pi||t===n)return e;const i=Ci(e),s=i.length>>>1;if(0===t&&i[i.length-2]===n)return pi;const r=ti.findIndexInTokensArray(i,t),o=r>0?i[r-1<<1]:0;if(n<i[r<<1]){const o=n-t;for(let e=r;e<s;e++)i[e<<1]-=o;return e}let a,h;o!==t?(i[r<<1]=t,a=r+1<<1,h=t):(a=r<<1,h=o);const l=n-t;for(let e=r+1;e<s;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 c=new Uint32Array(a);return c.set(i.subarray(0,a),0),c.buffer}static append(e,t){if(t===pi)return e;if(e===pi)return t;if(null===e)return e;if(null===t)return null;const n=Ci(e),i=Ci(t),s=i.length>>>1,r=new Uint32Array(n.length+i.length);r.set(n,0);let o=n.length;const a=n[n.length-2];for(let e=0;e<s;e++)r[o++]=i[e<<1]+a,r[o++]=i[1+(e<<1)];return r.buffer}static insert(e,t,n){if(null===e||e===pi)return e;const i=Ci(e),s=i.length>>>1;let r=ti.findIndexInTokensArray(i,t);r>0&&i[r-1<<1]===t&&r--;for(let e=r;e<s;e++)i[e<<1]+=n;return e}}function Ci(e){return e instanceof Uint32Array?e:new Uint32Array(e)}class ki{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!==pi)return new ti(Ci(i),n,this._languageIdCodec);const s=new Uint32Array(2);return s[0]=n.length,s[1]=bi(this._languageIdCodec.encodeLanguageId(e)),new ti(s,n,this._languageIdCodec)}static _massageTokens(e,t,n){const i=n?Ci(n):null;if(0===t){let t=!1;if(i&&i.length>1&&(t=Ke.x.getLanguageId(i[1])!==e),!t)return pi}if(!i||0===i.length){const n=new Uint32Array(2);return n[0]=t,n[1]=bi(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=o.nK(this._lineTokens,e,n),this._len+=t}setTokens(e,t,n,i,s){const r=ki._massageTokens(this._languageIdCodec.encodeLanguageId(e),n,i);this._ensureLine(t);const o=this._lineTokens[t];return this._lineTokens[t]=r,!!s&&!ki._equals(o,r)}static _equals(e,t){if(!e||!t)return!e&&!t;const n=Ci(e),i=Ci(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 g.y(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]=mi.delete(this._lineTokens[t],e.startColumn-1,e.endColumn-1))}this._lineTokens[t]=mi.deleteEnding(this._lineTokens[t],e.startColumn-1);const n=e.endLineNumber-1;let i=null;n<this._len&&(i=mi.deleteBeginning(this._lineTokens[n],e.endColumn-1)),this._lineTokens[t]=mi.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]=mi.deleteEnding(this._lineTokens[i],e.column-1),this._lineTokens[i]=mi.insert(this._lineTokens[i],e.column-1,n),this._insertLines(e.lineNumber,t)):this._lineTokens[i]=mi.insert(this._lineTokens[i],e.column-1,n))}setMultilineTokens(e,t){if(0===e.length)return{changes:[]};const n=[];for(let i=0,s=e.length;i<s;i++){const s=e[i];let r=0,o=0,a=!1;for(let e=s.startLineNumber;e<=s.endLineNumber;e++)a?(this.setTokens(t.getLanguageId(),e-1,t.getLineLength(e),s.getLineTokens(e),!1),o=e):this.setTokens(t.getLanguageId(),e-1,t.getLineLength(e),s.getLineTokens(e),!0)&&(a=!0,r=e,o=e);a&&n.push({fromLineNumber:r,toLineNumber:o})}return{changes:n}}}function bi(e){return(32768|e|2<<24|1024)>>>0}class Li{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(),s=t[t.length-1].getRange();if(!i||!s)return e;n=e.plusRange(i).plusRange(s)}let i=null;for(let e=0,t=this._pieces.length;e<t;e++){const s=this._pieces[e];if(s.endLineNumber<n.startLineNumber)continue;if(s.startLineNumber>n.endLineNumber){i=i||{index:e};break}if(s.removeTokens(n),s.isEmpty()){this._pieces.splice(e,1),e--,t--;continue}if(s.endLineNumber<n.startLineNumber)continue;if(s.startLineNumber>n.endLineNumber){i=i||{index:e};continue}const[r,o]=s.split(n);r.isEmpty()?i=i||{index:e}:o.isEmpty()||(this._pieces.splice(e,1,r,o),e++,t++,i=i||{index:e})}return i=i||{index:this._pieces.length},t.length>0&&(this._pieces=o.nK(this._pieces,i.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[Li._findFirstPieceWithLine(n,e)].getLineTokens(e);if(!i)return t;const s=t.getCount(),r=i.getCount();let o=0;const a=[];let h=0,l=0;const c=(e,t)=>{e!==l&&(l=e,a[h++]=e,a[h++]=t)};for(let e=0;e<r;e++){const n=i.getStartCharacter(e),r=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<s&&t.getEndOffset(o)<=n;)c(t.getEndOffset(o),t.getMetadata(o)),o++;for(o<s&&t.getStartOffset(o)<n&&c(n,t.getMetadata(o));o<s&&t.getEndOffset(o)<r;)c(t.getEndOffset(o),t.getMetadata(o)&l|a&h),o++;if(o<s)c(r,t.getMetadata(o)&l|a&h),t.getEndOffset(o)===r&&o++;else{const e=Math.min(Math.max(0,o-1),s-1);c(r,t.getMetadata(e)&l|a&h)}}for(;o<s;)c(t.getEndOffset(o),t.getMetadata(o)),o++;return new ti(new Uint32Array(a),t.getLineContent(),this._languageIdCodec)}static _findFirstPieceWithLine(e,t){let n=0,i=e.length-1;for(;n<i;){let s=n+Math.floor((i-n)/2);if(e[s].endLineNumber<t)n=s+1;else{if(!(e[s].startLineNumber>t)){for(;s>n&&e[s-1].startLineNumber<=t&&t<=e[s-1].endLineNumber;)s--;return s}i=s-1}}return n}acceptEdit(e,t,n,i,s){for(const r of this._pieces)r.acceptEdit(e,t,n,i,s)}}var Ii,Ti=function(e,t){return function(n,i){t(n,i,e)}};let xi=Ii=class extends Vt{constructor(e,t,n,r,o,a,h){super(),this._textModel=e,this._bracketPairsTextModelPart=t,this._languageId=n,this._attachedViews=r,this._languageService=o,this._languageConfigurationService=a,this._treeSitterService=h,this._semanticTokens=new Li(this._languageService.languageIdCodec),this._onDidChangeLanguage=this._register(new i.vl),this.onDidChangeLanguage=this._onDidChangeLanguage.event,this._onDidChangeLanguageConfiguration=this._register(new i.vl),this.onDidChangeLanguageConfiguration=this._onDidChangeLanguageConfiguration.event,this._onDidChangeTokens=this._register(new i.vl),this.onDidChangeTokens=this._onDidChangeTokens.event,this._tokensDisposables=this._register(new s.Cm),this._register(this._languageConfigurationService.onDidChange(e=>{e.affects(this._languageId)&&this._onDidChangeLanguageConfiguration.fire({})})),this._register(i.Jh.filter(Qn.OB.onDidChange,e=>e.changedLanguages.includes(this._languageId))(()=>{this.createPreferredTokenProvider()})),this.createPreferredTokenProvider()}createGrammarTokens(){return this._register(new Si(this._languageService.languageIdCodec,this._textModel,()=>this._languageId,this._attachedViews))}createTreeSitterTokens(){return this._register(new fi(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(){Qn.OB.get(this._languageId)?this._tokens instanceof fi||this.createTokens(!0):this._tokens instanceof Si||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,u.W)(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 h.D7("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),s=i.findTokenIndexAtOffset(t.column-1),[r,o]=Ii._findLanguageBoundaries(i,s),a=(0,k.Th)(t.column,this.getLanguageConfiguration(i.getLanguageId(s)).getWordDefinition(),n.substring(r,o),r);if(a&&a.startColumn<=e.column&&e.column<=a.endColumn)return a;if(s>0&&r===t.column-1){const[r,o]=Ii._findLanguageBoundaries(i,s-1),a=(0,k.Th)(t.column,this.getLanguageConfiguration(i.getLanguageId(s-1)).getWordDefinition(),n.substring(r,o),r);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 s=t;s>=0&&e.getLanguageId(s)===n;s--)i=e.getStartOffset(s);let s=e.getLineContent().length;for(let i=t,r=e.getCount();i<r&&e.getLanguageId(i)===n;i++)s=e.getEndOffset(i);return[i,s]}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 g.y(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({})}};xi=Ii=function(e,t,n,i){var s,r=arguments.length,o=r<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--)(s=e[a])&&(o=(r<3?s(o):r>3?s(t,n,o):s(t,n))||o);return r>3&&o&&Object.defineProperty(t,n,o),o}([Ti(4,C.L),Ti(5,te),Ti(6,_i.ITreeSitterParserService)],xi);class Si extends gi{constructor(e,t,n,i){super(e,t,n),this._tokenizer=null,this._defaultBackgroundTokenizer=null,this._backgroundTokenizer=this._register(new s.HE),this._tokens=new ki(this._languageIdCodec),this._debugBackgroundTokenizer=this._register(new s.HE),this._attachedViewStates=this._register(new s.$w),this._register(Qn.dG.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 di(()=>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 ri(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=Qn.dG.get(this.getLanguageId());if(!e)return[null,null];let t;try{t=e.getInitialState()}catch(e){return(0,h.dz)(e),[null,null]}return[e,t]})();if(this._tokenizer=t&&n?new si(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 li(this._tokenizer,e),this._defaultBackgroundTokenizer.handleChanges()),t?.backgroundTokenizerShouldOnlyVerifyTokens&&t.createBackgroundTokenizer?(this._debugBackgroundTokens=new ki(this._languageIdCodec),this._debugBackgroundStates=new ri(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,u.W)(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=qn.M.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 ei,{heuristicTokens:i}=this._tokenizer.tokenizeHeuristically(n,e,t),s=this.setTokens(n.finalize());if(i)for(const e of s.changes)this._backgroundTokenizer.value?.requestTokens(e.fromLineNumber,e.toLineNumber+1);this._defaultBackgroundTokenizer?.checkFinished()}forceTokenization(e){const t=new ei;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 g.y(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}}class vi{constructor(){this.changeType=1}}class wi{static applyInjectedText(e,t){if(!t||0===t.length)return e;let n="",i=0;for(const s of t)n+=e.substring(i,s.column-1),i=s.column-1,n+=s.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 wi(n.ownerId,n.range.startLineNumber,n.range.startColumn,n.options.before,0)),n.options.after&&n.options.after.content.length>0&&t.push(new wi(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,s){this.ownerId=e,this.lineNumber=t,this.column=n,this.options=i,this.order=s}}class Ei{constructor(e,t,n){this.changeType=2,this.lineNumber=e,this.detail=t,this.injectedText=n}}class Ni{constructor(e,t){this.changeType=3,this.fromLineNumber=e,this.toLineNumber=t}}class Oi{constructor(e,t,n,i){this.changeType=4,this.injectedTexts=i,this.fromLineNumber=e,this.toLineNumber=t,this.detail=n}}class Bi{constructor(){this.changeType=5}}class Ri{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,s=e.isUndoing||t.isUndoing,r=e.isRedoing||t.isRedoing;return new Ri(n,i,s,r)}}class Mi{constructor(e){this.changes=e}}class Di{constructor(e,t){this.rawContentChangedEvent=e,this.contentChangedEvent=t}merge(e){const t=Ri.merge(this.rawContentChangedEvent,e.rawContentChangedEvent),n=Di._mergeChangeEvents(this.contentChangedEvent,e.contentChangedEvent);return new Di(t,n)}static _mergeChangeEvents(e,t){const n=[].concat(e.changes).concat(t.changes),i=t.eol,s=t.versionId,r=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:s,isUndoing:r,isRedoing:o,isFlush:a}}}const Ai=(0,j.u1)("undoRedoService");class zi{static{this._ID=0}constructor(){this.id=zi._ID++,this.order=1}nextOrder(){return 0===this.id?0:this.order++}static{this.None=new zi}}class Pi{static{this._ID=0}constructor(){this.id=Pi._ID++,this.order=1}nextOrder(){return 0===this.id?0:this.order++}static{this.None=new Pi}}var yi,Fi=function(e,t){return function(n,i){t(n,i,e)}};function Wi(e,t){let n;return n="string"==typeof e?function(e){const t=new Gn;return t.acceptChunk(e),t.finish()}(e):ue.nk(e)?function(e){const t=new Gn;let n;for(;"string"==typeof(n=e.read());)t.acceptChunk(n);return t.finish()}(e):e,n.create(t)}let Vi=0;class Ui{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 ji=()=>{throw new Error("Invalid change accessor")};let Hi=class extends s.jG{static{yi=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:p.tabSize,indentSize:p.indentSize,insertSpaces:p.insertSpaces,detectIndentation:!1,defaultEOL:1,trimAutoWhitespace:p.trimAutoWhitespace,largeFileOptimizations:p.largeFileOptimizations,bracketPairColorizationOptions:p.bracketPairColorizationOptions}}static resolveOptions(e,t){if(t.detectIndentation){const n=$t(e,t.tabSize,t.insertSpaces);return new ue.X2({tabSize:n.tabSize,indentSize:"tabSize",insertSpaces:n.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL,bracketPairColorizationOptions:t.bracketPairColorizationOptions})}return new ue.X2(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,s.qE)(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,r=null,o,a,h,u){super(),this._undoRedoService=o,this._languageService=a,this._languageConfigurationService=h,this.instantiationService=u,this._onWillDispose=this._register(new i.vl),this.onWillDispose=this._onWillDispose.event,this._onDidChangeDecorations=this._register(new is(e=>this.handleBeforeFireDecorationsChangedEvent(e))),this.onDidChangeDecorations=this._onDidChangeDecorations.event,this._onDidChangeOptions=this._register(new i.vl),this.onDidChangeOptions=this._onDidChangeOptions.event,this._onDidChangeAttached=this._register(new i.vl),this.onDidChangeAttached=this._onDidChangeAttached.event,this._onDidChangeInjectedText=this._register(new i.vl),this._eventEmitter=this._register(new ss),this._languageSelectionListener=this._register(new s.HE),this._deltaDecorationCallCnt=0,this._attachedViews=new ci,Vi++,this.id="$model"+Vi,this.isForSimpleWidget=n.isForSimpleWidget,this._associatedResource=null==r?c.r.parse("inmemory://model/"+Vi):r,this._attachedEditorCount=0;const{textBuffer:d,disposable:g}=Wi(e,n.defaultEOL);this._buffer=d,this._bufferDisposable=g,this._options=yi.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 kt(this,this._languageConfigurationService)),this._guidesTextModelPart=this._register(new Ht(this,this._languageConfigurationService)),this._decorationProvider=this._register(new St(this)),this._tokenizationTextModelPart=this.instantiationService.createInstance(xi,this,this._bracketPairs,_,this._attachedViews);const p=this._buffer.getLineCount(),m=this._buffer.getValueLengthInRange(new f.Q(1,1,p,this._buffer.getLineLength(p)+1),0);n.largeFileOptimizations?(this._isTooLargeForTokenization=m>yi.LARGE_FILE_SIZE_THRESHOLD||p>yi.LARGE_FILE_LINE_COUNT_THRESHOLD,this._isTooLargeForHeapOperation=m>yi.LARGE_FILE_HEAP_OPERATION_THRESHOLD):(this._isTooLargeForTokenization=!1,this._isTooLargeForHeapOperation=!1),this._isTooLargeForSyncing=m>yi._MODEL_SYNC_LIMIT,this._versionId=1,this._alternativeVersionId=1,this._initialUndoRedoSnapshot=null,this._isDisposed=!1,this.__isDisposing=!1,this._instanceId=l.tk(Vi),this._lastDecorationId=0,this._decorations=Object.create(null),this._decorationsTree=new Qi,this._commandManager=new yt(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 jn([],"","\n",!1,!1,!0,!0);e.dispose(),this._buffer=e,this._bufferDisposable=s.jG.None}_assertNotDisposed(){if(this._isDisposed)throw new h.D7("Model is disposed!")}_emitContentChangedEvent(e,t){this.__isDisposing||(this._tokenizationTextModelPart.handleDidChangeContent(t),this._bracketPairs.handleDidChangeContent(t),this._eventEmitter.fire(new Di(e,t)))}setValue(e){if(this._assertNotDisposed(),null==e)throw(0,h.Qg)();const{textBuffer:t,disposable:n}=Wi(e,this._options.defaultEOL);this._setValueFromTextBuffer(t,n)}_createContentChanged2(e,t,n,i,s,r,o,a){return{changes:[{range:e,rangeOffset:t,rangeLength:n,text:i}],eol:this._buffer.getEOL(),isEolChange:a,versionId:this.getVersionId(),isUndoing:s,isRedoing:r,isFlush:o}}_setValueFromTextBuffer(e,t){this._assertNotDisposed();const n=this.getFullModelRange(),i=this.getValueLengthInRange(n),s=this.getLineCount(),r=this.getLineMaxColumn(s);this._buffer=e,this._bufferDisposable.dispose(),this._bufferDisposable=t,this._increaseVersionId(),this._decorations=Object.create(null),this._decorationsTree=new Qi,this._commandManager.clear(),this._trimAutoWhitespaceLines=null,this._emitContentChangedEvent(new Ri([new vi],this._versionId,!1,!1),this._createContentChanged2(new f.Q(1,1,s,r),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),s=this.getLineCount(),r=this.getLineMaxColumn(s);this._onBeforeEOLChange(),this._buffer.setEOL(t),this._increaseVersionId(),this._onAfterEOLChange(),this._emitContentChangedEvent(new Ri([new Bi],this._versionId,!1,!1),this._createContentChanged2(new f.Q(1,1,s,r),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],s=i.range,r=i.cachedAbsoluteStart-i.start,o=this._buffer.getOffsetAt(s.startLineNumber,s.startColumn),a=this._buffer.getOffsetAt(s.endLineNumber,s.endColumn);i.cachedAbsoluteStart=o,i.cachedAbsoluteEnd=a,i.cachedVersionId=e,i.start=o-r,i.end=a-r,mn(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,s=void 0!==e.trimAutoWhitespace?e.trimAutoWhitespace:this._options.trimAutoWhitespace,r=void 0!==e.bracketColorizationOptions?e.bracketColorizationOptions:this._options.bracketPairColorizationOptions,o=new ue.X2({tabSize:t,indentSize:n,insertSpaces:i,defaultEOL:this._options.defaultEOL,trimAutoWhitespace:s,bracketPairColorizationOptions:r});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=$t(this._buffer,t,e);this.updateOptions({insertSpaces:n.insertSpaces,tabSize:n.tabSize,indentSize:n.tabSize})}normalizeIndentation(e){return this._assertNotDisposed(),function(e,t,n){let i=l.HG(e);return-1===i&&(i=e.length),function(e,t,n){let i=0;for(let n=0;n<e.length;n++)"\t"===e.charAt(n)?i=d.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,i),t,n)+e.substring(i)}(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(l._J.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 h.D7("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 Ui(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 h.D7("Illegal value for lineNumber");return this._buffer.getLineContent(e)}getLineLength(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new h.D7("Illegal value for lineNumber");return this._buffer.getLineLength(e)}getLinesContent(){if(this._assertNotDisposed(),this.isTooLargeForHeapOperation())throw new h.D7("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 h.D7("Illegal value for lineNumber");return this._buffer.getLineLength(e)+1}getLineFirstNonWhitespaceColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new h.D7("Illegal value for lineNumber");return this._buffer.getLineFirstNonWhitespaceColumn(e)}getLineLastNonWhitespaceColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new h.D7("Illegal value for lineNumber");return this._buffer.getLineLastNonWhitespaceColumn(e)}_validateRangeRelaxedNoAllocations(e){const t=this._buffer.getLineCount(),n=e.startLineNumber,i=e.startColumn;let s=Math.floor("number"!=typeof n||isNaN(n)?1:n),r=Math.floor("number"!=typeof i||isNaN(i)?1:i);if(s<1)s=1,r=1;else if(s>t)s=t,r=this.getLineMaxColumn(s);else if(r<=1)r=1;else{const e=this.getLineMaxColumn(s);r>=e&&(r=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===s&&i===r&&o===h&&a===l&&e instanceof f.Q&&!(e instanceof _.L)?e:new f.Q(s,r,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(l.pc(n))return!1}return!0}_validatePosition(e,t,n){const i=Math.floor("number"!=typeof e||isNaN(e)?1:e),s=Math.floor("number"!=typeof t||isNaN(t)?1:t),r=this._buffer.getLineCount();if(i<1)return new g.y(1,1);if(i>r)return new g.y(r,this.getLineMaxColumn(r));if(s<=1)return new g.y(i,1);const o=this.getLineMaxColumn(i);if(s>=o)return new g.y(i,o);if(1===n){const e=this._buffer.getLineCharCode(i,s-2);if(l.pc(e))return new g.y(i,s-1)}return new g.y(i,s)}validatePosition(e){return this._assertNotDisposed(),e instanceof g.y&&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,s=e.endLineNumber,r=e.endColumn;if(!this._isValidPosition(n,i,0))return!1;if(!this._isValidPosition(s,r,0))return!1;if(1===t){const e=i>1?this._buffer.getLineCharCode(n,i-2):0,t=r>1&&r<=this._buffer.getLineLength(s)?this._buffer.getLineCharCode(s,r-2):0,o=l.pc(e),a=l.pc(t);return!o&&!a}return!0}validateRange(e){if(this._assertNotDisposed(),e instanceof f.Q&&!(e instanceof _.L)&&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,s=t.column,r=n.lineNumber,o=n.column;{const e=s>1?this._buffer.getLineCharCode(i,s-2):0,t=o>1&&o<=this._buffer.getLineLength(r)?this._buffer.getLineCharCode(r,o-2):0,n=l.pc(e),a=l.pc(t);return n||a?i===r&&s===o?new f.Q(i,s-1,r,o-1):n&&a?new f.Q(i,s-1,r,o+1):n?new f.Q(i,s-1,r,o):new f.Q(i,s,r,o+1):new f.Q(i,s,r,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 f.Q(1,1,e,this.getLineMaxColumn(e))}findMatchesLineByLine(e,t,n,i){return this._buffer.findMatchesLineByLine(e,t,n,i)}findMatches(e,t,n,i,s,r,o=999){this._assertNotDisposed();let a=null;null!==t&&(Array.isArray(t)||(t=[t]),t.every(e=>f.Q.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)=>f.Q.areIntersecting(e,t)?e.plusRange(t):(h.push(e),t))),!n&&e.indexOf("\n")<0){const t=new Mn.lt(e,n,i,s).parseSearchRequest();if(!t)return[];l=e=>this.findMatchesLineByLine(e,t,r,o)}else l=t=>Mn.hB.findMatches(this,new Mn.lt(e,n,i,s),t,r,o);return h.map(l).reduce((e,t)=>e.concat(t),[])}findNextMatch(e,t,n,i,s,r){this._assertNotDisposed();const o=this.validatePosition(t);if(!n&&e.indexOf("\n")<0){const t=new Mn.lt(e,n,i,s).parseSearchRequest();if(!t)return null;const a=this.getLineCount();let h=new f.Q(o.lineNumber,o.column,a,this.getLineMaxColumn(a)),l=this.findMatchesLineByLine(h,t,r,1);return Mn.hB.findNextMatch(this,new Mn.lt(e,n,i,s),o,r),l.length>0?l[0]:(h=new f.Q(1,1,o.lineNumber,this.getLineMaxColumn(o.lineNumber)),l=this.findMatchesLineByLine(h,t,r,1),l.length>0?l[0]:null)}return Mn.hB.findNextMatch(this,new Mn.lt(e,n,i,s),o,r)}findPreviousMatch(e,t,n,i,s,r){this._assertNotDisposed();const o=this.validatePosition(t);return Mn.hB.findPreviousMatch(this,new Mn.lt(e,n,i,s),o,r)}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 ue.Wo?e:new ue.Wo(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,s=e.length;t<s;t++){const s=e[t];let r=!1;for(let e=0,t=n.length;e<t;e++){const t=n[e].range,i=t.startLineNumber>s.endLineNumber,o=s.startLineNumber>t.endLineNumber;if(!i&&!o){r=!0;break}}if(!r){i=!1;break}}if(i)for(let e=0,i=this._trimAutoWhitespaceLines.length;e<i;e++){const i=this._trimAutoWhitespaceLines[e],s=this.getLineMaxColumn(i);let r=!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===s&&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))){r=!1;break}}if(r){const e=new f.Q(i,1,i,s);t.push(new ue.Wo(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 s=e.map(e=>{const t=this.getPositionAt(e.newPosition),n=this.getPositionAt(e.newEnd);return{range:new f.Q(t.lineNumber,t.column,n.lineNumber,n.column),text:e.oldText}});this._applyUndoRedoEdits(s,t,!0,!1,n,i)}_applyRedo(e,t,n,i){const s=e.map(e=>{const t=this.getPositionAt(e.oldPosition),n=this.getPositionAt(e.oldEnd);return{range:new f.Q(t.lineNumber,t.column,n.lineNumber,n.column),text:e.newText}});this._applyUndoRedoEdits(s,t,!1,!0,n,i)}_applyUndoRedoEdits(e,t,n,i,s,r){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._isUndoing=n,this._isRedoing=i,this.applyEdits(e,!1),this.setEOL(t),this._overwriteAlternativeVersionId(s)}finally{this._isUndoing=!1,this._isRedoing=!1,this._eventEmitter.endDeferredEmit(r),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(),i=this._buffer.applyEdits(e,this._options.trimAutoWhitespace,t),s=this._buffer.getLineCount(),r=i.changes;if(this._trimAutoWhitespaceLines=i.trimAutoWhitespaceLineNumbers,0!==r.length){for(let e=0,t=r.length;e<t;e++){const t=r[e];this._decorationsTree.acceptReplace(t.rangeOffset,t.rangeLength,t.text.length,t.forceMoveMarkers)}const e=[];this._increaseVersionId();let t=n;for(let n=0,i=r.length;n<i;n++){const i=r[n],[a]=(0,u.W)(i.text);this._onDidChangeDecorations.fire();const h=i.range.startLineNumber,l=i.range.endLineNumber,c=l-h,d=a,f=Math.min(c,d),_=d-c,p=s-t-_+h,m=p,C=p+d,k=this._decorationsTree.getInjectedTextInInterval(this,this.getOffsetAt(new g.y(m,1)),this.getOffsetAt(new g.y(C,this.getLineMaxColumn(C))),0),b=wi.fromDecorations(k),L=new o.j3(b);for(let t=f;t>=0;t--){const n=h+t,i=p+t;L.takeFromEndWhile(e=>e.lineNumber>i);const s=L.takeFromEndWhile(e=>e.lineNumber===i);e.push(new Ei(n,this.getLineContent(i),s))}if(f<c){const t=h+f;e.push(new Ni(t+1,l))}if(f<d){const n=new o.j3(b),i=h+f,r=d-f,a=s-t-r+i+1,l=[],c=[];for(let e=0;e<r;e++){const t=a+e;c[e]=this.getLineContent(t),n.takeWhile(e=>e.lineNumber<t),l[e]=n.takeWhile(e=>e.lineNumber===t)}e.push(new Oi(i+1,h+d,c,l))}t+=_}this._emitContentChangedEvent(new Ri(e,this.getVersionId(),this._isUndoing,this._isRedoing),{changes:r,eol:this._buffer.getEOL(),isEolChange:!1,versionId:this.getVersionId(),isUndoing:this._isUndoing,isRedoing:this._isRedoing,isFlush:!1})}return null===i.reverseEdits?void 0:i.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 Ei(e,this.getLineContent(e),this._getInjectedTextInLine(e)));this._onDidChangeInjectedText.fire(new Mi(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,ns(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,h.dz)(e)}return n.addDecoration=ji,n.changeDecoration=ji,n.changeDecorationOptions=ji,n.removeDecoration=ji,n.deltaDecorations=ji,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,h.dz)(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:ts[n]}],!0)[0]:null;if(!t)return this._decorationsTree.delete(i),delete this._decorations[i.id],null;const s=this._validateRangeRelaxedNoAllocations(t),r=this._buffer.getOffsetAt(s.startLineNumber,s.startColumn),o=this._buffer.getOffsetAt(s.endLineNumber,s.endColumn);return this._decorationsTree.delete(i),i.reset(this.getVersionId(),r,o,s),i.setOptions(ts[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,i=!1,s=!1){const r=this.getLineCount(),a=Math.min(r,Math.max(1,e)),h=Math.min(r,Math.max(1,t)),l=this.getLineMaxColumn(h),c=new f.Q(a,1,h,l),u=this._getDecorationsInRange(c,n,i,s);return(0,o.E4)(u,this._decorationProvider.getDecorationsInRange(c,n,i)),u}getDecorationsInRange(e,t=0,n=!1,i=!1,s=!1){const r=this.validateRange(e),a=this._getDecorationsInRange(r,t,n,s);return(0,o.E4)(a,this._decorationProvider.getDecorationsInRange(r,t,n,i)),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 wi.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 s=this._buffer.getOffsetAt(e.startLineNumber,e.startColumn),r=this._buffer.getOffsetAt(e.endLineNumber,e.endColumn);return this._decorationsTree.getAllInInterval(this,s,r,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),s=this._buffer.getOffsetAt(i.startLineNumber,i.startColumn),r=this._buffer.getOffsetAt(i.endLineNumber,i.endColumn);this._decorationsTree.delete(n),n.reset(this.getVersionId(),s,r,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),s=!(!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 r=i!==s,o=function(e){return!!e.after||!!e.before}(t)!==qi(n);r||o?(this._decorationsTree.delete(n),n.setOptions(t),this._decorationsTree.insert(n)):n.setOptions(t)}_deltaDecorationsImpl(e,t,n,i=!1){const s=this.getVersionId(),r=t.length;let o=0;const a=n.length;let h=0;this._onDidChangeDecorations.beginDeferredEmit();try{const l=new Array(a);for(;o<r||h<a;){let c=null;if(o<r){do{c=this._decorations[t[o++]]}while(!c&&o<r);if(c){if(c.options.after){const e=this._decorationsTree.getNodeRange(this,c);this._onDidChangeDecorations.recordLineAffectedByInjectedText(e.endLineNumber)}if(c.options.before){const e=this._decorationsTree.getNodeRange(this,c);this._onDidChangeDecorations.recordLineAffectedByInjectedText(e.startLineNumber)}this._decorationsTree.delete(c),i||this._onDidChangeDecorations.checkAffectedAndFire(c.options)}}if(h<a){if(!c){const e=++this._lastDecorationId,t=`${this._instanceId};${e}`;c=new on(t,0,0),this._decorations[t]=c}const t=n[h],r=this._validateRangeRelaxedNoAllocations(t.range),o=ns(t.options),a=this._buffer.getOffsetAt(r.startLineNumber,r.startColumn),u=this._buffer.getOffsetAt(r.endLineNumber,r.endColumn);c.ownerId=e,c.reset(s,a,u,r),c.setOptions(o),c.options.after&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(r.endLineNumber),c.options.before&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(r.startLineNumber),i||this._onDidChangeDecorations.checkAffectedAndFire(o),this._decorationsTree.insert(c),l[h]=c.id,h++}else c&&delete this._decorations[c.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 function(e){let t=0;for(const n of e){if(" "!==n&&"\t"!==n)break;t++}return t}(this.getLineContent(e))+1}};function Gi(e){return!(!e.options.overviewRuler||!e.options.overviewRuler.color)}function qi(e){return!!e.options.after||!!e.options.before}Hi=yi=function(e,t,n,i){var s,r=arguments.length,o=r<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--)(s=e[a])&&(o=(r<3?s(o):r>3?s(t,n,o):s(t,n))||o);return r>3&&o&&Object.defineProperty(t,n,o),o}([Fi(4,Ai),Fi(5,C.L),Fi(6,te),Fi(7,j._Y)],Hi);class Qi{constructor(){this._decorationsTree0=new hn,this._decorationsTree1=new hn,this._injectedTextDecorationsTree=new hn}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,s,r){const o=e.getVersionId(),a=this._intervalSearch(t,n,i,s,o,r);return this._ensureNodesHaveRanges(e,a)}_intervalSearch(e,t,n,i,s,r){const o=this._decorationsTree0.intervalSearch(e,t,n,i,s,r),a=this._decorationsTree1.intervalSearch(e,t,n,i,s,r),h=this._injectedTextDecorationsTree.intervalSearch(e,t,n,i,s,r);return o.concat(a).concat(h)}getInjectedTextInInterval(e,t,n,i){const s=e.getVersionId(),r=this._injectedTextDecorationsTree.intervalSearch(t,n,i,!1,s,!1);return this._ensureNodesHaveRanges(e,r).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,s){const r=e.getVersionId(),o=this._search(t,n,i,r,s);return this._ensureNodesHaveRanges(e,o)}_search(e,t,n,i,s){if(n)return this._decorationsTree1.search(e,t,i,s);{const n=this._decorationsTree0.search(e,t,i,s),r=this._decorationsTree1.search(e,t,i,s),o=this._injectedTextDecorationsTree.search(e,t,i,s);return n.concat(r).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){qi(e)?this._injectedTextDecorationsTree.insert(e):Gi(e)?this._decorationsTree1.insert(e):this._decorationsTree0.insert(e)}delete(e){qi(e)?this._injectedTextDecorationsTree.delete(e):Gi(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){qi(e)?this._injectedTextDecorationsTree.resolveNode(e,t):Gi(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 $i(e){return e.replace(/[^a-z0-9\-_]/gi," ")}class Ki{constructor(e){this.color=e.color||"",this.darkColor=e.darkColor||""}}class Xi extends Ki{constructor(e){super(e),this._resolvedColor=null,this.position="number"==typeof e.position?e.position:ue.A5.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 Yi{constructor(e){this.position=e?.position??ue.ZS.Center,this.persistLane=e?.persistLane}}class Zi extends Ki{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?a.Q1.fromHex(e):t.getColor(e.id)}}class Ji{static from(e){return e instanceof Ji?e:new Ji(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 es{static register(e){return new es(e)}static createDynamic(e){return new es(e)}constructor(e){this.description=e.description,this.blockClassName=e.blockClassName?$i(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?$i(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 Xi(e.overviewRuler):null,this.minimap=e.minimap?new Zi(e.minimap):null,this.glyphMargin=e.glyphMarginClassName?new Yi(e.glyphMargin):null,this.glyphMarginClassName=e.glyphMarginClassName?$i(e.glyphMarginClassName):null,this.linesDecorationsClassName=e.linesDecorationsClassName?$i(e.linesDecorationsClassName):null,this.lineNumberClassName=e.lineNumberClassName?$i(e.lineNumberClassName):null,this.linesDecorationsTooltip=e.linesDecorationsTooltip?l.jy(e.linesDecorationsTooltip):null,this.firstLineDecorationClassName=e.firstLineDecorationClassName?$i(e.firstLineDecorationClassName):null,this.marginClassName=e.marginClassName?$i(e.marginClassName):null,this.inlineClassName=e.inlineClassName?$i(e.inlineClassName):null,this.inlineClassNameAffectsLetterSpacing=e.inlineClassNameAffectsLetterSpacing||!1,this.beforeContentClassName=e.beforeContentClassName?$i(e.beforeContentClassName):null,this.afterContentClassName=e.afterContentClassName?$i(e.afterContentClassName):null,this.after=e.after?Ji.from(e.after):null,this.before=e.before?Ji.from(e.before):null,this.hideInCommentTokens=e.hideInCommentTokens??!1,this.hideInStringTokens=e.hideInStringTokens??!1}}es.EMPTY=es.register({description:"empty"});const ts=[es.register({description:"tracked-range-always-grows-when-typing-at-edges",stickiness:0}),es.register({description:"tracked-range-never-grows-when-typing-at-edges",stickiness:1}),es.register({description:"tracked-range-grows-only-when-typing-before",stickiness:2}),es.register({description:"tracked-range-grows-only-when-typing-after",stickiness:3})];function ns(e){return e instanceof es?e:es.createDynamic(e)}class is extends s.jG{constructor(e){super(),this.handleBeforeFire=e,this._actual=this._register(new i.vl),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 ss extends s.jG{constructor(){super(),this._fastEmitter=this._register(new i.vl),this.fastEvent=this._fastEmitter.event,this._slowEmitter=this._register(new i.vl),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))}}var rs,os=n(7277),as=n(5109),hs=n(6339),ls=n(2349),cs=function(e,t){return function(n,i){t(n,i,e)}};function us(e){return e.toString()}class ds{constructor(e,t,n){this.model=e,this._modelEventListeners=new s.Cm,this.model=e,this._modelEventListeners.add(e.onWillDispose(()=>t(e))),this._modelEventListeners.add(e.onDidChangeLanguage(t=>n(e,t)))}dispose(){this._modelEventListeners.dispose()}}const gs=r.j9||r.zx?1:2;class fs{constructor(e,t,n,i,s,r,o,a){this.uri=e,this.initialUndoRedoSnapshot=t,this.time=n,this.sharesUndoRedoStack=i,this.heapSize=s,this.sha1=r,this.versionId=o,this.alternativeVersionId=a}}let _s=class extends s.jG{static{rs=this}static{this.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK=20971520}constructor(e,t,n,s){super(),this._configurationService=e,this._resourcePropertiesService=t,this._undoRedoService=n,this._instantiationService=s,this._onModelAdded=this._register(new i.vl),this.onModelAdded=this._onModelAdded.event,this._onModelRemoved=this._register(new i.vl),this.onModelRemoved=this._onModelRemoved.event,this._onModelModeChanged=this._register(new i.vl),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=p.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 s=p.insertSpaces;e.editor&&void 0!==e.editor.insertSpaces&&(s="false"!==e.editor.insertSpaces&&Boolean(e.editor.insertSpaces));let r=gs;const o=e.eol;"\r\n"===o?r=2:"\n"===o&&(r=1);let a=p.trimAutoWhitespace;e.editor&&void 0!==e.editor.trimAutoWhitespace&&(a="false"!==e.editor.trimAutoWhitespace&&Boolean(e.editor.trimAutoWhitespace));let h=p.detectIndentation;e.editor&&void 0!==e.editor.detectIndentation&&(h="false"!==e.editor.detectIndentation&&Boolean(e.editor.detectIndentation));let l=p.largeFileOptimizations;e.editor&&void 0!==e.editor.largeFileOptimizations&&(l="false"!==e.editor.largeFileOptimizations&&Boolean(e.editor.largeFileOptimizations));let c=p.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:s,detectIndentation:h,defaultEOL:r,trimAutoWhitespace:a,largeFileOptimizations:l,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===r.OS||2===r.OS?"\n":"\r\n"}_shouldRestoreUndoStack(){const e=this._configurationService.getValue("files.restoreUndoStack");return"boolean"!=typeof e||e}getCreationOptions(e,t,n){const i="string"==typeof e?e:e.languageId;let s=this._modelCreationOptionsByLanguageAndResource[i+t];if(!s){const e=this._configurationService.getValue("editor",{overrideIdentifier:i,resource:t}),r=this._getEOL(t,i);s=rs._readModelOptions({editor:e,eol:r},n),this._modelCreationOptionsByLanguageAndResource[i+t]=s}return s}_updateModelOptions(e){const t=this._modelCreationOptionsByLanguageAndResource;this._modelCreationOptionsByLanguageAndResource=Object.create(null);const n=Object.keys(this._models);for(let i=0,s=n.length;i<s;i++){const s=n[i],r=this._models[s],o=r.model.getLanguageId(),a=r.model.uri;if(e&&!e.affectsConfiguration("editor",{overrideIdentifier:o,resource:a})&&!e.affectsConfiguration("files.eol",{overrideIdentifier:o,resource:a}))continue;const h=t[o+a],l=this.getCreationOptions(o,a,r.model.isForSimpleWidget);rs._setModelOptionsForModel(r.model,l,h)}}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,ls.aI)(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(us(e.uri),e),this._disposedModelsHeapSize+=e.heapSize}_removeDisposedModel(e){const t=this._disposedModels.get(us(e));return t&&(this._disposedModelsHeapSize-=t.heapSize),this._disposedModels.delete(us(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 s=this.getCreationOptions(t,n,i),r=this._instantiationService.createInstance(Hi,e,t,s,n);if(n&&this._disposedModels.has(us(n))){const e=this._removeDisposedModel(n),t=this._undoRedoService.getElements(n),i=this._getSHA1Computer(),s=!!i.canComputeSHA1(r)&&i.computeSHA1(r)===e.sha1;if(s||e.sharesUndoRedoStack){for(const e of t.past)Pt(e)&&e.matchesResource(n)&&e.setModel(r);for(const e of t.future)Pt(e)&&e.matchesResource(n)&&e.setModel(r);this._undoRedoService.setElementsValidFlag(n,!0,e=>Pt(e)&&e.matchesResource(n)),s&&(r._overwriteVersionId(e.versionId),r._overwriteAlternativeVersionId(e.alternativeVersionId),r._overwriteInitialUndoRedoSnapshot(e.initialUndoRedoSnapshot))}else null!==e.initialUndoRedoSnapshot&&this._undoRedoService.restoreSnapshot(e.initialUndoRedoSnapshot)}const o=us(r.uri);if(this._models[o])throw new Error("ModelService: Cannot add model because it already exists!");const a=new ds(r,e=>this._onWillDispose(e),(e,t)=>this._onDidChangeLanguage(e,t));return this._models[o]=a,a}createModel(e,t,n,i=!1){let s;return s=t?this._createModelData(e,t,n,i):this._createModelData(e,q.vH,n,i),this._onModelAdded.fire(s.model),s.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=us(e),n=this._models[t];return n?n.model:null}_schemaShouldMaintainUndoRedoElements(e){return e.scheme===hs.ny.file||e.scheme===hs.ny.vscodeRemote||e.scheme===hs.ny.vscodeUserData||e.scheme===hs.ny.vscodeNotebookCell||"fake-fs"===e.scheme}_onWillDispose(e){const t=us(e.uri),n=this._models[t],i=this._undoRedoService.getUriComparisonKey(e.uri)!==e.uri.toString();let s=!1,r=0;if(i||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)Pt(n)&&n.matchesResource(e.uri)&&(s=!0,r+=n.heapSize(e.uri),n.setModel(e.uri));for(const n of t.future)Pt(n)&&n.matchesResource(e.uri)&&(s=!0,r+=n.heapSize(e.uri),n.setModel(e.uri))}}const o=rs.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK,a=this._getSHA1Computer();if(s)if(i||!(r>o)&&a.canComputeSHA1(e))this._ensureDisposedModelsHeapSize(o-r),this._undoRedoService.setElementsValidFlag(e.uri,!1,t=>Pt(t)&&t.matchesResource(e.uri)),this._insertDisposedModel(new fs(e.uri,n.model.getInitialUndoRedoSnapshot(),Date.now(),i,r,a.computeSHA1(e),e.getVersionId(),e.getAlternativeVersionId()));else{const e=n.model.getInitialUndoRedoSnapshot();null!==e&&this._undoRedoService.restoreSnapshot(e)}else if(!i){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,i=e.getLanguageId(),s=this.getCreationOptions(n,e.uri,e.isForSimpleWidget),r=this.getCreationOptions(i,e.uri,e.isForSimpleWidget);rs._setModelOptionsForModel(e,r,s),this._onModelModeChanged.fire({model:e,oldLanguageId:n})}_getSHA1Computer(){return new ps}};_s=rs=function(e,t,n,i){var s,r=arguments.length,o=r<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--)(s=e[a])&&(o=(r<3?s(o):r>3?s(t,n,o):s(t,n))||o);return r>3&&o&&Object.defineProperty(t,n,o),o}([cs(0,H.pG),cs(1,os.ITextResourcePropertiesService),cs(2,Ai),cs(3,j._Y)],_s);class ps{static{this.MAX_MODEL_SIZE=10485760}canComputeSHA1(e){return e.getValueLength()<=ps.MAX_MODEL_SIZE}computeSHA1(e){const t=new as.v7,n=e.createSnapshot();let i;for(;i=n.read();)t.update(i);return t.digest()}}},2055:(e,t,n)=>{n.d(t,{$l:()=>a,Gs:()=>d,MB:()=>o,Sw:()=>c,bb:()=>l,gN:()=>h,pJ:()=>u});var i=n(315);const s="undefined"!=typeof Buffer;let r;new i.d(()=>new Uint8Array(256));class o{static wrap(e){return s&&!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 s?this.buffer.toString():(r||(r=new TextDecoder),r.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 c(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 u(e,t){return e[t]}function d(e,t,n){e[n]=t}},2513:(e,t,n)=>{n.r(t),n.d(t,{ITreeSitterParserService:()=>i});const i=(0,n(6640).u1)("treeSitterParserService")},7277:(e,t,n)=>{n.r(t),n.d(t,{ITextResourceConfigurationService:()=>s,ITextResourcePropertiesService:()=>r});var i=n(6640);const s=(0,i.u1)("textResourceConfigurationService"),r=(0,i.u1)("textResourcePropertiesService")},7300:(e,t,n)=>{n.d(t,{v:()=>r});class i{constructor(e,t=[],n=!1){this.ctor=e,this.staticArguments=t,this.supportsDelayedInstantiation=n}}const s=[];function r(e,t,n){t instanceof i||(t=new i(t,[],Boolean(n))),s.push([e,t])}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_journeyapps_labs_reactor_mod_editor=self.webpackChunk_journeyapps_labs_reactor_mod_editor||[]).push([[116],{3116:(e,r,s)=>{s.r(r),s.d(r,{DraggedTreeItemsIdentifier:()=>a,TreeViewsDnDService:()=>t});class t{constructor(){this._dragOperations=new Map}removeDragOperationTransfer(e){if(e&&this._dragOperations.has(e)){const r=this._dragOperations.get(e);return this._dragOperations.delete(e),r}}}class a{constructor(e){this.identifier=e}}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_journeyapps_labs_reactor_mod_editor=self.webpackChunk_journeyapps_labs_reactor_mod_editor||[]).push([[116,173],{1173:(e,r,t)=>{t.r(r),t.d(r,{ITreeViewsDnDService:()=>o});var n=t(7300),s=t(6640),i=t(3116);const o=(0,s.u1)("treeViewsDndService");(0,n.v)(o,i.TreeViewsDnDService,1)},3116:(e,r,t)=>{t.r(r),t.d(r,{DraggedTreeItemsIdentifier:()=>s,TreeViewsDnDService:()=>n});class n{constructor(){this._dragOperations=new Map}removeDragOperationTransfer(e){if(e&&this._dragOperations.has(e)){const r=this._dragOperations.get(e);return this._dragOperations.delete(e),r}}}class s{constructor(e){this.identifier=e}}},6640:(e,r,t)=>{var n;t.d(r,{_Y:()=>s,u1:()=>i}),function(e){e.serviceIds=new Map,e.DI_TARGET="$di$target",e.DI_DEPENDENCIES="$di$dependencies",e.getServiceDependencies=function(r){return r[e.DI_DEPENDENCIES]||[]}}(n||(n={}));const s=i("instantiationService");function i(e){if(n.serviceIds.has(e))return n.serviceIds.get(e);const r=function(e,t,s){if(3!==arguments.length)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");!function(e,r,t){r[n.DI_TARGET]===r?r[n.DI_DEPENDENCIES].push({id:e,index:t}):(r[n.DI_DEPENDENCIES]=[{id:e,index:t}],r[n.DI_TARGET]=r)}(r,e,s)};return r.toString=()=>e,n.serviceIds.set(e,r),r}},7300:(e,r,t)=>{t.d(r,{v:()=>i});class n{constructor(e,r=[],t=!1){this.ctor=e,this.staticArguments=r,this.supportsDelayedInstantiation=t}}const s=[];function i(e,r,t){r instanceof n||(r=new n(r,[],Boolean(t))),s.push([e,r])}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_journeyapps_labs_reactor_mod_editor=self.webpackChunk_journeyapps_labs_reactor_mod_editor||[]).push([[179],{6179:(e,r,_)=>{_.r(r)}}]);
|