@emailmaker/emailmaker 1.0.50 → 1.0.52
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 +1 -1
- package/asset-manifest.json +52 -49
- package/emailmaker-esm.js +1 -1
- package/emailmaker.d.ts +49 -0
- package/emailmaker.js +1 -1
- package/iframe/{iframe-eblock.3347c72c85af92a68e68.html → iframe-eblock.7528547984cb51f552e2.html} +1 -1
- package/iframe/{iframe.3347c72c85af92a68e68.html → iframe.7528547984cb51f552e2.html} +1 -1
- package/iframe/js/cssbeautify.js +1 -1
- package/iframe/sandbox-eblock.js +1 -1
- package/iframe/sandbox.js +1 -1
- package/package.json +1 -1
- package/plugin.html +2 -2
- package/plugin_blocks_test.html +1 -1
- package/plugin_default.html +1 -1
- package/plugin_idigital.html +262 -0
- package/plugin_s.html +1 -1
- package/static/css/3062.52a0a40e.css +1 -0
- package/static/css/{3430.1e30bbcf.css → 3430.8008d20d.css} +1 -1
- package/static/css/5211.8f70ec84.css +1 -0
- package/static/css/8995.3b37ba81.css +1 -0
- package/static/js/1147.b3554098.js +1 -0
- package/static/js/1399.258dd710.js +1 -0
- package/static/js/1481.1c9eb31e.js +1 -0
- package/static/js/{1821.cbca44c5.js → 1821.eec84af2.js} +1 -1
- package/static/js/{2151.0935f51b.js → 2151.516911d8.js} +1 -1
- package/static/js/2299.a10e8024.chunk.js +1 -0
- package/static/js/3040.3377e943.js +1 -0
- package/static/js/3062.29120e53.js +1 -0
- package/static/js/3430.81e9a5aa.js +1 -0
- package/static/js/4035.8367303a.js +1 -0
- package/static/js/5211.0ebfdb27.js +1 -0
- package/static/js/{5234.f4717ce4.js → 5234.2b7c442d.js} +1 -1
- package/static/js/6898.9eb2b03f.js +1 -0
- package/static/js/7291.06a4c8c4.js +1 -0
- package/static/js/7415.a9cc050d.js +2 -0
- package/static/js/7623.8bcd5fed.js +2 -0
- package/static/js/78.dca8224c.js +1 -0
- package/static/js/7835.3a7dd512.js +2 -0
- package/static/js/8458.7ac6ec33.js +1 -0
- package/static/js/8689.fa42b226.chunk.js +1 -0
- package/static/js/8995.d8b7e9e5.js +1 -0
- package/static/js/{emailmaker_core.22b19970.js → emailmaker_core.f53b7c8e.js} +1 -1
- package/translations.pot +573 -449
- package/iframe/429.js +0 -1
- package/static/css/2208.56ea0abb.css +0 -1
- package/static/css/4877.237f7f6b.css +0 -1
- package/static/css/5571.e4f09995.css +0 -1
- package/static/js/1399.b4cd707b.js +0 -1
- package/static/js/1477.46df6668.js +0 -2
- package/static/js/1481.cd1a0886.js +0 -1
- package/static/js/18.c23b78e8.js +0 -1
- package/static/js/2208.f73122ba.js +0 -1
- package/static/js/2299.03050dc1.chunk.js +0 -1
- package/static/js/3430.0fd120a4.js +0 -1
- package/static/js/3991.d0073826.js +0 -1
- package/static/js/4035.1e8d8ad5.js +0 -1
- package/static/js/4877.eaf2cc44.js +0 -1
- package/static/js/5571.c89c79dc.js +0 -1
- package/static/js/7159.56dbb0aa.js +0 -2
- package/static/js/723.e748d062.js +0 -2
- package/static/js/7291.50326502.js +0 -1
- package/static/js/78.595b3c2e.js +0 -1
- package/static/js/8458.f8ef5e55.js +0 -1
- package/static/js/8689.5ec8c633.chunk.js +0 -1
- /package/static/js/{723.e748d062.js.LICENSE.txt → 7415.a9cc050d.js.LICENSE.txt} +0 -0
- /package/static/js/{7159.56dbb0aa.js.LICENSE.txt → 7623.8bcd5fed.js.LICENSE.txt} +0 -0
- /package/static/js/{1477.46df6668.js.LICENSE.txt → 7835.3a7dd512.js.LICENSE.txt} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunkemail_maker=globalThis.webpackChunkemail_maker||[]).push([[5234],{93750:(e,t,n)=>{n.d(t,{Y:()=>o});var i=n(22231),s=n(63102),r=n(29733);class o{constructor(e,t,n,i){this._uri=e,this._lines=t,this._eol=n,this._versionId=i,this._lineStarts=null,this._cachedTextValue=null}dispose(){this._lines.length=0}get version(){return this._versionId}getText(){return null===this._cachedTextValue&&(this._cachedTextValue=this._lines.join(this._eol)),this._cachedTextValue}onEvents(e){e.eol&&e.eol!==this._eol&&(this._eol=e.eol,this._lineStarts=null);const t=e.changes;for(const n of t)this._acceptDeleteRange(n.range),this._acceptInsertText(new s.y(n.range.startLineNumber,n.range.startColumn),n.text);this._versionId=e.versionId,this._cachedTextValue=null}_ensureLineStarts(){if(!this._lineStarts){const e=this._eol.length,t=this._lines.length,n=new Uint32Array(t);for(let i=0;i<t;i++)n[i]=this._lines[i].length+e;this._lineStarts=new r.N(n)}}_setLineText(e,t){this._lines[e]=t,this._lineStarts&&this._lineStarts.setValue(e,this._lines[e].length+this._eol.length)}_acceptDeleteRange(e){if(e.startLineNumber!==e.endLineNumber)this._setLineText(e.startLineNumber-1,this._lines[e.startLineNumber-1].substring(0,e.startColumn-1)+this._lines[e.endLineNumber-1].substring(e.endColumn-1)),this._lines.splice(e.startLineNumber,e.endLineNumber-e.startLineNumber),this._lineStarts&&this._lineStarts.removeValues(e.startLineNumber,e.endLineNumber-e.startLineNumber);else{if(e.startColumn===e.endColumn)return;this._setLineText(e.startLineNumber-1,this._lines[e.startLineNumber-1].substring(0,e.startColumn-1)+this._lines[e.startLineNumber-1].substring(e.endColumn-1))}}_acceptInsertText(e,t){if(0===t.length)return;const n=(0,i.uz)(t);if(1===n.length)return void this._setLineText(e.lineNumber-1,this._lines[e.lineNumber-1].substring(0,e.column-1)+n[0]+this._lines[e.lineNumber-1].substring(e.column-1));n[n.length-1]+=this._lines[e.lineNumber-1].substring(e.column-1),this._setLineText(e.lineNumber-1,this._lines[e.lineNumber-1].substring(0,e.column-1)+n[0]);const s=new Uint32Array(n.length-1);for(let i=1;i<n.length;i++)this._lines.splice(e.lineNumber+i-1,0,n[i]),s[i-1]=n[i].length+this._eol.length;this._lineStarts&&this._lineStarts.insertValues(e.lineNumber,s)}}},29733:(e,t,n)=>{n.d(t,{N:()=>r,c2:()=>o});var i=n(8415),s=n(72369);class r{constructor(e){this.values=e,this.prefixSum=new Uint32Array(e.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}insertValues(e,t){e=(0,s.j)(e);const n=this.values,i=this.prefixSum,r=t.length;return 0!==r&&(this.values=new Uint32Array(n.length+r),this.values.set(n.subarray(0,e),0),this.values.set(n.subarray(e),e+r),this.values.set(t,e),e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),this.prefixSum=new Uint32Array(this.values.length),this.prefixSumValidIndex[0]>=0&&this.prefixSum.set(i.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}setValue(e,t){return e=(0,s.j)(e),t=(0,s.j)(t),this.values[e]!==t&&(this.values[e]=t,e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),!0)}removeValues(e,t){e=(0,s.j)(e),t=(0,s.j)(t);const n=this.values,i=this.prefixSum;if(e>=n.length)return!1;const r=n.length-e;return t>=r&&(t=r),0!==t&&(this.values=new Uint32Array(n.length-t),this.values.set(n.subarray(0,e),0),this.values.set(n.subarray(e+t),e),this.prefixSum=new Uint32Array(this.values.length),e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),this.prefixSumValidIndex[0]>=0&&this.prefixSum.set(i.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}getTotalSum(){return 0===this.values.length?0:this._getPrefixSum(this.values.length-1)}getPrefixSum(e){return e<0?0:(e=(0,s.j)(e),this._getPrefixSum(e))}_getPrefixSum(e){if(e<=this.prefixSumValidIndex[0])return this.prefixSum[e];let t=this.prefixSumValidIndex[0]+1;0===t&&(this.prefixSum[0]=this.values[0],t++),e>=this.values.length&&(e=this.values.length-1);for(let n=t;n<=e;n++)this.prefixSum[n]=this.prefixSum[n-1]+this.values[n];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],e),this.prefixSum[e]}getIndexOf(e){e=Math.floor(e),this.getTotalSum();let t=0,n=this.values.length-1,i=0,s=0,r=0;for(;t<=n;)if(i=t+(n-t)/2|0,s=this.prefixSum[i],r=s-this.values[i],e<r)n=i-1;else{if(!(e>=s))break;t=i+1}return new a(i,e-r)}}class o{constructor(e){this._values=e,this._isValid=!1,this._validEndIndex=-1,this._prefixSum=[],this._indexBySum=[]}getTotalSum(){return this._ensureValid(),this._indexBySum.length}getPrefixSum(e){return this._ensureValid(),0===e?0:this._prefixSum[e-1]}getIndexOf(e){this._ensureValid();const t=this._indexBySum[e],n=t>0?this._prefixSum[t-1]:0;return new a(t,e-n)}removeValues(e,t){this._values.splice(e,t),this._invalidate(e)}insertValues(e,t){this._values=(0,i.nK)(this._values,e,t),this._invalidate(e)}_invalidate(e){this._isValid=!1,this._validEndIndex=Math.min(this._validEndIndex,e-1)}_ensureValid(){if(!this._isValid){for(let e=this._validEndIndex+1,t=this._values.length;e<t;e++){const t=this._values[e],n=e>0?this._prefixSum[e-1]:0;this._prefixSum[e]=n+t;for(let i=0;i<t;i++)this._indexBySum[n+i]=e}this._prefixSum.length=this._values.length,this._indexBySum.length=this._prefixSum[this._prefixSum.length-1],this._isValid=!0,this._validEndIndex=this._values.length-1}}setValue(e,t){this._values[e]!==t&&(this._values[e]=t,this._invalidate(e))}}class a{constructor(e,t){this.index=e,this.remainder=t,this._prefixSumIndexOfResultBrand=void 0,this.index=e,this.remainder=t}}},21174:(e,t,n)=>{n.d(t,{Ho:()=>Me,kI:()=>ze,Bz:()=>Se});var i=n(8415),s=n(59638),r=n(79734),o=n(16201),a=n(33793),h=n(22231),l=n(34235),u=n(24705),d=n(35246),c=n(63102),f=n(93708),g=n(4707),_=n(20343),p=n(21051),m=n(7117),C=n(1528),L=n(90467),b=n(95017),I=n(33695),x=n(65185),S=n(50652),N=n(94134);class v{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!==k)return T(this.right);let e=this;for(;e.parent!==k&&e.parent.left!==e;)e=e.parent;return e.parent===k?k:e.parent}prev(){if(this.left!==k)return D(this.left);let e=this;for(;e.parent!==k&&e.parent.right!==e;)e=e.parent;return e.parent===k?k:e.parent}detach(){this.parent=null,this.left=null,this.right=null}}const k=new v(null,0);function T(e){for(;e.left!==k;)e=e.left;return e}function D(e){for(;e.right!==k;)e=e.right;return e}function w(e){return e===k?0:e.size_left+e.piece.length+w(e.right)}function E(e){return e===k?0:e.lf_left+e.piece.lineFeedCnt+E(e.right)}function M(){k.parent=k}function z(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!==k&&(n.left.parent=t),n.parent=t.parent,t.parent===k?e.root=n:t.parent.left===t?t.parent.left=n:t.parent.right=n,n.left=t,t.parent=n}function A(e,t){const n=t.left;t.left=n.right,n.right!==k&&(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===k?e.root=n:t===t.parent.right?t.parent.right=n:t.parent.left=n,n.right=t,t.parent=n}function O(e,t){let n,i;if(t.left===k?(i=t,n=i.right):t.right===k?(i=t,n=i.left):(i=T(t.right),n=i.right),i===e.root)return e.root=n,n.color=0,t.detach(),M(),void(e.root.parent=k);const s=1===i.color;if(i===i.parent.left?i.parent.left=n:i.parent.right=n,i===t?(n.parent=i.parent,y(e,n)):(i.parent===t?n.parent=i:n.parent=i.parent,y(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!==k&&(i.left.parent=i),i.right!==k&&(i.right.parent=i),i.size_left=t.size_left,i.lf_left=t.lf_left,y(e,i)),t.detach(),n.parent.left===n){const t=w(n),i=E(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,B(e,n.parent,s,r)}}if(y(e,n.parent),s)return void M();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,z(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,A(e,r),r=n.parent.right),r.color=n.parent.color,n.parent.color=0,r.right.color=0,z(e,n.parent),n=e.root)):(r=n.parent.left,1===r.color&&(r.color=0,n.parent.color=1,A(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,z(e,r),r=n.parent.left),r.color=n.parent.color,n.parent.color=0,r.left.color=0,A(e,n.parent),n=e.root));n.color=0,M()}function R(e,t){for(y(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&&z(e,t=t.parent),t.parent.color=0,t.parent.parent.color=1,A(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&&A(e,t=t.parent),t.parent.color=0,t.parent.parent.color=1,z(e,t.parent.parent))}e.root.color=0}function B(e,t,n,i){for(;t!==e.root&&t!==k;)t.parent.left===t&&(t.parent.size_left+=n,t.parent.lf_left+=i),t=t.parent}function y(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=w((t=t.parent).left)-t.size_left,i=E(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}}k.parent=k,k.left=k,k.right=k,k.color=0;var P=n(62179);const F=65535;function V(e){let t;return t=e[e.length-1]<65536?new Uint16Array(e.length):new Uint32Array(e.length),t.set(e,0),t}class W{constructor(e,t,n,i,s){this.lineStarts=e,this.cr=t,this.lf=n,this.crlf=i,this.isBasicASCII=s}}function j(e,t=!0){const n=[0];let i=1;for(let s=0,r=e.length;s<r;s++){const t=e.charCodeAt(s);13===t?s+1<r&&10===e.charCodeAt(s+1)?(n[i++]=s+2,s++):n[i++]=s+1:10===t&&(n[i++]=s+1)}return t?V(n):n}class U{constructor(e,t,n,i,s){this.bufferIndex=e,this.start=t,this.end=n,this.lineFeedCnt=i,this.length=s}}class Q{constructor(e,t){this.buffer=e,this.lineStarts=t}}class H{constructor(e,t){this._pieces=[],this._tree=e,this._BOM=t,this._index=0,e.root!==k&&e.iterate(e.root,(e=>(e!==k&&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 G{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 q{constructor(e,t,n){this.create(e,t,n)}create(e,t,n){this._buffers=[new Q("",[0])],this._lastChangeBufferPos={line:0,column:0},this.root=k,this._lineCnt=1,this._length=0,this._EOL=t,this._EOLLength=t.length,this._EOLNormalized=n;let i=null;for(let s=0,r=e.length;s<r;s++)if(e[s].buffer.length>0){e[s].lineStarts||(e[s].lineStarts=j(e[s].buffer));const t=new U(s+1,{line:0,column:0},{line:e[s].lineStarts.length-1,column:e[s].buffer.length-e[s].lineStarts[e[s].lineStarts.length-1]},e[s].lineStarts.length-1,e[s].buffer.length);this._buffers.push(e[s]),i=this.rbInsertRight(i,t)}this._searchCache=new G(1),this._lastVisitedLine={lineNumber:0,value:""},this.computeBufferMetadata()}normalizeEOL(e){const t=F,n=t-Math.floor(21845),i=2*n;let s="",r=0;const o=[];if(this.iterate(this.root,(t=>{const a=this.getNodeContent(t),h=a.length;if(r<=n||r+h<i)return s+=a,r+=h,!0;const l=s.replace(/\r\n|\r|\n/g,e);return o.push(new Q(l,j(l))),s=a,r=h,!0})),r>0){const t=s.replace(/\r\n|\r|\n/g,e);o.push(new Q(t,j(t)))}this.create(o,e,!0)}getEOL(){return this._EOL}setEOL(e){this._EOL=e,this._EOLLength=this._EOL.length,this.normalizeEOL(e)}createSnapshot(e){return new H(this,e)}getOffsetAt(e,t){let n=0,i=this.root;for(;i!==k;)if(i.left!==k&&i.lf_left+1>=e)i=i.left;else{if(i.lf_left+i.piece.lineFeedCnt+1>=e){n+=i.size_left;return 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!==k;)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 c.y(n+1,e+1)}return new c.y(n+1,s.remainder+1)}if(e-=t.size_left+t.piece.length,n+=t.lf_left+t.piece.lineFeedCnt,t.right===k){const t=i-e-this.getOffsetAt(n+1,1);return new c.y(n+1,t+1)}t=t.right}return new c.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!==k;){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===k)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,u=r.end.line;let d=h[l]+r.start.column;if(i&&(10===a.charCodeAt(d)&&(d++,o--),e[t++]=n,n="",i=!1,0===o))return!0;if(l===u)return this._EOLNormalized||13!==a.charCodeAt(d+o-1)?n+=a.substr(d,o):(i=!0,n+=a.substr(d,o-1)),!0;n+=this._EOLNormalized?a.substring(d,Math.max(d,h[l+1]-this._EOLLength)):a.substring(d,h[l+1]).replace(/(\r\n|\r|\n)$/,""),e[t++]=n;for(let i=l+1;i<u;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[u]+r.end.column-1)?n=a.substr(h[u],r.end.column):(i=!0,0===r.end.column?t--:n=a.substr(h[u],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,u){const d=this._buffers[e.piece.bufferIndex],c=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,L;t._wordSeparators?(C=d.buffer.substring(g,_),L=e=>e+g,t.reset(0)):(C=d.buffer,L=e=>e,t.reset(g));do{if(p=t.next(C),p){if(L(p.index)>=_)return l;this.positionInBuffer(e,L(p.index)-c,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(u[l++]=(0,P.dr)(new f.Q(n+t,r,n+t,o),p,a),L(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 P.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 u=this.positionInBuffer(h.node,h.remainder);if(a.node===h.node)return this.findMatchesInNode(a.node,o,e.startLineNumber,e.startColumn,l,u,t,n,i,r,s),s;let d=e.startLineNumber,c=a.node;for(;c!==h.node;){const h=this.getLineFeedCnt(c.piece.bufferIndex,l,c.piece.end);if(h>=1){const a=this._buffers[c.piece.bufferIndex].lineStarts,u=this.offsetInBuffer(c.piece.bufferIndex,c.piece.start),f=a[l.line+h],g=d===e.startLineNumber?e.startColumn:1;if(r=this.findMatchesInNode(c,o,d,g,l,this.positionInBuffer(c,f-u),t,n,i,r,s),r>=i)return s;d+=h}const u=d===e.startLineNumber?e.startColumn-1:0;if(d===e.endLineNumber){const a=this.getLineContent(d).substring(u,e.endColumn-1);return r=this._findMatchesInLine(t,o,a,e.endLineNumber,u,r,s,n,i),s}if(r=this._findMatchesInLine(t,o,this.getLineContent(d).substr(u),d,u,r,s,n,i),r>=i)return s;d++,a=this.nodeAt2(d,1),c=a.node,l=this.positionInBuffer(a.node,a.remainder)}if(d===e.endLineNumber){const a=d===e.startLineNumber?e.startColumn-1:0,h=this.getLineContent(d).substring(a,e.endColumn-1);return r=this._findMatchesInLine(t,o,h,e.endLineNumber,a,r,s,n,i),s}const f=d===e.startLineNumber?e.startColumn:1;return r=this.findMatchesInNode(h.node,o,d,f,l,u,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,u=n.length;let d=-a;for(;-1!==(d=n.indexOf(t,d+a));)if((!l||(0,P.wC)(l,n,u,d,a))&&(o[r++]=new C.Dg(new f.Q(i,d+1+s,i,d+1+a+s),null),r>=h))return r;return r}let u;t.reset(0);do{if(u=t.next(n),u&&(o[r++]=(0,P.dr)(new f.Q(i,u.index+1+s,i,u.index+1+u[0].length+s),u,a),r>=h))return r}while(u);return r}insert(e,t,n=!1){if(this._EOLNormalized=this._EOLNormalized&&n,this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",this.root!==k){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<F)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 U(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)){if(10===this.nodeCharCodeAt(n,i)){const e={line:s.start.line+1,column:0};s=new U(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 t=0;t<h.length;t++)l=this.rbInsertRight(l,h[t]);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===k)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 O(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 u=s.next();u!==k&&u!==r;u=u.next())o.push(u);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 U(i.bufferIndex,s,i.end,this.getLineFeedCnt(i.bufferIndex,s,i.end),i.length-1);t.piece=r,e+="\n",B(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 r=i.length-2;r>=0;r--)s=this.rbInsertLeft(s,i[r]);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 r=1;r<n.length;r++)s=this.rbInsertRight(s,n[r]);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,u=0,d=0;for(;a<=h&&(l=a+(h-a)/2|0,d=r[l],l!==h);)if(u=r[l+1],o<d)h=l-1;else{if(!(o>=u))break;a=l+1}return n?(n.line=l,n.column=o-d,null):{line:l,column:o-d}}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++)O(this,e[t])}createNewPieces(e){if(e.length>F){const t=[];for(;e.length>F;){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,F),e=e.substring(F));const s=j(i);t.push(new U(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 Q(i,s))}const n=j(e);return t.push(new U(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 Q(e,n)),t}let t=this._buffers[0].buffer.length;const n=j(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 U(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!==k;)if(n.left!==k&&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!==k;){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!==k;)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,u=n.length+l;e.piece=new U(n.bufferIndex,n.start,r,a,u),B(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 U(n.bufferIndex,r,n.end,o,l),B(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),u=this.offsetInBuffer(i.bufferIndex,t)-this.offsetInBuffer(i.bufferIndex,s);e.piece=new U(i.bufferIndex,i.start,h,l,u),B(this,e,u-o,l-a);const d=new U(i.bufferIndex,n,r,this.getLineFeedCnt(i.bufferIndex,n,r),this.offsetInBuffer(i.bufferIndex,r)-this.offsetInBuffer(i.bufferIndex,n)),c=this.rbInsertRight(e,d);this.validateCRLFWithPrevNode(c)}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=j(t,!1);for(let d=0;d<s.length;d++)s[d]+=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),u=l-h;e.piece=new U(e.piece.bufferIndex,e.piece.start,o,l,a),this._lastChangeBufferPos=o,B(this,e,t.length,u)}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!==k;)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!==k;)if(n.left!==k&&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!==k;){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===k||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;if(i===n.length-1)return!1;return!(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!==k&&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 U(e.piece.bufferIndex,e.piece.start,s,o,r),B(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 U(t.piece.bufferIndex,a,t.piece.end,l,h),B(this,t,-1,-1),0===t.piece.length&&n.push(t);const u=this.createNewPieces("\r\n");this.rbInsertRight(e,u[0]);for(let d=0;d<n.length;d++)O(this,n[d])}adjustCarriageReturnFromNext(e,t){if(this.shouldCheckCRLF()&&this.endWithCR(e)){const n=t.next();if(this.startWithLF(n)){if(e+="\n",1===n.piece.length)O(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 U(e.bufferIndex,t,e.end,s,i),B(this,n,-1,-1)}return!0}}return!1}iterate(e,t){if(e===k)return t(k);const n=this.iterate(e.left,t);return n?t(e)&&this.iterate(e.right,t):n}getNodeContent(e){if(e===k)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 v(t,1);n.left=k,n.right=k,n.parent=k,n.size_left=0,n.lf_left=0;if(this.root===k)this.root=n,n.color=0;else if(e.right===k)e.right=n,n.parent=e;else{const t=T(e.right);t.left=n,n.parent=t}return R(this,n),n}rbInsertLeft(e,t){const n=new v(t,1);if(n.left=k,n.right=k,n.parent=k,n.size_left=0,n.lf_left=0,this.root===k)this.root=n,n.color=0;else if(e.left===k)e.left=n,n.parent=e;else{const t=D(e.left);t.right=n,n.parent=t}return R(this,n),n}}var $=n(41634);class Z extends a.jG{constructor(e,t,n,i,s,r,a){super(),this._onDidChangeContent=this._register(new o.vl),this._BOM=t,this._mightContainNonBasicASCII=!r,this._mightContainRTL=i,this._mightContainUnusualLineTerminators=s,this._pieceTree=new q(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);return this.getOffsetAt(e.endLineNumber,e.endColumn)-n}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++)h.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=h.HG(this.getLineContent(e));return-1===t?0:t+1}getLineLastNonWhitespaceColumn(e){const t=h.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 p=0;p<e.length;p++){const t=e[p];o&&t._isTracked&&(o=!1);const n=t.range;if(t.text){let e=!0;r||(e=!h.aC(t.text),r=e),!i&&e&&(i=h.E_(t.text)),!s&&e&&(s=h.$X(t.text))}let l="",d=0,c=0,f=0;if(t.text){let e;[d,c,f,e]=(0,u.W)(t.text);const n=this.getEOL();l=0===e||e===("\r\n"===n?2:1)?t.text:t.text.replace(/\r\n|\r|\n/g,n)}a[p]={sortIndex:p,identifier:t.identifier||null,range:n,rangeOffset:this.getOffsetAt(n.startLineNumber,n.startColumn),rangeLength:this.getValueLengthInRange(n),text:l,eolCount:d,firstLineLength:c,lastLineLength:f,forceMoveMarkers:Boolean(t.forceMoveMarkers),isAutoWhitespaceEdit:t.isAutoWhitespaceEdit||!1}}a.sort(Z._sortOpsAscending);let l=!1;for(let h=0,u=a.length-1;h<u;h++){const e=a[h].range.getEndPosition(),t=a[h+1].range.getStartPosition();if(t.isBeforeOrEqual(e)){if(t.isBefore(e))throw new Error("Overlapping ranges are not allowed!");l=!0}}o&&(a=this._reduceOperations(a));const d=n||t?Z._getInverseEditRanges(a):[],c=[];if(t)for(let u=0;u<a.length;u++){const e=a[u],t=d[u];if(e.isAutoWhitespaceEdit&&e.range.isEmpty())for(let n=t.startLineNumber;n<=t.endLineNumber;n++){let i="";n===t.startLineNumber&&(i=this.getLineContent(e.range.startLineNumber),-1!==h.HG(i))||c.push({lineNumber:n,oldContent:i})}}let f=null;if(n){let e=0;f=[];for(let t=0;t<a.length;t++){const n=a[t],i=d[t],s=this.getValueInRange(n.range),r=n.rangeOffset+e;e+=n.text.length-s.length,f[t]={sortIndex:n.sortIndex,identifier:n.identifier,range:i,text:s,textChange:new $.k(n.rangeOffset,s,r,n.text)}}l||f.sort(((e,t)=>e.sortIndex-t.sortIndex))}this._mightContainRTL=i,this._mightContainUnusualLineTerminators=s,this._mightContainNonBasicASCII=r;const g=this._doApplyEdits(a);let _=null;if(t&&c.length>0){c.sort(((e,t)=>t.lineNumber-e.lineNumber)),_=[];for(let e=0,t=c.length;e<t;e++){const t=c[e].lineNumber;if(e>0&&c[e-1].lineNumber===t)continue;const n=c[e].oldContent,i=this.getLineContent(t);0!==i.length&&i!==n&&-1===h.HG(i)&&_.push(t)}}return this._onDidChangeContent.fire(),new C.F4(f,g,_)}_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 u=0,g=e.length;u<g;u++){const n=e[u],i=n.range;t=t||n.forceMoveMarkers,a.push(this.getValueInRange(new f.Q(r,o,i.startLineNumber,i.startColumn))),n.text.length>0&&a.push(n.text),r=i.endLineNumber,o=i.endColumn}const h=a.join(""),[l,d,c]=(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:d,lastLineLength:c,forceMoveMarkers:t,isAutoWhitespaceEdit:!1}}_doApplyEdits(e){e.sort(Z._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 K{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 s=0,r=n.length;s<r;s++){const e=n[s].buffer.replace(/\r\n|\r|\n/g,t),i=j(e);n[s]=new Q(e,i)}const i=new Z(n,this._bom,t,this._containsRTL,this._containsUnusualLineTerminators,this._isBasicASCII,this._normalizeEOL);return{textBuffer:i,disposable:i}}}class X{constructor(){this.chunks=[],this.BOM="",this._hasPreviousChar=!1,this._previousChar=0,this._tmpLineStarts=[],this.cr=0,this.lf=0,this.crlf=0,this.containsRTL=!1,this.containsUnusualLineTerminators=!1,this.isBasicASCII=!0}acceptChunk(e){if(0===e.length)return;0===this.chunks.length&&h.LU(e)&&(this.BOM=h.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 h=0,l=t.length;h<l;h++){const a=t.charCodeAt(h);13===a?h+1<l&&10===t.charCodeAt(h+1)?(r++,e[n++]=h+2,h++):(i++,e[n++]=h+1):10===a?(s++,e[n++]=h+1):o&&9!==a&&(a<32||a>126)&&(o=!1)}const a=new W(V(e),i,s,r,o);return e.length=0,a}(this._tmpLineStarts,e);this.chunks.push(new Q(e,t.lineStarts)),this.cr+=t.cr,this.lf+=t.lf,this.crlf+=t.crlf,this.isBasicASCII&&(this.isBasicASCII=t.isBasicASCII),this.isBasicASCII||this.containsRTL||(this.containsRTL=h.E_(e)),this.isBasicASCII||this.containsUnusualLineTerminators||(this.containsUnusualLineTerminators=h.$X(e))}finish(e=!0){return this._finish(),new K(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=j(e.buffer);e.lineStarts=t,13===this._previousChar&&this.cr++}}}var J=n(58181),Y=n(75574),ee=n(41630),te=n(52174),ne=n(721),ie=n(39154),se=n(52622),re=n(85345),oe=n(76394);class ae{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}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 i=0;i<t;i++)n[i]=this._default;this._store=i.nK(this._store,e,n)}}class he{constructor(e,t){this.tokenizationSupport=e,this.initialState=t,this._lineBeginState=new ae(null),this._lineNeedsTokenization=new ae(!0),this._firstLineNeedsTokenization=0,this._lineBeginState.set(0,this.initialState)}get invalidLineStartIndex(){return this._firstLineNeedsTokenization}markMustBeTokenized(e){this._lineNeedsTokenization.set(e,!0),this._firstLineNeedsTokenization=Math.min(this._firstLineNeedsTokenization,e)}getBeginState(e){return this._lineBeginState.get(e)}setEndState(e,t,n){if(this._lineNeedsTokenization.set(t,!1),this._firstLineNeedsTokenization=t+1,t===e-1)return;const i=this._lineBeginState.get(t+1);if(null===i||!n.equals(i))return this._lineBeginState.set(t+1,n),void this.markMustBeTokenized(t+1);let s=t+1;for(;s<e&&!this._lineNeedsTokenization.get(s);)s++;this._firstLineNeedsTokenization=s}applyEdits(e,t){this.markMustBeTokenized(e.startLineNumber-1),this._lineBeginState.delete(e.startLineNumber,e.endLineNumber-e.startLineNumber),this._lineNeedsTokenization.delete(e.startLineNumber,e.endLineNumber-e.startLineNumber),this._lineBeginState.insert(e.startLineNumber,t),this._lineNeedsTokenization.insert(e.startLineNumber,t)}}class le extends a.jG{constructor(e,t,n){super(),this._textModel=e,this._tokenizationPart=t,this._languageIdCodec=n,this._isScheduled=!1,this._isDisposed=!1,this._tokenizationStateStore=null,this._register(te.dG.onDidChange((e=>{const t=this._textModel.getLanguageId();-1!==e.changedLanguages.indexOf(t)&&(this._resetTokenizationState(),this._tokenizationPart.clearTokens())}))),this._resetTokenizationState()}dispose(){this._isDisposed=!0,super.dispose()}handleDidChangeContent(e){if(e.isFlush)this._resetTokenizationState();else{if(this._tokenizationStateStore)for(let t=0,n=e.changes.length;t<n;t++){const n=e.changes[t],[i]=(0,u.W)(n.text);this._tokenizationStateStore.applyEdits(n.range,i)}this._beginBackgroundTokenization()}}handleDidChangeAttached(){this._beginBackgroundTokenization()}handleDidChangeLanguage(e){this._resetTokenizationState(),this._tokenizationPart.clearTokens()}_resetTokenizationState(){const[e,t]=function(e,t){if(e.isTooLargeForTokenization())return[null,null];const n=te.dG.get(t.getLanguageId());if(!n)return[null,null];let i;try{i=n.getInitialState()}catch(s){return(0,r.dz)(s),[null,null]}return[n,i]}(this._textModel,this._tokenizationPart);this._tokenizationStateStore=e&&t?new he(e,t):null,this._beginBackgroundTokenization()}_beginBackgroundTokenization(){!this._isScheduled&&this._textModel.isAttachedToEditor()&&this._hasLinesToTokenize()&&(this._isScheduled=!0,(0,re.cx)((e=>{this._isScheduled=!1,this._backgroundTokenizeWithDeadline(e)})))}_backgroundTokenizeWithDeadline(e){const t=Date.now()+e.timeRemaining(),n=()=>{!this._isDisposed&&this._textModel.isAttachedToEditor()&&this._hasLinesToTokenize()&&(this._backgroundTokenizeForAtLeast1ms(),Date.now()<t?(0,oe._p)(n):this._beginBackgroundTokenization())};n()}_backgroundTokenizeForAtLeast1ms(){const e=this._textModel.getLineCount(),t=new se.Z,n=ie.W.create(!1);do{if(n.elapsed()>1)break;if(this._tokenizeOneInvalidLine(t)>=e)break}while(this._hasLinesToTokenize());this._tokenizationPart.setTokens(t.finalize(),this._isTokenizationComplete())}tokenizeViewport(e,t){const n=new se.Z;this._tokenizeViewport(n,e,t),this._tokenizationPart.setTokens(n.finalize(),this._isTokenizationComplete())}reset(){this._resetTokenizationState(),this._tokenizationPart.clearTokens()}forceTokenization(e){const t=new se.Z;this._updateTokensUntilLine(t,e),this._tokenizationPart.setTokens(t.finalize(),this._isTokenizationComplete())}getTokenTypeIfInsertingCharacter(e,t){if(!this._tokenizationStateStore)return 0;this.forceTokenization(e.lineNumber);const n=this._tokenizationStateStore.getBeginState(e.lineNumber-1);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=ue(this._languageIdCodec,i,this._tokenizationStateStore.tokenizationSupport,r,!0,n),a=new ee.f(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;if(!this._tokenizationStateStore)return null;this.forceTokenization(i);const r=this._tokenizationStateStore.getBeginState(i-1);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=ue(this._languageIdCodec,h,this._tokenizationStateStore.tokenizationSupport,a,!0,r);return new ee.f(l.tokens,a,this._languageIdCodec)}isCheapToTokenize(e){if(!this._tokenizationStateStore)return!0;const t=this._tokenizationStateStore.invalidLineStartIndex+1;return!(e>t)&&(e<t||this._textModel.getLineLength(e)<2048)}_hasLinesToTokenize(){return!!this._tokenizationStateStore&&this._tokenizationStateStore.invalidLineStartIndex<this._textModel.getLineCount()}_isTokenizationComplete(){return!!this._tokenizationStateStore&&this._tokenizationStateStore.invalidLineStartIndex>=this._textModel.getLineCount()}_tokenizeOneInvalidLine(e){if(!this._tokenizationStateStore||!this._hasLinesToTokenize())return this._textModel.getLineCount()+1;const t=this._tokenizationStateStore.invalidLineStartIndex+1;return this._updateTokensUntilLine(e,t),t}_updateTokensUntilLine(e,t){if(!this._tokenizationStateStore)return;const n=this._textModel.getLanguageId(),i=this._textModel.getLineCount(),s=t-1;for(let r=this._tokenizationStateStore.invalidLineStartIndex;r<=s;r++){const t=this._textModel.getLineContent(r+1),s=this._tokenizationStateStore.getBeginState(r),o=ue(this._languageIdCodec,n,this._tokenizationStateStore.tokenizationSupport,t,!0,s);e.add(r+1,o.tokens),this._tokenizationStateStore.setEndState(i,r,o.endState),r=this._tokenizationStateStore.invalidLineStartIndex-1}}_tokenizeViewport(e,t,n){if(!this._tokenizationStateStore)return;if(n<=this._tokenizationStateStore.invalidLineStartIndex)return;if(t<=this._tokenizationStateStore.invalidLineStartIndex)return void this._updateTokensUntilLine(e,n);let i=this._textModel.getLineFirstNonWhitespaceColumn(t);const s=[];let r=null;for(let h=t-1;i>1&&h>=1;h--){const e=this._textModel.getLineFirstNonWhitespaceColumn(h);if(0!==e&&e<i){if(r=this._tokenizationStateStore.getBeginState(h-1),r)break;s.push(this._textModel.getLineContent(h)),i=e}}r||(r=this._tokenizationStateStore.initialState);const o=this._textModel.getLanguageId();let a=r;for(let h=s.length-1;h>=0;h--){a=ue(this._languageIdCodec,o,this._tokenizationStateStore.tokenizationSupport,s[h],!1,a).endState}for(let h=t;h<=n;h++){const t=this._textModel.getLineContent(h),n=ue(this._languageIdCodec,o,this._tokenizationStateStore.tokenizationSupport,t,!0,a);e.add(h,n.tokens),this._tokenizationStateStore.markMustBeTokenized(h-1),a=n.endState}}}function ue(e,t,n,i,s,o){let a=null;if(n)try{a=n.tokenizeEncoded(i,s,o.clone())}catch(h){(0,r.dz)(h)}return a||(a=(0,ne.Lh)(e.encodeLanguageId(t),o)),ee.f.convertToEndOffset(a.tokens,i.length),a}var de=n(98523),ce=n(94787);class fe extends Y._{constructor(e,t,n,i,s){super(),this._languageService=e,this._languageConfigurationService=t,this._textModel=n,this.bracketPairsTextModelPart=i,this._languageId=s,this._onDidChangeLanguage=this._register(new o.vl),this.onDidChangeLanguage=this._onDidChangeLanguage.event,this._onDidChangeLanguageConfiguration=this._register(new o.vl),this.onDidChangeLanguageConfiguration=this._onDidChangeLanguageConfiguration.event,this._onDidChangeTokens=this._register(new o.vl),this.onDidChangeTokens=this._onDidChangeTokens.event,this._backgroundTokenizationState=0,this._onBackgroundTokenizationStateChanged=this._register(new o.vl),this._tokens=new de.y(this._languageService.languageIdCodec),this._semanticTokens=new ce.s(this._languageService.languageIdCodec),this._tokenization=new le(n,this,this._languageService.languageIdCodec),this._languageRegistryListener=this._languageConfigurationService.onDidChange((e=>{e.affects(this._languageId)&&this._onDidChangeLanguageConfiguration.fire({})}))}acceptEdit(e,t,n,i,s){this._tokens.acceptEdit(e,n,i),this._semanticTokens.acceptEdit(e,n,i,s,t.length>0?t.charCodeAt(0):0)}handleDidChangeAttached(){this._tokenization.handleDidChangeAttached()}flush(){this._tokens.flush(),this._semanticTokens.flush()}handleDidChangeContent(e){this._tokenization.handleDidChangeContent(e)}dispose(){this._languageRegistryListener.dispose(),this._tokenization.dispose(),super.dispose()}get backgroundTokenizationState(){return this._backgroundTokenizationState}handleTokenizationProgress(e){if(2===this._backgroundTokenizationState)return;const t=e?2:1;this._backgroundTokenizationState!==t&&(this._backgroundTokenizationState=t,this.bracketPairsTextModelPart.handleDidChangeBackgroundTokenizationState(),this._onBackgroundTokenizationStateChanged.fire())}setTokens(e,t=!1){if(0!==e.length){const t=[];for(let n=0,i=e.length;n<i;n++){const i=e[n];let s=0,r=0,o=!1;for(let e=i.startLineNumber;e<=i.endLineNumber;e++)if(o)this._tokens.setTokens(this._languageId,e-1,this._textModel.getLineLength(e),i.getLineTokens(e),!1),r=e;else{this._tokens.setTokens(this._languageId,e-1,this._textModel.getLineLength(e),i.getLineTokens(e),!0)&&(o=!0,s=e,r=e)}o&&t.push({fromLineNumber:s,toLineNumber:r})}t.length>0&&this._emitModelTokensChangedEvent({tokenizationSupportChanged:!1,semanticTokensApplied:!1,ranges:t})}this.handleTokenizationProgress(t)}setSemanticTokens(e,t){this._semanticTokens.set(e,t),this._emitModelTokensChangedEvent({tokenizationSupportChanged:!1,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({tokenizationSupportChanged:!1,semanticTokensApplied:!0,ranges:[{fromLineNumber:n.startLineNumber,toLineNumber:n.endLineNumber}]})}tokenizeViewport(e,t){e=Math.max(1,e),t=Math.min(this._textModel.getLineCount(),t),this._tokenization.tokenizeViewport(e,t)}clearTokens(){this._tokens.flush(),this._emitModelTokensChangedEvent({tokenizationSupportChanged:!0,semanticTokensApplied:!1,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]})}_emitModelTokensChangedEvent(e){this._textModel._isDisposing()||(this.bracketPairsTextModelPart.handleDidChangeTokens(e),this._onDidChangeTokens.fire(e))}resetTokenization(){this._tokenization.reset()}forceTokenization(e){if(e<1||e>this._textModel.getLineCount())throw new Error("Illegal value for lineNumber");this._tokenization.forceTokenization(e)}isCheapToTokenize(e){return this._tokenization.isCheapToTokenize(e)}tokenizeIfCheap(e){this.isCheapToTokenize(e)&&this.forceTokenization(e)}getLineTokens(e){if(e<1||e>this._textModel.getLineCount())throw new Error("Illegal value for lineNumber");return this._getLineTokens(e)}_getLineTokens(e){const t=this._textModel.getLineContent(e),n=this._tokens.getTokens(this._languageId,e-1,t);return this._semanticTokens.addSparseTokens(e,n)}getTokenTypeIfInsertingCharacter(e,t,n){const i=this._textModel.validatePosition(new c.y(e,t));return this._tokenization.getTokenTypeIfInsertingCharacter(i,n)}tokenizeLineWithEdit(e,t,n){const i=this._textModel.validatePosition(e);return this._tokenization.tokenizeLineWithEdit(i,t,n)}getLanguageConfiguration(e){return this._languageConfigurationService.getLanguageConfiguration(e)}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]=fe._findLanguageBoundaries(i,s),a=(0,J.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]=fe._findLanguageBoundaries(i,s-1),a=(0,J.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}static _findLanguageBoundaries(e,t){const n=e.getLanguageId(t);let i=0;for(let r=t;r>=0&&e.getLanguageId(r)===n;r--)i=e.getStartOffset(r);let s=e.getLineContent().length;for(let r=t,o=e.getCount();r<o&&e.getLanguageId(r)===n;r++)s=e.getEndOffset(r);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 c.y(e,t)),i=this.getLineTokens(n.lineNumber);return i.getLanguageId(i.findTokenIndexAtOffset(n.column-1))}setLanguageId(e){if(this._languageId===e)return;const t={oldLanguage:this._languageId,newLanguage:e};this._languageId=e,this.bracketPairsTextModelPart.handleDidChangeLanguage(t),this._tokenization.handleDidChangeLanguage(t),this._onDidChangeLanguage.fire(t),this._onDidChangeLanguageConfiguration.fire({})}}var ge=n(41516),_e=n(60332),pe=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},me=function(e,t){return function(n,i){t(n,i,e)}};function Ce(e){const t=new X;return t.acceptChunk(e),t.finish()}function Le(e,t){return("string"===typeof e?Ce(e):e).create(t)}let be=0;class Ie{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 xe=()=>{throw new Error("Invalid change accessor")};let Se=class e extends a.jG{constructor(t,n,i,s=null,r,a,u){super(),this._undoRedoService=r,this._languageService=a,this._languageConfigurationService=u,this._onWillDispose=this._register(new o.vl),this.onWillDispose=this._onWillDispose.event,this._onDidChangeDecorations=this._register(new Re((e=>this.handleBeforeFireDecorationsChangedEvent(e)))),this.onDidChangeDecorations=this._onDidChangeDecorations.event,this._onDidChangeOptions=this._register(new o.vl),this.onDidChangeOptions=this._onDidChangeOptions.event,this._onDidChangeAttached=this._register(new o.vl),this.onDidChangeAttached=this._onDidChangeAttached.event,this._onDidChangeInjectedText=this._register(new o.vl),this._eventEmitter=this._register(new Be),this._deltaDecorationCallCnt=0,be++,this.id="$model"+be,this.isForSimpleWidget=i.isForSimpleWidget,this._associatedResource="undefined"===typeof s||null===s?l.r.parse("inmemory://model/"+be):s,this._attachedEditorCount=0;const{textBuffer:d,disposable:c}=Le(t,i.defaultEOL);this._buffer=d,this._bufferDisposable=c,this._options=e.resolveOptions(this._buffer,i),this._bracketPairs=this._register(new L.J(this,this._languageConfigurationService)),this._guidesTextModelPart=this._register(new x.P(this,this._languageConfigurationService)),this._decorationProvider=this._register(new b.I(this)),this._tokenizationTextModelPart=new fe(this._languageService,this._languageConfigurationService,this,this._bracketPairs,n);const g=this._buffer.getLineCount(),_=this._buffer.getValueLengthInRange(new f.Q(1,1,g,this._buffer.getLineLength(g)+1),0);i.largeFileOptimizations?this._isTooLargeForTokenization=_>e.LARGE_FILE_SIZE_THRESHOLD||g>e.LARGE_FILE_LINE_COUNT_THRESHOLD:this._isTooLargeForTokenization=!1,this._isTooLargeForSyncing=_>e.MODEL_SYNC_LIMIT,this._versionId=1,this._alternativeVersionId=1,this._initialUndoRedoSnapshot=null,this._isDisposed=!1,this.__isDisposing=!1,this._instanceId=h.tk(be),this._lastDecorationId=0,this._decorations=Object.create(null),this._decorationsTree=new ke,this._commandManager=new I.z8(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()})))}static resolveOptions(e,t){if(t.detectIndentation){const n=(0,S.v)(e,t.tabSize,t.insertSpaces);return new C.X2({tabSize:n.tabSize,indentSize:n.tabSize,insertSpaces:n.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL,bracketPairColorizationOptions:t.bracketPairColorizationOptions})}return new C.X2({tabSize:t.tabSize,indentSize:t.indentSize,insertSpaces:t.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL,bracketPairColorizationOptions:t.bracketPairColorizationOptions})}get onDidChangeLanguage(){return this._tokenizationTextModelPart.onDidChangeLanguage}get onDidChangeLanguageConfiguration(){return this._tokenizationTextModelPart.onDidChangeLanguageConfiguration}get onDidChangeTokens(){return this._tokenizationTextModelPart.onDidChangeTokens}onDidChangeContent(e){return this._eventEmitter.slowEvent((t=>e(t.contentChangedEvent)))}onDidChangeContentOrInjectedText(e){return(0,a.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}dispose(){this.__isDisposing=!0,this._onWillDispose.fire(),this._tokenizationTextModelPart.dispose(),this._isDisposed=!0,super.dispose(),this._bufferDisposable.dispose(),this.__isDisposing=!1;const e=new Z([],"","\n",!1,!1,!0,!0);e.dispose(),this._buffer=e,this._bufferDisposable=a.jG.None}_assertNotDisposed(){if(this._isDisposed)throw new Error("Model is disposed!")}_emitContentChangedEvent(e,t){this.__isDisposing||(this._tokenizationTextModelPart.handleDidChangeContent(t),this._bracketPairs.handleDidChangeContent(t),this._eventEmitter.fire(new ge.Ic(e,t)))}setValue(e){if(this._assertNotDisposed(),null===e)return;const{textBuffer:t,disposable:n}=Le(e,this._options.defaultEOL);this._setValueFromTextBuffer(t,n)}_createContentChanged2(e,t,n,i,s,r,o){return{changes:[{range:e,rangeOffset:t,rangeLength:n,text:i}],eol:this._buffer.getEOL(),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._tokenizationTextModelPart.flush(),this._decorations=Object.create(null),this._decorationsTree=new ke,this._commandManager.clear(),this._trimAutoWhitespaceLines=null,this._emitContentChangedEvent(new ge.HP([new ge.Wn],this._versionId,!1,!1),this._createContentChanged2(new f.Q(1,1,s,r),0,i,this.getValue(),!1,!1,!0))}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 ge.HP([new ge.mS],this._versionId,!1,!1),this._createContentChanged2(new f.Q(1,1,s,r),0,i,this.getValue(),!1,!1,!1))}_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,(0,N.KJ)(i)}}onBeforeAttached(){this._attachedEditorCount++,1===this._attachedEditorCount&&(this._tokenizationTextModelPart.handleDidChangeAttached(),this._onDidChangeAttached.fire(void 0))}onBeforeDetached(){this._attachedEditorCount--,0===this._attachedEditorCount&&(this._tokenizationTextModelPart.handleDidChangeAttached(),this._onDidChangeAttached.fire(void 0))}isAttachedToEditor(){return this._attachedEditorCount>0}getAttachedEditorCount(){return this._attachedEditorCount}isTooLargeForSyncing(){return this._isTooLargeForSyncing}isTooLargeForTokenization(){return this._isTooLargeForTokenization}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="undefined"!==typeof e.tabSize?e.tabSize:this._options.tabSize,n="undefined"!==typeof e.indentSize?e.indentSize:this._options.indentSize,i="undefined"!==typeof e.insertSpaces?e.insertSpaces:this._options.insertSpaces,s="undefined"!==typeof e.trimAutoWhitespace?e.trimAutoWhitespace:this._options.trimAutoWhitespace,r="undefined"!==typeof e.bracketColorizationOptions?e.bracketColorizationOptions:this._options.bracketPairColorizationOptions,o=new C.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=(0,S.v)(this._buffer,t,e);this.updateOptions({insertSpaces:n.insertSpaces,tabSize:n.tabSize,indentSize:n.tabSize})}normalizeIndentation(e){return this._assertNotDisposed(),(0,d.P)(e,this._options.indentSize,this._options.insertSpaces)}getVersionId(){return this._assertNotDisposed(),this._versionId}mightContainRTL(){return this._buffer.mightContainRTL()}mightContainUnusualLineTerminators(){return this._buffer.mightContainUnusualLineTerminators()}removeUnusualLineTerminators(e=null){const t=this.findMatches(h._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){this._assertNotDisposed();const n=this.getFullModelRange(),i=this.getValueInRange(n,e);return t?this._buffer.getBOM()+i:i}createSnapshot(e=!1){return new Ie(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 Error("Illegal value for lineNumber");return this._buffer.getLineContent(e)}getLineLength(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineLength(e)}getLinesContent(){return this._assertNotDisposed(),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 Error("Illegal value for lineNumber");return this._buffer.getLineLength(e)+1}getLineFirstNonWhitespaceColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineFirstNonWhitespaceColumn(e)}getLineLastNonWhitespaceColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("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 g.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(h.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 c.y(1,1);if(i>r)return new c.y(r,this.getLineMaxColumn(r));if(s<=1)return new c.y(i,1);const o=this.getLineMaxColumn(i);if(s>=o)return new c.y(i,o);if(1===n){const e=this._buffer.getLineCharCode(i,s-2);if(h.pc(e))return new c.y(i,s-1)}return new c.y(i,s)}validatePosition(e){return this._assertNotDisposed(),e instanceof c.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=h.pc(e),a=h.pc(t);return!o&&!a}return!0}validateRange(e){if(this._assertNotDisposed(),e instanceof f.Q&&!(e instanceof g.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=h.pc(e),a=h.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 P.lt(e,n,i,s).parseSearchRequest();if(!t)return[];l=e=>this.findMatchesLineByLine(e,t,r,o)}else l=t=>P.hB.findMatches(this,new P.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 P.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 P.hB.findNextMatch(this,new P.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 P.hB.findNextMatch(this,new P.lt(e,n,i,s),o,r)}findPreviousMatch(e,t,n,i,s,r){this._assertNotDisposed();const o=this.validatePosition(t);return P.hB.findPreviousMatch(this,new P.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 C.Wo?e:new C.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){try{return this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._pushEditOperations(e,this._validateEditOperations(t),n)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_pushEditOperations(e,t,n){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,s=this._trimAutoWhitespaceLines.length;e<s;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 C.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)}_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(),s=this._buffer.applyEdits(e,this._options.trimAutoWhitespace,t),r=this._buffer.getLineCount(),o=s.changes;if(this._trimAutoWhitespaceLines=s.trimAutoWhitespaceLineNumbers,0!==o.length){for(let n=0,i=o.length;n<i;n++){const e=o[n],[t,i,s]=(0,u.W)(e.text);this._tokenizationTextModelPart.acceptEdit(e.range,e.text,t,i,s),this._decorationsTree.acceptReplace(e.rangeOffset,e.rangeLength,e.text.length,e.forceMoveMarkers)}const e=[];this._increaseVersionId();let t=n;for(let n=0,s=o.length;n<s;n++){const s=o[n],[a]=(0,u.W)(s.text);this._onDidChangeDecorations.fire();const h=s.range.startLineNumber,l=s.range.endLineNumber,d=l-h,f=a,g=Math.min(d,f),_=f-d,p=r-t-_+h,m=p,C=p+f,L=this._decorationsTree.getInjectedTextInInterval(this,this.getOffsetAt(new c.y(m,1)),this.getOffsetAt(new c.y(C,this.getLineMaxColumn(C))),0),b=ge.uK.fromDecorations(L),I=new i.j3(b);for(let t=g;t>=0;t--){const n=h+t,i=p+t;I.takeFromEndWhile((e=>e.lineNumber>i));const s=I.takeFromEndWhile((e=>e.lineNumber===i));e.push(new ge.U0(n,this.getLineContent(i),s))}if(g<d){const t=h+g;e.push(new ge.E$(t+1,l))}if(g<f){const n=new i.j3(b),s=h+g,o=f-g,a=r-t-o+s+1,l=[],u=[];for(let e=0;e<o;e++){const t=a+e;u[e]=this.getLineContent(t),n.takeWhile((e=>e.lineNumber<t)),l[e]=n.takeWhile((e=>e.lineNumber===t))}e.push(new ge.bg(s+1,h+f,u,l))}t+=_}this._emitContentChangedEvent(new ge.HP(e,this.getVersionId(),this._isUndoing,this._isRedoing),{changes:o,eol:this._buffer.getEOL(),versionId:this.getVersionId(),isUndoing:this._isUndoing,isRedoing:this._isRedoing,isFlush:!1})}return null===s.reverseEdits?void 0:s.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 ge.U0(e,this.getLineContent(e),this._getInjectedTextInLine(e))));this._onDidChangeInjectedText.fire(new ge.vn(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,Oe(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(s){(0,r.dz)(s)}return n.addDecoration=xe,n.changeDecoration=xe,n.changeDecorationOptions=xe,n.removeDecoration=xe,n.deltaDecorations=xe,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,r.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:Ae[n]}])[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(Ae[n]),this._decorationsTree.insert(i),i.id}removeAllDecorationsWithOwnerId(e){if(this._isDisposed)return;const t=this._decorationsTree.collectNodesFromOwner(e);for(let n=0,i=t.length;n<i;n++){const e=t[n];this._decorationsTree.delete(e),delete this._decorations[e.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,s=!1){const r=this.getLineCount(),o=Math.min(r,Math.max(1,e)),a=Math.min(r,Math.max(1,t)),h=this.getLineMaxColumn(a),l=new f.Q(o,1,a,h),u=this._getDecorationsInRange(l,n,s);return(0,i.E4)(u,this._decorationProvider.getDecorationsInRange(l,n,s)),u}getDecorationsInRange(e,t=0,n=!1){const s=this.validateRange(e),r=this._getDecorationsInRange(s,t,n);return(0,i.E4)(r,this._decorationProvider.getDecorationsInRange(s,t,n)),r}getOverviewRulerDecorations(e=0,t=!1){return this._decorationsTree.getAll(this,e,t,!0)}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 ge.uK.fromDecorations(i).filter((t=>t.lineNumber===e))}getAllDecorations(e=0,t=!1){let n=this._decorationsTree.getAll(this,e,t,!1);return n=n.concat(this._decorationProvider.getAllDecorations(e,t)),n}_getDecorationsInRange(e,t,n){const i=this._buffer.getOffsetAt(e.startLineNumber,e.startColumn),s=this._buffer.getOffsetAt(e.endLineNumber,e.endColumn);return this._decorationsTree.getAllInInterval(this,i,s,t,n)}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)}i!==s?(this._decorationsTree.delete(n),n.setOptions(t),this._decorationsTree.insert(n)):n.setOptions(t)}_deltaDecorationsImpl(e,t,n){const i=this.getVersionId(),s=t.length;let r=0;const o=n.length;let a=0;const h=new Array(o);for(;r<s||a<o;){let l=null;if(r<s){do{l=this._decorations[t[r++]]}while(!l&&r<s);if(l){if(l.options.after){const e=this._decorationsTree.getNodeRange(this,l);this._onDidChangeDecorations.recordLineAffectedByInjectedText(e.endLineNumber)}if(l.options.before){const e=this._decorationsTree.getNodeRange(this,l);this._onDidChangeDecorations.recordLineAffectedByInjectedText(e.startLineNumber)}this._decorationsTree.delete(l),this._onDidChangeDecorations.checkAffectedAndFire(l.options)}}if(a<o){if(!l){const e=++this._lastDecorationId,t=`${this._instanceId};${e}`;l=new N.CW(t,0,0),this._decorations[t]=l}const t=n[a],s=this._validateRangeRelaxedNoAllocations(t.range),r=Oe(t.options),o=this._buffer.getOffsetAt(s.startLineNumber,s.startColumn),u=this._buffer.getOffsetAt(s.endLineNumber,s.endColumn);l.ownerId=e,l.reset(i,o,u,s),l.setOptions(r),l.options.after&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(s.endLineNumber),l.options.before&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(s.startLineNumber),this._onDidChangeDecorations.checkAffectedAndFire(r),this._decorationsTree.insert(l),h[a]=l.id,a++}else l&&delete this._decorations[l.id]}return h}getLanguageId(){return this.tokenization.getLanguageId()}setMode(e){this.tokenization.setLanguageId(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 Ne(e){return!(!e.options.overviewRuler||!e.options.overviewRuler.color)}function ve(e){return!!e.options.after||!!e.options.before}Se.MODEL_SYNC_LIMIT=52428800,Se.LARGE_FILE_SIZE_THRESHOLD=20971520,Se.LARGE_FILE_LINE_COUNT_THRESHOLD=3e5,Se.DEFAULT_CREATION_OPTIONS={isForSimpleWidget:!1,tabSize:_.R.tabSize,indentSize:_.R.indentSize,insertSpaces:_.R.insertSpaces,detectIndentation:!1,defaultEOL:1,trimAutoWhitespace:_.R.trimAutoWhitespace,largeFileOptimizations:_.R.largeFileOptimizations,bracketPairColorizationOptions:_.R.bracketPairColorizationOptions},Se=pe([me(4,_e.$D),me(5,p.L),me(6,m.JZ)],Se);class ke{constructor(){this._decorationsTree0=new N.MF,this._decorationsTree1=new N.MF,this._injectedTextDecorationsTree=new N.MF}ensureAllNodesHaveRanges(e){this.getAll(e,0,!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){const r=e.getVersionId(),o=this._intervalSearch(t,n,i,s,r);return this._ensureNodesHaveRanges(e,o)}_intervalSearch(e,t,n,i,s){const r=this._decorationsTree0.intervalSearch(e,t,n,i,s),o=this._decorationsTree1.intervalSearch(e,t,n,i,s),a=this._injectedTextDecorationsTree.intervalSearch(e,t,n,i,s);return r.concat(o).concat(a)}getInjectedTextInInterval(e,t,n,i){const s=e.getVersionId(),r=this._injectedTextDecorationsTree.intervalSearch(t,n,i,!1,s);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);return this._ensureNodesHaveRanges(e,i).filter((e=>e.options.showIfCollapsed||!e.range.isEmpty()))}getAll(e,t,n,i){const s=e.getVersionId(),r=this._search(t,n,i,s);return this._ensureNodesHaveRanges(e,r)}_search(e,t,n,i){if(n)return this._decorationsTree1.search(e,t,i);{const n=this._decorationsTree0.search(e,t,i),s=this._decorationsTree1.search(e,t,i),r=this._injectedTextDecorationsTree.search(e,t,i);return n.concat(s).concat(r)}}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){ve(e)?this._injectedTextDecorationsTree.insert(e):Ne(e)?this._decorationsTree1.insert(e):this._decorationsTree0.insert(e)}delete(e){ve(e)?this._injectedTextDecorationsTree.delete(e):Ne(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){ve(e)?this._injectedTextDecorationsTree.resolveNode(e,t):Ne(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 Te(e){return e.replace(/[^a-z0-9\-_]/gi," ")}class De{constructor(e){this.color=e.color||"",this.darkColor=e.darkColor||""}}class we extends De{constructor(e){super(e),this._resolvedColor=null,this.position="number"===typeof e.position?e.position:C.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 Ee extends De{constructor(e){super(e),this.position=e.position}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?s.Q1.fromHex(e):t.getColor(e.id)}}class Me{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}static from(e){return e instanceof Me?e:new Me(e)}}class ze{constructor(e){var t,n;this.description=e.description,this.blockClassName=e.blockClassName?Te(e.blockClassName):null,this.stickiness=e.stickiness||0,this.zIndex=e.zIndex||0,this.className=e.className?Te(e.className):null,this.hoverMessage=e.hoverMessage||null,this.glyphMarginHoverMessage=e.glyphMarginHoverMessage||null,this.isWholeLine=e.isWholeLine||!1,this.showIfCollapsed=e.showIfCollapsed||!1,this.collapseOnReplaceEdit=e.collapseOnReplaceEdit||!1,this.overviewRuler=e.overviewRuler?new we(e.overviewRuler):null,this.minimap=e.minimap?new Ee(e.minimap):null,this.glyphMarginClassName=e.glyphMarginClassName?Te(e.glyphMarginClassName):null,this.linesDecorationsClassName=e.linesDecorationsClassName?Te(e.linesDecorationsClassName):null,this.firstLineDecorationClassName=e.firstLineDecorationClassName?Te(e.firstLineDecorationClassName):null,this.marginClassName=e.marginClassName?Te(e.marginClassName):null,this.inlineClassName=e.inlineClassName?Te(e.inlineClassName):null,this.inlineClassNameAffectsLetterSpacing=e.inlineClassNameAffectsLetterSpacing||!1,this.beforeContentClassName=e.beforeContentClassName?Te(e.beforeContentClassName):null,this.afterContentClassName=e.afterContentClassName?Te(e.afterContentClassName):null,this.after=e.after?Me.from(e.after):null,this.before=e.before?Me.from(e.before):null,this.hideInCommentTokens=null!==(t=e.hideInCommentTokens)&&void 0!==t&&t,this.hideInStringTokens=null!==(n=e.hideInStringTokens)&&void 0!==n&&n}static register(e){return new ze(e)}static createDynamic(e){return new ze(e)}}ze.EMPTY=ze.register({description:"empty"});const Ae=[ze.register({description:"tracked-range-always-grows-when-typing-at-edges",stickiness:0}),ze.register({description:"tracked-range-never-grows-when-typing-at-edges",stickiness:1}),ze.register({description:"tracked-range-grows-only-when-typing-before",stickiness:2}),ze.register({description:"tracked-range-grows-only-when-typing-after",stickiness:3})];function Oe(e){return e instanceof ze?e:ze.createDynamic(e)}class Re extends a.jG{constructor(e){super(),this.handleBeforeFire=e,this._actual=this._register(new o.vl),this.event=this._actual.event,this._affectedInjectedTextLines=null,this._deferredCnt=0,this._shouldFire=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(){var e;if(this._deferredCnt--,0===this._deferredCnt){if(this._shouldFire){this.handleBeforeFire(this._affectedInjectedTextLines);const e={affectsMinimap:this._affectsMinimap,affectsOverviewRuler:this._affectsOverviewRuler};this._shouldFire=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._actual.fire(e)}null===(e=this._affectedInjectedTextLines)||void 0===e||e.clear(),this._affectedInjectedTextLines=null}}recordLineAffectedByInjectedText(e){this._affectedInjectedTextLines||(this._affectedInjectedTextLines=new Set),this._affectedInjectedTextLines.add(e)}checkAffectedAndFire(e){this._affectsMinimap||(this._affectsMinimap=!(!e.minimap||!e.minimap.position)),this._affectsOverviewRuler||(this._affectsOverviewRuler=!(!e.overviewRuler||!e.overviewRuler.color)),this._shouldFire=!0}fire(){this._affectsMinimap=!0,this._affectsOverviewRuler=!0,this._shouldFire=!0}}class Be extends a.jG{constructor(){super(),this._fastEmitter=this._register(new o.vl),this.fastEvent=this._fastEmitter.event,this._slowEmitter=this._register(new o.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))}}},75574:(e,t,n)=>{n.d(t,{_:()=>s});var i=n(33793);class s extends i.jG{constructor(){super(...arguments),this._isDisposed=!1}dispose(){super.dispose(),this._isDisposed=!0}assertNotDisposed(){if(this._isDisposed)throw new Error("TextModelPart is disposed!")}}},62179:(e,t,n)=>{n.d(t,{W5:()=>f,dr:()=>l,hB:()=>d,lt:()=>h,wC:()=>c});var i=n(22231),s=n(9119),r=n(63102),o=n(93708),a=n(1528);class h{constructor(e,t,n,i){this.searchString=e,this.isRegex=t,this.matchCase=n,this.wordSeparators=i}parseSearchRequest(){if(""===this.searchString)return null;let e;e=this.isRegex?function(e){if(!e||0===e.length)return!1;for(let t=0,n=e.length;t<n;t++){const i=e.charCodeAt(t);if(10===i)return!0;if(92===i){if(t++,t>=n)break;const i=e.charCodeAt(t);if(110===i||114===i||87===i)return!0}}return!1}(this.searchString):this.searchString.indexOf("\n")>=0;let t=null;try{t=i.OS(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:!1,multiline:e,global:!0,unicode:!0})}catch(r){return null}if(!t)return null;let n=!this.isRegex&&!e;return n&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()&&(n=this.matchCase),new a.L5(t,this.wordSeparators?(0,s.i)(this.wordSeparators):null,n?this.searchString:null)}}function l(e,t,n){if(!n)return new a.Dg(e,null);const i=[];for(let s=0,r=t.length;s<r;s++)i[s]=t[s];return new a.Dg(e,i)}class u{constructor(e){const t=[];let n=0;for(let i=0,s=e.length;i<s;i++)10===e.charCodeAt(i)&&(t[n++]=i);this._lineFeedsOffsets=t}findLineFeedCountBeforeOffset(e){const t=this._lineFeedsOffsets;let n=0,i=t.length-1;if(-1===i)return 0;if(e<=t[0])return 0;for(;n<i;){const s=n+((i-n)/2|0);t[s]>=e?i=s-1:t[s+1]>=e?(n=s,i=s):n=s+1}return n+1}}class d{static findMatches(e,t,n,i,s){const r=t.parseSearchRequest();return r?r.regex.multiline?this._doFindMatchesMultiline(e,n,new f(r.wordSeparators,r.regex),i,s):this._doFindMatchesLineByLine(e,n,r,i,s):[]}static _getMultilineMatchRange(e,t,n,i,s,r){let a,h,l=0;if(i?(l=i.findLineFeedCountBeforeOffset(s),a=t+s+l):a=t+s,i){const e=i.findLineFeedCountBeforeOffset(s+r.length)-l;h=a+r.length+e}else h=a+r.length;const u=e.getPositionAt(a),d=e.getPositionAt(h);return new o.Q(u.lineNumber,u.column,d.lineNumber,d.column)}static _doFindMatchesMultiline(e,t,n,i,s){const r=e.getOffsetAt(t.getStartPosition()),o=e.getValueInRange(t,1),a="\r\n"===e.getEOL()?new u(o):null,h=[];let d,c=0;for(n.reset(0);d=n.next(o);)if(h[c++]=l(this._getMultilineMatchRange(e,r,o,a,d.index,d[0]),d,i),c>=s)return h;return h}static _doFindMatchesLineByLine(e,t,n,i,s){const r=[];let o=0;if(t.startLineNumber===t.endLineNumber){const a=e.getLineContent(t.startLineNumber).substring(t.startColumn-1,t.endColumn-1);return o=this._findMatchesInLine(n,a,t.startLineNumber,t.startColumn-1,o,r,i,s),r}const a=e.getLineContent(t.startLineNumber).substring(t.startColumn-1);o=this._findMatchesInLine(n,a,t.startLineNumber,t.startColumn-1,o,r,i,s);for(let h=t.startLineNumber+1;h<t.endLineNumber&&o<s;h++)o=this._findMatchesInLine(n,e.getLineContent(h),h,0,o,r,i,s);if(o<s){const a=e.getLineContent(t.endLineNumber).substring(0,t.endColumn-1);o=this._findMatchesInLine(n,a,t.endLineNumber,0,o,r,i,s)}return r}static _findMatchesInLine(e,t,n,i,s,r,h,u){const d=e.wordSeparators;if(!h&&e.simpleSearch){const h=e.simpleSearch,l=h.length,f=t.length;let g=-l;for(;-1!==(g=t.indexOf(h,g+l));)if((!d||c(d,t,f,g,l))&&(r[s++]=new a.Dg(new o.Q(n,g+1+i,n,g+1+l+i),null),s>=u))return s;return s}const g=new f(e.wordSeparators,e.regex);let _;g.reset(0);do{if(_=g.next(t),_&&(r[s++]=l(new o.Q(n,_.index+1+i,n,_.index+1+_[0].length+i),_,h),s>=u))return s}while(_);return s}static findNextMatch(e,t,n,i){const s=t.parseSearchRequest();if(!s)return null;const r=new f(s.wordSeparators,s.regex);return s.regex.multiline?this._doFindNextMatchMultiline(e,n,r,i):this._doFindNextMatchLineByLine(e,n,r,i)}static _doFindNextMatchMultiline(e,t,n,i){const s=new r.y(t.lineNumber,1),a=e.getOffsetAt(s),h=e.getLineCount(),d=e.getValueInRange(new o.Q(s.lineNumber,s.column,h,e.getLineMaxColumn(h)),1),c="\r\n"===e.getEOL()?new u(d):null;n.reset(t.column-1);const f=n.next(d);return f?l(this._getMultilineMatchRange(e,a,d,c,f.index,f[0]),f,i):1!==t.lineNumber||1!==t.column?this._doFindNextMatchMultiline(e,new r.y(1,1),n,i):null}static _doFindNextMatchLineByLine(e,t,n,i){const s=e.getLineCount(),r=t.lineNumber,o=e.getLineContent(r),a=this._findFirstMatchInLine(n,o,r,t.column,i);if(a)return a;for(let h=1;h<=s;h++){const t=(r+h-1)%s,o=e.getLineContent(t+1),a=this._findFirstMatchInLine(n,o,t+1,1,i);if(a)return a}return null}static _findFirstMatchInLine(e,t,n,i,s){e.reset(i-1);const r=e.next(t);return r?l(new o.Q(n,r.index+1,n,r.index+1+r[0].length),r,s):null}static findPreviousMatch(e,t,n,i){const s=t.parseSearchRequest();if(!s)return null;const r=new f(s.wordSeparators,s.regex);return s.regex.multiline?this._doFindPreviousMatchMultiline(e,n,r,i):this._doFindPreviousMatchLineByLine(e,n,r,i)}static _doFindPreviousMatchMultiline(e,t,n,i){const s=this._doFindMatchesMultiline(e,new o.Q(1,1,t.lineNumber,t.column),n,i,9990);if(s.length>0)return s[s.length-1];const a=e.getLineCount();return t.lineNumber!==a||t.column!==e.getLineMaxColumn(a)?this._doFindPreviousMatchMultiline(e,new r.y(a,e.getLineMaxColumn(a)),n,i):null}static _doFindPreviousMatchLineByLine(e,t,n,i){const s=e.getLineCount(),r=t.lineNumber,o=e.getLineContent(r).substring(0,t.column-1),a=this._findLastMatchInLine(n,o,r,i);if(a)return a;for(let h=1;h<=s;h++){const t=(s+r-h-1)%s,o=e.getLineContent(t+1),a=this._findLastMatchInLine(n,o,t+1,i);if(a)return a}return null}static _findLastMatchInLine(e,t,n,i){let s,r=null;for(e.reset(0);s=e.next(t);)r=l(new o.Q(n,s.index+1,n,s.index+1+s[0].length),s,i);return r}}function c(e,t,n,i,s){return function(e,t,n,i,s){if(0===i)return!0;const r=t.charCodeAt(i-1);if(0!==e.get(r))return!0;if(13===r||10===r)return!0;if(s>0){const n=t.charCodeAt(i);if(0!==e.get(n))return!0}return!1}(e,t,0,i,s)&&function(e,t,n,i,s){if(i+s===n)return!0;const r=t.charCodeAt(i+s);if(0!==e.get(r))return!0;if(13===r||10===r)return!0;if(s>0){const n=t.charCodeAt(i+s-1);if(0!==e.get(n))return!0}return!1}(e,t,n,i,s)}class f{constructor(e,t){this._wordSeparators=e,this._searchRegex=t,this._prevMatchStartIndex=-1,this._prevMatchLength=0}reset(e){this._searchRegex.lastIndex=e,this._prevMatchStartIndex=-1,this._prevMatchLength=0}next(e){const t=e.length;let n;do{if(this._prevMatchStartIndex+this._prevMatchLength===t)return null;if(n=this._searchRegex.exec(e),!n)return null;const s=n.index,r=n[0].length;if(s===this._prevMatchStartIndex&&r===this._prevMatchLength){if(0===r){i.Z5(e,t,this._searchRegex.lastIndex)>65535?this._searchRegex.lastIndex+=2:this._searchRegex.lastIndex+=1;continue}return null}if(this._prevMatchStartIndex=s,this._prevMatchLength=r,!this._wordSeparators||c(this._wordSeparators,e,t,s,r))return n}while(n);return null}}},44458:(e,t,n)=>{function i(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}n.d(t,{G:()=>i})}}]);
|
|
1
|
+
"use strict";(globalThis.webpackChunkemail_maker=globalThis.webpackChunkemail_maker||[]).push([[5234],{93750:(e,t,n)=>{n.d(t,{Y:()=>o});var i=n(22231),s=n(63102),r=n(29733);class o{constructor(e,t,n,i){this._uri=e,this._lines=t,this._eol=n,this._versionId=i,this._lineStarts=null,this._cachedTextValue=null}dispose(){this._lines.length=0}get version(){return this._versionId}getText(){return null===this._cachedTextValue&&(this._cachedTextValue=this._lines.join(this._eol)),this._cachedTextValue}onEvents(e){e.eol&&e.eol!==this._eol&&(this._eol=e.eol,this._lineStarts=null);const t=e.changes;for(const n of t)this._acceptDeleteRange(n.range),this._acceptInsertText(new s.y(n.range.startLineNumber,n.range.startColumn),n.text);this._versionId=e.versionId,this._cachedTextValue=null}_ensureLineStarts(){if(!this._lineStarts){const e=this._eol.length,t=this._lines.length,n=new Uint32Array(t);for(let i=0;i<t;i++)n[i]=this._lines[i].length+e;this._lineStarts=new r.N(n)}}_setLineText(e,t){this._lines[e]=t,this._lineStarts&&this._lineStarts.setValue(e,this._lines[e].length+this._eol.length)}_acceptDeleteRange(e){if(e.startLineNumber!==e.endLineNumber)this._setLineText(e.startLineNumber-1,this._lines[e.startLineNumber-1].substring(0,e.startColumn-1)+this._lines[e.endLineNumber-1].substring(e.endColumn-1)),this._lines.splice(e.startLineNumber,e.endLineNumber-e.startLineNumber),this._lineStarts&&this._lineStarts.removeValues(e.startLineNumber,e.endLineNumber-e.startLineNumber);else{if(e.startColumn===e.endColumn)return;this._setLineText(e.startLineNumber-1,this._lines[e.startLineNumber-1].substring(0,e.startColumn-1)+this._lines[e.startLineNumber-1].substring(e.endColumn-1))}}_acceptInsertText(e,t){if(0===t.length)return;const n=(0,i.uz)(t);if(1===n.length)return void this._setLineText(e.lineNumber-1,this._lines[e.lineNumber-1].substring(0,e.column-1)+n[0]+this._lines[e.lineNumber-1].substring(e.column-1));n[n.length-1]+=this._lines[e.lineNumber-1].substring(e.column-1),this._setLineText(e.lineNumber-1,this._lines[e.lineNumber-1].substring(0,e.column-1)+n[0]);const s=new Uint32Array(n.length-1);for(let i=1;i<n.length;i++)this._lines.splice(e.lineNumber+i-1,0,n[i]),s[i-1]=n[i].length+this._eol.length;this._lineStarts&&this._lineStarts.insertValues(e.lineNumber,s)}}},29733:(e,t,n)=>{n.d(t,{N:()=>r,c2:()=>o});var i=n(8415),s=n(72369);class r{constructor(e){this.values=e,this.prefixSum=new Uint32Array(e.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}insertValues(e,t){e=(0,s.j)(e);const n=this.values,i=this.prefixSum,r=t.length;return 0!==r&&(this.values=new Uint32Array(n.length+r),this.values.set(n.subarray(0,e),0),this.values.set(n.subarray(e),e+r),this.values.set(t,e),e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),this.prefixSum=new Uint32Array(this.values.length),this.prefixSumValidIndex[0]>=0&&this.prefixSum.set(i.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}setValue(e,t){return e=(0,s.j)(e),t=(0,s.j)(t),this.values[e]!==t&&(this.values[e]=t,e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),!0)}removeValues(e,t){e=(0,s.j)(e),t=(0,s.j)(t);const n=this.values,i=this.prefixSum;if(e>=n.length)return!1;const r=n.length-e;return t>=r&&(t=r),0!==t&&(this.values=new Uint32Array(n.length-t),this.values.set(n.subarray(0,e),0),this.values.set(n.subarray(e+t),e),this.prefixSum=new Uint32Array(this.values.length),e-1<this.prefixSumValidIndex[0]&&(this.prefixSumValidIndex[0]=e-1),this.prefixSumValidIndex[0]>=0&&this.prefixSum.set(i.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}getTotalSum(){return 0===this.values.length?0:this._getPrefixSum(this.values.length-1)}getPrefixSum(e){return e<0?0:(e=(0,s.j)(e),this._getPrefixSum(e))}_getPrefixSum(e){if(e<=this.prefixSumValidIndex[0])return this.prefixSum[e];let t=this.prefixSumValidIndex[0]+1;0===t&&(this.prefixSum[0]=this.values[0],t++),e>=this.values.length&&(e=this.values.length-1);for(let n=t;n<=e;n++)this.prefixSum[n]=this.prefixSum[n-1]+this.values[n];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],e),this.prefixSum[e]}getIndexOf(e){e=Math.floor(e),this.getTotalSum();let t=0,n=this.values.length-1,i=0,s=0,r=0;for(;t<=n;)if(i=t+(n-t)/2|0,s=this.prefixSum[i],r=s-this.values[i],e<r)n=i-1;else{if(!(e>=s))break;t=i+1}return new a(i,e-r)}}class o{constructor(e){this._values=e,this._isValid=!1,this._validEndIndex=-1,this._prefixSum=[],this._indexBySum=[]}getTotalSum(){return this._ensureValid(),this._indexBySum.length}getPrefixSum(e){return this._ensureValid(),0===e?0:this._prefixSum[e-1]}getIndexOf(e){this._ensureValid();const t=this._indexBySum[e],n=t>0?this._prefixSum[t-1]:0;return new a(t,e-n)}removeValues(e,t){this._values.splice(e,t),this._invalidate(e)}insertValues(e,t){this._values=(0,i.nK)(this._values,e,t),this._invalidate(e)}_invalidate(e){this._isValid=!1,this._validEndIndex=Math.min(this._validEndIndex,e-1)}_ensureValid(){if(!this._isValid){for(let e=this._validEndIndex+1,t=this._values.length;e<t;e++){const t=this._values[e],n=e>0?this._prefixSum[e-1]:0;this._prefixSum[e]=n+t;for(let i=0;i<t;i++)this._indexBySum[n+i]=e}this._prefixSum.length=this._values.length,this._indexBySum.length=this._prefixSum[this._prefixSum.length-1],this._isValid=!0,this._validEndIndex=this._values.length-1}}setValue(e,t){this._values[e]!==t&&(this._values[e]=t,this._invalidate(e))}}class a{constructor(e,t){this.index=e,this.remainder=t,this._prefixSumIndexOfResultBrand=void 0,this.index=e,this.remainder=t}}},21174:(e,t,n)=>{n.d(t,{Ho:()=>Me,kI:()=>ze,Bz:()=>Se});var i=n(8415),s=n(59638),r=n(79734),o=n(16201),a=n(33793),h=n(22231),l=n(34235),u=n(24705),d=n(35246),c=n(63102),f=n(93708),g=n(4707),_=n(20343),p=n(21051),m=n(7117),C=n(1528),L=n(90467),b=n(95017),I=n(33695),x=n(65185),S=n(50652),N=n(94134);class v{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!==T)return k(this.right);let e=this;for(;e.parent!==T&&e.parent.left!==e;)e=e.parent;return e.parent===T?T:e.parent}prev(){if(this.left!==T)return D(this.left);let e=this;for(;e.parent!==T&&e.parent.right!==e;)e=e.parent;return e.parent===T?T:e.parent}detach(){this.parent=null,this.left=null,this.right=null}}const T=new v(null,0);function k(e){for(;e.left!==T;)e=e.left;return e}function D(e){for(;e.right!==T;)e=e.right;return e}function w(e){return e===T?0:e.size_left+e.piece.length+w(e.right)}function E(e){return e===T?0:e.lf_left+e.piece.lineFeedCnt+E(e.right)}function M(){T.parent=T}function z(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!==T&&(n.left.parent=t),n.parent=t.parent,t.parent===T?e.root=n:t.parent.left===t?t.parent.left=n:t.parent.right=n,n.left=t,t.parent=n}function A(e,t){const n=t.left;t.left=n.right,n.right!==T&&(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===T?e.root=n:t===t.parent.right?t.parent.right=n:t.parent.left=n,n.right=t,t.parent=n}function O(e,t){let n,i;if(t.left===T?(i=t,n=i.right):t.right===T?(i=t,n=i.left):(i=k(t.right),n=i.right),i===e.root)return e.root=n,n.color=0,t.detach(),M(),void(e.root.parent=T);const s=1===i.color;if(i===i.parent.left?i.parent.left=n:i.parent.right=n,i===t?(n.parent=i.parent,P(e,n)):(i.parent===t?n.parent=i:n.parent=i.parent,P(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!==T&&(i.left.parent=i),i.right!==T&&(i.right.parent=i),i.size_left=t.size_left,i.lf_left=t.lf_left,P(e,i)),t.detach(),n.parent.left===n){const t=w(n),i=E(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,B(e,n.parent,s,r)}}if(P(e,n.parent),s)return void M();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,z(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,A(e,r),r=n.parent.right),r.color=n.parent.color,n.parent.color=0,r.right.color=0,z(e,n.parent),n=e.root)):(r=n.parent.left,1===r.color&&(r.color=0,n.parent.color=1,A(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,z(e,r),r=n.parent.left),r.color=n.parent.color,n.parent.color=0,r.left.color=0,A(e,n.parent),n=e.root));n.color=0,M()}function R(e,t){for(P(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&&z(e,t=t.parent),t.parent.color=0,t.parent.parent.color=1,A(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&&A(e,t=t.parent),t.parent.color=0,t.parent.parent.color=1,z(e,t.parent.parent))}e.root.color=0}function B(e,t,n,i){for(;t!==e.root&&t!==T;)t.parent.left===t&&(t.parent.size_left+=n,t.parent.lf_left+=i),t=t.parent}function P(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=w((t=t.parent).left)-t.size_left,i=E(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}}T.parent=T,T.left=T,T.right=T,T.color=0;var y=n(62179);const F=65535;function V(e){let t;return t=e[e.length-1]<65536?new Uint16Array(e.length):new Uint32Array(e.length),t.set(e,0),t}class W{constructor(e,t,n,i,s){this.lineStarts=e,this.cr=t,this.lf=n,this.crlf=i,this.isBasicASCII=s}}function j(e,t=!0){const n=[0];let i=1;for(let s=0,r=e.length;s<r;s++){const t=e.charCodeAt(s);13===t?s+1<r&&10===e.charCodeAt(s+1)?(n[i++]=s+2,s++):n[i++]=s+1:10===t&&(n[i++]=s+1)}return t?V(n):n}class U{constructor(e,t,n,i,s){this.bufferIndex=e,this.start=t,this.end=n,this.lineFeedCnt=i,this.length=s}}class Q{constructor(e,t){this.buffer=e,this.lineStarts=t}}class H{constructor(e,t){this._pieces=[],this._tree=e,this._BOM=t,this._index=0,e.root!==T&&e.iterate(e.root,(e=>(e!==T&&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 G{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 q{constructor(e,t,n){this.create(e,t,n)}create(e,t,n){this._buffers=[new Q("",[0])],this._lastChangeBufferPos={line:0,column:0},this.root=T,this._lineCnt=1,this._length=0,this._EOL=t,this._EOLLength=t.length,this._EOLNormalized=n;let i=null;for(let s=0,r=e.length;s<r;s++)if(e[s].buffer.length>0){e[s].lineStarts||(e[s].lineStarts=j(e[s].buffer));const t=new U(s+1,{line:0,column:0},{line:e[s].lineStarts.length-1,column:e[s].buffer.length-e[s].lineStarts[e[s].lineStarts.length-1]},e[s].lineStarts.length-1,e[s].buffer.length);this._buffers.push(e[s]),i=this.rbInsertRight(i,t)}this._searchCache=new G(1),this._lastVisitedLine={lineNumber:0,value:""},this.computeBufferMetadata()}normalizeEOL(e){const t=F,n=t-Math.floor(21845),i=2*n;let s="",r=0;const o=[];if(this.iterate(this.root,(t=>{const a=this.getNodeContent(t),h=a.length;if(r<=n||r+h<i)return s+=a,r+=h,!0;const l=s.replace(/\r\n|\r|\n/g,e);return o.push(new Q(l,j(l))),s=a,r=h,!0})),r>0){const t=s.replace(/\r\n|\r|\n/g,e);o.push(new Q(t,j(t)))}this.create(o,e,!0)}getEOL(){return this._EOL}setEOL(e){this._EOL=e,this._EOLLength=this._EOL.length,this.normalizeEOL(e)}createSnapshot(e){return new H(this,e)}getOffsetAt(e,t){let n=0,i=this.root;for(;i!==T;)if(i.left!==T&&i.lf_left+1>=e)i=i.left;else{if(i.lf_left+i.piece.lineFeedCnt+1>=e){n+=i.size_left;return 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!==T;)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 c.y(n+1,e+1)}return new c.y(n+1,s.remainder+1)}if(e-=t.size_left+t.piece.length,n+=t.lf_left+t.piece.lineFeedCnt,t.right===T){const t=i-e-this.getOffsetAt(n+1,1);return new c.y(n+1,t+1)}t=t.right}return new c.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!==T;){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===T)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,u=r.end.line;let d=h[l]+r.start.column;if(i&&(10===a.charCodeAt(d)&&(d++,o--),e[t++]=n,n="",i=!1,0===o))return!0;if(l===u)return this._EOLNormalized||13!==a.charCodeAt(d+o-1)?n+=a.substr(d,o):(i=!0,n+=a.substr(d,o-1)),!0;n+=this._EOLNormalized?a.substring(d,Math.max(d,h[l+1]-this._EOLLength)):a.substring(d,h[l+1]).replace(/(\r\n|\r|\n)$/,""),e[t++]=n;for(let i=l+1;i<u;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[u]+r.end.column-1)?n=a.substr(h[u],r.end.column):(i=!0,0===r.end.column?t--:n=a.substr(h[u],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,u){const d=this._buffers[e.piece.bufferIndex],c=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,L;t._wordSeparators?(C=d.buffer.substring(g,_),L=e=>e+g,t.reset(0)):(C=d.buffer,L=e=>e,t.reset(g));do{if(p=t.next(C),p){if(L(p.index)>=_)return l;this.positionInBuffer(e,L(p.index)-c,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(u[l++]=(0,y.dr)(new f.Q(n+t,r,n+t,o),p,a),L(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 y.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 u=this.positionInBuffer(h.node,h.remainder);if(a.node===h.node)return this.findMatchesInNode(a.node,o,e.startLineNumber,e.startColumn,l,u,t,n,i,r,s),s;let d=e.startLineNumber,c=a.node;for(;c!==h.node;){const h=this.getLineFeedCnt(c.piece.bufferIndex,l,c.piece.end);if(h>=1){const a=this._buffers[c.piece.bufferIndex].lineStarts,u=this.offsetInBuffer(c.piece.bufferIndex,c.piece.start),f=a[l.line+h],g=d===e.startLineNumber?e.startColumn:1;if(r=this.findMatchesInNode(c,o,d,g,l,this.positionInBuffer(c,f-u),t,n,i,r,s),r>=i)return s;d+=h}const u=d===e.startLineNumber?e.startColumn-1:0;if(d===e.endLineNumber){const a=this.getLineContent(d).substring(u,e.endColumn-1);return r=this._findMatchesInLine(t,o,a,e.endLineNumber,u,r,s,n,i),s}if(r=this._findMatchesInLine(t,o,this.getLineContent(d).substr(u),d,u,r,s,n,i),r>=i)return s;d++,a=this.nodeAt2(d,1),c=a.node,l=this.positionInBuffer(a.node,a.remainder)}if(d===e.endLineNumber){const a=d===e.startLineNumber?e.startColumn-1:0,h=this.getLineContent(d).substring(a,e.endColumn-1);return r=this._findMatchesInLine(t,o,h,e.endLineNumber,a,r,s,n,i),s}const f=d===e.startLineNumber?e.startColumn:1;return r=this.findMatchesInNode(h.node,o,d,f,l,u,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,u=n.length;let d=-a;for(;-1!==(d=n.indexOf(t,d+a));)if((!l||(0,y.wC)(l,n,u,d,a))&&(o[r++]=new C.Dg(new f.Q(i,d+1+s,i,d+1+a+s),null),r>=h))return r;return r}let u;t.reset(0);do{if(u=t.next(n),u&&(o[r++]=(0,y.dr)(new f.Q(i,u.index+1+s,i,u.index+1+u[0].length+s),u,a),r>=h))return r}while(u);return r}insert(e,t,n=!1){if(this._EOLNormalized=this._EOLNormalized&&n,this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",this.root!==T){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<F)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 U(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)){if(10===this.nodeCharCodeAt(n,i)){const e={line:s.start.line+1,column:0};s=new U(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 t=0;t<h.length;t++)l=this.rbInsertRight(l,h[t]);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===T)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 O(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 u=s.next();u!==T&&u!==r;u=u.next())o.push(u);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 U(i.bufferIndex,s,i.end,this.getLineFeedCnt(i.bufferIndex,s,i.end),i.length-1);t.piece=r,e+="\n",B(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 r=i.length-2;r>=0;r--)s=this.rbInsertLeft(s,i[r]);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 r=1;r<n.length;r++)s=this.rbInsertRight(s,n[r]);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,u=0,d=0;for(;a<=h&&(l=a+(h-a)/2|0,d=r[l],l!==h);)if(u=r[l+1],o<d)h=l-1;else{if(!(o>=u))break;a=l+1}return n?(n.line=l,n.column=o-d,null):{line:l,column:o-d}}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++)O(this,e[t])}createNewPieces(e){if(e.length>F){const t=[];for(;e.length>F;){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,F),e=e.substring(F));const s=j(i);t.push(new U(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 Q(i,s))}const n=j(e);return t.push(new U(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 Q(e,n)),t}let t=this._buffers[0].buffer.length;const n=j(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 U(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!==T;)if(n.left!==T&&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!==T;){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!==T;)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,u=n.length+l;e.piece=new U(n.bufferIndex,n.start,r,a,u),B(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 U(n.bufferIndex,r,n.end,o,l),B(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),u=this.offsetInBuffer(i.bufferIndex,t)-this.offsetInBuffer(i.bufferIndex,s);e.piece=new U(i.bufferIndex,i.start,h,l,u),B(this,e,u-o,l-a);const d=new U(i.bufferIndex,n,r,this.getLineFeedCnt(i.bufferIndex,n,r),this.offsetInBuffer(i.bufferIndex,r)-this.offsetInBuffer(i.bufferIndex,n)),c=this.rbInsertRight(e,d);this.validateCRLFWithPrevNode(c)}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=j(t,!1);for(let d=0;d<s.length;d++)s[d]+=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),u=l-h;e.piece=new U(e.piece.bufferIndex,e.piece.start,o,l,a),this._lastChangeBufferPos=o,B(this,e,t.length,u)}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!==T;)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!==T;)if(n.left!==T&&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!==T;){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===T||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;if(i===n.length-1)return!1;return!(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!==T&&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 U(e.piece.bufferIndex,e.piece.start,s,o,r),B(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 U(t.piece.bufferIndex,a,t.piece.end,l,h),B(this,t,-1,-1),0===t.piece.length&&n.push(t);const u=this.createNewPieces("\r\n");this.rbInsertRight(e,u[0]);for(let d=0;d<n.length;d++)O(this,n[d])}adjustCarriageReturnFromNext(e,t){if(this.shouldCheckCRLF()&&this.endWithCR(e)){const n=t.next();if(this.startWithLF(n)){if(e+="\n",1===n.piece.length)O(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 U(e.bufferIndex,t,e.end,s,i),B(this,n,-1,-1)}return!0}}return!1}iterate(e,t){if(e===T)return t(T);const n=this.iterate(e.left,t);return n?t(e)&&this.iterate(e.right,t):n}getNodeContent(e){if(e===T)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 v(t,1);n.left=T,n.right=T,n.parent=T,n.size_left=0,n.lf_left=0;if(this.root===T)this.root=n,n.color=0;else if(e.right===T)e.right=n,n.parent=e;else{const t=k(e.right);t.left=n,n.parent=t}return R(this,n),n}rbInsertLeft(e,t){const n=new v(t,1);if(n.left=T,n.right=T,n.parent=T,n.size_left=0,n.lf_left=0,this.root===T)this.root=n,n.color=0;else if(e.left===T)e.left=n,n.parent=e;else{const t=D(e.left);t.right=n,n.parent=t}return R(this,n),n}}var $=n(41634);class Z extends a.jG{constructor(e,t,n,i,s,r,a){super(),this._onDidChangeContent=this._register(new o.vl),this._BOM=t,this._mightContainNonBasicASCII=!r,this._mightContainRTL=i,this._mightContainUnusualLineTerminators=s,this._pieceTree=new q(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);return this.getOffsetAt(e.endLineNumber,e.endColumn)-n}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++)h.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=h.HG(this.getLineContent(e));return-1===t?0:t+1}getLineLastNonWhitespaceColumn(e){const t=h.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 p=0;p<e.length;p++){const t=e[p];o&&t._isTracked&&(o=!1);const n=t.range;if(t.text){let e=!0;r||(e=!h.aC(t.text),r=e),!i&&e&&(i=h.E_(t.text)),!s&&e&&(s=h.$X(t.text))}let l="",d=0,c=0,f=0;if(t.text){let e;[d,c,f,e]=(0,u.W)(t.text);const n=this.getEOL();l=0===e||e===("\r\n"===n?2:1)?t.text:t.text.replace(/\r\n|\r|\n/g,n)}a[p]={sortIndex:p,identifier:t.identifier||null,range:n,rangeOffset:this.getOffsetAt(n.startLineNumber,n.startColumn),rangeLength:this.getValueLengthInRange(n),text:l,eolCount:d,firstLineLength:c,lastLineLength:f,forceMoveMarkers:Boolean(t.forceMoveMarkers),isAutoWhitespaceEdit:t.isAutoWhitespaceEdit||!1}}a.sort(Z._sortOpsAscending);let l=!1;for(let h=0,u=a.length-1;h<u;h++){const e=a[h].range.getEndPosition(),t=a[h+1].range.getStartPosition();if(t.isBeforeOrEqual(e)){if(t.isBefore(e))throw new Error("Overlapping ranges are not allowed!");l=!0}}o&&(a=this._reduceOperations(a));const d=n||t?Z._getInverseEditRanges(a):[],c=[];if(t)for(let u=0;u<a.length;u++){const e=a[u],t=d[u];if(e.isAutoWhitespaceEdit&&e.range.isEmpty())for(let n=t.startLineNumber;n<=t.endLineNumber;n++){let i="";n===t.startLineNumber&&(i=this.getLineContent(e.range.startLineNumber),-1!==h.HG(i))||c.push({lineNumber:n,oldContent:i})}}let f=null;if(n){let e=0;f=[];for(let t=0;t<a.length;t++){const n=a[t],i=d[t],s=this.getValueInRange(n.range),r=n.rangeOffset+e;e+=n.text.length-s.length,f[t]={sortIndex:n.sortIndex,identifier:n.identifier,range:i,text:s,textChange:new $.k(n.rangeOffset,s,r,n.text)}}l||f.sort(((e,t)=>e.sortIndex-t.sortIndex))}this._mightContainRTL=i,this._mightContainUnusualLineTerminators=s,this._mightContainNonBasicASCII=r;const g=this._doApplyEdits(a);let _=null;if(t&&c.length>0){c.sort(((e,t)=>t.lineNumber-e.lineNumber)),_=[];for(let e=0,t=c.length;e<t;e++){const t=c[e].lineNumber;if(e>0&&c[e-1].lineNumber===t)continue;const n=c[e].oldContent,i=this.getLineContent(t);0!==i.length&&i!==n&&-1===h.HG(i)&&_.push(t)}}return this._onDidChangeContent.fire(),new C.F4(f,g,_)}_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 u=0,g=e.length;u<g;u++){const n=e[u],i=n.range;t=t||n.forceMoveMarkers,a.push(this.getValueInRange(new f.Q(r,o,i.startLineNumber,i.startColumn))),n.text.length>0&&a.push(n.text),r=i.endLineNumber,o=i.endColumn}const h=a.join(""),[l,d,c]=(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:d,lastLineLength:c,forceMoveMarkers:t,isAutoWhitespaceEdit:!1}}_doApplyEdits(e){e.sort(Z._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 K{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 s=0,r=n.length;s<r;s++){const e=n[s].buffer.replace(/\r\n|\r|\n/g,t),i=j(e);n[s]=new Q(e,i)}const i=new Z(n,this._bom,t,this._containsRTL,this._containsUnusualLineTerminators,this._isBasicASCII,this._normalizeEOL);return{textBuffer:i,disposable:i}}}class X{constructor(){this.chunks=[],this.BOM="",this._hasPreviousChar=!1,this._previousChar=0,this._tmpLineStarts=[],this.cr=0,this.lf=0,this.crlf=0,this.containsRTL=!1,this.containsUnusualLineTerminators=!1,this.isBasicASCII=!0}acceptChunk(e){if(0===e.length)return;0===this.chunks.length&&h.LU(e)&&(this.BOM=h.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 h=0,l=t.length;h<l;h++){const a=t.charCodeAt(h);13===a?h+1<l&&10===t.charCodeAt(h+1)?(r++,e[n++]=h+2,h++):(i++,e[n++]=h+1):10===a?(s++,e[n++]=h+1):o&&9!==a&&(a<32||a>126)&&(o=!1)}const a=new W(V(e),i,s,r,o);return e.length=0,a}(this._tmpLineStarts,e);this.chunks.push(new Q(e,t.lineStarts)),this.cr+=t.cr,this.lf+=t.lf,this.crlf+=t.crlf,this.isBasicASCII&&(this.isBasicASCII=t.isBasicASCII),this.isBasicASCII||this.containsRTL||(this.containsRTL=h.E_(e)),this.isBasicASCII||this.containsUnusualLineTerminators||(this.containsUnusualLineTerminators=h.$X(e))}finish(e=!0){return this._finish(),new K(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=j(e.buffer);e.lineStarts=t,13===this._previousChar&&this.cr++}}}var J=n(58181),Y=n(75574),ee=n(41630),te=n(52174),ne=n(721),ie=n(39154),se=n(52622),re=n(85345),oe=n(76394);class ae{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}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 i=0;i<t;i++)n[i]=this._default;this._store=i.nK(this._store,e,n)}}class he{constructor(e,t){this.tokenizationSupport=e,this.initialState=t,this._lineBeginState=new ae(null),this._lineNeedsTokenization=new ae(!0),this._firstLineNeedsTokenization=0,this._lineBeginState.set(0,this.initialState)}get invalidLineStartIndex(){return this._firstLineNeedsTokenization}markMustBeTokenized(e){this._lineNeedsTokenization.set(e,!0),this._firstLineNeedsTokenization=Math.min(this._firstLineNeedsTokenization,e)}getBeginState(e){return this._lineBeginState.get(e)}setEndState(e,t,n){if(this._lineNeedsTokenization.set(t,!1),this._firstLineNeedsTokenization=t+1,t===e-1)return;const i=this._lineBeginState.get(t+1);if(null===i||!n.equals(i))return this._lineBeginState.set(t+1,n),void this.markMustBeTokenized(t+1);let s=t+1;for(;s<e&&!this._lineNeedsTokenization.get(s);)s++;this._firstLineNeedsTokenization=s}applyEdits(e,t){this.markMustBeTokenized(e.startLineNumber-1),this._lineBeginState.delete(e.startLineNumber,e.endLineNumber-e.startLineNumber),this._lineNeedsTokenization.delete(e.startLineNumber,e.endLineNumber-e.startLineNumber),this._lineBeginState.insert(e.startLineNumber,t),this._lineNeedsTokenization.insert(e.startLineNumber,t)}}class le extends a.jG{constructor(e,t,n){super(),this._textModel=e,this._tokenizationPart=t,this._languageIdCodec=n,this._isScheduled=!1,this._isDisposed=!1,this._tokenizationStateStore=null,this._register(te.dG.onDidChange((e=>{const t=this._textModel.getLanguageId();-1!==e.changedLanguages.indexOf(t)&&(this._resetTokenizationState(),this._tokenizationPart.clearTokens())}))),this._resetTokenizationState()}dispose(){this._isDisposed=!0,super.dispose()}handleDidChangeContent(e){if(e.isFlush)this._resetTokenizationState();else{if(this._tokenizationStateStore)for(let t=0,n=e.changes.length;t<n;t++){const n=e.changes[t],[i]=(0,u.W)(n.text);this._tokenizationStateStore.applyEdits(n.range,i)}this._beginBackgroundTokenization()}}handleDidChangeAttached(){this._beginBackgroundTokenization()}handleDidChangeLanguage(e){this._resetTokenizationState(),this._tokenizationPart.clearTokens()}_resetTokenizationState(){const[e,t]=function(e,t){if(e.isTooLargeForTokenization())return[null,null];const n=te.dG.get(t.getLanguageId());if(!n)return[null,null];let i;try{i=n.getInitialState()}catch(s){return(0,r.dz)(s),[null,null]}return[n,i]}(this._textModel,this._tokenizationPart);this._tokenizationStateStore=e&&t?new he(e,t):null,this._beginBackgroundTokenization()}_beginBackgroundTokenization(){!this._isScheduled&&this._textModel.isAttachedToEditor()&&this._hasLinesToTokenize()&&(this._isScheduled=!0,(0,re.cx)((e=>{this._isScheduled=!1,this._backgroundTokenizeWithDeadline(e)})))}_backgroundTokenizeWithDeadline(e){const t=Date.now()+e.timeRemaining(),n=()=>{!this._isDisposed&&this._textModel.isAttachedToEditor()&&this._hasLinesToTokenize()&&(this._backgroundTokenizeForAtLeast1ms(),Date.now()<t?(0,oe._p)(n):this._beginBackgroundTokenization())};n()}_backgroundTokenizeForAtLeast1ms(){const e=this._textModel.getLineCount(),t=new se.Z,n=ie.W.create(!1);do{if(n.elapsed()>1)break;if(this._tokenizeOneInvalidLine(t)>=e)break}while(this._hasLinesToTokenize());this._tokenizationPart.setTokens(t.finalize(),this._isTokenizationComplete())}tokenizeViewport(e,t){const n=new se.Z;this._tokenizeViewport(n,e,t),this._tokenizationPart.setTokens(n.finalize(),this._isTokenizationComplete())}reset(){this._resetTokenizationState(),this._tokenizationPart.clearTokens()}forceTokenization(e){const t=new se.Z;this._updateTokensUntilLine(t,e),this._tokenizationPart.setTokens(t.finalize(),this._isTokenizationComplete())}getTokenTypeIfInsertingCharacter(e,t){if(!this._tokenizationStateStore)return 0;this.forceTokenization(e.lineNumber);const n=this._tokenizationStateStore.getBeginState(e.lineNumber-1);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=ue(this._languageIdCodec,i,this._tokenizationStateStore.tokenizationSupport,r,!0,n),a=new ee.f(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;if(!this._tokenizationStateStore)return null;this.forceTokenization(i);const r=this._tokenizationStateStore.getBeginState(i-1);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=ue(this._languageIdCodec,h,this._tokenizationStateStore.tokenizationSupport,a,!0,r);return new ee.f(l.tokens,a,this._languageIdCodec)}isCheapToTokenize(e){if(!this._tokenizationStateStore)return!0;const t=this._tokenizationStateStore.invalidLineStartIndex+1;return!(e>t)&&(e<t||this._textModel.getLineLength(e)<2048)}_hasLinesToTokenize(){return!!this._tokenizationStateStore&&this._tokenizationStateStore.invalidLineStartIndex<this._textModel.getLineCount()}_isTokenizationComplete(){return!!this._tokenizationStateStore&&this._tokenizationStateStore.invalidLineStartIndex>=this._textModel.getLineCount()}_tokenizeOneInvalidLine(e){if(!this._tokenizationStateStore||!this._hasLinesToTokenize())return this._textModel.getLineCount()+1;const t=this._tokenizationStateStore.invalidLineStartIndex+1;return this._updateTokensUntilLine(e,t),t}_updateTokensUntilLine(e,t){if(!this._tokenizationStateStore)return;const n=this._textModel.getLanguageId(),i=this._textModel.getLineCount(),s=t-1;for(let r=this._tokenizationStateStore.invalidLineStartIndex;r<=s;r++){const t=this._textModel.getLineContent(r+1),s=this._tokenizationStateStore.getBeginState(r),o=ue(this._languageIdCodec,n,this._tokenizationStateStore.tokenizationSupport,t,!0,s);e.add(r+1,o.tokens),this._tokenizationStateStore.setEndState(i,r,o.endState),r=this._tokenizationStateStore.invalidLineStartIndex-1}}_tokenizeViewport(e,t,n){if(!this._tokenizationStateStore)return;if(n<=this._tokenizationStateStore.invalidLineStartIndex)return;if(t<=this._tokenizationStateStore.invalidLineStartIndex)return void this._updateTokensUntilLine(e,n);let i=this._textModel.getLineFirstNonWhitespaceColumn(t);const s=[];let r=null;for(let h=t-1;i>1&&h>=1;h--){const e=this._textModel.getLineFirstNonWhitespaceColumn(h);if(0!==e&&e<i){if(r=this._tokenizationStateStore.getBeginState(h-1),r)break;s.push(this._textModel.getLineContent(h)),i=e}}r||(r=this._tokenizationStateStore.initialState);const o=this._textModel.getLanguageId();let a=r;for(let h=s.length-1;h>=0;h--){a=ue(this._languageIdCodec,o,this._tokenizationStateStore.tokenizationSupport,s[h],!1,a).endState}for(let h=t;h<=n;h++){const t=this._textModel.getLineContent(h),n=ue(this._languageIdCodec,o,this._tokenizationStateStore.tokenizationSupport,t,!0,a);e.add(h,n.tokens),this._tokenizationStateStore.markMustBeTokenized(h-1),a=n.endState}}}function ue(e,t,n,i,s,o){let a=null;if(n)try{a=n.tokenizeEncoded(i,s,o.clone())}catch(h){(0,r.dz)(h)}return a||(a=(0,ne.Lh)(e.encodeLanguageId(t),o)),ee.f.convertToEndOffset(a.tokens,i.length),a}var de=n(98523),ce=n(94787);class fe extends Y._{constructor(e,t,n,i,s){super(),this._languageService=e,this._languageConfigurationService=t,this._textModel=n,this.bracketPairsTextModelPart=i,this._languageId=s,this._onDidChangeLanguage=this._register(new o.vl),this.onDidChangeLanguage=this._onDidChangeLanguage.event,this._onDidChangeLanguageConfiguration=this._register(new o.vl),this.onDidChangeLanguageConfiguration=this._onDidChangeLanguageConfiguration.event,this._onDidChangeTokens=this._register(new o.vl),this.onDidChangeTokens=this._onDidChangeTokens.event,this._backgroundTokenizationState=0,this._onBackgroundTokenizationStateChanged=this._register(new o.vl),this._tokens=new de.y(this._languageService.languageIdCodec),this._semanticTokens=new ce.s(this._languageService.languageIdCodec),this._tokenization=new le(n,this,this._languageService.languageIdCodec),this._languageRegistryListener=this._languageConfigurationService.onDidChange((e=>{e.affects(this._languageId)&&this._onDidChangeLanguageConfiguration.fire({})}))}acceptEdit(e,t,n,i,s){this._tokens.acceptEdit(e,n,i),this._semanticTokens.acceptEdit(e,n,i,s,t.length>0?t.charCodeAt(0):0)}handleDidChangeAttached(){this._tokenization.handleDidChangeAttached()}flush(){this._tokens.flush(),this._semanticTokens.flush()}handleDidChangeContent(e){this._tokenization.handleDidChangeContent(e)}dispose(){this._languageRegistryListener.dispose(),this._tokenization.dispose(),super.dispose()}get backgroundTokenizationState(){return this._backgroundTokenizationState}handleTokenizationProgress(e){if(2===this._backgroundTokenizationState)return;const t=e?2:1;this._backgroundTokenizationState!==t&&(this._backgroundTokenizationState=t,this.bracketPairsTextModelPart.handleDidChangeBackgroundTokenizationState(),this._onBackgroundTokenizationStateChanged.fire())}setTokens(e,t=!1){if(0!==e.length){const t=[];for(let n=0,i=e.length;n<i;n++){const i=e[n];let s=0,r=0,o=!1;for(let e=i.startLineNumber;e<=i.endLineNumber;e++)if(o)this._tokens.setTokens(this._languageId,e-1,this._textModel.getLineLength(e),i.getLineTokens(e),!1),r=e;else{this._tokens.setTokens(this._languageId,e-1,this._textModel.getLineLength(e),i.getLineTokens(e),!0)&&(o=!0,s=e,r=e)}o&&t.push({fromLineNumber:s,toLineNumber:r})}t.length>0&&this._emitModelTokensChangedEvent({tokenizationSupportChanged:!1,semanticTokensApplied:!1,ranges:t})}this.handleTokenizationProgress(t)}setSemanticTokens(e,t){this._semanticTokens.set(e,t),this._emitModelTokensChangedEvent({tokenizationSupportChanged:!1,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({tokenizationSupportChanged:!1,semanticTokensApplied:!0,ranges:[{fromLineNumber:n.startLineNumber,toLineNumber:n.endLineNumber}]})}tokenizeViewport(e,t){e=Math.max(1,e),t=Math.min(this._textModel.getLineCount(),t),this._tokenization.tokenizeViewport(e,t)}clearTokens(){this._tokens.flush(),this._emitModelTokensChangedEvent({tokenizationSupportChanged:!0,semanticTokensApplied:!1,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]})}_emitModelTokensChangedEvent(e){this._textModel._isDisposing()||(this.bracketPairsTextModelPart.handleDidChangeTokens(e),this._onDidChangeTokens.fire(e))}resetTokenization(){this._tokenization.reset()}forceTokenization(e){if(e<1||e>this._textModel.getLineCount())throw new Error("Illegal value for lineNumber");this._tokenization.forceTokenization(e)}isCheapToTokenize(e){return this._tokenization.isCheapToTokenize(e)}tokenizeIfCheap(e){this.isCheapToTokenize(e)&&this.forceTokenization(e)}getLineTokens(e){if(e<1||e>this._textModel.getLineCount())throw new Error("Illegal value for lineNumber");return this._getLineTokens(e)}_getLineTokens(e){const t=this._textModel.getLineContent(e),n=this._tokens.getTokens(this._languageId,e-1,t);return this._semanticTokens.addSparseTokens(e,n)}getTokenTypeIfInsertingCharacter(e,t,n){const i=this._textModel.validatePosition(new c.y(e,t));return this._tokenization.getTokenTypeIfInsertingCharacter(i,n)}tokenizeLineWithEdit(e,t,n){const i=this._textModel.validatePosition(e);return this._tokenization.tokenizeLineWithEdit(i,t,n)}getLanguageConfiguration(e){return this._languageConfigurationService.getLanguageConfiguration(e)}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]=fe._findLanguageBoundaries(i,s),a=(0,J.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]=fe._findLanguageBoundaries(i,s-1),a=(0,J.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}static _findLanguageBoundaries(e,t){const n=e.getLanguageId(t);let i=0;for(let r=t;r>=0&&e.getLanguageId(r)===n;r--)i=e.getStartOffset(r);let s=e.getLineContent().length;for(let r=t,o=e.getCount();r<o&&e.getLanguageId(r)===n;r++)s=e.getEndOffset(r);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 c.y(e,t)),i=this.getLineTokens(n.lineNumber);return i.getLanguageId(i.findTokenIndexAtOffset(n.column-1))}setLanguageId(e){if(this._languageId===e)return;const t={oldLanguage:this._languageId,newLanguage:e};this._languageId=e,this.bracketPairsTextModelPart.handleDidChangeLanguage(t),this._tokenization.handleDidChangeLanguage(t),this._onDidChangeLanguage.fire(t),this._onDidChangeLanguageConfiguration.fire({})}}var ge=n(41516),_e=n(60332),pe=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},me=function(e,t){return function(n,i){t(n,i,e)}};function Ce(e){const t=new X;return t.acceptChunk(e),t.finish()}function Le(e,t){return("string"===typeof e?Ce(e):e).create(t)}let be=0;class Ie{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 xe=()=>{throw new Error("Invalid change accessor")};let Se=class e extends a.jG{constructor(t,n,i,s=null,r,a,u){super(),this._undoRedoService=r,this._languageService=a,this._languageConfigurationService=u,this._onWillDispose=this._register(new o.vl),this.onWillDispose=this._onWillDispose.event,this._onDidChangeDecorations=this._register(new Re((e=>this.handleBeforeFireDecorationsChangedEvent(e)))),this.onDidChangeDecorations=this._onDidChangeDecorations.event,this._onDidChangeOptions=this._register(new o.vl),this.onDidChangeOptions=this._onDidChangeOptions.event,this._onDidChangeAttached=this._register(new o.vl),this.onDidChangeAttached=this._onDidChangeAttached.event,this._onDidChangeInjectedText=this._register(new o.vl),this._eventEmitter=this._register(new Be),this._deltaDecorationCallCnt=0,be++,this.id="$model"+be,this.isForSimpleWidget=i.isForSimpleWidget,this._associatedResource="undefined"===typeof s||null===s?l.r.parse("inmemory://model/"+be):s,this._attachedEditorCount=0;const{textBuffer:d,disposable:c}=Le(t,i.defaultEOL);this._buffer=d,this._bufferDisposable=c,this._options=e.resolveOptions(this._buffer,i),this._bracketPairs=this._register(new L.J(this,this._languageConfigurationService)),this._guidesTextModelPart=this._register(new x.P(this,this._languageConfigurationService)),this._decorationProvider=this._register(new b.I(this)),this._tokenizationTextModelPart=new fe(this._languageService,this._languageConfigurationService,this,this._bracketPairs,n);const g=this._buffer.getLineCount(),_=this._buffer.getValueLengthInRange(new f.Q(1,1,g,this._buffer.getLineLength(g)+1),0);i.largeFileOptimizations?this._isTooLargeForTokenization=_>e.LARGE_FILE_SIZE_THRESHOLD||g>e.LARGE_FILE_LINE_COUNT_THRESHOLD:this._isTooLargeForTokenization=!1,this._isTooLargeForSyncing=_>e.MODEL_SYNC_LIMIT,this._versionId=1,this._alternativeVersionId=1,this._initialUndoRedoSnapshot=null,this._isDisposed=!1,this.__isDisposing=!1,this._instanceId=h.tk(be),this._lastDecorationId=0,this._decorations=Object.create(null),this._decorationsTree=new Te,this._commandManager=new I.z8(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()})))}static resolveOptions(e,t){if(t.detectIndentation){const n=(0,S.v)(e,t.tabSize,t.insertSpaces);return new C.X2({tabSize:n.tabSize,indentSize:n.tabSize,insertSpaces:n.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL,bracketPairColorizationOptions:t.bracketPairColorizationOptions})}return new C.X2({tabSize:t.tabSize,indentSize:t.indentSize,insertSpaces:t.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL,bracketPairColorizationOptions:t.bracketPairColorizationOptions})}get onDidChangeLanguage(){return this._tokenizationTextModelPart.onDidChangeLanguage}get onDidChangeLanguageConfiguration(){return this._tokenizationTextModelPart.onDidChangeLanguageConfiguration}get onDidChangeTokens(){return this._tokenizationTextModelPart.onDidChangeTokens}onDidChangeContent(e){return this._eventEmitter.slowEvent((t=>e(t.contentChangedEvent)))}onDidChangeContentOrInjectedText(e){return(0,a.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}dispose(){this.__isDisposing=!0,this._onWillDispose.fire(),this._tokenizationTextModelPart.dispose(),this._isDisposed=!0,super.dispose(),this._bufferDisposable.dispose(),this.__isDisposing=!1;const e=new Z([],"","\n",!1,!1,!0,!0);e.dispose(),this._buffer=e,this._bufferDisposable=a.jG.None}_assertNotDisposed(){if(this._isDisposed)throw new Error("Model is disposed!")}_emitContentChangedEvent(e,t){this.__isDisposing||(this._tokenizationTextModelPart.handleDidChangeContent(t),this._bracketPairs.handleDidChangeContent(t),this._eventEmitter.fire(new ge.Ic(e,t)))}setValue(e){if(this._assertNotDisposed(),null===e)return;const{textBuffer:t,disposable:n}=Le(e,this._options.defaultEOL);this._setValueFromTextBuffer(t,n)}_createContentChanged2(e,t,n,i,s,r,o){return{changes:[{range:e,rangeOffset:t,rangeLength:n,text:i}],eol:this._buffer.getEOL(),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._tokenizationTextModelPart.flush(),this._decorations=Object.create(null),this._decorationsTree=new Te,this._commandManager.clear(),this._trimAutoWhitespaceLines=null,this._emitContentChangedEvent(new ge.HP([new ge.Wn],this._versionId,!1,!1),this._createContentChanged2(new f.Q(1,1,s,r),0,i,this.getValue(),!1,!1,!0))}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 ge.HP([new ge.mS],this._versionId,!1,!1),this._createContentChanged2(new f.Q(1,1,s,r),0,i,this.getValue(),!1,!1,!1))}_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,(0,N.KJ)(i)}}onBeforeAttached(){this._attachedEditorCount++,1===this._attachedEditorCount&&(this._tokenizationTextModelPart.handleDidChangeAttached(),this._onDidChangeAttached.fire(void 0))}onBeforeDetached(){this._attachedEditorCount--,0===this._attachedEditorCount&&(this._tokenizationTextModelPart.handleDidChangeAttached(),this._onDidChangeAttached.fire(void 0))}isAttachedToEditor(){return this._attachedEditorCount>0}getAttachedEditorCount(){return this._attachedEditorCount}isTooLargeForSyncing(){return this._isTooLargeForSyncing}isTooLargeForTokenization(){return this._isTooLargeForTokenization}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="undefined"!==typeof e.tabSize?e.tabSize:this._options.tabSize,n="undefined"!==typeof e.indentSize?e.indentSize:this._options.indentSize,i="undefined"!==typeof e.insertSpaces?e.insertSpaces:this._options.insertSpaces,s="undefined"!==typeof e.trimAutoWhitespace?e.trimAutoWhitespace:this._options.trimAutoWhitespace,r="undefined"!==typeof e.bracketColorizationOptions?e.bracketColorizationOptions:this._options.bracketPairColorizationOptions,o=new C.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=(0,S.v)(this._buffer,t,e);this.updateOptions({insertSpaces:n.insertSpaces,tabSize:n.tabSize,indentSize:n.tabSize})}normalizeIndentation(e){return this._assertNotDisposed(),(0,d.P)(e,this._options.indentSize,this._options.insertSpaces)}getVersionId(){return this._assertNotDisposed(),this._versionId}mightContainRTL(){return this._buffer.mightContainRTL()}mightContainUnusualLineTerminators(){return this._buffer.mightContainUnusualLineTerminators()}removeUnusualLineTerminators(e=null){const t=this.findMatches(h._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){this._assertNotDisposed();const n=this.getFullModelRange(),i=this.getValueInRange(n,e);return t?this._buffer.getBOM()+i:i}createSnapshot(e=!1){return new Ie(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 Error("Illegal value for lineNumber");return this._buffer.getLineContent(e)}getLineLength(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineLength(e)}getLinesContent(){return this._assertNotDisposed(),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 Error("Illegal value for lineNumber");return this._buffer.getLineLength(e)+1}getLineFirstNonWhitespaceColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineFirstNonWhitespaceColumn(e)}getLineLastNonWhitespaceColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("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 g.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(h.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 c.y(1,1);if(i>r)return new c.y(r,this.getLineMaxColumn(r));if(s<=1)return new c.y(i,1);const o=this.getLineMaxColumn(i);if(s>=o)return new c.y(i,o);if(1===n){const e=this._buffer.getLineCharCode(i,s-2);if(h.pc(e))return new c.y(i,s-1)}return new c.y(i,s)}validatePosition(e){return this._assertNotDisposed(),e instanceof c.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=h.pc(e),a=h.pc(t);return!o&&!a}return!0}validateRange(e){if(this._assertNotDisposed(),e instanceof f.Q&&!(e instanceof g.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=h.pc(e),a=h.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 y.lt(e,n,i,s).parseSearchRequest();if(!t)return[];l=e=>this.findMatchesLineByLine(e,t,r,o)}else l=t=>y.hB.findMatches(this,new y.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 y.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 y.hB.findNextMatch(this,new y.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 y.hB.findNextMatch(this,new y.lt(e,n,i,s),o,r)}findPreviousMatch(e,t,n,i,s,r){this._assertNotDisposed();const o=this.validatePosition(t);return y.hB.findPreviousMatch(this,new y.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 C.Wo?e:new C.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){try{return this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._pushEditOperations(e,this._validateEditOperations(t),n)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_pushEditOperations(e,t,n){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,s=this._trimAutoWhitespaceLines.length;e<s;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 C.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)}_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(),s=this._buffer.applyEdits(e,this._options.trimAutoWhitespace,t),r=this._buffer.getLineCount(),o=s.changes;if(this._trimAutoWhitespaceLines=s.trimAutoWhitespaceLineNumbers,0!==o.length){for(let n=0,i=o.length;n<i;n++){const e=o[n],[t,i,s]=(0,u.W)(e.text);this._tokenizationTextModelPart.acceptEdit(e.range,e.text,t,i,s),this._decorationsTree.acceptReplace(e.rangeOffset,e.rangeLength,e.text.length,e.forceMoveMarkers)}const e=[];this._increaseVersionId();let t=n;for(let n=0,s=o.length;n<s;n++){const s=o[n],[a]=(0,u.W)(s.text);this._onDidChangeDecorations.fire();const h=s.range.startLineNumber,l=s.range.endLineNumber,d=l-h,f=a,g=Math.min(d,f),_=f-d,p=r-t-_+h,m=p,C=p+f,L=this._decorationsTree.getInjectedTextInInterval(this,this.getOffsetAt(new c.y(m,1)),this.getOffsetAt(new c.y(C,this.getLineMaxColumn(C))),0),b=ge.uK.fromDecorations(L),I=new i.j3(b);for(let t=g;t>=0;t--){const n=h+t,i=p+t;I.takeFromEndWhile((e=>e.lineNumber>i));const s=I.takeFromEndWhile((e=>e.lineNumber===i));e.push(new ge.U0(n,this.getLineContent(i),s))}if(g<d){const t=h+g;e.push(new ge.E$(t+1,l))}if(g<f){const n=new i.j3(b),s=h+g,o=f-g,a=r-t-o+s+1,l=[],u=[];for(let e=0;e<o;e++){const t=a+e;u[e]=this.getLineContent(t),n.takeWhile((e=>e.lineNumber<t)),l[e]=n.takeWhile((e=>e.lineNumber===t))}e.push(new ge.bg(s+1,h+f,u,l))}t+=_}this._emitContentChangedEvent(new ge.HP(e,this.getVersionId(),this._isUndoing,this._isRedoing),{changes:o,eol:this._buffer.getEOL(),versionId:this.getVersionId(),isUndoing:this._isUndoing,isRedoing:this._isRedoing,isFlush:!1})}return null===s.reverseEdits?void 0:s.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 ge.U0(e,this.getLineContent(e),this._getInjectedTextInLine(e))));this._onDidChangeInjectedText.fire(new ge.vn(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,Oe(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(s){(0,r.dz)(s)}return n.addDecoration=xe,n.changeDecoration=xe,n.changeDecorationOptions=xe,n.removeDecoration=xe,n.deltaDecorations=xe,i}deltaDecorations(e,t,n=0){if(this._assertNotDisposed(),e||(e=[]),0===e.length&&0===t.length)return[];try{return this._deltaDecorationCallCnt++,this._deltaDecorationCallCnt,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:Ae[n]}])[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(Ae[n]),this._decorationsTree.insert(i),i.id}removeAllDecorationsWithOwnerId(e){if(this._isDisposed)return;const t=this._decorationsTree.collectNodesFromOwner(e);for(let n=0,i=t.length;n<i;n++){const e=t[n];this._decorationsTree.delete(e),delete this._decorations[e.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,s=!1){const r=this.getLineCount(),o=Math.min(r,Math.max(1,e)),a=Math.min(r,Math.max(1,t)),h=this.getLineMaxColumn(a),l=new f.Q(o,1,a,h),u=this._getDecorationsInRange(l,n,s);return(0,i.E4)(u,this._decorationProvider.getDecorationsInRange(l,n,s)),u}getDecorationsInRange(e,t=0,n=!1){const s=this.validateRange(e),r=this._getDecorationsInRange(s,t,n);return(0,i.E4)(r,this._decorationProvider.getDecorationsInRange(s,t,n)),r}getOverviewRulerDecorations(e=0,t=!1){return this._decorationsTree.getAll(this,e,t,!0)}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 ge.uK.fromDecorations(i).filter((t=>t.lineNumber===e))}getAllDecorations(e=0,t=!1){let n=this._decorationsTree.getAll(this,e,t,!1);return n=n.concat(this._decorationProvider.getAllDecorations(e,t)),n}_getDecorationsInRange(e,t,n){const i=this._buffer.getOffsetAt(e.startLineNumber,e.startColumn),s=this._buffer.getOffsetAt(e.endLineNumber,e.endColumn);return this._decorationsTree.getAllInInterval(this,i,s,t,n)}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)}i!==s?(this._decorationsTree.delete(n),n.setOptions(t),this._decorationsTree.insert(n)):n.setOptions(t)}_deltaDecorationsImpl(e,t,n){const i=this.getVersionId(),s=t.length;let r=0;const o=n.length;let a=0;const h=new Array(o);for(;r<s||a<o;){let l=null;if(r<s){do{l=this._decorations[t[r++]]}while(!l&&r<s);if(l){if(l.options.after){const e=this._decorationsTree.getNodeRange(this,l);this._onDidChangeDecorations.recordLineAffectedByInjectedText(e.endLineNumber)}if(l.options.before){const e=this._decorationsTree.getNodeRange(this,l);this._onDidChangeDecorations.recordLineAffectedByInjectedText(e.startLineNumber)}this._decorationsTree.delete(l),this._onDidChangeDecorations.checkAffectedAndFire(l.options)}}if(a<o){if(!l){const e=++this._lastDecorationId,t=`${this._instanceId};${e}`;l=new N.CW(t,0,0),this._decorations[t]=l}const t=n[a],s=this._validateRangeRelaxedNoAllocations(t.range),r=Oe(t.options),o=this._buffer.getOffsetAt(s.startLineNumber,s.startColumn),u=this._buffer.getOffsetAt(s.endLineNumber,s.endColumn);l.ownerId=e,l.reset(i,o,u,s),l.setOptions(r),l.options.after&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(s.endLineNumber),l.options.before&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(s.startLineNumber),this._onDidChangeDecorations.checkAffectedAndFire(r),this._decorationsTree.insert(l),h[a]=l.id,a++}else l&&delete this._decorations[l.id]}return h}getLanguageId(){return this.tokenization.getLanguageId()}setMode(e){this.tokenization.setLanguageId(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 Ne(e){return!(!e.options.overviewRuler||!e.options.overviewRuler.color)}function ve(e){return!!e.options.after||!!e.options.before}Se.MODEL_SYNC_LIMIT=52428800,Se.LARGE_FILE_SIZE_THRESHOLD=20971520,Se.LARGE_FILE_LINE_COUNT_THRESHOLD=3e5,Se.DEFAULT_CREATION_OPTIONS={isForSimpleWidget:!1,tabSize:_.R.tabSize,indentSize:_.R.indentSize,insertSpaces:_.R.insertSpaces,detectIndentation:!1,defaultEOL:1,trimAutoWhitespace:_.R.trimAutoWhitespace,largeFileOptimizations:_.R.largeFileOptimizations,bracketPairColorizationOptions:_.R.bracketPairColorizationOptions},Se=pe([me(4,_e.$D),me(5,p.L),me(6,m.JZ)],Se);class Te{constructor(){this._decorationsTree0=new N.MF,this._decorationsTree1=new N.MF,this._injectedTextDecorationsTree=new N.MF}ensureAllNodesHaveRanges(e){this.getAll(e,0,!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){const r=e.getVersionId(),o=this._intervalSearch(t,n,i,s,r);return this._ensureNodesHaveRanges(e,o)}_intervalSearch(e,t,n,i,s){const r=this._decorationsTree0.intervalSearch(e,t,n,i,s),o=this._decorationsTree1.intervalSearch(e,t,n,i,s),a=this._injectedTextDecorationsTree.intervalSearch(e,t,n,i,s);return r.concat(o).concat(a)}getInjectedTextInInterval(e,t,n,i){const s=e.getVersionId(),r=this._injectedTextDecorationsTree.intervalSearch(t,n,i,!1,s);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);return this._ensureNodesHaveRanges(e,i).filter((e=>e.options.showIfCollapsed||!e.range.isEmpty()))}getAll(e,t,n,i){const s=e.getVersionId(),r=this._search(t,n,i,s);return this._ensureNodesHaveRanges(e,r)}_search(e,t,n,i){if(n)return this._decorationsTree1.search(e,t,i);{const n=this._decorationsTree0.search(e,t,i),s=this._decorationsTree1.search(e,t,i),r=this._injectedTextDecorationsTree.search(e,t,i);return n.concat(s).concat(r)}}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){ve(e)?this._injectedTextDecorationsTree.insert(e):Ne(e)?this._decorationsTree1.insert(e):this._decorationsTree0.insert(e)}delete(e){ve(e)?this._injectedTextDecorationsTree.delete(e):Ne(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){ve(e)?this._injectedTextDecorationsTree.resolveNode(e,t):Ne(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 ke(e){return e.replace(/[^a-z0-9\-_]/gi," ")}class De{constructor(e){this.color=e.color||"",this.darkColor=e.darkColor||""}}class we extends De{constructor(e){super(e),this._resolvedColor=null,this.position="number"===typeof e.position?e.position:C.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 Ee extends De{constructor(e){super(e),this.position=e.position}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?s.Q1.fromHex(e):t.getColor(e.id)}}class Me{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}static from(e){return e instanceof Me?e:new Me(e)}}class ze{constructor(e){var t,n;this.description=e.description,this.blockClassName=e.blockClassName?ke(e.blockClassName):null,this.stickiness=e.stickiness||0,this.zIndex=e.zIndex||0,this.className=e.className?ke(e.className):null,this.hoverMessage=e.hoverMessage||null,this.glyphMarginHoverMessage=e.glyphMarginHoverMessage||null,this.isWholeLine=e.isWholeLine||!1,this.showIfCollapsed=e.showIfCollapsed||!1,this.collapseOnReplaceEdit=e.collapseOnReplaceEdit||!1,this.overviewRuler=e.overviewRuler?new we(e.overviewRuler):null,this.minimap=e.minimap?new Ee(e.minimap):null,this.glyphMarginClassName=e.glyphMarginClassName?ke(e.glyphMarginClassName):null,this.linesDecorationsClassName=e.linesDecorationsClassName?ke(e.linesDecorationsClassName):null,this.firstLineDecorationClassName=e.firstLineDecorationClassName?ke(e.firstLineDecorationClassName):null,this.marginClassName=e.marginClassName?ke(e.marginClassName):null,this.inlineClassName=e.inlineClassName?ke(e.inlineClassName):null,this.inlineClassNameAffectsLetterSpacing=e.inlineClassNameAffectsLetterSpacing||!1,this.beforeContentClassName=e.beforeContentClassName?ke(e.beforeContentClassName):null,this.afterContentClassName=e.afterContentClassName?ke(e.afterContentClassName):null,this.after=e.after?Me.from(e.after):null,this.before=e.before?Me.from(e.before):null,this.hideInCommentTokens=null!==(t=e.hideInCommentTokens)&&void 0!==t&&t,this.hideInStringTokens=null!==(n=e.hideInStringTokens)&&void 0!==n&&n}static register(e){return new ze(e)}static createDynamic(e){return new ze(e)}}ze.EMPTY=ze.register({description:"empty"});const Ae=[ze.register({description:"tracked-range-always-grows-when-typing-at-edges",stickiness:0}),ze.register({description:"tracked-range-never-grows-when-typing-at-edges",stickiness:1}),ze.register({description:"tracked-range-grows-only-when-typing-before",stickiness:2}),ze.register({description:"tracked-range-grows-only-when-typing-after",stickiness:3})];function Oe(e){return e instanceof ze?e:ze.createDynamic(e)}class Re extends a.jG{constructor(e){super(),this.handleBeforeFire=e,this._actual=this._register(new o.vl),this.event=this._actual.event,this._affectedInjectedTextLines=null,this._deferredCnt=0,this._shouldFire=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(){var e;if(this._deferredCnt--,0===this._deferredCnt){if(this._shouldFire){this.handleBeforeFire(this._affectedInjectedTextLines);const e={affectsMinimap:this._affectsMinimap,affectsOverviewRuler:this._affectsOverviewRuler};this._shouldFire=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._actual.fire(e)}null===(e=this._affectedInjectedTextLines)||void 0===e||e.clear(),this._affectedInjectedTextLines=null}}recordLineAffectedByInjectedText(e){this._affectedInjectedTextLines||(this._affectedInjectedTextLines=new Set),this._affectedInjectedTextLines.add(e)}checkAffectedAndFire(e){this._affectsMinimap||(this._affectsMinimap=!(!e.minimap||!e.minimap.position)),this._affectsOverviewRuler||(this._affectsOverviewRuler=!(!e.overviewRuler||!e.overviewRuler.color)),this._shouldFire=!0}fire(){this._affectsMinimap=!0,this._affectsOverviewRuler=!0,this._shouldFire=!0}}class Be extends a.jG{constructor(){super(),this._fastEmitter=this._register(new o.vl),this.fastEvent=this._fastEmitter.event,this._slowEmitter=this._register(new o.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))}}},75574:(e,t,n)=>{n.d(t,{_:()=>s});var i=n(33793);class s extends i.jG{constructor(){super(...arguments),this._isDisposed=!1}dispose(){super.dispose(),this._isDisposed=!0}assertNotDisposed(){if(this._isDisposed)throw new Error("TextModelPart is disposed!")}}},62179:(e,t,n)=>{n.d(t,{W5:()=>f,dr:()=>l,hB:()=>d,lt:()=>h,wC:()=>c});var i=n(22231),s=n(9119),r=n(63102),o=n(93708),a=n(1528);class h{constructor(e,t,n,i){this.searchString=e,this.isRegex=t,this.matchCase=n,this.wordSeparators=i}parseSearchRequest(){if(""===this.searchString)return null;let e;e=this.isRegex?function(e){if(!e||0===e.length)return!1;for(let t=0,n=e.length;t<n;t++){const i=e.charCodeAt(t);if(10===i)return!0;if(92===i){if(t++,t>=n)break;const i=e.charCodeAt(t);if(110===i||114===i||87===i)return!0}}return!1}(this.searchString):this.searchString.indexOf("\n")>=0;let t=null;try{t=i.OS(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:!1,multiline:e,global:!0,unicode:!0})}catch(r){return null}if(!t)return null;let n=!this.isRegex&&!e;return n&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()&&(n=this.matchCase),new a.L5(t,this.wordSeparators?(0,s.i)(this.wordSeparators):null,n?this.searchString:null)}}function l(e,t,n){if(!n)return new a.Dg(e,null);const i=[];for(let s=0,r=t.length;s<r;s++)i[s]=t[s];return new a.Dg(e,i)}class u{constructor(e){const t=[];let n=0;for(let i=0,s=e.length;i<s;i++)10===e.charCodeAt(i)&&(t[n++]=i);this._lineFeedsOffsets=t}findLineFeedCountBeforeOffset(e){const t=this._lineFeedsOffsets;let n=0,i=t.length-1;if(-1===i)return 0;if(e<=t[0])return 0;for(;n<i;){const s=n+((i-n)/2|0);t[s]>=e?i=s-1:t[s+1]>=e?(n=s,i=s):n=s+1}return n+1}}class d{static findMatches(e,t,n,i,s){const r=t.parseSearchRequest();return r?r.regex.multiline?this._doFindMatchesMultiline(e,n,new f(r.wordSeparators,r.regex),i,s):this._doFindMatchesLineByLine(e,n,r,i,s):[]}static _getMultilineMatchRange(e,t,n,i,s,r){let a,h,l=0;if(i?(l=i.findLineFeedCountBeforeOffset(s),a=t+s+l):a=t+s,i){const e=i.findLineFeedCountBeforeOffset(s+r.length)-l;h=a+r.length+e}else h=a+r.length;const u=e.getPositionAt(a),d=e.getPositionAt(h);return new o.Q(u.lineNumber,u.column,d.lineNumber,d.column)}static _doFindMatchesMultiline(e,t,n,i,s){const r=e.getOffsetAt(t.getStartPosition()),o=e.getValueInRange(t,1),a="\r\n"===e.getEOL()?new u(o):null,h=[];let d,c=0;for(n.reset(0);d=n.next(o);)if(h[c++]=l(this._getMultilineMatchRange(e,r,o,a,d.index,d[0]),d,i),c>=s)return h;return h}static _doFindMatchesLineByLine(e,t,n,i,s){const r=[];let o=0;if(t.startLineNumber===t.endLineNumber){const a=e.getLineContent(t.startLineNumber).substring(t.startColumn-1,t.endColumn-1);return o=this._findMatchesInLine(n,a,t.startLineNumber,t.startColumn-1,o,r,i,s),r}const a=e.getLineContent(t.startLineNumber).substring(t.startColumn-1);o=this._findMatchesInLine(n,a,t.startLineNumber,t.startColumn-1,o,r,i,s);for(let h=t.startLineNumber+1;h<t.endLineNumber&&o<s;h++)o=this._findMatchesInLine(n,e.getLineContent(h),h,0,o,r,i,s);if(o<s){const a=e.getLineContent(t.endLineNumber).substring(0,t.endColumn-1);o=this._findMatchesInLine(n,a,t.endLineNumber,0,o,r,i,s)}return r}static _findMatchesInLine(e,t,n,i,s,r,h,u){const d=e.wordSeparators;if(!h&&e.simpleSearch){const h=e.simpleSearch,l=h.length,f=t.length;let g=-l;for(;-1!==(g=t.indexOf(h,g+l));)if((!d||c(d,t,f,g,l))&&(r[s++]=new a.Dg(new o.Q(n,g+1+i,n,g+1+l+i),null),s>=u))return s;return s}const g=new f(e.wordSeparators,e.regex);let _;g.reset(0);do{if(_=g.next(t),_&&(r[s++]=l(new o.Q(n,_.index+1+i,n,_.index+1+_[0].length+i),_,h),s>=u))return s}while(_);return s}static findNextMatch(e,t,n,i){const s=t.parseSearchRequest();if(!s)return null;const r=new f(s.wordSeparators,s.regex);return s.regex.multiline?this._doFindNextMatchMultiline(e,n,r,i):this._doFindNextMatchLineByLine(e,n,r,i)}static _doFindNextMatchMultiline(e,t,n,i){const s=new r.y(t.lineNumber,1),a=e.getOffsetAt(s),h=e.getLineCount(),d=e.getValueInRange(new o.Q(s.lineNumber,s.column,h,e.getLineMaxColumn(h)),1),c="\r\n"===e.getEOL()?new u(d):null;n.reset(t.column-1);const f=n.next(d);return f?l(this._getMultilineMatchRange(e,a,d,c,f.index,f[0]),f,i):1!==t.lineNumber||1!==t.column?this._doFindNextMatchMultiline(e,new r.y(1,1),n,i):null}static _doFindNextMatchLineByLine(e,t,n,i){const s=e.getLineCount(),r=t.lineNumber,o=e.getLineContent(r),a=this._findFirstMatchInLine(n,o,r,t.column,i);if(a)return a;for(let h=1;h<=s;h++){const t=(r+h-1)%s,o=e.getLineContent(t+1),a=this._findFirstMatchInLine(n,o,t+1,1,i);if(a)return a}return null}static _findFirstMatchInLine(e,t,n,i,s){e.reset(i-1);const r=e.next(t);return r?l(new o.Q(n,r.index+1,n,r.index+1+r[0].length),r,s):null}static findPreviousMatch(e,t,n,i){const s=t.parseSearchRequest();if(!s)return null;const r=new f(s.wordSeparators,s.regex);return s.regex.multiline?this._doFindPreviousMatchMultiline(e,n,r,i):this._doFindPreviousMatchLineByLine(e,n,r,i)}static _doFindPreviousMatchMultiline(e,t,n,i){const s=this._doFindMatchesMultiline(e,new o.Q(1,1,t.lineNumber,t.column),n,i,9990);if(s.length>0)return s[s.length-1];const a=e.getLineCount();return t.lineNumber!==a||t.column!==e.getLineMaxColumn(a)?this._doFindPreviousMatchMultiline(e,new r.y(a,e.getLineMaxColumn(a)),n,i):null}static _doFindPreviousMatchLineByLine(e,t,n,i){const s=e.getLineCount(),r=t.lineNumber,o=e.getLineContent(r).substring(0,t.column-1),a=this._findLastMatchInLine(n,o,r,i);if(a)return a;for(let h=1;h<=s;h++){const t=(s+r-h-1)%s,o=e.getLineContent(t+1),a=this._findLastMatchInLine(n,o,t+1,i);if(a)return a}return null}static _findLastMatchInLine(e,t,n,i){let s,r=null;for(e.reset(0);s=e.next(t);)r=l(new o.Q(n,s.index+1,n,s.index+1+s[0].length),s,i);return r}}function c(e,t,n,i,s){return function(e,t,n,i,s){if(0===i)return!0;const r=t.charCodeAt(i-1);if(0!==e.get(r))return!0;if(13===r||10===r)return!0;if(s>0){const n=t.charCodeAt(i);if(0!==e.get(n))return!0}return!1}(e,t,0,i,s)&&function(e,t,n,i,s){if(i+s===n)return!0;const r=t.charCodeAt(i+s);if(0!==e.get(r))return!0;if(13===r||10===r)return!0;if(s>0){const n=t.charCodeAt(i+s-1);if(0!==e.get(n))return!0}return!1}(e,t,n,i,s)}class f{constructor(e,t){this._wordSeparators=e,this._searchRegex=t,this._prevMatchStartIndex=-1,this._prevMatchLength=0}reset(e){this._searchRegex.lastIndex=e,this._prevMatchStartIndex=-1,this._prevMatchLength=0}next(e){const t=e.length;let n;do{if(this._prevMatchStartIndex+this._prevMatchLength===t)return null;if(n=this._searchRegex.exec(e),!n)return null;const s=n.index,r=n[0].length;if(s===this._prevMatchStartIndex&&r===this._prevMatchLength){if(0===r){i.Z5(e,t,this._searchRegex.lastIndex)>65535?this._searchRegex.lastIndex+=2:this._searchRegex.lastIndex+=1;continue}return null}if(this._prevMatchStartIndex=s,this._prevMatchLength=r,!this._wordSeparators||c(this._wordSeparators,e,t,s,r))return n}while(n);return null}}},44458:(e,t,n)=>{function i(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}n.d(t,{G:()=>i})}}]);
|