@graphql-hive/laboratory
Version:
[Hive](https://the-guild.dev/graphql/hive) is a fully open-source schema registry, analytics, metrics and gateway for [GraphQL federation](https://the-guild.dev/graphql/hive/federation) and other GraphQL APIs.
136 lines • 1.21 MB
JavaScript
const e=require(`./editor.api-hvIwRq58.cjs`);function t(e,t){if(!e)throw Error(t)}function n(e){return typeof e==`object`&&!!e}function r(e,t){if(!e)throw Error(t??`Unexpected invariant triggered.`)}var i=/\r\n|[\n\r]/g;function a(e,t){let n=0,a=1;for(let o of e.body.matchAll(i)){if(typeof o.index==`number`||r(!1),o.index>=t)break;n=o.index+o[0].length,a+=1}return{line:a,column:t+1-n}}function o(e){return s(e.source,a(e.source,e.start))}function s(e,t){let n=e.locationOffset.column-1,r=``.padStart(n)+e.body,i=t.line-1,a=e.locationOffset.line-1,o=t.line+a,s=t.line===1?n:0,l=t.column+s,u=`${e.name}:${o}:${l}\n`,d=r.split(/\r\n|[\n\r]/g),f=d[i];if(f.length>120){let e=Math.floor(l/80),t=l%80,n=[];for(let e=0;e<f.length;e+=80)n.push(f.slice(e,e+80));return u+c([[`${o} |`,n[0]],...n.slice(1,e+1).map(e=>[`|`,e]),[`|`,`^`.padStart(t)],[`|`,n[e+1]]])}return u+c([[`${o-1} |`,d[i-1]],[`${o} |`,f],[`|`,`^`.padStart(l)],[`${o+1} |`,d[i+1]]])}function c(e){let t=e.filter(([e,t])=>t!==void 0),n=Math.max(...t.map(([e])=>e.length));return t.map(([e,t])=>e.padStart(n)+(t?` `+t:``)).join(`
`)}function l(e){let t=e[0];return t==null||`kind`in t||`length`in t?{nodes:t,source:e[1],positions:e[2],path:e[3],originalError:e[4],extensions:e[5]}:t}var u=class e extends Error{constructor(t,...r){let{nodes:i,source:o,positions:s,path:c,originalError:u,extensions:f}=l(r);super(t),this.name=`GraphQLError`,this.path=c??void 0,this.originalError=u??void 0,this.nodes=d(Array.isArray(i)?i:i?[i]:void 0);let p=d(this.nodes?.map(e=>e.loc).filter(e=>e!=null));this.source=o??p?.[0]?.source,this.positions=s??p?.map(e=>e.start),this.locations=s&&o?s.map(e=>a(o,e)):p?.map(e=>a(e.source,e.start));let m=n(u?.extensions)?u?.extensions:void 0;this.extensions=f??m??Object.create(null),Object.defineProperties(this,{message:{writable:!0,enumerable:!0},name:{enumerable:!1},nodes:{enumerable:!1},source:{enumerable:!1},positions:{enumerable:!1},originalError:{enumerable:!1}}),u!=null&&u.stack?Object.defineProperty(this,`stack`,{value:u.stack,writable:!0,configurable:!0}):Error.captureStackTrace?Error.captureStackTrace(this,e):Object.defineProperty(this,`stack`,{value:Error().stack,writable:!0,configurable:!0})}get[Symbol.toStringTag](){return`GraphQLError`}toString(){let e=this.message;if(this.nodes)for(let t of this.nodes)t.loc&&(e+=`
`+o(t.loc));else if(this.source&&this.locations)for(let t of this.locations)e+=`
`+s(this.source,t);return e}toJSON(){let e={message:this.message};return this.locations!=null&&(e.locations=this.locations),this.path!=null&&(e.path=this.path),this.extensions!=null&&Object.keys(this.extensions).length>0&&(e.extensions=this.extensions),e}};function d(e){return e===void 0||e.length===0?void 0:e}function f(e,t,n){return new u(`Syntax Error: ${n}`,{source:e,positions:[t]})}var p=class{constructor(e,t,n){this.start=e.start,this.end=t.end,this.startToken=e,this.endToken=t,this.source=n}get[Symbol.toStringTag](){return`Location`}toJSON(){return{start:this.start,end:this.end}}},m=class{constructor(e,t,n,r,i,a){this.kind=e,this.start=t,this.end=n,this.line=r,this.column=i,this.value=a,this.prev=null,this.next=null}get[Symbol.toStringTag](){return`Token`}toJSON(){return{kind:this.kind,value:this.value,line:this.line,column:this.column}}};const h={Name:[],Document:[`definitions`],OperationDefinition:[`description`,`name`,`variableDefinitions`,`directives`,`selectionSet`],VariableDefinition:[`description`,`variable`,`type`,`defaultValue`,`directives`],Variable:[`name`],SelectionSet:[`selections`],Field:[`alias`,`name`,`arguments`,`directives`,`selectionSet`],Argument:[`name`,`value`],FragmentSpread:[`name`,`directives`],InlineFragment:[`typeCondition`,`directives`,`selectionSet`],FragmentDefinition:[`description`,`name`,`variableDefinitions`,`typeCondition`,`directives`,`selectionSet`],IntValue:[],FloatValue:[],StringValue:[],BooleanValue:[],NullValue:[],EnumValue:[],ListValue:[`values`],ObjectValue:[`fields`],ObjectField:[`name`,`value`],Directive:[`name`,`arguments`],NamedType:[`name`],ListType:[`type`],NonNullType:[`type`],SchemaDefinition:[`description`,`directives`,`operationTypes`],OperationTypeDefinition:[`type`],ScalarTypeDefinition:[`description`,`name`,`directives`],ObjectTypeDefinition:[`description`,`name`,`interfaces`,`directives`,`fields`],FieldDefinition:[`description`,`name`,`arguments`,`type`,`directives`],InputValueDefinition:[`description`,`name`,`type`,`defaultValue`,`directives`],InterfaceTypeDefinition:[`description`,`name`,`interfaces`,`directives`,`fields`],UnionTypeDefinition:[`description`,`name`,`directives`,`types`],EnumTypeDefinition:[`description`,`name`,`directives`,`values`],EnumValueDefinition:[`description`,`name`,`directives`],InputObjectTypeDefinition:[`description`,`name`,`directives`,`fields`],DirectiveDefinition:[`description`,`name`,`arguments`,`directives`,`locations`],SchemaExtension:[`directives`,`operationTypes`],DirectiveExtension:[`name`,`directives`],ScalarTypeExtension:[`name`,`directives`],ObjectTypeExtension:[`name`,`interfaces`,`directives`,`fields`],InterfaceTypeExtension:[`name`,`interfaces`,`directives`,`fields`],UnionTypeExtension:[`name`,`directives`,`types`],EnumTypeExtension:[`name`,`directives`,`values`],InputObjectTypeExtension:[`name`,`directives`,`fields`],TypeCoordinate:[`name`],MemberCoordinate:[`name`,`memberName`],ArgumentCoordinate:[`name`,`fieldName`,`argumentName`],DirectiveCoordinate:[`name`],DirectiveArgumentCoordinate:[`name`,`argumentName`]};var g=new Set(Object.keys(h));function _(e){let t=e?.kind;return typeof t==`string`&&g.has(t)}var v;(function(e){e.QUERY=`query`,e.MUTATION=`mutation`,e.SUBSCRIPTION=`subscription`})(v||={});var y;(function(e){e.QUERY=`QUERY`,e.MUTATION=`MUTATION`,e.SUBSCRIPTION=`SUBSCRIPTION`,e.FIELD=`FIELD`,e.FRAGMENT_DEFINITION=`FRAGMENT_DEFINITION`,e.FRAGMENT_SPREAD=`FRAGMENT_SPREAD`,e.INLINE_FRAGMENT=`INLINE_FRAGMENT`,e.VARIABLE_DEFINITION=`VARIABLE_DEFINITION`,e.SCHEMA=`SCHEMA`,e.SCALAR=`SCALAR`,e.OBJECT=`OBJECT`,e.FIELD_DEFINITION=`FIELD_DEFINITION`,e.ARGUMENT_DEFINITION=`ARGUMENT_DEFINITION`,e.INTERFACE=`INTERFACE`,e.UNION=`UNION`,e.ENUM=`ENUM`,e.ENUM_VALUE=`ENUM_VALUE`,e.INPUT_OBJECT=`INPUT_OBJECT`,e.INPUT_FIELD_DEFINITION=`INPUT_FIELD_DEFINITION`,e.DIRECTIVE_DEFINITION=`DIRECTIVE_DEFINITION`})(y||={});var b;(function(e){e.NAME=`Name`,e.DOCUMENT=`Document`,e.OPERATION_DEFINITION=`OperationDefinition`,e.VARIABLE_DEFINITION=`VariableDefinition`,e.SELECTION_SET=`SelectionSet`,e.FIELD=`Field`,e.ARGUMENT=`Argument`,e.FRAGMENT_SPREAD=`FragmentSpread`,e.INLINE_FRAGMENT=`InlineFragment`,e.FRAGMENT_DEFINITION=`FragmentDefinition`,e.VARIABLE=`Variable`,e.INT=`IntValue`,e.FLOAT=`FloatValue`,e.STRING=`StringValue`,e.BOOLEAN=`BooleanValue`,e.NULL=`NullValue`,e.ENUM=`EnumValue`,e.LIST=`ListValue`,e.OBJECT=`ObjectValue`,e.OBJECT_FIELD=`ObjectField`,e.DIRECTIVE=`Directive`,e.NAMED_TYPE=`NamedType`,e.LIST_TYPE=`ListType`,e.NON_NULL_TYPE=`NonNullType`,e.SCHEMA_DEFINITION=`SchemaDefinition`,e.OPERATION_TYPE_DEFINITION=`OperationTypeDefinition`,e.SCALAR_TYPE_DEFINITION=`ScalarTypeDefinition`,e.OBJECT_TYPE_DEFINITION=`ObjectTypeDefinition`,e.FIELD_DEFINITION=`FieldDefinition`,e.INPUT_VALUE_DEFINITION=`InputValueDefinition`,e.INTERFACE_TYPE_DEFINITION=`InterfaceTypeDefinition`,e.UNION_TYPE_DEFINITION=`UnionTypeDefinition`,e.ENUM_TYPE_DEFINITION=`EnumTypeDefinition`,e.ENUM_VALUE_DEFINITION=`EnumValueDefinition`,e.INPUT_OBJECT_TYPE_DEFINITION=`InputObjectTypeDefinition`,e.DIRECTIVE_DEFINITION=`DirectiveDefinition`,e.SCHEMA_EXTENSION=`SchemaExtension`,e.DIRECTIVE_EXTENSION=`DirectiveExtension`,e.SCALAR_TYPE_EXTENSION=`ScalarTypeExtension`,e.OBJECT_TYPE_EXTENSION=`ObjectTypeExtension`,e.INTERFACE_TYPE_EXTENSION=`InterfaceTypeExtension`,e.UNION_TYPE_EXTENSION=`UnionTypeExtension`,e.ENUM_TYPE_EXTENSION=`EnumTypeExtension`,e.INPUT_OBJECT_TYPE_EXTENSION=`InputObjectTypeExtension`,e.TYPE_COORDINATE=`TypeCoordinate`,e.MEMBER_COORDINATE=`MemberCoordinate`,e.ARGUMENT_COORDINATE=`ArgumentCoordinate`,e.DIRECTIVE_COORDINATE=`DirectiveCoordinate`,e.DIRECTIVE_ARGUMENT_COORDINATE=`DirectiveArgumentCoordinate`})(b||={});function ee(e){return e===9||e===32}function te(e){return e>=48&&e<=57}function ne(e){return e>=97&&e<=122||e>=65&&e<=90}function re(e){return ne(e)||e===95}function ie(e){return ne(e)||te(e)||e===95}function ae(e){let t=2**53-1,n=null,r=-1;for(let i=0;i<e.length;++i){let a=e[i],o=oe(a);o!==a.length&&(n??=i,r=i,i!==0&&o<t&&(t=o))}return e.map((e,n)=>n===0?e:e.slice(t)).slice(n??0,r+1)}function oe(e){let t=0;for(;t<e.length&&ee(e.charCodeAt(t));)++t;return t}function se(e){if(e===``)return!0;let t=!0,n=!1,r=!0,i=!1;for(let a=0;a<e.length;++a)switch(e.codePointAt(a)){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 11:case 12:case 14:case 15:return!1;case 13:return!1;case 10:if(t&&!i)return!1;i=!0,t=!0,n=!1;break;case 9:case 32:n||=t;break;default:r&&=n,t=!1}return!(t||r&&i)}function ce(e,t){let n=e.replace(/"""/g,`\\"""`),r=n.split(/\r\n|[\n\r]/g),i=r.length===1,a=r.length>1&&r.slice(1).every(e=>e.length===0||ee(e.charCodeAt(0))),o=n.endsWith(`\\"""`),s=e.endsWith(`"`)&&!o,c=e.endsWith(`\\`),l=s||c,u=!(t!=null&&t.minimize)&&(!i||e.length>70||l||a||o),d=``,f=i&&ee(e.charCodeAt(0));return(u&&!f||a)&&(d+=`
`),d+=n,(u||l)&&(d+=`
`),`"""`+d+`"""`}var x;(function(e){e.SOF=`<SOF>`,e.EOF=`<EOF>`,e.BANG=`!`,e.DOLLAR=`$`,e.AMP=`&`,e.PAREN_L=`(`,e.PAREN_R=`)`,e.DOT=`.`,e.SPREAD=`...`,e.COLON=`:`,e.EQUALS=`=`,e.AT=`@`,e.BRACKET_L=`[`,e.BRACKET_R=`]`,e.BRACE_L=`{`,e.PIPE=`|`,e.BRACE_R=`}`,e.NAME=`Name`,e.INT=`Int`,e.FLOAT=`Float`,e.STRING=`String`,e.BLOCK_STRING=`BlockString`,e.COMMENT=`Comment`})(x||={});var le=class{constructor(e){let t=new m(x.SOF,0,0,0,0);this.source=e,this.lastToken=t,this.token=t,this.line=1,this.lineStart=0}get[Symbol.toStringTag](){return`Lexer`}advance(){return this.lastToken=this.token,this.token=this.lookahead()}lookahead(){let e=this.token;if(e.kind!==x.EOF)do if(e.next)e=e.next;else{let t=ge(this,e.end);e.next=t,t.prev=e,e=t}while(e.kind===x.COMMENT);return e}};function ue(e){return e===x.BANG||e===x.DOLLAR||e===x.AMP||e===x.PAREN_L||e===x.PAREN_R||e===x.DOT||e===x.SPREAD||e===x.COLON||e===x.EQUALS||e===x.AT||e===x.BRACKET_L||e===x.BRACKET_R||e===x.BRACE_L||e===x.PIPE||e===x.BRACE_R}function de(e){return e>=0&&e<=55295||e>=57344&&e<=1114111}function fe(e,t){return pe(e.charCodeAt(t))&&me(e.charCodeAt(t+1))}function pe(e){return e>=55296&&e<=56319}function me(e){return e>=56320&&e<=57343}function he(e,t){let n=e.source.body.codePointAt(t);if(n===void 0)return x.EOF;if(n>=32&&n<=126){let e=String.fromCodePoint(n);return e===`"`?`'"'`:`"${e}"`}return`U+`+n.toString(16).toUpperCase().padStart(4,`0`)}function S(e,t,n,r,i){let a=e.line,o=1+n-e.lineStart;return new m(t,n,r,a,o,i)}function ge(e,t){let n=e.source.body,r=n.length,i=t;for(;i<r;){let t=n.charCodeAt(i);switch(t){case 65279:case 9:case 32:case 44:++i;continue;case 10:++i,++e.line,e.lineStart=i;continue;case 13:n.charCodeAt(i+1)===10?i+=2:++i,++e.line,e.lineStart=i;continue;case 35:return _e(e,i);case 33:return S(e,x.BANG,i,i+1);case 36:return S(e,x.DOLLAR,i,i+1);case 38:return S(e,x.AMP,i,i+1);case 40:return S(e,x.PAREN_L,i,i+1);case 41:return S(e,x.PAREN_R,i,i+1);case 46:if(n.charCodeAt(i+1)===46&&n.charCodeAt(i+2)===46)return S(e,x.SPREAD,i,i+3);break;case 58:return S(e,x.COLON,i,i+1);case 61:return S(e,x.EQUALS,i,i+1);case 64:return S(e,x.AT,i,i+1);case 91:return S(e,x.BRACKET_L,i,i+1);case 93:return S(e,x.BRACKET_R,i,i+1);case 123:return S(e,x.BRACE_L,i,i+1);case 124:return S(e,x.PIPE,i,i+1);case 125:return S(e,x.BRACE_R,i,i+1);case 34:return n.charCodeAt(i+1)===34&&n.charCodeAt(i+2)===34?Ee(e,i):be(e,i)}if(te(t)||t===45)return ve(e,i,t);if(re(t))return De(e,i);throw f(e.source,i,t===39?`Unexpected single quote character ('), did you mean to use a double quote (")?`:de(t)||fe(n,i)?`Unexpected character: ${he(e,i)}.`:`Invalid character: ${he(e,i)}.`)}return S(e,x.EOF,r,r)}function _e(e,t){let n=e.source.body,r=n.length,i=t+1;for(;i<r;){let e=n.charCodeAt(i);if(e===10||e===13)break;if(de(e))++i;else if(fe(n,i))i+=2;else break}return S(e,x.COMMENT,t,i,n.slice(t+1,i))}function ve(e,t,n){let r=e.source.body,i=t,a=n,o=!1;if(a===45&&(a=r.charCodeAt(++i)),a===48){if(a=r.charCodeAt(++i),te(a))throw f(e.source,i,`Invalid number, unexpected digit after 0: ${he(e,i)}.`)}else i=ye(e,i,a),a=r.charCodeAt(i);if(a===46&&(o=!0,a=r.charCodeAt(++i),i=ye(e,i,a),a=r.charCodeAt(i)),(a===69||a===101)&&(o=!0,a=r.charCodeAt(++i),(a===43||a===45)&&(a=r.charCodeAt(++i)),i=ye(e,i,a),a=r.charCodeAt(i)),a===46||re(a))throw f(e.source,i,`Invalid number, expected digit but got: ${he(e,i)}.`);return S(e,o?x.FLOAT:x.INT,t,i,r.slice(t,i))}function ye(e,t,n){if(!te(n))throw f(e.source,t,`Invalid number, expected digit but got: ${he(e,t)}.`);let r=e.source.body,i=t+1;for(;te(r.charCodeAt(i));)++i;return i}function be(e,t){let n=e.source.body,r=n.length,i=t+1,a=i,o=``;for(;i<r;){let r=n.charCodeAt(i);if(r===34)return o+=n.slice(a,i),S(e,x.STRING,t,i+1,o);if(r===92){o+=n.slice(a,i);let t=n.charCodeAt(i+1)===117?n.charCodeAt(i+2)===123?xe(e,i):Se(e,i):Te(e,i);o+=t.value,i+=t.size,a=i;continue}if(r===10||r===13)break;if(de(r))++i;else if(fe(n,i))i+=2;else throw f(e.source,i,`Invalid character within String: ${he(e,i)}.`)}throw f(e.source,i,`Unterminated string.`)}function xe(e,t){let n=e.source.body,r=0,i=3;for(;i<12;){let e=n.charCodeAt(t+ i++);if(e===125){if(i<5||!de(r))break;return{value:String.fromCodePoint(r),size:i}}if(r=r<<4|we(e),r<0)break}throw f(e.source,t,`Invalid Unicode escape sequence: "${n.slice(t,t+i)}".`)}function Se(e,t){let n=e.source.body,r=Ce(n,t+2);if(de(r))return{value:String.fromCodePoint(r),size:6};if(pe(r)&&n.charCodeAt(t+6)===92&&n.charCodeAt(t+7)===117){let e=Ce(n,t+8);if(me(e))return{value:String.fromCodePoint(r,e),size:12}}throw f(e.source,t,`Invalid Unicode escape sequence: "${n.slice(t,t+6)}".`)}function Ce(e,t){return we(e.charCodeAt(t))<<12|we(e.charCodeAt(t+1))<<8|we(e.charCodeAt(t+2))<<4|we(e.charCodeAt(t+3))}function we(e){return e>=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:-1}function Te(e,t){let n=e.source.body;switch(n.charCodeAt(t+1)){case 34:return{value:`"`,size:2};case 92:return{value:`\\`,size:2};case 47:return{value:`/`,size:2};case 98:return{value:`\b`,size:2};case 102:return{value:`\f`,size:2};case 110:return{value:`
`,size:2};case 114:return{value:`\r`,size:2};case 116:return{value:` `,size:2}}throw f(e.source,t,`Invalid character escape sequence: "${n.slice(t,t+2)}".`)}function Ee(e,t){let n=e.source.body,r=n.length,i=e.lineStart,a=t+3,o=a,s=``,c=[];for(;a<r;){let r=n.charCodeAt(a);if(r===34&&n.charCodeAt(a+1)===34&&n.charCodeAt(a+2)===34){s+=n.slice(o,a),c.push(s);let r=S(e,x.BLOCK_STRING,t,a+3,ae(c).join(`
`));return e.line+=c.length-1,e.lineStart=i,r}if(r===92&&n.charCodeAt(a+1)===34&&n.charCodeAt(a+2)===34&&n.charCodeAt(a+3)===34){s+=n.slice(o,a),o=a+1,a+=4;continue}if(r===10||r===13){s+=n.slice(o,a),c.push(s),r===13&&n.charCodeAt(a+1)===10?a+=2:++a,s=``,o=a,i=a;continue}if(de(r))++a;else if(fe(n,a))a+=2;else throw f(e.source,a,`Invalid character within String: ${he(e,a)}.`)}throw f(e.source,a,`Unterminated string.`)}function De(e,t){let n=e.source.body,r=n.length,i=t+1;for(;i<r;){let e=n.charCodeAt(i);if(ie(e))++i;else break}return S(e,x.NAME,t,i,n.slice(t,i))}var Oe=10,ke=2;function C(e){return Ae(e,[])}function Ae(e,t){switch(typeof e){case`string`:return JSON.stringify(e);case`function`:return e.name?`[function ${e.name}]`:`[function]`;case`object`:return je(e,t);default:return String(e)}}function je(e,t){if(e===null)return`null`;if(t.includes(e))return`[Circular]`;let n=[...t,e];if(Me(e)){let t=e.toJSON();if(t!==e)return typeof t==`string`?t:Ae(t,n)}else if(Array.isArray(e))return Pe(e,n);return Ne(e,n)}function Me(e){return typeof e.toJSON==`function`}function Ne(e,t){let n=Object.entries(e);return n.length===0?`{}`:t.length>ke?`[`+Fe(e)+`]`:`{ `+n.map(([e,n])=>e+`: `+Ae(n,t)).join(`, `)+` }`}function Pe(e,t){if(e.length===0)return`[]`;if(t.length>ke)return`[Array]`;let n=Math.min(Oe,e.length),r=e.length-n,i=[];for(let r=0;r<n;++r)i.push(Ae(e[r],t));return r===1?i.push(`... 1 more item`):r>1&&i.push(`... ${r} more items`),`[`+i.join(`, `)+`]`}function Fe(e){let t=Object.prototype.toString.call(e).replace(/^\[object /,``).replace(/]$/,``);if(t===`Object`&&typeof e.constructor==`function`){let t=e.constructor.name;if(typeof t==`string`&&t!==``)return t}return t}var Ie=globalThis.process&&process.env.NODE_ENV===`production`;const Le=Ie?function(e,t){return e instanceof t}:function(e,t){if(e instanceof t)return!0;if(typeof e==`object`&&e){let n=t.prototype[Symbol.toStringTag],r=Symbol.toStringTag in e?e[Symbol.toStringTag]:e.constructor?.name;if(n===r){let t=C(e);throw Error(`Cannot use ${n} "${t}" from another module or realm.
Ensure that there is only one instance of "graphql" in the node_modules
directory. If different versions of "graphql" are the dependencies of other
relied on modules, use "resolutions" to ensure only one version is installed.
https://yarnpkg.com/en/docs/selective-version-resolutions
Duplicate "graphql" modules cannot be used at the same time since different
versions may have different capabilities and behavior. The data from one
version used in the function from another could produce confusing and
spurious results.`)}}return!1};var Re=class{constructor(e,n=`GraphQL request`,r={line:1,column:1}){typeof e==`string`||t(!1,`Body must be a string. Received: ${C(e)}.`),this.body=e,this.name=n,this.locationOffset=r,this.locationOffset.line>0||t(!1,`line in locationOffset is 1-indexed and must be positive.`),this.locationOffset.column>0||t(!1,`column in locationOffset is 1-indexed and must be positive.`)}get[Symbol.toStringTag](){return`Source`}};function ze(e){return Le(e,Re)}function Be(e,t){let n=new He(e,t),r=n.parseDocument();return Object.defineProperty(r,`tokenCount`,{enumerable:!1,value:n.tokenCount}),r}function Ve(e,t){let n=new He(e,t);n.expectToken(x.SOF);let r=n.parseValueLiteral(!1);return n.expectToken(x.EOF),r}var He=class{constructor(e,t={}){let{lexer:n,...r}=t;if(n)this._lexer=n;else{let t=ze(e)?e:new Re(e);this._lexer=new le(t)}this._options=r,this._tokenCounter=0}get tokenCount(){return this._tokenCounter}parseName(){let e=this.expectToken(x.NAME);return this.node(e,{kind:b.NAME,value:e.value})}parseDocument(){return this.node(this._lexer.token,{kind:b.DOCUMENT,definitions:this.many(x.SOF,this.parseDefinition,x.EOF)})}parseDefinition(){if(this.peek(x.BRACE_L))return this.parseOperationDefinition();let e=this.peekDescription(),t=e?this._lexer.lookahead():this._lexer.token;if(e&&t.kind===x.BRACE_L)throw f(this._lexer.source,this._lexer.token.start,`Unexpected description, descriptions are not supported on shorthand queries.`);if(t.kind===x.NAME){switch(t.value){case`schema`:return this.parseSchemaDefinition();case`scalar`:return this.parseScalarTypeDefinition();case`type`:return this.parseObjectTypeDefinition();case`interface`:return this.parseInterfaceTypeDefinition();case`union`:return this.parseUnionTypeDefinition();case`enum`:return this.parseEnumTypeDefinition();case`input`:return this.parseInputObjectTypeDefinition();case`directive`:return this.parseDirectiveDefinition()}switch(t.value){case`query`:case`mutation`:case`subscription`:return this.parseOperationDefinition();case`fragment`:return this.parseFragmentDefinition()}if(e)throw f(this._lexer.source,this._lexer.token.start,`Unexpected description, only GraphQL definitions support descriptions.`);switch(t.value){case`extend`:return this.parseTypeSystemExtension()}}throw this.unexpected(t)}parseOperationDefinition(){let e=this._lexer.token;if(this.peek(x.BRACE_L))return this.node(e,{kind:b.OPERATION_DEFINITION,operation:v.QUERY,description:void 0,name:void 0,variableDefinitions:[],directives:[],selectionSet:this.parseSelectionSet()});let t=this.parseDescription(),n=this.parseOperationType(),r;return this.peek(x.NAME)&&(r=this.parseName()),this.node(e,{kind:b.OPERATION_DEFINITION,operation:n,description:t,name:r,variableDefinitions:this.parseVariableDefinitions(),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()})}parseOperationType(){let e=this.expectToken(x.NAME);switch(e.value){case`query`:return v.QUERY;case`mutation`:return v.MUTATION;case`subscription`:return v.SUBSCRIPTION}throw this.unexpected(e)}parseVariableDefinitions(){return this.optionalMany(x.PAREN_L,this.parseVariableDefinition,x.PAREN_R)}parseVariableDefinition(){return this.node(this._lexer.token,{kind:b.VARIABLE_DEFINITION,description:this.parseDescription(),variable:this.parseVariable(),type:(this.expectToken(x.COLON),this.parseTypeReference()),defaultValue:this.expectOptionalToken(x.EQUALS)?this.parseConstValueLiteral():void 0,directives:this.parseConstDirectives()})}parseVariable(){let e=this._lexer.token;return this.expectToken(x.DOLLAR),this.node(e,{kind:b.VARIABLE,name:this.parseName()})}parseSelectionSet(){return this.node(this._lexer.token,{kind:b.SELECTION_SET,selections:this.many(x.BRACE_L,this.parseSelection,x.BRACE_R)})}parseSelection(){return this.peek(x.SPREAD)?this.parseFragment():this.parseField()}parseField(){let e=this._lexer.token,t=this.parseName(),n,r;return this.expectOptionalToken(x.COLON)?(n=t,r=this.parseName()):r=t,this.node(e,{kind:b.FIELD,alias:n,name:r,arguments:this.parseArguments(!1),directives:this.parseDirectives(!1),selectionSet:this.peek(x.BRACE_L)?this.parseSelectionSet():void 0})}parseArguments(e){let t=e?this.parseConstArgument:this.parseArgument;return this.optionalMany(x.PAREN_L,t,x.PAREN_R)}parseArgument(e=!1){let t=this._lexer.token,n=this.parseName();return this.expectToken(x.COLON),this.node(t,{kind:b.ARGUMENT,name:n,value:this.parseValueLiteral(e)})}parseConstArgument(){return this.parseArgument(!0)}parseFragment(){let e=this._lexer.token;this.expectToken(x.SPREAD);let t=this.expectOptionalKeyword(`on`);return!t&&this.peek(x.NAME)?this.node(e,{kind:b.FRAGMENT_SPREAD,name:this.parseFragmentName(),directives:this.parseDirectives(!1)}):this.node(e,{kind:b.INLINE_FRAGMENT,typeCondition:t?this.parseNamedType():void 0,directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()})}parseFragmentDefinition(){let e=this._lexer.token,t=this.parseDescription();return this.expectKeyword(`fragment`),this._options.allowLegacyFragmentVariables===!0?this.node(e,{kind:b.FRAGMENT_DEFINITION,description:t,name:this.parseFragmentName(),variableDefinitions:this.parseVariableDefinitions(),typeCondition:(this.expectKeyword(`on`),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()}):this.node(e,{kind:b.FRAGMENT_DEFINITION,description:t,name:this.parseFragmentName(),typeCondition:(this.expectKeyword(`on`),this.parseNamedType()),directives:this.parseDirectives(!1),selectionSet:this.parseSelectionSet()})}parseFragmentName(){if(this._lexer.token.value===`on`)throw this.unexpected();return this.parseName()}parseValueLiteral(e){let t=this._lexer.token;switch(t.kind){case x.BRACKET_L:return this.parseList(e);case x.BRACE_L:return this.parseObject(e);case x.INT:return this.advanceLexer(),this.node(t,{kind:b.INT,value:t.value});case x.FLOAT:return this.advanceLexer(),this.node(t,{kind:b.FLOAT,value:t.value});case x.STRING:case x.BLOCK_STRING:return this.parseStringLiteral();case x.NAME:switch(this.advanceLexer(),t.value){case`true`:return this.node(t,{kind:b.BOOLEAN,value:!0});case`false`:return this.node(t,{kind:b.BOOLEAN,value:!1});case`null`:return this.node(t,{kind:b.NULL});default:return this.node(t,{kind:b.ENUM,value:t.value})}case x.DOLLAR:if(e)if(this.expectToken(x.DOLLAR),this._lexer.token.kind===x.NAME){let e=this._lexer.token.value;throw f(this._lexer.source,t.start,`Unexpected variable "$${e}" in constant value.`)}else throw this.unexpected(t);return this.parseVariable();default:throw this.unexpected()}}parseConstValueLiteral(){return this.parseValueLiteral(!0)}parseStringLiteral(){let e=this._lexer.token;return this.advanceLexer(),this.node(e,{kind:b.STRING,value:e.value,block:e.kind===x.BLOCK_STRING})}parseList(e){return this.node(this._lexer.token,{kind:b.LIST,values:this.any(x.BRACKET_L,()=>this.parseValueLiteral(e),x.BRACKET_R)})}parseObject(e){return this.node(this._lexer.token,{kind:b.OBJECT,fields:this.any(x.BRACE_L,()=>this.parseObjectField(e),x.BRACE_R)})}parseObjectField(e){let t=this._lexer.token,n=this.parseName();return this.expectToken(x.COLON),this.node(t,{kind:b.OBJECT_FIELD,name:n,value:this.parseValueLiteral(e)})}parseDirectives(e){let t=[];for(;this.peek(x.AT);)t.push(this.parseDirective(e));return t}parseConstDirectives(){return this.parseDirectives(!0)}parseDirective(e){let t=this._lexer.token;return this.expectToken(x.AT),this.node(t,{kind:b.DIRECTIVE,name:this.parseName(),arguments:this.parseArguments(e)})}parseTypeReference(){let e=this._lexer.token,t;if(this.expectOptionalToken(x.BRACKET_L)){let n=this.parseTypeReference();this.expectToken(x.BRACKET_R),t=this.node(e,{kind:b.LIST_TYPE,type:n})}else t=this.parseNamedType();return this.expectOptionalToken(x.BANG)?this.node(e,{kind:b.NON_NULL_TYPE,type:t}):t}parseNamedType(){return this.node(this._lexer.token,{kind:b.NAMED_TYPE,name:this.parseName()})}peekDescription(){return this.peek(x.STRING)||this.peek(x.BLOCK_STRING)}parseDescription(){if(this.peekDescription())return this.parseStringLiteral()}parseSchemaDefinition(){let e=this._lexer.token,t=this.parseDescription();this.expectKeyword(`schema`);let n=this.parseConstDirectives(),r=this.many(x.BRACE_L,this.parseOperationTypeDefinition,x.BRACE_R);return this.node(e,{kind:b.SCHEMA_DEFINITION,description:t,directives:n,operationTypes:r})}parseOperationTypeDefinition(){let e=this._lexer.token,t=this.parseOperationType();this.expectToken(x.COLON);let n=this.parseNamedType();return this.node(e,{kind:b.OPERATION_TYPE_DEFINITION,operation:t,type:n})}parseScalarTypeDefinition(){let e=this._lexer.token,t=this.parseDescription();this.expectKeyword(`scalar`);let n=this.parseName(),r=this.parseConstDirectives();return this.node(e,{kind:b.SCALAR_TYPE_DEFINITION,description:t,name:n,directives:r})}parseObjectTypeDefinition(){let e=this._lexer.token,t=this.parseDescription();this.expectKeyword(`type`);let n=this.parseName(),r=this.parseImplementsInterfaces(),i=this.parseConstDirectives(),a=this.parseFieldsDefinition();return this.node(e,{kind:b.OBJECT_TYPE_DEFINITION,description:t,name:n,interfaces:r,directives:i,fields:a})}parseImplementsInterfaces(){return this.expectOptionalKeyword(`implements`)?this.delimitedMany(x.AMP,this.parseNamedType):[]}parseFieldsDefinition(){return this.optionalMany(x.BRACE_L,this.parseFieldDefinition,x.BRACE_R)}parseFieldDefinition(){let e=this._lexer.token,t=this.parseDescription(),n=this.parseName(),r=this.parseArgumentDefs();this.expectToken(x.COLON);let i=this.parseTypeReference(),a=this.parseConstDirectives();return this.node(e,{kind:b.FIELD_DEFINITION,description:t,name:n,arguments:r,type:i,directives:a})}parseArgumentDefs(){return this.optionalMany(x.PAREN_L,this.parseInputValueDef,x.PAREN_R)}parseInputValueDef(){let e=this._lexer.token,t=this.parseDescription(),n=this.parseName();this.expectToken(x.COLON);let r=this.parseTypeReference(),i;this.expectOptionalToken(x.EQUALS)&&(i=this.parseConstValueLiteral());let a=this.parseConstDirectives();return this.node(e,{kind:b.INPUT_VALUE_DEFINITION,description:t,name:n,type:r,defaultValue:i,directives:a})}parseInterfaceTypeDefinition(){let e=this._lexer.token,t=this.parseDescription();this.expectKeyword(`interface`);let n=this.parseName(),r=this.parseImplementsInterfaces(),i=this.parseConstDirectives(),a=this.parseFieldsDefinition();return this.node(e,{kind:b.INTERFACE_TYPE_DEFINITION,description:t,name:n,interfaces:r,directives:i,fields:a})}parseUnionTypeDefinition(){let e=this._lexer.token,t=this.parseDescription();this.expectKeyword(`union`);let n=this.parseName(),r=this.parseConstDirectives(),i=this.parseUnionMemberTypes();return this.node(e,{kind:b.UNION_TYPE_DEFINITION,description:t,name:n,directives:r,types:i})}parseUnionMemberTypes(){return this.expectOptionalToken(x.EQUALS)?this.delimitedMany(x.PIPE,this.parseNamedType):[]}parseEnumTypeDefinition(){let e=this._lexer.token,t=this.parseDescription();this.expectKeyword(`enum`);let n=this.parseName(),r=this.parseConstDirectives(),i=this.parseEnumValuesDefinition();return this.node(e,{kind:b.ENUM_TYPE_DEFINITION,description:t,name:n,directives:r,values:i})}parseEnumValuesDefinition(){return this.optionalMany(x.BRACE_L,this.parseEnumValueDefinition,x.BRACE_R)}parseEnumValueDefinition(){let e=this._lexer.token,t=this.parseDescription(),n=this.parseEnumValueName(),r=this.parseConstDirectives();return this.node(e,{kind:b.ENUM_VALUE_DEFINITION,description:t,name:n,directives:r})}parseEnumValueName(){if(this._lexer.token.value===`true`||this._lexer.token.value===`false`||this._lexer.token.value===`null`)throw f(this._lexer.source,this._lexer.token.start,`${Ue(this._lexer.token)} is reserved and cannot be used for an enum value.`);return this.parseName()}parseInputObjectTypeDefinition(){let e=this._lexer.token,t=this.parseDescription();this.expectKeyword(`input`);let n=this.parseName(),r=this.parseConstDirectives(),i=this.parseInputFieldsDefinition();return this.node(e,{kind:b.INPUT_OBJECT_TYPE_DEFINITION,description:t,name:n,directives:r,fields:i})}parseInputFieldsDefinition(){return this.optionalMany(x.BRACE_L,this.parseInputValueDef,x.BRACE_R)}parseTypeSystemExtension(){let e=this._lexer.lookahead();if(e.kind===x.NAME)switch(e.value){case`schema`:return this.parseSchemaExtension();case`scalar`:return this.parseScalarTypeExtension();case`type`:return this.parseObjectTypeExtension();case`interface`:return this.parseInterfaceTypeExtension();case`union`:return this.parseUnionTypeExtension();case`enum`:return this.parseEnumTypeExtension();case`input`:return this.parseInputObjectTypeExtension();case`directive`:if(this._options.experimentalDirectivesOnDirectiveDefinitions)return this.parseDirectiveDefinitionExtension();break}throw this.unexpected(e)}parseSchemaExtension(){let e=this._lexer.token;this.expectKeyword(`extend`),this.expectKeyword(`schema`);let t=this.parseConstDirectives(),n=this.optionalMany(x.BRACE_L,this.parseOperationTypeDefinition,x.BRACE_R);if(t.length===0&&n.length===0)throw this.unexpected();return this.node(e,{kind:b.SCHEMA_EXTENSION,directives:t,operationTypes:n})}parseScalarTypeExtension(){let e=this._lexer.token;this.expectKeyword(`extend`),this.expectKeyword(`scalar`);let t=this.parseName(),n=this.parseConstDirectives();if(n.length===0)throw this.unexpected();return this.node(e,{kind:b.SCALAR_TYPE_EXTENSION,name:t,directives:n})}parseObjectTypeExtension(){let e=this._lexer.token;this.expectKeyword(`extend`),this.expectKeyword(`type`);let t=this.parseName(),n=this.parseImplementsInterfaces(),r=this.parseConstDirectives(),i=this.parseFieldsDefinition();if(n.length===0&&r.length===0&&i.length===0)throw this.unexpected();return this.node(e,{kind:b.OBJECT_TYPE_EXTENSION,name:t,interfaces:n,directives:r,fields:i})}parseInterfaceTypeExtension(){let e=this._lexer.token;this.expectKeyword(`extend`),this.expectKeyword(`interface`);let t=this.parseName(),n=this.parseImplementsInterfaces(),r=this.parseConstDirectives(),i=this.parseFieldsDefinition();if(n.length===0&&r.length===0&&i.length===0)throw this.unexpected();return this.node(e,{kind:b.INTERFACE_TYPE_EXTENSION,name:t,interfaces:n,directives:r,fields:i})}parseUnionTypeExtension(){let e=this._lexer.token;this.expectKeyword(`extend`),this.expectKeyword(`union`);let t=this.parseName(),n=this.parseConstDirectives(),r=this.parseUnionMemberTypes();if(n.length===0&&r.length===0)throw this.unexpected();return this.node(e,{kind:b.UNION_TYPE_EXTENSION,name:t,directives:n,types:r})}parseEnumTypeExtension(){let e=this._lexer.token;this.expectKeyword(`extend`),this.expectKeyword(`enum`);let t=this.parseName(),n=this.parseConstDirectives(),r=this.parseEnumValuesDefinition();if(n.length===0&&r.length===0)throw this.unexpected();return this.node(e,{kind:b.ENUM_TYPE_EXTENSION,name:t,directives:n,values:r})}parseInputObjectTypeExtension(){let e=this._lexer.token;this.expectKeyword(`extend`),this.expectKeyword(`input`);let t=this.parseName(),n=this.parseConstDirectives(),r=this.parseInputFieldsDefinition();if(n.length===0&&r.length===0)throw this.unexpected();return this.node(e,{kind:b.INPUT_OBJECT_TYPE_EXTENSION,name:t,directives:n,fields:r})}parseDirectiveDefinitionExtension(){let e=this._lexer.token;this.expectKeyword(`extend`),this.expectKeyword(`directive`),this.expectToken(x.AT);let t=this.parseName(),n=this.parseConstDirectives();if(n.length===0)throw this.unexpected();return this.node(e,{kind:b.DIRECTIVE_EXTENSION,name:t,directives:n})}parseDirectiveDefinition(){let e=this._lexer.token,t=this.parseDescription();this.expectKeyword(`directive`),this.expectToken(x.AT);let n=this.parseName(),r=this.parseArgumentDefs(),i=this._options.experimentalDirectivesOnDirectiveDefinitions?this.parseConstDirectives():[],a=this.expectOptionalKeyword(`repeatable`);this.expectKeyword(`on`);let o=this.parseDirectiveLocations();return this.node(e,{kind:b.DIRECTIVE_DEFINITION,description:t,name:n,arguments:r,directives:i,repeatable:a,locations:o})}parseDirectiveLocations(){return this.delimitedMany(x.PIPE,this.parseDirectiveLocation)}parseDirectiveLocation(){let e=this._lexer.token,t=this.parseName();if(Object.prototype.hasOwnProperty.call(y,t.value))return t;throw this.unexpected(e)}parseSchemaCoordinate(){let e=this._lexer.token,t=this.expectOptionalToken(x.AT),n=this.parseName(),r;!t&&this.expectOptionalToken(x.DOT)&&(r=this.parseName());let i;return(t||r)&&this.expectOptionalToken(x.PAREN_L)&&(i=this.parseName(),this.expectToken(x.COLON),this.expectToken(x.PAREN_R)),t?i?this.node(e,{kind:b.DIRECTIVE_ARGUMENT_COORDINATE,name:n,argumentName:i}):this.node(e,{kind:b.DIRECTIVE_COORDINATE,name:n}):r?i?this.node(e,{kind:b.ARGUMENT_COORDINATE,name:n,fieldName:r,argumentName:i}):this.node(e,{kind:b.MEMBER_COORDINATE,name:n,memberName:r}):this.node(e,{kind:b.TYPE_COORDINATE,name:n})}node(e,t){return this._options.noLocation!==!0&&(t.loc=new p(e,this._lexer.lastToken,this._lexer.source)),t}peek(e){return this._lexer.token.kind===e}expectToken(e){let t=this._lexer.token;if(t.kind===e)return this.advanceLexer(),t;throw f(this._lexer.source,t.start,`Expected ${We(e)}, found ${Ue(t)}.`)}expectOptionalToken(e){return this._lexer.token.kind===e?(this.advanceLexer(),!0):!1}expectKeyword(e){let t=this._lexer.token;if(t.kind===x.NAME&&t.value===e)this.advanceLexer();else throw f(this._lexer.source,t.start,`Expected "${e}", found ${Ue(t)}.`)}expectOptionalKeyword(e){let t=this._lexer.token;return t.kind===x.NAME&&t.value===e?(this.advanceLexer(),!0):!1}unexpected(e){let t=e??this._lexer.token;return f(this._lexer.source,t.start,`Unexpected ${Ue(t)}.`)}any(e,t,n){this.expectToken(e);let r=[];for(;!this.expectOptionalToken(n);)r.push(t.call(this));return r}optionalMany(e,t,n){if(this.expectOptionalToken(e)){let e=[];do e.push(t.call(this));while(!this.expectOptionalToken(n));return e}return[]}many(e,t,n){this.expectToken(e);let r=[];do r.push(t.call(this));while(!this.expectOptionalToken(n));return r}delimitedMany(e,t){this.expectOptionalToken(e);let n=[];do n.push(t.call(this));while(this.expectOptionalToken(e));return n}advanceLexer(){let{maxTokens:e}=this._options,t=this._lexer.advance();if(t.kind!==x.EOF&&(++this._tokenCounter,e!==void 0&&this._tokenCounter>e))throw f(this._lexer.source,t.start,`Document contains more that ${e} tokens. Parsing aborted.`)}};function Ue(e){let t=e.value;return We(e.kind)+(t==null?``:` "${t}"`)}function We(e){return ue(e)?`"${e}"`:e}var Ge=5;function Ke(e,t){let[n,r]=t?[e,t]:[void 0,e],i=` Did you mean `;n&&(i+=n+` `);let a=r.map(e=>`"${e}"`);switch(a.length){case 0:return``;case 1:return i+a[0]+`?`;case 2:return i+a[0]+` or `+a[1]+`?`}let o=a.slice(0,Ge),s=o.pop();return i+o.join(`, `)+`, or `+s+`?`}function qe(e){return e}function Je(e,t){let n=Object.create(null);for(let r of e)n[t(r)]=r;return n}function Ye(e,t,n){let r=Object.create(null);for(let i of e)r[t(i)]=n(i);return r}function Xe(e,t){let n=Object.create(null);for(let r of Object.keys(e))n[r]=t(e[r],r);return n}function Ze(e,t){let n=0,r=0;for(;n<e.length&&r<t.length;){let i=e.charCodeAt(n),a=t.charCodeAt(r);if(et(i)&&et(a)){let o=0;do++n,o=o*10+i-Qe,i=e.charCodeAt(n);while(et(i)&&o>0);let s=0;do++r,s=s*10+a-Qe,a=t.charCodeAt(r);while(et(a)&&s>0);if(o<s)return-1;if(o>s)return 1}else{if(i<a)return-1;if(i>a)return 1;++n,++r}}return e.length-t.length}var Qe=48,$e=57;function et(e){return!isNaN(e)&&Qe<=e&&e<=$e}function tt(e,t){let n=Object.create(null),r=new nt(e),i=Math.floor(e.length*.4)+1;for(let e of t){let t=r.measure(e,i);t!==void 0&&(n[e]=t)}return Object.keys(n).sort((e,t)=>{let r=n[e]-n[t];return r===0?Ze(e,t):r})}var nt=class{constructor(e){this._input=e,this._inputLowerCase=e.toLowerCase(),this._inputArray=rt(this._inputLowerCase),this._rows=[Array(e.length+1).fill(0),Array(e.length+1).fill(0),Array(e.length+1).fill(0)]}measure(e,t){if(this._input===e)return 0;let n=e.toLowerCase();if(this._inputLowerCase===n)return 1;let r=rt(n),i=this._inputArray;if(r.length<i.length){let e=r;r=i,i=e}let a=r.length,o=i.length;if(a-o>t)return;let s=this._rows;for(let e=0;e<=o;e++)s[0][e]=e;for(let e=1;e<=a;e++){let n=s[(e-1)%3],a=s[e%3],c=a[0]=e;for(let t=1;t<=o;t++){let o=r[e-1]===i[t-1]?0:1,l=Math.min(n[t]+1,a[t-1]+1,n[t-1]+o);if(e>1&&t>1&&r[e-1]===i[t-2]&&r[e-2]===i[t-1]){let n=s[(e-2)%3][t-2];l=Math.min(l,n+1)}l<c&&(c=l),a[t]=l}if(c>t)return}let c=s[a%3][o];return c<=t?c:void 0}};function rt(e){let t=e.length,n=Array(t);for(let r=0;r<t;++r)n[r]=e.charCodeAt(r);return n}function it(e){if(e==null)return Object.create(null);if(Object.getPrototypeOf(e)===null)return e;let t=Object.create(null);for(let[n,r]of Object.entries(e))t[n]=r;return t}function at(e){return`"${e.replace(ot,st)}"`}var ot=/[\x00-\x1f\x22\x5c\x7f-\x9f]/g;function st(e){return ct[e.charCodeAt(0)]}var ct=`\\u0000.\\u0001.\\u0002.\\u0003.\\u0004.\\u0005.\\u0006.\\u0007.\\b.\\t.\\n.\\u000B.\\f.\\r.\\u000E.\\u000F.\\u0010.\\u0011.\\u0012.\\u0013.\\u0014.\\u0015.\\u0016.\\u0017.\\u0018.\\u0019.\\u001A.\\u001B.\\u001C.\\u001D.\\u001E.\\u001F...\\"..........................................................\\\\...................................\\u007F.\\u0080.\\u0081.\\u0082.\\u0083.\\u0084.\\u0085.\\u0086.\\u0087.\\u0088.\\u0089.\\u008A.\\u008B.\\u008C.\\u008D.\\u008E.\\u008F.\\u0090.\\u0091.\\u0092.\\u0093.\\u0094.\\u0095.\\u0096.\\u0097.\\u0098.\\u0099.\\u009A.\\u009B.\\u009C.\\u009D.\\u009E.\\u009F`.split(`.`);const lt=Object.freeze({});function ut(e,n,r=h){let i=new Map;for(let e of Object.values(b))i.set(e,ft(n,e));let a,o=Array.isArray(e),s=[e],c=-1,l=[],u=e,d,f,p=[],m=[];do{c++;let e=c===s.length,h=e&&l.length!==0;if(e){if(d=m.length===0?void 0:p[p.length-1],u=f,f=m.pop(),h)if(o){u=u.slice();let e=0;for(let[t,n]of l){let r=t-e;n===null?(u.splice(r,1),e++):u[r]=n}}else{u={...u};for(let[e,t]of l)u[e]=t}c=a.index,s=a.keys,l=a.edits,o=a.inArray,a=a.prev}else if(f){if(d=o?c:s[c],u=f[d],u==null)continue;p.push(d)}let g;if(!Array.isArray(u)){if(_(u)||t(!1,`Invalid AST Node: ${C(u)}.`),g=(e?i.get(u.kind)?.leave:i.get(u.kind)?.enter)?.call(n,u,d,f,p,m),g===lt)break;if(g===!1){if(!e){p.pop();continue}}else if(g!==void 0&&(l.push([d,g]),!e))if(_(g))u=g;else{p.pop();continue}}g===void 0&&h&&l.push([d,u]),e?p.pop():(a={inArray:o,index:c,keys:s,edits:l,prev:a},o=Array.isArray(u),s=o?u:r[u.kind]??[],c=-1,l=[],f&&m.push(f),f=u)}while(a!==void 0);return l.length===0?e:l[l.length-1][1]}function dt(e){let t=Array(e.length).fill(null),n=Object.create(null);for(let r of Object.values(b)){let i=!1,a=Array(e.length).fill(void 0),o=Array(e.length).fill(void 0);for(let t=0;t<e.length;++t){let{enter:n,leave:s}=ft(e[t],r);i||=n!=null||s!=null,a[t]=n,o[t]=s}i&&(n[r]={enter(...n){let r=n[0];for(let i=0;i<e.length;i++)if(t[i]===null){let o=a[i]?.apply(e[i],n);if(o===!1)t[i]=r;else if(o===lt)t[i]=lt;else if(o!==void 0)return o}},leave(...n){let r=n[0];for(let i=0;i<e.length;i++)if(t[i]===null){let r=o[i]?.apply(e[i],n);if(r===lt)t[i]=lt;else if(r!==void 0&&r!==!1)return r}else t[i]===r&&(t[i]=null)}})}return n}function ft(e,t){let n=e[t];return typeof n==`object`?n:typeof n==`function`?{enter:n,leave:void 0}:{enter:e.enter,leave:e.leave}}function w(e){return ut(e,mt)}var pt=80,mt={Name:{leave:e=>e.value},Variable:{leave:e=>`$`+e.name},Document:{leave:e=>T(e.definitions,`
`)},OperationDefinition:{leave(e){let t=_t(e.variableDefinitions)?E(`(
`,T(e.variableDefinitions,`
`),`
)`):E(`(`,T(e.variableDefinitions,`, `),`)`),n=E(``,e.description,`
`)+T([e.operation,T([e.name,t]),T(e.directives,` `)],` `);return(n===`query`?``:n+` `)+e.selectionSet}},VariableDefinition:{leave:({variable:e,type:t,defaultValue:n,directives:r,description:i})=>E(``,i,`
`)+e+`: `+t+E(` = `,n)+E(` `,T(r,` `))},SelectionSet:{leave:({selections:e})=>ht(e)},Field:{leave({alias:e,name:t,arguments:n,directives:r,selectionSet:i}){let a=E(``,e,`: `)+t,o=a+E(`(`,T(n,`, `),`)`);return o.length>pt&&(o=a+E(`(
`,gt(T(n,`
`)),`
)`)),T([o,T(r,` `),i],` `)}},Argument:{leave:({name:e,value:t})=>e+`: `+t},FragmentSpread:{leave:({name:e,directives:t})=>`...`+e+E(` `,T(t,` `))},InlineFragment:{leave:({typeCondition:e,directives:t,selectionSet:n})=>T([`...`,E(`on `,e),T(t,` `),n],` `)},FragmentDefinition:{leave:({name:e,typeCondition:t,variableDefinitions:n,directives:r,selectionSet:i,description:a})=>E(``,a,`
`)+`fragment ${e}${E(`(`,T(n,`, `),`)`)} on ${t} ${E(``,T(r,` `),` `)}`+i},IntValue:{leave:({value:e})=>e},FloatValue:{leave:({value:e})=>e},StringValue:{leave:({value:e,block:t})=>t?ce(e):at(e)},BooleanValue:{leave:({value:e})=>e?`true`:`false`},NullValue:{leave:()=>`null`},EnumValue:{leave:({value:e})=>e},ListValue:{leave:({values:e})=>`[`+T(e,`, `)+`]`},ObjectValue:{leave:({fields:e})=>`{`+T(e,`, `)+`}`},ObjectField:{leave:({name:e,value:t})=>e+`: `+t},Directive:{leave:({name:e,arguments:t})=>`@`+e+E(`(`,T(t,`, `),`)`)},NamedType:{leave:({name:e})=>e},ListType:{leave:({type:e})=>`[`+e+`]`},NonNullType:{leave:({type:e})=>e+`!`},SchemaDefinition:{leave:({description:e,directives:t,operationTypes:n})=>E(``,e,`
`)+T([`schema`,T(t,` `),ht(n)],` `)},OperationTypeDefinition:{leave:({operation:e,type:t})=>e+`: `+t},ScalarTypeDefinition:{leave:({description:e,name:t,directives:n})=>E(``,e,`
`)+T([`scalar`,t,T(n,` `)],` `)},ObjectTypeDefinition:{leave:({description:e,name:t,interfaces:n,directives:r,fields:i})=>E(``,e,`
`)+T([`type`,t,E(`implements `,T(n,` & `)),T(r,` `),ht(i)],` `)},FieldDefinition:{leave:({description:e,name:t,arguments:n,type:r,directives:i})=>E(``,e,`
`)+t+(_t(n)?E(`(
`,gt(T(n,`
`)),`
)`):E(`(`,T(n,`, `),`)`))+`: `+r+E(` `,T(i,` `))},InputValueDefinition:{leave:({description:e,name:t,type:n,defaultValue:r,directives:i})=>E(``,e,`
`)+T([t+`: `+n,E(`= `,r),T(i,` `)],` `)},InterfaceTypeDefinition:{leave:({description:e,name:t,interfaces:n,directives:r,fields:i})=>E(``,e,`
`)+T([`interface`,t,E(`implements `,T(n,` & `)),T(r,` `),ht(i)],` `)},UnionTypeDefinition:{leave:({description:e,name:t,directives:n,types:r})=>E(``,e,`
`)+T([`union`,t,T(n,` `),E(`= `,T(r,` | `))],` `)},EnumTypeDefinition:{leave:({description:e,name:t,directives:n,values:r})=>E(``,e,`
`)+T([`enum`,t,T(n,` `),ht(r)],` `)},EnumValueDefinition:{leave:({description:e,name:t,directives:n})=>E(``,e,`
`)+T([t,T(n,` `)],` `)},InputObjectTypeDefinition:{leave:({description:e,name:t,directives:n,fields:r})=>E(``,e,`
`)+T([`input`,t,T(n,` `),ht(r)],` `)},DirectiveDefinition:{leave:({description:e,name:t,arguments:n,directives:r,repeatable:i,locations:a})=>E(``,e,`
`)+`directive @`+t+(_t(n)?E(`(
`,gt(T(n,`
`)),`
)`):E(`(`,T(n,`, `),`)`))+E(` `,T(r,` `))+(i?` repeatable`:``)+` on `+T(a,` | `)},SchemaExtension:{leave:({directives:e,operationTypes:t})=>T([`extend schema`,T(e,` `),ht(t)],` `)},ScalarTypeExtension:{leave:({name:e,directives:t})=>T([`extend scalar`,e,T(t,` `)],` `)},ObjectTypeExtension:{leave:({name:e,interfaces:t,directives:n,fields:r})=>T([`extend type`,e,E(`implements `,T(t,` & `)),T(n,` `),ht(r)],` `)},InterfaceTypeExtension:{leave:({name:e,interfaces:t,directives:n,fields:r})=>T([`extend interface`,e,E(`implements `,T(t,` & `)),T(n,` `),ht(r)],` `)},UnionTypeExtension:{leave:({name:e,directives:t,types:n})=>T([`extend union`,e,T(t,` `),E(`= `,T(n,` | `))],` `)},EnumTypeExtension:{leave:({name:e,directives:t,values:n})=>T([`extend enum`,e,T(t,` `),ht(n)],` `)},InputObjectTypeExtension:{leave:({name:e,directives:t,fields:n})=>T([`extend input`,e,T(t,` `),ht(n)],` `)},DirectiveExtension:{leave:({name:e,directives:t})=>T([`extend directive @`+e,T(t,` `)],` `)},TypeCoordinate:{leave:({name:e})=>e},MemberCoordinate:{leave:({name:e,memberName:t})=>T([e,E(`.`,t)])},ArgumentCoordinate:{leave:({name:e,fieldName:t,argumentName:n})=>T([e,E(`.`,t),E(`(`,n,`:)`)])},DirectiveCoordinate:{leave:({name:e})=>T([`@`,e])},DirectiveArgumentCoordinate:{leave:({name:e,argumentName:t})=>T([`@`,e,E(`(`,t,`:)`)])}};function T(e,t=``){return e?.filter(e=>e).join(t)??``}function ht(e){return E(`{
`,gt(T(e,`
`)),`
}`)}function E(e,t,n=``){return t!=null&&t!==``?e+t+n:``}function gt(e){return E(` `,e.replace(/\n/g,`
`))}function _t(e){return e?.some(e=>e.includes(`
`))??!1}function vt(e,t){switch(e.kind){case b.NULL:return null;case b.INT:return parseInt(e.value,10);case b.FLOAT:return parseFloat(e.value);case b.STRING:case b.ENUM:case b.BOOLEAN:return e.value;case b.LIST:return e.values.map(e=>vt(e,t));case b.OBJECT:return Ye(e.fields,e=>e.name.value,e=>vt(e.value,t));case b.VARIABLE:return t?.[e.name.value]}}function yt(e){if(e??t(!1,`Must provide name.`),typeof e==`string`||t(!1,`Expected name to be a string.`),e.length===0)throw new u(`Expected name to be a non-empty string.`);for(let t=1;t<e.length;++t)if(!ie(e.charCodeAt(t)))throw new u(`Names must only contain [_a-zA-Z0-9] but "${e}" does not.`);if(!re(e.charCodeAt(0)))throw new u(`Names must start with [_a-zA-Z] but "${e}" does not.`);return e}function bt(e){if(e===`true`||e===`false`||e===`null`)throw new u(`Enum values cannot be named: ${e}`);return yt(e)}function xt(e){return St(e)||D(e)||O(e)||Tt(e)||Et(e)||k(e)||A(e)||j(e)}function St(e){return Le(e,Bt)}function D(e){return Le(e,Vt)}function Ct(e){if(!D(e))throw Error(`Expected ${C(e)} to be a GraphQL Object type.`);return e}function O(e){return Le(e,Yt)}function wt(e){if(!O(e))throw Error(`Expected ${C(e)} to be a GraphQL Interface type.`);return e}function Tt(e){return Le(e,Xt)}function Et(e){return Le(e,Qt)}function k(e){return Le(e,tn)}function A(e){return Le(e,M)}function j(e){return Le(e,N)}function Dt(e){return St(e)||Et(e)||k(e)||Mt(e)&&Dt(e.ofType)}function Ot(e){return St(e)||D(e)||O(e)||Tt(e)||Et(e)||Mt(e)&&Ot(e.ofType)}function kt(e){return St(e)||Et(e)}function At(e){return D(e)||O(e)||Tt(e)}function jt(e){return O(e)||Tt(e)}var M=class{constructor(e){xt(e)||t(!1,`Expected ${C(e)} to be a GraphQL type.`),this.ofType=e}get[Symbol.toStringTag](){return`GraphQLList`}toString(){return`[`+String(this.ofType)+`]`}toJSON(){return this.toString()}},N=class{constructor(e){Nt(e)||t(!1,`Expected ${C(e)} to be a GraphQL nullable type.`),this.ofType=e}get[Symbol.toStringTag](){return`GraphQLNonNull`}toString(){return String(this.ofType)+`!`}toJSON(){return this.toString()}};function Mt(e){return A(e)||j(e)}function Nt(e){return xt(e)&&!j(e)}function Pt(e){if(!Nt(e))throw Error(`Expected ${C(e)} to be a GraphQL nullable type.`);return e}function Ft(e){if(e)return j(e)?e.ofType:e}function It(e){return St(e)||D(e)||O(e)||Tt(e)||Et(e)||k(e)}function Lt(e){if(e){let t=e;for(;Mt(t);)t=t.ofType;return t}}function Rt(e){return typeof e==`function`?e():e}function zt(e){return typeof e==`function`?e():e}var Bt=class{constructor(e){let n=e.parseValue??qe;this.name=yt(e.name),this.description=e.description,this.specifiedByURL=e.specifiedByURL,this.serialize=e.serialize??qe,this.parseValue=n,this.parseLiteral=e.parseLiteral??((e,t)=>n(vt(e,t))),this.extensions=it(e.extensions),this.astNode=e.astNode,this.extensionASTNodes=e.extensionASTNodes??[],e.specifiedByURL==null||typeof e.specifiedByURL==`string`||t(!1,`${this.name} must provide "specifiedByURL" as a string, but got: ${C(e.specifiedByURL)}.`),e.serialize==null||typeof e.serialize==`function`||t(!1,`${this.name} must provide "serialize" function. If this custom Scalar is also used as an input type, ensure "parseValue" and "parseLiteral" functions are also provided.`),e.parseLiteral&&(typeof e.parseValue==`function`&&typeof e.parseLiteral==`function`||t(!1,`${this.name} must provide both "parseValue" and "parseLiteral" functions.`))}get[Symbol.toStringTag](){return`GraphQLScalarType`}toConfig(){return{name:this.name,description:this.description,specifiedByURL:this.specifiedByURL,serialize:this.serialize,parseValue:this.parseValue,parseLiteral:this.parseLiteral,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}},Vt=class{constructor(e){this.name=yt(e.name),this.description=e.description,this.isTypeOf=e.isTypeOf,this.extensions=it(e.extensions),this.astNode=e.astNode,this.extensionASTNodes=e.extensionASTNodes??[],this._fields=()=>Ut(e),this._interfaces=()=>Ht(e),e.isTypeOf==null||typeof e.isTypeOf==`function`||t(!1,`${this.name} must provide "isTypeOf" as a function, but got: ${C(e.isTypeOf)}.`)}get[Symbol.toStringTag](){return`GraphQLObjectType`}getFields(){return typeof this._fields==`function`&&(this._fields=this._fields()),this._fields}getInterfaces(){return typeof this._interfaces==`function`&&(this._interfaces=this._interfaces()),this._interfaces}toConfig(){return{name:this.name,description:this.description,interfaces:this.getInterfaces(),fields:Kt(this.getFields()),isTypeOf:this.isTypeOf,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}};function Ht(e){let n=Rt(e.interfaces??[]);return Array.isArray(n)||t(!1,`${e.name} interfaces must be an Array or a function which returns an Array.`),n}function Ut(e){let n=zt(e.fields);return Gt(n)||t(!1,`${e.name} fields must be an object with field names as keys or a function which returns such an object.`),Xe(n,(n,r)=>{Gt(n)||t(!1,`${e.name}.${r} field config must be an object.`),n.resolve==null||typeof n.resolve==`function`||t(!1,`${e.name}.${r} field resolver must be a function if provided, but got: ${C(n.resolve)}.`);let i=n.args??{};return Gt(i)||t(!1,`${e.name}.${r} args must be an object with argument names as keys.`),{name:yt(r),description:n.description,type:n.type,args:Wt(i),resolve:n.resolve,subscribe:n.subscribe,deprecationReason:n.deprecationReason,extensions:it(n.extensions),astNode:n.astNode}})}function Wt(e){return Object.entries(e).map(([e,t])=>({name:yt(e),description:t.description,type:t.type,defaultValue:t.defaultValue,deprecationReason:t.deprecationReason,extensions:it(t.extensions),astNode:t.astNode}))}function Gt(e){return n(e)&&!Array.isArray(e)}function Kt(e){return Xe(e,e=>({description:e.description,type:e.type,args:qt(e.args),resolve:e.resolve,subscribe:e.subscribe,deprecationReason:e.deprecationReason,extensions:e.extensions,astNode:e.astNode}))}function qt(e){return Ye(e,e=>e.name,e=>({description:e.description,type:e.type,defaultValue:e.defaultValue,deprecationReason:e.deprecationReason,extensions:e.extensions,astNode:e.astNode}))}function Jt(e){return j(e.type)&&e.defaultValue===void 0}var Yt=class{constructor(e){this.name=yt(e.name),this.description=e.description,this.resolveType=e.resolveType,this.extensions=it(e.extensions),this.astNode=e.astNode,this.extensionASTNodes=e.extensionASTNodes??[],this._fields=Ut.bind(void 0,e),this._interfaces=Ht.bind(void 0,e),e.resolveType==null||typeof e.resolveType==`function`||t(!1,`${this.name} must provide "resolveType" as a function, but got: ${C(e.resolveType)}.`)}get[Symbol.toStringTag](){return`GraphQLInterfaceType`}getFields(){return typeof this._fields==`function`&&(this._fields=this._fields()),this._fields}getInterfaces(){return typeof this._interfaces==`function`&&(this._interfaces=this._interfaces()),this._interfaces}toConfig(){return{name:this.name,description:this.description,interfaces:this.getInterfaces(),fields:Kt(this.getFields()),resolveType:this.resolveType,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}},Xt=class{constructor(e){this.name=yt(e.name),this.description=e.description,this.resolveType=e.resolveType,this.extensions=it(e.extensions),this.astNode=e.astNode,this.extensionASTNodes=e.extensionASTNodes??[],this._types=Zt.bind(void 0,e),e.resolveType==null||typeof e.resolveType==`function`||t(!1,`${this.name} must provide "resolveType" as a function, but got: ${C(e.resolveType)}.`)}get[Symbol.toStringTag](){return`GraphQLUnionType`}getTypes(){return typeof this._types==`function`&&(this._types=this._types()),this._types}toConfig(){return{name:this.name,description:this.description,types:this.getTypes(),resolveType:this.resolveType,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}};function Zt(e){let n=Rt(e.types);return Array.isArray(n)||t(!1,`Must provide Array of types or a function which returns such an array for Union ${e.name}.`),n}var Qt=class{constructor(e){this.name=yt(e.name),this.description=e.description,this.extensions=it(e.extensions),this.astNode=e.astNode,this.extensionASTNodes=e.extensionASTNodes??[],this._values=typeof e.values==`function`?e.values:en(this.name,e.values),this._valueLookup=null,this._nameLookup=null}get[Symbol.toStringTag](){return`GraphQLEnumType`}getValues(){return typeof this._values==`function`&&(this._values=en(this.name,this._values())),this._values}getValue(e){return this._nameLookup===null&&(this._nameLookup=Je(this.getValues(),e=>e.name)),this._nameLookup[e]}serialize(e){this._valueLookup===null&&(this._valueLookup=new Map(this.getValues().map(e=>[e.value,e])));let t=this._valueLookup.get(e);if(t===void 0)throw new u(`Enum "${this.name}" cannot represent value: ${C(e)}`);return t.name}parseValue(e){if(typeof e!=`string`){let t=C(e);throw new u(`Enum "${this.name}" cannot represent non-string value: ${t}.`+$t(this,t))}let t=this.getValue(e);if(t==null)throw new u(`Value "${e}" does not exist in "${this.name}" enum.`+$t(this,e));return t.value}parseLiteral(e,t){if(e.kind!==b.ENUM){let t=w(e);throw new u(`Enum "${this.name}" cannot represent non-enum value: ${t}.`+$t(this,t),{nodes:e})}let n=this.getValue(e.value);if(n==null){let t=w(e);throw new u(`Value "${t}" does not exist in "${this.name}" enum.`+$t(this,t),{nodes:e})}return n.value}toConfig(){let e=Ye(this.getValues(),e=>e.name,e=>({description:e.description,value:e.value,deprecationReason:e.deprecationReason,extensions:e.extensions,astNode:e.astNode}));return{name:this.name,description:this.description,values:e,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return this.name}toJSON(){return this.toString()}};function $t(e,t){let n=e.getValues().map(e=>e.name),r=tt(t,n);return Ke(`the enum value`,r)}function en(e,n){return Gt(n)||t(!1,`${e} values must be an object with value names as keys.`),Object.entries(n).map(([n,r])=>(Gt(r)||t(!1,`${e}.${n} must refer to an object with a "value" key representing an internal value but got: ${C(r)}.`),{name:bt(n),description:r.description,value:r.value===void 0?n:r.value,deprecationReason:r.deprecationReason,extensions:it(r.extensions),astNode:r.astNode}))}var tn=class{constructor(e){this.name=yt(e.name),this.description=e.description,this.extensions=it(e.extensions),this.astNode=e.astNode,this.extensionASTNodes=e.extensionASTNodes??[],this.isOneOf=e.isOneOf??!1,this._fields=nn.bind(void 0,e)}get[Symbol.toStringTag](){return`GraphQLInputObjectType`}getFields(){return typeof this._fields==`function`&&(this._fields=this._fields()),this._fields}toConfig(){let e=Xe(this.getFields(),e=>({description:e.description,type:e.type,defaultValue:e.defaultValue,deprecationReason:e.deprecationReason,extensions:e.extensions,astNode:e.astNode}));return{name:this.name,description:this.description,fields:e,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes,isOneOf:this.isOneOf}}toString(){return this.name}toJSON(){return this.toString()}};function nn(e){let n=zt(e.fields);return Gt(n)||t(!1,`${e.name} fields must be an object with field names as keys or a function which returns such an object.`),Xe(n,(n,r)=>(!(`resolve`in n)||t(!1,`${e.name}.${r} field has a resolve property, but Input Types cannot define resolvers.`),{name:yt(r),description:n.description,type:n.type,defaultValue:n.defaultValue,deprecationReason:n.deprecationReason,extensions:it(n.extensions),astNode:n.astNode}))}function rn(e){return j(e.type)&&e.defaultValue===void 0}function an(e,t){return e===t?!0:j(e)&&j(t)||A(e)&&A(t)?an(e.ofType,t.ofType):!1}function on(e,t,n){return t===n?!0:j(n)?j(t)?on(e,t.ofType,n.ofType):!1:j(t)?on(e,t.ofType,n):A(n)?A(t)?on(e,t.ofType,n.ofType):!1:A(t)?!1:jt(n)&&(O(t)||D(t))&&e.isSubType(n,t)}function sn(e,t,n){return t===n?!0:jt(t)?jt(n)?e.getPossibleTypes(t).some(t=>e.isSubType(n,t)):e.isSubType(t,n):jt(n)?e.isSubType(n,t):!1}const cn=2147483647,ln=-2147483648,un=new Bt({name:`Int`,description:"The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.",serialize(e){let t=gn(e);if(typeof t==`boolean`)return t?1:0;let n=t;if(typeof t==`string`&&t!==``&&(n=Number(t)),typeof n!=`number`||!Number.isInteger(n))throw new u(`Int cannot represent non-integer value: ${C(t)}`);if(n>2147483647||n<-2147483648)throw new u(`Int cannot represent non 32-bit signed integer value: `+C(t));return n},parseValue(e){if(typeof e!=`number`||!Number.isInteger(e))throw new u(`Int cannot represent non-integer value: ${C(e)}`);if(e>2147483647||e<-2147483648)throw new u(`Int cannot represent non 32-bit signed integer value: ${e}`);return e},parseLiteral(e){if(e.kind!==b.INT)throw new u(`Int cannot represent non-integer value: ${w(e)}`,{nodes:e});let t=parseInt(e.value,10);if(t>2147483647||t<-2147483648)throw new u(`Int cannot represent non 32-bit signed integer value: ${e.value}`,{nodes:e});return t}}),dn=new Bt({name:`Float`,description:"The `Float` scalar type represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point).",serialize(e){let t=gn(e);if(typeof t==`boolean`)return t?1:0;let n=t;if(typeof t==`string`&&t!==``&&(n=Number(t)),typeof n!=`number`||!Number.isFinite(n))throw new u(`Float cannot represent non numeric value: ${C(t)}`);return n},parseValue(e){if(typeof e!=`number`||!Number.isFinite(e))throw new u(`Float cannot represent non numeric value: ${C(e)}`);return e},parseLiteral(e){if(e.kind!==b.FLOAT&&e.kind!==b.INT)throw new u(`Float cannot represent non numeric value: ${w(e)}`,e);return parseFloat(e.value)}}),P=new Bt({name:`String`,description:"The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.",serialize(e){let t=gn(e);if(typeof t==`string`)return t;if(typeof t==`boolean`)return t?`true`:`false`;if(typeof t==`number`&&Number.isFinite(t))return t.toString();throw new u(`String cannot represent value: ${C(e)}`)},parseValue(e){if(typeof e!=`string`)throw new u(`String cannot represent a non string value: ${C(e)}`);return e},parseLiteral(e){if(e.kind!==b.STRING)throw new u(`String cannot represent a non string value: ${w(e)}`,{nodes:e});return e.value}}),fn=new Bt({name:`Boolean`,description:"The `Boolean` scalar type represents `true` or `false`.",serialize(e){let t=gn(e);if(typeof t==`boolean`)return t;if(Number.isFinite(t))return t!==0;throw new u(`Boolean cannot represent a non boolean value: ${C(t)}`)},parseValue(e){if(typeof e!=`boolean`)throw new u(`Boolean cannot represent a non boolean value: ${C(e)}`);return e},parseLiteral(e){if(e.kind!==b.BOOLEAN)throw new u(`Boolean cannot represent a non boolean value: ${w(e)}`,{nodes:e});return e.value}}),pn=new Bt({name:`ID`,description:'The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID.',serialize(e){let t=gn(e);if(typeof t==`string`)return t;if(Number.isInteger(t))return String(t);throw new u(`ID cannot represent value: ${C(e)}`)},parseValue(e){if(typeof e==`string`)return e;if(typeof e==`number`&&Number.isInteger(e))return e.toString();throw new u(`ID cannot represent value: ${C(e)}`)},parseLiteral(e){if(e.kind!==b.STRING&&e.kind!==b.INT)throw new u(`ID cannot represent a non-string and non-integer value: `+w(e),{nodes:e});return e.value}}),mn=Object.freeze([P,un,dn,fn,pn]);function hn(e){return mn.some(({name:t})=>e.name===t)}function gn(e){if(n(e)){if(typeof e.valueOf==`function`){let t=e.valueOf();if(!n(t))return t}if(typeof e.toJSON==`function`)return e.toJSON()}return e}function _n(e){return Le(e,vn)}var vn=class{constructor(e){this.name=yt(e.name),this.description=e.description,this.locations=e.locations,this.isRepeatable=e.isRepeatable??!1,this.deprecationReason=e.deprecationReason,this.extensions=it(e.extensions),this.astNode=e.astNode,this.extensionASTNodes=e.extensionASTNodes??[],Array.isArray(e.locations)||t(!1,`@${e.name} locations must be an Array.`);let r=e.args??{};n(r)&&!Array.isArray(r)||t(!1,`@${e.name} args must be an object with argument names as keys.`),this.args=Wt(r)}get[Symbol.toStringTag](){return`GraphQLDirective`}toConfig(){return{name:this.name,description:this.description,locations:this.locations,args:qt(this.args),isRepeatable:this.isRepeatable,deprecationReason:this.deprecationReason,extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes}}toString(){return`@`+this.name}toJSON(){return this.toString()}};const yn=new vn({name:`include`,description:"Directs the executor to include this field or fragment only when the `if` argument is true.",locations:[y.FIELD,y.FRAGMENT_SPREAD,y.INLINE_FRAGMENT],args:{if:{type:new N(fn),description:`Included when true.`}}}),bn=new vn({name:`skip`,description:"Directs the executor to skip this field or fragment when the `if` argument is true.",locations:[y.FIELD,y.FRAGMENT_SPREAD,y.INLINE_FRAGMENT],args:{if:{type:new N(fn),description:`Skipped when true.`}}}),xn=`No longer supported`,Sn=new vn({name:`deprecated`,description:`Marks an element of a GraphQL schema as no longer supported.`,locations:[y.FIELD_DEFINITION,y.ARGUMENT_DEFINITION,y.INPUT_FIELD_DEFINITION,y.ENUM_VALUE,y.DIRECTIVE_DEFINITION],args:{reason:{type:P,description:`Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted using the Markdown syntax, as specified by [CommonMark](https://commonmark.org/).`,defaultValue:xn}}}),Cn=new vn({name:`specifiedBy`,description:`Exposes a URL that specifies the behavior of this scalar.`,locations:[y.SCALAR],args:{url:{type:new N(P),description:`The URL that specifies the behavior of this scalar.`}}}),wn=new vn({name:`oneOf`,description:"Indicates exactly one field must be supplied and this field must not be `null`.",locations:[y.INPUT_OBJECT],args:{}}),Tn=Object.freeze([yn,bn,Sn,Cn,wn]);function En(e){return Tn.some(({name:t})=>t===e.name)}function Dn(e){return typeof e==`object`&&typeof e?.[Symbol.iterator]==`function`}function On(e,t){if(j(t)){let n=On(e,t.ofType);return n?.kind===b.NULL?null:n}if(e===null)return{kind:b.NULL};if(e===void 0)return null;if(A(t)){let n=t.ofType;if(Dn(e)){let t=[];for(let r of e){let e=On(r,n);e!=null&&t.push(e)}return{kind:b.LIST,values:t}}return On(e,n)}if(k(t)){if(!n(e))return null;let r=[];for(let n of Object.values(t.getFields())){let t=On(e[n.name],n.type);t&&r.push({kind:b.OBJECT_FIELD,name:{kind:b.NAME,value:n.name},value:t})}return{kind:b.OBJECT,fields:r}}if(kt(t)){let n=t.serialize(e);if(n==null)return null;if(typeof n==`boolean`)return{kind:b.BOOLEAN,value:n};if(typeof n==`number`&&Number.isFinite(n)){let e=String(n);return kn.test(e)?{kind:b.INT,value:e}:{kind:b.FLOAT,value:e}}if(typeof n==`string`)return Et(t)?{kind:b.ENUM,value:n}:t===pn&&kn.test(n)?{kind:b.INT,value:n}:{kind:b.STRING,value:n};throw TypeError(`Cannot convert value to AST: ${C(n)}.`)}r(!1,`Unexpected input type: `+C(t))}var kn=/^-?(?:0|[1-9][0-9]*)$/;const An=new Vt({name:`__Schema`,description:`A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.`,fields:()=>({description:{type:P,resolve:e=>e.description},types:{description:`A list of all types supported by this server.`,type:new N(new M(new N(Nn))),resolve(e){return Object.values(e.getTypeMap())}},queryType:{description:`The type that query operations will be rooted at.`,type:new N(Nn),resolve:e=>e.getQueryType()},mutationType:{description:`If this server supports mutation, the type that mutation operations will be rooted at.`,type:Nn,resolve:e=>e.getMutationType()},subscriptionType:{description:`If this server support subscription, the type that subscription operations will be rooted at.`,type:Nn,resolve:e=>e.getSubscriptionType()},directives:{description:`A list of all directives supported by this server.`,type:new N(new M(new N(jn))),args:{includeDeprecated:{type:new N(fn),defaultValue:!1}},resolve:(e,{includeDeprecated:t})=>t?e.getDirectives():e.getDirectives().filter(e=>e.deprecationReason==null)}})}),jn=new Vt({name:`__Directive`,description:`A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document.
In some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.`,fields:()=>({name:{type:new N(P),resolve:e=>e.name},description:{type:P,resolve:e=>e.description},isRepeatable:{type:new N(fn),resolve:e=>e.isRepeatable},locations:{type:new N(new M(new N(Mn))),resolve:e=>e.locations},args:{type:new N(new M(new N(Fn))),args:{includeDeprecated:{type:fn,defaultValue:!1}},resolve(e,{includeDeprecated:t}){return t?e.args:e.args.filter(e=>e.deprecationReason==null)}},isDeprecated:{type:new N(fn),resolve:e=>e.deprecationReason!=null},deprecationReason:{type:P,resolve:e=>e.deprecationReason}})}),Mn=new Qt({name:`__DirectiveLocation`,description:`A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.`,values:{QUERY:{value:y.QUERY,description:`Location adjacent to a query operation.`},MUTATION:{value:y.MUTATION,description:`Location adjacent to a mutation operation.`},SUBSCRIPTION:{value:y.SUBSCRIPTION,description:`Location adjacent to a subscription operation.`},FIELD:{value:y.FIELD,description:`Location adjacent to a field.`},FRAGMENT_DEFINITION:{value:y.FRAGMENT_DEFINITION,description:`Location adjacent to a fragment definition.`},FRAGMENT_SPREAD:{value:y.FRAGMENT_SPREAD,description:`Location adjacent to a fragment spread.`},INLINE_FRAGMENT:{value:y.INLINE_FRAGMENT,description:`Location adjacent to an inline fragment.`},VARIABLE_DEFINITION:{value:y.VARIABLE_DEFINITION,description:`Location adjacent to a variable definition.`},SCHEMA:{value:y.SCHEMA,description:`Location adjacent to a schema definition.`},SCALAR:{value:y.SCALAR,description:`Location adjacent to a scalar definition.`},OBJECT:{value:y.OBJECT,description:`Location adjacent to an object type definition.`},FIELD_DEFINITION:{value:y.FIELD_DEFINITION,description:`Location adjacent to a field definition.`},ARGUMENT_DEFINITION:{value:y.ARGUMENT_DEFINITION,description:`Location adjacent to an argument definition.`},INTERFACE:{value:y.INTERFACE,description:`Location adjacent to an interface definition.`},UNION:{value:y.UNION,description:`Location adjacent to a union definition.`},ENUM:{value:y.ENUM,description:`Location adjacent to an enum definition.`},ENUM_VALUE:{value:y.ENUM_VALUE,description:`Location adjacent to an enum value definition.`},INPUT_OBJECT:{value:y.INPUT_OBJECT,description:`Location adjacent to an input object type definition.`},INPUT_FIELD_DEFINITION:{value:y.INPUT_FIELD_DEFINITION,description:`Location adjacent to an input object field definition.`},DIRECTIVE_DEFINITION:{value:y.DIRECTIVE_DEFINITION,description:`Location adjacent to a directive definition.`}}}),Nn=new Vt({name:`__Type`,description:"The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\n\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name, description and optional `specifiedByURL`, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.",fields:()=>({kind:{type:new N(Ln),resolve(e){if(St(e))return F.SCALAR;if(D(e))return F.OBJECT;if(O(e))return F.INTERFACE;if(Tt(e))return F.UNION;if(Et(e))return F.ENUM;if(k(e))return F.INPUT_OBJECT;if(A(e))return F.LIST;if(j(e))return F.NON_NULL;r(!1,`Unexpected type: "${C(e)}".`)}},name:{type:P,resolve:e=>`name`in e?e.name:void 0},description:{type:P,resolve:e=>`description`in e?e.description:void 0},specifiedByURL:{type:P,resolve:e=>`specifiedByURL`in e?e.specifiedByURL:void 0},fields:{type:new M(new N(Pn)),args:{includeDeprecated:{type:fn,defaultValue:!1}},resolve(e,{includeDeprecated:t}){if(D(e)||O(e)){let n=Object.values(e.getFields());return t?n:n.filter(e=>e.deprecationReason==null)}}},interfaces:{type:new M(new N(Nn)),resolve(e){if(D(e)||O(e))return e.getInterfaces()}},possibleTypes:{type:new M(new N(Nn)),resolve(e,t,n,{schema:r}){if(jt(e))return r.getPossibleTypes(e)}},enumValues:{type:new M(new N(In)),args:{includeDeprecated:{type:fn,defaultValue:!1}},resolve(e,{includeDeprecated:t}){if(Et(e)){let n=e.getValues();return t?n:n.filter(e=>e.deprecationReason==null)}}},inputFields:{type:new M(new N(Fn)),args:{includeDeprecated:{type:fn,defaultValue:!1}},resolve(e,{includeDeprecated:t}){if(k(e)){let n=Object.values(e.getFields());return t?n:n.filter(e=>e.deprecationReason==null)}}},ofType:{type:Nn,resolve:e=>`ofType`in e?e.ofType:void 0},isOneOf:{type:fn,resolve:e=>{if(k(e))return e.isOneOf}}})}),Pn=new Vt({name:`__Field`,description:`Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type.`,fields:()=>({name:{type:new N(P),resolve:e=>e.name},description:{type:P,resolve:e=>e.description},args:{type:new N(new M(new N(Fn))),args:{includeDeprecated:{type:fn,defaultValue:!1}},resolve(e,{includeDeprecated:t}){return t?e.args:e.args.filter(e=>e.deprecationReason==null)}},type:{type:new N(Nn),resolve:e=>e.type},isDeprecated:{type:new N(fn),resolve:e=>e.deprecationReason!=null},deprecationReason:{type:P,resolve:e=>e.deprecationReason}})}),Fn=new Vt({name:`__InputValue`,description:`Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value.`,fields:()=>({name:{type:new N(P),resolve:e=>e.name},description:{type:P,resolve:e=>e.description},type:{type:new N(Nn),resolve:e=>e.type},defaultValue:{type:P,description:`A GraphQL-formatted string representing the default value for this input value.`,resolve(e){let{type:t,defaultValue:n}=e,r=On(n,t);return r?w(r):null}},isDeprecated:{type:new N(fn),resolve:e=>e.deprecationReason!=null},deprecationReason:{type:P,resolve:e=>e.deprecationReason}})}),In=new Vt({name:`__EnumValue`,description:`One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string.`,fields:()=>({name:{type:new N(P),resolve:e=>e.name},description:{type:P,resolve:e=>e.description},isDeprecated:{type:new N(fn),resolve:e=>e.deprecationReason!=null},deprecationReason:{type:P,resolve:e=>e.deprecationReason}})});var F;(function(e){e.SCALAR=`SCALAR`,e.OBJECT=`OBJECT`,e.INTERFACE=`INTERFACE`,e.UNION=`UNION`,e.ENUM=`ENUM`,e.INPUT_OBJECT=`INPUT_OBJECT`,e.LIST=`LIST`,e.NON_NULL=`NON_NULL`})(F||={});const Ln=new Qt({name:`__TypeKind`,description:"An enum describing what kind of type a given `__Type` is.",values:{SCALAR:{value:F.SCALAR,description:`Indicates this type is a scalar.`},OBJECT:{value:F.OBJECT,description:"Indicates this type is an object. `fields` and `interfaces` are valid fields."},INTERFACE:{value:F.INTERFACE,description:"Indicates this type is an interface. `fields`, `interfaces`, and `possibleTypes` are valid fields."},UNION:{value:F.UNION,description:"Indicates this type is a union. `possibleTypes` is a valid field."},ENUM:{value:F.ENUM,description:"Indicates this type is an enum. `enumValues` is a valid field."},INPUT_OBJECT:{value:F.INPUT_OBJECT,description:"Indicates this type is an input object. `inputFields` is a valid field."},LIST:{value:F.LIST,description:"Indicates this type is a list. `ofType` is a valid field."},NON_NULL:{value:F.NON_NULL,description:"Indicates this type is a non-null. `ofType` is a valid field."}}}),Rn={name:`__schema`,type:new N(An),description:`Access the current type schema of this server.`,args:[],resolve:(e,t,n,{schema:r})=>r,deprecationReason:void 0,extensions:Object.create(null),astNode:void 0},zn={name:`__type`,type:Nn,description:`Request the type information of a single type.`,args:[{name:`name`,description:void 0,type:new N(P),defaultValue:void 0,deprecationReason:void 0,extensions:Object.create(null),astNode:void 0}],resolve:(e,{name:t},n,{schema:r})=>r.getType(t),deprecationReason:void 0,extensions:Object.create(null),astNode:void 0},Bn={name:`__typename`,type:new N(P),description:`The name of the current Object type at runtime.`,args:[],resolve:(e,t,n,{parentType:r})=>r.name,deprecationReason:void 0,extensions:Object.create(null),astNode:void 0},Vn=Object.freeze([An,jn,Mn,Nn,Pn,Fn,In,Ln]);function Hn(e){return Vn.some(({name:t})=>e.name===t)}function Un(e){return Le(e,Gn)}function Wn(e){if(!Un(e))throw Error(`Expected ${C(e)} to be a GraphQL schema.`);return e}var Gn=class{constructor(e){this.__validationErrors=e.assumeValid===!0?[]:void 0,n(e)||t(!1,`Must provide configuration object.`),!e.types||Array.isArray(e.types)||t(!1,`"types" must be Array if provided but got: ${C(e.types)}.`),!e.directives||Array.isArray(e.directives)||t(!1,`"directives" must be Array if provided but got: ${C(e.directives)}.`),this.description=e.description,this.extensions=it(e.extensions),this.astNode=e.astNode,this.extensionASTNodes=e.extensionASTNodes??[],this._queryType=e.query,this._mutationType=e.mutation,this._subscriptionType=e.subscription,this._directives=e.directives??Tn;let r=new Set(e.types);if(e.types!=null)for(let t of e.types)r.delete(t),Kn(t,r);this._queryType!=null&&Kn(this._queryType,r),this._mutationType!=null&&Kn(this._mutationType,r),this._subscriptionType!=null&&Kn(this._subscriptionType,r);for(let e of this._directives)if(_n(e))for(let t of e.args)Kn(t.type,r);Kn(An,r),this._typeMap=Object.create(null),this._subTypeMap=Object.create(null),this._implementationsMap=Object.create(null);for(let e of r){if(e==null)continue;let n=e.name;if(n||t(!1,`One of the provided types for building the Schema is missing a name.`),this._typeMap[n]!==void 0)throw Error(`Schema must contain uniquely named types but contains multiple types named "${n}".`);if(this._typeMap[n]=e,O(e)){for(let t of e.getInterfaces())if(O(t)){let n=this._implementationsMap[t.name];n===void 0&&(n=this._implementationsMap[t.name]={objects:[],interfaces:[]}),n.interfaces.push(e)}}else if(D(e)){for(let t of e.getInterfaces())if(O(t)){let n=this._implementationsMap[t.name];n===void 0&&(n=this._implementationsMap[t.name]={objects:[],interfaces:[]}),n.objects.push(e)}}}}get[Symbol.toStringTag](){return`GraphQLSchema`}getQueryType(){return this._queryType}getMutationType(){return this._mutationType}getSubscriptionType(){return this._subscriptionType}getRootType(e){switch(e){case v.QUERY:return this.getQueryType();case v.MUTATION:return this.getMutationType();case v.SUBSCRIPTION:return this.getSubscriptionType()}}getTypeMap(){return this._typeMap}getType(e){return this.getTypeMap()[e]}getPossibleTypes(e){return Tt(e)?e.getTypes():this.getImplementations(e).objects}getImplementations(e){return this._implementationsMap[e.name]??{objects:[],interfaces:[]}}isSubType(e,t){let n=this._subTypeMap[e.name];if(n===void 0){if(n=Object.create(null),Tt(e))for(let t of e.getTypes())n[t.name]=!0;else{let t=this.getImplementations(e);for(let e of t.objects)n[e.name]=!0;for(let e of t.interfaces)n[e.name]=!0}this._subTypeMap[e.name]=n}return n[t.name]!==void 0}getDirectives(){return this._directives}getDirective(e){return this.getDirectives().find(t=>t.name===e)}toConfig(){return{description:this.description,query:this.getQueryType(),mutation:this.getMutationType(),subscription:this.getSubscriptionType(),types:Object.values(this.getTypeMap()),directives:this.getDirectives(),extensions:this.extensions,astNode:this.astNode,extensionASTNodes:this.extensionASTNodes,assumeValid:this.__validationErrors!==void 0}}};function Kn(e,t){let n=Lt(e);if(!t.has(n)){if(t.add(n),Tt(n))for(let e of n.getTypes())Kn(e,t);else if(D(n)||O(n)){for(let e of n.getInterfaces())Kn(e,t);for(let e of Object.values(n.getFields())){Kn(e.type,t);for(let n of e.args)Kn(n.type,t)}}else if(k(n))for(let e of Object.values(n.getFields()))Kn(e.type,t)}return t}function qn(e){if(Wn(e),e.__validationErrors)return e.__validationErrors;let t=new Yn(e);Xn(t),Qn(t),er(t);let n=t.getErrors();return e.__validationErrors=n,n}function Jn(e){let t=qn(e);if(t.length!==0)throw Error(t.map(e=>e.message).join(`
`))}var Yn=class{constructor(e){this._errors=[],this.schema=e}reportError(e,t){let n=Array.isArray(t)?t.filter(Boolean):t;this._errors.push(new u(e,{nodes:n}))}getErrors(){return this._errors}};function Xn(e){let t=e.schema,n=t.getQueryType();n?D(n)||e.reportError(`Query root type must be Object type, it cannot be ${C(n)}.`,Zn(t,v.QUERY)??n.astNode):e.reportError(`Query root type must be provided.`,t.astNode);let r=t.getMutationType();r&&!D(r)&&e.reportError(`Mutation root type must be Object type if provided, it cannot be ${C(r)}.`,Zn(t,v.MUTATION)??r.astNode);let i=t.getSubscriptionType();i&&!D(i)&&e.reportError(`Subscription root type must be Object type if provided, it cannot be ${C(i)}.`,Zn(t,v.SUBSCRIPTION)??i.astNode)}function Zn(e,t){return[e.astNode,...e.extensionASTNodes].flatMap(e=>e?.operationTypes??[]).find(e=>e.operation===t)?.type}function Qn(e){for(let t of e.schema.getDirectives()){if(!_n(t)){e.reportError(`Expected directive but got: ${C(t)}.`,t?.astNode);continue}$n(e,t),t.locations.length===0&&e.reportError(`Directive @${t.name} must include 1 or more locations.`,t.astNode);for(let n of t.args)$n(e,n),Dt(n.type)||e.reportError(`The type of @${t.name}(${n.name}:) must be Input Type but got: ${C(n.type)}.`,n.astNode),Jt(n)&&n.deprecationReason!=null&&e.reportError(`Required argument @${t.name}(${n.name}:) cannot be deprecated.`,[fr(n.astNode),n.astNode?.type])}}function $n(e,t){t.name.startsWith(`__`)&&e.reportError(`Name "${t.name}" must not begin with "__", which is reserved by GraphQL introspection.`,t.astNode)}function er(e){let t=lr(e),n=e.schema.getTypeMap();for(let r of Object.values(n)){if(!It(r)){e.reportError(`Expected GraphQL named type but got: ${C(r)}.`,r.astNode);continue}Hn(r)||$n(e,r),D(r)||O(r)?(tr(e,r),nr(e,r)):Tt(r)?ar(e,r):Et(r)?or(e,r):k(r)&&(sr(e,r),t(r))}}function tr(e,t){let n=Object.values(t.getFields());n.length===0&&e.reportError(`Type ${t.name} must define one or more fields.`,[t.astNode,...t.extensionASTNodes]);for(let r of n){$n(e,r),!Ot(r.type)&&e.reportError(`The type of ${t.name}.${r.name} must be Output Type but got: ${C(r.type)}.`,r.astNode?.type);for(let n of r.args){let i=n.name;$n(e,n),!Dt(n.type)&&e.reportError(`The type of ${t.name}.${r.name}(${i}:) must be Input Type but got: ${C(n.type)}.`,n.astNode?.type),Jt(n)&&n.deprecationReason!=null&&e.reportError(`Required argument ${t.name}.${r.name}(${i}:) cannot be deprecated.`,[fr(n.astNode),n.astNode?.type])}}}function nr(e,t){let n=Object.create(null);for(let r of t.getInterfaces()){if(!O(r)){e.reportError(`Type ${C(t)} must only implement Interface types, it cannot implement ${C(r)}.`,ur(t,r));continue}if(t===r){e.reportError(`Type ${t.name} cannot implement itself because it would create a circular reference.`,ur(t,r));continue}if(n[r.name]){e.reportError(`Type ${t.name} can only implement ${r.name} once.`,ur(t,r));continue}n[r.name]=!0,ir(e,t,r),rr(e,t,r)}}function rr(e,t,n){let r=t.getFields();for(let i of Object.values(n.getFields())){let a=i.name,o=r[a];if(!o){e.reportError(`Interface field ${n.name}.${a} expected but ${t.name} does not provide it.`,[i.astNode,t.astNode,...t.extensionASTNodes]);continue}on(e.schema,o.type,i.type)||e.reportError(`Interface field ${n.name}.${a} expects type ${C(i.type)} but ${t.name}.${a} is type ${C(o.type)}.`,[i.astNode?.type,o.astNode?.type]);for(let r of i.args){let i=r.name,s=o.args.find(e=>e.name===i);if(!s){e.reportError(`Interface field argument ${n.name}.${a}(${i}:) expected but ${t.name}.${a} does not provide it.`,[r.astNode,o.astNode]);continue}an(r.type,s.type)||e.reportError(`Interface field argument ${n.name}.${a}(${i}:) expects type ${C(r.type)} but ${t.name}.${a}(${i}:) is type ${C(s.type)}.`,[r.astNode?.type,s.astNode?.type])}for(let r of o.args){let o=r.name;!i.args.find(e=>e.name===o)&&Jt(r)&&e.reportError(`Object field ${t.name}.${a} includes required argument ${o} that is missing from the Interface field ${n.name}.${a}.`,[r.astNode,i.astNode])}}}function ir(e,t,n){let r=t.getInterfaces();for(let i of n.getInterfaces())r.includes(i)||e.reportError(i===t?`Type ${t.name} cannot implement ${n.name} because it would create a circular reference.`:`Type ${t.name} must implement ${i.name} because it is implemented by ${n.name}.`,[...ur(n,i),...ur(t,n)])}function ar(e,t){let n=t.getTypes();n.length===0&&e.reportError(`Union type ${t.name} must define one or more member types.`,[t.astNode,...t.extensionASTNodes]);let r=Object.create(null);for(let i of n){if(r[i.name]){e.reportError(`Union type ${t.name} can only include type ${i.name} once.`,dr(t,i.name));continue}r[i.name]=!0,D(i)||e.reportError(`Union type ${t.name} can only include Object types, it cannot include ${C(i)}.`,dr(t,String(i)))}}function or(e,t){let n=t.getValues();n.length===0&&e.reportError(`Enum type ${t.name} must define one or more values.`,[t.astNode,...t.extensionASTNodes]);for(let t of n)$n(e,t)}function sr(e,t){let n=Object.values(t.getFields());n.length===0&&e.reportError(`Input Object type ${t.name} must define one or more fields.`,[t.astNode,...t.extensionASTNodes]);for(let r of n)$n(e,r),!Dt(r.type)&&e.reportError(`The type of ${t.name}.${r.name} must be Input Type but got: ${C(r.type)}.`,r.astNode?.type),rn(r)&&r.deprecationReason!=null&&e.reportError(`Required input field ${t.name}.${r.name} cannot be deprecated.`,[fr(r.astNode),r.astNode?.type]),t.isOneOf&&cr(t,r,e)}function cr(e,t,n){j(t.type)&&n.reportError(`OneOf input field ${e.name}.${t.name} must be nullable.`,t.astNode?.type),t.defaultValue!==void 0&&n.reportError(`OneOf input field ${e.name}.${t.name} cannot have a default value.`,t.astNode)}function lr(e){let t=Object.create(null),n=[],r=Object.create(null);return i;function i(a){if(t[a.name])return;t[a.name]=!0,r[a.name]=n.length;let o=Object.values(a.getFields());for(let t of o)if(j(t.type)&&k(t.type.ofType)){let a=t.type.ofType,o=r[a.name];if(n.push(t),o===void 0)i(a);else{let t=n.slice(o),r=t.map(e=>e.name).join(`.`);e.reportError(`Cannot reference Input Object "${a.name}" within itself through a series of non-null fields: "${r}".`,t.map(e=>e.astNode))}n.pop()}r[a.name]=void 0}}function ur(e,t){let{astNode:n,extensionASTNodes:r}=e;return(n==null?r:[n,...r]).flatMap(e=>e.interfaces??[]).filter(e=>e.name.value===t.name)}function dr(e,t){let{astNode:n,extensionASTNodes:r}=e;return(n==null?r:[n,...r]).flatMap(e=>e.types??[]).filter(e=>e.name.value===t)}function fr(e){return e?.directives?.find(e=>e.name.value===Sn.name)}function pr(e,t){switch(t.kind){case b.LIST_TYPE:{let n=pr(e,t.type);return n&&new M(n)}case b.NON_NULL_TYPE:{let n=pr(e,t.type);return n&&new N(n)}case b.NAMED_TYPE:return e.getType(t.name.value)}}var mr=class{constructor(e,t,n){this._schema=e,this._typeStack=[],this._parentTypeStack=[],this._inputTypeStack=[],this._fieldDefStack=[],this._defaultValueStack=[],this._directive=null,this._argument=null,this._enumValue=null,this._getFieldDef=n??hr,t&&(Dt(t)&&this._inputTypeStack.push(t),At(t)&&this._parentTypeStack.push(t),Ot(t)&&this._typeStack.push(t))}get[Symbol.toStringTag](){return`TypeInfo`}getType(){if(this._typeStack.length>0)return this._typeStack[this._typeStack.length-1]}getParentType(){if(this._parentTypeStack.length>0)return this._parentTypeStack[this._parentTypeStack.length-1]}getInputType(){if(this._inputTypeStack.length>0)return this._inputTypeStack[this._inputTypeStack.length-1]}getParentInputType(){if(this._inputTypeStack.length>1)return this._inputTypeStack[this._inputTypeStack.length-2]}getFieldDef(){if(this._fieldDefStack.length>0)return this._fieldDefStack[this._fieldDefStack.length-1]}getDefaultValue(){if(this._defaultValueStack.length>0)return this._defaultValueStack[this._defaultValueStack.length-1]}getDirective(){return this._directive}getArgument(){return this._argument}getEnumValue(){return this._enumValue}enter(e){let t=this._schema;switch(e.kind){case b.SELECTION_SET:{let e=Lt(this.getType());this._parentTypeStack.push(At(e)?e:void 0);break}case b.FIELD:{let n=this.getParentType(),r,i;n&&(r=this._getFieldDef(t,n,e),r&&(i=r.type)),this._fieldDefStack.push(r),this._typeStack.push(Ot(i)?i:void 0);break}case b.DIRECTIVE:this._directive=t.getDirective(e.name.value);break;case b.OPERATION_DEFINITION:{let n=t.getRootType(e.operation);this._typeStack.push(D(n)?n:void 0);break}case b.INLINE_FRAGMENT:case b.FRAGMENT_DEFINITION:{let n=e.typeCondition,r=n?pr(t,n):Lt(this.getType());this._typeStack.push(Ot(r)?r:void 0);break}case b.VARIABLE_DEFINITION:{let n=pr(t,e.type);this._inputTypeStack.push(Dt(n)?n:void 0);break}case b.ARGUMENT:{let t,n,r=this.getDirective()??this.getFieldDef();r&&(t=r.args.find(t=>t.name===e.name.value),t&&(n=t.type)),this._argument=t,this._defaultValueStack.push(t?t.defaultValue:void 0),this._inputTypeStack.push(Dt(n)?n:void 0);break}case b.LIST:{let e=Ft(this.getInputType()),t=A(e)?e.ofType:e;this._defaultValueStack.push(void 0),this._inputTypeStack.push(Dt(t)?t:void 0);break}case b.OBJECT_FIELD:{let t=Lt(this.getInputType()),n,r;k(t)&&(r=t.getFields()[e.name.value],r&&(n=r.type)),this._defaultValueStack.push(r?r.defaultValue:void 0),this._inputTypeStack.push(Dt(n)?n:void 0);break}case b.ENUM:{let t=Lt(this.getInputType()),n;Et(t)&&(n=t.getValue(e.value)),this._enumValue=n;break}default:}}leave(e){switch(e.kind){case b.SELECTION_SET:this._parentTypeStack.pop();break;case b.FIELD:this._fieldDefStack.pop(),this._typeStack.pop();break;case b.DIRECTIVE:this._directive=null;break;case b.OPERATION_DEFINITION:case b.INLINE_FRAGMENT:case b.FRAGMENT_DEFINITION:this._typeStack.pop();break;case b.VARIABLE_DEFINITION:this._inputTypeStack.pop();break;case b.ARGUMENT:this._argument=null,this._defaultValueStack.pop(),this._inputTypeStack.pop();break;case b.LIST:case b.OBJECT_FIELD:this._defaultValueStack.pop(),this._inputTypeStack.pop();break;case b.ENUM:this._enumValue=null;break;default:}}};function hr(e,t,n){let r=n.name.value;if(r===Rn.name&&e.getQueryType()===t)return Rn;if(r===zn.name&&e.getQueryType()===t)return zn;if(r===Bn.name&&At(t))return Bn;if(D(t)||O(t))return t.getFields()[r]}function gr(e,t){return{enter(...n){let r=n[0];e.enter(r);let i=ft(t,r.kind).enter;if(i){let a=i.apply(t,n);return a!==void 0&&(e.leave(r),_(a)&&e.enter(a)),a}},leave(...n){let r=n[0],i=ft(t,r.kind).leave,a;return i&&(a=i.apply(t,n)),e.leave(r),a}}}function _r(e){return e.kind===b.OPERATION_DEFINITION||e.kind===b.FRAGMENT_DEFINITION}function vr(e){return e.kind===b.SCHEMA_DEFINITION||yr(e)||e.kind===b.DIRECTIVE_DEFINITION}function yr(e){return e.kind===b.SCALAR_TYPE_DEFINITION||e.kind===b.OBJECT_TYPE_DEFINITION||e.kind===b.INTERFACE_TYPE_DEFINITION||e.kind===b.UNION_TYPE_DEFINITION||e.kind===b.ENUM_TYPE_DEFINITION||e.kind===b.INPUT_OBJECT_TYPE_DEFINITION}function br(e){return e.kind===b.SCHEMA_EXTENSION||e.kind===b.DIRECTIVE_EXTENSION||xr(e)}function xr(e){return e.kind===b.SCALAR_TYPE_EXTENSION||e.kind===b.OBJECT_TYPE_EXTENSION||e.kind===b.INTERFACE_TYPE_EXTENSION||e.kind===b.UNION_TYPE_EXTENSION||e.kind===b.ENUM_TYPE_EXTENSION||e.kind===b.INPUT_OBJECT_TYPE_EXTENSION}function Sr(e){return{Document(t){for(let n of t.definitions)if(!_r(n)){let t=n.kind===b.SCHEMA_DEFINITION||n.kind===b.SCHEMA_EXTENSION?`schema`:`"`+n.name.value+`"`;e.reportError(new u(`The ${t} definition is not executable.`,{nodes:n}))}return!1}}}function Cr(e){return{Field(t){let n=e.getParentType();if(n&&!e.getFieldDef()){let r=e.getSchema(),i=t.name.value,a=Ke(`to use an inline fragment on`,wr(r,n,i));a===``&&(a=Ke(Tr(n,i))),e.reportError(new u(`Cannot query field "${i}" on type "${n.name}".`+a,{nodes:t}))}}}}function wr(e,t,n){if(!jt(t))return[];let r=new Set,i=Object.create(null);for(let a of e.getPossibleTypes(t))if(a.getFields()[n]){r.add(a),i[a.name]=1;for(let e of a.getInterfaces())e.getFields()[n]&&(r.add(e),i[e.name]=(i[e.name]??0)+1)}return[...r].sort((t,n)=>{let r=i[n.name]-i[t.name];return r===0?O(t)&&e.isSubType(t,n)?-1:O(n)&&e.isSubType(n,t)?1:Ze(t.name,n.name):r}).map(e=>e.name)}function Tr(e,t){if(D(e)||O(e)){let n=Object.keys(e.getFields());return tt(t,n)}return[]}function Er(e){return{InlineFragment(t){let n=t.typeCondition;if(n){let t=pr(e.getSchema(),n);if(t&&!At(t)){let t=w(n);e.reportError(new u(`Fragment cannot condition on non composite type "${t}".`,{nodes:n}))}}},FragmentDefinition(t){let n=pr(e.getSchema(),t.typeCondition);if(n&&!At(n)){let n=w(t.typeCondition);e.reportError(new u(`Fragment "${t.name.value}" cannot condition on non composite type "${n}".`,{nodes:t.typeCondition}))}}}}function Dr(e){return{...Or(e),Argument(t){let n=e.getArgument(),r=e.getFieldDef(),i=e.getParentType();if(!n&&r&&i){let n=t.name.value,a=r.args.map(e=>e.name),o=tt(n,a);e.reportError(new u(`Unknown argument "${n}" on field "${i.name}.${r.name}".`+Ke(o),{nodes:t}))}}}}function Or(e){let t=Object.create(null),n=e.getSchema(),r=n?n.getDirectives():Tn;for(let e of r)t[e.name]=e.args.map(e=>e.name);let i=e.getDocument().definitions;for(let e of i)if(e.kind===b.DIRECTIVE_DEFINITION){let n=e.arguments??[];t[e.name.value]=n.map(e=>e.name.value)}return{Directive(n){let r=n.name.value,i=t[r];if(n.arguments&&i)for(let t of n.arguments){let n=t.name.value;if(!i.includes(n)){let a=tt(n,i);e.reportError(new u(`Unknown argument "${n}" on directive "@${r}".`+Ke(a),{nodes:t}))}}return!1}}}function kr(e){let t=Object.create(null),n=e.getSchema(),r=n?n.getDirectives():Tn;for(let e of r)t[e.name]=e.locations;let i=e.getDocument().definitions;for(let e of i)e.kind===b.DIRECTIVE_DEFINITION&&(t[e.name.value]=e.locations.map(e=>e.value));return{Directive(n,r,i,a,o){let s=n.name.value,c=t[s];if(!c){e.reportError(new u(`Unknown directive "@${s}".`,{nodes:n}));return}let l=Ar(o);l&&!c.includes(l)&&e.reportError(new u(`Directive "@${s}" may not be used on ${l}.`,{nodes:n}))}}}function Ar(e){let t=e[e.length-1];switch(`kind`in t||r(!1),t.kind){case b.OPERATION_DEFINITION:return jr(t.operation);case b.FIELD:return y.FIELD;case b.FRAGMENT_SPREAD:return y.FRAGMENT_SPREAD;case b.INLINE_FRAGMENT:return y.INLINE_FRAGMENT;case b.FRAGMENT_DEFINITION:return y.FRAGMENT_DEFINITION;case b.VARIABLE_DEFINITION:return y.VARIABLE_DEFINITION;case b.SCHEMA_DEFINITION:case b.SCHEMA_EXTENSION:return y.SCHEMA;case b.SCALAR_TYPE_DEFINITION:case b.SCALAR_TYPE_EXTENSION:return y.SCALAR;case b.OBJECT_TYPE_DEFINITION:case b.OBJECT_TYPE_EXTENSION:return y.OBJECT;case b.FIELD_DEFINITION:return y.FIELD_DEFINITION;case b.INTERFACE_TYPE_DEFINITION:case b.INTERFACE_TYPE_EXTENSION:return y.INTERFACE;case b.UNION_TYPE_DEFINITION:case b.UNION_TYPE_EXTENSION:return y.UNION;case b.ENUM_TYPE_DEFINITION:case b.ENUM_TYPE_EXTENSION:return y.ENUM;case b.ENUM_VALUE_DEFINITION:return y.ENUM_VALUE;case b.INPUT_OBJECT_TYPE_DEFINITION:case b.INPUT_OBJECT_TYPE_EXTENSION:return y.INPUT_OBJECT;case b.INPUT_VALUE_DEFINITION:{let t=e[e.length-3];return`kind`in t||r(!1),t.kind===b.INPUT_OBJECT_TYPE_DEFINITION?y.INPUT_FIELD_DEFINITION:y.ARGUMENT_DEFINITION}case b.DIRECTIVE_DEFINITION:case b.DIRECTIVE_EXTENSION:return y.DIRECTIVE_DEFINITION;default:r(!1,`Unexpected kind: `+C(t.kind))}}function jr(e){switch(e){case v.QUERY:return y.QUERY;case v.MUTATION:return y.MUTATION;case v.SUBSCRIPTION:return y.SUBSCRIPTION}}function Mr(e){return{FragmentSpread(t){let n=t.name.value;e.getFragment(n)||e.reportError(new u(`Unknown fragment "${n}".`,{nodes:t.name}))}}}function Nr(e){let t=e.getSchema(),n=t?t.getTypeMap():Object.create(null),r=Object.create(null);for(let t of e.getDocument().definitions)yr(t)&&(r[t.name.value]=!0);let i=[...Object.keys(n),...Object.keys(r)];return{NamedType(t,a,o,s,c){let l=t.name.value;if(!n[l]&&!r[l]){let n=c[2]??o,r=n!=null&&Fr(n);if(r&&Pr.includes(l))return;let a=tt(l,r?Pr.concat(i):i);e.reportError(new u(`Unknown type "${l}".`+Ke(a),{nodes:t}))}}}}var Pr=[...mn,...Vn].map(e=>e.name);function Fr(e){return`kind`in e&&(vr(e)||br(e))}function Ir(e){let t=0;return{Document(e){t=e.definitions.filter(e=>e.kind===b.OPERATION_DEFINITION).length},OperationDefinition(n){!n.name&&t>1&&e.reportError(new u(`This anonymous operation must be the only defined operation.`,{nodes:n}))}}}function Lr(e){let t=e.getSchema(),n=t?.astNode??t?.getQueryType()??t?.getMutationType()??t?.getSubscriptionType(),r=0;return{SchemaDefinition(t){if(n){e.reportError(new u(`Cannot define a new schema within a schema extension.`,{nodes:t}));return}r>0&&e.reportError(new u(`Must provide only one schema definition.`,{nodes:t})),++r}}}var Rr=3;function zr(e){function t(n,r=Object.create(null),i=0){if(n.kind===b.FRAGMENT_SPREAD){let a=n.name.value;if(r[a]===!0)return!1;let o=e.getFragment(a);if(!o)return!1;try{return r[a]=!0,t(o,r,i)}finally{r[a]=void 0}}if(n.kind===b.FIELD&&(n.name.value===`fields`||n.name.value===`interfaces`||n.name.value===`possibleTypes`||n.name.value===`inputFields`)&&(i++,i>=Rr))return!0;if(`selectionSet`in n&&n.selectionSet){for(let e of n.selectionSet.selections)if(t(e,r,i))return!0}return!1}return{Field(n){if((n.name.value===`__schema`||n.name.value===`__type`)&&t(n))return e.reportError(new u(`Maximum introspection depth exceeded`,{nodes:[n]})),!1}}}function Br(e){let t=Object.create(null),n=[],r=Object.create(null);return{OperationDefinition:()=>!1,FragmentDefinition(e){return i(e),!1}};function i(a){if(t[a.name.value])return;let o=a.name.value;t[o]=!0;let s=e.getFragmentSpreads(a.selectionSet);if(s.length!==0){r[o]=n.length;for(let t of s){let a=t.name.value,o=r[a];if(n.push(t),o===void 0){let t=e.getFragment(a);t&&i(t)}else{let t=n.slice(o),r=t.slice(0,-1).map(e=>`"`+e.name.value+`"`).join(`, `);e.reportError(new u(`Cannot spread fragment "${a}" within itself`+(r===``?`.`:` via ${r}.`),{nodes:t}))}n.pop()}r[o]=void 0}}}function Vr(e){let t=Object.create(null);return{OperationDefinition:{enter(){t=Object.create(null)},leave(n){let r=e.getRecursiveVariableUsages(n);for(let{node:i}of r){let r=i.name.value;t[r]!==!0&&e.reportError(new u(n.name?`Variable "$${r}" is not defined by operation "${n.name.value}".`:`Variable "$${r}" is not defined.`,{nodes:[i,n]}))}}},VariableDefinition(e){t[e.variable.name.value]=!0}}}function Hr(e){let t=[],n=[];return{OperationDefinition(e){return t.push(e),!1},FragmentDefinition(e){return n.push(e),!1},Document:{leave(){let r=Object.create(null);for(let n of t)for(let t of e.getRecursivelyReferencedFragments(n))r[t.name.value]=!0;for(let t of n){let n=t.name.value;r[n]!==!0&&e.reportError(new u(`Fragment "${n}" is never used.`,{nodes:t}))}}}}}function Ur(e){let t=[];return{OperationDefinition:{enter(){t=[]},leave(n){let r=Object.create(null),i=e.getRecursiveVariableUsages(n);for(let{node:e}of i)r[e.name.value]=!0;for(let i of t){let t=i.variable.name.value;r[t]!==!0&&e.reportError(new u(n.name?`Variable "$${t}" is never used in operation "${n.name.value}".`:`Variable "$${t}" is never used.`,{nodes:i}))}}},VariableDefinition(e){t.push(e)}}}function Wr(e){switch(e.kind){case b.OBJECT:return{...e,fields:Gr(e.fields)};case b.LIST:return{...e,values:e.values.map(Wr)};case b.INT:case b.FLOAT:case b.STRING:case b.BOOLEAN:case b.NULL:case b.ENUM:case b.VARIABLE:return e}}function Gr(e){return e.map(e=>({...e,value:Wr(e.value)})).sort((e,t)=>Ze(e.name.value,t.name.value))}function Kr(e){return Array.isArray(e)?e.map(([e,t])=>`subfields "${e}" conflict because `+Kr(t)).join(` and `):e}function qr(e){let t=new ci,n=new li,r=new Map;return{SelectionSet(i){let a=Jr(e,r,t,n,e.getParentType(),i);for(let[[t,n],r,i]of a){let a=Kr(n);e.reportError(new u(`Fields "${t}" conflict because ${a}. Use different aliases on the fields to fetch both if this was intentional.`,{nodes:r.concat(i)}))}}}}function Jr(e,t,n,r,i,a){let o=[],[s,c]=ii(e,t,i,a);if(Qr(e,o,t,n,r,s),c.length!==0)for(let i=0;i<c.length;i++){Yr(e,o,t,n,r,!1,s,c[i]);for(let a=i+1;a<c.length;a++)Xr(e,o,t,n,r,!1,c[i],c[a])}return o}function Yr(e,t,n,r,i,a,o,s){if(r.has(o,s,a))return;r.add(o,s,a);let c=e.getFragment(s);if(!c)return;let[l,u]=ai(e,n,c);if(o!==l){$r(e,t,n,r,i,a,o,l);for(let s of u)Yr(e,t,n,r,i,a,o,s)}}function Xr(e,t,n,r,i,a,o,s){if(o===s||i.has(o,s,a))return;i.add(o,s,a);let c=e.getFragment(o),l=e.getFragment(s);if(!c||!l)return;let[u,d]=ai(e,n,c),[f,p]=ai(e,n,l);$r(e,t,n,r,i,a,u,f);for(let s of p)Xr(e,t,n,r,i,a,o,s);for(let o of d)Xr(e,t,n,r,i,a,o,s)}function Zr(e,t,n,r,i,a,o,s,c){let l=[],[u,d]=ii(e,t,a,o),[f,p]=ii(e,t,s,c);$r(e,l,t,n,r,i,u,f);for(let a of p)Yr(e,l,t,n,r,i,u,a);for(let a of d)Yr(e,l,t,n,r,i,f,a);for(let a of d)for(let o of p)Xr(e,l,t,n,r,i,a,o);return l}function Qr(e,t,n,r,i,a){for(let[o,s]of Object.entries(a))if(s.length>1)for(let a=0;a<s.length;a++)for(let c=a+1;c<s.length;c++){let l=ei(e,n,r,i,!1,o,s[a],s[c]);l&&t.push(l)}}function $r(e,t,n,r,i,a,o,s){for(let[c,l]of Object.entries(o)){let o=s[c];if(o)for(let s of l)for(let l of o){let o=ei(e,n,r,i,a,c,s,l);o&&t.push(o)}}}function ei(e,t,n,r,i,a,o,s){let[c,l,u]=o,[d,f,p]=s,m=i||c!==d&&D(c)&&D(d);if(!m){let e=l.name.value,t=f.name.value;if(e!==t)return[[a,`"${e}" and "${t}" are different fields`],[l],[f]];if(!ti(l,f))return[[a,`they have differing arguments`],[l],[f]]}let h=u?.type,g=p?.type;if(h&&g&&ri(h,g))return[[a,`they return conflicting types "${C(h)}" and "${C(g)}"`],[l],[f]];let _=l.selectionSet,v=f.selectionSet;if(_&&v){let i=Zr(e,t,n,r,m,Lt(h),_,Lt(g),v);return si(i,a,l,f)}}function ti(e,t){let n=e.arguments,r=t.arguments;if(n===void 0||n.length===0)return r===void 0||r.length===0;if(r===void 0||r.length===0||n.length!==r.length)return!1;let i=new Map(r.map(({name:e,value:t})=>[e.value,t]));return n.every(e=>{let t=e.value,n=i.get(e.name.value);return n===void 0?!1:ni(t)===ni(n)})}function ni(e){return w(Wr(e))}function ri(e,t){return A(e)?A(t)?ri(e.ofType,t.ofType):!0:A(t)?!0:j(e)?j(t)?ri(e.ofType,t.ofType):!0:j(t)?!0:kt(e)||kt(t)?e!==t:!1}function ii(e,t,n,r){let i=t.get(r);if(i)return i;let a=Object.create(null),o=Object.create(null);oi(e,n,r,a,o);let s=[a,Object.keys(o)];return t.set(r,s),s}function ai(e,t,n){let r=t.get(n.selectionSet);if(r)return r;let i=pr(e.getSchema(),n.typeCondition);return ii(e,t,i,n.selectionSet)}function oi(e,t,n,r,i){for(let a of n.selections)switch(a.kind){case b.FIELD:{let e=a.name.value,n;(D(t)||O(t))&&(n=t.getFields()[e]);let i=a.alias?a.alias.value:e;r[i]||(r[i]=[]),r[i].push([t,a,n]);break}case b.FRAGMENT_SPREAD:i[a.name.value]=!0;break;case b.INLINE_FRAGMENT:{let n=a.typeCondition,o=n?pr(e.getSchema(),n):t;oi(e,o,a.selectionSet,r,i);break}}}function si(e,t,n,r){if(e.length>0)return[[t,e.map(([e])=>e)],[n,...e.map(([,e])=>e).flat()],[r,...e.map(([,,e])=>e).flat()]]}var ci=class{constructor(){this._data=new Map}has(e,t,n){let r=this._data.get(e)?.get(t);return r===void 0?!1:n?!0:n===r}add(e,t,n){let r=this._data.get(e);r===void 0?this._data.set(e,new Map([[t,n]])):r.set(t,n)}},li=class{constructor(){this._orderedPairSet=new ci}has(e,t,n){return e<t?this._orderedPairSet.has(e,t,n):this._orderedPairSet.has(t,e,n)}add(e,t,n){e<t?this._orderedPairSet.add(e,t,n):this._orderedPairSet.add(t,e,n)}};function ui(e){return{InlineFragment(t){let n=e.getType(),r=e.getParentType();if(At(n)&&At(r)&&!sn(e.getSchema(),n,r)){let i=C(r),a=C(n);e.reportError(new u(`Fragment cannot be spread here as objects of type "${i}" can never be of type "${a}".`,{nodes:t}))}},FragmentSpread(t){let n=t.name.value,r=di(e,n),i=e.getParentType();if(r&&i&&!sn(e.getSchema(),r,i)){let a=C(i),o=C(r);e.reportError(new u(`Fragment "${n}" cannot be spread here as objects of type "${a}" can never be of type "${o}".`,{nodes:t}))}}}}function di(e,t){let n=e.getFragment(t);if(n){let t=pr(e.getSchema(),n.typeCondition);if(At(t))return t}}function fi(e){let t=e.getSchema(),n=Object.create(null);for(let t of e.getDocument().definitions)yr(t)&&(n[t.name.value]=t);return{ScalarTypeExtension:r,ObjectTypeExtension:r,InterfaceTypeExtension:r,UnionTypeExtension:r,EnumTypeExtension:r,InputObjectTypeExtension:r};function r(r){let i=r.name.value,a=n[i],o=t?.getType(i),s;if(a?s=pi[a.kind]:o&&(s=mi(o)),s){if(s!==r.kind){let t=hi(r.kind);e.reportError(new u(`Cannot extend non-${t} type "${i}".`,{nodes:a?[a,r]:r}))}}else{let a=Object.keys({...n,...t?.getTypeMap()}),o=tt(i,a);e.reportError(new u(`Cannot extend type "${i}" because it is not defined.`+Ke(o),{nodes:r.name}))}}}var pi={[b.SCALAR_TYPE_DEFINITION]:b.SCALAR_TYPE_EXTENSION,[b.OBJECT_TYPE_DEFINITION]:b.OBJECT_TYPE_EXTENSION,[b.INTERFACE_TYPE_DEFINITION]:b.INTERFACE_TYPE_EXTENSION,[b.UNION_TYPE_DEFINITION]:b.UNION_TYPE_EXTENSION,[b.ENUM_TYPE_DEFINITION]:b.ENUM_TYPE_EXTENSION,[b.INPUT_OBJECT_TYPE_DEFINITION]:b.INPUT_OBJECT_TYPE_EXTENSION};function mi(e){if(St(e))return b.SCALAR_TYPE_EXTENSION;if(D(e))return b.OBJECT_TYPE_EXTENSION;if(O(e))return b.INTERFACE_TYPE_EXTENSION;if(Tt(e))return b.UNION_TYPE_EXTENSION;if(Et(e))return b.ENUM_TYPE_EXTENSION;if(k(e))return b.INPUT_OBJECT_TYPE_EXTENSION;r(!1,`Unexpected type: `+C(e))}function hi(e){switch(e){case b.SCALAR_TYPE_EXTENSION:return`scalar`;case b.OBJECT_TYPE_EXTENSION:return`object`;case b.INTERFACE_TYPE_EXTENSION:return`interface`;case b.UNION_TYPE_EXTENSION:return`union`;case b.ENUM_TYPE_EXTENSION:return`enum`;case b.INPUT_OBJECT_TYPE_EXTENSION:return`input object`;default:r(!1,`Unexpected kind: `+C(e))}}function gi(e){return{..._i(e),Field:{leave(t){let n=e.getFieldDef();if(!n)return!1;let r=new Set(t.arguments?.map(e=>e.name.value));for(let i of n.args)if(!r.has(i.name)&&Jt(i)){let r=C(i.type);e.reportError(new u(`Field "${n.name}" argument "${i.name}" of type "${r}" is required, but it was not provided.`,{nodes:t}))}}}}}function _i(e){let t=Object.create(null),n=e.getSchema()?.getDirectives()??Tn;for(let e of n)t[e.name]=Je(e.args.filter(Jt),e=>e.name);let r=e.getDocument().definitions;for(let e of r)if(e.kind===b.DIRECTIVE_DEFINITION){let n=e.arguments??[];t[e.name.value]=Je(n.filter(vi),e=>e.name.value)}return{Directive:{leave(n){let r=n.name.value,i=t[r];if(i){let t=n.arguments??[],a=new Set(t.map(e=>e.name.value));for(let[t,o]of Object.entries(i))if(!a.has(t)){let i=xt(o.type)?C(o.type):w(o.type);e.reportError(new u(`Directive "@${r}" argument "${t}" of type "${i}" is required, but it was not provided.`,{nodes:n}))}}}}}}function vi(e){return e.type.kind===b.NON_NULL_TYPE&&e.defaultValue==null}function yi(e){return{Field(t){let n=e.getType(),r=t.selectionSet;if(n)if(kt(Lt(n))){if(r){let i=t.name.value,a=C(n);e.reportError(new u(`Field "${i}" must not have a selection since type "${a}" has no subfields.`,{nodes:r}))}}else if(r){if(r.selections.length===0){let r=t.name.value,i=C(n);e.reportError(new u(`Field "${r}" of type "${i}" must have at least one field selected.`,{nodes:t}))}}else{let r=t.name.value,i=C(n);e.reportError(new u(`Field "${r}" of type "${i}" must have a selection of subfields. Did you mean "${r} { ... }"?`,{nodes:t}))}}}}function bi(e){return e.map(e=>typeof e==`number`?`[`+e.toString()+`]`:`.`+e).join(``)}function xi(e,t,n){return{prev:e,key:t,typename:n}}function Si(e){let t=[],n=e;for(;n;)t.push(n.key),n=n.prev;return t.reverse()}function Ci(e,t,n=wi){return Ti(e,t,n,void 0)}function wi(e,t,n){let r=`Invalid value `+C(t);throw e.length>0&&(r+=` at "value${bi(e)}"`),n.message=r+`: `+n.message,n}function Ti(e,t,i,a){if(j(t)){if(e!=null)return Ti(e,t.ofType,i,a);i(Si(a),e,new u(`Expected non-nullable type "${C(t)}" not to be null.`));return}if(e==null)return null;if(A(t)){let n=t.ofType;return Dn(e)?Array.from(e,(e,t)=>{let r=xi(a,t,void 0);return Ti(e,n,i,r)}):[Ti(e,n,i,a)]}if(k(t)){if(!n(e)||Array.isArray(e)){i(Si(a),e,new u(`Expected type "${t.name}" to be an object.`));return}let r=Object.create(null),o=t.getFields();for(let n of Object.values(o)){let o=e[n.name];if(o===void 0){if(n.defaultValue!==void 0)r[n.name]=n.defaultValue;else if(j(n.type)){let t=C(n.type);i(Si(a),e,new u(`Field "${n.name}" of required type "${t}" was not provided.`))}continue}r[n.name]=Ti(o,n.type,i,xi(a,n.name,t.name))}for(let n of Object.keys(e))if(!o[n]){let r=tt(n,Object.keys(t.getFields()));i(Si(a),e,new u(`Field "${n}" is not defined by type "${t.name}".`+Ke(r)))}if(t.isOneOf){let n=Object.keys(r);n.length!==1&&i(Si(a),e,new u(`Exactly one key must be specified for OneOf type "${t.name}".`));let o=n[0],s=r[o];s===null&&i(Si(a).concat(o),s,new u(`Field "${o}" must be non-null.`))}return{...r}}if(kt(t)){let n;try{n=t.parseValue(e)}catch(n){n instanceof u?i(Si(a),e,n):i(Si(a),e,new u(`Expected type "${t.name}". `+n.message,{originalError:n}));return}return n===void 0&&i(Si(a),e,new u(`Expected type "${t.name}".`)),n}r(!1,`Unexpected input type: `+C(t))}function Ei(e,t,n){if(e){if(e.kind===b.VARIABLE){let r=e.name.value;if(n==null||n[r]===void 0||!Oi(n,r))return;let i=n[r];return i===null&&j(t)?void 0:i}if(j(t))return e.kind===b.NULL?void 0:Ei(e,t.ofType,n);if(e.kind===b.NULL)return null;if(A(t)){let r=t.ofType;if(e.kind===b.LIST){let t=[];for(let i of e.values)if(Di(i,n)){if(j(r))return;t.push(null)}else{let e=Ei(i,r,n);if(e===void 0)return;t.push(e)}return t}let i=Ei(e,r,n);return i===void 0?void 0:[i]}if(k(t)){if(e.kind!==b.OBJECT)return;let r=Object.create(null),i=Je(e.fields,e=>e.name.value);for(let e of Object.values(t.getFields())){let t=i[e.name];if(!t||Di(t.value,n)){if(e.defaultValue!==void 0)r[e.name]=e.defaultValue;else if(j(e.type))return;continue}let a=Ei(t.value,e.type,n);if(a===void 0)return;r[e.name]=a}if(t.isOneOf){let e=Object.keys(r);if(e.length!==1||r[e[0]]===null)return}return r}if(kt(t)){let r;try{r=t.parseLiteral(e,n)}catch{return}return r===void 0?void 0:r}r(!1,`Unexpected input type: `+C(t))}}function Di(e,t){return e.kind===b.VARIABLE&&(t==null||t[e.name.value]===void 0||!Oi(t,e.name.value))}function Oi(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function ki(e,t,n,r){let i=[],a=r?.maxErrors;try{let r=Ai(e,t,n,e=>{if(a!=null&&i.length>=a)throw new u(`Too many errors processing variables, error limit reached. Execution aborted.`);i.push(e)});if(i.length===0)return{coerced:r}}catch(e){i.push(e)}return{errors:i}}function Ai(e,t,n,r){let i=Object.create(null);for(let a of t){let t=a.variable.name.value,o=pr(e,a.type);if(!Dt(o)){let e=w(a.type);r(new u(`Variable "$${t}" expected value of type "${e}" which cannot be used as an input type.`,{nodes:a.type}));continue}if(!Ni(n,t)){if(a.defaultValue)i[t]=Ei(a.defaultValue,o);else if(j(o)){let e=C(o);r(new u(`Variable "$${t}" of required type "${e}" was not provided.`,{nodes:a}))}continue}let s=n[t];if(s===null&&j(o)){let e=C(o);r(new u(`Variable "$${t}" of non-null type "${e}" must not be null.`,{nodes:a}));continue}i[t]=Ci(s,o,(e,n,i)=>{let o=`Variable "$${t}" got invalid value `+C(n);e.length>0&&(o+=` at "${t}${bi(e)}"`),r(new u(o+`; `+i.message,{nodes:a,originalError:i}))})}return{...i}}function ji(e,t,n){let r=Object.create(null),i=t.arguments??[],a=Je(i,e=>e.name.value);for(let i of e.args){let e=i.name,o=i.type,s=a[e];if(!s){if(i.defaultValue!==void 0)r[e]=i.defaultValue;else if(j(o))throw new u(`Argument "${e}" of required type "${C(o)}" was not provided.`,{nodes:t});continue}let c=s.value,l=c.kind===b.NULL;if(c.kind===b.VARIABLE){let t=c.name.value;if(n==null||!Ni(n,t)){if(i.defaultValue!==void 0)r[e]=i.defaultValue;else if(j(o))throw new u(`Argument "${e}" of required type "${C(o)}" was provided the variable "$${t}" which was not provided a runtime value.`,{nodes:c});continue}l=n[t]==null}if(l&&j(o))throw new u(`Argument "${e}" of non-null type "${C(o)}" must not be null.`,{nodes:c});let d=Ei(c,o,n);if(d===void 0)throw new u(`Argument "${e}" has invalid value ${w(c)}.`,{nodes:c});r[e]=d}return{...r}}function Mi(e,t,n){let r=t.directives?.find(t=>t.name.value===e.name);if(r)return ji(e,r,n)}function Ni(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Pi(e,t,n,r,i){let a=new Map;return Ii(e,t,n,r,i,a,new Set),a}function Fi(e,t,n,r,i){let a=new Map,o=new Set;for(let s of i)s.selectionSet&&Ii(e,t,n,r,s.selectionSet,a,o);return a}function Ii(e,t,n,r,i,a,o){for(let s of i.selections)switch(s.kind){case b.FIELD:{if(!Li(n,s))continue;let e=zi(s),t=a.get(e);t===void 0?a.set(e,[s]):t.push(s);break}case b.INLINE_FRAGMENT:if(!Li(n,s)||!Ri(e,s,r))continue;Ii(e,t,n,r,s.selectionSet,a,o);break;case b.FRAGMENT_SPREAD:{let i=s.name.value;if(o.has(i)||!Li(n,s))continue;o.add(i);let c=t[i];if(!c||!Ri(e,c,r))continue;Ii(e,t,n,r,c.selectionSet,a,o);break}}}function Li(e,t){return Mi(bn,t,e)?.if===!0?!1:Mi(yn,t,e)?.if!==!1}function Ri(e,t,n){let r=t.typeCondition;if(!r)return!0;let i=pr(e,r);return i===n?!0:jt(i)?e.isSubType(i,n):!1}function zi(e){return e.alias?e.alias.value:e.name.value}function Bi(e){return{OperationDefinition(t){if(t.operation===`subscription`){let n=e.getSchema(),r=n.getSubscriptionType();if(r){let i=t.name?t.name.value:null,a=Object.create(null),o=e.getDocument(),s=Object.create(null);for(let e of o.definitions)e.kind===b.FRAGMENT_DEFINITION&&(s[e.name.value]=e);let c=Pi(n,s,a,r,t.selectionSet);if(c.size>1){let t=[...c.values()].slice(1).flat();e.reportError(new u(i==null?`Anonymous Subscription must select only one top level field.`:`Subscription "${i}" must select only one top level field.`,{nodes:t}))}for(let t of c.values())t[0].name.value.startsWith(`__`)&&e.reportError(new u(i==null?`Anonymous Subscription must not select an introspection top level field.`:`Subscription "${i}" must not select an introspection top level field.`,{nodes:t}))}}}}}function Vi(e,t){let n=new Map;for(let r of e){let e=t(r),i=n.get(e);i===void 0?n.set(e,[r]):i.push(r)}return n}function Hi(e){return{DirectiveDefinition(e){let t=e.arguments??[];return n(`@${e.name.value}`,t)},InterfaceTypeDefinition:t,InterfaceTypeExtension:t,ObjectTypeDefinition:t,ObjectTypeExtension:t};function t(e){let t=e.name.value,r=e.fields??[];for(let e of r){let r=e.name.value,i=e.arguments??[];n(`${t}.${r}`,i)}return!1}function n(t,n){let r=Vi(n,e=>e.name.value);for(let[n,i]of r)i.length>1&&e.reportError(new u(`Argument "${t}(${n}:)" can only be defined once.`,{nodes:i.map(e=>e.name)}));return!1}}function Ui(e){return{Field:t,Directive:t};function t(t){let n=t.arguments??[],r=Vi(n,e=>e.name.value);for(let[t,n]of r)n.length>1&&e.reportError(new u(`There can be only one argument named "${t}".`,{nodes:n.map(e=>e.name)}))}}function Wi(e){let t=Object.create(null),n=e.getSchema();return{DirectiveDefinition(r){let i=r.name.value;if(n!=null&&n.getDirective(i)){e.reportError(new u(`Directive "@${i}" already exists in the schema. It cannot be redefined.`,{nodes:r.name}));return}return t[i]?e.reportError(new u(`There can be only one directive named "@${i}".`,{nodes:[t[i],r.name]})):t[i]=r.name,!1}}}function Gi(e){let t=Object.create(null),n=e.getSchema(),r=n?n.getDirectives():Tn;for(let e of r)t[e.name]=!e.isRepeatable;let i=e.getDocument().definitions;for(let e of i)e.kind===b.DIRECTIVE_DEFINITION&&(t[e.name.value]=!e.repeatable);let a=Object.create(null),o=Object.create(null),s=Object.create(null);return{enter(n){if(!(`directives`in n)||!n.directives)return;let r;if(n.kind===b.SCHEMA_DEFINITION||n.kind===b.SCHEMA_EXTENSION)r=a;else if(yr(n)||xr(n)){let e=n.name.value;r=o[e],r===void 0&&(o[e]=r=Object.create(null))}else if(n.kind===b.DIRECTIVE_DEFINITION||n.kind===b.DIRECTIVE_EXTENSION){let e=n.name.value;r=s[e],r===void 0&&(s[e]=r=Object.create(null))}else r=Object.create(null);for(let i of n.directives){let n=i.name.value;t[n]&&(r[n]?e.reportError(new u(`The directive "@${n}" can only be used once at this location.`,{nodes:[r[n],i]})):r[n]=i)}}}}function Ki(e){let t=e.getSchema(),n=t?t.getTypeMap():Object.create(null),r=Object.create(null);return{EnumTypeDefinition:i,EnumTypeExtension:i};function i(t){let i=t.name.value;r[i]||(r[i]=Object.create(null));let a=t.values??[],o=r[i];for(let t of a){let r=t.name.value,a=n[i];Et(a)&&a.getValue(r)?e.reportError(new u(`Enum value "${i}.${r}" already exists in the schema. It cannot also be defined in this type extension.`,{nodes:t.name})):o[r]?e.reportError(new u(`Enum value "${i}.${r}" can only be defined once.`,{nodes:[o[r],t.name]})):o[r]=t.name}return!1}}function qi(e){let t=e.getSchema(),n=t?t.getTypeMap():Object.create(null),r=Object.create(null);return{InputObjectTypeDefinition:i,InputObjectTypeExtension:i,InterfaceTypeDefinition:i,InterfaceTypeExtension:i,ObjectTypeDefinition:i,ObjectTypeExtension:i};function i(t){let i=t.name.value;r[i]||(r[i]=Object.create(null));let a=t.fields??[],o=r[i];for(let t of a){let r=t.name.value;Ji(n[i],r)?e.reportError(new u(`Field "${i}.${r}" already exists in the schema. It cannot also be defined in this type extension.`,{nodes:t.name})):o[r]?e.reportError(new u(`Field "${i}.${r}" can only be defined once.`,{nodes:[o[r],t.name]})):o[r]=t.name}return!1}}function Ji(e,t){return D(e)||O(e)||k(e)?e.getFields()[t]!=null:!1}function Yi(e){let t=Object.create(null);return{OperationDefinition:()=>!1,FragmentDefinition(n){let r=n.name.value;return t[r]?e.reportError(new u(`There can be only one fragment named "${r}".`,{nodes:[t[r],n.name]})):t[r]=n.name,!1}}}function Xi(e){let t=[],n=Object.create(null);return{ObjectValue:{enter(){t.push(n),n=Object.create(null)},leave(){let e=t.pop();e||r(!1),n=e}},ObjectField(t){let r=t.name.value;n[r]?e.reportError(new u(`There can be only one input field named "${r}".`,{nodes:[n[r],t.name]})):n[r]=t.name}}}function Zi(e){let t=Object.create(null);return{OperationDefinition(n){let r=n.name;return r&&(t[r.value]?e.reportError(new u(`There can be only one operation named "${r.value}".`,{nodes:[t[r.value],r]})):t[r.value]=r),!1},FragmentDefinition:()=>!1}}function Qi(e){let t=e.getSchema(),n=Object.create(null),r=t?{query:t.getQueryType(),mutation:t.getMutationType(),subscription:t.getSubscriptionType()}:{};return{SchemaDefinition:i,SchemaExtension:i};function i(t){let i=t.operationTypes??[];for(let t of i){let i=t.operation,a=n[i];r[i]?e.reportError(new u(`Type for ${i} already defined in the schema. It cannot be redefined.`,{nodes:t})):a?e.reportError(new u(`There can be only one ${i} type in schema.`,{nodes:[a,t]})):n[i]=t}return!1}}function $i(e){let t=Object.create(null),n=e.getSchema();return{ScalarTypeDefinition:r,ObjectTypeDefinition:r,InterfaceTypeDefinition:r,UnionTypeDefinition:r,EnumTypeDefinition:r,InputObjectTypeDefinition:r};function r(r){let i=r.name.value;if(n!=null&&n.getType(i)){e.reportError(new u(`Type "${i}" already exists in the schema. It cannot also be defined in this type definition.`,{nodes:r.name}));return}return t[i]?e.reportError(new u(`There can be only one type named "${i}".`,{nodes:[t[i],r.name]})):t[i]=r.name,!1}}function ea(e){return{OperationDefinition(t){let n=t.variableDefinitions??[],r=Vi(n,e=>e.variable.name.value);for(let[t,n]of r)n.length>1&&e.reportError(new u(`There can be only one variable named "$${t}".`,{nodes:n.map(e=>e.variable.name)}))}}}function ta(e){return{ListValue(t){let n=Ft(e.getParentInputType());if(!A(n))return na(e,t),!1},ObjectValue(t){let n=Lt(e.getInputType());if(!k(n))return na(e,t),!1;let r=Je(t.fields,e=>e.name.value);for(let i of Object.values(n.getFields()))if(!r[i.name]&&rn(i)){let r=C(i.type);e.reportError(new u(`Field "${n.name}.${i.name}" of required type "${r}" was not provided.`,{nodes:t}))}n.isOneOf&&ra(e,t,n,r)},ObjectField(t){let n=Lt(e.getParentInputType());if(!e.getInputType()&&k(n)){let r=tt(t.name.value,Object.keys(n.getFields()));e.reportError(new u(`Field "${t.name.value}" is not defined by type "${n.name}".`+Ke(r),{nodes:t}))}},NullValue(t){let n=e.getInputType();j(n)&&e.reportError(new u(`Expected value of type "${C(n)}", found ${w(t)}.`,{nodes:t}))},EnumValue:t=>na(e,t),IntValue:t=>na(e,t),FloatValue:t=>na(e,t),StringValue:t=>na(e,t),BooleanValue:t=>na(e,t)}}function na(e,t){let n=e.getInputType();if(!n)return;let r=Lt(n);if(!kt(r)){let r=C(n);e.reportError(new u(`Expected value of type "${r}", found ${w(t)}.`,{nodes:t}));return}try{if(r.parseLiteral(t,void 0)===void 0){let r=C(n);e.reportError(new u(`Expected value of type "${r}", found ${w(t)}.`,{nodes:t}))}}catch(r){let i=C(n);r instanceof u?e.reportError(r):e.reportError(new u(`Expected value of type "${i}", found ${w(t)}; `+r.message,{nodes:t,originalError:r}))}}function ra(e,t,n,r){let i=Object.keys(r);if(i.length!==1){e.reportError(new u(`OneOf Input Object "${n.name}" must specify exactly one key.`,{nodes:[t]}));return}let a=r[i[0]]?.value;(!a||a.kind===b.NULL)&&e.reportError(new u(`Field "${n.name}.${i[0]}" must be non-null.`,{nodes:[t]}))}function ia(e){return{VariableDefinition(t){let n=pr(e.getSchema(),t.type);if(n!==void 0&&!Dt(n)){let n=t.variable.name.value,r=w(t.type);e.reportError(new u(`Variable "$${n}" cannot be non-input type "${r}".`,{nodes:t.type}))}}}}function aa(e){let t=Object.create(null);return{OperationDefinition:{enter(){t=Object.create(null)},leave(n){let r=e.getRecursiveVariableUsages(n);for(let{node:n,type:i,defaultValue:a,parentType:o}of r){let r=n.name.value,s=t[r];if(s&&i){let t=e.getSchema(),c=pr(t,s.type);if(c&&!oa(t,c,s.defaultValue,i,a)){let t=C(c),a=C(i);e.reportError(new u(`Variable "$${r}" of type "${t}" used in position expecting type "${a}".`,{nodes:[s,n]}))}k(o)&&o.isOneOf&&Nt(c)&&e.reportError(new u(`Variable "$${r}" is of type "${c}" but must be non-nullable to be used for OneOf Input Object "${o}".`,{nodes:[s,n]}))}}}},VariableDefinition(e){t[e.variable.name.value]=e}}}function oa(e,t,n,r,i){if(j(r)&&!j(t)){if(!(n!=null&&n.kind!==b.NULL)&&i===void 0)return!1;let a=r.ofType;return on(e,t,a)}return on(e,t,r)}const sa=Object.freeze([zr]),ca=Object.freeze([Sr,Zi,Ir,Bi,Nr,Er,ia,yi,Cr,Yi,Mr,Hr,ui,Br,ea,Vr,Ur,kr,Gi,Dr,Ui,ta,gi,aa,qr,Xi,...sa]),la=Object.freeze([Lr,Qi,$i,Ki,qi,Hi,Wi,Nr,kr,Gi,fi,Or,Ui,Xi,_i]);var ua=class{constructor(e,t){this._ast=e,this._fragments=void 0,this._fragmentSpreads=new Map,this._recursivelyReferencedFragments=new Map,this._onError=t}get[Symbol.toStringTag](){return`ASTValidationContext`}reportError(e){this._onError(e)}getDocument(){return this._ast}getFragment(e){let t;if(this._fragments)t=this._fragments;else{t=Object.create(null);for(let e of this.getDocument().definitions)e.kind===b.FRAGMENT_DEFINITION&&(t[e.name.value]=e);this._fragments=t}return t[e]}getFragmentSpreads(e){let t=this._fragmentSpreads.get(e);if(!t){t=[];let n=[e],r;for(;r=n.pop();)for(let e of r.selections)e.kind===b.FRAGMENT_SPREAD?t.push(e):e.selectionSet&&n.push(e.selectionSet);this._fragmentSpreads.set(e,t)}return t}getRecursivelyReferencedFragments(e){let t=this._recursivelyReferencedFragments.get(e);if(!t){t=[];let n=Object.create(null),r=[e.selectionSet],i;for(;i=r.pop();)for(let e of this.getFragmentSpreads(i)){let i=e.name.value;if(n[i]!==!0){n[i]=!0;let e=this.getFragment(i);e&&(t.push(e),r.push(e.selectionSet))}}this._recursivelyReferencedFragments.set(e,t)}return t}},da=class extends ua{constructor(e,t,n){super(e,n),this._schema=t}get[Symbol.toStringTag](){return`SDLValidationContext`}getSchema(){return this._schema}},fa=class extends ua{constructor(e,t,n,r){super(t,r),this._schema=e,this._typeInfo=n,this._variableUsages=new Map,this._recursiveVariableUsages=new Map}get[Symbol.toStringTag](){return`ValidationContext`}getSchema(){return this._schema}getVariableUsages(e){let t=this._variableUsages.get(e);if(!t){let n=[],r=new mr(this._schema);ut(e,gr(r,{VariableDefinition:()=>!1,Variable(e){n.push({node:e,type:r.getInputType(),defaultValue:r.getDefaultValue(),parentType:r.getParentInputType()})}})),t=n,this._variableUsages.set(e,t)}return t}getRecursiveVariableUsages(e){let t=this._recursiveVariableUsages.get(e);if(!t){t=this.getVariableUsages(e);for(let n of this.getRecursivelyReferencedFragments(e))t=t.concat(this.getVariableUsages(n));this._recursiveVariableUsages.set(e,t)}return t}getType(){return this._typeInfo.getType()}getParentType(){return this._typeInfo.getParentType()}getInputType(){return this._typeInfo.getInputType()}getParentInputType(){return this._typeInfo.getParentInputType()}getFieldDef(){return this._typeInfo.getFieldDef()}getDirective(){return this._typeInfo.getDirective()}getArgument(){return this._typeInfo.getArgument()}getEnumValue(){return this._typeInfo.getEnumValue()}},pa=Xe(h,e=>e.filter(e=>e!==`description`));function ma(e,n,r=ca,i,a=new mr(e)){let o=i?.maxErrors??100;n||t(!1,`Must provide document.`),Jn(e);let s=Object.freeze({}),c=[],l=new fa(e,n,a,e=>{if(c.length>=o)throw c.push(new u(`Too many validation errors, error limit reached. Validation aborted.`)),s;c.push(e)}),d=dt(r.map(e=>e(l)));try{ut(n,gr(a,d),pa)}catch(e){if(e!==s)throw e}return c}function ha(e,t,n=la){let r=[],i=new da(e,t,e=>{r.push(e)}),a=n.map(e=>e(i));return ut(e,dt(a)),r}function ga(e){let t=ha(e);if(t.length!==0)throw Error(t.map(e=>e.message).join(`
`))}function _a(e,t,n){let i=[],a=Object.create(null),o=Object.create(null),s=[],c,l=[];for(let e of t.definitions)if(e.kind===b.SCHEMA_DEFINITION)c=e;else if(e.kind===b.SCHEMA_EXTENSION)l.push(e);else if(yr(e))i.push(e);else if(xr(e)){let t=e.name.value,n=a[t];a[t]=n?n.concat([e]):[e]}else if(e.kind===b.DIRECTIVE_DEFINITION)s.push(e);else if(e.kind===b.DIRECTIVE_EXTENSION){let t=e.name.value,n=o[t];o[t]=n?n.concat([e]):[e]}if(Object.keys(a).length===0&&i.length===0&&Object.keys(o).length===0&&s.length===0&&l.length===0&&c==null)return e;let u=Object.create(null);for(let t of e.types)u[t.name]=_(t);for(let e of i){let t=e.name.value;u[t]=va[t]??S(e)}let d=Object.create(null);for(let t of e.directives)d[t.name]=se(t);let f={query:e.query&&h(e.query),mutation:e.mutation&&h(e.mutation),subscription:e.subscription&&h(e.subscription),...c&&oe([c]),...oe(l)},p=Object.values(d);return{description:c?.description?.value,...f,types:Object.values(u),directives:[...p.map(g),...s.map(le)],extensions:Object.create(null),astNode:c??e.astNode,extensionASTNodes:e.extensionASTNodes.concat(l),assumeValid:n?.assumeValid??!1};function m(e){return A(e)?new M(m(e.ofType)):j(e)?new N(m(e.ofType)):h(e)}function h(e){return u[e.name]}function g(e){let t=e.toConfig();return new vn({...t,args:Xe(t.args,ae)})}function _(e){if(Hn(e)||hn(e))return e;if(St(e))return ee(e);if(D(e))return te(e);if(O(e))return ne(e);if(Tt(e))return re(e);if(Et(e))return y(e);if(k(e))return v(e);r(!1,`Unexpected type: `+C(e))}function v(e){let t=e.toConfig(),n=a[t.name]??[];return new tn({...t,fields:()=>({...Xe(t.fields,e=>({...e,type:m(e.type)})),...fe(n)}),extensionASTNodes:t.extensionASTNodes.concat(n)})}function y(e){let t=e.toConfig(),n=a[e.name]??[];return new Qt({...t,values:{...t.values,...pe(n)},extensionASTNodes:t.extensionASTNodes.concat(n)})}function ee(e){let t=e.toConfig(),n=a[t.name]??[],r=t.specifiedByURL;for(let e of n)r=ba(e)??r;return new Bt({...t,specifiedByURL:r,extensionASTNodes:t.extensionASTNodes.concat(n)})}function te(e){let t=e.toConfig(),n=a[t.name]??[];return new Vt({...t,interfaces:()=>[...e.getInterfaces().map(h),...me(n)],fields:()=>({...Xe(t.fields,ie),...ue(n)}),extensionASTNodes:t.extensionASTNodes.concat(n)})}function ne(e){let t=e.toConfig(),n=a[t.name]??[];return new Yt({...t,interfaces:()=>[...e.getInterfaces().map(h),...me(n)],fields:()=>({...Xe(t.fields,ie),...ue(n)}),extensionASTNodes:t.extensionASTNodes.concat(n)})}function re(e){let t=e.toConfig(),n=a[t.name]??[];return new Xt({...t,types:()=>[...e.getTypes().map(h),...he(n)],extensionASTNodes:t.extensionASTNodes.concat(n)})}function ie(e){return{...e,type:m(e.type),args:e.args&&Xe(e.args,ae)}}function ae(e){return{...e,type:m(e.type)}}function oe(e){let t={};for(let n of e){let e=n.operationTypes??[];for(let n of e)t[n.operation]=ce(n.type)}return t}function se(e){let t=e.toConfig(),n=o[t.name]??[],r=t.deprecationReason??n.map(e=>ya(e)).find(e=>e!=null);return new vn({...t,deprecationReason:r,extensionASTNodes:t.extensionASTNodes.concat(n)})}function ce(e){let t=e.name.value,n=va[t]??u[t];if(n===void 0)throw Error(`Unknown type: "${t}".`);return n}function x(e){return e.kind===b.LIST_TYPE?new M(x(e.type)):e.kind===b.NON_NULL_TYPE?new N(x(e.type)):ce(e)}function le(e){let t=o[e.name.value]??[],n=ya(e)??t.map(e=>ya(e)).find(e=>e!=null);return new vn({name:e.name.value,description:e.description?.value,locations:e.locations.map(({value:e})=>e),isRepeatable:e.repeatable,args:de(e.arguments),deprecationReason:n,astNode:e,extensionASTNodes:t})}function ue(e){let t=Object.create(null);for(let n of e){let e=n.fields??[];for(let n of e)t[n.name.value]={type:x(n.type),description:n.description?.value,args:de(n.arguments),deprecationReason:ya(n),astNode:n}}return t}function de(e){let t=e??[],n=Object.create(null);for(let e of t){let t=x(e.type);n[e.name.value]={type:t,description:e.description?.value,defaultValue:Ei(e.defaultValue,t),deprecationReason:ya(e),astNode:e}}return n}function fe(e){let t=Object.create(null);for(let n of e){let e=n.fields??[];for(let n of e){let e=x(n.type);t[n.name.value]={type:e,description:n.description?.value,defaultValue:Ei(n.defaultValue,e),deprecationReason:ya(n),astNode:n}}}return t}function pe(e){let t=Object.create(null);for(let n of e){let e=n.values??[];for(let n of e)t[n.name.value]={description:n.description?.value,deprecationReason:ya(n),astNode:n}}return t}function me(e){return e.flatMap(e=>e.interfaces?.map(ce)??[])}function he(e){return e.flatMap(e=>e.types?.map(ce)??[])}function S(e){let t=e.name.value,n=a[t]??[];switch(e.kind){case b.OBJECT_TYPE_DEFINITION:{let r=[e,...n];return new Vt({name:t,description:e.description?.value,interfaces:()=>me(r),fields:()=>ue(r),astNode:e,extensionASTNodes:n})}case b.INTERFACE_TYPE_DEFINITION:{let r=[e,...n];return new Yt({name:t,description:e.description?.value,interfaces:()=>me(r),fields:()=>ue(r),astNode:e,extensionASTNodes:n})}case b.ENUM_TYPE_DEFINITION:{let r=[e,...n];return new Qt({name:t,description:e.description?.value,values:pe(r),astNode:e,extensionASTNodes:n})}case b.UNION_TYPE_DEFINITION:{let r=[e,...n];return new Xt({name:t,description:e.description?.value,types:()=>he(r),astNode:e,extensionASTNodes:n})}case b.SCALAR_TYPE_DEFINITION:return new Bt({name:t,description:e.description?.value,specifiedByURL:ba(e),astNode:e,extensionASTNodes:n});case b.INPUT_OBJECT_TYPE_DEFINITION:{let r=[e,...n];return new tn({name:t,description:e.description?.value,fields:()=>fe(r),astNode:e,extensionASTNodes:n,isOneOf:xa(e)})}}}}var va=Je([...mn,...Vn],e=>e.name);function ya(e){return Mi(Sn,e)?.reason}function ba(e){return Mi(Cn,e)?.url}function xa(e){return!!Mi(wn,e)}function Sa(e,n){e!=null&&e.kind===b.DOCUMENT||t(!1,`Must provide valid Document AST.`),n?.assumeValid!==!0&&n?.assumeValidSDL!==!0&&ga(e);let r=_a({description:void 0,types:[],directives:[],extensions:Object.create(null),extensionASTNodes:[],assumeValid:!1},e,n);if(r.astNode==null)for(let e of r.types)switch(e.name){case`Query`:r.query=e;break;case`Mutation`:r.mutation=e;break;case`Subscription`:r.subscription=e;break}let i=[...r.directives,...Tn.filter(e=>r.directives.every(t=>t.name!==e.name))];return new Gn({...r,directives:i})}function Ca(e,t){let n=Be(e,{noLocation:t?.noLocation,allowLegacyFragmentVariables:t?.allowLegacyFragmentVariables,experimentalDirectivesOnDirectiveDefinitions:t?.experimentalDirectivesOnDirectiveDefinitions});return Sa(n,{assumeValidSDL:t?.assumeValidSDL,assumeValid:t?.assumeValid})}var wa;(function(e){function t(e){return typeof e==`string`}e.is=t})(wa||={});var Ta;(function(e){function t(e){return typeof e==`string`}e.is=t})(Ta||={});var Ea;(function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function t(t){return typeof t==`number`&&e.MIN_VALUE<=t&&t<=e.MAX_VALUE}e.is=t})(Ea||={});var Da;(function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function t(t){return typeof t==`number`&&e.MIN_VALUE<=t&&t<=e.MAX_VALUE}e.is=t})(Da||={});var Oa;(function(e){function t(e,t){return e===Number.MAX_VALUE&&(e=Da.MAX_VALUE),t===Number.MAX_VALUE&&(t=Da.MAX_VALUE),{line:e,character:t}}e.create=t;function n(e){let t=e;return L.objectLiteral(t)&&L.uinteger(t.line)&&L.uinteger(t.character)}e.is=n})(Oa||={});var I;(function(e){function t(e,t,n,r){if(L.uinteger(e)&&L.uinteger(t)&&L.uinteger(n)&&L.uinteger(r))return{start:Oa.create(e,t),end:Oa.create(n,r)};if(Oa.is(e)&&Oa.is(t))return{start:e,end:t};throw Error(`Range#create called with invalid arguments[${e}, ${t}, ${n}, ${r}]`)}e.create=t;function n(e){let t=e;return L.objectLiteral(t)&&Oa.is(t.start)&&Oa.is(t.end)}e.is=n})(I||={});var ka;(function(e){function t(e,t){return{uri:e,range:t}}e.create=t;function n(e){let t=e;return L.objectLiteral(t)&&I.is(t.range)&&(L.string(t.uri)||L.undefined(t.uri))}e.is=n})(ka||={});var Aa;(function(e){function t(e,t,n,r){return{targetUri:e,targetRange:t,targetSelectionRange:n,originSelectionRange:r}}e.create=t;function n(e){let t=e;return L.objectLiteral(t)&&I.is(t.targetRange)&&L.string(t.targetUri)&&I.is(t.targetSelectionRange)&&(I.is(t.originSelectionRange)||L.undefined(t.originSelectionRange))}e.is=n})(Aa||={});var ja;(function(e){function t(e,t,n,r){return{red:e,green:t,blue:n,alpha:r}}e.create=t;function n(e){let t=e;return L.objectLiteral(t)&&L.numberRange(t.red,0,1)&&L.numberRange(t.green,0,1)&&L.numberRange(t.blue,0,1)&&L.numberRange(t.alpha,0,1)}e.is=n})(ja||={});var Ma;(function(e){function t(e,t){return{range:e,color:t}}e.create=t;function n(e){let t=e;return L.objectLiteral(t)&&I.is(t.range)&&ja.is(t.color)}e.is=n})(Ma||={});var Na;(function(e){function t(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}}e.create=t;function n(e){let t=e;return L.objectLiteral(t)&&L.string(t.label)&&(L.undefined(t.textEdit)||Ha.is(t))&&(L.undefined(t.additionalTextEdits)||L.typedArray(t.additionalTextEdits,Ha.is))}e.is=n})(Na||={});var Pa;(function(e){e.Comment=`comment`,e.Imports=`imports`,e.Region=`region`})(Pa||={});var Fa;(function(e){function t(e,t,n,r,i,a){let o={startLine:e,endLine:t};return L.defined(n)&&(o.startCharacter=n),L.defined(r)&&(o.endCharacter=r),L.defined(i)&&(o.kind=i),L.defined(a)&&(o.collapsedText=a),o}e.create=t;function n(e){let t=e;return L.objectLiteral(t)&&L.uinteger(t.startLine)&&L.uinteger(t.startLine)&&(L.undefined(t.startCharacter)||L.uinteger(t.startCharacter))&&(L.undefined(t.endCharacter)||L.uinteger(t.endCharacter))&&(L.undefined(t.kind)||L.string(t.kind))}e.is=n})(Fa||={});var Ia;(function(e){function t(e,t){return{location:e,message:t}}e.create=t;function n(e){let t=e;return L.defined(t)&&ka.is(t.location)&&L.string(t.message)}e.is=n})(Ia||={});var La;(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4})(La||={});var Ra;(function(e){e.Unnecessary=1,e.Deprecated=2})(Ra||={});var za;(function(e){function t(e){let t=e;return L.objectLiteral(t)&&L.string(t.href)}e.is=t})(za||={});var Ba;(function(e){function t(e,t,n,r,i,a){let o={range:e,message:t};return L.defined(n)&&(o.severity=n),L.defined(r)&&(o.code=r),L.defined(i)&&(o.source=i),L.defined(a)&&(o.relatedInformation=a),o}e.create=t;function n(e){let t=e;return L.defined(t)&&I.is(t.range)&&L.string(t.message)&&(L.number(t.severity)||L.undefined(t.severity))&&(L.integer(t.code)||L.string(t.code)||L.undefined(t.code))&&(L.undefined(t.codeDescription)||L.string(t.codeDescription?.href))&&(L.string(t.source)||L.undefined(t.source))&&(L.undefined(t.relatedInformation)||L.typedArray(t.relatedInformation,Ia.is))}e.is=n})(Ba||={});var Va;(function(e){function t(e,t,...n){let r={title:e,command:t};return L.defined(n)&&n.length>0&&(r.arguments=n),r}e.create=t;function n(e){let t=e;return L.defined(t)&&L.string(t.title)&&L.string(t.command)}e.is=n})(Va||={});var Ha;(function(e){function t(e,t){return{range:e,newText:t}}e.replace=t;function n(e,t){return{range:{start:e,end:e},newText:t}}e.insert=n;function r(e){return{range:e,newText:``}}e.del=r;function i(e){let t=e;return L.objectLiteral(t)&&L.string(t.newText)&&I.is(t.range)}e.is=i})(Ha||={});var Ua;(function(e){function t(e,t,n){let r={label:e};return t!==void 0&&(r.needsConfirmation=t),n!==void 0&&(r.description=n),r}e.create=t;function n(e){let t=e;return L.objectLiteral(t)&&L.string(t.label)&&(L.boolean(t.needsConfirmation)||t.needsConfirmation===void 0)&&(L.string(t.description)||t.description===void 0)}e.is=n})(Ua||={});var Wa;(function(e){function t(e){let t=e;return L.string(t)}e.is=t})(Wa||={});var Ga;(function(e){function t(e,t,n){return{range:e,newText:t,annotationId:n}}e.replace=t;function n(e,t,n){return{range:{start:e,end:e},newText:t,annotationId:n}}e.insert=n;function r(e,t){return{range:e,newText:``,annotationId:t}}e.del=r;function i(e){let t=e;return Ha.is(t)&&(Ua.is(t.annotationId)||Wa.is(t.annotationId))}e.is=i})(Ga||={});var Ka;(function(e){function t(e,t){return{textDocument:e,edits:t}}e.create=t;function n(e){let t=e;return L.defined(t)&&$a.is(t.textDocument)&&Array.isArray(t.edits)}e.is=n})(Ka||={});var qa;(function(e){function t(e,t,n){let r={kind:`create`,uri:e};return t!==void 0&&(t.overwrite!==void 0||t.ignoreIfExists!==void 0)&&(r.options=t),n!==void 0&&(r.annotationId=n),r}e.create=t;function n(e){let t=e;return t&&t.kind===`create`&&L.string(t.uri)&&(t.options===void 0||(t.options.overwrite===void 0||L.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||L.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||Wa.is(t.annotationId))}e.is=n})(qa||={});var Ja;(function(e){function t(e,t,n,r){let i={kind:`rename`,oldUri:e,newUri:t};return n!==void 0&&(n.overwrite!==void 0||n.ignoreIfExists!==void 0)&&(i.options=n),r!==void 0&&(i.annotationId=r),i}e.create=t;function n(e){let t=e;return t&&t.kind===`rename`&&L.string(t.oldUri)&&L.string(t.newUri)&&(t.options===void 0||(t.options.overwrite===void 0||L.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||L.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||Wa.is(t.annotationId))}e.is=n})(Ja||={});var Ya;(function(e){function t(e,t,n){let r={kind:`delete`,uri:e};return t!==void 0&&(t.recursive!==void 0||t.ignoreIfNotExists!==void 0)&&(r.options=t),n!==void 0&&(r.annotationId=n),r}e.create=t;function n(e){let t=e;return t&&t.kind===`delete`&&L.string(t.uri)&&(t.options===void 0||(t.options.recursive===void 0||L.boolean(t.options.recursive))&&(t.options.ignoreIfNotExists===void 0||L.boolean(t.options.ignoreIfNotExists)))&&(t.annotationId===void 0||Wa.is(t.annotationId))}e.is=n})(Ya||={});var Xa;(function(e){function t(e){let t=e;return t&&(t.changes!==void 0||t.documentChanges!==void 0)&&(t.documentChanges===void 0||t.documentChanges.every(e=>L.string(e.kind)?qa.is(e)||Ja.is(e)||Ya.is(e):Ka.is(e)))}e.is=t})(Xa||={});var Za;(function(e){function t(e){return{uri:e}}e.create=t;function n(e){let t=e;return L.defined(t)&&L.string(t.uri)}e.is=n})(Za||={});var Qa;(function(e){function t(e,t){return{uri:e,version:t}}e.create=t;function n(e){let t=e;return L.defined(t)&&L.string(t.uri)&&L.integer(t.version)}e.is=n})(Qa||={});var $a;(function(e){function t(e,t){return{uri:e,version:t}}e.create=t;function n(e){let t=e;return L.defined(t)&&L.string(t.uri)&&(t.version===null||L.integer(t.version))}e.is=n})($a||={});var eo;(function(e){function t(e,t,n,r){return{uri:e,languageId:t,version:n,text:r}}e.create=t;function n(e){let t=e;return L.defined(t)&&L.string(t.uri)&&L.string(t.languageId)&&L.integer(t.version)&&L.string(t.text)}e.is=n})(eo||={});var to;(function(e){e.PlainText=`plaintext`,e.Markdown=`markdown`;function t(t){let n=t;return n===e.PlainText||n===e.Markdown}e.is=t})(to||={});var no;(function(e){function t(e){let t=e;return L.objectLiteral(e)&&to.is(t.kind)&&L.string(t.value)}e.is=t})(no||={});var ro;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(ro||={});var io;(function(e){e.PlainText=1,e.Snippet=2})(io||={});var ao;(function(e){e.Deprecated=1})(ao||={});var oo;(function(e){function t(e,t,n){return{newText:e,insert:t,replace:n}}e.create=t;function n(e){let t=e;return t&&L.string(t.newText)&&I.is(t.insert)&&I.is(t.replace)}e.is=n})(oo||={});var so;(function(e){e.asIs=1,e.adjustIndentation=2})(so||={});var co;(function(e){function t(e){let t=e;return t&&(L.string(t.detail)||t.detail===void 0)&&(L.string(t.description)||t.description===void 0)}e.is=t})(co||={});var lo;(function(e){function t(e){return{label:e}}e.create=t})(lo||={});var uo;(function(e){function t(e,t){return{items:e||[],isIncomplete:!!t}}e.create=t})(uo||={});var fo;(function(e){function t(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,`\\$&`)}e.fromPlainText=t;function n(e){let t=e;return L.string(t)||L.objectLiteral(t)&&L.string(t.language)&&L.string(t.value)}e.is=n})(fo||={});var po;(function(e){function t(e){let t=e;return!!t&&L.objectLiteral(t)&&(no.is(t.contents)||fo.is(t.contents)||L.typedArray(t.contents,fo.is))&&(e.range===void 0||I.is(e.range))}e.is=t})(po||={});var mo;(function(e){function t(e,t){return t?{label:e,documentation:t}:{label:e}}e.create=t})(mo||={});var ho;(function(e){function t(e,t,...n){let r={label:e};return L.defined(t)&&(r.documentation=t),L.defined(n)?r.parameters=n:r.parameters=[],r}e.create=t})(ho||={});var go;(function(e){e.Text=1,e.Read=2,e.Write=3})(go||={});var _o;(function(e){function t(e,t){let n={range:e};return L.number(t)&&(n.kind=t),n}e.create=t})(_o||={});var vo;(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26})(vo||={});var yo;(function(e){e.Deprecated=1})(yo||={});var bo;(function(e){function t(e,t,n,r,i){let a={name:e,kind:t,location:{uri:r,range:n}};return i&&(a.containerName=i),a}e.create=t})(bo||={});var xo;(function(e){function t(e,t,n,r){return r===void 0?{name:e,kind:t,location:{uri:n}}:{name:e,kind:t,location:{uri:n,range:r}}}e.create=t})(xo||={});var So;(function(e){function t(e,t,n,r,i,a){let o={name:e,detail:t,kind:n,range:r,selectionRange:i};return a!==void 0&&(o.children=a),o}e.create=t;function n(e){let t=e;return t&&L.string(t.name)&&L.number(t.kind)&&I.is(t.range)&&I.is(t.selectionRange)&&(t.detail===void 0||L.string(t.detail))&&(t.deprecated===void 0||L.boolean(t.deprecated))&&(t.children===void 0||Array.isArray(t.children))&&(t.tags===void 0||Array.isArray(t.tags))}e.is=n})(So||={});var Co;(function(e){e.Empty=``,e.QuickFix=`quickfix`,e.Refactor=`refactor`,e.RefactorExtract=`refactor.extract`,e.RefactorInline=`refactor.inline`,e.RefactorRewrite=`refactor.rewrite`,e.Source=`source`,e.SourceOrganizeImports=`source.organizeImports`,e.SourceFixAll=`source.fixAll`})(Co||={});var wo;(function(e){e.Invoked=1,e.Automatic=2})(wo||={});var To;(function(e){function t(e,t,n){let r={diagnostics:e};return t!=null&&(r.only=t),n!=null&&(r.triggerKind=n),r}e.create=t;function n(e){let t=e;return L.defined(t)&&L.typedArray(t.diagnostics,Ba.is)&&(t.only===void 0||L.typedArray(t.only,L.string))&&(t.triggerKind===void 0||t.triggerKind===wo.Invoked||t.triggerKind===wo.Automatic)}e.is=n})(To||={});var Eo;(function(e){function t(e,t,n){let r={title:e},i=!0;return typeof t==`string`?(i=!1,r.kind=t):Va.is(t)?r.command=t:r.edit=t,i&&n!==void 0&&(r.kind=n),r}e.create=t;function n(e){let t=e;return t&&L.string(t.title)&&(t.diagnostics===void 0||L.typedArray(t.diagnostics,Ba.is))&&(t.kind===void 0||L.string(t.kind))&&(t.edit!==void 0||t.command!==void 0)&&(t.command===void 0||Va.is(t.command))&&(t.isPreferred===void 0||L.boolean(t.isPreferred))&&(t.edit===void 0||Xa.is(t.edit))}e.is=n})(Eo||={});var Do;(function(e){function t(e,t){let n={range:e};return L.defined(t)&&(n.data=t),n}e.create=t;function n(e){let t=e;return L.defined(t)&&I.is(t.range)&&(L.undefined(t.command)||Va.is(t.command))}e.is=n})(Do||={});var Oo;(function(e){function t(e,t){return{tabSize:e,insertSpaces:t}}e.create=t;function n(e){let t=e;return L.defined(t)&&L.uinteger(t.tabSize)&&L.boolean(t.insertSpaces)}e.is=n})(Oo||={});var ko;(function(e){function t(e,t,n){return{range:e,target:t,data:n}}e.create=t;function n(e){let t=e;return L.defined(t)&&I.is(t.range)&&(L.undefined(t.target)||L.string(t.target))}e.is=n})(ko||={});var Ao;(function(e){function t(e,t){return{range:e,parent:t}}e.create=t;function n(t){let n=t;return L.objectLiteral(n)&&I.is(n.range)&&(n.parent===void 0||e.is(n.parent))}e.is=n})(Ao||={});var jo;(function(e){e.namespace=`namespace`,e.type=`type`,e.class=`class`,e.enum=`enum`,e.interface=`interface`,e.struct=`struct`,e.typeParameter=`typeParameter`,e.parameter=`parameter`,e.variable=`variable`,e.property=`property`,e.enumMember=`enumMember`,e.event=`event`,e.function=`function`,e.method=`method`,e.macro=`macro`,e.keyword=`keyword`,e.modifier=`modifier`,e.comment=`comment`,e.string=`string`,e.number=`number`,e.regexp=`regexp`,e.operator=`operator`,e.decorator=`decorator`})(jo||={});var Mo;(function(e){e.declaration=`declaration`,e.definition=`definition`,e.readonly=`readonly`,e.static=`static`,e.deprecated=`deprecated`,e.abstract=`abstract`,e.async=`async`,e.modification=`modification`,e.documentation=`documentation`,e.defaultLibrary=`defaultLibrary`})(Mo||={});var No;(function(e){function t(e){let t=e;return L.objectLiteral(t)&&(t.resultId===void 0||typeof t.resultId==`string`)&&Array.isArray(t.data)&&(t.data.length===0||typeof t.data[0]==`number`)}e.is=t})(No||={});var Po;(function(e){function t(e,t){return{range:e,text:t}}e.create=t;function n(e){let t=e;return t!=null&&I.is(t.range)&&L.string(t.text)}e.is=n})(Po||={});var Fo;(function(e){function t(e,t,n){return{range:e,variableName:t,caseSensitiveLookup:n}}e.create=t;function n(e){let t=e;return t!=null&&I.is(t.range)&&L.boolean(t.caseSensitiveLookup)&&(L.string(t.variableName)||t.variableName===void 0)}e.is=n})(Fo||={});var Io;(function(e){function t(e,t){return{range:e,expression:t}}e.create=t;function n(e){let t=e;return t!=null&&I.is(t.range)&&(L.string(t.expression)||t.expression===void 0)}e.is=n})(Io||={});var Lo;(function(e){function t(e,t){return{frameId:e,stoppedLocation:t}}e.create=t;function n(e){let t=e;return L.defined(t)&&I.is(e.stoppedLocation)}e.is=n})(Lo||={});var Ro;(function(e){e.Type=1,e.Parameter=2;function t(e){return e===1||e===2}e.is=t})(Ro||={});var zo;(function(e){function t(e){return{value:e}}e.create=t;function n(e){let t=e;return L.objectLiteral(t)&&(t.tooltip===void 0||L.string(t.tooltip)||no.is(t.tooltip))&&(t.location===void 0||ka.is(t.location))&&(t.command===void 0||Va.is(t.command))}e.is=n})(zo||={});var Bo;(function(e){function t(e,t,n){let r={position:e,label:t};return n!==void 0&&(r.kind=n),r}e.create=t;function n(e){let t=e;return L.objectLiteral(t)&&Oa.is(t.position)&&(L.string(t.label)||L.typedArray(t.label,zo.is))&&(t.kind===void 0||Ro.is(t.kind))&&t.textEdits===void 0||L.typedArray(t.textEdits,Ha.is)&&(t.tooltip===void 0||L.string(t.tooltip)||no.is(t.tooltip))&&(t.paddingLeft===void 0||L.boolean(t.paddingLeft))&&(t.paddingRight===void 0||L.boolean(t.paddingRight))}e.is=n})(Bo||={});var Vo;(function(e){function t(e){return{kind:`snippet`,value:e}}e.createSnippet=t})(Vo||={});var Ho;(function(e){function t(e,t,n,r){return{insertText:e,filterText:t,range:n,command:r}}e.create=t})(Ho||={});var Uo;(function(e){function t(e){return{items:e}}e.create=t})(Uo||={});var Wo;(function(e){e.Invoked=0,e.Automatic=1})(Wo||={});var Go;(function(e){function t(e,t){return{range:e,text:t}}e.create=t})(Go||={});var Ko;(function(e){function t(e,t){return{triggerKind:e,selectedCompletionInfo:t}}e.create=t})(Ko||={});var qo;(function(e){function t(e){let t=e;return L.objectLiteral(t)&&Ta.is(t.uri)&&L.string(t.name)}e.is=t})(qo||={});var Jo;(function(e){function t(e,t,n,r){return new Yo(e,t,n,r)}e.create=t;function n(e){let t=e;return!!(L.defined(t)&&L.string(t.uri)&&(L.undefined(t.languageId)||L.string(t.languageId))&&L.uinteger(t.lineCount)&&L.func(t.getText)&&L.func(t.positionAt)&&L.func(t.offsetAt))}e.is=n;function r(e,t){let n=e.getText(),r=i(t,(e,t)=>{let n=e.range.start.line-t.range.start.line;return n===0?e.range.start.character-t.range.start.character:n}),a=n.length;for(let t=r.length-1;t>=0;t--){let i=r[t],o=e.offsetAt(i.range.start),s=e.offsetAt(i.range.end);if(s<=a)n=n.substring(0,o)+i.newText+n.substring(s,n.length);else throw Error(`Overlapping edit`);a=o}return n}e.applyEdits=r;function i(e,t){if(e.length<=1)return e;let n=e.length/2|0,r=e.slice(0,n),a=e.slice(n);i(r,t),i(a,t);let o=0,s=0,c=0;for(;o<r.length&&s<a.length;)t(r[o],a[s])<=0?e[c++]=r[o++]:e[c++]=a[s++];for(;o<r.length;)e[c++]=r[o++];for(;s<a.length;)e[c++]=a[s++];return e}})(Jo||={});var Yo=class{constructor(e,t,n,r){this._uri=e,this._languageId=t,this._version=n,this._content=r,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content}update(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let e=[],t=this._content,n=!0;for(let r=0;r<t.length;r++){n&&=(e.push(r),!1);let i=t.charAt(r);n=i===`\r`||i===`
`,i===`\r`&&r+1<t.length&&t.charAt(r+1)===`
`&&r++}n&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),n=0,r=t.length;if(r===0)return Oa.create(0,e);for(;n<r;){let i=Math.floor((n+r)/2);t[i]>e?r=i:n=i+1}let i=n-1;return Oa.create(i,e-t[i])}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let n=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(n+e.character,r),n)}get lineCount(){return this.getLineOffsets().length}},L;(function(e){let t=Object.prototype.toString;function n(e){return e!==void 0}e.defined=n;function r(e){return e===void 0}e.undefined=r;function i(e){return e===!0||e===!1}e.boolean=i;function a(e){return t.call(e)===`[object String]`}e.string=a;function o(e){return t.call(e)===`[object Number]`}e.number=o;function s(e,n,r){return t.call(e)===`[object Number]`&&n<=e&&e<=r}e.numberRange=s;function c(e){return t.call(e)===`[object Number]`&&-2147483648<=e&&e<=2147483647}e.integer=c;function l(e){return t.call(e)===`[object Number]`&&0<=e&&e<=2147483647}e.uinteger=l;function u(e){return t.call(e)===`[object Function]`}e.func=u;function d(e){return typeof e==`object`&&!!e}e.objectLiteral=d;function f(e,t){return Array.isArray(e)&&e.every(t)}e.typedArray=f})(L||={});var Xo=class{constructor(e){this._start=0,this._pos=0,this.getStartOfToken=()=>this._start,this.getCurrentPosition=()=>this._pos,this.eol=()=>this._sourceText.length===this._pos,this.sol=()=>this._pos===0,this.peek=()=>this._sourceText.charAt(this._pos)||null,this.next=()=>{let e=this._sourceText.charAt(this._pos);return this._pos++,e},this.eat=e=>{if(this._testNextCharacter(e))return this._start=this._pos,this._pos++,this._sourceText.charAt(this._pos-1)},this.eatWhile=e=>{let t=this._testNextCharacter(e),n=!1;for(t&&(n=t,this._start=this._pos);t;)this._pos++,t=this._testNextCharacter(e),n=!0;return n},this.eatSpace=()=>this.eatWhile(/[\s\u00a0]/),this.skipToEnd=()=>{this._pos=this._sourceText.length},this.skipTo=e=>{this._pos=e},this.match=(e,t=!0,n=!1)=>{let r=null,i=null;return typeof e==`string`?(i=new RegExp(e,n?`i`:`g`).test(this._sourceText.slice(this._pos,this._pos+e.length)),r=e):e instanceof RegExp&&(i=this._sourceText.slice(this._pos).match(e),r=i?.[0]),i!=null&&(typeof e==`string`||i instanceof Array&&this._sourceText.startsWith(i[0],this._pos))?(t&&(this._start=this._pos,r&&r.length&&(this._pos+=r.length)),i):!1},this.backUp=e=>{this._pos-=e},this.column=()=>this._pos,this.indentation=()=>{let e=this._sourceText.match(/\s*/),t=0;if(e&&e.length!==0){let n=e[0],r=0;for(;n.length>r;)n.charCodeAt(r)===9?t+=2:t++,r++}return t},this.current=()=>this._sourceText.slice(this._start,this._pos),this._sourceText=e}_testNextCharacter(e){let t=this._sourceText.charAt(this._pos),n=!1;return n=typeof e==`string`?t===e:e instanceof RegExp?e.test(t):e(t),n}};function R(e){return{ofRule:e}}function z(e,t){return{ofRule:e,isList:!0,separator:t}}function Zo(e,t){let n=e.match;return e.match=e=>{let r=!1;return n&&(r=n(e)),r&&t.every(t=>t.match&&!t.match(e))},e}function Qo(e,t){return{style:t,match:t=>t.kind===e}}function B(e,t){return{style:t||`punctuation`,match:t=>t.kind===`Punctuation`&&t.value===e}}const $o=e=>e===` `||e===` `||e===`,`||e===`
`||e===`\r`||e===``||e===`\xA0`,es={Name:/^[_A-Za-z][_0-9A-Za-z]*/,Punctuation:/^(?:!|\$|\(|\)|\.\.\.|:|=|&|@|\[|]|\{|\||\})/,Number:/^-?(?:0|(?:[1-9][0-9]*))(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?/,String:/^(?:"""(?:\\"""|[^"]|"[^"]|""[^"])*(?:""")?|"(?:[^"\\]|\\(?:"|\/|\\|b|f|n|r|t|u[0-9a-fA-F]{4}))*"?)/,Comment:/^#.*/},ts={Document:[z(`Definition`)],Definition(e){switch(e.value){case`{`:return`ShortQuery`;case`query`:return`Query`;case`mutation`:return`Mutation`;case`subscription`:return`Subscription`;case`fragment`:return b.FRAGMENT_DEFINITION;case`schema`:return`SchemaDef`;case`scalar`:return`ScalarDef`;case`type`:return`ObjectTypeDef`;case`interface`:return`InterfaceDef`;case`union`:return`UnionDef`;case`enum`:return`EnumDef`;case`input`:return`InputDef`;case`extend`:return`ExtendDef`;case`directive`:return`DirectiveDef`}},ShortQuery:[`SelectionSet`],Query:[V(`query`),R(H(`def`)),R(`VariableDefinitions`),z(`Directive`),`SelectionSet`],Mutation:[V(`mutation`),R(H(`def`)),R(`VariableDefinitions`),z(`Directive`),`SelectionSet`],Subscription:[V(`subscription`),R(H(`def`)),R(`VariableDefinitions`),z(`Directive`),`SelectionSet`],VariableDefinitions:[B(`(`),z(`VariableDefinition`),B(`)`)],VariableDefinition:[`Variable`,B(`:`),`Type`,R(`DefaultValue`)],Variable:[B(`$`,`variable`),H(`variable`)],DefaultValue:[B(`=`),`Value`],SelectionSet:[B(`{`),z(`Selection`),B(`}`)],Selection(e,t){return e.value===`...`?t.match(/[\s\u00a0,]*(on\b|@|{)/,!1)?`InlineFragment`:`FragmentSpread`:t.match(/[\s\u00a0,]*:/,!1)?`AliasedField`:`Field`},AliasedField:[H(`property`),B(`:`),H(`qualifier`),R(`Arguments`),z(`Directive`),R(`SelectionSet`)],Field:[H(`property`),R(`Arguments`),z(`Directive`),R(`SelectionSet`)],Arguments:[B(`(`),z(`Argument`),B(`)`)],Argument:[H(`attribute`),B(`:`),`Value`],FragmentSpread:[B(`...`),H(`def`),z(`Directive`)],InlineFragment:[B(`...`),R(`TypeCondition`),z(`Directive`),`SelectionSet`],FragmentDefinition:[V(`fragment`),R(Zo(H(`def`),[V(`on`)])),`TypeCondition`,z(`Directive`),`SelectionSet`],TypeCondition:[V(`on`),`NamedType`],Value(e){switch(e.kind){case`Number`:return`NumberValue`;case`String`:return`StringValue`;case`Punctuation`:switch(e.value){case`[`:return`ListValue`;case`{`:return`ObjectValue`;case`$`:return`Variable`;case`&`:return`NamedType`}return null;case`Name`:switch(e.value){case`true`:case`false`:return`BooleanValue`}return e.value===`null`?`NullValue`:`EnumValue`}},NumberValue:[Qo(`Number`,`number`)],StringValue:[{style:`string`,match:e=>e.kind===`String`,update(e,t){t.value.startsWith(`"""`)&&(e.inBlockstring=!t.value.slice(3).endsWith(`"""`))}}],BooleanValue:[Qo(`Name`,`builtin`)],NullValue:[Qo(`Name`,`keyword`)],EnumValue:[H(`string-2`)],ListValue:[B(`[`),z(`Value`),B(`]`)],ObjectValue:[B(`{`),z(`ObjectField`),B(`}`)],ObjectField:[H(`attribute`),B(`:`),`Value`],Type(e){return e.value===`[`?`ListType`:`NonNullType`},ListType:[B(`[`),`Type`,B(`]`),R(B(`!`))],NonNullType:[`NamedType`,R(B(`!`))],NamedType:[ns(`atom`)],Directive:[B(`@`,`meta`),H(`meta`),R(`Arguments`)],DirectiveDef:[V(`directive`),B(`@`,`meta`),H(`meta`),R(`ArgumentsDef`),V(`on`),z(`DirectiveLocation`,B(`|`))],InterfaceDef:[V(`interface`),H(`atom`),R(`Implements`),z(`Directive`),B(`{`),z(`FieldDef`),B(`}`)],Implements:[V(`implements`),z(`NamedType`,B(`&`))],DirectiveLocation:[H(`string-2`)],SchemaDef:[V(`schema`),z(`Directive`),B(`{`),z(`OperationTypeDef`),B(`}`)],OperationTypeDef:[H(`keyword`),B(`:`),H(`atom`)],ScalarDef:[V(`scalar`),H(`atom`),z(`Directive`)],ObjectTypeDef:[V(`type`),H(`atom`),R(`Implements`),z(`Directive`),B(`{`),z(`FieldDef`),B(`}`)],FieldDef:[H(`property`),R(`ArgumentsDef`),B(`:`),`Type`,z(`Directive`)],ArgumentsDef:[B(`(`),z(`InputValueDef`),B(`)`)],InputValueDef:[H(`attribute`),B(`:`),`Type`,R(`DefaultValue`),z(`Directive`)],UnionDef:[V(`union`),H(`atom`),z(`Directive`),B(`=`),z(`UnionMember`,B(`|`))],UnionMember:[`NamedType`],EnumDef:[V(`enum`),H(`atom`),z(`Directive`),B(`{`),z(`EnumValueDef`),B(`}`)],EnumValueDef:[H(`string-2`),z(`Directive`)],InputDef:[V(`input`),H(`atom`),z(`Directive`),B(`{`),z(`InputValueDef`),B(`}`)],ExtendDef:[V(`extend`),`ExtensionDefinition`],ExtensionDefinition(e){switch(e.value){case`schema`:return b.SCHEMA_EXTENSION;case`scalar`:return b.SCALAR_TYPE_EXTENSION;case`type`:return b.OBJECT_TYPE_EXTENSION;case`interface`:return b.INTERFACE_TYPE_EXTENSION;case`union`:return b.UNION_TYPE_EXTENSION;case`enum`:return b.ENUM_TYPE_EXTENSION;case`input`:return b.INPUT_OBJECT_TYPE_EXTENSION}},[b.SCHEMA_EXTENSION]:[`SchemaDef`],[b.SCALAR_TYPE_EXTENSION]:[`ScalarDef`],[b.OBJECT_TYPE_EXTENSION]:[`ObjectTypeDef`],[b.INTERFACE_TYPE_EXTENSION]:[`InterfaceDef`],[b.UNION_TYPE_EXTENSION]:[`UnionDef`],[b.ENUM_TYPE_EXTENSION]:[`EnumDef`],[b.INPUT_OBJECT_TYPE_EXTENSION]:[`InputDef`]};function V(e){return{style:`keyword`,match:t=>t.kind===`Name`&&t.value===e}}function H(e){return{style:e,match:e=>e.kind===`Name`,update(e,t){e.name=t.value}}}function ns(e){return{style:e,match:e=>e.kind===`Name`,update(e,t){e.prevState?.prevState&&(e.name=t.value,e.prevState.prevState.type=t.value)}}}function rs(e={eatWhitespace:e=>e.eatWhile($o),lexRules:es,parseRules:ts,editorConfig:{}}){return{startState(){let t={level:0,step:0,name:null,kind:null,type:null,rule:null,needsSeparator:!1,prevState:null};return ls(e.parseRules,t,b.DOCUMENT),t},token(t,n){return os(t,n,e)}}}function os(e,t,n){if(t.inBlockstring)return e.match(/.*"""/)?(t.inBlockstring=!1,`string`):(e.skipToEnd(),`string`);let{lexRules:r,parseRules:i,eatWhitespace:a,editorConfig:o}=n;if(t.rule&&t.rule.length===0?us(t):t.needsAdvance&&(t.needsAdvance=!1,ds(t,!0)),e.sol()){let n=o?.tabSize||2;t.indentLevel=Math.floor(e.indentation()/n)}if(a(e))return`ws`;let s=ms(r,e);if(!s)return e.match(/\S+/)||e.match(/\s/),ls(cs,t,`Invalid`),`invalidchar`;if(s.kind===`Comment`)return ls(cs,t,`Comment`),`comment`;let c=ss({},t);if(s.kind===`Punctuation`){if(/^[{([]/.test(s.value))t.indentLevel!==void 0&&(t.levels=(t.levels||[]).concat(t.indentLevel+1));else if(/^[})\]]/.test(s.value)){let e=t.levels=(t.levels||[]).slice(0,-1);t.indentLevel&&e.length>0&&e.at(-1)<t.indentLevel&&(t.indentLevel=e.at(-1))}}for(;t.rule;){let n=typeof t.rule==`function`?t.step===0?t.rule(s,e):null:t.rule[t.step];if(t.needsSeparator&&(n=n?.separator),n){if(n.ofRule&&(n=n.ofRule),typeof n==`string`){ls(i,t,n);continue}if(n.match?.call(n,s))return n.update&&n.update(t,s),s.kind===`Punctuation`?ds(t,!0):t.needsAdvance=!0,n.style}ps(t)}return ss(t,c),ls(cs,t,`Invalid`),`invalidchar`}function ss(e,t){let n=Object.keys(t);for(let r=0;r<n.length;r++)e[n[r]]=t[n[r]];return e}var cs={Invalid:[],Comment:[]};function ls(e,t,n){if(!e[n])throw TypeError(`Unknown rule: `+n);t.prevState=Object.assign({},t),t.kind=n,t.name=null,t.type=null,t.rule=e[n],t.step=0,t.needsSeparator=!1}function us(e){e.prevState&&=(e.kind=e.prevState.kind,e.name=e.prevState.name,e.type=e.prevState.type,e.rule=e.prevState.rule,e.step=e.prevState.step,e.needsSeparator=e.prevState.needsSeparator,e.prevState.prevState)}function ds(e,t){if(fs(e)&&e.rule){let n=e.rule[e.step];if(n.separator){let{separator:t}=n;if(e.needsSeparator=!e.needsSeparator,!e.needsSeparator&&t.ofRule)return}if(t)return}for(e.needsSeparator=!1,e.step++;e.rule&&!(Array.isArray(e.rule)&&e.step<e.rule.length);)us(e),e.rule&&(fs(e)?e.rule?.[e.step].separator&&(e.needsSeparator=!e.needsSeparator):(e.needsSeparator=!1,e.step++))}function fs(e){let t=Array.isArray(e.rule)&&typeof e.rule[e.step]!=`string`&&e.rule[e.step];return t&&t.isList}function ps(e){for(;e.rule&&!(Array.isArray(e.rule)&&e.rule[e.step].ofRule);)us(e);e.rule&&ds(e,!1)}function ms(e,t){let n=Object.keys(e);for(let r=0;r<n.length;r++){let i=t.match(e[n[r]]);if(i&&i instanceof Array)return{kind:n[r],value:i[0]}}}function hs(e,t){let n=e.split(`
`),r=rs(),i=r.startState(),a=``,o=new Xo(``);for(let e=0;e<n.length;e++){for(o=new Xo(n[e]);!o.eol()&&(a=r.token(o,i),t(o,i,a,e)!==`BREAK`););t(o,i,a,e),i.kind||(i=r.startState())}return{start:o.getStartOfToken(),end:o.getCurrentPosition(),string:o.current(),state:i,style:a}}var gs;(function(e){e.TYPE_SYSTEM=`TYPE_SYSTEM`,e.EXECUTABLE=`EXECUTABLE`,e.UNKNOWN=`UNKNOWN`})(gs||={});const _s=[b.SCHEMA_DEFINITION,b.OPERATION_TYPE_DEFINITION,b.SCALAR_TYPE_DEFINITION,b.OBJECT_TYPE_DEFINITION,b.INTERFACE_TYPE_DEFINITION,b.UNION_TYPE_DEFINITION,b.ENUM_TYPE_DEFINITION,b.INPUT_OBJECT_TYPE_DEFINITION,b.DIRECTIVE_DEFINITION,b.SCHEMA_EXTENSION,b.SCALAR_TYPE_EXTENSION,b.OBJECT_TYPE_EXTENSION,b.INTERFACE_TYPE_EXTENSION,b.UNION_TYPE_EXTENSION,b.ENUM_TYPE_EXTENSION,b.INPUT_OBJECT_TYPE_EXTENSION];var vs=e=>{let t=gs.UNKNOWN;if(e)try{ut(Be(e),{enter(e){if(e.kind===`Document`){t=gs.EXECUTABLE;return}return _s.includes(e.kind)?(t=gs.TYPE_SYSTEM,lt):!1}})}catch{return t}return t};function ys(e,t){return t?.endsWith(`.graphqls`)?gs.TYPE_SYSTEM:vs(e)}function bs(e,t,n=0){let r=null,i=null,a=null,o=hs(e,(e,o,s,c)=>{if(!(c!==t.line||e.getCurrentPosition()+n<t.character+1))return r=s,i=Object.assign({},o),a=e.current(),`BREAK`});return{start:o.start,end:o.end,string:a||o.string,state:i||o.state,style:r||o.style}}function xs(e,t,n,r,i){let a=r||bs(e,t,1);if(!a)return null;let o=a.state.kind===`Invalid`?a.state.prevState:a.state;if(!o)return null;let s=ws(n,a.state),c=i?.mode||ys(e,i?.uri);return{token:a,state:o,typeInfo:s,mode:c}}function Ss(e,t,n){return n===Rn.name&&e.getQueryType()===t?Rn:n===zn.name&&e.getQueryType()===t?zn:n===Bn.name&&At(t)?Bn:`getFields`in t?t.getFields()[n]:null}function Cs(e,t){let n=[],r=e;for(;r?.kind;)n.push(r),r=r.prevState;for(let e=n.length-1;e>=0;e--)t(n[e])}function ws(e,t){let n,r,i,a,o,s,c,l,u,d,f;return Cs(t,t=>{switch(t.kind){case U.QUERY:case`ShortQuery`:d=e.getQueryType();break;case U.MUTATION:d=e.getMutationType();break;case U.SUBSCRIPTION:d=e.getSubscriptionType();break;case U.INLINE_FRAGMENT:case U.FRAGMENT_DEFINITION:t.type&&(d=e.getType(t.type));break;case U.FIELD:case U.ALIASED_FIELD:!d||!t.name?o=null:(o=u?Ss(e,u,t.name):null,d=o?o.type:null);break;case U.SELECTION_SET:u=Lt(d);break;case U.DIRECTIVE:i=t.name?e.getDirective(t.name):null;break;case U.INTERFACE_DEF:t.name&&(c=null,f=new Yt({name:t.name,interfaces:[],fields:{}}));break;case U.OBJECT_TYPE_DEF:t.name&&(f=null,c=new Vt({name:t.name,interfaces:[],fields:{}}));break;case U.ARGUMENTS:if(t.prevState)switch(t.prevState.kind){case U.FIELD:r=o&&o.args;break;case U.DIRECTIVE:r=i&&i.args;break;case U.ALIASED_FIELD:{let n=t.prevState?.name;if(!n){r=null;break}let i=u?Ss(e,u,n):null;if(!i){r=null;break}r=i.args;break}default:r=null;break}else r=null;break;case U.ARGUMENT:if(r){for(let e=0;e<r.length;e++)if(r[e].name===t.name){n=r[e];break}}s=n?.type;break;case U.VARIABLE_DEFINITION:case U.VARIABLE:d=s;break;case U.ENUM_VALUE:let p=Lt(s);a=p instanceof Qt?p.getValues().find(e=>e.value===t.name):null;break;case U.LIST_VALUE:let m=Ft(s);s=m instanceof M?m.ofType:null;break;case U.OBJECT_VALUE:let h=Lt(s);l=h instanceof tn?h.getFields():null;break;case U.OBJECT_FIELD:let g=t.name&&l?l[t.name]:null;s=g?.type,o=g,d=o?o.type:null;break;case U.NAMED_TYPE:t.name&&(d=e.getType(t.name));break}}),{argDef:n,argDefs:r,directiveDef:i,enumValue:a,fieldDef:o,inputType:s,objectFieldDefs:l,parentType:u,type:d,interfaceDef:f,objectTypeDef:c}}const Ts={ALIASED_FIELD:`AliasedField`,ARGUMENTS:`Arguments`,SHORT_QUERY:`ShortQuery`,QUERY:`Query`,MUTATION:`Mutation`,SUBSCRIPTION:`Subscription`,TYPE_CONDITION:`TypeCondition`,INVALID:`Invalid`,COMMENT:`Comment`,SCHEMA_DEF:`SchemaDef`,SCALAR_DEF:`ScalarDef`,OBJECT_TYPE_DEF:`ObjectTypeDef`,OBJECT_VALUE:`ObjectValue`,LIST_VALUE:`ListValue`,INTERFACE_DEF:`InterfaceDef`,UNION_DEF:`UnionDef`,ENUM_DEF:`EnumDef`,ENUM_VALUE:`EnumValue`,FIELD_DEF:`FieldDef`,INPUT_DEF:`InputDef`,INPUT_VALUE_DEF:`InputValueDef`,ARGUMENTS_DEF:`ArgumentsDef`,EXTEND_DEF:`ExtendDef`,EXTENSION_DEFINITION:`ExtensionDefinition`,DIRECTIVE_DEF:`DirectiveDef`,IMPLEMENTS:`Implements`,VARIABLE_DEFINITIONS:`VariableDefinitions`,TYPE:`Type`,VARIABLE:`Variable`},U=Object.assign(Object.assign({},b),Ts);var Es;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(Es||={});var Ds=[{label:`type`,kind:Es.Function},{label:`interface`,kind:Es.Function},{label:`union`,kind:Es.Function},{label:`input`,kind:Es.Function},{label:`scalar`,kind:Es.Function},{label:`schema`,kind:Es.Function}],Os=[{label:`query`,kind:Es.Function},{label:`mutation`,kind:Es.Function},{label:`subscription`,kind:Es.Function},{label:`fragment`,kind:Es.Function},{label:`{`,kind:Es.Constructor}],ks=e.__commonJSMin(((e,t)=>{function n(e,t){if(e!=null)return e;var n=Error(t===void 0?`Got unexpected `+e:t);throw n.framesToPop=1,n}t.exports=n,t.exports.default=n,Object.defineProperty(t.exports,`__esModule`,{value:!0})})),As=e.__toESM(ks()),js=class{constructor(e,t){this.lessThanOrEqualTo=e=>this.line<e.line||this.line===e.line&&this.character<=e.character,this.line=e,this.character=t}setLine(e){this.line=e}setCharacter(e){this.character=e}},Ms=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})};const Ns={Error:`Error`,Warning:`Warning`,Information:`Information`,Hint:`Hint`},Ps={[Ns.Error]:1,[Ns.Warning]:2,[Ns.Information]:3,[Ns.Hint]:4};function Fs(e,t,n,r,i){let a=Object.assign(Object.assign({},i),{schema:e}),o=xs(t,n,e,r);if(!o)return``;let{typeInfo:s,token:c}=o,{kind:l,step:u}=c.state;if(l===`Field`&&u===0&&s.fieldDef||l===`AliasedField`&&u===2&&s.fieldDef||l===`ObjectField`&&u===0&&s.fieldDef){let e=[];return Is(e,a),Rs(e,s,a),Ls(e,a),Gs(e,a,s.fieldDef),e.join(``).trim()}if(l===`Directive`&&u===1&&s.directiveDef){let e=[];return Is(e,a),Bs(e,s,a),Ls(e,a),Gs(e,a,s.directiveDef),e.join(``).trim()}if(l===`Variable`&&s.type){let e=[];return Is(e,a),Ws(e,s,a,s.type),Ls(e,a),Gs(e,a,s.type),e.join(``).trim()}if(l===`Argument`&&u===0&&s.argDef){let e=[];return Is(e,a),Vs(e,s,a),Ls(e,a),Gs(e,a,s.argDef),e.join(``).trim()}if(l===`EnumValue`&&s.enumValue&&`description`in s.enumValue){let e=[];return Is(e,a),Us(e,s,a),Ls(e,a),Gs(e,a,s.enumValue),e.join(``).trim()}if(l===`NamedType`&&s.type&&`description`in s.type){let e=[];return Is(e,a),Ws(e,s,a,s.type),Ls(e,a),Gs(e,a,s.type),e.join(``).trim()}return``}function Is(e,t){t.useMarkdown&&W(e,"```graphql\n")}function Ls(e,t){t.useMarkdown&&W(e,"\n```")}function Rs(e,t,n){zs(e,t,n),Hs(e,t,n,t.type)}function zs(e,t,n){if(!t.fieldDef)return;let r=t.fieldDef.name;r.slice(0,2)!==`__`&&(Ws(e,t,n,t.parentType),W(e,`.`)),W(e,r)}function Bs(e,t,n){if(!t.directiveDef)return;let r=`@`+t.directiveDef.name;W(e,r)}function Vs(e,t,n){if(t.directiveDef?Bs(e,t,n):t.fieldDef&&zs(e,t,n),!t.argDef)return;let{name:r}=t.argDef;W(e,`(`),W(e,r),Hs(e,t,n,t.inputType),W(e,`)`)}function Hs(e,t,n,r){W(e,`: `),Ws(e,t,n,r)}function Us(e,t,n){if(!t.enumValue)return;let{name:r}=t.enumValue;Ws(e,t,n,t.inputType),W(e,`.`),W(e,r)}function Ws(e,t,n,r){r&&(r instanceof N?(Ws(e,t,n,r.ofType),W(e,`!`)):r instanceof M?(W(e,`[`),Ws(e,t,n,r.ofType),W(e,`]`)):W(e,r.name))}function Gs(e,t,n){if(!n)return;let r=typeof n.description==`string`?n.description:null;r&&(W(e,`
`),W(e,r)),Ks(e,t,n)}function Ks(e,t,n){if(!n)return;let r=n.deprecationReason;r&&(W(e,`
`),W(e,`Deprecated: `),W(e,r))}function W(e,t){e.push(t)}
/*!-----------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
* Released under the MIT license
* https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
*-----------------------------------------------------------------------------*/
var qs=Object.defineProperty,Js=Object.getOwnPropertyDescriptor,Ys=Object.getOwnPropertyNames,Xs=Object.prototype.hasOwnProperty,Zs=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(let i of Ys(t))!Xs.call(e,i)&&i!==n&&qs(e,i,{get:()=>t[i],enumerable:!(r=Js(t,i))||r.enumerable});return e},Qs=(e,t,n)=>(Zs(e,t,`default`),n&&Zs(n,t,`default`)),$s={};Qs($s,e.editor_api_exports);var ec={},tc={},nc=class e{static getOrCreate(t){return tc[t]||(tc[t]=new e(t)),tc[t]}constructor(e){this._languageId=e,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise((e,t)=>{this._lazyLoadPromiseResolve=e,this._lazyLoadPromiseReject=t})}load(){return this._loadingTriggered||(this._loadingTriggered=!0,ec[this._languageId].loader().then(e=>this._lazyLoadPromiseResolve(e),e=>this._lazyLoadPromiseReject(e))),this._lazyLoadPromise}};function rc(e){let t=e.id;ec[t]=e,$s.languages.register(e);let n=nc.getOrCreate(t);$s.languages.registerTokensProviderFactory(t,{create:async()=>(await n.load()).language}),$s.languages.onLanguageEncountered(t,async()=>{let e=await n.load();$s.languages.setLanguageConfiguration(t,e.conf)})}rc({id:`graphql`,extensions:[`.graphql`,`.gql`],aliases:[`GraphQL`,`graphql`,`gql`],mimetypes:[`application/graphql`],loader:()=>Promise.resolve().then(()=>require(`./graphql-j4kegA8B.cjs`))});var ic=class extends e.Action2{constructor(){super({id:`diffEditor.toggleCollapseUnchangedRegions`,title:e.localize2(`toggleCollapseUnchangedRegions`,`Toggle Collapse Unchanged Regions`),icon:e.Codicon.map,toggled:e.ContextKeyExpr.has(`config.diffEditor.hideUnchangedRegions.enabled`),precondition:e.ContextKeyExpr.has(`isInDiffEditor`),menu:{when:e.ContextKeyExpr.has(`isInDiffEditor`),id:e.MenuId.EditorTitle,order:22,group:`navigation`}})}run(t,...n){let r=t.get(e.IConfigurationService),i=!r.getValue(`diffEditor.hideUnchangedRegions.enabled`);r.updateValue(`diffEditor.hideUnchangedRegions.enabled`,i)}},ac=class extends e.Action2{constructor(){super({id:`diffEditor.toggleShowMovedCodeBlocks`,title:e.localize2(`toggleShowMovedCodeBlocks`,`Toggle Show Moved Code Blocks`),precondition:e.ContextKeyExpr.has(`isInDiffEditor`)})}run(t,...n){let r=t.get(e.IConfigurationService),i=!r.getValue(`diffEditor.experimental.showMoves`);r.updateValue(`diffEditor.experimental.showMoves`,i)}},oc=class extends e.Action2{constructor(){super({id:`diffEditor.toggleUseInlineViewWhenSpaceIsLimited`,title:e.localize2(`toggleUseInlineViewWhenSpaceIsLimited`,`Toggle Use Inline View When Space Is Limited`),precondition:e.ContextKeyExpr.has(`isInDiffEditor`)})}run(t,...n){let r=t.get(e.IConfigurationService),i=!r.getValue(`diffEditor.useInlineViewWhenSpaceIsLimited`);r.updateValue(`diffEditor.useInlineViewWhenSpaceIsLimited`,i)}},sc=e.localize2(`diffEditor`,`Diff Editor`),cc=class extends e.EditorAction2{constructor(){super({id:`diffEditor.switchSide`,title:e.localize2(`switchSide`,`Switch Side`),icon:e.Codicon.arrowSwap,precondition:e.ContextKeyExpr.has(`isInDiffEditor`),f1:!0,category:sc})}runEditorCommand(t,n,r){let i=_c(t);if(i instanceof e.DiffEditorWidget){if(r&&r.dryRun)return{destinationSelection:i.mapToOtherSide().destinationSelection};i.switchSide()}}},lc=class extends e.EditorAction2{constructor(){super({id:`diffEditor.exitCompareMove`,title:e.localize2(`exitCompareMove`,`Exit Compare Move`),icon:e.Codicon.close,precondition:e.EditorContextKeys.comparingMovedCode,f1:!1,category:sc,keybinding:{weight:1e4,primary:9}})}runEditorCommand(t,n,...r){let i=_c(t);i instanceof e.DiffEditorWidget&&i.exitCompareMove()}},uc=class extends e.EditorAction2{constructor(){super({id:`diffEditor.collapseAllUnchangedRegions`,title:e.localize2(`collapseAllUnchangedRegions`,`Collapse All Unchanged Regions`),icon:e.Codicon.fold,precondition:e.ContextKeyExpr.has(`isInDiffEditor`),f1:!0,category:sc})}runEditorCommand(t,n,...r){let i=_c(t);i instanceof e.DiffEditorWidget&&i.collapseAllUnchangedRegions()}},dc=class extends e.EditorAction2{constructor(){super({id:`diffEditor.showAllUnchangedRegions`,title:e.localize2(`showAllUnchangedRegions`,`Show All Unchanged Regions`),icon:e.Codicon.unfold,precondition:e.ContextKeyExpr.has(`isInDiffEditor`),f1:!0,category:sc})}runEditorCommand(t,n,...r){let i=_c(t);i instanceof e.DiffEditorWidget&&i.showAllUnchangedRegions()}},fc=class extends e.Action2{constructor(){super({id:`diffEditor.revert`,title:e.localize2(`revert`,`Revert`),f1:!1,category:sc})}run(t,n){let r=gc(t,n.originalUri,n.modifiedUri);r instanceof e.DiffEditorWidget&&r.revertRangeMappings(n.mapping.innerChanges??[])}},pc=e.localize2(`accessibleDiffViewer`,`Accessible Diff Viewer`),mc=class t extends e.Action2{static{this.id=`editor.action.accessibleDiffViewer.next`}constructor(){super({id:t.id,title:e.localize2(`editor.action.accessibleDiffViewer.next`,`Go to Next Difference`),category:pc,precondition:e.ContextKeyExpr.has(`isInDiffEditor`),keybinding:{primary:65,weight:100},f1:!0})}run(e){_c(e)?.accessibleDiffViewerNext()}},hc=class t extends e.Action2{static{this.id=`editor.action.accessibleDiffViewer.prev`}constructor(){super({id:t.id,title:e.localize2(`editor.action.accessibleDiffViewer.prev`,`Go to Previous Difference`),category:pc,precondition:e.ContextKeyExpr.has(`isInDiffEditor`),keybinding:{primary:1089,weight:100},f1:!0})}run(e){_c(e)?.accessibleDiffViewerPrev()}};function gc(t,n,r){return t.get(e.ICodeEditorService).listDiffEditors().find(e=>{let t=e.getModifiedEditor(),i=e.getOriginalEditor();return t&&t.getModel()?.uri.toString()===r.toString()&&i&&i.getModel()?.uri.toString()===n.toString()})||null}function _c(t){let n=t.get(e.ICodeEditorService).listDiffEditors(),r=e.getActiveElement();if(r)for(let e of n){let t=e.getContainerDomNode();if(vc(t,r))return e}return null}function vc(e,t){let n=t;for(;n;){if(n===e)return!0;n=n.parentElement}return!1}e.registerAction2(ic),e.registerAction2(ac),e.registerAction2(oc),e.MenuRegistry.appendMenuItem(e.MenuId.EditorTitle,{command:{id:new oc().desc.id,title:e.localize(`useInlineViewWhenSpaceIsLimited`,`Use Inline View When Space Is Limited`),toggled:e.ContextKeyExpr.has(`config.diffEditor.useInlineViewWhenSpaceIsLimited`),precondition:e.ContextKeyExpr.has(`isInDiffEditor`)},order:11,group:`1_diff`,when:e.ContextKeyExpr.and(e.EditorContextKeys.diffEditorRenderSideBySideInlineBreakpointReached,e.ContextKeyExpr.has(`isInDiffEditor`))}),e.MenuRegistry.appendMenuItem(e.MenuId.EditorTitle,{command:{id:new ac().desc.id,title:e.localize(`showMoves`,`Show Moved Code Blocks`),icon:e.Codicon.move,toggled:e.ContextKeyEqualsExpr.create(`config.diffEditor.experimental.showMoves`,!0),precondition:e.ContextKeyExpr.has(`isInDiffEditor`)},order:10,group:`1_diff`,when:e.ContextKeyExpr.has(`isInDiffEditor`)}),e.registerAction2(fc);for(let t of[{icon:e.Codicon.arrowRight,key:e.EditorContextKeys.diffEditorInlineMode.toNegated()},{icon:e.Codicon.discard,key:e.EditorContextKeys.diffEditorInlineMode}])e.MenuRegistry.appendMenuItem(e.MenuId.DiffEditorHunkToolbar,{command:{id:new fc().desc.id,title:e.localize(`revertHunk`,`Revert Block`),icon:t.icon},when:e.ContextKeyExpr.and(e.EditorContextKeys.diffEditorModifiedWritable,t.key),order:5,group:`primary`}),e.MenuRegistry.appendMenuItem(e.MenuId.DiffEditorSelectionToolbar,{command:{id:new fc().desc.id,title:e.localize(`revertSelection`,`Revert Selection`),icon:t.icon},when:e.ContextKeyExpr.and(e.EditorContextKeys.diffEditorModifiedWritable,t.key),order:5,group:`primary`});e.registerAction2(cc),e.registerAction2(lc),e.registerAction2(uc),e.registerAction2(dc),e.MenuRegistry.appendMenuItem(e.MenuId.EditorTitle,{command:{id:mc.id,title:e.localize(`Open Accessible Diff Viewer`,`Open Accessible Diff Viewer`),precondition:e.ContextKeyExpr.has(`isInDiffEditor`)},order:10,group:`2_diff`,when:e.ContextKeyExpr.and(e.EditorContextKeys.accessibleDiffViewerVisible.negate(),e.ContextKeyExpr.has(`isInDiffEditor`))}),e.CommandsRegistry.registerCommandAlias(`editor.action.diffReview.next`,mc.id),e.registerAction2(mc),e.CommandsRegistry.registerCommandAlias(`editor.action.diffReview.prev`,hc.id),e.registerAction2(hc);var yc=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},bc=function(e,t){return function(n,r){t(n,r,e)}},xc;const Sc=new e.RawContextKey(`selectionAnchorSet`,!1);var Cc=class{static{xc=this}static{this.ID=`editor.contrib.selectionAnchorController`}static get(e){return e.getContribution(xc.ID)}constructor(e,t){this.editor=e,this.selectionAnchorSetContextKey=Sc.bindTo(t),this.modelChangeListener=e.onDidChangeModel(()=>this.selectionAnchorSetContextKey.reset())}setSelectionAnchor(){if(this.editor.hasModel()){let t=this.editor.getPosition();this.editor.changeDecorations(n=>{this.decorationId&&n.removeDecoration(this.decorationId),this.decorationId=n.addDecoration(e.Selection$1.fromPositions(t,t),{description:`selection-anchor`,stickiness:1,hoverMessage:new e.MarkdownString().appendText(e.localize(`selectionAnchor`,`Selection Anchor`)),className:`selection-anchor`})}),this.selectionAnchorSetContextKey.set(!!this.decorationId),e.alert(e.localize(`anchorSet`,`Anchor set at {0}:{1}`,t.lineNumber,t.column))}}goToSelectionAnchor(){if(this.editor.hasModel()&&this.decorationId){let e=this.editor.getModel().getDecorationRange(this.decorationId);e&&this.editor.setPosition(e.getStartPosition())}}selectFromAnchorToCursor(){if(this.editor.hasModel()&&this.decorationId){let t=this.editor.getModel().getDecorationRange(this.decorationId);if(t){let n=this.editor.getPosition();this.editor.setSelection(e.Selection$1.fromPositions(t.getStartPosition(),n)),this.cancelSelectionAnchor()}}}cancelSelectionAnchor(){if(this.decorationId){let e=this.decorationId;this.editor.changeDecorations(t=>{t.removeDecoration(e),this.decorationId=void 0}),this.selectionAnchorSetContextKey.set(!1)}}dispose(){this.cancelSelectionAnchor(),this.modelChangeListener.dispose()}};Cc=xc=yc([bc(1,e.IContextKeyService)],Cc);var wc=class extends e.EditorAction{constructor(){super({id:`editor.action.setSelectionAnchor`,label:e.localize(`setSelectionAnchor`,`Set Selection Anchor`),alias:`Set Selection Anchor`,precondition:void 0,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:e.KeyChord(2089,2080),weight:100}})}async run(e,t){Cc.get(t)?.setSelectionAnchor()}},Tc=class extends e.EditorAction{constructor(){super({id:`editor.action.goToSelectionAnchor`,label:e.localize(`goToSelectionAnchor`,`Go to Selection Anchor`),alias:`Go to Selection Anchor`,precondition:Sc})}async run(e,t){Cc.get(t)?.goToSelectionAnchor()}},Ec=class extends e.EditorAction{constructor(){super({id:`editor.action.selectFromAnchorToCursor`,label:e.localize(`selectFromAnchorToCursor`,`Select from Anchor to Cursor`),alias:`Select from Anchor to Cursor`,precondition:Sc,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:e.KeyChord(2089,2089),weight:100}})}async run(e,t){Cc.get(t)?.selectFromAnchorToCursor()}},Dc=class extends e.EditorAction{constructor(){super({id:`editor.action.cancelSelectionAnchor`,label:e.localize(`cancelSelectionAnchor`,`Cancel Selection Anchor`),alias:`Cancel Selection Anchor`,precondition:Sc,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:9,weight:100}})}async run(e,t){Cc.get(t)?.cancelSelectionAnchor()}};e.registerEditorContribution(Cc.ID,Cc,4),e.registerEditorAction(wc),e.registerEditorAction(Tc),e.registerEditorAction(Ec),e.registerEditorAction(Dc);var Oc=e.registerColor(`editorOverviewRuler.bracketMatchForeground`,`#A0A0A0`,e.localize(`overviewRulerBracketMatchForeground`,`Overview ruler marker color for matching brackets.`)),kc=class extends e.EditorAction{constructor(){super({id:`editor.action.jumpToBracket`,label:e.localize(`smartSelect.jumpBracket`,`Go to Bracket`),alias:`Go to Bracket`,precondition:void 0,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:3165,weight:100}})}run(e,t){Nc.get(t)?.jumpToBracket()}},Ac=class extends e.EditorAction{constructor(){super({id:`editor.action.selectToBracket`,label:e.localize(`smartSelect.selectToBracket`,`Select to Bracket`),alias:`Select to Bracket`,precondition:void 0,metadata:{description:e.localize2(`smartSelect.selectToBracketDescription`,`Select the text inside and including the brackets or curly braces`),args:[{name:`args`,schema:{type:`object`,properties:{selectBrackets:{type:`boolean`,default:!0}}}}]}})}run(e,t,n){let r=!0;n&&n.selectBrackets===!1&&(r=!1),Nc.get(t)?.selectToBracket(r)}},jc=class extends e.EditorAction{constructor(){super({id:`editor.action.removeBrackets`,label:e.localize(`smartSelect.removeBrackets`,`Remove Brackets`),alias:`Remove Brackets`,precondition:void 0,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:2561,weight:100}})}run(e,t){Nc.get(t)?.removeBrackets(this.id)}},Mc=class{constructor(e,t,n){this.position=e,this.brackets=t,this.options=n}},Nc=class t extends e.Disposable{static{this.ID=`editor.contrib.bracketMatchingController`}static get(e){return e.getContribution(t.ID)}constructor(t){super(),this._editor=t,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new e.RunOnceScheduler(()=>this._updateBrackets(),50)),this._matchBrackets=this._editor.getOption(72),this._updateBracketsSoon.schedule(),this._register(t.onDidChangeCursorPosition(e=>{this._matchBrackets!==`never`&&this._updateBracketsSoon.schedule()})),this._register(t.onDidChangeModelContent(e=>{this._updateBracketsSoon.schedule()})),this._register(t.onDidChangeModel(e=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(t.onDidChangeModelLanguageConfiguration(e=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(t.onDidChangeConfiguration(e=>{e.hasChanged(72)&&(this._matchBrackets=this._editor.getOption(72),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule())})),this._register(t.onDidBlurEditorWidget(()=>{this._updateBracketsSoon.schedule()})),this._register(t.onDidFocusEditorWidget(()=>{this._updateBracketsSoon.schedule()}))}jumpToBracket(){if(!this._editor.hasModel())return;let t=this._editor.getModel(),n=this._editor.getSelections().map(n=>{let r=n.getStartPosition(),i=t.bracketPairs.matchBracket(r),a=null;if(i)i[0].containsPosition(r)&&!i[1].containsPosition(r)?a=i[1].getStartPosition():i[1].containsPosition(r)&&(a=i[0].getStartPosition());else{let e=t.bracketPairs.findEnclosingBrackets(r);if(e)a=e[1].getStartPosition();else{let e=t.bracketPairs.findNextBracket(r);e&&e.range&&(a=e.range.getStartPosition())}}return a?new e.Selection$1(a.lineNumber,a.column,a.lineNumber,a.column):new e.Selection$1(r.lineNumber,r.column,r.lineNumber,r.column)});this._editor.setSelections(n),this._editor.revealRange(n[0])}selectToBracket(t){if(!this._editor.hasModel())return;let n=this._editor.getModel(),r=[];this._editor.getSelections().forEach(i=>{let a=i.getStartPosition(),o=n.bracketPairs.matchBracket(a);if(!o&&(o=n.bracketPairs.findEnclosingBrackets(a),!o)){let e=n.bracketPairs.findNextBracket(a);e&&e.range&&(o=n.bracketPairs.matchBracket(e.range.getStartPosition()))}let s=null,c=null;if(o){o.sort(e.Range$1.compareRangesUsingStarts);let[n,r]=o;if(s=t?n.getStartPosition():n.getEndPosition(),c=t?r.getEndPosition():r.getStartPosition(),r.containsPosition(a)){let e=s;s=c,c=e}}s&&c&&r.push(new e.Selection$1(s.lineNumber,s.column,c.lineNumber,c.column))}),r.length>0&&(this._editor.setSelections(r),this._editor.revealRange(r[0]))}removeBrackets(e){if(!this._editor.hasModel())return;let t=this._editor.getModel();this._editor.getSelections().forEach(n=>{let r=n.getPosition(),i=t.bracketPairs.matchBracket(r);i||=t.bracketPairs.findEnclosingBrackets(r),i&&(this._editor.pushUndoStop(),this._editor.executeEdits(e,[{range:i[0],text:``},{range:i[1],text:``}]),this._editor.pushUndoStop())})}static{this._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=e.ModelDecorationOptions.register({description:`bracket-match-overview`,stickiness:1,className:`bracket-match`,overviewRuler:{color:e.themeColorFromId(Oc),position:e.OverviewRulerLane.Center}})}static{this._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=e.ModelDecorationOptions.register({description:`bracket-match-no-overview`,stickiness:1,className:`bracket-match`})}_updateBrackets(){if(this._matchBrackets===`never`)return;this._recomputeBrackets();let e=[],t=0;for(let n of this._lastBracketsData){let r=n.brackets;r&&(e[t++]={range:r[0],options:n.options},e[t++]={range:r[1],options:n.options})}this._decorations.set(e)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus()){this._lastBracketsData=[],this._lastVersionId=0;return}let n=this._editor.getSelections();if(n.length>100){this._lastBracketsData=[],this._lastVersionId=0;return}let r=this._editor.getModel(),i=r.getVersionId(),a=[];this._lastVersionId===i&&(a=this._lastBracketsData);let o=[],s=0;for(let e=0,t=n.length;e<t;e++){let t=n[e];t.isEmpty()&&(o[s++]=t.getStartPosition())}o.length>1&&o.sort(e.Position$1.compare);let c=[],l=0,u=0,d=a.length;for(let e=0,n=o.length;e<n;e++){let n=o[e];for(;u<d&&a[u].position.isBefore(n);)u++;if(u<d&&a[u].position.equals(n))c[l++]=a[u];else{let e=r.bracketPairs.matchBracket(n,20),i=t._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;!e&&this._matchBrackets===`always`&&(e=r.bracketPairs.findEnclosingBrackets(n,20),i=t._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER),c[l++]=new Mc(n,e,i)}}this._lastBracketsData=c,this._lastVersionId=i}};e.registerEditorContribution(Nc.ID,Nc,1),e.registerEditorAction(Ac),e.registerEditorAction(kc),e.registerEditorAction(jc),e.MenuRegistry.appendMenuItem(e.MenuId.MenubarGoMenu,{group:`5_infile_nav`,command:{id:`editor.action.jumpToBracket`,title:e.localize({key:`miGoToBracket`,comment:[`&& denotes a mnemonic`]},`Go to &&Bracket`)},order:2});var Pc=class{constructor(e,t){this._selection=e,this._isMovingLeft=t}getEditOperations(t,n){if(this._selection.startLineNumber!==this._selection.endLineNumber||this._selection.isEmpty())return;let r=this._selection.startLineNumber,i=this._selection.startColumn,a=this._selection.endColumn;if(!(this._isMovingLeft&&i===1)&&!(!this._isMovingLeft&&a===t.getLineMaxColumn(r)))if(this._isMovingLeft){let o=new e.Range$1(r,i-1,r,i),s=t.getValueInRange(o);n.addEditOperation(o,null),n.addEditOperation(new e.Range$1(r,a,r,a),s)}else{let o=new e.Range$1(r,a,r,a+1),s=t.getValueInRange(o);n.addEditOperation(o,null),n.addEditOperation(new e.Range$1(r,i,r,i),s)}}computeCursorState(t,n){return this._isMovingLeft?new e.Selection$1(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new e.Selection$1(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}},Fc=class extends e.EditorAction{constructor(e,t){super(t),this.left=e}run(e,t){if(!t.hasModel())return;let n=[],r=t.getSelections();for(let e of r)n.push(new Pc(e,this.left));t.pushUndoStop(),t.executeCommands(this.id,n),t.pushUndoStop()}},Ic=class extends Fc{constructor(){super(!0,{id:`editor.action.moveCarretLeftAction`,label:e.localize(`caret.moveLeft`,`Move Selected Text Left`),alias:`Move Selected Text Left`,precondition:e.EditorContextKeys.writable})}},Lc=class extends Fc{constructor(){super(!1,{id:`editor.action.moveCarretRightAction`,label:e.localize(`caret.moveRight`,`Move Selected Text Right`),alias:`Move Selected Text Right`,precondition:e.EditorContextKeys.writable})}};e.registerEditorAction(Ic),e.registerEditorAction(Lc);var Rc=class extends e.EditorAction{constructor(){super({id:`editor.action.transposeLetters`,label:e.localize(`transposeLetters.label`,`Transpose Letters`),alias:`Transpose Letters`,precondition:e.EditorContextKeys.writable,kbOpts:{kbExpr:e.EditorContextKeys.textInputFocus,primary:0,mac:{primary:306},weight:100}})}run(t,n){if(!n.hasModel())return;let r=n.getModel(),i=[],a=n.getSelections();for(let t of a){if(!t.isEmpty())continue;let n=t.startLineNumber,a=t.startColumn,o=r.getLineMaxColumn(n);if(n===1&&(a===1||a===2&&o===2))continue;let s=a===o?t.getPosition():e.MoveOperations.rightPosition(r,t.getPosition().lineNumber,t.getPosition().column),c=e.MoveOperations.leftPosition(r,s),l=e.MoveOperations.leftPosition(r,c),u=r.getValueInRange(e.Range$1.fromPositions(l,c)),d=r.getValueInRange(e.Range$1.fromPositions(c,s)),f=e.Range$1.fromPositions(l,s);i.push(new e.ReplaceCommand(f,d+u))}i.length>0&&(n.pushUndoStop(),n.executeCommands(this.id,i),n.pushUndoStop())}};e.registerEditorAction(Rc);const zc=(function(){if(typeof crypto==`object`&&typeof crypto.randomUUID==`function`)return crypto.randomUUID.bind(crypto);let e;e=typeof crypto==`object`&&typeof crypto.getRandomValues==`function`?crypto.getRandomValues.bind(crypto):function(e){for(let t=0;t<e.length;t++)e[t]=Math.floor(Math.random()*256);return e};let t=new Uint8Array(16),n=[];for(let e=0;e<256;e++)n.push(e.toString(16).padStart(2,`0`));return function(){e(t),t[6]=t[6]&15|64,t[8]=t[8]&63|128;let r=0,i=``;return i+=n[t[r++]],i+=n[t[r++]],i+=n[t[r++]],i+=n[t[r++]],i+=`-`,i+=n[t[r++]],i+=n[t[r++]],i+=`-`,i+=n[t[r++]],i+=n[t[r++]],i+=`-`,i+=n[t[r++]],i+=n[t[r++]],i+=`-`,i+=n[t[r++]],i+=n[t[r++]],i+=n[t[r++]],i+=n[t[r++]],i+=n[t[r++]],i+=n[t[r++]],i}})();function Bc(e){return{asString:async()=>e,asFile:()=>void 0,value:typeof e==`string`?e:void 0}}function Vc(e,t,n){let r={id:zc(),name:e,uri:t,data:n};return{asString:async()=>``,asFile:()=>r,value:void 0}}var Hc=class{constructor(){this._entries=new Map}get size(){let e=0;for(let t of this._entries)e++;return e}has(e){return this._entries.has(this.toKey(e))}matches(t){let n=[...this._entries.keys()];return e.Iterable.some(this,([e,t])=>t.asFile())&&n.push(`files`),Gc(Uc(t),n)}get(e){return this._entries.get(this.toKey(e))?.[0]}append(e,t){let n=this._entries.get(e);n?n.push(t):this._entries.set(this.toKey(e),[t])}replace(e,t){this._entries.set(this.toKey(e),[t])}delete(e){this._entries.delete(this.toKey(e))}*[Symbol.iterator](){for(let[e,t]of this._entries)for(let n of t)yield[e,n]}toKey(e){return Uc(e)}};function Uc(e){return e.toLowerCase()}function Wc(e,t){return Gc(Uc(e),t.map(Uc))}function Gc(e,t){if(e===`*/*`)return t.length>0;if(t.includes(e))return!0;let n=e.match(/^([a-z]+)\/([a-z]+|\*)$/i);if(!n)return!1;let[r,i,a]=n;return a===`*`?t.some(e=>e.startsWith(i+`/`)):!1}const Kc=Object.freeze({create:t=>e.distinct(t.map(e=>e.toString())).join(`\r
`),split:e=>e.split(`\r
`),parse:e=>Kc.split(e).filter(e=>!e.startsWith(`#`))});var G=class e{static{this.sep=`.`}static{this.None=new e(`@@none@@`)}static{this.Empty=new e(``)}constructor(e){this.value=e}equals(e){return this.value===e.value}contains(t){return this.equals(t)||this.value===``||t.value.startsWith(this.value+e.sep)}intersects(e){return this.contains(e)||e.contains(this)}append(...t){return new e((this.value?[this.value,...t]:t).join(e.sep))}};const qc={EDITORS:`CodeEditors`,FILES:`CodeFiles`};var Jc=class{};const Yc={DragAndDropContribution:`workbench.contributions.dragAndDrop`};e.Registry.add(Yc.DragAndDropContribution,new Jc);var Xc=class e{static{this.INSTANCE=new e}constructor(){}static getInstance(){return e.INSTANCE}hasData(e){return e&&e===this.proto}getData(e){if(this.hasData(e))return this.data}};function Zc(e){let t=new Hc;for(let n of e.items){let e=n.type;if(n.kind===`string`){let r=new Promise(e=>n.getAsString(e));t.append(e,Bc(r))}else if(n.kind===`file`){let r=n.getAsFile();r&&t.append(e,Qc(r))}}return t}function Qc(t){let n=t.path?e.URI.parse(t.path):void 0;return Vc(t.name,n,async()=>new Uint8Array(await t.arrayBuffer()))}var $c=Object.freeze([qc.EDITORS,qc.FILES,e.DataTransfers.RESOURCES,e.DataTransfers.INTERNAL_URI_LIST]);function el(t,n=!1){let r=Zc(t),i=r.get(e.DataTransfers.INTERNAL_URI_LIST);if(i)r.replace(e.Mimes.uriList,i);else if(n||!r.has(e.Mimes.uriList)){let n=[];for(let r of t.items){let t=r.getAsFile();if(t){let r=t.path;try{r?n.push(e.URI.file(r).toString()):n.push(e.URI.parse(t.name,!0).toString())}catch{}}}n.length&&r.replace(e.Mimes.uriList,Bc(Kc.create(n)))}for(let e of $c)r.delete(e);return r}var tl=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},nl=function(e,t){return function(n,r){t(n,r,e)}},rl=class{async provideDocumentPasteEdits(e,t,n,r,i){let a=await this.getEdit(n,i);if(a)return{edits:[{insertText:a.insertText,title:a.title,kind:a.kind,handledMimeType:a.handledMimeType,yieldTo:a.yieldTo}],dispose(){}}}async provideDocumentDropEdits(e,t,n,r){let i=await this.getEdit(n,r);if(i)return{edits:[{insertText:i.insertText,title:i.title,kind:i.kind,handledMimeType:i.handledMimeType,yieldTo:i.yieldTo}],dispose(){}}}},il=class t extends rl{constructor(){super(...arguments),this.kind=t.kind,this.dropMimeTypes=[e.Mimes.text],this.pasteMimeTypes=[e.Mimes.text]}static{this.id=`text`}static{this.kind=new G(`text.plain`)}async getEdit(t,n){let r=t.get(e.Mimes.text);if(!r||t.has(e.Mimes.uriList))return;let i=await r.asString();return{handledMimeType:e.Mimes.text,title:e.localize(`text.label`,`Insert Plain Text`),insertText:i,kind:this.kind}}},al=class extends rl{constructor(){super(...arguments),this.kind=new G(`uri.absolute`),this.dropMimeTypes=[e.Mimes.uriList],this.pasteMimeTypes=[e.Mimes.uriList]}async getEdit(t,n){let r=await cl(t);if(!r.length||n.isCancellationRequested)return;let i=0,a=r.map(({uri:t,originalText:n})=>t.scheme===e.Schemas.file?t.fsPath:(i++,n)).join(` `),o;return o=i>0?r.length>1?e.localize(`defaultDropProvider.uriList.uris`,`Insert Uris`):e.localize(`defaultDropProvider.uriList.uri`,`Insert Uri`):r.length>1?e.localize(`defaultDropProvider.uriList.paths`,`Insert Paths`):e.localize(`defaultDropProvider.uriList.path`,`Insert Path`),{handledMimeType:e.Mimes.uriList,insertText:a,title:o,kind:this.kind}}},ol=class extends rl{constructor(t){super(),this._workspaceContextService=t,this.kind=new G(`uri.relative`),this.dropMimeTypes=[e.Mimes.uriList],this.pasteMimeTypes=[e.Mimes.uriList]}async getEdit(t,n){let r=await cl(t);if(!r.length||n.isCancellationRequested)return;let i=e.coalesce(r.map(({uri:t})=>{let n=this._workspaceContextService.getWorkspaceFolder(t);return n?e.relativePath(n.uri,t):void 0}));if(i.length)return{handledMimeType:e.Mimes.uriList,insertText:i.join(` `),title:r.length>1?e.localize(`defaultDropProvider.uriList.relativePaths`,`Insert Relative Paths`):e.localize(`defaultDropProvider.uriList.relativePath`,`Insert Relative Path`),kind:this.kind}}};ol=tl([nl(0,e.IWorkspaceContextService)],ol);var sl=class{constructor(){this.kind=new G(`html`),this.pasteMimeTypes=[`text/html`],this._yieldTo=[{mimeType:e.Mimes.text}]}async provideDocumentPasteEdits(t,n,r,i,a){if(i.triggerKind!==e.DocumentPasteTriggerKind.PasteAs&&!i.only?.contains(this.kind))return;let o=await r.get(`text/html`)?.asString();if(!(!o||a.isCancellationRequested))return{dispose(){},edits:[{insertText:o,yieldTo:this._yieldTo,title:e.localize(`pasteHtmlLabel`,`Insert HTML`),kind:this.kind}]}}};async function cl(t){let n=t.get(e.Mimes.uriList);if(!n)return[];let r=await n.asString(),i=[];for(let t of Kc.parse(r))try{i.push({uri:e.URI.parse(t),originalText:t})}catch{}return i}var ll=class extends e.Disposable{constructor(e,t){super(),this._register(e.documentDropEditProvider.register(`*`,new il)),this._register(e.documentDropEditProvider.register(`*`,new al)),this._register(e.documentDropEditProvider.register(`*`,new ol(t)))}};ll=tl([nl(0,e.ILanguageFeaturesService),nl(1,e.IWorkspaceContextService)],ll);var ul=class extends e.Disposable{constructor(e,t){super(),this._register(e.documentPasteEditProvider.register(`*`,new il)),this._register(e.documentPasteEditProvider.register(`*`,new al)),this._register(e.documentPasteEditProvider.register(`*`,new ol(t))),this._register(e.documentPasteEditProvider.register(`*`,new sl))}};ul=tl([nl(0,e.ILanguageFeaturesService),nl(1,e.IWorkspaceContextService)],ul);var dl=class e{constructor(){this.value=``,this.pos=0}static{this._table={36:0,58:1,44:2,123:3,125:4,92:5,47:6,124:7,43:11,45:12,63:13}}static isDigitCharacter(e){return e>=48&&e<=57}static isVariableCharacter(e){return e===95||e>=97&&e<=122||e>=65&&e<=90}text(e){this.value=e,this.pos=0}tokenText(e){return this.value.substr(e.pos,e.len)}next(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};let t=this.pos,n=0,r=this.value.charCodeAt(t),i;if(i=e._table[r],typeof i==`number`)return this.pos+=1,{type:i,pos:t,len:1};if(e.isDigitCharacter(r)){i=8;do n+=1,r=this.value.charCodeAt(t+n);while(e.isDigitCharacter(r));return this.pos+=n,{type:i,pos:t,len:n}}if(e.isVariableCharacter(r)){i=9;do r=this.value.charCodeAt(t+ ++n);while(e.isVariableCharacter(r)||e.isDigitCharacter(r));return this.pos+=n,{type:i,pos:t,len:n}}i=10;do n+=1,r=this.value.charCodeAt(t+n);while(!isNaN(r)&&e._table[r]===void 0&&!e.isDigitCharacter(r)&&!e.isVariableCharacter(r));return this.pos+=n,{type:i,pos:t,len:n}}},fl=class{constructor(){this._children=[]}appendChild(e){return e instanceof pl&&this._children[this._children.length-1]instanceof pl?this._children[this._children.length-1].value+=e.value:(e.parent=this,this._children.push(e)),this}replace(e,t){let{parent:n}=e,r=n.children.indexOf(e),i=n.children.slice(0);i.splice(r,1,...t),n._children=i,(function e(t,n){for(let r of t)r.parent=n,e(r.children,r)})(t,n)}get children(){return this._children}get rightMostDescendant(){return this._children.length>0?this._children[this._children.length-1].rightMostDescendant:this}get snippet(){let e=this;for(;;){if(!e)return;if(e instanceof xl)return e;e=e.parent}}toString(){return this.children.reduce((e,t)=>e+t.toString(),``)}len(){return 0}},pl=class e extends fl{constructor(e){super(),this.value=e}toString(){return this.value}len(){return this.value.length}clone(){return new e(this.value)}},ml=class extends fl{},hl=class e extends ml{static compareByIndex(e,t){return e.index===t.index?0:e.isFinalTabstop?1:t.isFinalTabstop||e.index<t.index?-1:e.index>t.index?1:0}constructor(e){super(),this.index=e}get isFinalTabstop(){return this.index===0}get choice(){return this._children.length===1&&this._children[0]instanceof gl?this._children[0]:void 0}clone(){let t=new e(this.index);return this.transform&&(t.transform=this.transform.clone()),t._children=this.children.map(e=>e.clone()),t}},gl=class e extends fl{constructor(){super(...arguments),this.options=[]}appendChild(e){return e instanceof pl&&(e.parent=this,this.options.push(e)),this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){let t=new e;return this.options.forEach(t.appendChild,t),t}},_l=class e extends fl{constructor(){super(...arguments),this.regexp=RegExp(``)}resolve(e){let t=this,n=!1,r=e.replace(this.regexp,function(){return n=!0,t._replace(Array.prototype.slice.call(arguments,0,-2))});return!n&&this._children.some(e=>e instanceof vl&&!!e.elseValue)&&(r=this._replace([])),r}_replace(e){let t=``;for(let n of this._children)if(n instanceof vl){let r=e[n.index]||``;r=n.resolve(r),t+=r}else t+=n.toString();return t}toString(){return``}clone(){let t=new e;return t.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?`i`:``)+(this.regexp.global?`g`:``)),t._children=this.children.map(e=>e.clone()),t}},vl=class e extends fl{constructor(e,t,n,r){super(),this.index=e,this.shorthandName=t,this.ifValue=n,this.elseValue=r}resolve(e){return this.shorthandName===`upcase`?e?e.toLocaleUpperCase():``:this.shorthandName===`downcase`?e?e.toLocaleLowerCase():``:this.shorthandName===`capitalize`?e?e[0].toLocaleUpperCase()+e.substr(1):``:this.shorthandName===`pascalcase`?e?this._toPascalCase(e):``:this.shorthandName===`camelcase`?e?this._toCamelCase(e):``:e&&typeof this.ifValue==`string`?this.ifValue:!e&&typeof this.elseValue==`string`?this.elseValue:e||``}_toPascalCase(e){let t=e.match(/[a-z0-9]+/gi);return t?t.map(e=>e.charAt(0).toUpperCase()+e.substr(1)).join(``):e}_toCamelCase(e){let t=e.match(/[a-z0-9]+/gi);return t?t.map((e,t)=>t===0?e.charAt(0).toLowerCase()+e.substr(1):e.charAt(0).toUpperCase()+e.substr(1)).join(``):e}clone(){return new e(this.index,this.shorthandName,this.ifValue,this.elseValue)}},yl=class e extends ml{constructor(e){super(),this.name=e}resolve(e){let t=e.resolve(this);return this.transform&&(t=this.transform.resolve(t||``)),t===void 0?!1:(this._children=[new pl(t)],!0)}clone(){let t=new e(this.name);return this.transform&&(t.transform=this.transform.clone()),t._children=this.children.map(e=>e.clone()),t}};function bl(e,t){let n=[...e];for(;n.length>0;){let e=n.shift();if(!t(e))break;n.unshift(...e.children)}}var xl=class e extends fl{get placeholderInfo(){if(!this._placeholders){let e=[],t;this.walk(function(n){return n instanceof hl&&(e.push(n),t=!t||t.index<n.index?n:t),!0}),this._placeholders={all:e,last:t}}return this._placeholders}get placeholders(){let{all:e}=this.placeholderInfo;return e}offset(e){let t=0,n=!1;return this.walk(r=>r===e?(n=!0,!1):(t+=r.len(),!0)),n?t:-1}fullLen(e){let t=0;return bl([e],e=>(t+=e.len(),!0)),t}enclosingPlaceholders(e){let t=[],{parent:n}=e;for(;n;)n instanceof hl&&t.push(n),n=n.parent;return t}resolveVariables(e){return this.walk(t=>(t instanceof yl&&t.resolve(e)&&(this._placeholders=void 0),!0)),this}appendChild(e){return this._placeholders=void 0,super.appendChild(e)}replace(e,t){return this._placeholders=void 0,super.replace(e,t)}clone(){let t=new e;return this._children=this.children.map(e=>e.clone()),t}walk(e){bl(this.children,e)}},Sl=class{constructor(){this._scanner=new dl,this._token={type:14,pos:0,len:0}}static escape(e){return e.replace(/\$|}|\\/g,`\\$&`)}static guessNeedsClipboard(e){return/\${?CLIPBOARD/.test(e)}parse(e,t,n){let r=new xl;return this.parseFragment(e,r),this.ensureFinalTabstop(r,n??!1,t??!1),r}parseFragment(e,t){let n=t.children.length;for(this._scanner.text(e),this._token=this._scanner.next();this._parse(t););let r=new Map,i=[];t.walk(e=>(e instanceof hl&&(e.isFinalTabstop?r.set(0,void 0):!r.has(e.index)&&e.children.length>0?r.set(e.index,e.children):i.push(e)),!0));let a=(e,n)=>{let i=r.get(e.index);if(!i)return;let o=new hl(e.index);o.transform=e.transform;for(let e of i){let t=e.clone();o.appendChild(t),t instanceof hl&&r.has(t.index)&&!n.has(t.index)&&(n.add(t.index),a(t,n),n.delete(t.index))}t.replace(e,[o])},o=new Set;for(let e of i)a(e,o);return t.children.slice(n)}ensureFinalTabstop(e,t,n){(t||n&&e.placeholders.length>0)&&(e.placeholders.find(e=>e.index===0)||e.appendChild(new hl(0)))}_accept(e,t){if(e===void 0||this._token.type===e){let e=t?this._scanner.tokenText(this._token):!0;return this._token=this._scanner.next(),e}return!1}_backTo(e){return this._scanner.pos=e.pos+e.len,this._token=e,!1}_until(e){let t=this._token;for(;this._token.type!==e;){if(this._token.type===14)return!1;if(this._token.type===5){let e=this._scanner.next();if(e.type!==0&&e.type!==4&&e.type!==5)return!1}this._token=this._scanner.next()}let n=this._scanner.value.substring(t.pos,this._token.pos).replace(/\\(\$|}|\\)/g,`$1`);return this._token=this._scanner.next(),n}_parse(e){return this._parseEscaped(e)||this._parseTabstopOrVariableName(e)||this._parseComplexPlaceholder(e)||this._parseComplexVariable(e)||this._parseAnything(e)}_parseEscaped(e){let t;return(t=this._accept(5,!0))?(t=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||t,e.appendChild(new pl(t)),!0):!1}_parseTabstopOrVariableName(e){let t,n=this._token;return this._accept(0)&&(t=this._accept(9,!0)||this._accept(8,!0))?(e.appendChild(/^\d+$/.test(t)?new hl(Number(t)):new yl(t)),!0):this._backTo(n)}_parseComplexPlaceholder(e){let t,n=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(8,!0))))return this._backTo(n);let r=new hl(Number(t));if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(r),!0;if(!this._parse(r))return e.appendChild(new pl("${"+t+`:`)),r.children.forEach(e.appendChild,e),!0}else if(r.index>0&&this._accept(7)){let t=new gl;for(;;){if(this._parseChoiceElement(t)){if(this._accept(2))continue;if(this._accept(7)&&(r.appendChild(t),this._accept(4)))return e.appendChild(r),!0}return this._backTo(n),!1}}else if(this._accept(6))return this._parseTransform(r)?(e.appendChild(r),!0):(this._backTo(n),!1);else if(this._accept(4))return e.appendChild(r),!0;else return this._backTo(n)}_parseChoiceElement(e){let t=this._token,n=[];for(;!(this._token.type===2||this._token.type===7);){let e;if(e=(e=this._accept(5,!0))?this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||e:this._accept(void 0,!0),!e)return this._backTo(t),!1;n.push(e)}return n.length===0?(this._backTo(t),!1):(e.appendChild(new pl(n.join(``))),!0)}_parseComplexVariable(e){let t,n=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(9,!0))))return this._backTo(n);let r=new yl(t);if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(r),!0;if(!this._parse(r))return e.appendChild(new pl("${"+t+`:`)),r.children.forEach(e.appendChild,e),!0}else if(this._accept(6))return this._parseTransform(r)?(e.appendChild(r),!0):(this._backTo(n),!1);else if(this._accept(4))return e.appendChild(r),!0;else return this._backTo(n)}_parseTransform(e){let t=new _l,n=``,r=``;for(;!this._accept(6);){let e;if(e=this._accept(5,!0)){e=this._accept(6,!0)||e,n+=e;continue}if(this._token.type!==14){n+=this._accept(void 0,!0);continue}return!1}for(;!this._accept(6);){let e;if(e=this._accept(5,!0)){e=this._accept(5,!0)||this._accept(6,!0)||e,t.appendChild(new pl(e));continue}if(!(this._parseFormatString(t)||this._parseAnything(t)))return!1}for(;!this._accept(4);){if(this._token.type!==14){r+=this._accept(void 0,!0);continue}return!1}try{t.regexp=new RegExp(n,r)}catch{return!1}return e.transform=t,!0}_parseFormatString(e){let t=this._token;if(!this._accept(0))return!1;let n=!1;this._accept(3)&&(n=!0);let r=this._accept(8,!0);if(r)if(n){if(this._accept(4))return e.appendChild(new vl(Number(r))),!0;if(!this._accept(1))return this._backTo(t),!1}else return e.appendChild(new vl(Number(r))),!0;else return this._backTo(t),!1;if(this._accept(6)){let n=this._accept(9,!0);return!n||!this._accept(4)?(this._backTo(t),!1):(e.appendChild(new vl(Number(r),n)),!0)}else if(this._accept(11)){let t=this._until(4);if(t)return e.appendChild(new vl(Number(r),void 0,t,void 0)),!0}else if(this._accept(12)){let t=this._until(4);if(t)return e.appendChild(new vl(Number(r),void 0,void 0,t)),!0}else if(this._accept(13)){let t=this._until(1);if(t){let n=this._until(4);if(n)return e.appendChild(new vl(Number(r),void 0,t,n)),!0}}else{let t=this._until(4);if(t)return e.appendChild(new vl(Number(r),void 0,void 0,t)),!0}return this._backTo(t),!1}_parseAnything(e){return this._token.type===14?!1:(e.appendChild(new pl(this._scanner.tokenText(this._token))),this._accept(void 0),!0)}};function Cl(t,n,r){return(typeof r.insertText==`string`?r.insertText===``:r.insertText.snippet===``)?{edits:r.additionalEdit?.edits??[]}:{edits:[...n.map(n=>new e.ResourceTextEdit(t,{range:n,text:typeof r.insertText==`string`?Sl.escape(r.insertText)+`$0`:r.insertText.snippet,insertAsSnippet:!0})),...r.additionalEdit?.edits??[]]}}function wl(e){function t(e,t){return`mimeType`in e?e.mimeType===t.handledMimeType:!!t.kind&&e.kind.contains(t.kind)}let n=new Map;for(let r of e)for(let i of r.yieldTo??[])for(let a of e)if(a!==r&&t(i,a)){let e=n.get(r);e||(e=[],n.set(r,e)),e.push(a)}if(!n.size)return Array.from(e);let r=new Set,i=[];function a(e){if(!e.length)return[];let t=e[0];if(i.includes(t))return console.warn(`Yield to cycle detected`,t),e;if(r.has(t))return a(e.slice(1));let o=[],s=n.get(t);return s&&(i.push(t),o=a(s),i.pop()),r.add(t),[...o,t,...a(e.slice(1))]}return a(Array.from(e))}var Tl=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},El=function(e,t){return function(n,r){t(n,r,e)}},Dl=e.ModelDecorationOptions.register({description:`inline-progress-widget`,stickiness:1,showIfCollapsed:!0,after:{content:`\xA0`,inlineClassName:`inline-editor-progress-decoration`,inlineClassNameAffectsLetterSpacing:!0}}),Ol=class t extends e.Disposable{static{this.baseId=`editor.widget.inlineProgressWidget`}constructor(e,t,n,r,i){super(),this.typeId=e,this.editor=t,this.range=n,this.delegate=i,this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this.create(r),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this)}create(t){this.domNode=e.$(`.inline-progress-widget`),this.domNode.role=`button`,this.domNode.title=t;let n=e.$(`span.icon`);this.domNode.append(n),n.classList.add(...e.ThemeIcon.asClassNameArray(e.Codicon.loading),`codicon-modifier-spin`);let r=()=>{let e=this.editor.getOption(67);this.domNode.style.height=`${e}px`,this.domNode.style.width=`${Math.ceil(.8*e)}px`};r(),this._register(this.editor.onDidChangeConfiguration(e=>{(e.hasChanged(52)||e.hasChanged(67))&&r()})),this._register(e.addDisposableListener(this.domNode,e.EventType$1.CLICK,e=>{this.delegate.cancel()}))}getId(){return t.baseId+`.`+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:{lineNumber:this.range.startLineNumber,column:this.range.startColumn},preference:[0]}}dispose(){super.dispose(),this.editor.removeContentWidget(this)}},kl=class extends e.Disposable{constructor(t,n,r){super(),this.id=t,this._editor=n,this._instantiationService=r,this._showDelay=500,this._showPromise=this._register(new e.MutableDisposable),this._currentWidget=this._register(new e.MutableDisposable),this._operationIdPool=0,this._currentDecorations=n.createDecorationsCollection()}dispose(){super.dispose(),this._currentDecorations.clear()}async showWhile(t,n,r,i,a){let o=this._operationIdPool++;this._currentOperation=o,this.clear(),this._showPromise.value=e.disposableTimeout(()=>{let r=e.Range$1.fromPositions(t);this._currentDecorations.set([{range:r,options:Dl}]).length>0&&(this._currentWidget.value=this._instantiationService.createInstance(Ol,this.id,this._editor,r,n,i))},a??this._showDelay);try{return await r}finally{this._currentOperation===o&&(this.clear(),this._currentOperation=void 0)}}clear(){this._showPromise.clear(),this._currentDecorations.clear(),this._currentWidget.clear()}};kl=Tl([El(2,e.IInstantiationService)],kl);var Al=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},jl=function(e,t){return function(n,r){t(n,r,e)}},Ml,Nl=class{static{Ml=this}static{this.ID=`editor.contrib.messageController`}static{this.MESSAGE_VISIBLE=new e.RawContextKey(`messageVisible`,!1,e.localize(`messageVisible`,`Whether the editor is currently showing an inline message`))}static get(e){return e.getContribution(Ml.ID)}constructor(t,n,r){this._openerService=r,this._messageWidget=new e.MutableDisposable,this._messageListeners=new e.DisposableStore,this._mouseOverMessage=!1,this._editor=t,this._visible=Ml.MESSAGE_VISIBLE.bindTo(n)}dispose(){this._message?.dispose(),this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}showMessage(t,n){e.alert(e.isMarkdownString(t)?t.value:t),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),this._message=e.isMarkdownString(t)?e.renderMarkdown(t,{actionHandler:{callback:n=>{this.closeMessage(),e.openLinkFromMarkdown(this._openerService,n,e.isMarkdownString(t)?t.isTrusted:void 0)},disposables:this._messageListeners}}):void 0,this._messageWidget.value=new Fl(this._editor,n,typeof t==`string`?t:this._message.element),this._messageListeners.add(e.Event.debounce(this._editor.onDidBlurEditorText,(e,t)=>t,0)(()=>{this._mouseOverMessage||this._messageWidget.value&&e.isAncestor(e.getActiveElement(),this._messageWidget.value.getDomNode())||this.closeMessage()})),this._messageListeners.add(this._editor.onDidChangeCursorPosition(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidDispose(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidChangeModel(()=>this.closeMessage())),this._messageListeners.add(e.addDisposableListener(this._messageWidget.value.getDomNode(),e.EventType$1.MOUSE_ENTER,()=>this._mouseOverMessage=!0,!0)),this._messageListeners.add(e.addDisposableListener(this._messageWidget.value.getDomNode(),e.EventType$1.MOUSE_LEAVE,()=>this._mouseOverMessage=!1,!0));let r;this._messageListeners.add(this._editor.onMouseMove(t=>{t.target.position&&(r?r.containsPosition(t.target.position)||this.closeMessage():r=new e.Range$1(n.lineNumber-3,1,t.target.position.lineNumber+3,1))}))}closeMessage(){this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value&&this._messageListeners.add(Fl.fadeOut(this._messageWidget.value))}};Nl=Ml=Al([jl(1,e.IContextKeyService),jl(2,e.IOpenerService)],Nl);var Pl=e.EditorCommand.bindToContribution(Nl.get);e.registerEditorCommand(new Pl({id:`leaveEditorMessage`,precondition:Nl.MESSAGE_VISIBLE,handler:e=>e.closeMessage(),kbOpts:{weight:130,primary:9}}));var Fl=class{static fadeOut(e){let t=()=>{e.dispose(),clearTimeout(n),e.getDomNode().removeEventListener(`animationend`,t)},n=setTimeout(t,110);return e.getDomNode().addEventListener(`animationend`,t),e.getDomNode().classList.add(`fadeOut`),{dispose:t}}constructor(e,{lineNumber:t,column:n},r){this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=e,this._editor.revealLinesInCenterIfOutsideViewport(t,t,0),this._position={lineNumber:t,column:n},this._domNode=document.createElement(`div`),this._domNode.classList.add(`monaco-editor-overlaymessage`),this._domNode.style.marginLeft=`-6px`;let i=document.createElement(`div`);i.classList.add(`anchor`,`top`),this._domNode.appendChild(i);let a=document.createElement(`div`);typeof r==`string`?(a.classList.add(`message`),a.textContent=r):(r.classList.add(`message`),a.appendChild(r)),this._domNode.appendChild(a);let o=document.createElement(`div`);o.classList.add(`anchor`,`below`),this._domNode.appendChild(o),this._editor.addContentWidget(this),this._domNode.classList.add(`fadeIn`)}dispose(){this._editor.removeContentWidget(this)}getId(){return`messageoverlay`}getDomNode(){return this._domNode}getPosition(){return{position:this._position,preference:[1,2],positionAffinity:1}}afterRender(e){this._domNode.classList.toggle(`below`,e===2)}};e.registerEditorContribution(Nl.ID,Nl,4);function Il(t,n){return n&&(t.stack||t.stacktrace)?e.localize(`stackTrace.format`,`{0}: {1}`,Rl(t),Ll(t.stack)||Ll(t.stacktrace)):Rl(t)}function Ll(e){return Array.isArray(e)?e.join(`
`):e}function Rl(t){return t.code===`ERR_UNC_HOST_NOT_ALLOWED`?`${t.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`:typeof t.code==`string`&&typeof t.errno==`number`&&typeof t.syscall==`string`?e.localize(`nodeExceptionMessage`,`A system error occurred ({0})`,t.message):t.message||e.localize(`error.defaultMessage`,`An unknown error occurred. Please consult the log for more details.`)}function zl(t=null,n=!1){if(!t)return e.localize(`error.defaultMessage`,`An unknown error occurred. Please consult the log for more details.`);if(Array.isArray(t)){let r=e.coalesce(t),i=zl(r[0],n);return r.length>1?e.localize(`error.moreErrors`,`{0} ({1} errors in total)`,i,r.length):i}if(e.isString(t))return t;if(t.detail){let e=t.detail;if(e.error)return Il(e.error,n);if(e.exception)return Il(e.exception,n)}return t.stack?Il(t,n):t.message?t.message:e.localize(`error.defaultMessage`,`An unknown error occurred. Please consult the log for more details.`)}var Bl=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Vl=function(e,t){return function(n,r){t(n,r,e)}},Hl,Ul=class extends e.Disposable{static{Hl=this}static{this.baseId=`editor.widget.postEditWidget`}constructor(t,n,r,i,a,o,s,c,l,u){super(),this.typeId=t,this.editor=n,this.showCommand=i,this.range=a,this.edits=o,this.onSelectNewEdit=s,this._contextMenuService=c,this._keybindingService=u,this.allowEditorOverflow=!0,this.suppressMouseDown=!0,this.create(),this.visibleContext=r.bindTo(l),this.visibleContext.set(!0),this._register(e.toDisposable(()=>this.visibleContext.reset())),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this),this._register(e.toDisposable((()=>this.editor.removeContentWidget(this)))),this._register(this.editor.onDidChangeCursorPosition(e=>{a.containsPosition(e.position)||this.dispose()})),this._register(e.Event.runAndSubscribe(u.onDidUpdateKeybindings,()=>{this._updateButtonTitle()}))}_updateButtonTitle(){let e=this._keybindingService.lookupKeybinding(this.showCommand.id)?.getLabel();this.button.element.title=this.showCommand.label+(e?` (${e})`:``)}create(){this.domNode=e.$(`.post-edit-widget`),this.button=this._register(new e.Button(this.domNode,{supportIcons:!0})),this.button.label=`$(insert)`,this._register(e.addDisposableListener(this.domNode,e.EventType$1.CLICK,()=>this.showSelector()))}getId(){return Hl.baseId+`.`+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:this.range.getEndPosition(),preference:[2]}}showSelector(){this._contextMenuService.showContextMenu({getAnchor:()=>{let t=e.getDomNodePagePosition(this.button.element);return{x:t.left+t.width,y:t.top+t.height}},getActions:()=>this.edits.allEdits.map((t,n)=>e.toAction({id:``,label:t.title,checked:n===this.edits.activeEditIndex,run:()=>{if(n!==this.edits.activeEditIndex)return this.onSelectNewEdit(n)}}))})}};Ul=Hl=Bl([Vl(7,e.IContextMenuService),Vl(8,e.IContextKeyService),Vl(9,e.IKeybindingService)],Ul);var Wl=class extends e.Disposable{constructor(t,n,r,i,a,o,s){super(),this._id=t,this._editor=n,this._visibleContext=r,this._showCommand=i,this._instantiationService=a,this._bulkEditService=o,this._notificationService=s,this._currentWidget=this._register(new e.MutableDisposable),this._register(e.Event.any(n.onDidChangeModel,n.onDidChangeModelContent)(()=>this.clear()))}async applyEditAndShowIfNeeded(t,n,r,i,a){let o=this._editor.getModel();if(!o||!t.length)return;let s=n.allEdits.at(n.activeEditIndex);if(!s)return;let c=async e=>{let o=this._editor.getModel();o&&(await o.undo(),this.applyEditAndShowIfNeeded(t,{activeEditIndex:e,allEdits:n.allEdits},r,i,a))},l=(i,a)=>{e.isCancellationError(i)||(this._notificationService.error(a),r&&this.show(t[0],n,c))},u;try{u=await i(s,a)}catch(t){return l(t,e.localize(`resolveError`,`Error resolving edit '{0}':
{1}`,s.title,zl(t)))}if(a.isCancellationRequested)return;let d=Cl(o.uri,t,u),f=t[0],p=o.deltaDecorations([],[{range:f,options:{description:`paste-line-suffix`,stickiness:0}}]);this._editor.focus();let m,h;try{m=await this._bulkEditService.apply(d,{editor:this._editor,token:a}),h=o.getDecorationRange(p[0])}catch(t){return l(t,e.localize(`applyError`,`Error applying edit '{0}':
{1}`,s.title,zl(t)))}finally{o.deltaDecorations(p,[])}a.isCancellationRequested||r&&m.isApplied&&n.allEdits.length>1&&this.show(h??f,n,c)}show(e,t,n){this.clear(),this._editor.hasModel()&&(this._currentWidget.value=this._instantiationService.createInstance(Ul,this._id,this._editor,this._visibleContext,this._showCommand,e,t,n))}clear(){this._currentWidget.clear()}tryShowSelector(){this._currentWidget.value?.showSelector()}};Wl=Bl([Vl(4,e.IInstantiationService),Vl(5,e.IBulkEditService),Vl(6,e.INotificationService)],Wl);var Gl=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Kl=function(e,t){return function(n,r){t(n,r,e)}},ql;const Jl=`editor.changePasteType`,Yl=new e.RawContextKey(`pasteWidgetVisible`,!1,e.localize(`pasteWidgetVisible`,`Whether the paste widget is showing`));var Xl=`application/vnd.code.copyMetadata`,Zl=class extends e.Disposable{static{ql=this}static{this.ID=`editor.contrib.copyPasteActionController`}static get(e){return e.getContribution(ql.ID)}constructor(t,n,r,i,a,o,s){super(),this._bulkEditService=r,this._clipboardService=i,this._languageFeaturesService=a,this._quickInputService=o,this._progressService=s,this._editor=t;let c=t.getContainerDomNode();this._register(e.addDisposableListener(c,`copy`,e=>this.handleCopy(e))),this._register(e.addDisposableListener(c,`cut`,e=>this.handleCopy(e))),this._register(e.addDisposableListener(c,`paste`,e=>this.handlePaste(e),!0)),this._pasteProgressManager=this._register(new kl(`pasteIntoEditor`,t,n)),this._postPasteWidgetManager=this._register(n.createInstance(Wl,`pasteIntoEditor`,t,Yl,{id:Jl,label:e.localize(`postPasteWidgetTitle`,`Show paste options...`)}))}changePasteType(){this._postPasteWidgetManager.tryShowSelector()}pasteAs(t){this._editor.focus();try{this._pasteAsActionContext={preferred:t},e.getActiveDocument().execCommand(`paste`)}finally{this._pasteAsActionContext=void 0}}clearWidgets(){this._postPasteWidgetManager.clear()}isPasteAsEnabled(){return this._editor.getOption(85).enabled}async finishedPaste(){await this._currentPasteOperation}handleCopy(t){if(!this._editor.hasTextFocus()||(this._clipboardService.clearInternalState?.(),!t.clipboardData||!this.isPasteAsEnabled()))return;let n=this._editor.getModel(),r=this._editor.getSelections();if(!n||!r?.length)return;let i=this._editor.getOption(37),a=r,o=r.length===1&&r[0].isEmpty();if(o){if(!i)return;a=[new e.Range$1(a[0].startLineNumber,1,a[0].startLineNumber,1+n.getLineLength(a[0].startLineNumber))]}let s=this._editor._getViewModel()?.getPlainTextToCopy(r,i,e.isWindows),c={multicursorText:Array.isArray(s)?s:null,pasteOnNewLine:o,mode:null},l=this._languageFeaturesService.documentPasteEditProvider.ordered(n).filter(e=>!!e.prepareDocumentPaste);if(!l.length){this.setCopyMetadata(t.clipboardData,{defaultPastePayload:c});return}let u=Zc(t.clipboardData),d=l.flatMap(e=>e.copyMimeTypes??[]),f=zc();this.setCopyMetadata(t.clipboardData,{id:f,providerCopyMimeTypes:d,defaultPastePayload:c});let p=e.createCancelablePromise(async t=>{let r=e.coalesce(await Promise.all(l.map(async e=>{try{return await e.prepareDocumentPaste(n,a,u,t)}catch(e){console.error(e);return}})));r.reverse();for(let e of r)for(let[t,n]of e)u.replace(t,n);return u});ql._currentCopyOperation?.dataTransferPromise.cancel(),ql._currentCopyOperation={handle:f,dataTransferPromise:p}}async handlePaste(t){if(!t.clipboardData||!this._editor.hasTextFocus())return;Nl.get(this._editor)?.closeMessage(),this._currentPasteOperation?.cancel(),this._currentPasteOperation=void 0;let n=this._editor.getModel(),r=this._editor.getSelections();if(!r?.length||!n||this._editor.getOption(92)||!this.isPasteAsEnabled()&&!this._pasteAsActionContext)return;let i=this.fetchCopyMetadata(t),a=el(t.clipboardData);a.delete(Xl);let o=[...t.clipboardData.types,...i?.providerCopyMimeTypes??[],e.Mimes.uriList],s=this._languageFeaturesService.documentPasteEditProvider.ordered(n).filter(e=>{let t=this._pasteAsActionContext?.preferred;return t&&e.providedPasteEditKinds&&!this.providerMatchesPreference(e,t)?!1:e.pasteMimeTypes?.some(e=>Wc(e,o))});if(!s.length){this._pasteAsActionContext?.preferred&&this.showPasteAsNoEditMessage(r,this._pasteAsActionContext.preferred);return}t.preventDefault(),t.stopImmediatePropagation(),this._pasteAsActionContext?this.showPasteAsPick(this._pasteAsActionContext.preferred,s,r,a,i):this.doPasteInline(s,r,a,i,t)}showPasteAsNoEditMessage(t,n){Nl.get(this._editor)?.showMessage(e.localize(`pasteAsError`,`No paste edits for '{0}' found`,n instanceof G?n.value:n.providerId),t[0].getStartPosition())}doPasteInline(t,n,r,i,a){let o=this._editor;if(!o.hasModel())return;let s=new e.EditorStateCancellationTokenSource(o,3,void 0),c=e.createCancelablePromise(async o=>{let l=this._editor;if(!l.hasModel())return;let u=l.getModel(),d=new e.DisposableStore,f=d.add(new e.CancellationTokenSource$1(o));d.add(s.token.onCancellationRequested(()=>f.cancel()));let p=f.token;try{if(await this.mergeInDataFromCopy(r,i,p),p.isCancellationRequested)return;let o=t.filter(e=>this.isSupportedPasteProvider(e,r));if(!o.length||o.length===1&&o[0]instanceof il)return this.applyDefaultPasteHandler(r,i,p,a);let s={triggerKind:e.DocumentPasteTriggerKind.Automatic},c=await this.getPasteEdits(o,r,u,n,s,p);if(d.add(c),p.isCancellationRequested)return;if(c.edits.length===1&&c.edits[0].provider instanceof il)return this.applyDefaultPasteHandler(r,i,p,a);if(c.edits.length){let t=l.getOption(85).showPasteSelector===`afterPaste`;return this._postPasteWidgetManager.applyEditAndShowIfNeeded(n,{activeEditIndex:0,allEdits:c.edits},t,(t,r)=>new Promise((i,a)=>{(async()=>{try{let o=t.provider.resolveDocumentPasteEdit?.(t,r),s=new e.DeferredPromise,c=o&&await this._pasteProgressManager.showWhile(n[0].getEndPosition(),e.localize(`resolveProcess`,`Resolving paste edit. Click to cancel`),Promise.race([s.p,o]),{cancel:()=>(s.cancel(),a(new e.CancellationError))},0);return c&&(t.additionalEdit=c.additionalEdit),i(t)}catch(e){return a(e)}})()}),p)}await this.applyDefaultPasteHandler(r,i,p,a)}finally{d.dispose(),this._currentPasteOperation===c&&(this._currentPasteOperation=void 0)}});this._pasteProgressManager.showWhile(n[0].getEndPosition(),e.localize(`pasteIntoEditorProgress`,`Running paste handlers. Click to cancel and do basic paste`),c,{cancel:async()=>{try{if(c.cancel(),s.token.isCancellationRequested)return;await this.applyDefaultPasteHandler(r,i,s.token,a)}finally{s.dispose()}}}).then(()=>{s.dispose()}),this._currentPasteOperation=c}showPasteAsPick(t,n,r,i,a){let o=e.createCancelablePromise(async s=>{let c=this._editor;if(!c.hasModel())return;let l=c.getModel(),u=new e.DisposableStore,d=u.add(new e.EditorStateCancellationTokenSource(c,3,void 0,s));try{if(await this.mergeInDataFromCopy(i,a,d.token),d.token.isCancellationRequested)return;let o=n.filter(e=>this.isSupportedPasteProvider(e,i,t));t&&(o=o.filter(e=>this.providerMatchesPreference(e,t)));let s={triggerKind:e.DocumentPasteTriggerKind.PasteAs,only:t&&t instanceof G?t:void 0},c=u.add(await this.getPasteEdits(o,i,l,r,s,d.token));if(d.token.isCancellationRequested)return;if(t&&(c={edits:c.edits.filter(e=>t instanceof G?t.contains(e.kind):t.providerId===e.provider.id),dispose:c.dispose}),!c.edits.length){s.only&&this.showPasteAsNoEditMessage(r,s.only);return}let f;if(f=t?c.edits.at(0):(await this._quickInputService.pick(c.edits.map(e=>({label:e.title,description:e.kind?.value,edit:e})),{placeHolder:e.localize(`pasteAsPickerPlaceholder`,`Select Paste Action`)}))?.edit,!f)return;let p=Cl(l.uri,r,f);await this._bulkEditService.apply(p,{editor:this._editor})}finally{u.dispose(),this._currentPasteOperation===o&&(this._currentPasteOperation=void 0)}});this._progressService.withProgress({location:10,title:e.localize(`pasteAsProgress`,`Running paste handlers`)},()=>o)}setCopyMetadata(e,t){e.setData(Xl,JSON.stringify(t))}fetchCopyMetadata(t){if(!t.clipboardData)return;let n=t.clipboardData.getData(Xl);if(n)try{return JSON.parse(n)}catch{return}let[r,i]=e.ClipboardEventUtils.getTextData(t.clipboardData);if(i)return{defaultPastePayload:{mode:i.mode,multicursorText:i.multicursorText??null,pasteOnNewLine:!!i.isFromEmptySelection}}}async mergeInDataFromCopy(t,n,r){if(n?.id&&ql._currentCopyOperation?.handle===n.id){let e=await ql._currentCopyOperation.dataTransferPromise;if(r.isCancellationRequested)return;for(let[n,r]of e)t.replace(n,r)}if(!t.has(e.Mimes.uriList)){let n=await this._clipboardService.readResources();if(r.isCancellationRequested)return;n.length&&t.append(e.Mimes.uriList,Bc(Kc.create(n)))}}async getPasteEdits(t,n,r,i,a,o){let s=new e.DisposableStore,c=await e.raceCancellation(Promise.all(t.map(async t=>{try{let e=await t.provideDocumentPasteEdits?.(r,i,n,a,o);return e&&s.add(e),e?.edits?.map(e=>({...e,provider:t}))}catch(t){e.isCancellationError(t)||console.error(t);return}})),o),l=e.coalesce(c??[]).flat().filter(e=>!a.only||a.only.contains(e.kind));return{edits:wl(l),dispose:()=>s.dispose()}}async applyDefaultPasteHandler(t,n,r,i){let a=await(t.get(e.Mimes.text)??t.get(`text`))?.asString()??``;if(r.isCancellationRequested)return;let o={clipboardEvent:i,text:a,pasteOnNewLine:n?.defaultPastePayload.pasteOnNewLine??!1,multicursorText:n?.defaultPastePayload.multicursorText??null,mode:null};this._editor.trigger(`keyboard`,`paste`,o)}isSupportedPasteProvider(e,t,n){return e.pasteMimeTypes?.some(e=>t.matches(e))?!n||this.providerMatchesPreference(e,n):!1}providerMatchesPreference(e,t){return t instanceof G?e.providedPasteEditKinds?e.providedPasteEditKinds.some(e=>t.contains(e)):!0:e.id===t.providerId}};Zl=ql=Gl([Kl(1,e.IInstantiationService),Kl(2,e.IBulkEditService),Kl(3,e.IClipboardService),Kl(4,e.ILanguageFeaturesService),Kl(5,e.IQuickInputService),Kl(6,e.IProgressService)],Zl);var Ql=`9_cutcopypaste`,$l=e.isNative||document.queryCommandSupported(`cut`),eu=e.isNative||document.queryCommandSupported(`copy`),tu=navigator.clipboard===void 0||e.isFirefox?document.queryCommandSupported(`paste`):!0;function nu(e){return e.register(),e}const ru=$l?nu(new e.MultiCommand({id:`editor.action.clipboardCutAction`,precondition:void 0,kbOpts:e.isNative?{primary:2102,win:{primary:2102,secondary:[1044]},weight:100}:void 0,menuOpts:[{menuId:e.MenuId.MenubarEditMenu,group:`2_ccp`,title:e.localize({key:`miCut`,comment:[`&& denotes a mnemonic`]},`Cu&&t`),order:1},{menuId:e.MenuId.EditorContext,group:Ql,title:e.localize(`actions.clipboard.cutLabel`,`Cut`),when:e.EditorContextKeys.writable,order:1},{menuId:e.MenuId.CommandPalette,group:``,title:e.localize(`actions.clipboard.cutLabel`,`Cut`),order:1},{menuId:e.MenuId.SimpleEditorContext,group:Ql,title:e.localize(`actions.clipboard.cutLabel`,`Cut`),when:e.EditorContextKeys.writable,order:1}]})):void 0,iu=eu?nu(new e.MultiCommand({id:`editor.action.clipboardCopyAction`,precondition:void 0,kbOpts:e.isNative?{primary:2081,win:{primary:2081,secondary:[2067]},weight:100}:void 0,menuOpts:[{menuId:e.MenuId.MenubarEditMenu,group:`2_ccp`,title:e.localize({key:`miCopy`,comment:[`&& denotes a mnemonic`]},`&&Copy`),order:2},{menuId:e.MenuId.EditorContext,group:Ql,title:e.localize(`actions.clipboard.copyLabel`,`Copy`),order:2},{menuId:e.MenuId.CommandPalette,group:``,title:e.localize(`actions.clipboard.copyLabel`,`Copy`),order:1},{menuId:e.MenuId.SimpleEditorContext,group:Ql,title:e.localize(`actions.clipboard.copyLabel`,`Copy`),order:2}]})):void 0;e.MenuRegistry.appendMenuItem(e.MenuId.MenubarEditMenu,{submenu:e.MenuId.MenubarCopy,title:e.localize2(`copy as`,`Copy As`),group:`2_ccp`,order:3}),e.MenuRegistry.appendMenuItem(e.MenuId.EditorContext,{submenu:e.MenuId.EditorContextCopy,title:e.localize2(`copy as`,`Copy As`),group:Ql,order:3}),e.MenuRegistry.appendMenuItem(e.MenuId.EditorContext,{submenu:e.MenuId.EditorContextShare,title:e.localize2(`share`,`Share`),group:`11_share`,order:-1,when:e.ContextKeyExpr.and(e.ContextKeyExpr.notEquals(`resourceScheme`,`output`),e.EditorContextKeys.editorTextFocus)}),e.MenuRegistry.appendMenuItem(e.MenuId.ExplorerContext,{submenu:e.MenuId.ExplorerContextShare,title:e.localize2(`share`,`Share`),group:`11_share`,order:-1});const au=tu?nu(new e.MultiCommand({id:`editor.action.clipboardPasteAction`,precondition:void 0,kbOpts:e.isNative?{primary:2100,win:{primary:2100,secondary:[1043]},linux:{primary:2100,secondary:[1043]},weight:100}:void 0,menuOpts:[{menuId:e.MenuId.MenubarEditMenu,group:`2_ccp`,title:e.localize({key:`miPaste`,comment:[`&& denotes a mnemonic`]},`&&Paste`),order:4},{menuId:e.MenuId.EditorContext,group:Ql,title:e.localize(`actions.clipboard.pasteLabel`,`Paste`),when:e.EditorContextKeys.writable,order:4},{menuId:e.MenuId.CommandPalette,group:``,title:e.localize(`actions.clipboard.pasteLabel`,`Paste`),order:1},{menuId:e.MenuId.SimpleEditorContext,group:Ql,title:e.localize(`actions.clipboard.pasteLabel`,`Paste`),when:e.EditorContextKeys.writable,order:4}]})):void 0;var ou=class extends e.EditorAction{constructor(){super({id:`editor.action.clipboardCopyWithSyntaxHighlightingAction`,label:e.localize(`actions.clipboard.copyWithSyntaxHighlightingLabel`,`Copy With Syntax Highlighting`),alias:`Copy With Syntax Highlighting`,precondition:void 0,kbOpts:{kbExpr:e.EditorContextKeys.textInputFocus,primary:0,weight:100}})}run(t,n){n.hasModel()&&(!n.getOption(37)&&n.getSelection().isEmpty()||(e.CopyOptions.forceCopyWithSyntaxHighlighting=!0,n.focus(),n.getContainerDomNode().ownerDocument.execCommand(`copy`),e.CopyOptions.forceCopyWithSyntaxHighlighting=!1))}};function su(t,n){t&&(t.addImplementation(1e4,`code-editor`,(t,r)=>{let i=t.get(e.ICodeEditorService).getFocusedCodeEditor();if(i&&i.hasTextFocus()){let e=i.getOption(37),t=i.getSelection();return t&&t.isEmpty()&&!e||i.getContainerDomNode().ownerDocument.execCommand(n),!0}return!1}),t.addImplementation(0,`generic-dom`,(t,r)=>(e.getActiveDocument().execCommand(n),!0)))}su(ru,`cut`),su(iu,`copy`),au&&(au.addImplementation(1e4,`code-editor`,(t,n)=>{let r=t.get(e.ICodeEditorService),i=t.get(e.IClipboardService),a=r.getFocusedCodeEditor();return a&&a.hasTextFocus()?a.getContainerDomNode().ownerDocument.execCommand(`paste`)?Zl.get(a)?.finishedPaste()??Promise.resolve():e.isWeb?(async()=>{let t=await i.readText();if(t!==``){let n=e.InMemoryClipboardMetadataManager.INSTANCE.get(t),r=!1,i=null,o=null;n&&(r=a.getOption(37)&&!!n.isFromEmptySelection,i=n.multicursorText===void 0?null:n.multicursorText,o=n.mode),a.trigger(`keyboard`,`paste`,{text:t,pasteOnNewLine:r,multicursorText:i,mode:o})}})():!0:!1}),au.addImplementation(0,`generic-dom`,(t,n)=>(e.getActiveDocument().execCommand(`paste`),!0))),eu&&e.registerEditorAction(ou);const K=new class{constructor(){this.QuickFix=new G(`quickfix`),this.Refactor=new G(`refactor`),this.RefactorExtract=this.Refactor.append(`extract`),this.RefactorInline=this.Refactor.append(`inline`),this.RefactorMove=this.Refactor.append(`move`),this.RefactorRewrite=this.Refactor.append(`rewrite`),this.Notebook=new G(`notebook`),this.Source=new G(`source`),this.SourceOrganizeImports=this.Source.append(`organizeImports`),this.SourceFixAll=this.Source.append(`fixAll`),this.SurroundWith=this.Refactor.append(`surround`)}};var cu;(function(e){e.Refactor=`refactor`,e.RefactorPreview=`refactor preview`,e.Lightbulb=`lightbulb`,e.Default=`other (default)`,e.SourceAction=`source action`,e.QuickFix=`quick fix action`,e.FixAll=`fix all`,e.OrganizeImports=`organize imports`,e.AutoFix=`auto fix`,e.QuickFixHover=`quick fix hover window`,e.OnSave=`save participants`,e.ProblemsView=`problems view`})(cu||={});function lu(e,t){return!(e.include&&!e.include.intersects(t)||e.excludes&&e.excludes.some(n=>du(t,n,e.include))||!e.includeSourceActions&&K.Source.contains(t))}function uu(e,t){let n=t.kind?new G(t.kind):void 0;return!(e.include&&(!n||!e.include.contains(n))||e.excludes&&n&&e.excludes.some(t=>du(n,t,e.include))||!e.includeSourceActions&&n&&K.Source.contains(n)||e.onlyIncludePreferredActions&&!t.isPreferred)}function du(e,t,n){return!(!t.contains(e)||n&&t.contains(n))}var fu=class e{static fromUser(t,n){return!t||typeof t!=`object`?new e(n.kind,n.apply,!1):new e(e.getKindFromUser(t,n.kind),e.getApplyFromUser(t,n.apply),e.getPreferredUser(t))}static getApplyFromUser(e,t){switch(typeof e.apply==`string`?e.apply.toLowerCase():``){case`first`:return`first`;case`never`:return`never`;case`ifsingle`:return`ifSingle`;default:return t}}static getKindFromUser(e,t){return typeof e.kind==`string`?new G(e.kind):t}static getPreferredUser(e){return typeof e.preferred==`boolean`?e.preferred:!1}constructor(e,t,n){this.kind=e,this.apply=t,this.preferred=n}},pu=class{constructor(e,t,n){this.action=e,this.provider=t,this.highlightRange=n}async resolve(t){if(this.provider?.resolveCodeAction&&!this.action.edit){let n;try{n=await this.provider.resolveCodeAction(this.action,t)}catch(t){e.onUnexpectedExternalError(t)}n&&(this.action.edit=n.edit)}return this}};const mu=`editor.action.codeAction`,hu=`editor.action.quickFix`,gu=`editor.action.autoFix`,_u=`editor.action.refactor`,vu=`editor.action.sourceAction`,yu=`editor.action.organizeImports`,bu=`editor.action.fixAll`;var xu=class t extends e.Disposable{static codeActionsPreferredComparator(e,t){return e.isPreferred&&!t.isPreferred?-1:!e.isPreferred&&t.isPreferred?1:0}static codeActionsComparator({action:n},{action:r}){return n.isAI&&!r.isAI?1:!n.isAI&&r.isAI?-1:e.isNonEmptyArray(n.diagnostics)?e.isNonEmptyArray(r.diagnostics)?t.codeActionsPreferredComparator(n,r):-1:e.isNonEmptyArray(r.diagnostics)?1:t.codeActionsPreferredComparator(n,r)}constructor(e,n,r){super(),this.documentation=n,this._register(r),this.allActions=[...e].sort(t.codeActionsComparator),this.validActions=this.allActions.filter(({action:e})=>!e.disabled)}get hasAutoFix(){return this.validActions.some(({action:e})=>!!e.kind&&K.QuickFix.contains(new G(e.kind))&&!!e.isPreferred)}get hasAIFix(){return this.validActions.some(({action:e})=>!!e.isAI)}get allAIFixes(){return this.validActions.every(({action:e})=>!!e.isAI)}},Su={actions:[],documentation:void 0};async function Cu(t,n,r,i,a,o){let s=i.filter||{},c={...s,excludes:[...s.excludes||[],K.Notebook]},l={only:s.include?.value,trigger:i.type},u=new e.TextModelCancellationTokenSource(n,o),d=i.type===2,f=wu(t,n,d?c:s),p=new e.DisposableStore,m=f.map(async t=>{try{a.report(t);let e=await t.provideCodeActions(n,r,l,u.token);if(e&&p.add(e),u.token.isCancellationRequested)return Su;let i=(e?.actions||[]).filter(e=>e&&uu(s,e)),o=Eu(t,i,s.include);return{actions:i.map(e=>new pu(e,t)),documentation:o}}catch(t){if(e.isCancellationError(t))throw t;return e.onUnexpectedExternalError(t),Su}}),h=t.onDidChange(()=>{let r=t.all(n);e.equals(r,f)||u.cancel()});try{let r=await Promise.all(m),a=r.map(e=>e.actions).flat(),o=[...e.coalesce(r.map(e=>e.documentation)),...Tu(t,n,i,a)];return new xu(a,o,p)}finally{h.dispose(),u.dispose()}}function wu(e,t,n){return e.all(t).filter(e=>e.providedCodeActionKinds?e.providedCodeActionKinds.some(e=>lu(n,new G(e))):!0)}function*Tu(e,t,n,r){if(t&&r.length)for(let i of e.all(t))i._getAdditionalMenuItems&&(yield*i._getAdditionalMenuItems?.({trigger:n.type,only:n.filter?.include?.value},r.map(e=>e.action)))}function Eu(e,t,n){if(!e.documentation)return;let r=e.documentation.map(e=>({kind:new G(e.kind),command:e.command}));if(n){let e;for(let t of r)t.kind.contains(n)&&(e?e.kind.contains(t.kind)&&(e=t):e=t);if(e)return e?.command}for(let e of t)if(e.kind){for(let t of r)if(t.kind.contains(new G(e.kind)))return t.command}}var Du;(function(e){e.OnSave=`onSave`,e.FromProblemsView=`fromProblemsView`,e.FromCodeActions=`fromCodeActions`,e.FromAILightbulb=`fromAILightbulb`})(Du||={});async function Ou(t,n,r,i,a=e.CancellationToken.None){let o=t.get(e.IBulkEditService),s=t.get(e.ICommandService),c=t.get(e.ITelemetryService),l=t.get(e.INotificationService);if(c.publicLog2(`codeAction.applyCodeAction`,{codeActionTitle:n.action.title,codeActionKind:n.action.kind,codeActionIsPreferred:!!n.action.isPreferred,reason:r}),await n.resolve(a),!a.isCancellationRequested&&!(n.action.edit?.edits.length&&!(await o.apply(n.action.edit,{editor:i?.editor,label:n.action.title,quotableLabel:n.action.title,code:`undoredo.codeAction`,respectAutoSaveConfig:r!==Du.OnSave,showPreview:i?.preview})).isApplied)&&n.action.command)try{await s.executeCommand(n.action.command.id,...n.action.command.arguments||[])}catch(t){let n=ku(t);l.error(typeof n==`string`?n:e.localize(`applyCodeActionFailed`,`An unknown error occurred while applying the code action`))}}function ku(e){if(typeof e==`string`)return e;if(e instanceof Error&&typeof e.message==`string`)return e.message}e.CommandsRegistry.registerCommand(`_executeCodeActionProvider`,async function(t,n,r,i,a){if(!(n instanceof e.URI))throw e.illegalArgument();let{codeActionProvider:o}=t.get(e.ILanguageFeaturesService),s=t.get(e.IModelService).getModel(n);if(!s)throw e.illegalArgument();let c=e.Selection$1.isISelection(r)?e.Selection$1.liftSelection(r):e.Range$1.isIRange(r)?s.validateRange(r):void 0;if(!c)throw e.illegalArgument();let l=typeof i==`string`?new G(i):void 0,u=await Cu(o,s,c,{type:1,triggerAction:cu.Default,filter:{includeSourceActions:!0,include:l}},e.Progress.None,e.CancellationToken.None),d=[],f=Math.min(u.validActions.length,typeof a==`number`?a:0);for(let t=0;t<f;t++)d.push(u.validActions[t].resolve(e.CancellationToken.None));try{return await Promise.all(d),u.validActions.map(e=>e.action)}finally{setTimeout(()=>u.dispose(),100)}});var Au=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},ju=function(e,t){return function(n,r){t(n,r,e)}},Mu,Nu=class{static{Mu=this}static{this.codeActionCommands=[_u,mu,vu,yu,bu]}constructor(e){this.keybindingService=e}getResolver(){let t=new e.Lazy(()=>this.keybindingService.getKeybindings().filter(e=>Mu.codeActionCommands.indexOf(e.command)>=0).filter(e=>e.resolvedKeybinding).map(e=>{let t=e.commandArgs;return e.command===`editor.action.organizeImports`?t={kind:K.SourceOrganizeImports.value}:e.command===`editor.action.fixAll`&&(t={kind:K.SourceFixAll.value}),{resolvedKeybinding:e.resolvedKeybinding,...fu.fromUser(t,{kind:G.None,apply:`never`})}}));return e=>{if(e.kind)return this.bestKeybindingForCodeAction(e,t.value)?.resolvedKeybinding}}bestKeybindingForCodeAction(e,t){if(!e.kind)return;let n=new G(e.kind);return t.filter(e=>e.kind.contains(n)).filter(t=>t.preferred?e.isPreferred:!0).reduceRight((e,t)=>e?e.kind.contains(t.kind)?t:e:t,void 0)}};Nu=Mu=Au([ju(0,e.IKeybindingService)],Nu);const Pu=e.registerColor(`symbolIcon.arrayForeground`,e.foreground,e.localize(`symbolIcon.arrayForeground`,`The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),Fu=e.registerColor(`symbolIcon.booleanForeground`,e.foreground,e.localize(`symbolIcon.booleanForeground`,`The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),Iu=e.registerColor(`symbolIcon.classForeground`,{dark:`#EE9D28`,light:`#D67E00`,hcDark:`#EE9D28`,hcLight:`#D67E00`},e.localize(`symbolIcon.classForeground`,`The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),Lu=e.registerColor(`symbolIcon.colorForeground`,e.foreground,e.localize(`symbolIcon.colorForeground`,`The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),Ru=e.registerColor(`symbolIcon.constantForeground`,e.foreground,e.localize(`symbolIcon.constantForeground`,`The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),zu=e.registerColor(`symbolIcon.constructorForeground`,{dark:`#B180D7`,light:`#652D90`,hcDark:`#B180D7`,hcLight:`#652D90`},e.localize(`symbolIcon.constructorForeground`,`The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),Bu=e.registerColor(`symbolIcon.enumeratorForeground`,{dark:`#EE9D28`,light:`#D67E00`,hcDark:`#EE9D28`,hcLight:`#D67E00`},e.localize(`symbolIcon.enumeratorForeground`,`The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),Vu=e.registerColor(`symbolIcon.enumeratorMemberForeground`,{dark:`#75BEFF`,light:`#007ACC`,hcDark:`#75BEFF`,hcLight:`#007ACC`},e.localize(`symbolIcon.enumeratorMemberForeground`,`The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),Hu=e.registerColor(`symbolIcon.eventForeground`,{dark:`#EE9D28`,light:`#D67E00`,hcDark:`#EE9D28`,hcLight:`#D67E00`},e.localize(`symbolIcon.eventForeground`,`The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),Uu=e.registerColor(`symbolIcon.fieldForeground`,{dark:`#75BEFF`,light:`#007ACC`,hcDark:`#75BEFF`,hcLight:`#007ACC`},e.localize(`symbolIcon.fieldForeground`,`The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),Wu=e.registerColor(`symbolIcon.fileForeground`,e.foreground,e.localize(`symbolIcon.fileForeground`,`The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),Gu=e.registerColor(`symbolIcon.folderForeground`,e.foreground,e.localize(`symbolIcon.folderForeground`,`The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),Ku=e.registerColor(`symbolIcon.functionForeground`,{dark:`#B180D7`,light:`#652D90`,hcDark:`#B180D7`,hcLight:`#652D90`},e.localize(`symbolIcon.functionForeground`,`The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),qu=e.registerColor(`symbolIcon.interfaceForeground`,{dark:`#75BEFF`,light:`#007ACC`,hcDark:`#75BEFF`,hcLight:`#007ACC`},e.localize(`symbolIcon.interfaceForeground`,`The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),Ju=e.registerColor(`symbolIcon.keyForeground`,e.foreground,e.localize(`symbolIcon.keyForeground`,`The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),Yu=e.registerColor(`symbolIcon.keywordForeground`,e.foreground,e.localize(`symbolIcon.keywordForeground`,`The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),Xu=e.registerColor(`symbolIcon.methodForeground`,{dark:`#B180D7`,light:`#652D90`,hcDark:`#B180D7`,hcLight:`#652D90`},e.localize(`symbolIcon.methodForeground`,`The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),Zu=e.registerColor(`symbolIcon.moduleForeground`,e.foreground,e.localize(`symbolIcon.moduleForeground`,`The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),Qu=e.registerColor(`symbolIcon.namespaceForeground`,e.foreground,e.localize(`symbolIcon.namespaceForeground`,`The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),$u=e.registerColor(`symbolIcon.nullForeground`,e.foreground,e.localize(`symbolIcon.nullForeground`,`The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),ed=e.registerColor(`symbolIcon.numberForeground`,e.foreground,e.localize(`symbolIcon.numberForeground`,`The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),td=e.registerColor(`symbolIcon.objectForeground`,e.foreground,e.localize(`symbolIcon.objectForeground`,`The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),nd=e.registerColor(`symbolIcon.operatorForeground`,e.foreground,e.localize(`symbolIcon.operatorForeground`,`The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),rd=e.registerColor(`symbolIcon.packageForeground`,e.foreground,e.localize(`symbolIcon.packageForeground`,`The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),id=e.registerColor(`symbolIcon.propertyForeground`,e.foreground,e.localize(`symbolIcon.propertyForeground`,`The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),ad=e.registerColor(`symbolIcon.referenceForeground`,e.foreground,e.localize(`symbolIcon.referenceForeground`,`The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),od=e.registerColor(`symbolIcon.snippetForeground`,e.foreground,e.localize(`symbolIcon.snippetForeground`,`The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),sd=e.registerColor(`symbolIcon.stringForeground`,e.foreground,e.localize(`symbolIcon.stringForeground`,`The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),cd=e.registerColor(`symbolIcon.structForeground`,e.foreground,e.localize(`symbolIcon.structForeground`,`The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),ld=e.registerColor(`symbolIcon.textForeground`,e.foreground,e.localize(`symbolIcon.textForeground`,`The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),ud=e.registerColor(`symbolIcon.typeParameterForeground`,e.foreground,e.localize(`symbolIcon.typeParameterForeground`,`The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),dd=e.registerColor(`symbolIcon.unitForeground`,e.foreground,e.localize(`symbolIcon.unitForeground`,`The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`)),fd=e.registerColor(`symbolIcon.variableForeground`,{dark:`#75BEFF`,light:`#007ACC`,hcDark:`#75BEFF`,hcLight:`#007ACC`},e.localize(`symbolIcon.variableForeground`,`The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget.`));var pd=Object.freeze({kind:G.Empty,title:e.localize(`codeAction.widget.id.more`,`More Actions...`)}),md=Object.freeze([{kind:K.QuickFix,title:e.localize(`codeAction.widget.id.quickfix`,`Quick Fix`)},{kind:K.RefactorExtract,title:e.localize(`codeAction.widget.id.extract`,`Extract`),icon:e.Codicon.wrench},{kind:K.RefactorInline,title:e.localize(`codeAction.widget.id.inline`,`Inline`),icon:e.Codicon.wrench},{kind:K.RefactorRewrite,title:e.localize(`codeAction.widget.id.convert`,`Rewrite`),icon:e.Codicon.wrench},{kind:K.RefactorMove,title:e.localize(`codeAction.widget.id.move`,`Move`),icon:e.Codicon.wrench},{kind:K.SurroundWith,title:e.localize(`codeAction.widget.id.surround`,`Surround With`),icon:e.Codicon.surroundWith},{kind:K.Source,title:e.localize(`codeAction.widget.id.source`,`Source Action`),icon:e.Codicon.symbolFile},pd]);function hd(t,n,r){if(!n)return t.map(e=>({kind:`action`,item:e,group:pd,disabled:!!e.action.disabled,label:e.action.disabled||e.action.title,canPreview:!!e.action.edit?.edits.length}));let i=md.map(e=>({group:e,actions:[]}));for(let e of t){let t=e.action.kind?new G(e.action.kind):G.None;for(let n of i)if(n.group.kind.contains(t)){n.actions.push(e);break}}let a=[];for(let t of i)if(t.actions.length){a.push({kind:`header`,group:t.group});for(let n of t.actions){let i=t.group;a.push({kind:`action`,item:n,group:n.action.isAI?{title:i.title,kind:i.kind,icon:e.Codicon.sparkle}:i,label:n.action.title,disabled:!!n.action.disabled,keybinding:r(n.action)})}}return a}var gd=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},_d=function(e,t){return function(n,r){t(n,r,e)}},vd,yd=e.registerIcon(`gutter-lightbulb`,e.Codicon.lightBulb,e.localize(`gutterLightbulbWidget`,`Icon which spawns code actions menu from the gutter when there is no space in the editor.`)),bd=e.registerIcon(`gutter-lightbulb-auto-fix`,e.Codicon.lightbulbAutofix,e.localize(`gutterLightbulbAutoFixWidget`,`Icon which spawns code actions menu from the gutter when there is no space in the editor and a quick fix is available.`)),xd=e.registerIcon(`gutter-lightbulb-sparkle`,e.Codicon.lightbulbSparkle,e.localize(`gutterLightbulbAIFixWidget`,`Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix is available.`)),Sd=e.registerIcon(`gutter-lightbulb-aifix-auto-fix`,e.Codicon.lightbulbSparkleAutofix,e.localize(`gutterLightbulbAIFixAutoFixWidget`,`Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix and a quick fix is available.`)),Cd=e.registerIcon(`gutter-lightbulb-sparkle-filled`,e.Codicon.sparkleFilled,e.localize(`gutterLightbulbSparkleFilledWidget`,`Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix and a quick fix is available.`)),wd;(function(e){e.Hidden={type:0};class t{constructor(e,t,n,r){this.actions=e,this.trigger=t,this.editorPosition=n,this.widgetPosition=r,this.type=1}}e.Showing=t})(wd||={});var Td=class extends e.Disposable{static{vd=this}static{this.GUTTER_DECORATION=e.ModelDecorationOptions.register({description:`codicon-gutter-lightbulb-decoration`,glyphMarginClassName:e.ThemeIcon.asClassName(e.Codicon.lightBulb),glyphMargin:{position:e.GlyphMarginLane.Left},stickiness:1})}static{this.ID=`editor.contrib.lightbulbWidget`}static{this._posPref=[0]}constructor(t,n){super(),this._editor=t,this._keybindingService=n,this._onClick=this._register(new e.Emitter$1),this.onClick=this._onClick.event,this._state=wd.Hidden,this._gutterState=wd.Hidden,this._iconClasses=[],this.lightbulbClasses=[`codicon-`+yd.id,`codicon-`+Sd.id,`codicon-`+bd.id,`codicon-`+xd.id,`codicon-`+Cd.id],this.gutterDecoration=vd.GUTTER_DECORATION,this._domNode=e.$(`div.lightBulbWidget`),this._domNode.role=`listbox`,this._register(e.Gesture.ignoreTarget(this._domNode)),this._editor.addContentWidget(this),this._register(this._editor.onDidChangeModelContent(e=>{let t=this._editor.getModel();(this.state.type!==1||!t||this.state.editorPosition.lineNumber>=t.getLineCount())&&this.hide(),(this.gutterState.type!==1||!t||this.gutterState.editorPosition.lineNumber>=t.getLineCount())&&this.gutterHide()})),this._register(e.addStandardDisposableGenericMouseDownListener(this._domNode,t=>{if(this.state.type!==1)return;this._editor.focus(),t.preventDefault();let{top:n,height:r}=e.getDomNodePagePosition(this._domNode),i=this._editor.getOption(67),a=Math.floor(i/3);this.state.widgetPosition.position!==null&&this.state.widgetPosition.position.lineNumber<this.state.editorPosition.lineNumber&&(a+=i),this._onClick.fire({x:t.posx,y:n+r+a,actions:this.state.actions,trigger:this.state.trigger})})),this._register(e.addDisposableListener(this._domNode,`mouseenter`,e=>{(e.buttons&1)==1&&this.hide()})),this._register(e.Event.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,()=>{this._preferredKbLabel=this._keybindingService.lookupKeybinding(`editor.action.autoFix`)?.getLabel()??void 0,this._quickFixKbLabel=this._keybindingService.lookupKeybinding(`editor.action.quickFix`)?.getLabel()??void 0,this._updateLightBulbTitleAndIcon()})),this._register(this._editor.onMouseDown(async t=>{if(!t.target.element||!this.lightbulbClasses.some(e=>t.target.element&&t.target.element.classList.contains(e))||this.gutterState.type!==1)return;this._editor.focus();let{top:n,height:r}=e.getDomNodePagePosition(t.target.element),i=this._editor.getOption(67),a=Math.floor(i/3);this.gutterState.widgetPosition.position!==null&&this.gutterState.widgetPosition.position.lineNumber<this.gutterState.editorPosition.lineNumber&&(a+=i),this._onClick.fire({x:t.event.posx,y:n+r+a,actions:this.gutterState.actions,trigger:this.gutterState.trigger})}))}dispose(){super.dispose(),this._editor.removeContentWidget(this),this._gutterDecorationID&&this._removeGutterDecoration(this._gutterDecorationID)}getId(){return`LightBulbWidget`}getDomNode(){return this._domNode}getPosition(){return this._state.type===1?this._state.widgetPosition:null}update(t,n,r){if(t.validActions.length<=0||!this._editor.hasTextFocus()||!this._editor.getOptions().get(65).enabled)return this.gutterHide(),this.hide();let i=this._editor.getModel();if(!i)return this.gutterHide(),this.hide();let{lineNumber:a,column:o}=i.validatePosition(r),s=i.getOptions().tabSize,c=this._editor.getOptions().get(50),l=i.getLineContent(a),u=e.computeIndentLevel(l,s),d=c.spaceWidth*u>22,f=e=>e>2&&this._editor.getTopForLineNumber(e)===this._editor.getTopForLineNumber(e-1),p=this._editor.getLineDecorations(a),m=!1;if(p)for(let e of p){let t=e.options.glyphMarginClassName;if(t&&!this.lightbulbClasses.some(e=>t.includes(e))){m=!0;break}}let h=a,g=1;if(!d){let e=e=>{let t=i.getLineContent(e);return/^\s*$|^\s+/.test(t)||t.length<=g};if(a>1&&!f(a-1)){let o=i.getLineCount(),s=a===o,c=a>1&&e(a-1),l=!s&&e(a+1),u=e(a),d=!l&&!c;if(!l&&!c&&!m)return this.gutterState=new wd.Showing(t,n,r,{position:{lineNumber:h,column:g},preference:vd._posPref}),this.renderGutterLightbub(),this.hide();c||s||c&&!u?--h:(l||d&&u)&&(h+=1)}else if(a===1&&(a===i.getLineCount()||!e(a+1)&&!e(a)))if(this.gutterState=new wd.Showing(t,n,r,{position:{lineNumber:h,column:g},preference:vd._posPref}),m)this.gutterHide();else return this.renderGutterLightbub(),this.hide();else if(a<i.getLineCount()&&!f(a+1))h+=1;else if(o*c.spaceWidth<22)return this.hide();g=/^\S\s*$/.test(i.getLineContent(h))?2:1}this.state=new wd.Showing(t,n,r,{position:{lineNumber:h,column:g},preference:vd._posPref}),this._gutterDecorationID&&(this._removeGutterDecoration(this._gutterDecorationID),this.gutterHide());let _=t.validActions,v=t.validActions[0].action.kind;if(_.length!==1||!v){this._editor.layoutContentWidget(this);return}this._editor.layoutContentWidget(this)}hide(){this.state!==wd.Hidden&&(this.state=wd.Hidden,this._editor.layoutContentWidget(this))}gutterHide(){this.gutterState!==wd.Hidden&&(this._gutterDecorationID&&this._removeGutterDecoration(this._gutterDecorationID),this.gutterState=wd.Hidden)}get state(){return this._state}set state(e){this._state=e,this._updateLightBulbTitleAndIcon()}get gutterState(){return this._gutterState}set gutterState(e){this._gutterState=e,this._updateGutterLightBulbTitleAndIcon()}_updateLightBulbTitleAndIcon(){if(this._domNode.classList.remove(...this._iconClasses),this._iconClasses=[],this.state.type!==1)return;let t,n=!1;this.state.actions.allAIFixes?(t=e.Codicon.sparkleFilled,this.state.actions.validActions.length===1&&(n=!0)):t=this.state.actions.hasAutoFix?this.state.actions.hasAIFix?e.Codicon.lightbulbSparkleAutofix:e.Codicon.lightbulbAutofix:this.state.actions.hasAIFix?e.Codicon.lightbulbSparkle:e.Codicon.lightBulb,this._updateLightbulbTitle(this.state.actions.hasAutoFix,n),this._iconClasses=e.ThemeIcon.asClassNameArray(t),this._domNode.classList.add(...this._iconClasses)}_updateGutterLightBulbTitleAndIcon(){if(this.gutterState.type!==1)return;let t,n=!1;this.gutterState.actions.allAIFixes?(t=Cd,this.gutterState.actions.validActions.length===1&&(n=!0)):t=this.gutterState.actions.hasAutoFix?this.gutterState.actions.hasAIFix?Sd:bd:this.gutterState.actions.hasAIFix?xd:yd,this._updateLightbulbTitle(this.gutterState.actions.hasAutoFix,n),this.gutterDecoration=e.ModelDecorationOptions.register({description:`codicon-gutter-lightbulb-decoration`,glyphMarginClassName:e.ThemeIcon.asClassName(t),glyphMargin:{position:e.GlyphMarginLane.Left},stickiness:1})}renderGutterLightbub(){let e=this._editor.getSelection();e&&(this._gutterDecorationID===void 0?this._addGutterDecoration(e.startLineNumber):this._updateGutterDecoration(this._gutterDecorationID,e.startLineNumber))}_addGutterDecoration(t){this._editor.changeDecorations(n=>{this._gutterDecorationID=n.addDecoration(new e.Range$1(t,0,t,0),this.gutterDecoration)})}_removeGutterDecoration(e){this._editor.changeDecorations(t=>{t.removeDecoration(e),this._gutterDecorationID=void 0})}_updateGutterDecoration(t,n){this._editor.changeDecorations(r=>{r.changeDecoration(t,new e.Range$1(n,0,n,0)),r.changeDecorationOptions(t,this.gutterDecoration)})}_updateLightbulbTitle(t,n){this.state.type===1&&(n?this.title=e.localize(`codeActionAutoRun`,`Run: {0}`,this.state.actions.validActions[0].action.title):t&&this._preferredKbLabel?this.title=e.localize(`preferredcodeActionWithKb`,`Show Code Actions. Preferred Quick Fix Available ({0})`,this._preferredKbLabel):!t&&this._quickFixKbLabel?this.title=e.localize(`codeActionWithKb`,`Show Code Actions ({0})`,this._quickFixKbLabel):t||(this.title=e.localize(`codeAction`,`Show Code Actions`)))}set title(e){this._domNode.title=e}};Td=vd=gd([_d(1,e.IKeybindingService)],Td);var Ed=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Dd=function(e,t){return function(n,r){t(n,r,e)}};const Od=`acceptSelectedCodeAction`,kd=`previewSelectedCodeAction`;var Ad=class{get templateId(){return`header`}renderTemplate(e){e.classList.add(`group-header`);let t=document.createElement(`span`);return e.append(t),{container:e,text:t}}renderElement(e,t,n){n.text.textContent=e.group?.title??``}disposeTemplate(e){}},jd=class{get templateId(){return`action`}constructor(e,t){this._supportsPreview=e,this._keybindingService=t}renderTemplate(t){t.classList.add(this.templateId);let n=document.createElement(`div`);n.className=`icon`,t.append(n);let r=document.createElement(`span`);r.className=`title`,t.append(r);let i=new e.KeybindingLabel(t,e.OS);return{container:t,icon:n,text:r,keybinding:i}}renderElement(t,n,r){if(t.group?.icon?(r.icon.className=e.ThemeIcon.asClassName(t.group.icon),t.group.icon.color&&(r.icon.style.color=e.asCssVariable(t.group.icon.color.id))):(r.icon.className=e.ThemeIcon.asClassName(e.Codicon.lightBulb),r.icon.style.color=`var(--vscode-editorLightBulb-foreground)`),!t.item||!t.label)return;r.text.textContent=Id(t.label),r.keybinding.set(t.keybinding),e.setVisibility(!!t.keybinding,r.keybinding.element);let i=this._keybindingService.lookupKeybinding(Od)?.getLabel(),a=this._keybindingService.lookupKeybinding(kd)?.getLabel();r.container.classList.toggle(`option-disabled`,t.disabled),t.disabled?r.container.title=t.label:i&&a?this._supportsPreview&&t.canPreview?r.container.title=e.localize({key:`label-preview`,comment:[`placeholders are keybindings, e.g "F2 to Apply, Shift+F2 to Preview"`]},`{0} to Apply, {1} to Preview`,i,a):r.container.title=e.localize({key:`label`,comment:[`placeholder is a keybinding, e.g "F2 to Apply"`]},`{0} to Apply`,i):r.container.title=``}disposeTemplate(e){e.keybinding.dispose()}};jd=Ed([Dd(1,e.IKeybindingService)],jd);var Md=class extends UIEvent{constructor(){super(`acceptSelectedAction`)}},Nd=class extends UIEvent{constructor(){super(`previewSelectedAction`)}};function Pd(e){if(e.kind===`action`)return e.label}var Fd=class extends e.Disposable{constructor(t,n,r,i,a,o){super(),this._delegate=i,this._contextViewService=a,this._keybindingService=o,this._actionLineHeight=24,this._headerLineHeight=26,this.cts=this._register(new e.CancellationTokenSource$1),this.domNode=document.createElement(`div`),this.domNode.classList.add(`actionList`),this._list=this._register(new e.List(t,this.domNode,{getHeight:e=>e.kind===`header`?this._headerLineHeight:this._actionLineHeight,getTemplateId:e=>e.kind},[new jd(n,this._keybindingService),new Ad],{keyboardSupport:!1,typeNavigationEnabled:!0,keyboardNavigationLabelProvider:{getKeyboardNavigationLabel:Pd},accessibilityProvider:{getAriaLabel:t=>{if(t.kind===`action`){let n=t.label?Id(t?.label):``;return t.disabled&&(n=e.localize({key:`customQuickFixWidget.labels`,comment:[`Action widget labels for accessibility.`]},`{0}, Disabled Reason: {1}`,n,t.disabled)),n}return null},getWidgetAriaLabel:()=>e.localize({key:`customQuickFixWidget`,comment:[`An action widget option`]},`Action Widget`),getRole:e=>e.kind===`action`?`option`:`separator`,getWidgetRole:()=>`listbox`}})),this._list.style(e.defaultListStyles),this._register(this._list.onMouseClick(e=>this.onListClick(e))),this._register(this._list.onMouseOver(e=>this.onListHover(e))),this._register(this._list.onDidChangeFocus(()=>this.onFocus())),this._register(this._list.onDidChangeSelection(e=>this.onListSelection(e))),this._allMenuItems=r,this._list.splice(0,this._list.length,this._allMenuItems),this._list.length&&this.focusNext()}focusCondition(e){return!e.disabled&&e.kind===`action`}hide(e){this._delegate.onHide(e),this.cts.cancel(),this._contextViewService.hideContextView()}layout(e){let t=this._allMenuItems.filter(e=>e.kind===`header`).length,n=this._allMenuItems.length*this._actionLineHeight+t*this._headerLineHeight-t*this._actionLineHeight;this._list.layout(n);let r=e;if(this._allMenuItems.length>=50)r=380;else{let t=this._allMenuItems.map((e,t)=>{let n=this.domNode.ownerDocument.getElementById(this._list.getElementID(t));if(n){n.style.width=`auto`;let e=n.getBoundingClientRect().width;return n.style.width=``,e}return 0});r=Math.max(...t,e)}let i=Math.min(n,this.domNode.ownerDocument.body.clientHeight*.7);return this._list.layout(i,r),this.domNode.style.height=`${i}px`,this._list.domFocus(),r}focusPrevious(){this._list.focusPrevious(1,!0,void 0,this.focusCondition)}focusNext(){this._list.focusNext(1,!0,void 0,this.focusCondition)}acceptSelected(e){let t=this._list.getFocus();if(t.length===0)return;let n=t[0],r=this._list.element(n);if(!this.focusCondition(r))return;let i=e?new Nd:new Md;this._list.setSelection([n],i)}onListSelection(e){if(!e.elements.length)return;let t=e.elements[0];t.item&&this.focusCondition(t)?this._delegate.onSelect(t.item,e.browserEvent instanceof Nd):this._list.setSelection([])}onFocus(){let e=this._list.getFocus();if(e.length===0)return;let t=e[0],n=this._list.element(t);this._delegate.onFocus?.(n.item)}async onListHover(e){let t=e.element;if(t&&t.item&&this.focusCondition(t)){if(this._delegate.onHover&&!t.disabled&&t.kind===`action`){let e=await this._delegate.onHover(t.item,this.cts.token);t.canPreview=e?e.canPreview:void 0}e.index&&this._list.splice(e.index,1,[t])}this._list.setFocus(typeof e.index==`number`?[e.index]:[])}onListClick(e){e.element&&this.focusCondition(e.element)&&this._list.setFocus([])}};Fd=Ed([Dd(4,e.IContextViewService),Dd(5,e.IKeybindingService)],Fd);function Id(e){return e.replace(/\r\n|\r|\n/g,` `)}var Ld=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Rd=function(e,t){return function(n,r){t(n,r,e)}};e.registerColor(`actionBar.toggledBackground`,e.inputActiveOptionBackground,e.localize(`actionBar.toggledBackground`,`Background color for toggled action items in action bar.`));var zd={Visible:new e.RawContextKey(`codeActionMenuVisible`,!1,e.localize(`codeActionMenuVisible`,`Whether the action widget list is visible`))};const Bd=e.createDecorator(`actionWidgetService`);var Vd=class extends e.Disposable{get isVisible(){return zd.Visible.getValue(this._contextKeyService)||!1}constructor(t,n,r){super(),this._contextViewService=t,this._contextKeyService=n,this._instantiationService=r,this._list=this._register(new e.MutableDisposable)}show(e,t,n,r,i,a,o){let s=zd.Visible.bindTo(this._contextKeyService),c=this._instantiationService.createInstance(Fd,e,t,n,r);this._contextViewService.showContextView({getAnchor:()=>i,render:e=>(s.set(!0),this._renderWidget(e,c,o??[])),onHide:e=>{s.reset(),this._onWidgetClosed(e)}},a,!1)}acceptSelected(e){this._list.value?.acceptSelected(e)}focusPrevious(){this._list?.value?.focusPrevious()}focusNext(){this._list?.value?.focusNext()}hide(e){this._list.value?.hide(e),this._list.clear()}_renderWidget(t,n,r){let i=document.createElement(`div`);if(i.classList.add(`action-widget`),t.appendChild(i),this._list.value=n,this._list.value)i.appendChild(this._list.value.domNode);else throw Error(`List has no value`);let a=new e.DisposableStore,o=document.createElement(`div`),s=t.appendChild(o);s.classList.add(`context-view-block`),a.add(e.addDisposableListener(s,e.EventType$1.MOUSE_DOWN,e=>e.stopPropagation()));let c=document.createElement(`div`),l=t.appendChild(c);l.classList.add(`context-view-pointerBlock`),a.add(e.addDisposableListener(l,e.EventType$1.POINTER_MOVE,()=>l.remove())),a.add(e.addDisposableListener(l,e.EventType$1.MOUSE_DOWN,()=>l.remove()));let u=0;if(r.length){let e=this._createActionBar(`.action-widget-action-bar`,r);e&&(i.appendChild(e.getContainer().parentElement),a.add(e),u=e.getContainer().offsetWidth)}let d=this._list.value?.layout(u);i.style.width=`${d}px`;let f=a.add(e.trackFocus(t));return a.add(f.onDidBlur(()=>this.hide(!0))),a}_createActionBar(t,n){if(!n.length)return;let r=e.$(t),i=new e.ActionBar(r);return i.push(n,{icon:!1,label:!0}),i}_onWidgetClosed(e){this._list.value?.hide(e)}};Vd=Ld([Rd(0,e.IContextViewService),Rd(1,e.IContextKeyService),Rd(2,e.IInstantiationService)],Vd),e.registerSingleton(Bd,Vd,1);var Hd=1100;e.registerAction2(class extends e.Action2{constructor(){super({id:`hideCodeActionWidget`,title:e.localize2(`hideCodeActionWidget.title`,`Hide action widget`),precondition:zd.Visible,keybinding:{weight:Hd,primary:9,secondary:[1033]}})}run(e){e.get(Bd).hide(!0)}}),e.registerAction2(class extends e.Action2{constructor(){super({id:`selectPrevCodeAction`,title:e.localize2(`selectPrevCodeAction.title`,`Select previous action`),precondition:zd.Visible,keybinding:{weight:Hd,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})}run(e){let t=e.get(Bd);t instanceof Vd&&t.focusPrevious()}}),e.registerAction2(class extends e.Action2{constructor(){super({id:`selectNextCodeAction`,title:e.localize2(`selectNextCodeAction.title`,`Select next action`),precondition:zd.Visible,keybinding:{weight:Hd,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})}run(e){let t=e.get(Bd);t instanceof Vd&&t.focusNext()}}),e.registerAction2(class extends e.Action2{constructor(){super({id:Od,title:e.localize2(`acceptSelected.title`,`Accept selected action`),precondition:zd.Visible,keybinding:{weight:Hd,primary:3,secondary:[2137]}})}run(e){let t=e.get(Bd);t instanceof Vd&&t.acceptSelected()}}),e.registerAction2(class extends e.Action2{constructor(){super({id:kd,title:e.localize2(`previewSelected.title`,`Preview selected action`),precondition:zd.Visible,keybinding:{weight:Hd,primary:2051}})}run(e){let t=e.get(Bd);t instanceof Vd&&t.acceptSelected(!0)}});const Ud=new e.RawContextKey(`supportedCodeAction`,``),Wd=`_typescript.applyFixAllCodeAction`;var Gd=class extends e.Disposable{constructor(t,n,r,i=250){super(),this._editor=t,this._markerService=n,this._signalChange=r,this._delay=i,this._autoTriggerTimer=this._register(new e.TimeoutTimer),this._register(this._markerService.onMarkerChanged(e=>this._onMarkerChanges(e))),this._register(this._editor.onDidChangeCursorPosition(()=>this._tryAutoTrigger()))}trigger(e){let t=this._getRangeOfSelectionUnlessWhitespaceEnclosed(e);this._signalChange(t?{trigger:e,selection:t}:void 0)}_onMarkerChanges(t){let n=this._editor.getModel();n&&t.some(t=>e.isEqual(t,n.uri))&&this._tryAutoTrigger()}_tryAutoTrigger(){this._autoTriggerTimer.cancelAndSet(()=>{this.trigger({type:2,triggerAction:cu.Default})},this._delay)}_getRangeOfSelectionUnlessWhitespaceEnclosed(t){if(!this._editor.hasModel())return;let n=this._editor.getSelection();if(t.type===1)return n;let r=this._editor.getOption(65).enabled;if(r!==e.ShowLightbulbIconMode.Off){if(r===e.ShowLightbulbIconMode.On)return n;if(r===e.ShowLightbulbIconMode.OnCode){if(!n.isEmpty())return n;let e=this._editor.getModel(),{lineNumber:t,column:r}=n.getPosition(),i=e.getLineContent(t);if(i.length===0)return;if(r===1){if(/\s/.test(i[0]))return}else if(r===e.getLineMaxColumn(t)){if(/\s/.test(i[i.length-1]))return}else if(/\s/.test(i[r-2])&&/\s/.test(i[r-1]))return}return n}}},Kd;(function(t){t.Empty={type:0};class n{constructor(t,n,r){this.trigger=t,this.position=n,this._cancellablePromise=r,this.type=1,this.actions=r.catch(t=>{if(e.isCancellationError(t))return qd;throw t})}cancel(){this._cancellablePromise.cancel()}}t.Triggered=n})(Kd||={});var qd=Object.freeze({allActions:[],validActions:[],dispose:()=>{},documentation:[],hasAutoFix:!1,hasAIFix:!1,allAIFixes:!1}),Jd=class extends e.Disposable{constructor(t,n,r,i,a,o,s){super(),this._editor=t,this._registry=n,this._markerService=r,this._progressService=a,this._configurationService=o,this._telemetryService=s,this._codeActionOracle=this._register(new e.MutableDisposable),this._state=Kd.Empty,this._onDidChangeState=this._register(new e.Emitter$1),this.onDidChangeState=this._onDidChangeState.event,this._disposed=!1,this._supportedCodeActions=Ud.bindTo(i),this._register(this._editor.onDidChangeModel(()=>this._update())),this._register(this._editor.onDidChangeModelLanguage(()=>this._update())),this._register(this._registry.onDidChange(()=>this._update())),this._register(this._editor.onDidChangeConfiguration(e=>{e.hasChanged(65)&&this._update()})),this._update()}dispose(){this._disposed||(this._disposed=!0,super.dispose(),this.setState(Kd.Empty,!0))}_settingEnabledNearbyQuickfixes(){let e=this._editor?.getModel();return this._configurationService?this._configurationService.getValue(`editor.codeActionWidget.includeNearbyQuickFixes`,{resource:e?.uri}):!1}_update(){if(this._disposed)return;this._codeActionOracle.value=void 0,this.setState(Kd.Empty);let t=this._editor.getModel();if(t&&this._registry.has(t)&&!this._editor.getOption(92)){let n=this._registry.all(t).flatMap(e=>e.providedCodeActionKinds??[]);this._supportedCodeActions.set(n.join(` `)),this._codeActionOracle.value=new Gd(this._editor,this._markerService,n=>{if(!n){this.setState(Kd.Empty);return}let r=n.selection.getStartPosition(),i=e.createCancelablePromise(async r=>{if(this._settingEnabledNearbyQuickfixes()&&n.trigger.type===1&&(n.trigger.triggerAction===cu.QuickFix||n.trigger.filter?.include?.contains(K.QuickFix))){let i=await Cu(this._registry,t,n.selection,n.trigger,e.Progress.None,r),a=[...i.allActions];if(r.isCancellationRequested)return qd;let o=i.validActions?.some(e=>e.action.kind?K.QuickFix.contains(new G(e.action.kind)):!1),s=this._markerService.read({resource:t.uri});if(o){for(let e of i.validActions)e.action.command?.arguments?.some(e=>typeof e==`string`&&e.includes(`_typescript.applyFixAllCodeAction`))&&(e.action.diagnostics=[...s.filter(e=>e.relatedInformation)]);return{validActions:i.validActions,allActions:a,documentation:i.documentation,hasAutoFix:i.hasAutoFix,hasAIFix:i.hasAIFix,allAIFixes:i.allAIFixes,dispose:()=>{i.dispose()}}}else if(!o&&s.length>0){let o=n.selection.getPosition(),c=o,l=Number.MAX_VALUE,u=[...i.validActions];for(let d of s){let f=d.endColumn,p=d.endLineNumber,m=d.startLineNumber;if(p===o.lineNumber||m===o.lineNumber){c=new e.Position$1(p,f);let d={type:n.trigger.type,triggerAction:n.trigger.triggerAction,filter:{include:n.trigger.filter?.include?n.trigger.filter?.include:K.QuickFix},autoApply:n.trigger.autoApply,context:{notAvailableMessage:n.trigger.context?.notAvailableMessage||``,position:c}},m=new e.Selection$1(c.lineNumber,c.column,c.lineNumber,c.column),h=await Cu(this._registry,t,m,d,e.Progress.None,r);if(h.validActions.length!==0){for(let e of h.validActions)e.action.command?.arguments?.some(e=>typeof e==`string`&&e.includes(`_typescript.applyFixAllCodeAction`))&&(e.action.diagnostics=[...s.filter(e=>e.relatedInformation)]);i.allActions.length===0&&a.push(...h.allActions),Math.abs(o.column-f)<l?u.unshift(...h.validActions):u.push(...h.validActions)}l=Math.abs(o.column-f)}}let d=u.filter((e,t,n)=>n.findIndex(t=>t.action.title===e.action.title)===t);return d.sort((e,t)=>e.action.isPreferred&&!t.action.isPreferred?-1:!e.action.isPreferred&&t.action.isPreferred||e.action.isAI&&!t.action.isAI?1:!e.action.isAI&&t.action.isAI?-1:0),{validActions:d,allActions:a,documentation:i.documentation,hasAutoFix:i.hasAutoFix,hasAIFix:i.hasAIFix,allAIFixes:i.allAIFixes,dispose:()=>{i.dispose()}}}}if(n.trigger.type===1){let i=new e.StopWatch,a=await Cu(this._registry,t,n.selection,n.trigger,e.Progress.None,r);return this._telemetryService&&this._telemetryService.publicLog2(`codeAction.invokedDurations`,{codeActions:a.validActions.length,duration:i.elapsed()}),a}return Cu(this._registry,t,n.selection,n.trigger,e.Progress.None,r)});n.trigger.type===1&&this._progressService?.showWhile(i,250);let a=new Kd.Triggered(n.trigger,r,i),o=!1;this._state.type===1&&(o=this._state.trigger.type===1&&a.type===1&&a.trigger.type===2&&this._state.position!==a.position),o?setTimeout(()=>{this.setState(a)},500):this.setState(a)},void 0),this._codeActionOracle.value.trigger({type:2,triggerAction:cu.Default})}else this._supportedCodeActions.reset()}trigger(e){this._codeActionOracle.value?.trigger(e)}setState(e,t){e!==this._state&&(this._state.type===1&&this._state.cancel(),this._state=e,!t&&!this._disposed&&this._onDidChangeState.fire(e))}},Yd=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Xd=function(e,t){return function(n,r){t(n,r,e)}},Zd,Qd=`quickfix-edit-highlight`,$d=class extends e.Disposable{static{Zd=this}static{this.ID=`editor.contrib.codeActionController`}static get(e){return e.getContribution(Zd.ID)}constructor(t,n,r,i,a,o,s,c,l,u,d){super(),this._commandService=s,this._configurationService=c,this._actionWidgetService=l,this._instantiationService=u,this._telemetryService=d,this._activeCodeActions=this._register(new e.MutableDisposable),this._showDisabled=!1,this._disposed=!1,this._editor=t,this._model=this._register(new Jd(this._editor,a.codeActionProvider,n,r,o,c,this._telemetryService)),this._register(this._model.onDidChangeState(e=>this.update(e))),this._lightBulbWidget=new e.Lazy(()=>{let e=this._editor.getContribution(Td.ID);return e&&this._register(e.onClick(e=>this.showCodeActionsFromLightbulb(e.actions,e))),e}),this._resolver=i.createInstance(Nu),this._register(this._editor.onDidLayoutChange(()=>this._actionWidgetService.hide()))}dispose(){this._disposed=!0,super.dispose()}async showCodeActionsFromLightbulb(e,t){if(e.allAIFixes&&e.validActions.length===1){let t=e.validActions[0],n=t.action.command;n&&n.id===`inlineChat.start`&&n.arguments&&n.arguments.length>=1&&(n.arguments[0]={...n.arguments[0],autoSend:!1}),await this._applyCodeAction(t,!1,!1,Du.FromAILightbulb);return}await this.showCodeActionList(e,t,{includeDisabledActions:!1,fromLightbulb:!0})}showCodeActions(e,t,n){return this.showCodeActionList(t,n,{includeDisabledActions:!1,fromLightbulb:!1})}manualTriggerAtCurrentPosition(e,t,n,r){if(!this._editor.hasModel())return;Nl.get(this._editor)?.closeMessage();let i=this._editor.getPosition();this._trigger({type:1,triggerAction:t,filter:n,autoApply:r,context:{notAvailableMessage:e,position:i}})}_trigger(e){return this._model.trigger(e)}async _applyCodeAction(e,t,n,r){try{await this._instantiationService.invokeFunction(Ou,e,r,{preview:n,editor:this._editor})}finally{t&&this._trigger({type:2,triggerAction:cu.QuickFix,filter:{}})}}hideLightBulbWidget(){this._lightBulbWidget.rawValue?.hide(),this._lightBulbWidget.rawValue?.gutterHide()}async update(t){if(t.type!==1){this.hideLightBulbWidget();return}let n;try{n=await t.actions}catch(t){e.onUnexpectedError(t);return}if(!this._disposed&&this._editor.getSelection()?.startLineNumber===t.position.lineNumber)if(this._lightBulbWidget.value?.update(n,t.trigger,t.position),t.trigger.type===1){if(t.trigger.filter?.include){let e=this.tryGetValidActionToApply(t.trigger,n);if(e){try{this.hideLightBulbWidget(),await this._applyCodeAction(e,!1,!1,Du.FromCodeActions)}finally{n.dispose()}return}if(t.trigger.context){let e=this.getInvalidActionThatWouldHaveBeenApplied(t.trigger,n);if(e&&e.action.disabled){Nl.get(this._editor)?.showMessage(e.action.disabled,t.trigger.context.position),n.dispose();return}}}let e=!!t.trigger.filter?.include;if(t.trigger.context&&(!n.allActions.length||!e&&!n.validActions.length)){Nl.get(this._editor)?.showMessage(t.trigger.context.notAvailableMessage,t.trigger.context.position),this._activeCodeActions.value=n,n.dispose();return}this._activeCodeActions.value=n,this.showCodeActionList(n,this.toCoords(t.position),{includeDisabledActions:e,fromLightbulb:!1})}else this._actionWidgetService.isVisible?n.dispose():this._activeCodeActions.value=n}getInvalidActionThatWouldHaveBeenApplied(e,t){if(t.allActions.length&&(e.autoApply===`first`&&t.validActions.length===0||e.autoApply===`ifSingle`&&t.allActions.length===1))return t.allActions.find(({action:e})=>e.disabled)}tryGetValidActionToApply(e,t){if(t.validActions.length&&(e.autoApply===`first`&&t.validActions.length>0||e.autoApply===`ifSingle`&&t.validActions.length===1))return t.validActions[0]}static{this.DECORATION=e.ModelDecorationOptions.register({description:`quickfix-highlight`,className:Qd})}async showCodeActionList(t,n,r){let i=this._editor.createDecorationsCollection(),a=this._editor.getDomNode();if(!a)return;let o=r.includeDisabledActions&&(this._showDisabled||t.validActions.length===0)?t.allActions:t.validActions;if(!o.length)return;let s=e.Position$1.isIPosition(n)?this.toCoords(n):n;this._actionWidgetService.show(`codeActionWidget`,!0,hd(o,this._shouldShowHeaders(),this._resolver.getResolver()),{onSelect:async(e,t)=>{this._applyCodeAction(e,!0,!!t,r.fromLightbulb?Du.FromAILightbulb:Du.FromCodeActions),this._actionWidgetService.hide(!1),i.clear()},onHide:e=>{this._editor?.focus(),i.clear()},onHover:async(e,t)=>{if(t.isCancellationRequested)return;let n=!1,r=e.action.kind;if(r){let e=new G(r);n=[K.RefactorExtract,K.RefactorInline,K.RefactorRewrite,K.RefactorMove,K.Source].some(t=>t.contains(e))}return{canPreview:n||!!e.action.edit?.edits.length}},onFocus:t=>{if(t&&t.action){let n=t.action.ranges,r=t.action.diagnostics;if(i.clear(),n&&n.length>0){let e=r&&r?.length>1?r.map(e=>({range:e,options:Zd.DECORATION})):n.map(e=>({range:e,options:Zd.DECORATION}));i.set(e)}else if(r&&r.length>0){let t=r.map(e=>({range:e,options:Zd.DECORATION}));i.set(t);let n=r[0];if(n.startLineNumber&&n.startColumn){let t=this._editor.getModel()?.getWordAtPosition({lineNumber:n.startLineNumber,column:n.startColumn})?.word;e.status(e.localize(`editingNewSelection`,`Context: {0} at line {1} and column {2}.`,t,n.startLineNumber,n.startColumn))}}}else i.clear()}},s,a,this._getActionBarActions(t,n,r))}toCoords(t){if(!this._editor.hasModel())return{x:0,y:0};this._editor.revealPosition(t,1),this._editor.render();let n=this._editor.getScrolledVisiblePosition(t),r=e.getDomNodePagePosition(this._editor.getDomNode()),i=r.left+n.left,a=r.top+n.top+n.height;return{x:i,y:a}}_shouldShowHeaders(){let e=this._editor?.getModel();return this._configurationService.getValue(`editor.codeActionWidget.showHeaders`,{resource:e?.uri})}_getActionBarActions(t,n,r){if(r.fromLightbulb)return[];let i=t.documentation.map(e=>({id:e.id,label:e.title,tooltip:e.tooltip??``,class:void 0,enabled:!0,run:()=>this._commandService.executeCommand(e.id,...e.arguments??[])}));return r.includeDisabledActions&&t.validActions.length>0&&t.allActions.length!==t.validActions.length&&i.push(this._showDisabled?{id:`hideMoreActions`,label:e.localize(`hideMoreActions`,`Hide Disabled`),enabled:!0,tooltip:``,class:void 0,run:()=>(this._showDisabled=!1,this.showCodeActionList(t,n,r))}:{id:`showMoreActions`,label:e.localize(`showMoreActions`,`Show Disabled`),enabled:!0,tooltip:``,class:void 0,run:()=>(this._showDisabled=!0,this.showCodeActionList(t,n,r))}),i}};$d=Zd=Yd([Xd(1,e.IMarkerService),Xd(2,e.IContextKeyService),Xd(3,e.IInstantiationService),Xd(4,e.ILanguageFeaturesService),Xd(5,e.IEditorProgressService),Xd(6,e.ICommandService),Xd(7,e.IConfigurationService),Xd(8,Bd),Xd(9,e.IInstantiationService),Xd(10,e.ITelemetryService)],$d),e.registerThemingParticipant((t,n)=>{((e,t)=>{t&&n.addRule(`.monaco-editor ${e} { background-color: ${t}; }`)})(`.quickfix-edit-highlight`,t.getColor(e.editorFindMatchHighlight));let r=t.getColor(e.editorFindMatchHighlightBorder);r&&n.addRule(`.monaco-editor .quickfix-edit-highlight { border: 1px ${e.isHighContrast(t.type)?`dotted`:`solid`} ${r}; box-sizing: border-box; }`)});function ef(t){return e.ContextKeyExpr.regex(Ud.keys()[0],RegExp(`(\\s|^)`+e.escapeRegExpCharacters(t.value)+`\\b`))}var tf={type:`object`,defaultSnippets:[{body:{kind:``}}],properties:{kind:{type:`string`,description:e.localize(`args.schema.kind`,`Kind of the code action to run.`)},apply:{type:`string`,description:e.localize(`args.schema.apply`,`Controls when the returned actions are applied.`),default:`ifSingle`,enum:[`first`,`ifSingle`,`never`],enumDescriptions:[e.localize(`args.schema.apply.first`,`Always apply the first returned code action.`),e.localize(`args.schema.apply.ifSingle`,`Apply the first returned code action if it is the only one.`),e.localize(`args.schema.apply.never`,`Do not apply the returned code actions.`)]},preferred:{type:`boolean`,default:!1,description:e.localize(`args.schema.preferred`,`Controls if only preferred code actions should be returned.`)}}};function nf(e,t,n,r,i=cu.Default){e.hasModel()&&$d.get(e)?.manualTriggerAtCurrentPosition(t,i,n,r)}var rf=class extends e.EditorAction{constructor(){super({id:hu,label:e.localize(`quickfix.trigger.label`,`Quick Fix...`),alias:`Quick Fix...`,precondition:e.ContextKeyExpr.and(e.EditorContextKeys.writable,e.EditorContextKeys.hasCodeActionsProvider),kbOpts:{kbExpr:e.EditorContextKeys.textInputFocus,primary:2137,weight:100}})}run(t,n){return nf(n,e.localize(`editor.action.quickFix.noneMessage`,`No code actions available`),void 0,void 0,cu.QuickFix)}},af=class extends e.EditorCommand{constructor(){super({id:mu,precondition:e.ContextKeyExpr.and(e.EditorContextKeys.writable,e.EditorContextKeys.hasCodeActionsProvider),metadata:{description:`Trigger a code action`,args:[{name:`args`,schema:tf}]}})}runEditorCommand(t,n,r){let i=fu.fromUser(r,{kind:G.Empty,apply:`ifSingle`});return nf(n,typeof r?.kind==`string`?i.preferred?e.localize(`editor.action.codeAction.noneMessage.preferred.kind`,`No preferred code actions for '{0}' available`,r.kind):e.localize(`editor.action.codeAction.noneMessage.kind`,`No code actions for '{0}' available`,r.kind):i.preferred?e.localize(`editor.action.codeAction.noneMessage.preferred`,`No preferred code actions available`):e.localize(`editor.action.codeAction.noneMessage`,`No code actions available`),{include:i.kind,includeSourceActions:!0,onlyIncludePreferredActions:i.preferred},i.apply)}},sf=class extends e.EditorAction{constructor(){super({id:_u,label:e.localize(`refactor.label`,`Refactor...`),alias:`Refactor...`,precondition:e.ContextKeyExpr.and(e.EditorContextKeys.writable,e.EditorContextKeys.hasCodeActionsProvider),kbOpts:{kbExpr:e.EditorContextKeys.textInputFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:`1_modification`,order:2,when:e.ContextKeyExpr.and(e.EditorContextKeys.writable,ef(K.Refactor))},metadata:{description:`Refactor...`,args:[{name:`args`,schema:tf}]}})}run(t,n,r){let i=fu.fromUser(r,{kind:K.Refactor,apply:`never`});return nf(n,typeof r?.kind==`string`?i.preferred?e.localize(`editor.action.refactor.noneMessage.preferred.kind`,`No preferred refactorings for '{0}' available`,r.kind):e.localize(`editor.action.refactor.noneMessage.kind`,`No refactorings for '{0}' available`,r.kind):i.preferred?e.localize(`editor.action.refactor.noneMessage.preferred`,`No preferred refactorings available`):e.localize(`editor.action.refactor.noneMessage`,`No refactorings available`),{include:K.Refactor.contains(i.kind)?i.kind:G.None,onlyIncludePreferredActions:i.preferred},i.apply,cu.Refactor)}},cf=class extends e.EditorAction{constructor(){super({id:vu,label:e.localize(`source.label`,`Source Action...`),alias:`Source Action...`,precondition:e.ContextKeyExpr.and(e.EditorContextKeys.writable,e.EditorContextKeys.hasCodeActionsProvider),contextMenuOpts:{group:`1_modification`,order:2.1,when:e.ContextKeyExpr.and(e.EditorContextKeys.writable,ef(K.Source))},metadata:{description:`Source Action...`,args:[{name:`args`,schema:tf}]}})}run(t,n,r){let i=fu.fromUser(r,{kind:K.Source,apply:`never`});return nf(n,typeof r?.kind==`string`?i.preferred?e.localize(`editor.action.source.noneMessage.preferred.kind`,`No preferred source actions for '{0}' available`,r.kind):e.localize(`editor.action.source.noneMessage.kind`,`No source actions for '{0}' available`,r.kind):i.preferred?e.localize(`editor.action.source.noneMessage.preferred`,`No preferred source actions available`):e.localize(`editor.action.source.noneMessage`,`No source actions available`),{include:K.Source.contains(i.kind)?i.kind:G.None,includeSourceActions:!0,onlyIncludePreferredActions:i.preferred},i.apply,cu.SourceAction)}},lf=class extends e.EditorAction{constructor(){super({id:yu,label:e.localize(`organizeImports.label`,`Organize Imports`),alias:`Organize Imports`,precondition:e.ContextKeyExpr.and(e.EditorContextKeys.writable,ef(K.SourceOrganizeImports)),kbOpts:{kbExpr:e.EditorContextKeys.textInputFocus,primary:1581,weight:100}})}run(t,n){return nf(n,e.localize(`editor.action.organize.noneMessage`,`No organize imports action available`),{include:K.SourceOrganizeImports,includeSourceActions:!0},`ifSingle`,cu.OrganizeImports)}},uf=class extends e.EditorAction{constructor(){super({id:bu,label:e.localize(`fixAll.label`,`Fix All`),alias:`Fix All`,precondition:e.ContextKeyExpr.and(e.EditorContextKeys.writable,ef(K.SourceFixAll))})}run(t,n){return nf(n,e.localize(`fixAll.noneMessage`,`No fix all action available`),{include:K.SourceFixAll,includeSourceActions:!0},`ifSingle`,cu.FixAll)}},df=class extends e.EditorAction{constructor(){super({id:`editor.action.autoFix`,label:e.localize(`autoFix.label`,`Auto Fix...`),alias:`Auto Fix...`,precondition:e.ContextKeyExpr.and(e.EditorContextKeys.writable,ef(K.QuickFix)),kbOpts:{kbExpr:e.EditorContextKeys.textInputFocus,primary:1625,mac:{primary:2649},weight:100}})}run(t,n){return nf(n,e.localize(`editor.action.autoFix.noneMessage`,`No auto fixes available`),{include:K.QuickFix,onlyIncludePreferredActions:!0},`ifSingle`,cu.AutoFix)}};e.registerEditorContribution($d.ID,$d,3),e.registerEditorContribution(Td.ID,Td,4),e.registerEditorAction(rf),e.registerEditorAction(sf),e.registerEditorAction(cf),e.registerEditorAction(lf),e.registerEditorAction(df),e.registerEditorAction(uf),e.registerEditorCommand(new af),e.Registry.as(e.Extensions$1.Configuration).registerConfiguration({...e.editorConfigurationBaseNode,properties:{"editor.codeActionWidget.showHeaders":{type:`boolean`,scope:5,description:e.localize(`showCodeActionHeaders`,`Enable/disable showing group headers in the Code Action menu.`),default:!0}}}),e.Registry.as(e.Extensions$1.Configuration).registerConfiguration({...e.editorConfigurationBaseNode,properties:{"editor.codeActionWidget.includeNearbyQuickFixes":{type:`boolean`,scope:5,description:e.localize(`includeNearbyQuickFixes`,`Enable/disable showing nearest Quick Fix within a line when not currently on a diagnostic.`),default:!0}}}),e.Registry.as(e.Extensions$1.Configuration).registerConfiguration({...e.editorConfigurationBaseNode,properties:{"editor.codeActions.triggerOnFocusChange":{type:`boolean`,scope:5,markdownDescription:e.localize(`triggerOnFocusChange`,`Enable triggering {0} when {1} is set to {2}. Code Actions must be set to {3} to be triggered for window and focus changes.`,"`#editor.codeActionsOnSave#`","`#files.autoSave#`","`afterDelay`","`always`"),default:!1}}});var ff=class{constructor(){this.lenses=[],this._disposables=new e.DisposableStore}dispose(){this._disposables.dispose()}get isDisposed(){return this._disposables.isDisposed}add(e,t){this._disposables.add(e);for(let n of e.lenses)this.lenses.push({symbol:n,provider:t})}};async function pf(t,n,r){let i=t.ordered(n),a=new Map,o=new ff,s=i.map(async(t,i)=>{a.set(t,i);try{let e=await Promise.resolve(t.provideCodeLenses(n,r));e&&o.add(e,t)}catch(t){e.onUnexpectedExternalError(t)}});return await Promise.all(s),o.lenses=o.lenses.sort((e,t)=>e.symbol.range.startLineNumber<t.symbol.range.startLineNumber?-1:e.symbol.range.startLineNumber>t.symbol.range.startLineNumber?1:a.get(e.provider)<a.get(t.provider)?-1:a.get(e.provider)>a.get(t.provider)?1:e.symbol.range.startColumn<t.symbol.range.startColumn?-1:e.symbol.range.startColumn>t.symbol.range.startColumn?1:0),o}e.CommandsRegistry.registerCommand(`_executeCodeLensProvider`,function(t,...n){let[r,i]=n;e.assertType(e.URI.isUri(r)),e.assertType(typeof i==`number`||!i);let{codeLensProvider:a}=t.get(e.ILanguageFeaturesService),o=t.get(e.IModelService).getModel(r);if(!o)throw e.illegalArgument();let s=[],c=new e.DisposableStore;return pf(a,o,e.CancellationToken.None).then(t=>{c.add(t);let n=[];for(let r of t.lenses)i==null||r.symbol.command?s.push(r.symbol):i-- >0&&r.provider.resolveCodeLens&&n.push(Promise.resolve(r.provider.resolveCodeLens(o,r.symbol,e.CancellationToken.None)).then(e=>s.push(e||r.symbol)));return Promise.all(n)}).then(()=>s).finally(()=>{setTimeout(()=>c.dispose(),100)})});var mf=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},hf=function(e,t){return function(n,r){t(n,r,e)}};const gf=e.createDecorator(`ICodeLensCache`);var _f=class{constructor(e,t){this.lineCount=e,this.data=t}},vf=class{constructor(t){this._fakeProvider=new class{provideCodeLenses(){throw Error(`not supported`)}},this._cache=new e.LRUCache(20,.75),e.runWhenWindowIdle(e.mainWindow,()=>t.remove(`codelens/cache`,1));let n=`codelens/cache2`,r=t.get(n,1,`{}`);this._deserialize(r);let i=e.Event.filter(t.onWillSaveState,t=>t.reason===e.WillSaveStateReason.SHUTDOWN);e.Event.once(i)(e=>{t.store(n,this._serialize(),1,1)})}put(e,t){let n=t.lenses.map(e=>({range:e.symbol.range,command:e.symbol.command&&{id:``,title:e.symbol.command?.title}})),r=new ff;r.add({lenses:n,dispose:()=>{}},this._fakeProvider);let i=new _f(e.getLineCount(),r);this._cache.set(e.uri.toString(),i)}get(e){let t=this._cache.get(e.uri.toString());return t&&t.lineCount===e.getLineCount()?t.data:void 0}delete(e){this._cache.delete(e.uri.toString())}_serialize(){let e=Object.create(null);for(let[t,n]of this._cache){let r=new Set;for(let e of n.data.lenses)r.add(e.symbol.range.startLineNumber);e[t]={lineCount:n.lineCount,lines:[...r.values()]}}return JSON.stringify(e)}_deserialize(t){try{let n=JSON.parse(t);for(let t in n){let r=n[t],i=[];for(let t of r.lines)i.push({range:new e.Range$1(t,1,t,11)});let a=new ff;a.add({lenses:i,dispose(){}},this._fakeProvider),this._cache.set(t,new _f(r.lineCount,a))}}catch{}}};vf=mf([hf(0,e.IStorageService)],vf),e.registerSingleton(gf,vf,1);var yf=class{constructor(e,t,n){this.afterColumn=1073741824,this.afterLineNumber=e,this.heightInPx=t,this._onHeight=n,this.suppressMouseDown=!0,this.domNode=document.createElement(`div`)}onComputedHeight(e){this._lastHeight===void 0?this._lastHeight=e:this._lastHeight!==e&&(this._lastHeight=e,this._onHeight())}isVisible(){return this._lastHeight!==0&&this.domNode.hasAttribute(`monaco-visible-view-zone`)}},bf=class t{static{this._idPool=0}constructor(e,n){this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this._commands=new Map,this._isEmpty=!0,this._editor=e,this._id=`codelens.widget-${t._idPool++}`,this.updatePosition(n),this._domNode=document.createElement(`span`),this._domNode.className=`codelens-decoration`}withCommands(n,r){this._commands.clear();let i=[],a=!1;for(let r=0;r<n.length;r++){let o=n[r];if(o&&(a=!0,o.command)){let a=e.renderLabelWithIcons(o.command.title.trim());if(o.command.id){let n=`c${t._idPool++}`;i.push(e.$(`a`,{id:n,title:o.command.tooltip,role:`button`},...a)),this._commands.set(n,o.command)}else i.push(e.$(`span`,{title:o.command.tooltip},...a));r+1<n.length&&i.push(e.$(`span`,void 0,`\xA0|\xA0`))}}a?(e.reset(this._domNode,...i),this._isEmpty&&r&&this._domNode.classList.add(`fadein`),this._isEmpty=!1):e.reset(this._domNode,e.$(`span`,void 0,`no commands`))}getCommand(e){return e.parentElement===this._domNode?this._commands.get(e.id):void 0}getId(){return this._id}getDomNode(){return this._domNode}updatePosition(e){let t=this._editor.getModel().getLineFirstNonWhitespaceColumn(e);this._widgetPosition={position:{lineNumber:e,column:t},preference:[1]}}getPosition(){return this._widgetPosition||null}},xf=class{constructor(){this._removeDecorations=[],this._addDecorations=[],this._addDecorationsCallbacks=[]}addDecoration(e,t){this._addDecorations.push(e),this._addDecorationsCallbacks.push(t)}removeDecoration(e){this._removeDecorations.push(e)}commit(e){let t=e.deltaDecorations(this._removeDecorations,this._addDecorations);for(let e=0,n=t.length;e<n;e++)this._addDecorationsCallbacks[e](t[e])}},Sf=e.ModelDecorationOptions.register({collapseOnReplaceEdit:!0,description:`codelens`}),Cf=class{constructor(t,n,r,i,a,o){this._isDisposed=!1,this._editor=n,this._data=t,this._decorationIds=[];let s,c=[];this._data.forEach((t,n)=>{t.symbol.command&&c.push(t.symbol),r.addDecoration({range:t.symbol.range,options:Sf},e=>this._decorationIds[n]=e),s=s?e.Range$1.plusRange(s,t.symbol.range):e.Range$1.lift(t.symbol.range)}),this._viewZone=new yf(s.startLineNumber-1,a,o),this._viewZoneId=i.addZone(this._viewZone),c.length>0&&(this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(c,!1))}_createContentWidgetIfNecessary(){this._contentWidget?this._editor.layoutContentWidget(this._contentWidget):(this._contentWidget=new bf(this._editor,this._viewZone.afterLineNumber+1),this._editor.addContentWidget(this._contentWidget))}dispose(e,t){this._decorationIds.forEach(e.removeDecoration,e),this._decorationIds=[],t?.removeZone(this._viewZoneId),this._contentWidget&&=(this._editor.removeContentWidget(this._contentWidget),void 0),this._isDisposed=!0}isDisposed(){return this._isDisposed}isValid(){return this._decorationIds.some((t,n)=>{let r=this._editor.getModel().getDecorationRange(t),i=this._data[n].symbol;return!!(r&&e.Range$1.isEmpty(i.range)===r.isEmpty())})}updateCodeLensSymbols(e,t){this._decorationIds.forEach(t.removeDecoration,t),this._decorationIds=[],this._data=e,this._data.forEach((e,n)=>{t.addDecoration({range:e.symbol.range,options:Sf},e=>this._decorationIds[n]=e)})}updateHeight(e,t){this._viewZone.heightInPx=e,t.layoutZone(this._viewZoneId),this._contentWidget&&this._editor.layoutContentWidget(this._contentWidget)}computeIfNecessary(e){if(!this._viewZone.isVisible())return null;for(let t=0;t<this._decorationIds.length;t++){let n=e.getDecorationRange(this._decorationIds[t]);n&&(this._data[t].symbol.range=n)}return this._data}updateCommands(e){this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(e,!0);for(let t=0;t<this._data.length;t++){let n=e[t];if(n){let{symbol:e}=this._data[t];e.command=n.command||e.command}}}getCommand(e){return this._contentWidget?.getCommand(e)}getLineNumber(){let e=this._editor.getModel().getDecorationRange(this._decorationIds[0]);return e?e.startLineNumber:-1}update(e){if(this.isValid()){let t=this._editor.getModel().getDecorationRange(this._decorationIds[0]);t&&(this._viewZone.afterLineNumber=t.startLineNumber-1,e.layoutZone(this._viewZoneId),this._contentWidget&&(this._contentWidget.updatePosition(t.startLineNumber),this._editor.layoutContentWidget(this._contentWidget)))}}},wf=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Tf=function(e,t){return function(n,r){t(n,r,e)}},Ef=class{static{this.ID=`css.editor.codeLens`}constructor(t,n,r,i,a,o){this._editor=t,this._languageFeaturesService=n,this._commandService=i,this._notificationService=a,this._codeLensCache=o,this._disposables=new e.DisposableStore,this._localToDispose=new e.DisposableStore,this._lenses=[],this._oldCodeLensModels=new e.DisposableStore,this._provideCodeLensDebounce=r.for(n.codeLensProvider,`CodeLensProvide`,{min:250}),this._resolveCodeLensesDebounce=r.for(n.codeLensProvider,`CodeLensResolve`,{min:250,salt:`resolve`}),this._resolveCodeLensesScheduler=new e.RunOnceScheduler(()=>this._resolveCodeLensesInViewport(),this._resolveCodeLensesDebounce.default()),this._disposables.add(this._editor.onDidChangeModel(()=>this._onModelChange())),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>this._onModelChange())),this._disposables.add(this._editor.onDidChangeConfiguration(e=>{(e.hasChanged(50)||e.hasChanged(19)||e.hasChanged(18))&&this._updateLensStyle(),e.hasChanged(17)&&this._onModelChange()})),this._disposables.add(n.codeLensProvider.onDidChange(this._onModelChange,this)),this._onModelChange(),this._updateLensStyle()}dispose(){this._localDispose(),this._disposables.dispose(),this._oldCodeLensModels.dispose(),this._currentCodeLensModel?.dispose()}_getLayoutInfo(){let e=Math.max(1.3,this._editor.getOption(67)/this._editor.getOption(52)),t=this._editor.getOption(19);return(!t||t<5)&&(t=this._editor.getOption(52)*.9|0),{fontSize:t,codeLensHeight:t*e|0}}_updateLensStyle(){let{codeLensHeight:t,fontSize:n}=this._getLayoutInfo(),r=this._editor.getOption(18),i=this._editor.getOption(50),{style:a}=this._editor.getContainerDomNode();a.setProperty(`--vscode-editorCodeLens-lineHeight`,`${t}px`),a.setProperty(`--vscode-editorCodeLens-fontSize`,`${n}px`),a.setProperty(`--vscode-editorCodeLens-fontFeatureSettings`,i.fontFeatureSettings),r&&(a.setProperty(`--vscode-editorCodeLens-fontFamily`,r),a.setProperty(`--vscode-editorCodeLens-fontFamilyDefault`,e.EDITOR_FONT_DEFAULTS.fontFamily)),this._editor.changeViewZones(e=>{for(let n of this._lenses)n.updateHeight(t,e)})}_localDispose(){this._getCodeLensModelPromise?.cancel(),this._getCodeLensModelPromise=void 0,this._resolveCodeLensesPromise?.cancel(),this._resolveCodeLensesPromise=void 0,this._localToDispose.clear(),this._oldCodeLensModels.clear(),this._currentCodeLensModel?.dispose()}_onModelChange(){this._localDispose();let t=this._editor.getModel();if(!t||!this._editor.getOption(17)||t.isTooLargeForTokenization())return;let n=this._codeLensCache.get(t);if(n&&this._renderCodeLensSymbols(n),!this._languageFeaturesService.codeLensProvider.has(t)){n&&e.disposableTimeout(()=>{let e=this._codeLensCache.get(t);n===e&&(this._codeLensCache.delete(t),this._onModelChange())},30*1e3,this._localToDispose);return}for(let e of this._languageFeaturesService.codeLensProvider.all(t))if(typeof e.onDidChange==`function`){let t=e.onDidChange(()=>r.schedule());this._localToDispose.add(t)}let r=new e.RunOnceScheduler(()=>{let n=Date.now();this._getCodeLensModelPromise?.cancel(),this._getCodeLensModelPromise=e.createCancelablePromise(e=>pf(this._languageFeaturesService.codeLensProvider,t,e)),this._getCodeLensModelPromise.then(e=>{this._currentCodeLensModel&&this._oldCodeLensModels.add(this._currentCodeLensModel),this._currentCodeLensModel=e,this._codeLensCache.put(t,e),r.delay=this._provideCodeLensDebounce.update(t,Date.now()-n),this._renderCodeLensSymbols(e),this._resolveCodeLensesInViewportSoon()},e.onUnexpectedError)},this._provideCodeLensDebounce.get(t));this._localToDispose.add(r),this._localToDispose.add(e.toDisposable(()=>this._resolveCodeLensesScheduler.cancel())),this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{this._editor.changeDecorations(e=>{this._editor.changeViewZones(t=>{let n=[],r=-1;this._lenses.forEach(e=>{!e.isValid()||r===e.getLineNumber()?n.push(e):(e.update(t),r=e.getLineNumber())});let i=new xf;n.forEach(e=>{e.dispose(i,t),this._lenses.splice(this._lenses.indexOf(e),1)}),i.commit(e)})}),r.schedule(),this._resolveCodeLensesScheduler.cancel(),this._resolveCodeLensesPromise?.cancel(),this._resolveCodeLensesPromise=void 0})),this._localToDispose.add(this._editor.onDidFocusEditorText(()=>{r.schedule()})),this._localToDispose.add(this._editor.onDidBlurEditorText(()=>{r.cancel()})),this._localToDispose.add(this._editor.onDidScrollChange(e=>{e.scrollTopChanged&&this._lenses.length>0&&this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add(this._editor.onDidLayoutChange(()=>{this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add(e.toDisposable(()=>{if(this._editor.getModel()){let t=e.StableEditorScrollState.capture(this._editor);this._editor.changeDecorations(e=>{this._editor.changeViewZones(t=>{this._disposeAllLenses(e,t)})}),t.restore(this._editor)}else this._disposeAllLenses(void 0,void 0)})),this._localToDispose.add(this._editor.onMouseDown(e=>{if(e.target.type!==9)return;let t=e.target.element;if(t?.tagName===`SPAN`&&(t=t.parentElement),t?.tagName===`A`)for(let e of this._lenses){let n=e.getCommand(t);if(n){this._commandService.executeCommand(n.id,...n.arguments||[]).catch(e=>this._notificationService.error(e));break}}})),r.schedule()}_disposeAllLenses(e,t){let n=new xf;for(let e of this._lenses)e.dispose(n,t);e&&n.commit(e),this._lenses.length=0}_renderCodeLensSymbols(t){if(!this._editor.hasModel())return;let n=this._editor.getModel().getLineCount(),r=[],i;for(let e of t.lenses){let t=e.symbol.range.startLineNumber;t<1||t>n||(i&&i[i.length-1].symbol.range.startLineNumber===t?i.push(e):(i=[e],r.push(i)))}if(!r.length&&!this._lenses.length)return;let a=e.StableEditorScrollState.capture(this._editor),o=this._getLayoutInfo();this._editor.changeDecorations(e=>{this._editor.changeViewZones(t=>{let n=new xf,i=0,a=0;for(;a<r.length&&i<this._lenses.length;){let e=r[a][0].symbol.range.startLineNumber,s=this._lenses[i].getLineNumber();s<e?(this._lenses[i].dispose(n,t),this._lenses.splice(i,1)):s===e?(this._lenses[i].updateCodeLensSymbols(r[a],n),a++,i++):(this._lenses.splice(i,0,new Cf(r[a],this._editor,n,t,o.codeLensHeight,()=>this._resolveCodeLensesInViewportSoon())),i++,a++)}for(;i<this._lenses.length;)this._lenses[i].dispose(n,t),this._lenses.splice(i,1);for(;a<r.length;)this._lenses.push(new Cf(r[a],this._editor,n,t,o.codeLensHeight,()=>this._resolveCodeLensesInViewportSoon())),a++;n.commit(e)})}),a.restore(this._editor)}_resolveCodeLensesInViewportSoon(){this._editor.getModel()&&this._resolveCodeLensesScheduler.schedule()}_resolveCodeLensesInViewport(){this._resolveCodeLensesPromise?.cancel(),this._resolveCodeLensesPromise=void 0;let t=this._editor.getModel();if(!t)return;let n=[],r=[];if(this._lenses.forEach(e=>{let i=e.computeIfNecessary(t);i&&(n.push(i),r.push(e))}),n.length===0)return;let i=Date.now(),a=e.createCancelablePromise(i=>{let a=n.map((n,a)=>{let o=Array(n.length),s=n.map((n,r)=>!n.symbol.command&&typeof n.provider.resolveCodeLens==`function`?Promise.resolve(n.provider.resolveCodeLens(t,n.symbol,i)).then(e=>{o[r]=e},e.onUnexpectedExternalError):(o[r]=n.symbol,Promise.resolve(void 0)));return Promise.all(s).then(()=>{!i.isCancellationRequested&&!r[a].isDisposed()&&r[a].updateCommands(o)})});return Promise.all(a)});this._resolveCodeLensesPromise=a,this._resolveCodeLensesPromise.then(()=>{let e=this._resolveCodeLensesDebounce.update(t,Date.now()-i);this._resolveCodeLensesScheduler.delay=e,this._currentCodeLensModel&&this._codeLensCache.put(t,this._currentCodeLensModel),this._oldCodeLensModels.clear(),a===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)},t=>{e.onUnexpectedError(t),a===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)})}async getModel(){return await this._getCodeLensModelPromise,await this._resolveCodeLensesPromise,this._currentCodeLensModel?.isDisposed?void 0:this._currentCodeLensModel}};Ef=wf([Tf(1,e.ILanguageFeaturesService),Tf(2,e.ILanguageFeatureDebounceService),Tf(3,e.ICommandService),Tf(4,e.INotificationService),Tf(5,gf)],Ef),e.registerEditorContribution(Ef.ID,Ef,1),e.registerEditorAction(class extends e.EditorAction{constructor(){super({id:`codelens.showLensesInCurrentLine`,precondition:e.EditorContextKeys.hasCodeLensProvider,label:e.localize(`showLensOnLine`,`Show CodeLens Commands For Current Line`),alias:`Show CodeLens Commands For Current Line`})}async run(t,n){if(!n.hasModel())return;let r=t.get(e.IQuickInputService),i=t.get(e.ICommandService),a=t.get(e.INotificationService),o=n.getSelection().positionLineNumber,s=n.getContribution(Ef.ID);if(!s)return;let c=await s.getModel();if(!c)return;let l=[];for(let e of c.lenses)e.symbol.command&&e.symbol.range.startLineNumber===o&&l.push({label:e.symbol.command.title,command:e.symbol.command});if(l.length===0)return;let u=await r.pick(l,{canPickMany:!1,placeHolder:e.localize(`placeHolder`,`Select a command`)});if(!u)return;let d=u.command;if(c.isDisposed){let e=(await s.getModel())?.lenses.find(e=>e.symbol.range.startLineNumber===o&&e.symbol.command?.title===d.title);if(!e||!e.symbol.command)return;d=e.symbol.command}try{await i.executeCommand(d.id,...d.arguments||[])}catch(e){a.error(e)}}});var Df=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Of=function(e,t){return function(n,r){t(n,r,e)}},kf=class{constructor(e){this._editorWorkerService=e}async provideDocumentColors(e,t){return this._editorWorkerService.computeDefaultDocumentColors(e.uri)}provideColorPresentations(t,n,r){let i=n.range,a=n.color,o=a.alpha,s=new e.Color(new e.RGBA(Math.round(255*a.red),Math.round(255*a.green),Math.round(255*a.blue),o)),c=o?e.Color.Format.CSS.formatRGB(s):e.Color.Format.CSS.formatRGBA(s),l=o?e.Color.Format.CSS.formatHSL(s):e.Color.Format.CSS.formatHSLA(s),u=o?e.Color.Format.CSS.formatHex(s):e.Color.Format.CSS.formatHexA(s),d=[];return d.push({label:c,textEdit:{range:i,text:c}}),d.push({label:l,textEdit:{range:i,text:l}}),d.push({label:u,textEdit:{range:i,text:u}}),d}};kf=Df([Of(0,e.IEditorWorkerService)],kf);var Af=class extends e.Disposable{constructor(e,t){super(),this._register(e.colorProvider.register(`*`,new kf(t)))}};Af=Df([Of(0,e.ILanguageFeaturesService),Of(1,e.IEditorWorkerService)],Af),e.registerEditorFeature(Af);async function jf(e,t,n,r=!0){return If(new Nf,e,t,n,r)}function Mf(e,t,n,r){return Promise.resolve(n.provideColorPresentations(e,t,r))}var Nf=class{constructor(){}async compute(e,t,n,r){let i=await e.provideDocumentColors(t,n);if(Array.isArray(i))for(let t of i)r.push({colorInfo:t,provider:e});return Array.isArray(i)}},Pf=class{constructor(){}async compute(e,t,n,r){let i=await e.provideDocumentColors(t,n);if(Array.isArray(i))for(let e of i)r.push({range:e.range,color:[e.color.red,e.color.green,e.color.blue,e.color.alpha]});return Array.isArray(i)}},Ff=class{constructor(e){this.colorInfo=e}async compute(t,n,r,i){let a=await t.provideColorPresentations(n,this.colorInfo,e.CancellationToken.None);return Array.isArray(a)&&i.push(...a),Array.isArray(a)}};async function If(t,n,r,i,a){let o=!1,s,c=[],l=n.ordered(r);for(let n=l.length-1;n>=0;n--){let a=l[n];if(a instanceof kf)s=a;else try{await t.compute(a,r,i,c)&&(o=!0)}catch(t){e.onUnexpectedExternalError(t)}}return o?c:s&&a?(await t.compute(s,r,i,c),c):[]}function Lf(t,n){let{colorProvider:r}=t.get(e.ILanguageFeaturesService),i=t.get(e.IModelService).getModel(n);if(!i)throw e.illegalArgument();let a=t.get(e.IConfigurationService).getValue(`editor.defaultColorDecorators`,{resource:n});return{model:i,colorProviderRegistry:r,isDefaultColorDecoratorsEnabled:a}}e.CommandsRegistry.registerCommand(`_executeDocumentColorProvider`,function(t,...n){let[r]=n;if(!(r instanceof e.URI))throw e.illegalArgument();let{model:i,colorProviderRegistry:a,isDefaultColorDecoratorsEnabled:o}=Lf(t,r);return If(new Pf,a,i,e.CancellationToken.None,o)}),e.CommandsRegistry.registerCommand(`_executeColorPresentationProvider`,function(t,...n){let[r,i]=n,{uri:a,range:o}=i;if(!(a instanceof e.URI)||!Array.isArray(r)||r.length!==4||!e.Range$1.isIRange(o))throw e.illegalArgument();let{model:s,colorProviderRegistry:c,isDefaultColorDecoratorsEnabled:l}=Lf(t,a),[u,d,f,p]=r;return If(new Ff({range:o,color:{red:u,green:d,blue:f,alpha:p}}),c,s,e.CancellationToken.None,l)});var Rf=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},zf=function(e,t){return function(n,r){t(n,r,e)}},Bf;const Vf=Object.create({});var Hf=class extends e.Disposable{static{Bf=this}static{this.ID=`editor.contrib.colorDetector`}static{this.RECOMPUTE_TIME=1e3}constructor(t,n,r,i){super(),this._editor=t,this._configurationService=n,this._languageFeaturesService=r,this._localToDispose=this._register(new e.DisposableStore),this._decorationsIds=[],this._colorDatas=new Map,this._colorDecoratorIds=this._editor.createDecorationsCollection(),this._ruleFactory=new e.DynamicCssRules(this._editor),this._decoratorLimitReporter=new Uf,this._colorDecorationClassRefs=this._register(new e.DisposableStore),this._debounceInformation=i.for(r.colorProvider,`Document Colors`,{min:Bf.RECOMPUTE_TIME}),this._register(t.onDidChangeModel(()=>{this._isColorDecoratorsEnabled=this.isEnabled(),this.updateColors()})),this._register(t.onDidChangeModelLanguage(()=>this.updateColors())),this._register(r.colorProvider.onDidChange(()=>this.updateColors())),this._register(t.onDidChangeConfiguration(e=>{let t=this._isColorDecoratorsEnabled;this._isColorDecoratorsEnabled=this.isEnabled(),this._isDefaultColorDecoratorsEnabled=this._editor.getOption(148);let n=t!==this._isColorDecoratorsEnabled||e.hasChanged(21),r=e.hasChanged(148);(n||r)&&(this._isColorDecoratorsEnabled?this.updateColors():this.removeAllDecorations())})),this._timeoutTimer=null,this._computePromise=null,this._isColorDecoratorsEnabled=this.isEnabled(),this._isDefaultColorDecoratorsEnabled=this._editor.getOption(148),this.updateColors()}isEnabled(){let e=this._editor.getModel();if(!e)return!1;let t=e.getLanguageId(),n=this._configurationService.getValue(t);if(n&&typeof n==`object`){let e=n.colorDecorators;if(e&&e.enable!==void 0&&!e.enable)return e.enable}return this._editor.getOption(20)}static get(e){return e.getContribution(this.ID)}dispose(){this.stop(),this.removeAllDecorations(),super.dispose()}updateColors(){if(this.stop(),!this._isColorDecoratorsEnabled)return;let t=this._editor.getModel();!t||!this._languageFeaturesService.colorProvider.has(t)||(this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{this._timeoutTimer||(this._timeoutTimer=new e.TimeoutTimer,this._timeoutTimer.cancelAndSet(()=>{this._timeoutTimer=null,this.beginCompute()},this._debounceInformation.get(t)))})),this.beginCompute())}async beginCompute(){this._computePromise=e.createCancelablePromise(async t=>{let n=this._editor.getModel();if(!n)return[];let r=new e.StopWatch(!1),i=await jf(this._languageFeaturesService.colorProvider,n,t,this._isDefaultColorDecoratorsEnabled);return this._debounceInformation.update(n,r.elapsed()),i});try{let e=await this._computePromise;this.updateDecorations(e),this.updateColorDecorators(e),this._computePromise=null}catch(t){e.onUnexpectedError(t)}}stop(){this._timeoutTimer&&=(this._timeoutTimer.cancel(),null),this._computePromise&&=(this._computePromise.cancel(),null),this._localToDispose.clear()}updateDecorations(t){let n=t.map(t=>({range:{startLineNumber:t.colorInfo.range.startLineNumber,startColumn:t.colorInfo.range.startColumn,endLineNumber:t.colorInfo.range.endLineNumber,endColumn:t.colorInfo.range.endColumn},options:e.ModelDecorationOptions.EMPTY}));this._editor.changeDecorations(e=>{this._decorationsIds=e.deltaDecorations(this._decorationsIds,n),this._colorDatas=new Map,this._decorationsIds.forEach((e,n)=>this._colorDatas.set(e,t[n]))})}updateColorDecorators(t){this._colorDecorationClassRefs.clear();let n=[],r=this._editor.getOption(21);for(let i=0;i<t.length&&n.length<r;i++){let{red:r,green:a,blue:o,alpha:s}=t[i].colorInfo.color,c=new e.RGBA(Math.round(r*255),Math.round(a*255),Math.round(o*255),s),l=`rgba(${c.r}, ${c.g}, ${c.b}, ${c.a})`,u=this._colorDecorationClassRefs.add(this._ruleFactory.createClassNameRef({backgroundColor:l}));n.push({range:{startLineNumber:t[i].colorInfo.range.startLineNumber,startColumn:t[i].colorInfo.range.startColumn,endLineNumber:t[i].colorInfo.range.endLineNumber,endColumn:t[i].colorInfo.range.endColumn},options:{description:`colorDetector`,before:{content:`\xA0`,inlineClassName:`${u.className} colorpicker-color-decoration`,inlineClassNameAffectsLetterSpacing:!0,attachedData:Vf}}})}let i=r<t.length?r:!1;this._decoratorLimitReporter.update(t.length,i),this._colorDecoratorIds.set(n)}removeAllDecorations(){this._editor.removeDecorations(this._decorationsIds),this._decorationsIds=[],this._colorDecoratorIds.clear(),this._colorDecorationClassRefs.clear()}getColorData(t){let n=this._editor.getModel();if(!n)return null;let r=n.getDecorationsInRange(e.Range$1.fromPositions(t,t)).filter(e=>this._colorDatas.has(e.id));return r.length===0?null:this._colorDatas.get(r[0].id)}isColorDecoration(e){return this._colorDecoratorIds.has(e)}};Hf=Bf=Rf([zf(1,e.IConfigurationService),zf(2,e.ILanguageFeaturesService),zf(3,e.ILanguageFeatureDebounceService)],Hf);var Uf=class{constructor(){this._onDidChange=new e.Emitter$1,this._computed=0,this._limited=!1}update(e,t){(e!==this._computed||t!==this._limited)&&(this._computed=e,this._limited=t,this._onDidChange.fire())}};e.registerEditorContribution(Hf.ID,Hf,1);var Wf=class{get color(){return this._color}set color(e){this._color.equals(e)||(this._color=e,this._onDidChangeColor.fire(e))}get presentation(){return this.colorPresentations[this.presentationIndex]}get colorPresentations(){return this._colorPresentations}set colorPresentations(e){this._colorPresentations=e,this.presentationIndex>e.length-1&&(this.presentationIndex=0),this._onDidChangePresentation.fire(this.presentation)}constructor(t,n,r){this.presentationIndex=r,this._onColorFlushed=new e.Emitter$1,this.onColorFlushed=this._onColorFlushed.event,this._onDidChangeColor=new e.Emitter$1,this.onDidChangeColor=this._onDidChangeColor.event,this._onDidChangePresentation=new e.Emitter$1,this.onDidChangePresentation=this._onDidChangePresentation.event,this.originalColor=t,this._color=t,this._colorPresentations=n}selectNextColorPresentation(){this.presentationIndex=(this.presentationIndex+1)%this.colorPresentations.length,this.flushColor(),this._onDidChangePresentation.fire(this.presentation)}guessColorPresentation(e,t){let n=-1;for(let e=0;e<this.colorPresentations.length;e++)if(t.toLowerCase()===this.colorPresentations[e].label){n=e;break}if(n===-1){let e=t.split(`(`)[0].toLowerCase();for(let t=0;t<this.colorPresentations.length;t++)if(this.colorPresentations[t].label.toLowerCase().startsWith(e)){n=t;break}}n!==-1&&n!==this.presentationIndex&&(this.presentationIndex=n,this._onDidChangePresentation.fire(this.presentation))}flushColor(){this._onColorFlushed.fire(this._color)}},Gf=e.$,Kf=class extends e.Disposable{constructor(t,n,r,i=!1){super(),this.model=n,this.showingStandaloneColorPicker=i,this._closeButton=null,this._domNode=Gf(`.colorpicker-header`),e.append(t,this._domNode),this._pickedColorNode=e.append(this._domNode,Gf(`.picked-color`)),e.append(this._pickedColorNode,Gf(`span.codicon.codicon-color-mode`)),this._pickedColorPresentation=e.append(this._pickedColorNode,document.createElement(`span`)),this._pickedColorPresentation.classList.add(`picked-color-presentation`);let a=e.localize(`clickToToggleColorOptions`,`Click to toggle color options (rgb/hsl/hex)`);this._pickedColorNode.setAttribute(`title`,a),this._originalColorNode=e.append(this._domNode,Gf(`.original-color`)),this._originalColorNode.style.backgroundColor=e.Color.Format.CSS.format(this.model.originalColor)||``,this.backgroundColor=r.getColorTheme().getColor(e.editorHoverBackground)||e.Color.white,this._register(r.onDidColorThemeChange(t=>{this.backgroundColor=t.getColor(e.editorHoverBackground)||e.Color.white})),this._register(e.addDisposableListener(this._pickedColorNode,e.EventType$1.CLICK,()=>this.model.selectNextColorPresentation())),this._register(e.addDisposableListener(this._originalColorNode,e.EventType$1.CLICK,()=>{this.model.color=this.model.originalColor,this.model.flushColor()})),this._register(n.onDidChangeColor(this.onDidChangeColor,this)),this._register(n.onDidChangePresentation(this.onDidChangePresentation,this)),this._pickedColorNode.style.backgroundColor=e.Color.Format.CSS.format(n.color)||``,this._pickedColorNode.classList.toggle(`light`,n.color.rgba.a<.5?this.backgroundColor.isLighter():n.color.isLighter()),this.onDidChangeColor(this.model.color),this.showingStandaloneColorPicker&&(this._domNode.classList.add(`standalone-colorpicker`),this._closeButton=this._register(new qf(this._domNode)))}get closeButton(){return this._closeButton}get pickedColorNode(){return this._pickedColorNode}get originalColorNode(){return this._originalColorNode}onDidChangeColor(t){this._pickedColorNode.style.backgroundColor=e.Color.Format.CSS.format(t)||``,this._pickedColorNode.classList.toggle(`light`,t.rgba.a<.5?this.backgroundColor.isLighter():t.isLighter()),this.onDidChangePresentation()}onDidChangePresentation(){this._pickedColorPresentation.textContent=this.model.presentation?this.model.presentation.label:``}},qf=class extends e.Disposable{constructor(t){super(),this._onClicked=this._register(new e.Emitter$1),this.onClicked=this._onClicked.event,this._button=document.createElement(`div`),this._button.classList.add(`close-button`),e.append(t,this._button);let n=document.createElement(`div`);n.classList.add(`close-button-inner-div`),e.append(this._button,n),e.append(n,Gf(`.button`+e.ThemeIcon.asCSSSelector(e.registerIcon(`color-picker-close`,e.Codicon.close,e.localize(`closeIcon`,`Icon to close the color picker`))))).classList.add(`close-icon`),this._register(e.addDisposableListener(this._button,e.EventType$1.CLICK,()=>{this._onClicked.fire()}))}},Jf=class extends e.Disposable{constructor(t,n,r,i=!1){super(),this.model=n,this.pixelRatio=r,this._insertButton=null,this._domNode=Gf(`.colorpicker-body`),e.append(t,this._domNode),this._saturationBox=new Yf(this._domNode,this.model,this.pixelRatio),this._register(this._saturationBox),this._register(this._saturationBox.onDidChange(this.onDidSaturationValueChange,this)),this._register(this._saturationBox.onColorFlushed(this.flushColor,this)),this._opacityStrip=new Zf(this._domNode,this.model,i),this._register(this._opacityStrip),this._register(this._opacityStrip.onDidChange(this.onDidOpacityChange,this)),this._register(this._opacityStrip.onColorFlushed(this.flushColor,this)),this._hueStrip=new Qf(this._domNode,this.model,i),this._register(this._hueStrip),this._register(this._hueStrip.onDidChange(this.onDidHueChange,this)),this._register(this._hueStrip.onColorFlushed(this.flushColor,this)),i&&(this._insertButton=this._register(new $f(this._domNode)),this._domNode.classList.add(`standalone-colorpicker`))}flushColor(){this.model.flushColor()}onDidSaturationValueChange({s:t,v:n}){let r=this.model.color.hsva;this.model.color=new e.Color(new e.HSVA(r.h,t,n,r.a))}onDidOpacityChange(t){let n=this.model.color.hsva;this.model.color=new e.Color(new e.HSVA(n.h,n.s,n.v,t))}onDidHueChange(t){let n=this.model.color.hsva,r=(1-t)*360;this.model.color=new e.Color(new e.HSVA(r===360?0:r,n.s,n.v,n.a))}get domNode(){return this._domNode}get saturationBox(){return this._saturationBox}get enterButton(){return this._insertButton}layout(){this._saturationBox.layout(),this._opacityStrip.layout(),this._hueStrip.layout()}},Yf=class extends e.Disposable{constructor(t,n,r){super(),this.model=n,this.pixelRatio=r,this._onDidChange=new e.Emitter$1,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new e.Emitter$1,this.onColorFlushed=this._onColorFlushed.event,this._domNode=Gf(`.saturation-wrap`),e.append(t,this._domNode),this._canvas=document.createElement(`canvas`),this._canvas.className=`saturation-box`,e.append(this._domNode,this._canvas),this.selection=Gf(`.saturation-selection`),e.append(this._domNode,this.selection),this.layout(),this._register(e.addDisposableListener(this._domNode,e.EventType$1.POINTER_DOWN,e=>this.onPointerDown(e))),this._register(this.model.onDidChangeColor(this.onDidChangeColor,this)),this.monitor=null}get domNode(){return this._domNode}onPointerDown(t){if(!t.target||!(t.target instanceof Element))return;this.monitor=this._register(new e.GlobalPointerMoveMonitor);let n=e.getDomNodePagePosition(this._domNode);t.target!==this.selection&&this.onDidChangePosition(t.offsetX,t.offsetY),this.monitor.startMonitoring(t.target,t.pointerId,t.buttons,e=>this.onDidChangePosition(e.pageX-n.left,e.pageY-n.top),()=>null);let r=e.addDisposableListener(t.target.ownerDocument,e.EventType$1.POINTER_UP,()=>{this._onColorFlushed.fire(),r.dispose(),this.monitor&&=(this.monitor.stopMonitoring(!0),null)},!0)}onDidChangePosition(e,t){let n=Math.max(0,Math.min(1,e/this.width)),r=Math.max(0,Math.min(1,1-t/this.height));this.paintSelection(n,r),this._onDidChange.fire({s:n,v:r})}layout(){this.width=this._domNode.offsetWidth,this.height=this._domNode.offsetHeight,this._canvas.width=this.width*this.pixelRatio,this._canvas.height=this.height*this.pixelRatio,this.paint();let e=this.model.color.hsva;this.paintSelection(e.s,e.v)}paint(){let t=this.model.color.hsva,n=new e.Color(new e.HSVA(t.h,1,1,1)),r=this._canvas.getContext(`2d`),i=r.createLinearGradient(0,0,this._canvas.width,0);i.addColorStop(0,`rgba(255, 255, 255, 1)`),i.addColorStop(.5,`rgba(255, 255, 255, 0.5)`),i.addColorStop(1,`rgba(255, 255, 255, 0)`);let a=r.createLinearGradient(0,0,0,this._canvas.height);a.addColorStop(0,`rgba(0, 0, 0, 0)`),a.addColorStop(1,`rgba(0, 0, 0, 1)`),r.rect(0,0,this._canvas.width,this._canvas.height),r.fillStyle=e.Color.Format.CSS.format(n),r.fill(),r.fillStyle=i,r.fill(),r.fillStyle=a,r.fill()}paintSelection(e,t){this.selection.style.left=`${e*this.width}px`,this.selection.style.top=`${this.height-t*this.height}px`}onDidChangeColor(e){if(this.monitor&&this.monitor.isMonitoring())return;this.paint();let t=e.hsva;this.paintSelection(t.s,t.v)}},Xf=class extends e.Disposable{constructor(t,n,r=!1){super(),this.model=n,this._onDidChange=new e.Emitter$1,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new e.Emitter$1,this.onColorFlushed=this._onColorFlushed.event,r?(this.domNode=e.append(t,Gf(`.standalone-strip`)),this.overlay=e.append(this.domNode,Gf(`.standalone-overlay`))):(this.domNode=e.append(t,Gf(`.strip`)),this.overlay=e.append(this.domNode,Gf(`.overlay`))),this.slider=e.append(this.domNode,Gf(`.slider`)),this.slider.style.top=`0px`,this._register(e.addDisposableListener(this.domNode,e.EventType$1.POINTER_DOWN,e=>this.onPointerDown(e))),this._register(n.onDidChangeColor(this.onDidChangeColor,this)),this.layout()}layout(){this.height=this.domNode.offsetHeight-this.slider.offsetHeight;let e=this.getValue(this.model.color);this.updateSliderPosition(e)}onDidChangeColor(e){let t=this.getValue(e);this.updateSliderPosition(t)}onPointerDown(t){if(!t.target||!(t.target instanceof Element))return;let n=this._register(new e.GlobalPointerMoveMonitor),r=e.getDomNodePagePosition(this.domNode);this.domNode.classList.add(`grabbing`),t.target!==this.slider&&this.onDidChangeTop(t.offsetY),n.startMonitoring(t.target,t.pointerId,t.buttons,e=>this.onDidChangeTop(e.pageY-r.top),()=>null);let i=e.addDisposableListener(t.target.ownerDocument,e.EventType$1.POINTER_UP,()=>{this._onColorFlushed.fire(),i.dispose(),n.stopMonitoring(!0),this.domNode.classList.remove(`grabbing`)},!0)}onDidChangeTop(e){let t=Math.max(0,Math.min(1,1-e/this.height));this.updateSliderPosition(t),this._onDidChange.fire(t)}updateSliderPosition(e){this.slider.style.top=`${(1-e)*this.height}px`}},Zf=class extends Xf{constructor(e,t,n=!1){super(e,t,n),this.domNode.classList.add(`opacity-strip`),this.onDidChangeColor(this.model.color)}onDidChangeColor(t){super.onDidChangeColor(t);let{r:n,g:r,b:i}=t.rgba,a=new e.Color(new e.RGBA(n,r,i,1)),o=new e.Color(new e.RGBA(n,r,i,0));this.overlay.style.background=`linear-gradient(to bottom, ${a} 0%, ${o} 100%)`}getValue(e){return e.hsva.a}},Qf=class extends Xf{constructor(e,t,n=!1){super(e,t,n),this.domNode.classList.add(`hue-strip`)}getValue(e){return 1-e.hsva.h/360}},$f=class extends e.Disposable{constructor(t){super(),this._onClicked=this._register(new e.Emitter$1),this.onClicked=this._onClicked.event,this._button=e.append(t,document.createElement(`button`)),this._button.classList.add(`insert-button`),this._button.textContent=`Insert`,this._register(e.addDisposableListener(this._button,e.EventType$1.CLICK,()=>{this._onClicked.fire()}))}get button(){return this._button}},ep=class extends e.Widget{constructor(t,n,r,i,a=!1){super(),this.model=n,this.pixelRatio=r,this._register(e.PixelRatio.getInstance(e.getWindow(t)).onDidChange(()=>this.layout())),this._domNode=Gf(`.colorpicker-widget`),t.appendChild(this._domNode),this.header=this._register(new Kf(this._domNode,this.model,i,a)),this.body=this._register(new Jf(this._domNode,this.model,this.pixelRatio,a))}layout(){this.body.layout()}get domNode(){return this._domNode}},tp=class{constructor(e,t,n,r){this.priority=e,this.range=t,this.initialMousePosX=n,this.initialMousePosY=r,this.type=1}equals(e){return e.type===1&&this.range.equalsRange(e.range)}canAdoptVisibleHover(e,t){return e.type===1&&t.lineNumber===this.range.startLineNumber}},np=class{constructor(e,t,n,r,i,a){this.priority=e,this.owner=t,this.range=n,this.initialMousePosX=r,this.initialMousePosY=i,this.supportsMarkerHover=a,this.type=2}equals(e){return e.type===2&&this.owner===e.owner}canAdoptVisibleHover(e,t){return e.type===2&&this.owner===e.owner}},rp=class{constructor(e){this.renderedHoverParts=e}dispose(){for(let e of this.renderedHoverParts)e.dispose()}};const ip=new class{constructor(){this._participants=[]}register(e){this._participants.push(e)}getAll(){return this._participants}};var ap=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},op=function(e,t){return function(n,r){t(n,r,e)}},sp=class{constructor(e,t,n,r){this.owner=e,this.range=t,this.model=n,this.provider=r,this.forceShowAtRange=!0}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}},cp=class{constructor(e,t){this._editor=e,this._themeService=t,this.hoverOrdinal=2}computeSync(e,t){return[]}computeAsync(t,n,r){return e.AsyncIterableObject.fromPromise(this._computeAsync(t,n,r))}async _computeAsync(e,t,n){if(!this._editor.hasModel())return[];let r=Hf.get(this._editor);if(!r)return[];for(let e of t){if(!r.isColorDecoration(e))continue;let t=r.getColorData(e.range.getStartPosition());if(t)return[await dp(this,this._editor.getModel(),t.colorInfo,t.provider)]}return[]}renderHoverParts(e,t){let n=fp(this,this._editor,this._themeService,t,e);if(!n)return new rp([]);this._colorPicker=n.colorPicker;let r={hoverPart:n.hoverPart,hoverElement:this._colorPicker.domNode,dispose(){n.disposables.dispose()}};return new rp([r])}handleResize(){this._colorPicker?.layout()}isColorPickerVisible(){return!!this._colorPicker}};cp=ap([op(1,e.IThemeService)],cp);var lp=class{constructor(e,t,n,r){this.owner=e,this.range=t,this.model=n,this.provider=r}},up=class{constructor(e,t){this._editor=e,this._themeService=t,this._color=null}async createColorHover(t,n,r){if(!this._editor.hasModel()||!Hf.get(this._editor))return null;let i=await jf(r,this._editor.getModel(),e.CancellationToken.None),a=null,o=null;for(let n of i){let r=n.colorInfo;e.Range$1.containsRange(r.range,t.range)&&(a=r,o=n.provider)}let s=a??t,c=o??n,l=!!a;return{colorHover:await dp(this,this._editor.getModel(),s,c),foundInEditor:l}}async updateEditorModel(t){if(!this._editor.hasModel())return;let n=t.model,r=new e.Range$1(t.range.startLineNumber,t.range.startColumn,t.range.endLineNumber,t.range.endColumn);this._color&&(await mp(this._editor.getModel(),n,this._color,r,t),r=pp(this._editor,r,n))}renderHoverParts(e,t){return fp(this,this._editor,this._themeService,t,e)}set color(e){this._color=e}get color(){return this._color}};up=ap([op(1,e.IThemeService)],up);async function dp(t,n,r,i){let a=n.getValueInRange(r.range),{red:o,green:s,blue:c,alpha:l}=r.color,u=new e.RGBA(Math.round(o*255),Math.round(s*255),Math.round(c*255),l),d=new e.Color(u),f=await Mf(n,r,i,e.CancellationToken.None),p=new Wf(d,[],0);return p.colorPresentations=f||[],p.guessColorPresentation(d,a),t instanceof cp?new sp(t,e.Range$1.lift(r.range),p,i):new lp(t,e.Range$1.lift(r.range),p,i)}function fp(t,n,r,i,a){if(i.length===0||!n.hasModel())return;if(a.setMinimumDimensions){let t=n.getOption(67)+8;a.setMinimumDimensions(new e.Dimension(302,t))}let o=new e.DisposableStore,s=i[0],c=n.getModel(),l=s.model,u=o.add(new ep(a.fragment,l,n.getOption(144),r,t instanceof up)),d=!1,f=new e.Range$1(s.range.startLineNumber,s.range.startColumn,s.range.endLineNumber,s.range.endColumn);if(t instanceof up){let e=s.model.color;t.color=e,mp(c,l,e,f,s),o.add(l.onColorFlushed(e=>{t.color=e}))}else o.add(l.onColorFlushed(async e=>{await mp(c,l,e,f,s),d=!0,f=pp(n,f,l)}));return o.add(l.onDidChangeColor(e=>{mp(c,l,e,f,s)})),o.add(n.onDidChangeModelContent(e=>{d?d=!1:(a.hide(),n.focus())})),{hoverPart:s,colorPicker:u,disposables:o}}function pp(t,n,r){let i=[],a=r.presentation.textEdit??{range:n,text:r.presentation.label,forceMoveMarkers:!1};i.push(a),r.presentation.additionalTextEdits&&i.push(...r.presentation.additionalTextEdits);let o=e.Range$1.lift(a.range),s=t.getModel()._setTrackedRange(null,o,3);return t.executeEdits(`colorpicker`,i),t.pushUndoStop(),t.getModel()._getTrackedRange(s)??o}async function mp(t,n,r,i,a){n.colorPresentations=await Mf(t,{range:i,color:{red:r.rgba.r/255,green:r.rgba.g/255,blue:r.rgba.b/255,alpha:r.rgba.a}},a.provider,e.CancellationToken.None)||[]}const hp=`editor.action.showHover`,gp=`editor.action.showDefinitionPreviewHover`,_p=`editor.action.scrollUpHover`,vp=`editor.action.scrollDownHover`,yp=`editor.action.scrollLeftHover`,bp=`editor.action.scrollRightHover`,xp=`editor.action.pageUpHover`,Sp=`editor.action.pageDownHover`,Cp=`editor.action.goToTopHover`,wp=`editor.action.goToBottomHover`,Tp=`editor.action.increaseHoverVerbosityLevel`,Ep=e.localize({key:`increaseHoverVerbosityLevel`,comment:[`Label for action that will increase the hover verbosity level.`]},`Increase Hover Verbosity Level`),Dp=`editor.action.decreaseHoverVerbosityLevel`,Op=e.localize({key:`decreaseHoverVerbosityLevel`,comment:[`Label for action that will decrease the hover verbosity level.`]},`Decrease Hover Verbosity Level`),kp=`editor.action.inlineSuggest.commit`,Ap=`editor.action.inlineSuggest.showPrevious`,jp=`editor.action.inlineSuggest.showNext`;var Mp=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Np=function(e,t){return function(n,r){t(n,r,e)}},Pp,Fp=class extends e.Disposable{constructor(t,n,r){super(),this.editor=t,this.model=n,this.instantiationService=r,this.alwaysShowToolbar=e.observableFromEvent(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(62).showToolbar===`always`),this.sessionPosition=void 0,this.position=e.derived(this,t=>{let n=this.model.read(t)?.primaryGhostText.read(t);if(!this.alwaysShowToolbar.read(t)||!n||n.parts.length===0)return this.sessionPosition=void 0,null;let r=n.parts[0].column;this.sessionPosition&&this.sessionPosition.lineNumber!==n.lineNumber&&(this.sessionPosition=void 0);let i=new e.Position$1(n.lineNumber,Math.min(r,this.sessionPosition?.column??2**53-1));return this.sessionPosition=i,i}),this._register(e.autorunWithStore((n,r)=>{let i=this.model.read(n);if(!i||!this.alwaysShowToolbar.read(n))return;let a=e.derivedWithStore((n,r)=>{let a=r.add(this.instantiationService.createInstance(Rp,this.editor,!0,this.position,i.selectedInlineCompletionIndex,i.inlineCompletionsCount,i.activeCommands));return t.addContentWidget(a),r.add(e.toDisposable(()=>t.removeContentWidget(a))),r.add(e.autorun(t=>{this.position.read(t)&&i.lastTriggerKind.read(t)!==e.InlineCompletionTriggerKind.Explicit&&i.triggerExplicitly()})),a}),o=e.derivedObservableWithCache(this,(e,t)=>!!this.position.read(e)||!!t);r.add(e.autorun(e=>{o.read(e)&&a.read(e)}))}))}};Fp=Mp([Np(2,e.IInstantiationService)],Fp);var Ip=e.registerIcon(`inline-suggestion-hints-next`,e.Codicon.chevronRight,e.localize(`parameterHintsNextIcon`,`Icon for show next parameter hint.`)),Lp=e.registerIcon(`inline-suggestion-hints-previous`,e.Codicon.chevronLeft,e.localize(`parameterHintsPreviousIcon`,`Icon for show previous parameter hint.`)),Rp=class extends e.Disposable{static{Pp=this}static{this._dropDownVisible=!1}static get dropDownVisible(){return this._dropDownVisible}static{this.id=0}createCommandAction(t,n,r){let i=new e.Action(t,n,r,!0,()=>this._commandService.executeCommand(t)),a=this.keybindingService.lookupKeybinding(t,this._contextKeyService),o=n;return a&&(o=e.localize({key:`content`,comment:[`A label`,`A keybinding`]},`{0} ({1})`,n,a.getLabel())),i.tooltip=o,i}constructor(t,n,r,i,a,o,s,c,l,u,d){super(),this.editor=t,this.withBorder=n,this._position=r,this._currentSuggestionIdx=i,this._suggestionCount=a,this._extraCommands=o,this._commandService=s,this.keybindingService=l,this._contextKeyService=u,this._menuService=d,this.id=`InlineSuggestionHintsContentWidget${Pp.id++}`,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this.nodes=e.h(`div.inlineSuggestionsHints`,{className:this.withBorder?`.withBorder`:``},[e.h(`div@toolBar`)]),this.previousAction=this.createCommandAction(Ap,e.localize(`previous`,`Previous`),e.ThemeIcon.asClassName(Lp)),this.availableSuggestionCountAction=new e.Action(`inlineSuggestionHints.availableSuggestionCount`,``,void 0,!1),this.nextAction=this.createCommandAction(jp,e.localize(`next`,`Next`),e.ThemeIcon.asClassName(Ip)),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu(e.MenuId.InlineCompletionsActions,this._contextKeyService)),this.clearAvailableSuggestionCountLabelDebounced=this._register(new e.RunOnceScheduler(()=>{this.availableSuggestionCountAction.label=``},100)),this.disableButtonsDebounced=this._register(new e.RunOnceScheduler(()=>{this.previousAction.enabled=this.nextAction.enabled=!1},100)),this.toolBar=this._register(c.createInstance(Vp,this.nodes.toolBar,e.MenuId.InlineSuggestionToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:e=>e.startsWith(`primary`)},actionViewItemProvider:(t,n)=>{if(t instanceof e.MenuItemAction)return c.createInstance(Bp,t,void 0);if(t===this.availableSuggestionCountAction){let e=new zp(void 0,t,{label:!0,icon:!1});return e.setClass(`availableSuggestionCount`),e}},telemetrySource:`InlineSuggestionToolbar`})),this.toolBar.setPrependedPrimaryActions([this.previousAction,this.availableSuggestionCountAction,this.nextAction]),this._register(this.toolBar.onDidChangeDropdownVisibility(e=>{Pp._dropDownVisible=e})),this._register(e.autorun(e=>{this._position.read(e),this.editor.layoutContentWidget(this)})),this._register(e.autorun(e=>{let t=this._suggestionCount.read(e),n=this._currentSuggestionIdx.read(e);t===void 0?this.clearAvailableSuggestionCountLabelDebounced.schedule():(this.clearAvailableSuggestionCountLabelDebounced.cancel(),this.availableSuggestionCountAction.label=`${n+1}/${t}`),t!==void 0&&t>1?(this.disableButtonsDebounced.cancel(),this.previousAction.enabled=this.nextAction.enabled=!0):this.disableButtonsDebounced.schedule()})),this._register(e.autorun(t=>{let n=this._extraCommands.read(t).map(e=>({class:void 0,id:e.id,enabled:!0,tooltip:e.tooltip||``,label:e.title,run:t=>this._commandService.executeCommand(e.id)}));for(let[t,r]of this.inlineCompletionsActionsMenus.getActions())for(let t of r)t instanceof e.MenuItemAction&&n.push(t);n.length>0&&n.unshift(new e.Separator),this.toolBar.setAdditionalSecondaryActions(n)}))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}};Rp=Pp=Mp([Np(6,e.ICommandService),Np(7,e.IInstantiationService),Np(8,e.IKeybindingService),Np(9,e.IContextKeyService),Np(10,e.IMenuService)],Rp);var zp=class extends e.ActionViewItem{constructor(){super(...arguments),this._className=void 0}setClass(e){this._className=e}render(e){super.render(e),this._className&&e.classList.add(this._className)}updateTooltip(){}},Bp=class extends e.MenuEntryActionViewItem{updateLabel(){let t=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!t)return super.updateLabel();if(this.label){let n=e.h(`div.keybinding`).root;this._register(new e.KeybindingLabel(n,e.OS,{disableTitle:!0,...e.unthemedKeybindingLabelOptions})).set(t),this.label.textContent=this._action.label,this.label.appendChild(n),this.label.classList.add(`inlineSuggestionStatusBarItemLabel`)}}updateTooltip(){}},Vp=class extends e.WorkbenchToolBar{constructor(e,t,n,r,i,a,o,s,c){super(e,{resetMenu:t,...n},r,i,a,o,s,c),this.menuId=t,this.options2=n,this.menuService=r,this.contextKeyService=i,this.menu=this._store.add(this.menuService.createMenu(this.menuId,this.contextKeyService,{emitEventsForSubmenuChanges:!0})),this.additionalActions=[],this.prependedPrimaryActions=[],this._store.add(this.menu.onDidChange(()=>this.updateToolbar())),this.updateToolbar()}updateToolbar(){let t=[],n=[];e.createAndFillInActionBarActions(this.menu,this.options2?.menuOptions,{primary:t,secondary:n},this.options2?.toolbarOptions?.primaryGroup,this.options2?.toolbarOptions?.shouldInlineSubmenu,this.options2?.toolbarOptions?.useSeparatorsInPrimaryActions),n.push(...this.additionalActions),t.unshift(...this.prependedPrimaryActions),this.setActions(t,n)}setPrependedPrimaryActions(t){e.equals(this.prependedPrimaryActions,t,(e,t)=>e===t)||(this.prependedPrimaryActions=t,this.updateToolbar())}setAdditionalSecondaryActions(t){e.equals(this.additionalActions,t,(e,t)=>e===t)||(this.additionalActions=t,this.updateToolbar())}};Vp=Mp([Np(3,e.IMenuService),Np(4,e.IContextKeyService),Np(5,e.IContextMenuService),Np(6,e.IKeybindingService),Np(7,e.ICommandService),Np(8,e.ITelemetryService)],Vp);function Hp(t,n,r){let i=e.getDomNodePagePosition(t);return!(n<i.left||n>i.left+i.width||r<i.top||r>i.top+i.height)}var Up=class{constructor(e,t,n){this.value=e,this.isComplete=t,this.hasLoadingMessage=n}},Wp=class extends e.Disposable{constructor(t,n){super(),this._editor=t,this._computer=n,this._onResult=this._register(new e.Emitter$1),this.onResult=this._onResult.event,this._firstWaitScheduler=this._register(new e.RunOnceScheduler(()=>this._triggerAsyncComputation(),0)),this._secondWaitScheduler=this._register(new e.RunOnceScheduler(()=>this._triggerSyncComputation(),0)),this._loadingMessageScheduler=this._register(new e.RunOnceScheduler(()=>this._triggerLoadingMessage(),0)),this._state=0,this._asyncIterable=null,this._asyncIterableDone=!1,this._result=[]}dispose(){this._asyncIterable&&=(this._asyncIterable.cancel(),null),super.dispose()}get _hoverTime(){return this._editor.getOption(60).delay}get _firstWaitTime(){return this._hoverTime/2}get _secondWaitTime(){return this._hoverTime-this._firstWaitTime}get _loadingMessageTime(){return 3*this._hoverTime}_setState(e,t=!0){this._state=e,t&&this._fireResult()}_triggerAsyncComputation(){this._setState(2),this._secondWaitScheduler.schedule(this._secondWaitTime),this._computer.computeAsync?(this._asyncIterableDone=!1,this._asyncIterable=e.createCancelableAsyncIterable(e=>this._computer.computeAsync(e)),(async()=>{try{for await(let e of this._asyncIterable)e&&(this._result.push(e),this._fireResult());this._asyncIterableDone=!0,(this._state===3||this._state===4)&&this._setState(0)}catch(t){e.onUnexpectedError(t)}})()):this._asyncIterableDone=!0}_triggerSyncComputation(){this._computer.computeSync&&(this._result=this._result.concat(this._computer.computeSync())),this._setState(this._asyncIterableDone?0:3)}_triggerLoadingMessage(){this._state===3&&this._setState(4)}_fireResult(){if(this._state===1||this._state===2)return;let e=this._state===0,t=this._state===4;this._onResult.fire(new Up(this._result.slice(0),e,t))}start(e){if(e===0)this._state===0&&(this._setState(1),this._firstWaitScheduler.schedule(this._firstWaitTime),this._loadingMessageScheduler.schedule(this._loadingMessageTime));else switch(this._state){case 0:this._triggerAsyncComputation(),this._secondWaitScheduler.cancel(),this._triggerSyncComputation();break;case 2:this._secondWaitScheduler.cancel(),this._triggerSyncComputation();break}}cancel(){this._firstWaitScheduler.cancel(),this._secondWaitScheduler.cancel(),this._loadingMessageScheduler.cancel(),this._asyncIterable&&=(this._asyncIterable.cancel(),null),this._result=[],this._setState(0,!1)}},Gp=class{constructor(){this._onDidWillResize=new e.Emitter$1,this.onDidWillResize=this._onDidWillResize.event,this._onDidResize=new e.Emitter$1,this.onDidResize=this._onDidResize.event,this._sashListener=new e.DisposableStore,this._size=new e.Dimension(0,0),this._minSize=new e.Dimension(0,0),this._maxSize=new e.Dimension(2**53-1,2**53-1),this.domNode=document.createElement(`div`),this._eastSash=new e.Sash(this.domNode,{getVerticalSashLeft:()=>this._size.width},{orientation:0}),this._westSash=new e.Sash(this.domNode,{getVerticalSashLeft:()=>0},{orientation:0}),this._northSash=new e.Sash(this.domNode,{getHorizontalSashTop:()=>0},{orientation:1,orthogonalEdge:e.OrthogonalEdge.North}),this._southSash=new e.Sash(this.domNode,{getHorizontalSashTop:()=>this._size.height},{orientation:1,orthogonalEdge:e.OrthogonalEdge.South}),this._northSash.orthogonalStartSash=this._westSash,this._northSash.orthogonalEndSash=this._eastSash,this._southSash.orthogonalStartSash=this._westSash,this._southSash.orthogonalEndSash=this._eastSash;let t,n=0,r=0;this._sashListener.add(e.Event.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)(()=>{t===void 0&&(this._onDidWillResize.fire(),t=this._size,n=0,r=0)})),this._sashListener.add(e.Event.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)(()=>{t!==void 0&&(t=void 0,n=0,r=0,this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(this._eastSash.onDidChange(e=>{t&&(r=e.currentX-e.startX,this.layout(t.height+n,t.width+r),this._onDidResize.fire({dimension:this._size,done:!1,east:!0}))})),this._sashListener.add(this._westSash.onDidChange(e=>{t&&(r=-(e.currentX-e.startX),this.layout(t.height+n,t.width+r),this._onDidResize.fire({dimension:this._size,done:!1,west:!0}))})),this._sashListener.add(this._northSash.onDidChange(e=>{t&&(n=-(e.currentY-e.startY),this.layout(t.height+n,t.width+r),this._onDidResize.fire({dimension:this._size,done:!1,north:!0}))})),this._sashListener.add(this._southSash.onDidChange(e=>{t&&(n=e.currentY-e.startY,this.layout(t.height+n,t.width+r),this._onDidResize.fire({dimension:this._size,done:!1,south:!0}))})),this._sashListener.add(e.Event.any(this._eastSash.onDidReset,this._westSash.onDidReset)(e=>{this._preferredSize&&(this.layout(this._size.height,this._preferredSize.width),this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(e.Event.any(this._northSash.onDidReset,this._southSash.onDidReset)(e=>{this._preferredSize&&(this.layout(this._preferredSize.height,this._size.width),this._onDidResize.fire({dimension:this._size,done:!0}))}))}dispose(){this._northSash.dispose(),this._southSash.dispose(),this._eastSash.dispose(),this._westSash.dispose(),this._sashListener.dispose(),this._onDidResize.dispose(),this._onDidWillResize.dispose(),this.domNode.remove()}enableSashes(e,t,n,r){this._northSash.state=e?3:0,this._eastSash.state=t?3:0,this._southSash.state=n?3:0,this._westSash.state=r?3:0}layout(t=this.size.height,n=this.size.width){let{height:r,width:i}=this._minSize,{height:a,width:o}=this._maxSize;t=Math.max(r,Math.min(a,t)),n=Math.max(i,Math.min(o,n));let s=new e.Dimension(n,t);e.Dimension.equals(s,this._size)||(this.domNode.style.height=t+`px`,this.domNode.style.width=n+`px`,this._size=s,this._northSash.layout(),this._eastSash.layout(),this._southSash.layout(),this._westSash.layout())}clearSashHoverState(){this._eastSash.clearSashHoverState(),this._westSash.clearSashHoverState(),this._northSash.clearSashHoverState(),this._southSash.clearSashHoverState()}get size(){return this._size}set maxSize(e){this._maxSize=e}get maxSize(){return this._maxSize}set minSize(e){this._minSize=e}get minSize(){return this._minSize}set preferredSize(e){this._preferredSize=e}get preferredSize(){return this._preferredSize}},Kp=30,qp=24,Jp=class extends e.Disposable{constructor(t,n=new e.Dimension(10,10)){super(),this._editor=t,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._resizableNode=this._register(new Gp),this._contentPosition=null,this._isResizing=!1,this._resizableNode.domNode.style.position=`absolute`,this._resizableNode.minSize=e.Dimension.lift(n),this._resizableNode.layout(n.height,n.width),this._resizableNode.enableSashes(!0,!0,!0,!0),this._register(this._resizableNode.onDidResize(t=>{this._resize(new e.Dimension(t.dimension.width,t.dimension.height)),t.done&&(this._isResizing=!1)})),this._register(this._resizableNode.onDidWillResize(()=>{this._isResizing=!0}))}get isResizing(){return this._isResizing}getDomNode(){return this._resizableNode.domNode}getPosition(){return this._contentPosition}get position(){return this._contentPosition?.position?e.Position$1.lift(this._contentPosition.position):void 0}_availableVerticalSpaceAbove(t){let n=this._editor.getDomNode(),r=this._editor.getScrolledVisiblePosition(t);if(!(!n||!r))return e.getDomNodePagePosition(n).top+r.top-Kp}_availableVerticalSpaceBelow(t){let n=this._editor.getDomNode(),r=this._editor.getScrolledVisiblePosition(t);if(!n||!r)return;let i=e.getDomNodePagePosition(n),a=e.getClientArea(n.ownerDocument.body),o=i.top+r.top+r.height;return a.height-o-qp}_findPositionPreference(e,t){let n=Math.min(this._availableVerticalSpaceBelow(t)??1/0,e),r=Math.min(this._availableVerticalSpaceAbove(t)??1/0,e),i=Math.min(Math.max(r,n),e),a=Math.min(e,i),o;return o=this._editor.getOption(60).above?a<=r?1:2:a<=n?2:1,o===1?this._resizableNode.enableSashes(!0,!0,!1,!1):this._resizableNode.enableSashes(!1,!0,!0,!1),o}_resize(e){this._resizableNode.layout(e.height,e.width)}},Yp=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Xp=function(e,t){return function(n,r){t(n,r,e)}},Zp,Qp=30,$p=6,em=class extends Jp{static{Zp=this}static{this.ID=`editor.contrib.resizableContentHoverWidget`}static{this._lastDimensions=new e.Dimension(0,0)}get isVisibleFromKeyboard(){return this._renderedHover?.source===1}get isVisible(){return this._hoverVisibleKey.get()??!1}get isFocused(){return this._hoverFocusedKey.get()??!1}constructor(t,n,r,i,a){let o=t.getOption(67)+8,s=new e.Dimension(150,o);super(t,s),this._configurationService=r,this._accessibilityService=i,this._keybindingService=a,this._hover=this._register(new e.HoverWidget),this._onDidResize=this._register(new e.Emitter$1),this.onDidResize=this._onDidResize.event,this._minimumSize=s,this._hoverVisibleKey=e.EditorContextKeys.hoverVisible.bindTo(n),this._hoverFocusedKey=e.EditorContextKeys.hoverFocused.bindTo(n),e.append(this._resizableNode.domNode,this._hover.containerDomNode),this._resizableNode.domNode.style.zIndex=`50`,this._register(this._editor.onDidLayoutChange(()=>{this.isVisible&&this._updateMaxDimensions()})),this._register(this._editor.onDidChangeConfiguration(e=>{e.hasChanged(50)&&this._updateFont()}));let c=this._register(e.trackFocus(this._resizableNode.domNode));this._register(c.onDidFocus(()=>{this._hoverFocusedKey.set(!0)})),this._register(c.onDidBlur(()=>{this._hoverFocusedKey.set(!1)})),this._setRenderedHover(void 0),this._editor.addContentWidget(this)}dispose(){super.dispose(),this._renderedHover?.dispose(),this._editor.removeContentWidget(this)}getId(){return Zp.ID}static _applyDimensions(e,t,n){let r=typeof t==`number`?`${t}px`:t,i=typeof n==`number`?`${n}px`:n;e.style.width=r,e.style.height=i}_setContentsDomNodeDimensions(e,t){let n=this._hover.contentsDomNode;return Zp._applyDimensions(n,e,t)}_setContainerDomNodeDimensions(e,t){let n=this._hover.containerDomNode;return Zp._applyDimensions(n,e,t)}_setHoverWidgetDimensions(e,t){this._setContentsDomNodeDimensions(e,t),this._setContainerDomNodeDimensions(e,t),this._layoutContentWidget()}static _applyMaxDimensions(e,t,n){let r=typeof t==`number`?`${t}px`:t,i=typeof n==`number`?`${n}px`:n;e.style.maxWidth=r,e.style.maxHeight=i}_setHoverWidgetMaxDimensions(e,t){Zp._applyMaxDimensions(this._hover.contentsDomNode,e,t),Zp._applyMaxDimensions(this._hover.containerDomNode,e,t),this._hover.containerDomNode.style.setProperty(`--vscode-hover-maxWidth`,typeof e==`number`?`${e}px`:e),this._layoutContentWidget()}_setAdjustedHoverWidgetDimensions(e){this._setHoverWidgetMaxDimensions(`none`,`none`);let t=e.width,n=e.height;this._setHoverWidgetDimensions(t,n)}_updateResizableNodeMaxDimensions(){let t=this._findMaximumRenderingWidth()??1/0,n=this._findMaximumRenderingHeight()??1/0;this._resizableNode.maxSize=new e.Dimension(t,n),this._setHoverWidgetMaxDimensions(t,n)}_resize(t){Zp._lastDimensions=new e.Dimension(t.width,t.height),this._setAdjustedHoverWidgetDimensions(t),this._resizableNode.layout(t.height,t.width),this._updateResizableNodeMaxDimensions(),this._hover.scrollbar.scanDomNode(),this._editor.layoutContentWidget(this),this._onDidResize.fire()}_findAvailableSpaceVertically(){let e=this._renderedHover?.showAtPosition;if(e)return this._positionPreference===1?this._availableVerticalSpaceAbove(e):this._availableVerticalSpaceBelow(e)}_findMaximumRenderingHeight(){let e=this._findAvailableSpaceVertically();if(!e)return;let t=$p;return Array.from(this._hover.contentsDomNode.children).forEach(e=>{t+=e.clientHeight}),Math.min(e,t)}_isHoverTextOverflowing(){this._hover.containerDomNode.style.setProperty(`--vscode-hover-whiteSpace`,`nowrap`),this._hover.containerDomNode.style.setProperty(`--vscode-hover-sourceWhiteSpace`,`nowrap`);let e=Array.from(this._hover.contentsDomNode.children).some(e=>e.scrollWidth>e.clientWidth);return this._hover.containerDomNode.style.removeProperty(`--vscode-hover-whiteSpace`),this._hover.containerDomNode.style.removeProperty(`--vscode-hover-sourceWhiteSpace`),e}_findMaximumRenderingWidth(){if(!this._editor||!this._editor.hasModel())return;let t=this._isHoverTextOverflowing(),n=this._contentWidth===void 0?0:this._contentWidth-2;return t||this._hover.containerDomNode.clientWidth<n?e.getClientArea(this._hover.containerDomNode.ownerDocument.body).width-14:this._hover.containerDomNode.clientWidth+2}isMouseGettingCloser(t,n){if(!this._renderedHover)return!1;if(this._renderedHover.initialMousePosX===void 0||this._renderedHover.initialMousePosY===void 0)return this._renderedHover.initialMousePosX=t,this._renderedHover.initialMousePosY=n,!1;let r=e.getDomNodePagePosition(this.getDomNode());this._renderedHover.closestMouseDistance===void 0&&(this._renderedHover.closestMouseDistance=tm(this._renderedHover.initialMousePosX,this._renderedHover.initialMousePosY,r.left,r.top,r.width,r.height));let i=tm(t,n,r.left,r.top,r.width,r.height);return i>this._renderedHover.closestMouseDistance+4?!1:(this._renderedHover.closestMouseDistance=Math.min(this._renderedHover.closestMouseDistance,i),!0)}_setRenderedHover(e){this._renderedHover?.dispose(),this._renderedHover=e,this._hoverVisibleKey.set(!!e),this._hover.containerDomNode.classList.toggle(`hidden`,!e)}_updateFont(){let{fontSize:e,lineHeight:t}=this._editor.getOption(50),n=this._hover.contentsDomNode;n.style.fontSize=`${e}px`,n.style.lineHeight=`${t/e}`,Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName(`code`)).forEach(e=>this._editor.applyFontInfo(e))}_updateContent(e){let t=this._hover.contentsDomNode;t.style.paddingBottom=``,t.textContent=``,t.appendChild(e)}_layoutContentWidget(){this._editor.layoutContentWidget(this),this._hover.onContentsChanged()}_updateMaxDimensions(){let e=Math.max(this._editor.getLayoutInfo().height/4,250,Zp._lastDimensions.height),t=Math.max(this._editor.getLayoutInfo().width*.66,500,Zp._lastDimensions.width);this._setHoverWidgetMaxDimensions(t,e)}_render(e){this._setRenderedHover(e),this._updateFont(),this._updateContent(e.domNode),this._updateMaxDimensions(),this.onContentsChanged(),this._editor.render()}getPosition(){return this._renderedHover?{position:this._renderedHover.showAtPosition,secondaryPosition:this._renderedHover.showAtSecondaryPosition,positionAffinity:this._renderedHover.shouldAppearBeforeContent?3:void 0,preference:[this._positionPreference??1]}:null}show(t){if(!this._editor||!this._editor.hasModel())return;this._render(t);let n=e.getTotalHeight(this._hover.containerDomNode),r=t.showAtPosition;this._positionPreference=this._findPositionPreference(n,r)??1,this.onContentsChanged(),t.shouldFocus&&this._hover.containerDomNode.focus(),this._onDidResize.fire();let i=this._hover.containerDomNode.ownerDocument.activeElement===this._hover.containerDomNode&&e.getHoverAccessibleViewHint(this._configurationService.getValue(`accessibility.verbosity.hover`)===!0&&this._accessibilityService.isScreenReaderOptimized(),this._keybindingService.lookupKeybinding(`editor.action.accessibleView`)?.getAriaLabel()??``);i&&(this._hover.contentsDomNode.ariaLabel=this._hover.contentsDomNode.textContent+`, `+i)}hide(){if(!this._renderedHover)return;let t=this._renderedHover.shouldFocus||this._hoverFocusedKey.get();this._setRenderedHover(void 0),this._resizableNode.maxSize=new e.Dimension(1/0,1/0),this._resizableNode.clearSashHoverState(),this._hoverFocusedKey.set(!1),this._editor.layoutContentWidget(this),t&&this._editor.focus()}_removeConstraintsRenderNormally(){let e=this._editor.getLayoutInfo();this._resizableNode.layout(e.height,e.width),this._setHoverWidgetDimensions(`auto`,`auto`)}setMinimumDimensions(t){this._minimumSize=new e.Dimension(Math.max(this._minimumSize.width,t.width),Math.max(this._minimumSize.height,t.height)),this._updateMinimumWidth()}_updateMinimumWidth(){let t=this._contentWidth===void 0?this._minimumSize.width:Math.min(this._contentWidth,this._minimumSize.width);this._resizableNode.minSize=new e.Dimension(t,this._minimumSize.height)}onContentsChanged(){this._removeConstraintsRenderNormally();let t=this._hover.containerDomNode,n=e.getTotalHeight(t),r=e.getTotalWidth(t);if(this._resizableNode.layout(n,r),this._setHoverWidgetDimensions(r,n),n=e.getTotalHeight(t),r=e.getTotalWidth(t),this._contentWidth=r,this._updateMinimumWidth(),this._resizableNode.layout(n,r),this._renderedHover?.showAtPosition){let t=e.getTotalHeight(this._hover.containerDomNode);this._positionPreference=this._findPositionPreference(t,this._renderedHover.showAtPosition)}this._layoutContentWidget()}focus(){this._hover.containerDomNode.focus()}scrollUp(){let e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._editor.getOption(50);this._hover.scrollbar.setScrollPosition({scrollTop:e-t.lineHeight})}scrollDown(){let e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._editor.getOption(50);this._hover.scrollbar.setScrollPosition({scrollTop:e+t.lineHeight})}scrollLeft(){let e=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:e-Qp})}scrollRight(){let e=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:e+Qp})}pageUp(){let e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:e-t})}pageDown(){let e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:e+t})}goToTop(){this._hover.scrollbar.setScrollPosition({scrollTop:0})}goToBottom(){this._hover.scrollbar.setScrollPosition({scrollTop:this._hover.scrollbar.getScrollDimensions().scrollHeight})}};em=Zp=Yp([Xp(1,e.IContextKeyService),Xp(2,e.IConfigurationService),Xp(3,e.IAccessibilityService),Xp(4,e.IKeybindingService)],em);function tm(e,t,n,r,i,a){let o=n+i/2,s=r+a/2,c=Math.max(Math.abs(e-o)-i/2,0),l=Math.max(Math.abs(t-s)-a/2,0);return Math.sqrt(c*c+l*l)}var nm=class t{get anchor(){return this._anchor}set anchor(e){this._anchor=e}get shouldFocus(){return this._shouldFocus}set shouldFocus(e){this._shouldFocus=e}get source(){return this._source}set source(e){this._source=e}get insistOnKeepingHoverVisible(){return this._insistOnKeepingHoverVisible}set insistOnKeepingHoverVisible(e){this._insistOnKeepingHoverVisible=e}constructor(e,t){this._editor=e,this._participants=t,this._anchor=null,this._shouldFocus=!1,this._source=0,this._insistOnKeepingHoverVisible=!1}static _getLineDecorations(e,t){if(t.type!==1&&!t.supportsMarkerHover)return[];let n=e.getModel(),r=t.range.startLineNumber;if(r>n.getLineCount())return[];let i=n.getLineMaxColumn(r);return e.getLineDecorations(r).filter(e=>{if(e.options.isWholeLine)return!0;let n=e.range.startLineNumber===r?e.range.startColumn:1,a=e.range.endLineNumber===r?e.range.endColumn:i;if(e.options.showIfCollapsed){if(n>t.range.startColumn+1||t.range.endColumn-1>a)return!1}else if(n>t.range.startColumn||t.range.endColumn>a)return!1;return!0})}computeAsync(n){let r=this._anchor;if(!this._editor.hasModel()||!r)return e.AsyncIterableObject.EMPTY;let i=t._getLineDecorations(this._editor,r);return e.AsyncIterableObject.merge(this._participants.map(t=>t.computeAsync?t.computeAsync(r,i,n):e.AsyncIterableObject.EMPTY))}computeSync(){if(!this._editor.hasModel()||!this._anchor)return[];let n=t._getLineDecorations(this._editor,this._anchor),r=[];for(let e of this._participants)r=r.concat(e.computeSync(this._anchor,n));return e.coalesce(r)}},rm=class{constructor(e,t,n){this.anchor=e,this.hoverParts=t,this.isComplete=n}filter(e){let t=this.hoverParts.filter(t=>t.isValidForHoverAnchor(e));return t.length===this.hoverParts.length?this:new im(this,this.anchor,t,this.isComplete)}},im=class extends rm{constructor(e,t,n,r){super(t,n,r),this.original=e}filter(e){return this.original.filter(e)}},am=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},om=function(e,t){return function(n,r){t(n,r,e)}},sm=e.$,cm=class extends e.Disposable{get hasContent(){return this._hasContent}constructor(t){super(),this._keybindingService=t,this.actions=[],this._hasContent=!1,this.hoverElement=sm(`div.hover-row.status-bar`),this.hoverElement.tabIndex=0,this.actionsElement=e.append(this.hoverElement,sm(`div.actions`))}addAction(t){let n=this._keybindingService.lookupKeybinding(t.commandId),r=n?n.getLabel():null;this._hasContent=!0;let i=this._register(e.HoverAction.render(this.actionsElement,t,r));return this.actions.push(i),i}append(t){let n=e.append(this.actionsElement,t);return this._hasContent=!0,n}};cm=am([om(0,e.IKeybindingService)],cm);var lm=class{constructor(e,t,n){this.provider=e,this.hover=t,this.ordinal=n}};async function um(t,n,r,i,a){let o=await Promise.resolve(t.provideHover(r,i,a)).catch(e.onUnexpectedExternalError);if(!(!o||!pm(o)))return new lm(t,o,n)}function dm(t,n,r,i,a=!1){let o=t.ordered(n,a).map((e,t)=>um(e,t,n,r,i));return e.AsyncIterableObject.fromPromises(o).coalesce()}function fm(e,t,n,r,i=!1){return dm(e,t,n,r,i).map(e=>e.hover).toPromise()}e.registerModelAndPositionCommand(`_executeHoverProvider`,(t,n,r)=>{let i=t.get(e.ILanguageFeaturesService);return fm(i.hoverProvider,n,r,e.CancellationToken.None)}),e.registerModelAndPositionCommand(`_executeHoverProvider_recursive`,(t,n,r)=>{let i=t.get(e.ILanguageFeaturesService);return fm(i.hoverProvider,n,r,e.CancellationToken.None,!0)});function pm(e){let t=e.range!==void 0,n=e.contents!==void 0&&e.contents&&e.contents.length>0;return t&&n}var mm=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},hm=function(e,t){return function(n,r){t(n,r,e)}},gm=e.$,_m=e.registerIcon(`hover-increase-verbosity`,e.Codicon.add,e.localize(`increaseHoverVerbosity`,`Icon for increaseing hover verbosity.`)),vm=e.registerIcon(`hover-decrease-verbosity`,e.Codicon.remove,e.localize(`decreaseHoverVerbosity`,`Icon for decreasing hover verbosity.`)),ym=class{constructor(e,t,n,r,i,a=void 0){this.owner=e,this.range=t,this.contents=n,this.isBeforeContent=r,this.ordinal=i,this.source=a}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}},bm=class{constructor(e,t,n){this.hover=e,this.hoverProvider=t,this.hoverPosition=n}supportsVerbosityAction(t){switch(t){case e.HoverVerbosityAction.Increase:return this.hover.canIncreaseVerbosity??!1;case e.HoverVerbosityAction.Decrease:return this.hover.canDecreaseVerbosity??!1}}},xm=class{constructor(e,t,n,r,i,a,o,s){this._editor=e,this._languageService=t,this._openerService=n,this._configurationService=r,this._languageFeaturesService=i,this._keybindingService=a,this._hoverService=o,this._commandService=s,this.hoverOrdinal=3}createLoadingMessage(t){return new ym(this,t.range,[new e.MarkdownString().appendText(e.localize(`modesContentHover.loading`,`Loading...`))],!1,2e3)}computeSync(t,n){if(!this._editor.hasModel()||t.type!==1)return[];let r=this._editor.getModel(),i=t.range.startLineNumber,a=r.getLineMaxColumn(i),o=[],s=1e3,c=r.getLineLength(i),l=r.getLanguageIdAtPosition(t.range.startLineNumber,t.range.startColumn),u=this._editor.getOption(118),d=this._configurationService.getValue(`editor.maxTokenizationLineLength`,{overrideIdentifier:l}),f=!1;u>=0&&c>u&&t.range.startColumn>=u&&(f=!0,o.push(new ym(this,t.range,[{value:e.localize(`stopped rendering`,"Rendering paused for long line for performance reasons. This can be configured via `editor.stopRenderingLineAfter`.")}],!1,s++))),!f&&typeof d==`number`&&c>=d&&o.push(new ym(this,t.range,[{value:e.localize(`too many characters`,"Tokenization is skipped for long lines for performance reasons. This can be configured via `editor.maxTokenizationLineLength`.")}],!1,s++));let p=!1;for(let r of n){let n=r.range.startLineNumber===i?r.range.startColumn:1,c=r.range.endLineNumber===i?r.range.endColumn:a,l=r.options.hoverMessage;if(!l||e.isEmptyMarkdownString(l))continue;r.options.beforeContentClassName&&(p=!0);let u=new e.Range$1(t.range.startLineNumber,n,t.range.startLineNumber,c);o.push(new ym(this,u,e.asArray(l),p,s++))}return o}computeAsync(t,n,r){if(!this._editor.hasModel()||t.type!==1)return e.AsyncIterableObject.EMPTY;let i=this._editor.getModel(),a=this._languageFeaturesService.hoverProvider;return a.has(i)?this._getMarkdownHovers(a,i,t,r):e.AsyncIterableObject.EMPTY}_getMarkdownHovers(t,n,r,i){let a=r.range.getStartPosition();return dm(t,n,a,i).filter(t=>!e.isEmptyMarkdownString(t.hover.contents)).map(t=>{let n=t.hover.range?e.Range$1.lift(t.hover.range):r.range,i=new bm(t.hover,t.provider,a);return new ym(this,n,t.hover.contents,!1,t.ordinal,i)})}renderHoverParts(e,t){return this._renderedHoverParts=new Cm(t,e.fragment,this,this._editor,this._languageService,this._openerService,this._commandService,this._keybindingService,this._hoverService,this._configurationService,e.onContentsChanged),this._renderedHoverParts}updateMarkdownHoverVerbosityLevel(e,t,n){return Promise.resolve(this._renderedHoverParts?.updateMarkdownHoverPartVerbosityLevel(e,t,n))}};xm=mm([hm(1,e.ILanguageService),hm(2,e.IOpenerService),hm(3,e.IConfigurationService),hm(4,e.ILanguageFeaturesService),hm(5,e.IKeybindingService),hm(6,e.IHoverService),hm(7,e.ICommandService)],xm);var Sm=class{constructor(e,t,n){this.hoverPart=e,this.hoverElement=t,this.disposables=n}dispose(){this.disposables.dispose()}},Cm=class{constructor(t,n,r,i,a,o,s,c,l,u,d){this._hoverParticipant=r,this._editor=i,this._languageService=a,this._openerService=o,this._commandService=s,this._keybindingService=c,this._hoverService=l,this._configurationService=u,this._onFinishedRendering=d,this._ongoingHoverOperations=new Map,this._disposables=new e.DisposableStore,this.renderedHoverParts=this._renderHoverParts(t,n,this._onFinishedRendering),this._disposables.add(e.toDisposable(()=>{this.renderedHoverParts.forEach(e=>{e.dispose()}),this._ongoingHoverOperations.forEach(e=>{e.tokenSource.dispose(!0)})}))}_renderHoverParts(t,n,r){return t.sort(e.compareBy(e=>e.ordinal,e.numberComparator)),t.map(e=>{let t=this._renderHoverPart(e,r);return n.appendChild(t.hoverElement),t})}_renderHoverPart(t,n){let r=this._renderMarkdownHover(t,n),i=r.hoverElement,a=t.source,o=new e.DisposableStore;if(o.add(r),!a)return new Sm(t,i,o);let s=a.supportsVerbosityAction(e.HoverVerbosityAction.Increase),c=a.supportsVerbosityAction(e.HoverVerbosityAction.Decrease);if(!s&&!c)return new Sm(t,i,o);let l=gm(`div.verbosity-actions`);return i.prepend(l),o.add(this._renderHoverExpansionAction(l,e.HoverVerbosityAction.Increase,s)),o.add(this._renderHoverExpansionAction(l,e.HoverVerbosityAction.Decrease,c)),new Sm(t,i,o)}_renderMarkdownHover(e,t){return Tm(this._editor,e,this._languageService,this._openerService,t)}_renderHoverExpansionAction(t,n,r){let i=new e.DisposableStore,a=n===e.HoverVerbosityAction.Increase,o=e.append(t,gm(e.ThemeIcon.asCSSSelector(a?_m:vm)));o.tabIndex=0;let s=new e.WorkbenchHoverDelegate(`mouse`,!1,{target:t,position:{hoverPosition:0}},this._configurationService,this._hoverService);if(i.add(this._hoverService.setupManagedHover(s,o,Em(this._keybindingService,n))),!r)return o.classList.add(`disabled`),i;o.classList.add(`enabled`);let c=()=>this._commandService.executeCommand(n===e.HoverVerbosityAction.Increase?Tp:Dp);return i.add(new e.ClickAction(o,c)),i.add(new e.KeyDownAction(o,c,[3,10])),i}async updateMarkdownHoverPartVerbosityLevel(e,t,n=!0){let r=this._editor.getModel();if(!r)return;let i=this._getRenderedHoverPartAtIndex(t),a=i?.hoverPart.source;if(!i||!a?.supportsVerbosityAction(e))return;let o=await this._fetchHover(a,r,e);if(!o)return;let s=new bm(o,a.hoverProvider,a.hoverPosition),c=i.hoverPart,l=new ym(this._hoverParticipant,c.range,o.contents,c.isBeforeContent,c.ordinal,s),u=this._renderHoverPart(l,this._onFinishedRendering);return this._replaceRenderedHoverPartAtIndex(t,u,l),n&&this._focusOnHoverPartWithIndex(t),{hoverPart:l,hoverElement:u.hoverElement}}async _fetchHover(t,n,r){let i=r===e.HoverVerbosityAction.Increase?1:-1,a=t.hoverProvider,o=this._ongoingHoverOperations.get(a);o&&(o.tokenSource.cancel(),i+=o.verbosityDelta);let s=new e.CancellationTokenSource$1;this._ongoingHoverOperations.set(a,{verbosityDelta:i,tokenSource:s});let c={verbosityRequest:{verbosityDelta:i,previousHover:t.hover}},l;try{l=await Promise.resolve(a.provideHover(n,t.hoverPosition,s.token,c))}catch(t){e.onUnexpectedExternalError(t)}return s.dispose(),this._ongoingHoverOperations.delete(a),l}_replaceRenderedHoverPartAtIndex(e,t,n){if(e>=this.renderedHoverParts.length||e<0)return;let r=this.renderedHoverParts[e],i=r.hoverElement,a=t.hoverElement,o=Array.from(a.children);i.replaceChildren(...o);let s=new Sm(n,i,t.disposables);i.focus(),r.dispose(),this.renderedHoverParts[e]=s}_focusOnHoverPartWithIndex(e){this.renderedHoverParts[e].hoverElement.focus()}_getRenderedHoverPartAtIndex(e){return this.renderedHoverParts[e]}dispose(){this._disposables.dispose()}};function wm(t,n,r,i,a){n.sort(e.compareBy(e=>e.ordinal,e.numberComparator));let o=[];for(let e of n)o.push(Tm(r,e,i,a,t.onContentsChanged));return new rp(o)}function Tm(t,n,r,i,a){let o=new e.DisposableStore,s=gm(`div.hover-row`),c=gm(`div.hover-row-contents`);s.appendChild(c);let l=n.contents;for(let n of l){if(e.isEmptyMarkdownString(n))continue;let s=gm(`div.markdown-hover`),l=e.append(s,gm(`div.hover-contents`)),u=o.add(new e.MarkdownRenderer({editor:t},r,i));o.add(u.onDidRenderAsync(()=>{l.className=`hover-contents code-hover-contents`,a()}));let d=o.add(u.render(n));l.appendChild(d.element),c.appendChild(s)}return{hoverPart:n,hoverElement:s,dispose(){o.dispose()}}}function Em(t,n){switch(n){case e.HoverVerbosityAction.Increase:{let n=t.lookupKeybinding(Tp);return n?e.localize(`increaseVerbosityWithKb`,`Increase Hover Verbosity ({0})`,n.getLabel()):e.localize(`increaseVerbosity`,`Increase Hover Verbosity`)}case e.HoverVerbosityAction.Decrease:{let n=t.lookupKeybinding(Dp);return n?e.localize(`decreaseVerbosityWithKb`,`Decrease Hover Verbosity ({0})`,n.getLabel()):e.localize(`decreaseVerbosity`,`Decrease Hover Verbosity`)}}}function Dm(e,t){return!!e[t]}var Om=class{constructor(e,t){this.target=e.target,this.isLeftClick=e.event.leftButton,this.isMiddleClick=e.event.middleButton,this.isRightClick=e.event.rightButton,this.hasTriggerModifier=Dm(e.event,t.triggerModifier),this.hasSideBySideModifier=Dm(e.event,t.triggerSideBySideModifier),this.isNoneOrSingleMouseDown=e.event.detail<=1}},km=class{constructor(e,t){this.keyCodeIsTriggerKey=e.keyCode===t.triggerKey,this.keyCodeIsSideBySideKey=e.keyCode===t.triggerSideBySideKey,this.hasTriggerModifier=Dm(e,t.triggerModifier)}},Am=class{constructor(e,t,n,r){this.triggerKey=e,this.triggerModifier=t,this.triggerSideBySideKey=n,this.triggerSideBySideModifier=r}equals(e){return this.triggerKey===e.triggerKey&&this.triggerModifier===e.triggerModifier&&this.triggerSideBySideKey===e.triggerSideBySideKey&&this.triggerSideBySideModifier===e.triggerSideBySideModifier}};function jm(t){return t===`altKey`?e.isMacintosh?new Am(57,`metaKey`,6,`altKey`):new Am(5,`ctrlKey`,6,`altKey`):e.isMacintosh?new Am(6,`altKey`,57,`metaKey`):new Am(6,`altKey`,5,`ctrlKey`)}var Mm=class extends e.Disposable{constructor(t,n){super(),this._onMouseMoveOrRelevantKeyDown=this._register(new e.Emitter$1),this.onMouseMoveOrRelevantKeyDown=this._onMouseMoveOrRelevantKeyDown.event,this._onExecute=this._register(new e.Emitter$1),this.onExecute=this._onExecute.event,this._onCancel=this._register(new e.Emitter$1),this.onCancel=this._onCancel.event,this._editor=t,this._extractLineNumberFromMouseEvent=n?.extractLineNumberFromMouseEvent??(e=>e.target.position?e.target.position.lineNumber:0),this._opts=jm(this._editor.getOption(78)),this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._register(this._editor.onDidChangeConfiguration(e=>{if(e.hasChanged(78)){let e=jm(this._editor.getOption(78));if(this._opts.equals(e))return;this._opts=e,this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._onCancel.fire()}})),this._register(this._editor.onMouseMove(e=>this._onEditorMouseMove(new Om(e,this._opts)))),this._register(this._editor.onMouseDown(e=>this._onEditorMouseDown(new Om(e,this._opts)))),this._register(this._editor.onMouseUp(e=>this._onEditorMouseUp(new Om(e,this._opts)))),this._register(this._editor.onKeyDown(e=>this._onEditorKeyDown(new km(e,this._opts)))),this._register(this._editor.onKeyUp(e=>this._onEditorKeyUp(new km(e,this._opts)))),this._register(this._editor.onMouseDrag(()=>this._resetHandler())),this._register(this._editor.onDidChangeCursorSelection(e=>this._onDidChangeCursorSelection(e))),this._register(this._editor.onDidChangeModel(e=>this._resetHandler())),this._register(this._editor.onDidChangeModelContent(()=>this._resetHandler())),this._register(this._editor.onDidScrollChange(e=>{(e.scrollTopChanged||e.scrollLeftChanged)&&this._resetHandler()}))}_onDidChangeCursorSelection(e){e.selection&&e.selection.startColumn!==e.selection.endColumn&&this._resetHandler()}_onEditorMouseMove(e){this._lastMouseMoveEvent=e,this._onMouseMoveOrRelevantKeyDown.fire([e,null])}_onEditorMouseDown(e){this._hasTriggerKeyOnMouseDown=e.hasTriggerModifier,this._lineNumberOnMouseDown=this._extractLineNumberFromMouseEvent(e)}_onEditorMouseUp(e){let t=this._extractLineNumberFromMouseEvent(e);this._hasTriggerKeyOnMouseDown&&this._lineNumberOnMouseDown&&this._lineNumberOnMouseDown===t&&this._onExecute.fire(e)}_onEditorKeyDown(e){this._lastMouseMoveEvent&&(e.keyCodeIsTriggerKey||e.keyCodeIsSideBySideKey&&e.hasTriggerModifier)?this._onMouseMoveOrRelevantKeyDown.fire([this._lastMouseMoveEvent,e]):e.hasTriggerModifier&&this._onCancel.fire()}_onEditorKeyUp(e){e.keyCodeIsTriggerKey&&this._onCancel.fire()}_resetHandler(){this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._onCancel.fire()}},Nm=class{constructor(e,t){this.range=e,this.direction=t}},Pm=class t{constructor(e,t,n){this.hint=e,this.anchor=t,this.provider=n,this._isResolved=!1}with(e){let n=new t(this.hint,e.anchor,this.provider);return n._isResolved=this._isResolved,n._currentResolve=this._currentResolve,n}async resolve(e){if(typeof this.provider.resolveInlayHint==`function`){if(this._currentResolve)return await this._currentResolve,e.isCancellationRequested?void 0:this.resolve(e);this._isResolved||(this._currentResolve=this._doResolve(e).finally(()=>this._currentResolve=void 0)),await this._currentResolve}}async _doResolve(t){try{let e=await Promise.resolve(this.provider.resolveInlayHint(this.hint,t));this.hint.tooltip=e?.tooltip??this.hint.tooltip,this.hint.label=e?.label??this.hint.label,this.hint.textEdits=e?.textEdits??this.hint.textEdits,this._isResolved=!0}catch(t){e.onUnexpectedExternalError(t),this._isResolved=!1}}},Fm=class t{static{this._emptyInlayHintList=Object.freeze({dispose(){},hints:[]})}static async create(n,r,i,a){let o=[],s=n.ordered(r).reverse().map(n=>i.map(async i=>{try{let e=await n.provideInlayHints(r,i,a);(e?.hints.length||n.onDidChangeInlayHints)&&o.push([e??t._emptyInlayHintList,n])}catch(t){e.onUnexpectedExternalError(t)}}));if(await Promise.all(s.flat()),a.isCancellationRequested||r.isDisposed())throw new e.CancellationError;return new t(i,o,r)}constructor(n,r,i){this._disposables=new e.DisposableStore,this.ranges=n,this.provider=new Set;let a=[];for(let[n,o]of r){this._disposables.add(n),this.provider.add(o);for(let r of n.hints){let n=i.validatePosition(r.position),s=`before`,c=t._getRangeAtPosition(i,n),l;c.getStartPosition().isBefore(n)?(l=e.Range$1.fromPositions(c.getStartPosition(),n),s=`after`):(l=e.Range$1.fromPositions(n,c.getEndPosition()),s=`before`),a.push(new Pm(r,new Nm(l,s),o))}}this.items=a.sort((t,n)=>e.Position$1.compare(t.hint.position,n.hint.position))}dispose(){this._disposables.dispose()}static _getRangeAtPosition(t,n){let r=n.lineNumber,i=t.getWordAtPosition(n);if(i)return new e.Range$1(r,i.startColumn,r,i.endColumn);t.tokenization.tokenizeIfCheap(r);let a=t.tokenization.getLineTokens(r),o=n.column-1,s=a.findTokenIndexAtOffset(o),c=a.getStartOffset(s),l=a.getEndOffset(s);return l-c===1&&(c===o&&s>1?(c=a.getStartOffset(s-1),l=a.getEndOffset(s-1)):l===o&&s<a.getCount()-1&&(c=a.getStartOffset(s+1),l=a.getEndOffset(s+1))),new e.Range$1(r,c+1,r,l+1)}};function Im(t){return e.URI.from({scheme:e.Schemas.command,path:t.id,query:t.arguments&&encodeURIComponent(JSON.stringify(t.arguments))}).toString()}var Lm=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Rm=function(e,t){return function(n,r){t(n,r,e)}},zm=class extends e.CodeEditorWidget{constructor(e,t,n,r,i,a,o,s,c,l,u,d,f){super(e,{...r.getRawOptions(),overflowWidgetsDomNode:r.getOverflowWidgetsDomNode()},n,i,a,o,s,c,l,u,d,f),this._parentEditor=r,this._overwriteOptions=t,super.updateOptions(this._overwriteOptions),this._register(r.onDidChangeConfiguration(e=>this._onParentConfigurationChanged(e)))}getParentEditor(){return this._parentEditor}_onParentConfigurationChanged(e){super.updateOptions(this._parentEditor.getRawOptions()),super.updateOptions(this._overwriteOptions)}updateOptions(t){e.mixin(this._overwriteOptions,t,!0),super.updateOptions(this._overwriteOptions)}};zm=Lm([Rm(4,e.IInstantiationService),Rm(5,e.ICodeEditorService),Rm(6,e.ICommandService),Rm(7,e.IContextKeyService),Rm(8,e.IThemeService),Rm(9,e.INotificationService),Rm(10,e.IAccessibilityService),Rm(11,e.ILanguageConfigurationService),Rm(12,e.ILanguageFeaturesService)],zm);var Bm=new e.Color(new e.RGBA(0,122,204)),Vm={showArrow:!0,showFrame:!0,className:``,frameColor:Bm,arrowColor:Bm,keepEditorSelection:!1},Hm=`vs.editor.contrib.zoneWidget`,Um=class{constructor(e,t,n,r,i,a,o,s){this.id=``,this.domNode=e,this.afterLineNumber=t,this.afterColumn=n,this.heightInLines=r,this.showInHiddenAreas=o,this.ordinal=s,this._onDomNodeTop=i,this._onComputedHeight=a}onDomNodeTop(e){this._onDomNodeTop(e)}onComputedHeight(e){this._onComputedHeight(e)}},Wm=class{constructor(e,t){this._id=e,this._domNode=t}getId(){return this._id}getDomNode(){return this._domNode}getPosition(){return null}},Gm=class t{static{this._IdGenerator=new e.IdGenerator(`.arrow-decoration-`)}constructor(e){this._editor=e,this._ruleName=t._IdGenerator.nextId(),this._decorations=this._editor.createDecorationsCollection(),this._color=null,this._height=-1}dispose(){this.hide(),e.removeCSSRulesContainingSelector(this._ruleName)}set color(e){this._color!==e&&(this._color=e,this._updateStyle())}set height(e){this._height!==e&&(this._height=e,this._updateStyle())}_updateStyle(){e.removeCSSRulesContainingSelector(this._ruleName),e.createCSSRule(`.monaco-editor ${this._ruleName}`,`border-style: solid; border-color: transparent; border-bottom-color: ${this._color}; border-width: ${this._height}px; bottom: -${this._height}px !important; margin-left: -${this._height}px; `)}show(t){t.column===1&&(t={lineNumber:t.lineNumber,column:2}),this._decorations.set([{range:e.Range$1.fromPositions(t),options:{description:`zone-widget-arrow`,className:this._ruleName,stickiness:1}}])}hide(){this._decorations.clear()}},Km=class{constructor(t,n={}){this._arrow=null,this._overlayWidget=null,this._resizeSash=null,this._viewZone=null,this._disposables=new e.DisposableStore,this.container=null,this._isShowing=!1,this.editor=t,this._positionMarkerId=this.editor.createDecorationsCollection(),this.options=e.deepClone(n),e.mixin(this.options,Vm,!1),this.domNode=document.createElement(`div`),this.options.isAccessible||(this.domNode.setAttribute(`aria-hidden`,`true`),this.domNode.setAttribute(`role`,`presentation`)),this._disposables.add(this.editor.onDidLayoutChange(e=>{let t=this._getWidth(e);this.domNode.style.width=t+`px`,this.domNode.style.left=this._getLeft(e)+`px`,this._onWidth(t)}))}dispose(){this._overlayWidget&&=(this.editor.removeOverlayWidget(this._overlayWidget),null),this._viewZone&&this.editor.changeViewZones(e=>{this._viewZone&&e.removeZone(this._viewZone.id),this._viewZone=null}),this._positionMarkerId.clear(),this._disposables.dispose()}create(){this.domNode.classList.add(`zone-widget`),this.options.className&&this.domNode.classList.add(this.options.className),this.container=document.createElement(`div`),this.container.classList.add(`zone-widget-container`),this.domNode.appendChild(this.container),this.options.showArrow&&(this._arrow=new Gm(this.editor),this._disposables.add(this._arrow)),this._fillContainer(this.container),this._initSash(),this._applyStyles()}style(e){e.frameColor&&(this.options.frameColor=e.frameColor),e.arrowColor&&(this.options.arrowColor=e.arrowColor),this._applyStyles()}_applyStyles(){if(this.container&&this.options.frameColor){let e=this.options.frameColor.toString();this.container.style.borderTopColor=e,this.container.style.borderBottomColor=e}if(this._arrow&&this.options.arrowColor){let e=this.options.arrowColor.toString();this._arrow.color=e}}_getWidth(e){return e.width-e.minimap.minimapWidth-e.verticalScrollbarWidth}_getLeft(e){return e.minimap.minimapWidth>0&&e.minimap.minimapLeft===0?e.minimap.minimapWidth:0}_onViewZoneTop(e){this.domNode.style.top=e+`px`}_onViewZoneHeight(e){if(this.domNode.style.height=`${e}px`,this.container){let t=e-this._decoratingElementsHeight();this.container.style.height=`${t}px`;let n=this.editor.getLayoutInfo();this._doLayout(t,this._getWidth(n))}this._resizeSash?.layout()}get position(){let e=this._positionMarkerId.getRange(0);if(e)return e.getStartPosition()}show(t,n){let r=e.Range$1.isIRange(t)?e.Range$1.lift(t):e.Range$1.fromPositions(t);this._isShowing=!0,this._showImpl(r,n),this._isShowing=!1,this._positionMarkerId.set([{range:r,options:e.ModelDecorationOptions.EMPTY}])}hide(){this._viewZone&&=(this.editor.changeViewZones(e=>{this._viewZone&&e.removeZone(this._viewZone.id)}),null),this._overlayWidget&&=(this.editor.removeOverlayWidget(this._overlayWidget),null),this._arrow?.hide(),this._positionMarkerId.clear()}_decoratingElementsHeight(){let e=this.editor.getOption(67),t=0;if(this.options.showArrow){let n=Math.round(e/3);t+=2*n}if(this.options.showFrame){let n=Math.round(e/9);t+=2*n}return t}_showImpl(t,n){let r=t.getStartPosition(),i=this.editor.getLayoutInfo(),a=this._getWidth(i);this.domNode.style.width=`${a}px`,this.domNode.style.left=this._getLeft(i)+`px`;let o=document.createElement(`div`);o.style.overflow=`hidden`;let s=this.editor.getOption(67);if(!this.options.allowUnlimitedHeight){let e=Math.max(12,this.editor.getLayoutInfo().height/s*.8);n=Math.min(n,e)}let c=0,l=0;if(this._arrow&&this.options.showArrow&&(c=Math.round(s/3),this._arrow.height=c,this._arrow.show(r)),this.options.showFrame&&(l=Math.round(s/9)),this.editor.changeViewZones(e=>{this._viewZone&&e.removeZone(this._viewZone.id),this._overlayWidget&&=(this.editor.removeOverlayWidget(this._overlayWidget),null),this.domNode.style.top=`-1000px`,this._viewZone=new Um(o,r.lineNumber,r.column,n,e=>this._onViewZoneTop(e),e=>this._onViewZoneHeight(e),this.options.showInHiddenAreas,this.options.ordinal),this._viewZone.id=e.addZone(this._viewZone),this._overlayWidget=new Wm(Hm+this._viewZone.id,this.domNode),this.editor.addOverlayWidget(this._overlayWidget)}),this.container&&this.options.showFrame){let e=this.options.frameWidth?this.options.frameWidth:l;this.container.style.borderTopWidth=e+`px`,this.container.style.borderBottomWidth=e+`px`}let u=n*s-this._decoratingElementsHeight();this.container&&(this.container.style.top=c+`px`,this.container.style.height=u+`px`,this.container.style.overflow=`hidden`),this._doLayout(u,a),this.options.keepEditorSelection||this.editor.setSelection(t);let d=this.editor.getModel();if(d){let n=d.validateRange(new e.Range$1(t.startLineNumber,1,t.endLineNumber+1,1));this.revealRange(n,n.startLineNumber===d.getLineCount())}}revealRange(e,t){t?this.editor.revealLineNearTop(e.endLineNumber,0):this.editor.revealRange(e,0)}setCssClass(e,t){this.container&&(t&&this.container.classList.remove(t),this.container.classList.add(e))}_onWidth(e){}_doLayout(e,t){}_relayout(e){this._viewZone&&this._viewZone.heightInLines!==e&&this.editor.changeViewZones(t=>{this._viewZone&&(this._viewZone.heightInLines=e,t.layoutZone(this._viewZone.id))})}_initSash(){if(this._resizeSash)return;this._resizeSash=this._disposables.add(new e.Sash(this.domNode,this,{orientation:1})),this.options.isResizeable||(this._resizeSash.state=0);let t;this._disposables.add(this._resizeSash.onDidStart(e=>{this._viewZone&&(t={startY:e.startY,heightInLines:this._viewZone.heightInLines})})),this._disposables.add(this._resizeSash.onDidEnd(()=>{t=void 0})),this._disposables.add(this._resizeSash.onDidChange(e=>{if(t){let n=(e.currentY-t.startY)/this.editor.getOption(67),r=n<0?Math.ceil(n):Math.floor(n),i=t.heightInLines+r;i>5&&i<35&&this._relayout(i)}}))}getHorizontalSashLeft(){return 0}getHorizontalSashTop(){return(this.domNode.style.height===null?0:parseInt(this.domNode.style.height))-this._decoratingElementsHeight()/2}getHorizontalSashWidth(){let e=this.editor.getLayoutInfo();return e.width-e.minimap.minimapWidth}},qm=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Jm=function(e,t){return function(n,r){t(n,r,e)}};const Ym=e.createDecorator(`IPeekViewService`);e.registerSingleton(Ym,class{constructor(){this._widgets=new Map}addExclusiveWidget(e,t){let n=this._widgets.get(e);n&&(n.listener.dispose(),n.widget.dispose()),this._widgets.set(e,{widget:t,listener:t.onDidClose(()=>{let n=this._widgets.get(e);n&&n.widget===t&&(n.listener.dispose(),this._widgets.delete(e))})})}},1);var Xm;(function(t){t.inPeekEditor=new e.RawContextKey(`inReferenceSearchEditor`,!0,e.localize(`inReferenceSearchEditor`,`Whether the current code editor is embedded inside peek`)),t.notInPeekEditor=t.inPeekEditor.toNegated()})(Xm||={});var Zm=class{static{this.ID=`editor.contrib.referenceController`}constructor(e,t){e instanceof zm&&Xm.inPeekEditor.bindTo(t)}dispose(){}};Zm=qm([Jm(1,e.IContextKeyService)],Zm),e.registerEditorContribution(Zm.ID,Zm,0);function Qm(t){let n=t.get(e.ICodeEditorService).getFocusedCodeEditor();return n instanceof zm?n.getParentEditor():n}var $m={headerBackgroundColor:e.Color.white,primaryHeadingColor:e.Color.fromHex(`#333333`),secondaryHeadingColor:e.Color.fromHex(`#6c6c6cb3`)},eh=class extends Km{constructor(t,n,r){super(t,n),this.instantiationService=r,this._onDidClose=new e.Emitter$1,this.onDidClose=this._onDidClose.event,e.mixin(this.options,$m,!1)}dispose(){this.disposed||(this.disposed=!0,super.dispose(),this._onDidClose.fire(this))}style(e){let t=this.options;e.headerBackgroundColor&&(t.headerBackgroundColor=e.headerBackgroundColor),e.primaryHeadingColor&&(t.primaryHeadingColor=e.primaryHeadingColor),e.secondaryHeadingColor&&(t.secondaryHeadingColor=e.secondaryHeadingColor),super.style(e)}_applyStyles(){super._applyStyles();let e=this.options;this._headElement&&e.headerBackgroundColor&&(this._headElement.style.backgroundColor=e.headerBackgroundColor.toString()),this._primaryHeading&&e.primaryHeadingColor&&(this._primaryHeading.style.color=e.primaryHeadingColor.toString()),this._secondaryHeading&&e.secondaryHeadingColor&&(this._secondaryHeading.style.color=e.secondaryHeadingColor.toString()),this._bodyElement&&e.frameColor&&(this._bodyElement.style.borderColor=e.frameColor.toString())}_fillContainer(t){this.setCssClass(`peekview-widget`),this._headElement=e.$(`.head`),this._bodyElement=e.$(`.body`),this._fillHead(this._headElement),this._fillBody(this._bodyElement),t.appendChild(this._headElement),t.appendChild(this._bodyElement)}_fillHead(t,n){this._titleElement=e.$(`.peekview-title`),this.options.supportOnTitleClick&&(this._titleElement.classList.add(`clickable`),e.addStandardDisposableListener(this._titleElement,`click`,e=>this._onTitleClick(e))),e.append(this._headElement,this._titleElement),this._fillTitleIcon(this._titleElement),this._primaryHeading=e.$(`span.filename`),this._secondaryHeading=e.$(`span.dirname`),this._metaHeading=e.$(`span.meta`),e.append(this._titleElement,this._primaryHeading,this._secondaryHeading,this._metaHeading);let r=e.$(`.peekview-actions`);e.append(this._headElement,r);let i=this._getActionBarOptions();this._actionbarWidget=new e.ActionBar(r,i),this._disposables.add(this._actionbarWidget),n||this._actionbarWidget.push(new e.Action(`peekview.close`,e.localize(`label.close`,`Close`),e.ThemeIcon.asClassName(e.Codicon.close),!0,()=>(this.dispose(),Promise.resolve())),{label:!1,icon:!0})}_fillTitleIcon(e){}_getActionBarOptions(){return{actionViewItemProvider:e.createActionViewItem.bind(void 0,this.instantiationService),orientation:0}}_onTitleClick(e){}setTitle(t,n){this._primaryHeading&&this._secondaryHeading&&(this._primaryHeading.innerText=t,this._primaryHeading.setAttribute(`title`,t),n?this._secondaryHeading.innerText=n:e.clearNode(this._secondaryHeading))}setMetaTitle(t){this._metaHeading&&(t?(this._metaHeading.innerText=t,e.show(this._metaHeading)):e.hide(this._metaHeading))}_doLayout(e,t){if(!this._isShowing&&e<0){this.dispose();return}let n=Math.ceil(this.editor.getOption(67)*1.2),r=Math.round(e-(n+2));this._doLayoutHead(n,t),this._doLayoutBody(r,t)}_doLayoutHead(e,t){this._headElement&&(this._headElement.style.height=`${e}px`,this._headElement.style.lineHeight=this._headElement.style.height)}_doLayoutBody(e,t){this._bodyElement&&(this._bodyElement.style.height=`${e}px`)}};eh=qm([Jm(2,e.IInstantiationService)],eh);const th=e.registerColor(`peekViewTitle.background`,{dark:`#252526`,light:`#F3F3F3`,hcDark:e.Color.black,hcLight:e.Color.white},e.localize(`peekViewTitleBackground`,`Background color of the peek view title area.`)),nh=e.registerColor(`peekViewTitleLabel.foreground`,{dark:e.Color.white,light:e.Color.black,hcDark:e.Color.white,hcLight:e.editorForeground},e.localize(`peekViewTitleForeground`,`Color of the peek view title.`)),rh=e.registerColor(`peekViewTitleDescription.foreground`,{dark:`#ccccccb3`,light:`#616161`,hcDark:`#FFFFFF99`,hcLight:`#292929`},e.localize(`peekViewTitleInfoForeground`,`Color of the peek view title info.`)),ih=e.registerColor(`peekView.border`,{dark:e.editorInfoForeground,light:e.editorInfoForeground,hcDark:e.contrastBorder,hcLight:e.contrastBorder},e.localize(`peekViewBorder`,`Color of the peek view borders and arrow.`)),ah=e.registerColor(`peekViewResult.background`,{dark:`#252526`,light:`#F3F3F3`,hcDark:e.Color.black,hcLight:e.Color.white},e.localize(`peekViewResultsBackground`,`Background color of the peek view result list.`)),oh=e.registerColor(`peekViewResult.lineForeground`,{dark:`#bbbbbb`,light:`#646465`,hcDark:e.Color.white,hcLight:e.editorForeground},e.localize(`peekViewResultsMatchForeground`,`Foreground color for line nodes in the peek view result list.`)),sh=e.registerColor(`peekViewResult.fileForeground`,{dark:e.Color.white,light:`#1E1E1E`,hcDark:e.Color.white,hcLight:e.editorForeground},e.localize(`peekViewResultsFileForeground`,`Foreground color for file nodes in the peek view result list.`)),ch=e.registerColor(`peekViewResult.selectionBackground`,{dark:`#3399ff33`,light:`#3399ff33`,hcDark:null,hcLight:null},e.localize(`peekViewResultsSelectionBackground`,`Background color of the selected entry in the peek view result list.`)),lh=e.registerColor(`peekViewResult.selectionForeground`,{dark:e.Color.white,light:`#6C6C6C`,hcDark:e.Color.white,hcLight:e.editorForeground},e.localize(`peekViewResultsSelectionForeground`,`Foreground color of the selected entry in the peek view result list.`)),uh=e.registerColor(`peekViewEditor.background`,{dark:`#001F33`,light:`#F2F8FC`,hcDark:e.Color.black,hcLight:e.Color.white},e.localize(`peekViewEditorBackground`,`Background color of the peek view editor.`)),dh=e.registerColor(`peekViewEditorGutter.background`,uh,e.localize(`peekViewEditorGutterBackground`,`Background color of the gutter in the peek view editor.`)),fh=e.registerColor(`peekViewEditorStickyScroll.background`,uh,e.localize(`peekViewEditorStickScrollBackground`,`Background color of sticky scroll in the peek view editor.`)),ph=e.registerColor(`peekViewResult.matchHighlightBackground`,{dark:`#ea5c004d`,light:`#ea5c004d`,hcDark:null,hcLight:null},e.localize(`peekViewResultsMatchHighlight`,`Match highlight color in the peek view result list.`)),mh=e.registerColor(`peekViewEditor.matchHighlightBackground`,{dark:`#ff8f0099`,light:`#f5d802de`,hcDark:null,hcLight:null},e.localize(`peekViewEditorMatchHighlight`,`Match highlight color in the peek view editor.`)),hh=e.registerColor(`peekViewEditor.matchHighlightBorder`,{dark:null,light:null,hcDark:e.activeContrastBorder,hcLight:e.activeContrastBorder},e.localize(`peekViewEditorMatchHighlightBorder`,`Match highlight border in the peek view editor.`));var gh=class{constructor(t,n,r,i){this.isProviderFirst=t,this.parent=n,this.link=r,this._rangeCallback=i,this.id=e.defaultGenerator.nextId()}get uri(){return this.link.uri}get range(){return this._range??this.link.targetSelectionRange??this.link.range}set range(e){this._range=e,this._rangeCallback(this)}get ariaMessage(){let t=this.parent.getPreview(this)?.preview(this.range);return t?e.localize({key:`aria.oneReference.preview`,comment:[`Placeholders are: 0: filename, 1:line number, 2: column number, 3: preview snippet of source code`]},`{0} in {1} on line {2} at column {3}`,t.value,e.basename(this.uri),this.range.startLineNumber,this.range.startColumn):e.localize(`aria.oneReference`,`in {0} on line {1} at column {2}`,e.basename(this.uri),this.range.startLineNumber,this.range.startColumn)}},_h=class{constructor(e){this._modelReference=e}dispose(){this._modelReference.dispose()}preview(t,n=8){let r=this._modelReference.object.textEditorModel;if(!r)return;let{startLineNumber:i,startColumn:a,endLineNumber:o,endColumn:s}=t,c=r.getWordUntilPosition({lineNumber:i,column:a-n}),l=new e.Range$1(i,c.startColumn,i,a),u=new e.Range$1(o,s,o,1073741824),d=r.getValueInRange(l).replace(/^\s+/,``),f=r.getValueInRange(t),p=r.getValueInRange(u).replace(/\s+$/,``);return{value:d+f+p,highlight:{start:d.length,end:d.length+f.length}}}},vh=class{constructor(t,n){this.parent=t,this.uri=n,this.children=[],this._previews=new e.ResourceMap}dispose(){e.dispose(this._previews.values()),this._previews.clear()}getPreview(e){return this._previews.get(e.uri)}get ariaMessage(){let t=this.children.length;return t===1?e.localize(`aria.fileReferences.1`,`1 symbol in {0}, full path {1}`,e.basename(this.uri),this.uri.fsPath):e.localize(`aria.fileReferences.N`,`{0} symbols in {1}, full path {2}`,t,e.basename(this.uri),this.uri.fsPath)}async resolve(t){if(this._previews.size!==0)return this;for(let n of this.children)if(!this._previews.has(n.uri))try{let e=await t.createModelReference(n.uri);this._previews.set(n.uri,new _h(e))}catch(t){e.onUnexpectedError(t)}return this}},yh=class t{constructor(n,r){this.groups=[],this.references=[],this._onDidChangeReferenceRange=new e.Emitter$1,this.onDidChangeReferenceRange=this._onDidChangeReferenceRange.event,this._links=n,this._title=r;let[i]=n;n.sort(t._compareReferences);let a;for(let r of n)if((!a||!e.extUri.isEqual(a.uri,r.uri,!0))&&(a=new vh(this,r.uri),this.groups.push(a)),a.children.length===0||t._compareReferences(r,a.children[a.children.length-1])!==0){let e=new gh(i===r,a,r,e=>this._onDidChangeReferenceRange.fire(e));this.references.push(e),a.children.push(e)}}dispose(){e.dispose(this.groups),this._onDidChangeReferenceRange.dispose(),this.groups.length=0}clone(){return new t(this._links,this._title)}get title(){return this._title}get isEmpty(){return this.groups.length===0}get ariaMessage(){return this.isEmpty?e.localize(`aria.result.0`,`No results found`):this.references.length===1?e.localize(`aria.result.1`,`Found 1 symbol in {0}`,this.references[0].uri.fsPath):this.groups.length===1?e.localize(`aria.result.n1`,`Found {0} symbols in {1}`,this.references.length,this.groups[0].uri.fsPath):e.localize(`aria.result.nm`,`Found {0} symbols in {1} files`,this.references.length,this.groups.length)}nextOrPreviousReference(e,t){let{parent:n}=e,r=n.children.indexOf(e),i=n.children.length,a=n.parent.groups.length;return a===1||t&&r+1<i||!t&&r>0?(r=t?(r+1)%i:(r+i-1)%i,n.children[r]):(r=n.parent.groups.indexOf(n),t?(r=(r+1)%a,n.parent.groups[r].children[0]):(r=(r+a-1)%a,n.parent.groups[r].children[n.parent.groups[r].children.length-1]))}nearestReference(t,n){let r=this.references.map((r,i)=>({idx:i,prefixLen:e.commonPrefixLength(r.uri.toString(),t.toString()),offsetDist:Math.abs(r.range.startLineNumber-n.lineNumber)*100+Math.abs(r.range.startColumn-n.column)})).sort((e,t)=>e.prefixLen>t.prefixLen?-1:e.prefixLen<t.prefixLen?1:e.offsetDist<t.offsetDist?-1:e.offsetDist>t.offsetDist?1:0)[0];if(r)return this.references[r.idx]}referenceAt(t,n){for(let r of this.references)if(r.uri.toString()===t.toString()&&e.Range$1.containsPosition(r.range,n))return r}firstReference(){for(let e of this.references)if(e.isProviderFirst)return e;return this.references[0]}static _compareReferences(t,n){return e.extUri.compare(t.uri,n.uri)||e.Range$1.compareRangesUsingStarts(t.range,n.range)}},bh=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},xh=function(e,t){return function(n,r){t(n,r,e)}},Sh,Ch=class{constructor(e){this._resolverService=e}hasChildren(e){return e instanceof yh||e instanceof vh}getChildren(e){if(e instanceof yh)return e.groups;if(e instanceof vh)return e.resolve(this._resolverService).then(e=>e.children);throw Error(`bad tree`)}};Ch=bh([xh(0,e.ITextModelService)],Ch);var wh=class{getHeight(){return 23}getTemplateId(e){return e instanceof vh?Oh.id:Ah.id}},Th=class{constructor(e){this._keybindingService=e}getKeyboardNavigationLabel(t){if(t instanceof gh){let e=t.parent.getPreview(t)?.preview(t.range);if(e)return e.value}return e.basename(t.uri)}};Th=bh([xh(0,e.IKeybindingService)],Th);var Eh=class{getId(e){return e instanceof gh?e.id:e.uri}},Dh=class extends e.Disposable{constructor(t,n){super(),this._labelService=n;let r=document.createElement(`div`);r.classList.add(`reference-file`),this.file=this._register(new e.IconLabel(r,{supportHighlights:!0})),this.badge=new e.CountBadge(e.append(r,e.$(`.count`)),{},e.defaultCountBadgeStyles),t.appendChild(r)}set(t,n){let r=e.dirname(t.uri);this.file.setLabel(this._labelService.getUriBasenameLabel(t.uri),this._labelService.getUriLabel(r,{relative:!0}),{title:this._labelService.getUriLabel(t.uri),matches:n});let i=t.children.length;this.badge.setCount(i),i>1?this.badge.setTitleFormat(e.localize(`referencesCount`,`{0} references`,i)):this.badge.setTitleFormat(e.localize(`referenceCount`,`{0} reference`,i))}};Dh=bh([xh(1,e.ILabelService)],Dh);var Oh=class{static{Sh=this}static{this.id=`FileReferencesRenderer`}constructor(e){this._instantiationService=e,this.templateId=Sh.id}renderTemplate(e){return this._instantiationService.createInstance(Dh,e)}renderElement(t,n,r){r.set(t.element,e.createMatches(t.filterData))}disposeTemplate(e){e.dispose()}};Oh=Sh=bh([xh(0,e.IInstantiationService)],Oh);var kh=class extends e.Disposable{constructor(t){super(),this.label=this._register(new e.HighlightedLabel(t))}set(t,n){let r=t.parent.getPreview(t)?.preview(t.range);if(!r||!r.value)this.label.set(`${e.basename(t.uri)}:${t.range.startLineNumber+1}:${t.range.startColumn+1}`);else{let{value:t,highlight:i}=r;n&&!e.FuzzyScore.isDefault(n)?(this.label.element.classList.toggle(`referenceMatch`,!1),this.label.set(t,e.createMatches(n))):(this.label.element.classList.toggle(`referenceMatch`,!0),this.label.set(t,[i]))}}},Ah=class e{constructor(){this.templateId=e.id}static{this.id=`OneReferenceRenderer`}renderTemplate(e){return new kh(e)}renderElement(e,t,n){n.set(e.element,e.filterData)}disposeTemplate(e){e.dispose()}},jh=class{getWidgetAriaLabel(){return e.localize(`treeAriaLabel`,`References`)}getAriaLabel(e){return e.ariaMessage}},Mh=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Nh=function(e,t){return function(n,r){t(n,r,e)}},Ph=class t{static{this.DecorationOptions=e.ModelDecorationOptions.register({description:`reference-decoration`,stickiness:1,className:`reference-decoration`})}constructor(t,n){this._editor=t,this._model=n,this._decorations=new Map,this._decorationIgnoreSet=new Set,this._callOnDispose=new e.DisposableStore,this._callOnModelChange=new e.DisposableStore,this._callOnDispose.add(this._editor.onDidChangeModel(()=>this._onModelChanged())),this._onModelChanged()}dispose(){this._callOnModelChange.dispose(),this._callOnDispose.dispose(),this.removeDecorations()}_onModelChanged(){this._callOnModelChange.clear();let e=this._editor.getModel();if(e){for(let t of this._model.references)if(t.uri.toString()===e.uri.toString()){this._addDecorations(t.parent);return}}}_addDecorations(e){if(!this._editor.hasModel())return;this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations(()=>this._onDecorationChanged()));let n=[],r=[];for(let i=0,a=e.children.length;i<a;i++){let a=e.children[i];this._decorationIgnoreSet.has(a.id)||a.uri.toString()===this._editor.getModel().uri.toString()&&(n.push({range:a.range,options:t.DecorationOptions}),r.push(i))}this._editor.changeDecorations(t=>{let i=t.deltaDecorations([],n);for(let t=0;t<i.length;t++)this._decorations.set(i[t],e.children[r[t]])})}_onDecorationChanged(){let t=[],n=this._editor.getModel();if(n){for(let[r,i]of this._decorations){let a=n.getDecorationRange(r);if(!a)continue;let o=!1;if(!e.Range$1.equalsRange(a,i.range)){if(e.Range$1.spansMultipleLines(a))o=!0;else{let e=i.range.endColumn-i.range.startColumn,t=a.endColumn-a.startColumn;e!==t&&(o=!0)}o?(this._decorationIgnoreSet.add(i.id),t.push(r)):i.range=a}}for(let e=0,n=t.length;e<n;e++)this._decorations.delete(t[e]);this._editor.removeDecorations(t)}}removeDecorations(){this._editor.removeDecorations([...this._decorations.keys()]),this._decorations.clear()}},Fh=class{constructor(){this.ratio=.7,this.heightInLines=18}static fromJSON(e){let t,n;try{let r=JSON.parse(e);t=r.ratio,n=r.heightInLines}catch{}return{ratio:t||.7,heightInLines:n||18}}},Ih=class extends e.WorkbenchAsyncDataTree{},Lh=class extends eh{constructor(t,n,r,i,a,o,s,c,l){super(t,{showFrame:!1,showArrow:!0,isResizeable:!0,isAccessible:!0,supportOnTitleClick:!0},o),this._defaultTreeKeyboardSupport=n,this.layoutData=r,this._textModelResolverService=a,this._instantiationService=o,this._peekViewService=s,this._uriLabel=c,this._keybindingService=l,this._disposeOnNewModel=new e.DisposableStore,this._callOnDispose=new e.DisposableStore,this._onDidSelectReference=new e.Emitter$1,this.onDidSelectReference=this._onDidSelectReference.event,this._dim=new e.Dimension(0,0),this._isClosing=!1,this._applyTheme(i.getColorTheme()),this._callOnDispose.add(i.onDidColorThemeChange(this._applyTheme.bind(this))),this._peekViewService.addExclusiveWidget(t,this),this.create()}get isClosing(){return this._isClosing}dispose(){this._isClosing=!0,this.setModel(void 0),this._callOnDispose.dispose(),this._disposeOnNewModel.dispose(),e.dispose(this._preview),e.dispose(this._previewNotAvailableMessage),e.dispose(this._tree),e.dispose(this._previewModelReference),this._splitView.dispose(),super.dispose()}_applyTheme(t){let n=t.getColor(ih)||e.Color.transparent;this.style({arrowColor:n,frameColor:n,headerBackgroundColor:t.getColor(th)||e.Color.transparent,primaryHeadingColor:t.getColor(nh),secondaryHeadingColor:t.getColor(rh)})}show(e){super.show(e,this.layoutData.heightInLines||18)}focusOnReferenceTree(){this._tree.domFocus()}focusOnPreviewEditor(){this._preview.focus()}isPreviewEditorFocused(){return this._preview.hasTextFocus()}_onTitleClick(e){this._preview&&this._preview.getModel()&&this._onDidSelectReference.fire({element:this._getFocusedReference(),kind:e.ctrlKey||e.metaKey||e.altKey?`side`:`open`,source:`title`})}_fillBody(t){this.setCssClass(`reference-zone-widget`),this._messageContainer=e.append(t,e.$(`div.messages`)),e.hide(this._messageContainer),this._splitView=new e.SplitView(t,{orientation:1}),this._previewContainer=e.append(t,e.$(`div.preview.inline`)),this._preview=this._instantiationService.createInstance(zm,this._previewContainer,{scrollBeyondLastLine:!1,scrollbar:{verticalScrollbarSize:14,horizontal:`auto`,useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,alwaysConsumeMouseWheel:!0},overviewRulerLanes:2,fixedOverflowWidgets:!0,minimap:{enabled:!1}},{},this.editor),e.hide(this._previewContainer),this._previewNotAvailableMessage=this._instantiationService.createInstance(e.TextModel,e.localize(`missingPreviewMessage`,`no preview available`),e.PLAINTEXT_LANGUAGE_ID,e.TextModel.DEFAULT_CREATION_OPTIONS,null),this._treeContainer=e.append(t,e.$(`div.ref-tree.inline`));let n={keyboardSupport:this._defaultTreeKeyboardSupport,accessibilityProvider:new jh,keyboardNavigationLabelProvider:this._instantiationService.createInstance(Th),identityProvider:new Eh,openOnSingleClick:!0,selectionNavigation:!0,overrideStyles:{listBackground:ah}};this._defaultTreeKeyboardSupport&&this._callOnDispose.add(e.addStandardDisposableListener(this._treeContainer,`keydown`,e=>{e.equals(9)&&(this._keybindingService.dispatchEvent(e,e.target),e.stopPropagation())},!0)),this._tree=this._instantiationService.createInstance(Ih,`ReferencesWidget`,this._treeContainer,new wh,[this._instantiationService.createInstance(Oh),this._instantiationService.createInstance(Ah)],this._instantiationService.createInstance(Ch),n),this._splitView.addView({onDidChange:e.Event.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:e=>{this._preview.layout({height:this._dim.height,width:e})}},e.Sizing.Distribute),this._splitView.addView({onDidChange:e.Event.None,element:this._treeContainer,minimumSize:100,maximumSize:Number.MAX_VALUE,layout:e=>{this._treeContainer.style.height=`${this._dim.height}px`,this._treeContainer.style.width=`${e}px`,this._tree.layout(this._dim.height,e)}},e.Sizing.Distribute),this._disposables.add(this._splitView.onDidSashChange(()=>{this._dim.width&&(this.layoutData.ratio=this._splitView.getViewSize(0)/this._dim.width)},void 0));let r=(e,t)=>{e instanceof gh&&(t===`show`&&this._revealReference(e,!1),this._onDidSelectReference.fire({element:e,kind:t,source:`tree`}))};this._disposables.add(this._tree.onDidOpen(e=>{e.sideBySide?r(e.element,`side`):e.editorOptions.pinned?r(e.element,`goto`):r(e.element,`show`)})),e.hide(this._treeContainer)}_onWidth(e){this._dim&&this._doLayoutBody(this._dim.height,e)}_doLayoutBody(t,n){super._doLayoutBody(t,n),this._dim=new e.Dimension(n,t),this.layoutData.heightInLines=this._viewZone?this._viewZone.heightInLines:this.layoutData.heightInLines,this._splitView.layout(n),this._splitView.resizeView(0,n*this.layoutData.ratio)}setSelection(e){return this._revealReference(e,!0).then(()=>{this._model&&(this._tree.setSelection([e]),this._tree.setFocus([e]))})}setModel(e){return this._disposeOnNewModel.clear(),this._model=e,this._model?this._onNewModel():Promise.resolve()}_onNewModel(){return this._model?this._model.isEmpty?(this.setTitle(``),this._messageContainer.innerText=e.localize(`noResults`,`No results`),e.show(this._messageContainer),Promise.resolve(void 0)):(e.hide(this._messageContainer),this._decorationsManager=new Ph(this._preview,this._model),this._disposeOnNewModel.add(this._decorationsManager),this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange(e=>this._tree.rerender(e))),this._disposeOnNewModel.add(this._preview.onMouseDown(e=>{let{event:t,target:n}=e;if(t.detail!==2)return;let r=this._getFocusedReference();r&&this._onDidSelectReference.fire({element:{uri:r.uri,range:n.range},kind:t.ctrlKey||t.metaKey||t.altKey?`side`:`open`,source:`editor`})})),this.container.classList.add(`results-loaded`),e.show(this._treeContainer),e.show(this._previewContainer),this._splitView.layout(this._dim.width),this.focusOnReferenceTree(),this._tree.setInput(this._model.groups.length===1?this._model.groups[0]:this._model)):Promise.resolve(void 0)}_getFocusedReference(){let[e]=this._tree.getFocus();if(e instanceof gh)return e;if(e instanceof vh&&e.children.length>0)return e.children[0]}async revealReference(e){await this._revealReference(e,!1),this._onDidSelectReference.fire({element:e,kind:`goto`,source:`tree`})}async _revealReference(t,n){if(this._revealedReference===t)return;this._revealedReference=t,t.uri.scheme===e.Schemas.inMemory?this.setTitle(e.localize(`peekView.alternateTitle`,`References`)):this.setTitle(e.basenameOrAuthority(t.uri),this._uriLabel.getUriLabel(e.dirname(t.uri)));let r=this._textModelResolverService.createModelReference(t.uri);this._tree.getInput()===t.parent?this._tree.reveal(t):(n&&this._tree.reveal(t.parent),await this._tree.expand(t.parent),this._tree.reveal(t));let i=await r;if(!this._model){i.dispose();return}e.dispose(this._previewModelReference);let a=i.object;if(a){let n=this._preview.getModel()===a.textEditorModel?0:1,r=e.Range$1.lift(t.range).collapseToStart();this._previewModelReference=i,this._preview.setModel(a.textEditorModel),this._preview.setSelection(r),this._preview.revealRangeInCenter(r,n)}else this._preview.setModel(this._previewNotAvailableMessage),i.dispose()}};Lh=Mh([Nh(3,e.IThemeService),Nh(4,e.ITextModelService),Nh(5,e.IInstantiationService),Nh(6,Ym),Nh(7,e.ILabelService),Nh(8,e.IKeybindingService)],Lh);var Rh=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},zh=function(e,t){return function(n,r){t(n,r,e)}},Bh;const Vh=new e.RawContextKey(`referenceSearchVisible`,!1,e.localize(`referenceSearchVisible`,`Whether reference peek is visible, like 'Peek References' or 'Peek Definition'`));var Hh=class{static{Bh=this}static{this.ID=`editor.contrib.referencesController`}static get(e){return e.getContribution(Bh.ID)}constructor(t,n,r,i,a,o,s,c){this._defaultTreeKeyboardSupport=t,this._editor=n,this._editorService=i,this._notificationService=a,this._instantiationService=o,this._storageService=s,this._configurationService=c,this._disposables=new e.DisposableStore,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=Vh.bindTo(r)}dispose(){this._referenceSearchVisible.reset(),this._disposables.dispose(),this._widget?.dispose(),this._model?.dispose(),this._widget=void 0,this._model=void 0}toggleWidget(t,n,r){let i;if(this._widget&&(i=this._widget.position),this.closeWidget(),i&&t.containsPosition(i))return;this._peekMode=r,this._referenceSearchVisible.set(!0),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>{this.closeWidget()})),this._disposables.add(this._editor.onDidChangeModel(()=>{this._ignoreModelChangeEvent||this.closeWidget()}));let a=`peekViewLayout`,o=Fh.fromJSON(this._storageService.get(a,0,`{}`));this._widget=this._instantiationService.createInstance(Lh,this._editor,this._defaultTreeKeyboardSupport,o),this._widget.setTitle(e.localize(`labelLoading`,`Loading...`)),this._widget.show(t),this._disposables.add(this._widget.onDidClose(()=>{n.cancel(),this._widget?(this._storageService.store(a,JSON.stringify(this._widget.layoutData),0,1),this._widget.isClosing||this.closeWidget(),this._widget=void 0):this.closeWidget()})),this._disposables.add(this._widget.onDidSelectReference(e=>{let{element:t,kind:n}=e;if(t)switch(n){case`open`:(e.source!==`editor`||!this._configurationService.getValue(`editor.stablePeek`))&&this.openReference(t,!1,!1);break;case`side`:this.openReference(t,!0,!1);break;case`goto`:r?this._gotoReference(t,!0):this.openReference(t,!1,!0);break}}));let s=++this._requestIdPool;n.then(n=>{if(s!==this._requestIdPool||!this._widget){n.dispose();return}return this._model?.dispose(),this._model=n,this._widget.setModel(this._model).then(()=>{if(this._widget&&this._model&&this._editor.hasModel()){this._model.isEmpty?this._widget.setMetaTitle(``):this._widget.setMetaTitle(e.localize(`metaTitle.N`,`{0} ({1})`,this._model.title,this._model.references.length));let n=this._editor.getModel().uri,r=new e.Position$1(t.startLineNumber,t.startColumn),i=this._model.nearestReference(n,r);if(i)return this._widget.setSelection(i).then(()=>{this._widget&&this._editor.getOption(87)===`editor`&&this._widget.focusOnPreviewEditor()})}})},e=>{this._notificationService.error(e)})}changeFocusBetweenPreviewAndReferences(){this._widget&&(this._widget.isPreviewEditorFocused()?this._widget.focusOnReferenceTree():this._widget.focusOnPreviewEditor())}async goToNextOrPreviousReference(e){if(!this._editor.hasModel()||!this._model||!this._widget)return;let t=this._widget.position;if(!t)return;let n=this._model.nearestReference(this._editor.getModel().uri,t);if(!n)return;let r=this._model.nextOrPreviousReference(n,e),i=this._editor.hasTextFocus(),a=this._widget.isPreviewEditorFocused();await this._widget.setSelection(r),await this._gotoReference(r,!1),i?this._editor.focus():this._widget&&a&&this._widget.focusOnPreviewEditor()}async revealReference(e){!this._editor.hasModel()||!this._model||!this._widget||await this._widget.revealReference(e)}closeWidget(e=!0){this._widget?.dispose(),this._model?.dispose(),this._referenceSearchVisible.reset(),this._disposables.clear(),this._widget=void 0,this._model=void 0,e&&this._editor.focus(),this._requestIdPool+=1}_gotoReference(t,n){this._widget?.hide(),this._ignoreModelChangeEvent=!0;let r=e.Range$1.lift(t.range).collapseToStart();return this._editorService.openCodeEditor({resource:t.uri,options:{selection:r,selectionSource:`code.jump`,pinned:n}},this._editor).then(t=>{if(this._ignoreModelChangeEvent=!1,!t||!this._widget){this.closeWidget();return}if(this._editor===t)this._widget.show(r),this._widget.focusOnReferenceTree();else{let n=Bh.get(t),i=this._model.clone();this.closeWidget(),t.focus(),n?.toggleWidget(r,e.createCancelablePromise(e=>Promise.resolve(i)),this._peekMode??!1)}},t=>{this._ignoreModelChangeEvent=!1,e.onUnexpectedError(t)})}openReference(e,t,n){t||this.closeWidget();let{uri:r,range:i}=e;this._editorService.openCodeEditor({resource:r,options:{selection:i,selectionSource:`code.jump`,pinned:n}},this._editor,t)}};Hh=Bh=Rh([zh(2,e.IContextKeyService),zh(3,e.ICodeEditorService),zh(4,e.INotificationService),zh(5,e.IInstantiationService),zh(6,e.IStorageService),zh(7,e.IConfigurationService)],Hh);function Uh(e,t){let n=Qm(e);if(!n)return;let r=Hh.get(n);r&&t(r)}e.KeybindingsRegistry.registerCommandAndKeybindingRule({id:`togglePeekWidgetFocus`,weight:100,primary:e.KeyChord(2089,60),when:e.ContextKeyExpr.or(Vh,Xm.inPeekEditor),handler(e){Uh(e,e=>{e.changeFocusBetweenPreviewAndReferences()})}}),e.KeybindingsRegistry.registerCommandAndKeybindingRule({id:`goToNextReference`,weight:90,primary:62,secondary:[70],when:e.ContextKeyExpr.or(Vh,Xm.inPeekEditor),handler(e){Uh(e,e=>{e.goToNextOrPreviousReference(!0)})}}),e.KeybindingsRegistry.registerCommandAndKeybindingRule({id:`goToPreviousReference`,weight:90,primary:1086,secondary:[1094],when:e.ContextKeyExpr.or(Vh,Xm.inPeekEditor),handler(e){Uh(e,e=>{e.goToNextOrPreviousReference(!1)})}}),e.CommandsRegistry.registerCommandAlias(`goToNextReferenceFromEmbeddedEditor`,`goToNextReference`),e.CommandsRegistry.registerCommandAlias(`goToPreviousReferenceFromEmbeddedEditor`,`goToPreviousReference`),e.CommandsRegistry.registerCommandAlias(`closeReferenceSearchEditor`,`closeReferenceSearch`),e.CommandsRegistry.registerCommand(`closeReferenceSearch`,e=>Uh(e,e=>e.closeWidget())),e.KeybindingsRegistry.registerKeybindingRule({id:`closeReferenceSearch`,weight:-1,primary:9,secondary:[1033],when:e.ContextKeyExpr.and(Xm.inPeekEditor,e.ContextKeyExpr.not(`config.editor.stablePeek`))}),e.KeybindingsRegistry.registerKeybindingRule({id:`closeReferenceSearch`,weight:250,primary:9,secondary:[1033],when:e.ContextKeyExpr.and(Vh,e.ContextKeyExpr.not(`config.editor.stablePeek`),e.ContextKeyExpr.or(e.EditorContextKeys.editorTextFocus,e.InputFocusedContext.negate()))}),e.KeybindingsRegistry.registerCommandAndKeybindingRule({id:`revealReference`,weight:200,primary:3,mac:{primary:3,secondary:[2066]},when:e.ContextKeyExpr.and(Vh,e.WorkbenchListFocusContextKey,e.WorkbenchTreeElementCanCollapse.negate(),e.WorkbenchTreeElementCanExpand.negate()),handler(t){let n=t.get(e.IListService).lastFocusedList?.getFocus();Array.isArray(n)&&n[0]instanceof gh&&Uh(t,e=>e.revealReference(n[0]))}}),e.KeybindingsRegistry.registerCommandAndKeybindingRule({id:`openReferenceToSide`,weight:100,primary:2051,mac:{primary:259},when:e.ContextKeyExpr.and(Vh,e.WorkbenchListFocusContextKey,e.WorkbenchTreeElementCanCollapse.negate(),e.WorkbenchTreeElementCanExpand.negate()),handler(t){let n=t.get(e.IListService).lastFocusedList?.getFocus();Array.isArray(n)&&n[0]instanceof gh&&Uh(t,e=>e.openReference(n[0],!0,!0))}}),e.CommandsRegistry.registerCommand(`openReference`,t=>{let n=t.get(e.IListService).lastFocusedList?.getFocus();Array.isArray(n)&&n[0]instanceof gh&&Uh(t,e=>e.openReference(n[0],!1,!0))});var Wh=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Gh=function(e,t){return function(n,r){t(n,r,e)}};const Kh=new e.RawContextKey(`hasSymbols`,!1,e.localize(`hasSymbols`,`Whether there are symbol locations that can be navigated via keyboard-only.`)),qh=e.createDecorator(`ISymbolNavigationService`);var Jh=class{constructor(e,t,n,r){this._editorService=t,this._notificationService=n,this._keybindingService=r,this._currentModel=void 0,this._currentIdx=-1,this._ignoreEditorChange=!1,this._ctxHasSymbols=Kh.bindTo(e)}reset(){this._ctxHasSymbols.reset(),this._currentState?.dispose(),this._currentMessage?.dispose(),this._currentModel=void 0,this._currentIdx=-1}put(t){let n=t.parent.parent;if(n.references.length<=1){this.reset();return}this._currentModel=n,this._currentIdx=n.references.indexOf(t),this._ctxHasSymbols.set(!0),this._showMessage();let r=new Yh(this._editorService),i=r.onDidChange(t=>{if(this._ignoreEditorChange)return;let r=this._editorService.getActiveCodeEditor();if(!r)return;let i=r.getModel(),a=r.getPosition();if(!i||!a)return;let o=!1,s=!1;for(let t of n.references)if(e.isEqual(t.uri,i.uri))o=!0,s||=e.Range$1.containsPosition(t.range,a);else if(o)break;(!o||!s)&&this.reset()});this._currentState=e.combinedDisposable(r,i)}revealNext(t){if(!this._currentModel)return Promise.resolve();this._currentIdx+=1,this._currentIdx%=this._currentModel.references.length;let n=this._currentModel.references[this._currentIdx];return this._showMessage(),this._ignoreEditorChange=!0,this._editorService.openCodeEditor({resource:n.uri,options:{selection:e.Range$1.collapseToStart(n.range),selectionRevealType:3}},t).finally(()=>{this._ignoreEditorChange=!1})}_showMessage(){this._currentMessage?.dispose();let t=this._keybindingService.lookupKeybinding(`editor.gotoNextSymbolFromResult`),n=t?e.localize(`location.kb`,`Symbol {0} of {1}, {2} for next`,this._currentIdx+1,this._currentModel.references.length,t.getLabel()):e.localize(`location`,`Symbol {0} of {1}`,this._currentIdx+1,this._currentModel.references.length);this._currentMessage=this._notificationService.status(n)}};Jh=Wh([Gh(0,e.IContextKeyService),Gh(1,e.ICodeEditorService),Gh(2,e.INotificationService),Gh(3,e.IKeybindingService)],Jh),e.registerSingleton(qh,Jh,1),e.registerEditorCommand(new class extends e.EditorCommand{constructor(){super({id:`editor.gotoNextSymbolFromResult`,precondition:Kh,kbOpts:{weight:100,primary:70}})}runEditorCommand(e,t){return e.get(qh).revealNext(t)}}),e.KeybindingsRegistry.registerCommandAndKeybindingRule({id:`editor.gotoNextSymbolFromResult.cancel`,weight:100,when:Kh,primary:9,handler(e){e.get(qh).reset()}});var Yh=class{constructor(t){this._listener=new Map,this._disposables=new e.DisposableStore,this._onDidChange=new e.Emitter$1,this.onDidChange=this._onDidChange.event,this._disposables.add(t.onCodeEditorRemove(this._onDidRemoveEditor,this)),this._disposables.add(t.onCodeEditorAdd(this._onDidAddEditor,this)),t.listCodeEditors().forEach(this._onDidAddEditor,this)}dispose(){this._disposables.dispose(),this._onDidChange.dispose(),e.dispose(this._listener.values())}_onDidAddEditor(t){this._listener.set(t,e.combinedDisposable(t.onDidChangeCursorPosition(e=>this._onDidChange.fire({editor:t})),t.onDidChangeModelContent(e=>this._onDidChange.fire({editor:t}))))}_onDidRemoveEditor(e){this._listener.get(e)?.dispose(),this._listener.delete(e)}};Yh=Wh([Gh(0,e.ICodeEditorService)],Yh);function Xh(t,n){return n.uri.scheme===t.uri.scheme?!0:!e.matchesSomeScheme(n.uri,e.Schemas.walkThroughSnippet,e.Schemas.vscodeChatCodeBlock,e.Schemas.vscodeChatCodeCompareBlock)}async function Zh(t,n,r,i,a){let o=r.ordered(t,i).map(r=>Promise.resolve(a(r,t,n)).then(void 0,t=>{e.onUnexpectedExternalError(t)})),s=await Promise.all(o);return e.coalesce(s.flat()).filter(e=>Xh(t,e))}function Qh(e,t,n,r,i){return Zh(t,n,e,r,(e,t,n)=>e.provideDefinition(t,n,i))}function $h(e,t,n,r,i){return Zh(t,n,e,r,(e,t,n)=>e.provideDeclaration(t,n,i))}function eg(e,t,n,r,i){return Zh(t,n,e,r,(e,t,n)=>e.provideImplementation(t,n,i))}function tg(e,t,n,r,i){return Zh(t,n,e,r,(e,t,n)=>e.provideTypeDefinition(t,n,i))}function ng(e,t,n,r,i,a){return Zh(t,n,e,i,async(e,t,n)=>{let i=(await e.provideReferences(t,n,{includeDeclaration:!0},a))?.filter(e=>Xh(t,e));if(!r||!i||i.length!==2)return i;let o=(await e.provideReferences(t,n,{includeDeclaration:!1},a))?.filter(e=>Xh(t,e));return o&&o.length===1?o:i})}async function rg(e){let t=await e(),n=new yh(t,``),r=n.references.map(e=>e.link);return n.dispose(),r}e.registerModelAndPositionCommand(`_executeDefinitionProvider`,(t,n,r)=>{let i=t.get(e.ILanguageFeaturesService),a=Qh(i.definitionProvider,n,r,!1,e.CancellationToken.None);return rg(()=>a)}),e.registerModelAndPositionCommand(`_executeDefinitionProvider_recursive`,(t,n,r)=>{let i=t.get(e.ILanguageFeaturesService),a=Qh(i.definitionProvider,n,r,!0,e.CancellationToken.None);return rg(()=>a)}),e.registerModelAndPositionCommand(`_executeTypeDefinitionProvider`,(t,n,r)=>{let i=t.get(e.ILanguageFeaturesService),a=tg(i.typeDefinitionProvider,n,r,!1,e.CancellationToken.None);return rg(()=>a)}),e.registerModelAndPositionCommand(`_executeTypeDefinitionProvider_recursive`,(t,n,r)=>{let i=t.get(e.ILanguageFeaturesService),a=tg(i.typeDefinitionProvider,n,r,!0,e.CancellationToken.None);return rg(()=>a)}),e.registerModelAndPositionCommand(`_executeDeclarationProvider`,(t,n,r)=>{let i=t.get(e.ILanguageFeaturesService),a=$h(i.declarationProvider,n,r,!1,e.CancellationToken.None);return rg(()=>a)}),e.registerModelAndPositionCommand(`_executeDeclarationProvider_recursive`,(t,n,r)=>{let i=t.get(e.ILanguageFeaturesService),a=$h(i.declarationProvider,n,r,!0,e.CancellationToken.None);return rg(()=>a)}),e.registerModelAndPositionCommand(`_executeReferenceProvider`,(t,n,r)=>{let i=t.get(e.ILanguageFeaturesService),a=ng(i.referenceProvider,n,r,!1,!1,e.CancellationToken.None);return rg(()=>a)}),e.registerModelAndPositionCommand(`_executeReferenceProvider_recursive`,(t,n,r)=>{let i=t.get(e.ILanguageFeaturesService),a=ng(i.referenceProvider,n,r,!1,!0,e.CancellationToken.None);return rg(()=>a)}),e.registerModelAndPositionCommand(`_executeImplementationProvider`,(t,n,r)=>{let i=t.get(e.ILanguageFeaturesService),a=eg(i.implementationProvider,n,r,!1,e.CancellationToken.None);return rg(()=>a)}),e.registerModelAndPositionCommand(`_executeImplementationProvider_recursive`,(t,n,r)=>{let i=t.get(e.ILanguageFeaturesService),a=eg(i.implementationProvider,n,r,!0,e.CancellationToken.None);return rg(()=>a)}),e.MenuRegistry.appendMenuItem(e.MenuId.EditorContext,{submenu:e.MenuId.EditorContextPeek,title:e.localize(`peek.submenu`,`Peek`),group:`navigation`,order:100});var ig=class t{static is(n){return!n||typeof n!=`object`?!1:!!(n instanceof t||e.Position$1.isIPosition(n.position)&&n.model)}constructor(e,t){this.model=e,this.position=t}},ag=class t extends e.EditorAction2{static{this._allSymbolNavigationCommands=new Map}static{this._activeAlternativeCommands=new Set}static all(){return t._allSymbolNavigationCommands.values()}static _patchConfig(t){let n={...t,f1:!0};if(n.menu)for(let r of e.Iterable.wrap(n.menu))(r.id===e.MenuId.EditorContext||r.id===e.MenuId.EditorContextPeek)&&(r.when=e.ContextKeyExpr.and(t.precondition,r.when));return n}constructor(e,n){super(t._patchConfig(n)),this.configuration=e,t._allSymbolNavigationCommands.set(n.id,this)}runEditorCommand(n,r,i,a){if(!r.hasModel())return Promise.resolve(void 0);let o=n.get(e.INotificationService),s=n.get(e.ICodeEditorService),c=n.get(e.IEditorProgressService),l=n.get(qh),u=n.get(e.ILanguageFeaturesService),d=n.get(e.IInstantiationService),f=r.getModel(),p=r.getPosition(),m=ig.is(i)?i:new ig(f,p),h=new e.EditorStateCancellationTokenSource(r,5),g=e.raceCancellation(this._getLocationModel(u,m.model,m.position,h.token),h.token).then(async n=>{if(!n||h.token.isCancellationRequested)return;e.alert(n.ariaMessage);let o;if(n.referenceAt(f.uri,p)){let e=this._getAlternativeCommand(r);!t._activeAlternativeCommands.has(e)&&t._allSymbolNavigationCommands.has(e)&&(o=t._allSymbolNavigationCommands.get(e))}let c=n.references.length;if(c===0){if(!this.configuration.muteMessage){let e=f.getWordAtPosition(p);Nl.get(r)?.showMessage(this._getNoResultFoundMessage(e),p)}}else if(c===1&&o)t._activeAlternativeCommands.add(this.desc.id),d.invokeFunction(e=>o.runEditorCommand(e,r,i,a).finally(()=>{t._activeAlternativeCommands.delete(this.desc.id)}));else return this._onResult(s,l,r,n,a)},e=>{o.error(e)}).finally(()=>{h.dispose()});return c.showWhile(g,250),g}async _onResult(e,t,n,r,i){let a=this._getGoToPreference(n);if(!(n instanceof zm)&&(this.configuration.openInPeek||a===`peek`&&r.references.length>1))this._openInPeek(n,r,i);else{let o=r.firstReference(),s=r.references.length>1&&a===`gotoAndPeek`,c=await this._openReference(n,e,o,this.configuration.openToSide,!s);s&&c?this._openInPeek(c,r,i):r.dispose(),a===`goto`&&t.put(o)}}async _openReference(t,n,r,i,a){let o;if(e.isLocationLink(r)&&(o=r.targetSelectionRange),o||=r.range,!o)return;let s=await n.openCodeEditor({resource:r.uri,options:{selection:e.Range$1.collapseToStart(o),selectionRevealType:3,selectionSource:`code.jump`}},t,i);if(s){if(a){let e=s.getModel(),t=s.createDecorationsCollection([{range:o,options:{description:`symbol-navigate-action-highlight`,className:`symbolHighlight`}}]);setTimeout(()=>{s.getModel()===e&&t.clear()},350)}return s}}_openInPeek(t,n,r){let i=Hh.get(t);i&&t.hasModel()?i.toggleWidget(r??t.getSelection(),e.createCancelablePromise(e=>Promise.resolve(n)),this.configuration.openInPeek):n.dispose()}},og=class extends ag{async _getLocationModel(t,n,r,i){return new yh(await Qh(t.definitionProvider,n,r,!1,i),e.localize(`def.title`,`Definitions`))}_getNoResultFoundMessage(t){return t&&t.word?e.localize(`noResultWord`,`No definition found for '{0}'`,t.word):e.localize(`generic.noResults`,`No definition found`)}_getAlternativeCommand(e){return e.getOption(58).alternativeDefinitionCommand}_getGoToPreference(e){return e.getOption(58).multipleDefinitions}};e.registerAction2(class t extends og{static{this.id=`editor.action.revealDefinition`}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:t.id,title:{...e.localize2(`actions.goToDecl.label`,`Go to Definition`),mnemonicTitle:e.localize({key:`miGotoDefinition`,comment:[`&& denotes a mnemonic`]},`Go to &&Definition`)},precondition:e.EditorContextKeys.hasDefinitionProvider,keybinding:[{when:e.EditorContextKeys.editorTextFocus,primary:70,weight:100},{when:e.ContextKeyExpr.and(e.EditorContextKeys.editorTextFocus,e.IsWebContext),primary:2118,weight:100}],menu:[{id:e.MenuId.EditorContext,group:`navigation`,order:1.1},{id:e.MenuId.MenubarGoMenu,precondition:null,group:`4_symbol_nav`,order:2}]}),e.CommandsRegistry.registerCommandAlias(`editor.action.goToDeclaration`,t.id)}}),e.registerAction2(class t extends og{static{this.id=`editor.action.revealDefinitionAside`}constructor(){super({openToSide:!0,openInPeek:!1,muteMessage:!1},{id:t.id,title:e.localize2(`actions.goToDeclToSide.label`,`Open Definition to the Side`),precondition:e.ContextKeyExpr.and(e.EditorContextKeys.hasDefinitionProvider,e.EditorContextKeys.isInEmbeddedEditor.toNegated()),keybinding:[{when:e.EditorContextKeys.editorTextFocus,primary:e.KeyChord(2089,70),weight:100},{when:e.ContextKeyExpr.and(e.EditorContextKeys.editorTextFocus,e.IsWebContext),primary:e.KeyChord(2089,2118),weight:100}]}),e.CommandsRegistry.registerCommandAlias(`editor.action.openDeclarationToTheSide`,t.id)}}),e.registerAction2(class t extends og{static{this.id=`editor.action.peekDefinition`}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:t.id,title:e.localize2(`actions.previewDecl.label`,`Peek Definition`),precondition:e.ContextKeyExpr.and(e.EditorContextKeys.hasDefinitionProvider,Xm.notInPeekEditor,e.EditorContextKeys.isInEmbeddedEditor.toNegated()),keybinding:{when:e.EditorContextKeys.editorTextFocus,primary:582,linux:{primary:3140},weight:100},menu:{id:e.MenuId.EditorContextPeek,group:`peek`,order:2}}),e.CommandsRegistry.registerCommandAlias(`editor.action.previewDeclaration`,t.id)}});var sg=class extends ag{async _getLocationModel(t,n,r,i){return new yh(await $h(t.declarationProvider,n,r,!1,i),e.localize(`decl.title`,`Declarations`))}_getNoResultFoundMessage(t){return t&&t.word?e.localize(`decl.noResultWord`,`No declaration found for '{0}'`,t.word):e.localize(`decl.generic.noResults`,`No declaration found`)}_getAlternativeCommand(e){return e.getOption(58).alternativeDeclarationCommand}_getGoToPreference(e){return e.getOption(58).multipleDeclarations}};e.registerAction2(class t extends sg{static{this.id=`editor.action.revealDeclaration`}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:t.id,title:{...e.localize2(`actions.goToDeclaration.label`,`Go to Declaration`),mnemonicTitle:e.localize({key:`miGotoDeclaration`,comment:[`&& denotes a mnemonic`]},`Go to &&Declaration`)},precondition:e.ContextKeyExpr.and(e.EditorContextKeys.hasDeclarationProvider,e.EditorContextKeys.isInEmbeddedEditor.toNegated()),menu:[{id:e.MenuId.EditorContext,group:`navigation`,order:1.3},{id:e.MenuId.MenubarGoMenu,precondition:null,group:`4_symbol_nav`,order:3}]})}_getNoResultFoundMessage(t){return t&&t.word?e.localize(`decl.noResultWord`,`No declaration found for '{0}'`,t.word):e.localize(`decl.generic.noResults`,`No declaration found`)}}),e.registerAction2(class extends sg{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:`editor.action.peekDeclaration`,title:e.localize2(`actions.peekDecl.label`,`Peek Declaration`),precondition:e.ContextKeyExpr.and(e.EditorContextKeys.hasDeclarationProvider,Xm.notInPeekEditor,e.EditorContextKeys.isInEmbeddedEditor.toNegated()),menu:{id:e.MenuId.EditorContextPeek,group:`peek`,order:3}})}});var cg=class extends ag{async _getLocationModel(t,n,r,i){return new yh(await tg(t.typeDefinitionProvider,n,r,!1,i),e.localize(`typedef.title`,`Type Definitions`))}_getNoResultFoundMessage(t){return t&&t.word?e.localize(`goToTypeDefinition.noResultWord`,`No type definition found for '{0}'`,t.word):e.localize(`goToTypeDefinition.generic.noResults`,`No type definition found`)}_getAlternativeCommand(e){return e.getOption(58).alternativeTypeDefinitionCommand}_getGoToPreference(e){return e.getOption(58).multipleTypeDefinitions}};e.registerAction2(class t extends cg{static{this.ID=`editor.action.goToTypeDefinition`}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:t.ID,title:{...e.localize2(`actions.goToTypeDefinition.label`,`Go to Type Definition`),mnemonicTitle:e.localize({key:`miGotoTypeDefinition`,comment:[`&& denotes a mnemonic`]},`Go to &&Type Definition`)},precondition:e.EditorContextKeys.hasTypeDefinitionProvider,keybinding:{when:e.EditorContextKeys.editorTextFocus,primary:0,weight:100},menu:[{id:e.MenuId.EditorContext,group:`navigation`,order:1.4},{id:e.MenuId.MenubarGoMenu,precondition:null,group:`4_symbol_nav`,order:3}]})}}),e.registerAction2(class t extends cg{static{this.ID=`editor.action.peekTypeDefinition`}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:t.ID,title:e.localize2(`actions.peekTypeDefinition.label`,`Peek Type Definition`),precondition:e.ContextKeyExpr.and(e.EditorContextKeys.hasTypeDefinitionProvider,Xm.notInPeekEditor,e.EditorContextKeys.isInEmbeddedEditor.toNegated()),menu:{id:e.MenuId.EditorContextPeek,group:`peek`,order:4}})}});var lg=class extends ag{async _getLocationModel(t,n,r,i){return new yh(await eg(t.implementationProvider,n,r,!1,i),e.localize(`impl.title`,`Implementations`))}_getNoResultFoundMessage(t){return t&&t.word?e.localize(`goToImplementation.noResultWord`,`No implementation found for '{0}'`,t.word):e.localize(`goToImplementation.generic.noResults`,`No implementation found`)}_getAlternativeCommand(e){return e.getOption(58).alternativeImplementationCommand}_getGoToPreference(e){return e.getOption(58).multipleImplementations}};e.registerAction2(class t extends lg{static{this.ID=`editor.action.goToImplementation`}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:t.ID,title:{...e.localize2(`actions.goToImplementation.label`,`Go to Implementations`),mnemonicTitle:e.localize({key:`miGotoImplementation`,comment:[`&& denotes a mnemonic`]},`Go to &&Implementations`)},precondition:e.EditorContextKeys.hasImplementationProvider,keybinding:{when:e.EditorContextKeys.editorTextFocus,primary:2118,weight:100},menu:[{id:e.MenuId.EditorContext,group:`navigation`,order:1.45},{id:e.MenuId.MenubarGoMenu,precondition:null,group:`4_symbol_nav`,order:4}]})}}),e.registerAction2(class t extends lg{static{this.ID=`editor.action.peekImplementation`}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:t.ID,title:e.localize2(`actions.peekImplementation.label`,`Peek Implementations`),precondition:e.ContextKeyExpr.and(e.EditorContextKeys.hasImplementationProvider,Xm.notInPeekEditor,e.EditorContextKeys.isInEmbeddedEditor.toNegated()),keybinding:{when:e.EditorContextKeys.editorTextFocus,primary:3142,weight:100},menu:{id:e.MenuId.EditorContextPeek,group:`peek`,order:5}})}});var ug=class extends ag{_getNoResultFoundMessage(t){return t?e.localize(`references.no`,`No references found for '{0}'`,t.word):e.localize(`references.noGeneric`,`No references found`)}_getAlternativeCommand(e){return e.getOption(58).alternativeReferenceCommand}_getGoToPreference(e){return e.getOption(58).multipleReferences}};e.registerAction2(class extends ug{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:`editor.action.goToReferences`,title:{...e.localize2(`goToReferences.label`,`Go to References`),mnemonicTitle:e.localize({key:`miGotoReference`,comment:[`&& denotes a mnemonic`]},`Go to &&References`)},precondition:e.ContextKeyExpr.and(e.EditorContextKeys.hasReferenceProvider,Xm.notInPeekEditor,e.EditorContextKeys.isInEmbeddedEditor.toNegated()),keybinding:{when:e.EditorContextKeys.editorTextFocus,primary:1094,weight:100},menu:[{id:e.MenuId.EditorContext,group:`navigation`,order:1.45},{id:e.MenuId.MenubarGoMenu,precondition:null,group:`4_symbol_nav`,order:5}]})}async _getLocationModel(t,n,r,i){return new yh(await ng(t.referenceProvider,n,r,!0,!1,i),e.localize(`ref.title`,`References`))}}),e.registerAction2(class extends ug{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:`editor.action.referenceSearch.trigger`,title:e.localize2(`references.action.label`,`Peek References`),precondition:e.ContextKeyExpr.and(e.EditorContextKeys.hasReferenceProvider,Xm.notInPeekEditor,e.EditorContextKeys.isInEmbeddedEditor.toNegated()),menu:{id:e.MenuId.EditorContextPeek,group:`peek`,order:6}})}async _getLocationModel(t,n,r,i){return new yh(await ng(t.referenceProvider,n,r,!1,!1,i),e.localize(`ref.title`,`References`))}});var dg=class extends ag{constructor(t,n,r){super(t,{id:`editor.action.goToLocation`,title:e.localize2(`label.generic`,`Go to Any Symbol`),precondition:e.ContextKeyExpr.and(Xm.notInPeekEditor,e.EditorContextKeys.isInEmbeddedEditor.toNegated())}),this._references=n,this._gotoMultipleBehaviour=r}async _getLocationModel(t,n,r,i){return new yh(this._references,e.localize(`generic.title`,`Locations`))}_getNoResultFoundMessage(t){return t&&e.localize(`generic.noResult`,`No results for '{0}'`,t.word)||``}_getGoToPreference(e){return this._gotoMultipleBehaviour??e.getOption(58).multipleReferences}_getAlternativeCommand(){return``}};e.CommandsRegistry.registerCommand({id:`editor.action.goToLocations`,metadata:{description:`Go to locations from a position in a file`,args:[{name:`uri`,description:`The text document in which to start`,constraint:e.URI},{name:`position`,description:`The position at which to start`,constraint:e.Position$1.isIPosition},{name:`locations`,description:`An array of locations.`,constraint:Array},{name:`multiple`,description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`"},{name:`noResultsMessage`,description:`Human readable message that shows when locations is empty.`}]},handler:async(t,n,r,i,a,o,s)=>{e.assertType(e.URI.isUri(n)),e.assertType(e.Position$1.isIPosition(r)),e.assertType(Array.isArray(i)),e.assertType(a===void 0||typeof a==`string`),e.assertType(s===void 0||typeof s==`boolean`);let c=t.get(e.ICodeEditorService),l=await c.openCodeEditor({resource:n},c.getFocusedCodeEditor());if(e.isCodeEditor(l))return l.setPosition(r),l.revealPositionInCenterIfOutsideViewport(r,0),l.invokeWithinContext(t=>{let n=new class extends dg{_getNoResultFoundMessage(e){return o||super._getNoResultFoundMessage(e)}}({muteMessage:!o,openInPeek:!!s,openToSide:!1},i,a);t.get(e.IInstantiationService).invokeFunction(n.run.bind(n),l)})}}),e.CommandsRegistry.registerCommand({id:`editor.action.peekLocations`,metadata:{description:`Peek locations from a position in a file`,args:[{name:`uri`,description:`The text document in which to start`,constraint:e.URI},{name:`position`,description:`The position at which to start`,constraint:e.Position$1.isIPosition},{name:`locations`,description:`An array of locations.`,constraint:Array},{name:`multiple`,description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`"}]},handler:async(t,n,r,i,a)=>{t.get(e.ICommandService).executeCommand(`editor.action.goToLocations`,n,r,i,a,void 0,!0)}}),e.CommandsRegistry.registerCommand({id:`editor.action.findReferences`,handler:(t,n,r)=>{e.assertType(e.URI.isUri(n)),e.assertType(e.Position$1.isIPosition(r));let i=t.get(e.ILanguageFeaturesService),a=t.get(e.ICodeEditorService);return a.openCodeEditor({resource:n},a.getFocusedCodeEditor()).then(t=>{if(!e.isCodeEditor(t)||!t.hasModel())return;let n=Hh.get(t);if(!n)return;let a=e.createCancelablePromise(n=>ng(i.referenceProvider,t.getModel(),e.Position$1.lift(r),!1,!1,n).then(t=>new yh(t,e.localize(`ref.title`,`References`)))),o=new e.Range$1(r.lineNumber,r.column,r.lineNumber,r.column);return Promise.resolve(n.toggleWidget(o,a,!1))})}}),e.CommandsRegistry.registerCommandAlias(`editor.action.showReferences`,`editor.action.peekLocations`);async function fg(t,n,r,i){let a=t.get(e.ITextModelService),o=t.get(e.IContextMenuService),s=t.get(e.ICommandService),c=t.get(e.IInstantiationService),l=t.get(e.INotificationService);if(await i.item.resolve(e.CancellationToken.None),!i.part.location)return;let u=i.part.location,d=[],f=new Set(e.MenuRegistry.getMenuItems(e.MenuId.EditorContext).map(t=>e.isIMenuItem(t)?t.command.id:zc()));for(let t of ag.all())f.has(t.desc.id)&&d.push(new e.Action(t.desc.id,e.MenuItemAction.label(t.desc,{renderShortTitle:!0}),void 0,!0,async()=>{let r=await a.createModelReference(u.uri);try{let a=new ig(r.object.textEditorModel,e.Range$1.getStartPosition(u.range)),o=i.item.anchor.range;await c.invokeFunction(t.runEditorCommand.bind(t),n,a,o)}finally{r.dispose()}}));if(i.part.command){let{command:t}=i.part;d.push(new e.Separator),d.push(new e.Action(t.id,t.title,void 0,!0,async()=>{try{await s.executeCommand(t.id,...t.arguments??[])}catch(t){l.notify({severity:e.Severity.Error,source:i.item.provider.displayName,message:t})}}))}let p=n.getOption(128);o.showContextMenu({domForShadowRoot:p?n.getDomNode()??void 0:void 0,getAnchor:()=>{let t=e.getDomNodePagePosition(r);return{x:t.left,y:t.top+t.height+8}},getActions:()=>d,onHide:()=>{n.focus()},autoSelectFirstItem:!0})}async function pg(t,n,r,i){let a=await t.get(e.ITextModelService).createModelReference(i.uri);await r.invokeWithinContext(async t=>{let o=n.hasSideBySideModifier,s=t.get(e.IContextKeyService),c=Xm.inPeekEditor.getValue(s),l=!o&&r.getOption(89)&&!c;return new og({openToSide:o,openInPeek:l,muteMessage:!0},{title:{value:``,original:``},id:``,precondition:void 0}).run(t,new ig(a.object.textEditorModel,e.Range$1.getStartPosition(i.range)),e.Range$1.lift(i.range))}),a.dispose()}var mg=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},hg=function(e,t){return function(n,r){t(n,r,e)}},gg,_g=class t{constructor(){this._entries=new e.LRUCache(50)}get(e){let n=t._key(e);return this._entries.get(n)}set(e,n){let r=t._key(e);this._entries.set(r,n)}static _key(e){return`${e.uri.toString()}/${e.getVersionId()}`}},vg=e.createDecorator(`IInlayHintsCache`);e.registerSingleton(vg,_g,1);var yg=class{constructor(e,t){this.item=e,this.index=t}get part(){let e=this.item.hint.label;return typeof e==`string`?{label:e}:e[this.index]}},bg=class{constructor(e,t){this.part=e,this.hasTriggerModifier=t}},xg=class{static{gg=this}static{this.ID=`editor.contrib.InlayHints`}static{this._MAX_DECORATORS=1500}static{this._MAX_LABEL_LEN=43}static get(e){return e.getContribution(gg.ID)??void 0}constructor(t,n,r,i,a,o,s){this._editor=t,this._languageFeaturesService=n,this._inlayHintsCache=i,this._commandService=a,this._notificationService=o,this._instaService=s,this._disposables=new e.DisposableStore,this._sessionDisposables=new e.DisposableStore,this._decorationsMetadata=new Map,this._ruleFactory=new e.DynamicCssRules(this._editor),this._activeRenderMode=0,this._debounceInfo=r.for(n.inlayHintsProvider,`InlayHint`,{min:25}),this._disposables.add(n.inlayHintsProvider.onDidChange(()=>this._update())),this._disposables.add(t.onDidChangeModel(()=>this._update())),this._disposables.add(t.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(t.onDidChangeConfiguration(e=>{e.hasChanged(142)&&this._update()})),this._update()}dispose(){this._sessionDisposables.dispose(),this._removeAllDecorations(),this._disposables.dispose()}_update(){this._sessionDisposables.clear(),this._removeAllDecorations();let t=this._editor.getOption(142);if(t.enabled===`off`)return;let n=this._editor.getModel();if(!n||!this._languageFeaturesService.inlayHintsProvider.has(n))return;if(t.enabled===`on`)this._activeRenderMode=0;else{let n,r;t.enabled===`onUnlessPressed`?(n=0,r=1):(n=1,r=0),this._activeRenderMode=n,this._sessionDisposables.add(e.ModifierKeyEmitter.getInstance().event(e=>{if(!this._editor.hasModel())return;let t=e.altKey&&e.ctrlKey&&!(e.shiftKey||e.metaKey)?r:n;if(t!==this._activeRenderMode){this._activeRenderMode=t;let e=this._editor.getModel(),n=this._copyInlayHintsWithCurrentAnchor(e);this._updateHintsDecorators([e.getFullModelRange()],n),o.schedule(0)}}))}let r=this._inlayHintsCache.get(n);r&&this._updateHintsDecorators([n.getFullModelRange()],r),this._sessionDisposables.add(e.toDisposable(()=>{n.isDisposed()||this._cacheHintsForFastRestore(n)}));let i,a=new Set,o=new e.RunOnceScheduler(async()=>{let t=Date.now();i?.dispose(!0),i=new e.CancellationTokenSource$1;let r=n.onWillDispose(()=>i?.cancel());try{let e=i.token,r=await Fm.create(this._languageFeaturesService.inlayHintsProvider,n,this._getHintsRanges(),e);if(o.delay=this._debounceInfo.update(n,Date.now()-t),e.isCancellationRequested){r.dispose();return}for(let e of r.provider)typeof e.onDidChangeInlayHints==`function`&&!a.has(e)&&(a.add(e),this._sessionDisposables.add(e.onDidChangeInlayHints(()=>{o.isScheduled()||o.schedule()})));this._sessionDisposables.add(r),this._updateHintsDecorators(r.ranges,r.items),this._cacheHintsForFastRestore(n)}catch(t){e.onUnexpectedError(t)}finally{i.dispose(),r.dispose()}},this._debounceInfo.get(n));this._sessionDisposables.add(o),this._sessionDisposables.add(e.toDisposable(()=>i?.dispose(!0))),o.schedule(0),this._sessionDisposables.add(this._editor.onDidScrollChange(e=>{(e.scrollTopChanged||!o.isScheduled())&&o.schedule()})),this._sessionDisposables.add(this._editor.onDidChangeModelContent(e=>{i?.cancel();let t=Math.max(o.delay,1250);o.schedule(t)})),this._sessionDisposables.add(this._installDblClickGesture(()=>o.schedule(0))),this._sessionDisposables.add(this._installLinkGesture()),this._sessionDisposables.add(this._installContextMenu())}_installLinkGesture(){let t=new e.DisposableStore,n=t.add(new Mm(this._editor)),r=new e.DisposableStore;return t.add(r),t.add(n.onMouseMoveOrRelevantKeyDown(t=>{let[n]=t,i=this._getInlayHintLabelPart(n),a=this._editor.getModel();if(!i||!a){r.clear();return}let o=new e.CancellationTokenSource$1;r.add(e.toDisposable(()=>o.dispose(!0))),i.item.resolve(o.token),this._activeInlayHintPart=i.part.command||i.part.location?new bg(i,n.hasTriggerModifier):void 0;let s=a.validatePosition(i.item.hint.position).lineNumber,c=new e.Range$1(s,1,s,a.getLineMaxColumn(s)),l=this._getInlineHintsForRange(c);this._updateHintsDecorators([c],l),r.add(e.toDisposable(()=>{this._activeInlayHintPart=void 0,this._updateHintsDecorators([c],l)}))})),t.add(n.onCancel(()=>r.clear())),t.add(n.onExecute(async t=>{let n=this._getInlayHintLabelPart(t);if(n){let r=n.part;r.location?this._instaService.invokeFunction(pg,t,this._editor,r.location):e.Command.is(r.command)&&await this._invokeCommand(r.command,n.item)}})),t}_getInlineHintsForRange(e){let t=new Set;for(let n of this._decorationsMetadata.values())e.containsRange(n.item.anchor.range)&&t.add(n.item);return Array.from(t)}_installDblClickGesture(t){return this._editor.onMouseUp(async n=>{if(n.event.detail!==2)return;let r=this._getInlayHintLabelPart(n);if(r&&(n.event.preventDefault(),await r.item.resolve(e.CancellationToken.None),e.isNonEmptyArray(r.item.hint.textEdits))){let n=r.item.hint.textEdits.map(t=>e.EditOperation.replace(e.Range$1.lift(t.range),t.text));this._editor.executeEdits(`inlayHint.default`,n),t()}})}_installContextMenu(){return this._editor.onContextMenu(async t=>{if(!e.isHTMLElement(t.event.target))return;let n=this._getInlayHintLabelPart(t);n&&await this._instaService.invokeFunction(fg,this._editor,t.event.target,n)})}_getInlayHintLabelPart(t){if(t.target.type!==6)return;let n=t.target.detail.injectedText?.options;if(n instanceof e.ModelDecorationInjectedTextOptions&&n?.attachedData instanceof yg)return n.attachedData}async _invokeCommand(t,n){try{await this._commandService.executeCommand(t.id,...t.arguments??[])}catch(t){this._notificationService.notify({severity:e.Severity.Error,source:n.provider.displayName,message:t})}}_cacheHintsForFastRestore(e){let t=this._copyInlayHintsWithCurrentAnchor(e);this._inlayHintsCache.set(e,t)}_copyInlayHintsWithCurrentAnchor(e){let t=new Map;for(let[n,r]of this._decorationsMetadata){if(t.has(r.item))continue;let i=e.getDecorationRange(n);if(i){let e=new Nm(i,r.item.anchor.direction),n=r.item.with({anchor:e});t.set(r.item,n)}}return Array.from(t.values())}_getHintsRanges(){let t=this._editor.getModel(),n=this._editor.getVisibleRangesPlusViewportAboveBelow(),r=[];for(let i of n.sort(e.Range$1.compareRangesUsingStarts)){let n=t.validateRange(new e.Range$1(i.startLineNumber-30,i.startColumn,i.endLineNumber+30,i.endColumn));r.length===0||!e.Range$1.areIntersectingOrTouching(r[r.length-1],n)?r.push(n):r[r.length-1]=e.Range$1.plusRange(r[r.length-1],n)}return r}_updateHintsDecorators(t,n){let r=[],i=(e,t,n,i,a)=>{let o={content:n,inlineClassNameAffectsLetterSpacing:!0,inlineClassName:t.className,cursorStops:i,attachedData:a};r.push({item:e,classNameRef:t,decoration:{range:e.anchor.range,options:{description:`InlayHint`,showIfCollapsed:e.anchor.range.isEmpty(),collapseOnReplaceEdit:!e.anchor.range.isEmpty(),stickiness:0,[e.anchor.direction]:this._activeRenderMode===0?o:void 0}}})},a=(t,n)=>{let r=this._ruleFactory.createClassNameRef({width:`${o/3|0}px`,display:`inline-block`});i(t,r,` `,n?e.InjectedTextCursorStops.Right:e.InjectedTextCursorStops.None)},{fontSize:o,fontFamily:s,padding:c,isUniform:l}=this._getLayoutInfo(),u=`--code-editorInlayHintsFontFamily`;this._editor.getContainerDomNode().style.setProperty(u,s);let d={line:0,totalLen:0};for(let t of n){if(d.line!==t.anchor.range.startLineNumber&&(d={line:t.anchor.range.startLineNumber,totalLen:0}),d.totalLen>gg._MAX_LABEL_LEN)continue;t.hint.paddingLeft&&a(t,!1);let n=typeof t.hint.label==`string`?[{label:t.hint.label}]:t.hint.label;for(let r=0;r<n.length;r++){let a=n[r],s=r===0,f=r===n.length-1,p={fontSize:`${o}px`,fontFamily:`var(${u}), ${e.EDITOR_FONT_DEFAULTS.fontFamily}`,verticalAlign:l?`baseline`:`middle`,unicodeBidi:`isolate`};e.isNonEmptyArray(t.hint.textEdits)&&(p.cursor=`default`),this._fillInColors(p,t.hint),(a.command||a.location)&&this._activeInlayHintPart?.part.item===t&&this._activeInlayHintPart.part.index===r&&(p.textDecoration=`underline`,this._activeInlayHintPart.hasTriggerModifier&&(p.color=e.themeColorFromId(e.editorActiveLinkForeground),p.cursor=`pointer`)),c&&(s&&f?(p.padding=`1px ${Math.max(1,o/4)|0}px`,p.borderRadius=`${o/4|0}px`):s?(p.padding=`1px 0 1px ${Math.max(1,o/4)|0}px`,p.borderRadius=`${o/4|0}px 0 0 ${o/4|0}px`):f?(p.padding=`1px ${Math.max(1,o/4)|0}px 1px 0`,p.borderRadius=`0 ${o/4|0}px ${o/4|0}px 0`):p.padding=`1px 0 1px 0`);let m=a.label;d.totalLen+=m.length;let h=!1,g=d.totalLen-gg._MAX_LABEL_LEN;if(g>0&&(m=m.slice(0,-g)+`…`,h=!0),i(t,this._ruleFactory.createClassNameRef(p),Sg(m),f&&!t.hint.paddingRight?e.InjectedTextCursorStops.Right:e.InjectedTextCursorStops.None,new yg(t,r)),h)break}if(t.hint.paddingRight&&a(t,!0),r.length>gg._MAX_DECORATORS)break}let f=[];for(let[e,n]of this._decorationsMetadata){let r=this._editor.getModel()?.getDecorationRange(e);r&&t.some(e=>e.containsRange(r))&&(f.push(e),n.classNameRef.dispose(),this._decorationsMetadata.delete(e))}let p=e.StableEditorScrollState.capture(this._editor);this._editor.changeDecorations(e=>{let t=e.deltaDecorations(f,r.map(e=>e.decoration));for(let e=0;e<t.length;e++){let n=r[e];this._decorationsMetadata.set(t[e],n)}}),p.restore(this._editor)}_fillInColors(t,n){n.kind===e.InlayHintKind.Parameter?(t.backgroundColor=e.themeColorFromId(e.editorInlayHintParameterBackground),t.color=e.themeColorFromId(e.editorInlayHintParameterForeground)):n.kind===e.InlayHintKind.Type?(t.backgroundColor=e.themeColorFromId(e.editorInlayHintTypeBackground),t.color=e.themeColorFromId(e.editorInlayHintTypeForeground)):(t.backgroundColor=e.themeColorFromId(e.editorInlayHintBackground),t.color=e.themeColorFromId(e.editorInlayHintForeground))}_getLayoutInfo(){let e=this._editor.getOption(142),t=e.padding,n=this._editor.getOption(52),r=this._editor.getOption(49),i=e.fontSize;(!i||i<5||i>n)&&(i=n);let a=e.fontFamily||r;return{fontSize:i,fontFamily:a,padding:t,isUniform:!t&&a===r&&i===n}}_removeAllDecorations(){this._editor.removeDecorations(Array.from(this._decorationsMetadata.keys()));for(let e of this._decorationsMetadata.values())e.classNameRef.dispose();this._decorationsMetadata.clear()}};xg=gg=mg([hg(1,e.ILanguageFeaturesService),hg(2,e.ILanguageFeatureDebounceService),hg(3,vg),hg(4,e.ICommandService),hg(5,e.INotificationService),hg(6,e.IInstantiationService)],xg);function Sg(e){return e.replace(/[ \t]/g,`\xA0`)}e.CommandsRegistry.registerCommand(`_executeInlayHintProvider`,async(t,...n)=>{let[r,i]=n;e.assertType(e.URI.isUri(r)),e.assertType(e.Range$1.isIRange(i));let{inlayHintsProvider:a}=t.get(e.ILanguageFeaturesService),o=await t.get(e.ITextModelService).createModelReference(r);try{let t=await Fm.create(a,o.object.textEditorModel,[e.Range$1.lift(i)],e.CancellationToken.None),n=t.items.map(e=>e.hint);return setTimeout(()=>t.dispose(),0),n}finally{o.dispose()}});var Cg=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},wg=function(e,t){return function(n,r){t(n,r,e)}},Tg=class extends np{constructor(e,t,n,r){super(10,t,e.item.anchor.range,n,r,!0),this.part=e}},Eg=class extends xm{constructor(e,t,n,r,i,a,o,s,c){super(e,t,n,a,s,r,i,c),this._resolverService=o,this.hoverOrdinal=6}suggestHoverAnchor(t){if(!xg.get(this._editor)||t.target.type!==6)return null;let n=t.target.detail.injectedText?.options;return n instanceof e.ModelDecorationInjectedTextOptions&&n.attachedData instanceof yg?new Tg(n.attachedData,this,t.event.posx,t.event.posy):null}computeSync(){return[]}computeAsync(t,n,r){return t instanceof Tg?new e.AsyncIterableObject(async n=>{let{part:i}=t;if(await i.item.resolve(r),r.isCancellationRequested)return;let a;typeof i.item.hint.tooltip==`string`?a=new e.MarkdownString().appendText(i.item.hint.tooltip):i.item.hint.tooltip&&(a=i.item.hint.tooltip),a&&n.emitOne(new ym(this,t.range,[a],!1,0)),e.isNonEmptyArray(i.item.hint.textEdits)&&n.emitOne(new ym(this,t.range,[new e.MarkdownString().appendText(e.localize(`hint.dbl`,`Double-click to insert`))],!1,10001));let o;if(typeof i.part.tooltip==`string`?o=new e.MarkdownString().appendText(i.part.tooltip):i.part.tooltip&&(o=i.part.tooltip),o&&n.emitOne(new ym(this,t.range,[o],!1,1)),i.part.location||i.part.command){let r,a=this._editor.getOption(78)===`altKey`?e.isMacintosh?e.localize(`links.navigate.kb.meta.mac`,`cmd + click`):e.localize(`links.navigate.kb.meta`,`ctrl + click`):e.isMacintosh?e.localize(`links.navigate.kb.alt.mac`,`option + click`):e.localize(`links.navigate.kb.alt`,`alt + click`);i.part.location&&i.part.command?r=new e.MarkdownString().appendText(e.localize(`hint.defAndCommand`,`Go to Definition ({0}), right click for more`,a)):i.part.location?r=new e.MarkdownString().appendText(e.localize(`hint.def`,`Go to Definition ({0})`,a)):i.part.command&&(r=new e.MarkdownString(`[${e.localize(`hint.cmd`,`Execute Command`)}](${Im(i.part.command)} "${i.part.command.title}") (${a})`,{isTrusted:!0})),r&&n.emitOne(new ym(this,t.range,[r],!1,1e4))}let s=await this._resolveInlayHintLabelPartHover(i,r);for await(let e of s)n.emitOne(e)}):e.AsyncIterableObject.EMPTY}async _resolveInlayHintLabelPartHover(t,n){if(!t.part.location)return e.AsyncIterableObject.EMPTY;let{uri:r,range:i}=t.part.location,a=await this._resolverService.createModelReference(r);try{let r=a.object.textEditorModel;return this._languageFeaturesService.hoverProvider.has(r)?dm(this._languageFeaturesService.hoverProvider,r,new e.Position$1(i.startLineNumber,i.startColumn),n).filter(t=>!e.isEmptyMarkdownString(t.hover.contents)).map(e=>new ym(this,t.item.anchor.range,e.hover.contents,!1,2+e.ordinal)):e.AsyncIterableObject.EMPTY}finally{a.dispose()}}};Eg=Cg([wg(1,e.ILanguageService),wg(2,e.IOpenerService),wg(3,e.IKeybindingService),wg(4,e.IHoverService),wg(5,e.IConfigurationService),wg(6,e.ITextModelService),wg(7,e.ILanguageFeaturesService),wg(8,e.ICommandService)],Eg);var Dg=class t extends e.Disposable{constructor(e,n,r,i,a,o){super();let s=n.anchor,c=n.hoverParts;this._renderedHoverParts=this._register(new kg(e,r,c,o,a));let{showAtPosition:l,showAtSecondaryPosition:u}=t.computeHoverPositions(e,s.range,c);this.shouldAppearBeforeContent=c.some(e=>e.isBeforeContent),this.showAtPosition=l,this.showAtSecondaryPosition=u,this.initialMousePosX=s.initialMousePosX,this.initialMousePosY=s.initialMousePosY,this.shouldFocus=i.shouldFocus,this.source=i.source}get domNode(){return this._renderedHoverParts.domNode}get domNodeHasChildren(){return this._renderedHoverParts.domNodeHasChildren}get focusedHoverPartIndex(){return this._renderedHoverParts.focusedHoverPartIndex}async updateHoverVerbosityLevel(e,t,n){this._renderedHoverParts.updateHoverVerbosityLevel(e,t,n)}isColorPickerVisible(){return this._renderedHoverParts.isColorPickerVisible()}static computeHoverPositions(t,n,r){let i=1;if(t.hasModel()){let r=t._getViewModel(),a=r.coordinatesConverter,o=a.convertModelRangeToViewRange(n),s=r.getLineMinColumn(o.startLineNumber),c=new e.Position$1(o.startLineNumber,s);i=a.convertViewPositionToModelPosition(c).column}let a=n.startLineNumber,o=n.startColumn,s;for(let e of r){let t=e.range,n=t.startLineNumber===a,r=t.endLineNumber===a;if(n&&r){let e=t.startColumn,n=Math.min(o,e);o=Math.max(n,i)}e.forceShowAtRange&&(s=t)}let c,l;if(s){let e=s.getStartPosition();c=e,l=e}else c=n.getStartPosition(),l=new e.Position$1(a,o);return{showAtPosition:c,showAtSecondaryPosition:l}}},Og=class{constructor(e,t){this._statusBar=t,e.appendChild(this._statusBar.hoverElement)}get hoverElement(){return this._statusBar.hoverElement}get actions(){return this._statusBar.actions}dispose(){this._statusBar.dispose()}},kg=class t extends e.Disposable{static{this._DECORATION_OPTIONS=e.ModelDecorationOptions.register({description:`content-hover-highlight`,className:`hoverHighlight`})}constructor(e,t,n,r,i){super(),this._renderedParts=[],this._focusedHoverPartIndex=-1,this._context=i,this._fragment=document.createDocumentFragment(),this._register(this._renderParts(t,n,i,r)),this._register(this._registerListenersOnRenderedParts()),this._register(this._createEditorDecorations(e,n)),this._updateMarkdownAndColorParticipantInfo(t)}_createEditorDecorations(n,r){if(r.length===0)return e.Disposable.None;let i=r[0].range;for(let t of r){let n=t.range;i=e.Range$1.plusRange(i,n)}let a=n.createDecorationsCollection();return a.set([{range:i,options:t._DECORATION_OPTIONS}]),e.toDisposable(()=>{a.clear()})}_renderParts(t,n,r,i){let a=new cm(i),o={fragment:this._fragment,statusBar:a,...r},s=new e.DisposableStore;for(let e of t){let t=this._renderHoverPartsForParticipant(n,e,o);s.add(t);for(let n of t.renderedHoverParts)this._renderedParts.push({type:`hoverPart`,participant:e,hoverPart:n.hoverPart,hoverElement:n.hoverElement})}let c=this._renderStatusBar(this._fragment,a);return c&&(s.add(c),this._renderedParts.push({type:`statusBar`,hoverElement:c.hoverElement,actions:c.actions})),e.toDisposable(()=>{s.dispose()})}_renderHoverPartsForParticipant(e,t,n){let r=e.filter(e=>e.owner===t);return r.length>0?t.renderHoverParts(n,r):new rp([])}_renderStatusBar(e,t){if(t.hasContent)return new Og(e,t)}_registerListenersOnRenderedParts(){let t=new e.DisposableStore;return this._renderedParts.forEach((n,r)=>{let i=n.hoverElement;i.tabIndex=0,t.add(e.addDisposableListener(i,e.EventType$1.FOCUS_IN,e=>{e.stopPropagation(),this._focusedHoverPartIndex=r})),t.add(e.addDisposableListener(i,e.EventType$1.FOCUS_OUT,e=>{e.stopPropagation(),this._focusedHoverPartIndex=-1}))}),t}_updateMarkdownAndColorParticipantInfo(e){let t=e.find(e=>e instanceof xm&&!(e instanceof Eg));t&&(this._markdownHoverParticipant=t),this._colorHoverParticipant=e.find(e=>e instanceof cp)}async updateHoverVerbosityLevel(e,t,n){if(!this._markdownHoverParticipant)return;let r=this._normalizedIndexToMarkdownHoverIndexRange(this._markdownHoverParticipant,t);if(r===void 0)return;let i=await this._markdownHoverParticipant.updateMarkdownHoverVerbosityLevel(e,r,n);i&&(this._renderedParts[t]={type:`hoverPart`,participant:this._markdownHoverParticipant,hoverPart:i.hoverPart,hoverElement:i.hoverElement},this._context.onContentsChanged())}isColorPickerVisible(){return this._colorHoverParticipant?.isColorPickerVisible()??!1}_normalizedIndexToMarkdownHoverIndexRange(t,n){let r=this._renderedParts[n];if(!r||r.type!==`hoverPart`||r.participant!==t)return;let i=this._renderedParts.findIndex(e=>e.type===`hoverPart`&&e.participant===t);if(i===-1)throw new e.BugIndicatingError;return n-i}get domNode(){return this._fragment}get domNodeHasChildren(){return this._fragment.hasChildNodes()}get focusedHoverPartIndex(){return this._focusedHoverPartIndex}},Ag=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},jg=function(e,t){return function(n,r){t(n,r,e)}},Mg=class extends e.Disposable{constructor(t,n,r){super(),this._editor=t,this._instantiationService=n,this._keybindingService=r,this._currentResult=null,this._onContentsChanged=this._register(new e.Emitter$1),this.onContentsChanged=this._onContentsChanged.event,this._contentHoverWidget=this._register(this._instantiationService.createInstance(em,this._editor)),this._participants=this._initializeHoverParticipants(),this._computer=new nm(this._editor,this._participants),this._hoverOperation=this._register(new Wp(this._editor,this._computer)),this._registerListeners()}_initializeHoverParticipants(){let e=[];for(let t of ip.getAll()){let n=this._instantiationService.createInstance(t,this._editor);e.push(n)}return e.sort((e,t)=>e.hoverOrdinal-t.hoverOrdinal),this._register(this._contentHoverWidget.onDidResize(()=>{this._participants.forEach(e=>e.handleResize?.())})),e}_registerListeners(){this._register(this._hoverOperation.onResult(e=>{if(!this._computer.anchor)return;let t=e.hasLoadingMessage?this._addLoadingMessage(e.value):e.value;this._withResult(new rm(this._computer.anchor,t,e.isComplete))}));let t=this._contentHoverWidget.getDomNode();this._register(e.addStandardDisposableListener(t,`keydown`,e=>{e.equals(9)&&this.hide()})),this._register(e.addStandardDisposableListener(t,`mouseleave`,e=>{this._onMouseLeave(e)})),this._register(e.TokenizationRegistry.onDidChange(()=>{this._contentHoverWidget.position&&this._currentResult&&this._setCurrentResult(this._currentResult)}))}_startShowingOrUpdateHover(e,t,n,r,i){if(!(this._contentHoverWidget.position&&this._currentResult))return e?(this._startHoverOperationIfNecessary(e,t,n,r,!1),!0):!1;let a=this._editor.getOption(60).sticky,o=i&&this._contentHoverWidget.isMouseGettingCloser(i.event.posx,i.event.posy);return a&&o?(e&&this._startHoverOperationIfNecessary(e,t,n,r,!0),!0):e?this._currentResult.anchor.equals(e)?!0:e.canAdoptVisibleHover(this._currentResult.anchor,this._contentHoverWidget.position)?(this._setCurrentResult(this._currentResult.filter(e)),this._startHoverOperationIfNecessary(e,t,n,r,!1),!0):(this._setCurrentResult(null),this._startHoverOperationIfNecessary(e,t,n,r,!1),!0):(this._setCurrentResult(null),!1)}_startHoverOperationIfNecessary(e,t,n,r,i){this._computer.anchor&&this._computer.anchor.equals(e)||(this._hoverOperation.cancel(),this._computer.anchor=e,this._computer.shouldFocus=r,this._computer.source=n,this._computer.insistOnKeepingHoverVisible=i,this._hoverOperation.start(t))}_setCurrentResult(e){let t=e;this._currentResult!==t&&(t&&t.hoverParts.length===0&&(t=null),this._currentResult=t,this._currentResult?this._showHover(this._currentResult):this._hideHover())}_addLoadingMessage(e){if(!this._computer.anchor)return e;for(let t of this._participants){if(!t.createLoadingMessage)continue;let n=t.createLoadingMessage(this._computer.anchor);if(n)return e.slice(0).concat([n])}return e}_withResult(e){if(this._contentHoverWidget.position&&this._currentResult&&this._currentResult.isComplete||this._setCurrentResult(e),!e.isComplete)return;let t=e.hoverParts.length===0,n=this._computer.insistOnKeepingHoverVisible;t&&n||this._setCurrentResult(e)}_showHover(e){let t=this._getHoverContext();this._renderedContentHover=new Dg(this._editor,e,this._participants,this._computer,t,this._keybindingService),this._renderedContentHover.domNodeHasChildren?this._contentHoverWidget.show(this._renderedContentHover):this._renderedContentHover.dispose()}_hideHover(){this._contentHoverWidget.hide()}_getHoverContext(){return{hide:()=>{this.hide()},onContentsChanged:()=>{this._onContentsChanged.fire(),this._contentHoverWidget.onContentsChanged()},setMinimumDimensions:e=>{this._contentHoverWidget.setMinimumDimensions(e)}}}showsOrWillShow(e){if(this._contentHoverWidget.isResizing)return!0;let t=this._findHoverAnchorCandidates(e);if(!(t.length>0))return this._startShowingOrUpdateHover(null,0,0,!1,e);let n=t[0];return this._startShowingOrUpdateHover(n,0,0,!1,e)}_findHoverAnchorCandidates(e){let t=[];for(let n of this._participants){if(!n.suggestHoverAnchor)continue;let r=n.suggestHoverAnchor(e);r&&t.push(r)}let n=e.target;switch(n.type){case 6:t.push(new tp(0,n.range,e.event.posx,e.event.posy));break;case 7:{let r=this._editor.getOption(50).typicalHalfwidthCharacterWidth/2;if(!(!n.detail.isAfterLines&&typeof n.detail.horizontalDistanceToText==`number`&&n.detail.horizontalDistanceToText<r))break;t.push(new tp(0,n.range,e.event.posx,e.event.posy));break}}return t.sort((e,t)=>t.priority-e.priority),t}_onMouseLeave(e){let t=this._editor.getDomNode();(!t||!Hp(t,e.x,e.y))&&this.hide()}startShowingAtRange(e,t,n,r){this._startShowingOrUpdateHover(new tp(0,e,void 0,void 0),t,n,r,null)}async updateHoverVerbosityLevel(e,t,n){this._renderedContentHover?.updateHoverVerbosityLevel(e,t,n)}focusedHoverPartIndex(){return this._renderedContentHover?.focusedHoverPartIndex??-1}containsNode(e){return e?this._contentHoverWidget.getDomNode().contains(e):!1}focus(){this._contentHoverWidget.focus()}scrollUp(){this._contentHoverWidget.scrollUp()}scrollDown(){this._contentHoverWidget.scrollDown()}scrollLeft(){this._contentHoverWidget.scrollLeft()}scrollRight(){this._contentHoverWidget.scrollRight()}pageUp(){this._contentHoverWidget.pageUp()}pageDown(){this._contentHoverWidget.pageDown()}goToTop(){this._contentHoverWidget.goToTop()}goToBottom(){this._contentHoverWidget.goToBottom()}hide(){this._computer.anchor=null,this._hoverOperation.cancel(),this._setCurrentResult(null)}getDomNode(){return this._contentHoverWidget.getDomNode()}get isColorPickerVisible(){return this._renderedContentHover?.isColorPickerVisible()??!1}get isVisibleFromKeyboard(){return this._contentHoverWidget.isVisibleFromKeyboard}get isVisible(){return this._contentHoverWidget.isVisible}get isFocused(){return this._contentHoverWidget.isFocused}get isResizing(){return this._contentHoverWidget.isResizing}get widget(){return this._contentHoverWidget}};Mg=Ag([jg(1,e.IInstantiationService),jg(2,e.IKeybindingService)],Mg);var Ng=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Pg=function(e,t){return function(n,r){t(n,r,e)}},Fg,q=class extends e.Disposable{static{Fg=this}static{this.ID=`editor.contrib.contentHover`}constructor(t,n,r){super(),this._editor=t,this._instantiationService=n,this._keybindingService=r,this._onHoverContentsChanged=this._register(new e.Emitter$1),this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new e.DisposableStore,this._hoverState={mouseDown:!1,activatedByDecoratorClick:!1},this._reactToEditorMouseMoveRunner=this._register(new e.RunOnceScheduler(()=>this._reactToEditorMouseMove(this._mouseMoveEvent),0)),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration(e=>{e.hasChanged(60)&&(this._unhookListeners(),this._hookListeners())}))}static get(e){return e.getContribution(Fg.ID)}_hookListeners(){let e=this._editor.getOption(60);this._hoverSettings={enabled:e.enabled,sticky:e.sticky,hidingDelay:e.hidingDelay},e.enabled?(this._listenersStore.add(this._editor.onMouseDown(e=>this._onEditorMouseDown(e))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove(e=>this._onEditorMouseMove(e))),this._listenersStore.add(this._editor.onKeyDown(e=>this._onKeyDown(e)))):(this._listenersStore.add(this._editor.onMouseMove(e=>this._onEditorMouseMove(e))),this._listenersStore.add(this._editor.onKeyDown(e=>this._onKeyDown(e)))),this._listenersStore.add(this._editor.onMouseLeave(e=>this._onEditorMouseLeave(e))),this._listenersStore.add(this._editor.onDidChangeModel(()=>{this._cancelScheduler(),this._hideWidgets()})),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange(e=>this._onEditorScrollChanged(e)))}_unhookListeners(){this._listenersStore.clear()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(e){(e.scrollTopChanged||e.scrollLeftChanged)&&this._hideWidgets()}_onEditorMouseDown(e){this._hoverState.mouseDown=!0,!this._shouldNotHideCurrentHoverWidget(e)&&this._hideWidgets()}_shouldNotHideCurrentHoverWidget(e){return this._isMouseOnContentHoverWidget(e)||this._isContentWidgetResizing()}_isMouseOnContentHoverWidget(e){let t=this._contentWidget?.getDomNode();return t?Hp(t,e.event.posx,e.event.posy):!1}_onEditorMouseUp(){this._hoverState.mouseDown=!1}_onEditorMouseLeave(e){this.shouldKeepOpenOnEditorMouseMoveOrLeave||(this._cancelScheduler(),!this._shouldNotHideCurrentHoverWidget(e)&&this._hideWidgets())}_shouldNotRecomputeCurrentHoverWidget(e){let t=this._hoverSettings.sticky;return((e,t)=>{let n=this._isMouseOnContentHoverWidget(e);return t&&n})(e,t)||(e=>{let t=this._isMouseOnContentHoverWidget(e),n=this._contentWidget?.isColorPickerVisible??!1;return t&&n})(e)||((e,t)=>(t&&this._contentWidget?.containsNode(e.event.browserEvent.view?.document.activeElement)&&!e.event.browserEvent.view?.getSelection()?.isCollapsed)??!1)(e,t)}_onEditorMouseMove(e){if(this.shouldKeepOpenOnEditorMouseMoveOrLeave||(this._mouseMoveEvent=e,this._contentWidget?.isFocused||this._contentWidget?.isResizing))return;let t=this._hoverSettings.sticky;if(t&&this._contentWidget?.isVisibleFromKeyboard)return;if(this._shouldNotRecomputeCurrentHoverWidget(e)){this._reactToEditorMouseMoveRunner.cancel();return}let n=this._hoverSettings.hidingDelay;if(this._contentWidget?.isVisible&&t&&n>0){this._reactToEditorMouseMoveRunner.isScheduled()||this._reactToEditorMouseMoveRunner.schedule(n);return}this._reactToEditorMouseMove(e)}_reactToEditorMouseMove(e){if(!e)return;let t=e.target.element?.classList.contains(`colorpicker-color-decoration`),n=this._editor.getOption(149),r=this._hoverSettings.enabled,i=this._hoverState.activatedByDecoratorClick;if(t&&(n===`click`&&!i||n===`hover`&&!r||n===`clickAndHover`&&!r&&!i)||!t&&!r&&!i){this._hideWidgets();return}this._tryShowHoverWidget(e)||this._hideWidgets()}_tryShowHoverWidget(e){return this._getOrCreateContentWidget().showsOrWillShow(e)}_onKeyDown(e){if(!this._editor.hasModel())return;let t=this._keybindingService.softDispatch(e,this._editor.getDomNode()),n=t.kind===1||t.kind===2&&(t.commandId===`editor.action.showHover`||t.commandId===`editor.action.increaseHoverVerbosityLevel`||t.commandId===`editor.action.decreaseHoverVerbosityLevel`)&&this._contentWidget?.isVisible;e.keyCode===5||e.keyCode===6||e.keyCode===57||e.keyCode===4||n||this._hideWidgets()}_hideWidgets(){this._hoverState.mouseDown&&this._contentWidget?.isColorPickerVisible||Rp.dropDownVisible||(this._hoverState.activatedByDecoratorClick=!1,this._contentWidget?.hide())}_getOrCreateContentWidget(){return this._contentWidget||(this._contentWidget=this._instantiationService.createInstance(Mg,this._editor),this._listenersStore.add(this._contentWidget.onContentsChanged(()=>this._onHoverContentsChanged.fire()))),this._contentWidget}showContentHover(e,t,n,r,i=!1){this._hoverState.activatedByDecoratorClick=i,this._getOrCreateContentWidget().startShowingAtRange(e,t,n,r)}_isContentWidgetResizing(){return this._contentWidget?.widget.isResizing||!1}focusedHoverPartIndex(){return this._getOrCreateContentWidget().focusedHoverPartIndex()}updateHoverVerbosityLevel(e,t,n){this._getOrCreateContentWidget().updateHoverVerbosityLevel(e,t,n)}focus(){this._contentWidget?.focus()}scrollUp(){this._contentWidget?.scrollUp()}scrollDown(){this._contentWidget?.scrollDown()}scrollLeft(){this._contentWidget?.scrollLeft()}scrollRight(){this._contentWidget?.scrollRight()}pageUp(){this._contentWidget?.pageUp()}pageDown(){this._contentWidget?.pageDown()}goToTop(){this._contentWidget?.goToTop()}goToBottom(){this._contentWidget?.goToBottom()}get isColorPickerVisible(){return this._contentWidget?.isColorPickerVisible}get isHoverVisible(){return this._contentWidget?.isVisible}dispose(){super.dispose(),this._unhookListeners(),this._listenersStore.dispose(),this._contentWidget?.dispose()}};q=Fg=Ng([Pg(1,e.IInstantiationService),Pg(2,e.IKeybindingService)],q);var Ig=class extends e.Disposable{static{this.ID=`editor.contrib.colorContribution`}constructor(e){super(),this._editor=e,this._register(e.onMouseDown(e=>this.onMouseDown(e)))}dispose(){super.dispose()}onMouseDown(t){let n=this._editor.getOption(149);if(n!==`click`&&n!==`clickAndHover`)return;let r=t.target;if(r.type!==6||!r.detail.injectedText||r.detail.injectedText.options.attachedData!==Vf||!r.range)return;let i=this._editor.getContribution(q.ID);if(i&&!i.isColorPickerVisible){let t=new e.Range$1(r.range.startLineNumber,r.range.startColumn+1,r.range.endLineNumber,r.range.endColumn+1);i.showContentHover(t,1,0,!1,!0)}}};e.registerEditorContribution(Ig.ID,Ig,2),ip.register(cp);var Lg=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Rg=function(e,t){return function(n,r){t(n,r,e)}},zg,Bg,Vg=class extends e.Disposable{static{zg=this}static{this.ID=`editor.contrib.standaloneColorPickerController`}constructor(t,n,r){super(),this._editor=t,this._instantiationService=r,this._standaloneColorPickerWidget=null,this._standaloneColorPickerVisible=e.EditorContextKeys.standaloneColorPickerVisible.bindTo(n),this._standaloneColorPickerFocused=e.EditorContextKeys.standaloneColorPickerFocused.bindTo(n)}showOrFocus(){this._editor.hasModel()&&(this._standaloneColorPickerVisible.get()?this._standaloneColorPickerFocused.get()||this._standaloneColorPickerWidget?.focus():this._standaloneColorPickerWidget=this._instantiationService.createInstance(Wg,this._editor,this._standaloneColorPickerVisible,this._standaloneColorPickerFocused))}hide(){this._standaloneColorPickerFocused.set(!1),this._standaloneColorPickerVisible.set(!1),this._standaloneColorPickerWidget?.hide(),this._editor.focus()}insertColor(){this._standaloneColorPickerWidget?.updateEditor(),this.hide()}static get(e){return e.getContribution(zg.ID)}};Vg=zg=Lg([Rg(1,e.IContextKeyService),Rg(2,e.IInstantiationService)],Vg),e.registerEditorContribution(Vg.ID,Vg,1);var Hg=8,Ug=22,Wg=class extends e.Disposable{static{Bg=this}static{this.ID=`editor.contrib.standaloneColorPickerWidget`}constructor(t,n,r,i,a,o,s){super(),this._editor=t,this._standaloneColorPickerVisible=n,this._standaloneColorPickerFocused=r,this._keybindingService=a,this._languageFeaturesService=o,this._editorWorkerService=s,this.allowEditorOverflow=!0,this._position=void 0,this._body=document.createElement(`div`),this._colorHover=null,this._selectionSetInEditor=!1,this._onResult=this._register(new e.Emitter$1),this.onResult=this._onResult.event,this._standaloneColorPickerVisible.set(!0),this._standaloneColorPickerParticipant=i.createInstance(up,this._editor),this._position=this._editor._getViewModel()?.getPrimaryCursorState().modelState.position;let c=this._editor.getSelection(),l=c?{startLineNumber:c.startLineNumber,startColumn:c.startColumn,endLineNumber:c.endLineNumber,endColumn:c.endColumn}:{startLineNumber:0,endLineNumber:0,endColumn:0,startColumn:0},u=this._register(e.trackFocus(this._body));this._register(u.onDidBlur(e=>{this.hide()})),this._register(u.onDidFocus(e=>{this.focus()})),this._register(this._editor.onDidChangeCursorPosition(()=>{this._selectionSetInEditor?this._selectionSetInEditor=!1:this.hide()})),this._register(this._editor.onMouseMove(e=>{let t=e.target.element?.classList;t&&t.contains(`colorpicker-color-decoration`)&&this.hide()})),this._register(this.onResult(e=>{this._render(e.value,e.foundInEditor)})),this._start(l),this._body.style.zIndex=`50`,this._editor.addContentWidget(this)}updateEditor(){this._colorHover&&this._standaloneColorPickerParticipant.updateEditorModel(this._colorHover)}getId(){return Bg.ID}getDomNode(){return this._body}getPosition(){if(!this._position)return null;let e=this._editor.getOption(60).above;return{position:this._position,secondaryPosition:this._position,preference:e?[1,2]:[2,1],positionAffinity:2}}hide(){this.dispose(),this._standaloneColorPickerVisible.set(!1),this._standaloneColorPickerFocused.set(!1),this._editor.removeContentWidget(this),this._editor.focus()}focus(){this._standaloneColorPickerFocused.set(!0),this._body.focus()}async _start(e){let t=await this._computeAsync(e);t&&this._onResult.fire(new Gg(t.result,t.foundInEditor))}async _computeAsync(e){if(!this._editor.hasModel())return null;let t={range:e,color:{red:0,green:0,blue:0,alpha:1}},n=await this._standaloneColorPickerParticipant.createColorHover(t,new kf(this._editorWorkerService),this._languageFeaturesService.colorProvider);return n?{result:n.colorHover,foundInEditor:n.foundInEditor}:null}_render(e,t){let n=document.createDocumentFragment(),r=this._register(new cm(this._keybindingService)),i={fragment:n,statusBar:r,onContentsChanged:()=>{},hide:()=>this.hide()};this._colorHover=e;let a=this._standaloneColorPickerParticipant.renderHoverParts(i,[e]);if(!a)return;this._register(a.disposables);let o=a.colorPicker;this._body.classList.add(`standalone-colorpicker-body`),this._body.style.maxHeight=Math.max(this._editor.getLayoutInfo().height/4,250)+`px`,this._body.style.maxWidth=Math.max(this._editor.getLayoutInfo().width*.66,500)+`px`,this._body.tabIndex=0,this._body.appendChild(n),o.layout();let s=o.body,c=s.saturationBox.domNode.clientWidth,l=s.domNode.clientWidth-c-Ug-Hg,u=o.body.enterButton;u?.onClicked(()=>{this.updateEditor(),this.hide()});let d=o.header,f=d.pickedColorNode;f.style.width=c+Hg+`px`;let p=d.originalColorNode;p.style.width=l+`px`,o.header.closeButton?.onClicked(()=>{this.hide()}),t&&(u&&(u.button.textContent=`Replace`),this._selectionSetInEditor=!0,this._editor.setSelection(e.range)),this._editor.layoutContentWidget(this)}};Wg=Bg=Lg([Rg(3,e.IInstantiationService),Rg(4,e.IKeybindingService),Rg(5,e.ILanguageFeaturesService),Rg(6,e.IEditorWorkerService)],Wg);var Gg=class{constructor(e,t){this.value=e,this.foundInEditor=t}},Kg=class extends e.EditorAction2{constructor(){super({id:`editor.action.showOrFocusStandaloneColorPicker`,title:{...e.localize2(`showOrFocusStandaloneColorPicker`,`Show or Focus Standalone Color Picker`),mnemonicTitle:e.localize({key:`mishowOrFocusStandaloneColorPicker`,comment:[`&& denotes a mnemonic`]},`&&Show or Focus Standalone Color Picker`)},precondition:void 0,menu:[{id:e.MenuId.CommandPalette}],metadata:{description:e.localize2(`showOrFocusStandaloneColorPickerDescription`,`Show or focus a standalone color picker which uses the default color provider. It displays hex/rgb/hsl colors.`)}})}runEditorCommand(e,t){Vg.get(t)?.showOrFocus()}},qg=class extends e.EditorAction{constructor(){super({id:`editor.action.hideColorPicker`,label:e.localize({key:`hideColorPicker`,comment:[`Action that hides the color picker`]},`Hide the Color Picker`),alias:`Hide the Color Picker`,precondition:e.EditorContextKeys.standaloneColorPickerVisible.isEqualTo(!0),kbOpts:{primary:9,weight:100},metadata:{description:e.localize2(`hideColorPickerDescription`,`Hide the standalone color picker.`)}})}run(e,t){Vg.get(t)?.hide()}},Jg=class extends e.EditorAction{constructor(){super({id:`editor.action.insertColorWithStandaloneColorPicker`,label:e.localize({key:`insertColorWithStandaloneColorPicker`,comment:[`Action that inserts color with standalone color picker`]},`Insert Color with Standalone Color Picker`),alias:`Insert Color with Standalone Color Picker`,precondition:e.EditorContextKeys.standaloneColorPickerFocused.isEqualTo(!0),kbOpts:{primary:3,weight:100},metadata:{description:e.localize2(`insertColorWithStandaloneColorPickerDescription`,`Insert hex/rgb/hsl colors with the focused standalone color picker.`)}})}run(e,t){Vg.get(t)?.insertColor()}};e.registerEditorAction(qg),e.registerEditorAction(Jg),e.registerAction2(Kg);var Yg=class t{constructor(e,t,n){this.languageConfigurationService=n,this._selection=e,this._insertSpace=t,this._usedEndToken=null}static _haystackHasNeedleAtOffset(e,t,n){if(n<0)return!1;let r=t.length,i=e.length;if(n+r>i)return!1;for(let i=0;i<r;i++){let r=e.charCodeAt(n+i),a=t.charCodeAt(i);if(r!==a&&!(r>=65&&r<=90&&r+32===a)&&!(a>=65&&a<=90&&a+32===r))return!1}return!0}_createOperationsForBlockComment(n,r,i,a,o,s){let c=n.startLineNumber,l=n.startColumn,u=n.endLineNumber,d=n.endColumn,f=o.getLineContent(c),p=o.getLineContent(u),m=f.lastIndexOf(r,l-1+r.length),h=p.indexOf(i,d-1-i.length);if(m!==-1&&h!==-1)if(c===u)f.substring(m+r.length,h).indexOf(i)>=0&&(m=-1,h=-1);else{let e=f.substring(m+r.length),t=p.substring(0,h);(e.indexOf(i)>=0||t.indexOf(i)>=0)&&(m=-1,h=-1)}let g;m!==-1&&h!==-1?(a&&m+r.length<f.length&&f.charCodeAt(m+r.length)===32&&(r+=` `),a&&h>0&&p.charCodeAt(h-1)===32&&(i=` `+i,--h),g=t._createRemoveBlockCommentOperations(new e.Range$1(c,m+r.length+1,u,h+1),r,i)):(g=t._createAddBlockCommentOperations(n,r,i,this._insertSpace),this._usedEndToken=g.length===1?i:null);for(let e of g)s.addTrackedEditOperation(e.range,e.text)}static _createRemoveBlockCommentOperations(t,n,r){let i=[];return e.Range$1.isEmpty(t)?i.push(e.EditOperation.delete(new e.Range$1(t.startLineNumber,t.startColumn-n.length,t.endLineNumber,t.endColumn+r.length))):(i.push(e.EditOperation.delete(new e.Range$1(t.startLineNumber,t.startColumn-n.length,t.startLineNumber,t.startColumn))),i.push(e.EditOperation.delete(new e.Range$1(t.endLineNumber,t.endColumn,t.endLineNumber,t.endColumn+r.length)))),i}static _createAddBlockCommentOperations(t,n,r,i){let a=[];return e.Range$1.isEmpty(t)?a.push(e.EditOperation.replace(new e.Range$1(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn),n+` `+r)):(a.push(e.EditOperation.insert(new e.Position$1(t.startLineNumber,t.startColumn),n+(i?` `:``))),a.push(e.EditOperation.insert(new e.Position$1(t.endLineNumber,t.endColumn),(i?` `:``)+r))),a}getEditOperations(e,t){let n=this._selection.startLineNumber,r=this._selection.startColumn;e.tokenization.tokenizeIfCheap(n);let i=e.getLanguageIdAtPosition(n,r),a=this.languageConfigurationService.getLanguageConfiguration(i).comments;!a||!a.blockCommentStartToken||!a.blockCommentEndToken||this._createOperationsForBlockComment(this._selection,a.blockCommentStartToken,a.blockCommentEndToken,this._insertSpace,e,t)}computeCursorState(t,n){let r=n.getInverseEditOperations();if(r.length===2){let t=r[0],n=r[1];return new e.Selection$1(t.range.endLineNumber,t.range.endColumn,n.range.startLineNumber,n.range.startColumn)}else{let t=r[0].range,n=this._usedEndToken?-this._usedEndToken.length-1:0;return new e.Selection$1(t.endLineNumber,t.endColumn+n,t.endLineNumber,t.endColumn+n)}}},Xg=class t{constructor(e,t,n,r,i,a,o){this.languageConfigurationService=e,this._selection=t,this._indentSize=n,this._type=r,this._insertSpace=i,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=a,this._ignoreFirstLine=o||!1}static _gatherPreflightCommentStrings(e,t,n,r){e.tokenization.tokenizeIfCheap(t);let i=e.getLanguageIdAtPosition(t,1),a=r.getLanguageConfiguration(i).comments,o=a?a.lineCommentToken:null;if(!o)return null;let s=[];for(let e=0,r=n-t+1;e<r;e++)s[e]={ignore:!1,commentStr:o,commentStrOffset:0,commentStrLength:o.length};return s}static _analyzeLines(t,n,r,i,a,o,s,c){let l=!0,u;u=t===0?!0:t!==1;for(let c=0,d=i.length;c<d;c++){let d=i[c],f=a+c;if(f===a&&s){d.ignore=!0;continue}let p=r.getLineContent(f),m=e.firstNonWhitespaceIndex(p);if(m===-1){d.ignore=o,d.commentStrOffset=p.length;continue}if(l=!1,d.ignore=!1,d.commentStrOffset=m,u&&!Yg._haystackHasNeedleAtOffset(p,d.commentStr,m)&&(t===0?u=!1:t===1||(d.ignore=!0)),u&&n){let e=m+d.commentStrLength;e<p.length&&p.charCodeAt(e)===32&&(d.commentStrLength+=1)}}if(t===0&&l){u=!1;for(let e=0,t=i.length;e<t;e++)i[e].ignore=!1}return{supported:!0,shouldRemoveComments:u,lines:i}}static _gatherPreflightData(e,n,r,i,a,o,s,c){let l=t._gatherPreflightCommentStrings(r,i,a,c);return l===null?{supported:!1}:t._analyzeLines(e,n,r,l,i,o,s,c)}_executeLineComments(n,r,i,a){let o;i.shouldRemoveComments?o=t._createRemoveLineCommentsOperations(i.lines,a.startLineNumber):(t._normalizeInsertionPoint(n,i.lines,a.startLineNumber,this._indentSize),o=this._createAddLineCommentsOperations(i.lines,a.startLineNumber));let s=new e.Position$1(a.positionLineNumber,a.positionColumn);for(let t=0,i=o.length;t<i;t++)r.addEditOperation(o[t].range,o[t].text),e.Range$1.isEmpty(o[t].range)&&e.Range$1.getStartPosition(o[t].range).equals(s)&&n.getLineContent(s.lineNumber).length+1===s.column&&(this._deltaColumn=(o[t].text||``).length);this._selectionId=r.trackSelection(a)}_attemptRemoveBlockComment(t,n,r,i){let a=n.startLineNumber,o=n.endLineNumber,s=i.length+Math.max(t.getLineFirstNonWhitespaceColumn(n.startLineNumber),n.startColumn),c=t.getLineContent(a).lastIndexOf(r,s-1),l=t.getLineContent(o).indexOf(i,n.endColumn-1-r.length);return c!==-1&&l===-1&&(l=t.getLineContent(a).indexOf(i,c+r.length),o=a),c===-1&&l!==-1&&(c=t.getLineContent(o).lastIndexOf(r,l),a=o),n.isEmpty()&&(c===-1||l===-1)&&(c=t.getLineContent(a).indexOf(r),c!==-1&&(l=t.getLineContent(a).indexOf(i,c+r.length))),c!==-1&&t.getLineContent(a).charCodeAt(c+r.length)===32&&(r+=` `),l!==-1&&t.getLineContent(o).charCodeAt(l-1)===32&&(i=` `+i,--l),c!==-1&&l!==-1?Yg._createRemoveBlockCommentOperations(new e.Range$1(a,c+r.length+1,o,l+1),r,i):null}_executeBlockComment(t,n,r){t.tokenization.tokenizeIfCheap(r.startLineNumber);let i=t.getLanguageIdAtPosition(r.startLineNumber,1),a=this.languageConfigurationService.getLanguageConfiguration(i).comments;if(!a||!a.blockCommentStartToken||!a.blockCommentEndToken)return;let o=a.blockCommentStartToken,s=a.blockCommentEndToken,c=this._attemptRemoveBlockComment(t,r,o,s);if(!c){if(r.isEmpty()){let n=t.getLineContent(r.startLineNumber),i=e.firstNonWhitespaceIndex(n);i===-1&&(i=n.length),c=Yg._createAddBlockCommentOperations(new e.Range$1(r.startLineNumber,i+1,r.startLineNumber,n.length+1),o,s,this._insertSpace)}else c=Yg._createAddBlockCommentOperations(new e.Range$1(r.startLineNumber,t.getLineFirstNonWhitespaceColumn(r.startLineNumber),r.endLineNumber,t.getLineMaxColumn(r.endLineNumber)),o,s,this._insertSpace);c.length===1&&(this._deltaColumn=o.length+1)}this._selectionId=n.trackSelection(r);for(let e of c)n.addEditOperation(e.range,e.text)}getEditOperations(n,r){let i=this._selection;if(this._moveEndPositionDown=!1,i.startLineNumber===i.endLineNumber&&this._ignoreFirstLine){r.addEditOperation(new e.Range$1(i.startLineNumber,n.getLineMaxColumn(i.startLineNumber),i.startLineNumber+1,1),i.startLineNumber===n.getLineCount()?``:`
`),this._selectionId=r.trackSelection(i);return}i.startLineNumber<i.endLineNumber&&i.endColumn===1&&(this._moveEndPositionDown=!0,i=i.setEndPosition(i.endLineNumber-1,n.getLineMaxColumn(i.endLineNumber-1)));let a=t._gatherPreflightData(this._type,this._insertSpace,n,i.startLineNumber,i.endLineNumber,this._ignoreEmptyLines,this._ignoreFirstLine,this.languageConfigurationService);return a.supported?this._executeLineComments(n,r,a,i):this._executeBlockComment(n,r,i)}computeCursorState(t,n){let r=n.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(r=r.setEndPosition(r.endLineNumber+1,1)),new e.Selection$1(r.selectionStartLineNumber,r.selectionStartColumn+this._deltaColumn,r.positionLineNumber,r.positionColumn+this._deltaColumn)}static _createRemoveLineCommentsOperations(t,n){let r=[];for(let i=0,a=t.length;i<a;i++){let a=t[i];a.ignore||r.push(e.EditOperation.delete(new e.Range$1(n+i,a.commentStrOffset+1,n+i,a.commentStrOffset+a.commentStrLength+1)))}return r}_createAddLineCommentsOperations(t,n){let r=[],i=this._insertSpace?` `:``;for(let a=0,o=t.length;a<o;a++){let o=t[a];o.ignore||r.push(e.EditOperation.insert(new e.Position$1(n+a,o.commentStrOffset+1),o.commentStr+i))}return r}static nextVisibleColumn(e,t,n,r){return n?e+(t-e%t):e+r}static _normalizeInsertionPoint(e,n,r,i){let a=1073741824,o,s;for(let o=0,s=n.length;o<s;o++){if(n[o].ignore)continue;let s=e.getLineContent(r+o),c=0;for(let e=0,r=n[o].commentStrOffset;c<a&&e<r;e++)c=t.nextVisibleColumn(c,i,s.charCodeAt(e)===9,1);c<a&&(a=c)}a=Math.floor(a/i)*i;for(let c=0,l=n.length;c<l;c++){if(n[c].ignore)continue;let l=e.getLineContent(r+c),u=0;for(o=0,s=n[c].commentStrOffset;u<a&&o<s;o++)u=t.nextVisibleColumn(u,i,l.charCodeAt(o)===9,1);u>a?n[c].commentStrOffset=o-1:n[c].commentStrOffset=o}}},Zg=class extends e.EditorAction{constructor(e,t){super(t),this._type=e}run(t,n){let r=t.get(e.ILanguageConfigurationService);if(!n.hasModel())return;let i=n.getModel(),a=[],o=i.getOptions(),s=n.getOption(23),c=n.getSelections().map((e,t)=>({selection:e,index:t,ignoreFirstLine:!1}));c.sort((t,n)=>e.Range$1.compareRangesUsingStarts(t.selection,n.selection));let l=c[0];for(let e=1;e<c.length;e++){let t=c[e];l.selection.endLineNumber===t.selection.startLineNumber&&(l.index<t.index?t.ignoreFirstLine=!0:(l.ignoreFirstLine=!0,l=t))}for(let e of c)a.push(new Xg(r,e.selection,o.indentSize,this._type,s.insertSpace,s.ignoreEmptyLines,e.ignoreFirstLine));n.pushUndoStop(),n.executeCommands(this.id,a),n.pushUndoStop()}},Qg=class extends Zg{constructor(){super(0,{id:`editor.action.commentLine`,label:e.localize(`comment.line`,`Toggle Line Comment`),alias:`Toggle Line Comment`,precondition:e.EditorContextKeys.writable,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:2138,weight:100},menuOpts:{menuId:e.MenuId.MenubarEditMenu,group:`5_insert`,title:e.localize({key:`miToggleLineComment`,comment:[`&& denotes a mnemonic`]},`&&Toggle Line Comment`),order:1}})}},$g=class extends Zg{constructor(){super(1,{id:`editor.action.addCommentLine`,label:e.localize(`comment.line.add`,`Add Line Comment`),alias:`Add Line Comment`,precondition:e.EditorContextKeys.writable,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:e.KeyChord(2089,2081),weight:100}})}},e_=class extends Zg{constructor(){super(2,{id:`editor.action.removeCommentLine`,label:e.localize(`comment.line.remove`,`Remove Line Comment`),alias:`Remove Line Comment`,precondition:e.EditorContextKeys.writable,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:e.KeyChord(2089,2099),weight:100}})}},t_=class extends e.EditorAction{constructor(){super({id:`editor.action.blockComment`,label:e.localize(`comment.block`,`Toggle Block Comment`),alias:`Toggle Block Comment`,precondition:e.EditorContextKeys.writable,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:1567,linux:{primary:3103},weight:100},menuOpts:{menuId:e.MenuId.MenubarEditMenu,group:`5_insert`,title:e.localize({key:`miToggleBlockComment`,comment:[`&& denotes a mnemonic`]},`Toggle &&Block Comment`),order:2}})}run(t,n){let r=t.get(e.ILanguageConfigurationService);if(!n.hasModel())return;let i=n.getOption(23),a=[],o=n.getSelections();for(let e of o)a.push(new Yg(e,i.insertSpace,r));n.pushUndoStop(),n.executeCommands(this.id,a),n.pushUndoStop()}};e.registerEditorAction(Qg),e.registerEditorAction($g),e.registerEditorAction(e_),e.registerEditorAction(t_);var n_=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},r_=function(e,t){return function(n,r){t(n,r,e)}},i_,a_=class{static{i_=this}static{this.ID=`editor.contrib.contextmenu`}static get(e){return e.getContribution(i_.ID)}constructor(t,n,r,i,a,o,s,c){this._contextMenuService=n,this._contextViewService=r,this._contextKeyService=i,this._keybindingService=a,this._menuService=o,this._configurationService=s,this._workspaceContextService=c,this._toDispose=new e.DisposableStore,this._contextMenuIsBeingShownCount=0,this._editor=t,this._toDispose.add(this._editor.onContextMenu(e=>this._onContextMenu(e))),this._toDispose.add(this._editor.onMouseWheel(t=>{if(this._contextMenuIsBeingShownCount>0){let n=this._contextViewService.getContextViewElement(),r=t.srcElement;r.shadowRoot&&e.getShadowRoot(n)===r.shadowRoot||this._contextViewService.hideContextView()}})),this._toDispose.add(this._editor.onKeyDown(e=>{this._editor.getOption(24)&&e.keyCode===58&&(e.preventDefault(),e.stopPropagation(),this.showContextMenu())}))}_onContextMenu(e){if(!this._editor.hasModel())return;if(!this._editor.getOption(24)){this._editor.focus(),e.target.position&&!this._editor.getSelection().containsPosition(e.target.position)&&this._editor.setPosition(e.target.position);return}if(e.target.type===12||e.target.type===6&&e.target.detail.injectedText)return;if(e.event.preventDefault(),e.event.stopPropagation(),e.target.type===11)return this._showScrollbarContextMenu(e.event);if(e.target.type!==6&&e.target.type!==7&&e.target.type!==1)return;if(this._editor.focus(),e.target.position){let t=!1;for(let n of this._editor.getSelections())if(n.containsPosition(e.target.position)){t=!0;break}t||this._editor.setPosition(e.target.position)}let t=null;e.target.type!==1&&(t=e.event),this.showContextMenu(t)}showContextMenu(e){if(!this._editor.getOption(24)||!this._editor.hasModel())return;let t=this._getMenuActions(this._editor.getModel(),this._editor.contextMenuId);t.length>0&&this._doShowContextMenu(t,e)}_getMenuActions(t,n){let r=[],i=this._menuService.getMenuActions(n,this._contextKeyService,{arg:t.uri});for(let n of i){let[,i]=n,a=0;for(let n of i)if(n instanceof e.SubmenuItemAction){let i=this._getMenuActions(t,n.item.submenu);i.length>0&&(r.push(new e.SubmenuAction(n.id,n.label,i)),a++)}else r.push(n),a++;a&&r.push(new e.Separator)}return r.length&&r.pop(),r}_doShowContextMenu(t,n=null){if(!this._editor.hasModel())return;let r=this._editor.getOption(60);this._editor.updateOptions({hover:{enabled:!1}});let i=n;if(!i){this._editor.revealPosition(this._editor.getPosition(),1),this._editor.render();let t=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),n=e.getDomNodePagePosition(this._editor.getDomNode()),r=n.left+t.left,a=n.top+t.top+t.height;i={x:r,y:a}}let a=this._editor.getOption(128)&&!e.isIOS;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:a?this._editor.getOverflowWidgetsDomNode()??this._editor.getDomNode():void 0,getAnchor:()=>i,getActions:()=>t,getActionViewItem:t=>{let n=this._keybindingFor(t);if(n)return new e.ActionViewItem(t,t,{label:!0,keybinding:n.getLabel(),isMenu:!0});let r=t;return typeof r.getActionViewItem==`function`?r.getActionViewItem():new e.ActionViewItem(t,t,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:e=>this._keybindingFor(e),onHide:e=>{this._contextMenuIsBeingShownCount--,this._editor.updateOptions({hover:r})}})}_showScrollbarContextMenu(t){if(!this._editor.hasModel()||e.isStandaloneEditorWorkspace(this._workspaceContextService.getWorkspace()))return;let n=this._editor.getOption(73),r=0,i=e=>({id:`menu-action-${++r}`,label:e.label,tooltip:``,class:void 0,enabled:e.enabled===void 0?!0:e.enabled,checked:e.checked,run:e.run}),a=(t,n)=>new e.SubmenuAction(`menu-action-${++r}`,t,n,void 0),o=(e,t,n,r,o)=>{if(!t)return i({label:e,enabled:t,run:()=>{}});let s=e=>()=>{this._configurationService.updateValue(n,e)},c=[];for(let e of o)c.push(i({label:e.label,checked:r===e.value,run:s(e.value)}));return a(e,c)},s=[];s.push(i({label:e.localize(`context.minimap.minimap`,`Minimap`),checked:n.enabled,run:()=>{this._configurationService.updateValue(`editor.minimap.enabled`,!n.enabled)}})),s.push(new e.Separator),s.push(i({label:e.localize(`context.minimap.renderCharacters`,`Render Characters`),enabled:n.enabled,checked:n.renderCharacters,run:()=>{this._configurationService.updateValue(`editor.minimap.renderCharacters`,!n.renderCharacters)}})),s.push(o(e.localize(`context.minimap.size`,`Vertical size`),n.enabled,`editor.minimap.size`,n.size,[{label:e.localize(`context.minimap.size.proportional`,`Proportional`),value:`proportional`},{label:e.localize(`context.minimap.size.fill`,`Fill`),value:`fill`},{label:e.localize(`context.minimap.size.fit`,`Fit`),value:`fit`}])),s.push(o(e.localize(`context.minimap.slider`,`Slider`),n.enabled,`editor.minimap.showSlider`,n.showSlider,[{label:e.localize(`context.minimap.slider.mouseover`,`Mouse Over`),value:`mouseover`},{label:e.localize(`context.minimap.slider.always`,`Always`),value:`always`}]));let c=this._editor.getOption(128)&&!e.isIOS;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:c?this._editor.getDomNode():void 0,getAnchor:()=>t,getActions:()=>s,onHide:e=>{this._contextMenuIsBeingShownCount--,this._editor.focus()}})}_keybindingFor(e){return this._keybindingService.lookupKeybinding(e.id)}dispose(){this._contextMenuIsBeingShownCount>0&&this._contextViewService.hideContextView(),this._toDispose.dispose()}};a_=i_=n_([r_(1,e.IContextMenuService),r_(2,e.IContextViewService),r_(3,e.IContextKeyService),r_(4,e.IKeybindingService),r_(5,e.IMenuService),r_(6,e.IConfigurationService),r_(7,e.IWorkspaceContextService)],a_);var o_=class extends e.EditorAction{constructor(){super({id:`editor.action.showContextMenu`,label:e.localize(`action.showContextMenu.label`,`Show Editor Context Menu`),alias:`Show Editor Context Menu`,precondition:void 0,kbOpts:{kbExpr:e.EditorContextKeys.textInputFocus,primary:1092,weight:100}})}run(e,t){a_.get(t)?.showContextMenu()}};e.registerEditorContribution(a_.ID,a_,2),e.registerEditorAction(o_);var s_=class{constructor(e){this.selections=e}equals(e){let t=this.selections.length,n=e.selections.length;if(t!==n)return!1;for(let n=0;n<t;n++)if(!this.selections[n].equalsSelection(e.selections[n]))return!1;return!0}},c_=class{constructor(e,t,n){this.cursorState=e,this.scrollTop=t,this.scrollLeft=n}},l_=class t extends e.Disposable{static{this.ID=`editor.contrib.cursorUndoRedoController`}static get(e){return e.getContribution(t.ID)}constructor(e){super(),this._editor=e,this._isCursorUndoRedo=!1,this._undoStack=[],this._redoStack=[],this._register(e.onDidChangeModel(e=>{this._undoStack=[],this._redoStack=[]})),this._register(e.onDidChangeModelContent(e=>{this._undoStack=[],this._redoStack=[]})),this._register(e.onDidChangeCursorSelection(t=>{if(this._isCursorUndoRedo||!t.oldSelections||t.oldModelVersionId!==t.modelVersionId)return;let n=new s_(t.oldSelections);this._undoStack.length>0&&this._undoStack[this._undoStack.length-1].cursorState.equals(n)||(this._undoStack.push(new c_(n,e.getScrollTop(),e.getScrollLeft())),this._redoStack=[],this._undoStack.length>50&&this._undoStack.shift())}))}cursorUndo(){!this._editor.hasModel()||this._undoStack.length===0||(this._redoStack.push(new c_(new s_(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._undoStack.pop()))}cursorRedo(){!this._editor.hasModel()||this._redoStack.length===0||(this._undoStack.push(new c_(new s_(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._redoStack.pop()))}_applyState(e){this._isCursorUndoRedo=!0,this._editor.setSelections(e.cursorState.selections),this._editor.setScrollPosition({scrollTop:e.scrollTop,scrollLeft:e.scrollLeft}),this._isCursorUndoRedo=!1}},u_=class extends e.EditorAction{constructor(){super({id:`cursorUndo`,label:e.localize(`cursor.undo`,`Cursor Undo`),alias:`Cursor Undo`,precondition:void 0,kbOpts:{kbExpr:e.EditorContextKeys.textInputFocus,primary:2099,weight:100}})}run(e,t,n){l_.get(t)?.cursorUndo()}},d_=class extends e.EditorAction{constructor(){super({id:`cursorRedo`,label:e.localize(`cursor.redo`,`Cursor Redo`),alias:`Cursor Redo`,precondition:void 0})}run(e,t,n){l_.get(t)?.cursorRedo()}};e.registerEditorContribution(l_.ID,l_,0),e.registerEditorAction(u_),e.registerEditorAction(d_);var f_=class{constructor(e,t,n){this.selection=e,this.targetPosition=t,this.copy=n,this.targetSelection=null}getEditOperations(t,n){let r=t.getValueInRange(this.selection);if(this.copy||n.addEditOperation(this.selection,null),n.addEditOperation(new e.Range$1(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column),r),this.selection.containsPosition(this.targetPosition)&&!(this.copy&&(this.selection.getEndPosition().equals(this.targetPosition)||this.selection.getStartPosition().equals(this.targetPosition)))){this.targetSelection=this.selection;return}if(this.copy){this.targetSelection=new e.Selection$1(this.targetPosition.lineNumber,this.targetPosition.column,this.selection.endLineNumber-this.selection.startLineNumber+this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumber>this.selection.endLineNumber){this.targetSelection=new e.Selection$1(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumber<this.selection.endLineNumber){this.targetSelection=new e.Selection$1(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber+this.selection.endLineNumber-this.selection.startLineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}this.selection.endColumn<=this.targetPosition.column?this.targetSelection=new e.Selection$1(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,(this.selection.startLineNumber,this.selection.endLineNumber,this.targetPosition.column-this.selection.endColumn+this.selection.startColumn),this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column:this.selection.endColumn):this.targetSelection=new e.Selection$1(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column+this.selection.endColumn-this.selection.startColumn)}computeCursorState(e,t){return this.targetSelection}};function p_(t){return e.isMacintosh?t.altKey:t.ctrlKey}var m_=class t extends e.Disposable{static{this.ID=`editor.contrib.dragAndDrop`}static{this.TRIGGER_KEY_VALUE=e.isMacintosh?6:5}constructor(e){super(),this._editor=e,this._dndDecorationIds=this._editor.createDecorationsCollection(),this._register(this._editor.onMouseDown(e=>this._onEditorMouseDown(e))),this._register(this._editor.onMouseUp(e=>this._onEditorMouseUp(e))),this._register(this._editor.onMouseDrag(e=>this._onEditorMouseDrag(e))),this._register(this._editor.onMouseDrop(e=>this._onEditorMouseDrop(e))),this._register(this._editor.onMouseDropCanceled(()=>this._onEditorMouseDropCanceled())),this._register(this._editor.onKeyDown(e=>this.onEditorKeyDown(e))),this._register(this._editor.onKeyUp(e=>this.onEditorKeyUp(e))),this._register(this._editor.onDidBlurEditorWidget(()=>this.onEditorBlur())),this._register(this._editor.onDidBlurEditorText(()=>this.onEditorBlur())),this._mouseDown=!1,this._modifierPressed=!1,this._dragSelection=null}onEditorBlur(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1}onEditorKeyDown(e){!this._editor.getOption(35)||this._editor.getOption(22)||(p_(e)&&(this._modifierPressed=!0),this._mouseDown&&p_(e)&&this._editor.updateOptions({mouseStyle:`copy`}))}onEditorKeyUp(e){!this._editor.getOption(35)||this._editor.getOption(22)||(p_(e)&&(this._modifierPressed=!1),this._mouseDown&&e.keyCode===t.TRIGGER_KEY_VALUE&&this._editor.updateOptions({mouseStyle:`default`}))}_onEditorMouseDown(e){this._mouseDown=!0}_onEditorMouseUp(e){this._mouseDown=!1,this._editor.updateOptions({mouseStyle:`text`})}_onEditorMouseDrag(e){let t=e.target;if(this._dragSelection===null){let e=(this._editor.getSelections()||[]).filter(e=>t.position&&e.containsPosition(t.position));if(e.length===1)this._dragSelection=e[0];else return}p_(e.event)?this._editor.updateOptions({mouseStyle:`copy`}):this._editor.updateOptions({mouseStyle:`default`}),t.position&&(this._dragSelection.containsPosition(t.position)?this._removeDecoration():this.showAt(t.position))}_onEditorMouseDropCanceled(){this._editor.updateOptions({mouseStyle:`text`}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}_onEditorMouseDrop(n){if(n.target&&(this._hitContent(n.target)||this._hitMargin(n.target))&&n.target.position){let r=new e.Position$1(n.target.position.lineNumber,n.target.position.column);if(this._dragSelection===null){let t=null;if(n.event.shiftKey){let n=this._editor.getSelection();if(n){let{selectionStartLineNumber:i,selectionStartColumn:a}=n;t=[new e.Selection$1(i,a,r.lineNumber,r.column)]}}else t=(this._editor.getSelections()||[]).map(t=>t.containsPosition(r)?new e.Selection$1(r.lineNumber,r.column,r.lineNumber,r.column):t);this._editor.setSelections(t||[],`mouse`,3)}else (!this._dragSelection.containsPosition(r)||(p_(n.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(r)||this._dragSelection.getStartPosition().equals(r)))&&(this._editor.pushUndoStop(),this._editor.executeCommand(t.ID,new f_(this._dragSelection,r,p_(n.event)||this._modifierPressed)),this._editor.pushUndoStop())}this._editor.updateOptions({mouseStyle:`text`}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}static{this._DECORATION_OPTIONS=e.ModelDecorationOptions.register({description:`dnd-target`,className:`dnd-target`})}showAt(n){this._dndDecorationIds.set([{range:new e.Range$1(n.lineNumber,n.column,n.lineNumber,n.column),options:t._DECORATION_OPTIONS}]),this._editor.revealPosition(n,1)}_removeDecoration(){this._dndDecorationIds.clear()}_hitContent(e){return e.type===6||e.type===7}_hitMargin(e){return e.type===2||e.type===3||e.type===4}dispose(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,super.dispose()}};e.registerEditorContribution(m_.ID,m_,2),e.registerEditorContribution(Zl.ID,Zl,0),e.registerEditorFeature(ul),e.registerEditorCommand(new class extends e.EditorCommand{constructor(){super({id:Jl,precondition:Yl,kbOpts:{weight:100,primary:2137}})}runEditorCommand(e,t){return Zl.get(t)?.changePasteType()}}),e.registerEditorCommand(new class extends e.EditorCommand{constructor(){super({id:`editor.hidePasteWidget`,precondition:Yl,kbOpts:{weight:100,primary:9}})}runEditorCommand(e,t){Zl.get(t)?.clearWidgets()}}),e.registerEditorAction(class t extends e.EditorAction{static{this.argsSchema={type:`object`,properties:{kind:{type:`string`,description:e.localize(`pasteAs.kind`,`The kind of the paste edit to try applying. If not provided or there are multiple edits for this kind, the editor will show a picker.`)}}}}constructor(){super({id:`editor.action.pasteAs`,label:e.localize(`pasteAs`,`Paste As...`),alias:`Paste As...`,precondition:e.EditorContextKeys.writable,metadata:{description:`Paste as`,args:[{name:`args`,schema:t.argsSchema}]}})}run(e,t,n){let r=typeof n?.kind==`string`?n.kind:void 0;return!r&&n&&(r=typeof n.id==`string`?n.id:void 0),Zl.get(t)?.pasteAs(r?new G(r):void 0)}}),e.registerEditorAction(class extends e.EditorAction{constructor(){super({id:`editor.action.pasteAsText`,label:e.localize(`pasteAsText`,`Paste as Text`),alias:`Paste as Text`,precondition:e.EditorContextKeys.writable})}run(e,t){return Zl.get(t)?.pasteAs({providerId:il.id})}});var h_=class{constructor(){this._dragOperations=new Map}removeDragOperationTransfer(e){if(e&&this._dragOperations.has(e)){let t=this._dragOperations.get(e);return this._dragOperations.delete(e),t}}},g_=class{constructor(e){this.identifier=e}};const __=e.createDecorator(`treeViewsDndService`);e.registerSingleton(__,h_,1);var v_=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},y_=function(e,t){return function(n,r){t(n,r,e)}},b_;const x_=`editor.experimental.dropIntoEditor.defaultProvider`,S_=`editor.changeDropType`,C_=new e.RawContextKey(`dropWidgetVisible`,!1,e.localize(`dropWidgetVisible`,`Whether the drop widget is showing`));var w_=class extends e.Disposable{static{b_=this}static{this.ID=`editor.contrib.dropIntoEditorController`}static get(e){return e.getContribution(b_.ID)}constructor(t,n,r,i,a){super(),this._configService=r,this._languageFeaturesService=i,this._treeViewsDragAndDropService=a,this.treeItemsTransfer=Xc.getInstance(),this._dropProgressManager=this._register(n.createInstance(kl,`dropIntoEditor`,t)),this._postDropWidgetManager=this._register(n.createInstance(Wl,`dropIntoEditor`,t,C_,{id:S_,label:e.localize(`postDropWidgetTitle`,`Show drop options...`)})),this._register(t.onDropIntoEditor(e=>this.onDropIntoEditor(t,e.position,e.event)))}clearWidgets(){this._postDropWidgetManager.clear()}changeDropType(){this._postDropWidgetManager.tryShowSelector()}async onDropIntoEditor(t,n,r){if(!r.dataTransfer||!t.hasModel())return;this._currentOperation?.cancel(),t.focus(),t.setPosition(n);let i=e.createCancelablePromise(async a=>{let o=new e.DisposableStore,s=o.add(new e.EditorStateCancellationTokenSource(t,1,void 0,a));try{let i=await this.extractDataTransferData(r);if(i.size===0||s.token.isCancellationRequested)return;let c=t.getModel();if(!c)return;let l=this._languageFeaturesService.documentDropEditProvider.ordered(c).filter(e=>e.dropMimeTypes?e.dropMimeTypes.some(e=>i.matches(e)):!0),u=o.add(await this.getDropEdits(l,c,n,i,s));if(s.token.isCancellationRequested)return;if(u.edits.length){let r=this.getInitialActiveEditIndex(c,u.edits),i=t.getOption(36).showDropSelector===`afterDrop`;await this._postDropWidgetManager.applyEditAndShowIfNeeded([e.Range$1.fromPositions(n)],{activeEditIndex:r,allEdits:u.edits},i,async e=>e,a)}}finally{o.dispose(),this._currentOperation===i&&(this._currentOperation=void 0)}});this._dropProgressManager.showWhile(n,e.localize(`dropIntoEditorProgress`,`Running drop handlers. Click to cancel`),i,{cancel:()=>i.cancel()}),this._currentOperation=i}async getDropEdits(t,n,r,i,a){let o=new e.DisposableStore,s=await e.raceCancellation(Promise.all(t.map(async e=>{try{let t=await e.provideDocumentDropEdits(n,r,i,a.token);return t&&o.add(t),t?.edits.map(t=>({...t,providerId:e.id}))}catch(e){console.error(e)}})),a.token),c=e.coalesce(s??[]).flat();return{edits:wl(c),dispose:()=>o.dispose()}}getInitialActiveEditIndex(e,t){let n=this._configService.getValue(x_,{resource:e.uri});for(let[e,r]of Object.entries(n)){let n=new G(r),i=t.findIndex(t=>n.value===t.providerId&&t.handledMimeType&&Wc(e,[t.handledMimeType]));if(i>=0)return i}return 0}async extractDataTransferData(e){if(!e.dataTransfer)return new Hc;let t=el(e.dataTransfer);if(this.treeItemsTransfer.hasData(g_.prototype)){let e=this.treeItemsTransfer.getData(g_.prototype);if(Array.isArray(e))for(let n of e){let e=await this._treeViewsDragAndDropService.removeDragOperationTransfer(n.identifier);if(e)for(let[n,r]of e)t.replace(n,r)}}return t}};w_=b_=v_([y_(1,e.IInstantiationService),y_(2,e.IConfigurationService),y_(3,e.ILanguageFeaturesService),y_(4,__)],w_),e.registerEditorContribution(w_.ID,w_,2),e.registerEditorFeature(ll),e.registerEditorCommand(new class extends e.EditorCommand{constructor(){super({id:S_,precondition:C_,kbOpts:{weight:100,primary:2137}})}runEditorCommand(e,t,n){w_.get(t)?.changeDropType()}}),e.registerEditorCommand(new class extends e.EditorCommand{constructor(){super({id:`editor.hideDropWidget`,precondition:C_,kbOpts:{weight:100,primary:9}})}runEditorCommand(e,t,n){w_.get(t)?.clearWidgets()}}),e.Registry.as(e.Extensions$1.Configuration).registerConfiguration({...e.editorConfigurationBaseNode,properties:{[x_]:{type:`object`,scope:5,description:e.localize(`defaultProviderDescription`,`Configures the default drop provider to use for content of a given mime type.`),default:{},additionalProperties:{type:`string`}}}});var T_=class t{constructor(e){this._editor=e,this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null,this._startPosition=this._editor.getPosition()}dispose(){this._editor.removeDecorations(this._allDecorations()),this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}reset(){this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}getCount(){return this._decorations.length}getFindScope(){return this._findScopeDecorationIds[0]?this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]):null}getFindScopes(){if(this._findScopeDecorationIds.length){let e=this._findScopeDecorationIds.map(e=>this._editor.getModel().getDecorationRange(e)).filter(e=>!!e);if(e.length)return e}return null}getStartPosition(){return this._startPosition}setStartPosition(e){this._startPosition=e,this.setCurrentFindMatch(null)}_getDecorationIndex(e){let t=this._decorations.indexOf(e);return t>=0?t+1:1}getDecorationRangeAt(e){let t=e<this._decorations.length?this._decorations[e]:null;return t?this._editor.getModel().getDecorationRange(t):null}getCurrentMatchesPosition(e){let n=this._editor.getModel().getDecorationsInRange(e);for(let e of n){let n=e.options;if(n===t._FIND_MATCH_DECORATION||n===t._CURRENT_FIND_MATCH_DECORATION)return this._getDecorationIndex(e.id)}return 0}setCurrentFindMatch(n){let r=null,i=0;if(n)for(let e=0,t=this._decorations.length;e<t;e++){let t=this._editor.getModel().getDecorationRange(this._decorations[e]);if(n.equalsRange(t)){r=this._decorations[e],i=e+1;break}}return(this._highlightedDecorationId!==null||r!==null)&&this._editor.changeDecorations(n=>{if(this._highlightedDecorationId!==null&&(n.changeDecorationOptions(this._highlightedDecorationId,t._FIND_MATCH_DECORATION),this._highlightedDecorationId=null),r!==null&&(this._highlightedDecorationId=r,n.changeDecorationOptions(this._highlightedDecorationId,t._CURRENT_FIND_MATCH_DECORATION)),this._rangeHighlightDecorationId!==null&&(n.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),r!==null){let i=this._editor.getModel().getDecorationRange(r);if(i.startLineNumber!==i.endLineNumber&&i.endColumn===1){let t=i.endLineNumber-1,n=this._editor.getModel().getLineMaxColumn(t);i=new e.Range$1(i.startLineNumber,i.startColumn,t,n)}this._rangeHighlightDecorationId=n.addDecoration(i,t._RANGE_HIGHLIGHT_DECORATION)}}),i}set(n,r){this._editor.changeDecorations(i=>{let a=t._FIND_MATCH_DECORATION,o=[];if(n.length>1e3){a=t._FIND_MATCH_NO_OVERVIEW_DECORATION;let r=this._editor.getModel().getLineCount(),i=this._editor.getLayoutInfo().height/r,s=Math.max(2,Math.ceil(3/i)),c=n[0].range.startLineNumber,l=n[0].range.endLineNumber;for(let r=1,i=n.length;r<i;r++){let i=n[r].range;l+s>=i.startLineNumber?i.endLineNumber>l&&(l=i.endLineNumber):(o.push({range:new e.Range$1(c,1,l,1),options:t._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),c=i.startLineNumber,l=i.endLineNumber)}o.push({range:new e.Range$1(c,1,l,1),options:t._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}let s=Array(n.length);for(let e=0,t=n.length;e<t;e++)s[e]={range:n[e].range,options:a};this._decorations=i.deltaDecorations(this._decorations,s),this._overviewRulerApproximateDecorations=i.deltaDecorations(this._overviewRulerApproximateDecorations,o),this._rangeHighlightDecorationId&&=(i.removeDecoration(this._rangeHighlightDecorationId),null),this._findScopeDecorationIds.length&&(this._findScopeDecorationIds.forEach(e=>i.removeDecoration(e)),this._findScopeDecorationIds=[]),r?.length&&(this._findScopeDecorationIds=r.map(e=>i.addDecoration(e,t._FIND_SCOPE_DECORATION)))})}matchBeforePosition(e){if(this._decorations.length===0)return null;for(let t=this._decorations.length-1;t>=0;t--){let n=this._decorations[t],r=this._editor.getModel().getDecorationRange(n);if(!(!r||r.endLineNumber>e.lineNumber)&&(r.endLineNumber<e.lineNumber||!(r.endColumn>e.column)))return r}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}matchAfterPosition(e){if(this._decorations.length===0)return null;for(let t=0,n=this._decorations.length;t<n;t++){let n=this._decorations[t],r=this._editor.getModel().getDecorationRange(n);if(!(!r||r.startLineNumber<e.lineNumber)&&(r.startLineNumber>e.lineNumber||!(r.startColumn<e.column)))return r}return this._editor.getModel().getDecorationRange(this._decorations[0])}_allDecorations(){let e=[];return e=e.concat(this._decorations),e=e.concat(this._overviewRulerApproximateDecorations),this._findScopeDecorationIds.length&&e.push(...this._findScopeDecorationIds),this._rangeHighlightDecorationId&&e.push(this._rangeHighlightDecorationId),e}static{this._CURRENT_FIND_MATCH_DECORATION=e.ModelDecorationOptions.register({description:`current-find-match`,stickiness:1,zIndex:13,className:`currentFindMatch`,inlineClassName:`currentFindMatchInline`,showIfCollapsed:!0,overviewRuler:{color:e.themeColorFromId(e.overviewRulerFindMatchForeground),position:e.OverviewRulerLane.Center},minimap:{color:e.themeColorFromId(e.minimapFindMatch),position:1}})}static{this._FIND_MATCH_DECORATION=e.ModelDecorationOptions.register({description:`find-match`,stickiness:1,zIndex:10,className:`findMatch`,inlineClassName:`findMatchInline`,showIfCollapsed:!0,overviewRuler:{color:e.themeColorFromId(e.overviewRulerFindMatchForeground),position:e.OverviewRulerLane.Center},minimap:{color:e.themeColorFromId(e.minimapFindMatch),position:1}})}static{this._FIND_MATCH_NO_OVERVIEW_DECORATION=e.ModelDecorationOptions.register({description:`find-match-no-overview`,stickiness:1,className:`findMatch`,showIfCollapsed:!0})}static{this._FIND_MATCH_ONLY_OVERVIEW_DECORATION=e.ModelDecorationOptions.register({description:`find-match-only-overview`,stickiness:1,overviewRuler:{color:e.themeColorFromId(e.overviewRulerFindMatchForeground),position:e.OverviewRulerLane.Center}})}static{this._RANGE_HIGHLIGHT_DECORATION=e.ModelDecorationOptions.register({description:`find-range-highlight`,stickiness:1,className:`rangeHighlight`,isWholeLine:!0})}static{this._FIND_SCOPE_DECORATION=e.ModelDecorationOptions.register({description:`find-scope`,className:`findScope`,isWholeLine:!0})}},E_=class{constructor(e,t,n){this._editorSelection=e,this._ranges=t,this._replaceStrings=n,this._trackedEditorSelectionId=null}getEditOperations(t,n){if(this._ranges.length>0){let t=[];for(let e=0;e<this._ranges.length;e++)t.push({range:this._ranges[e],text:this._replaceStrings[e]});t.sort((t,n)=>e.Range$1.compareRangesUsingStarts(t.range,n.range));let r=[],i=t[0];for(let e=1;e<t.length;e++)i.range.endLineNumber===t[e].range.startLineNumber&&i.range.endColumn===t[e].range.startColumn?(i.range=i.range.plusRange(t[e].range),i.text+=t[e].text):(r.push(i),i=t[e]);r.push(i);for(let e of r)n.addEditOperation(e.range,e.text)}this._trackedEditorSelectionId=n.trackSelection(this._editorSelection)}computeCursorState(e,t){return t.getTrackedSelection(this._trackedEditorSelectionId)}};function D_(t,n){if(t&&t[0]!==``){let r=O_(t,n,`-`),i=O_(t,n,`_`);return r&&!i?k_(t,n,`-`):!r&&i?k_(t,n,`_`):t[0].toUpperCase()===t[0]?n.toUpperCase():t[0].toLowerCase()===t[0]?n.toLowerCase():e.containsUppercaseCharacter(t[0][0])&&n.length>0?n[0].toUpperCase()+n.substr(1):t[0][0].toUpperCase()!==t[0][0]&&n.length>0?n[0].toLowerCase()+n.substr(1):n}else return n}function O_(e,t,n){return e[0].indexOf(n)!==-1&&t.indexOf(n)!==-1&&e[0].split(n).length===t.split(n).length}function k_(e,t,n){let r=t.split(n),i=e[0].split(n),a=``;return r.forEach((e,t)=>{a+=D_([i[t]],e)+n}),a.slice(0,-1)}var A_=class{constructor(e){this.staticValue=e,this.kind=0}},j_=class{constructor(e){this.pieces=e,this.kind=1}},M_=class e{static fromStaticValue(t){return new e([N_.staticValue(t)])}get hasReplacementPatterns(){return this._state.kind===1}constructor(e){!e||e.length===0?this._state=new A_(``):e.length===1&&e[0].staticValue!==null?this._state=new A_(e[0].staticValue):this._state=new j_(e)}buildReplaceString(t,n){if(this._state.kind===0)return n?D_(t,this._state.staticValue):this._state.staticValue;let r=``;for(let n=0,i=this._state.pieces.length;n<i;n++){let i=this._state.pieces[n];if(i.staticValue!==null){r+=i.staticValue;continue}let a=e._substitute(i.matchIndex,t);if(i.caseOps!==null&&i.caseOps.length>0){let e=[],t=i.caseOps.length,n=0;for(let r=0,o=a.length;r<o;r++){if(n>=t){e.push(a.slice(r));break}switch(i.caseOps[n]){case`U`:e.push(a[r].toUpperCase());break;case`u`:e.push(a[r].toUpperCase()),n++;break;case`L`:e.push(a[r].toLowerCase());break;case`l`:e.push(a[r].toLowerCase()),n++;break;default:e.push(a[r])}}a=e.join(``)}r+=a}return r}static _substitute(e,t){if(t===null)return``;if(e===0)return t[0];let n=``;for(;e>0;){if(e<t.length)return(t[e]||``)+n;n=String(e%10)+n,e=Math.floor(e/10)}return`$`+n}},N_=class e{static staticValue(t){return new e(t,-1,null)}static caseOps(t,n){return new e(null,t,n)}constructor(e,t,n){this.staticValue=e,this.matchIndex=t,!n||n.length===0?this.caseOps=null:this.caseOps=n.slice(0)}},P_=class{constructor(e){this._source=e,this._lastCharIndex=0,this._result=[],this._resultLen=0,this._currentStaticPiece=``}emitUnchanged(e){this._emitStatic(this._source.substring(this._lastCharIndex,e)),this._lastCharIndex=e}emitStatic(e,t){this._emitStatic(e),this._lastCharIndex=t}_emitStatic(e){e.length!==0&&(this._currentStaticPiece+=e)}emitMatchIndex(e,t,n){this._currentStaticPiece.length!==0&&(this._result[this._resultLen++]=N_.staticValue(this._currentStaticPiece),this._currentStaticPiece=``),this._result[this._resultLen++]=N_.caseOps(e,n),this._lastCharIndex=t}finalize(){return this.emitUnchanged(this._source.length),this._currentStaticPiece.length!==0&&(this._result[this._resultLen++]=N_.staticValue(this._currentStaticPiece),this._currentStaticPiece=``),new M_(this._result)}};function F_(e){if(!e||e.length===0)return new M_(null);let t=[],n=new P_(e);for(let r=0,i=e.length;r<i;r++){let a=e.charCodeAt(r);if(a===92){if(r++,r>=i)break;let a=e.charCodeAt(r);switch(a){case 92:n.emitUnchanged(r-1),n.emitStatic(`\\`,r+1);break;case 110:n.emitUnchanged(r-1),n.emitStatic(`
`,r+1);break;case 116:n.emitUnchanged(r-1),n.emitStatic(` `,r+1);break;case 117:case 85:case 108:case 76:n.emitUnchanged(r-1),n.emitStatic(``,r+1),t.push(String.fromCharCode(a));break}continue}if(a===36){if(r++,r>=i)break;let a=e.charCodeAt(r);if(a===36){n.emitUnchanged(r-1),n.emitStatic(`$`,r+1);continue}if(a===48||a===38){n.emitUnchanged(r-1),n.emitMatchIndex(0,r+1,t),t.length=0;continue}if(49<=a&&a<=57){let o=a-48;if(r+1<i){let i=e.charCodeAt(r+1);if(48<=i&&i<=57){r++,o=o*10+(i-48),n.emitUnchanged(r-2),n.emitMatchIndex(o,r+1,t),t.length=0;continue}}n.emitUnchanged(r-1),n.emitMatchIndex(o,r+1,t),t.length=0;continue}}}return n.finalize()}const I_=new e.RawContextKey(`findWidgetVisible`,!1),L_=I_.toNegated(),R_=new e.RawContextKey(`findInputFocussed`,!1),z_=new e.RawContextKey(`replaceInputFocussed`,!1),B_={primary:545,mac:{primary:2593}},V_={primary:565,mac:{primary:2613}},H_={primary:560,mac:{primary:2608}},U_={primary:554,mac:{primary:2602}},W_={primary:558,mac:{primary:2606}},J={StartFindAction:`actions.find`,StartFindWithSelection:`actions.findWithSelection`,StartFindWithArgs:`editor.actions.findWithArgs`,NextMatchFindAction:`editor.action.nextMatchFindAction`,PreviousMatchFindAction:`editor.action.previousMatchFindAction`,GoToMatchFindAction:`editor.action.goToMatchFindAction`,NextSelectionMatchFindAction:`editor.action.nextSelectionMatchFindAction`,PreviousSelectionMatchFindAction:`editor.action.previousSelectionMatchFindAction`,StartFindReplaceAction:`editor.action.startFindReplaceAction`,CloseFindWidgetCommand:`closeFindWidget`,ToggleCaseSensitiveCommand:`toggleFindCaseSensitive`,ToggleWholeWordCommand:`toggleFindWholeWord`,ToggleRegexCommand:`toggleFindRegex`,ToggleSearchScopeCommand:`toggleFindInSelection`,TogglePreserveCaseCommand:`togglePreserveCase`,ReplaceOneAction:`editor.action.replaceOne`,ReplaceAllAction:`editor.action.replaceAll`,SelectAllMatchesAction:`editor.action.selectAllMatches`},G_=19999;var K_=240,q_=class t{constructor(t,n){this._toDispose=new e.DisposableStore,this._editor=t,this._state=n,this._isDisposed=!1,this._startSearchingTimer=new e.TimeoutTimer,this._decorations=new T_(t),this._toDispose.add(this._decorations),this._updateDecorationsScheduler=new e.RunOnceScheduler(()=>{if(this._editor.hasModel())return this.research(!1)},100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition(e=>{(e.reason===3||e.reason===5||e.reason===6)&&this._decorations.setStartPosition(this._editor.getPosition())})),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent(e=>{this._ignoreModelContentChanged||(e.isFlush&&this._decorations.reset(),this._decorations.setStartPosition(this._editor.getPosition()),this._updateDecorationsScheduler.schedule())})),this._toDispose.add(this._state.onFindReplaceStateChange(e=>this._onStateChanged(e))),this.research(!1,this._state.searchScope)}dispose(){this._isDisposed=!0,e.dispose(this._startSearchingTimer),this._toDispose.dispose()}_onStateChanged(e){this._isDisposed||this._editor.hasModel()&&(e.searchString||e.isReplaceRevealed||e.isRegex||e.wholeWord||e.matchCase||e.searchScope)&&(this._editor.getModel().isTooLargeForSyncing()?(this._startSearchingTimer.cancel(),this._startSearchingTimer.setIfNotSet(()=>{e.searchScope?this.research(e.moveCursor,this._state.searchScope):this.research(e.moveCursor)},K_)):e.searchScope?this.research(e.moveCursor,this._state.searchScope):this.research(e.moveCursor))}static _getSearchRange(e,t){return t||e.getFullModelRange()}research(t,n){let r=null;n===void 0?r=this._decorations.getFindScopes():n!==null&&(r=Array.isArray(n)?n:[n]),r!==null&&(r=r.map(t=>{if(t.startLineNumber!==t.endLineNumber){let n=t.endLineNumber;return t.endColumn===1&&--n,new e.Range$1(t.startLineNumber,1,n,this._editor.getModel().getLineMaxColumn(n))}return t}));let i=this._findMatches(r,!1,G_);this._decorations.set(i,r);let a=this._editor.getSelection(),o=this._decorations.getCurrentMatchesPosition(a);if(o===0&&i.length>0){let t=e.findFirstIdxMonotonousOrArrLen(i.map(e=>e.range),t=>e.Range$1.compareRangesUsingStarts(t,a)>=0);o=t>0?t-1+1:o}this._state.changeMatchInfo(o,this._decorations.getCount(),void 0),t&&this._editor.getOption(41).cursorMoveOnType&&this._moveToNextMatch(this._decorations.getStartPosition())}_hasMatches(){return this._state.matchesCount>0}_cannotFind(){if(!this._hasMatches()){let e=this._decorations.getFindScope();return e&&this._editor.revealRangeInCenterIfOutsideViewport(e,0),!0}return!1}_setCurrentFindMatch(e){let t=this._decorations.setCurrentFindMatch(e);this._state.changeMatchInfo(t,this._decorations.getCount(),e),this._editor.setSelection(e),this._editor.revealRangeInCenterIfOutsideViewport(e,0)}_prevSearchPosition(t){let n=this._state.isRegex&&(this._state.searchString.indexOf(`^`)>=0||this._state.searchString.indexOf(`$`)>=0),{lineNumber:r,column:i}=t,a=this._editor.getModel();return n||i===1?(r===1?r=a.getLineCount():r--,i=a.getLineMaxColumn(r)):i--,new e.Position$1(r,i)}_moveToPrevMatch(n,r=!1){if(!this._state.canNavigateBack()){let e=this._decorations.matchAfterPosition(n);e&&this._setCurrentFindMatch(e);return}if(this._decorations.getCount()<19999){let e=this._decorations.matchBeforePosition(n);e&&e.isEmpty()&&e.getStartPosition().equals(n)&&(n=this._prevSearchPosition(n),e=this._decorations.matchBeforePosition(n)),e&&this._setCurrentFindMatch(e);return}if(this._cannotFind())return;let i=this._decorations.getFindScope(),a=t._getSearchRange(this._editor.getModel(),i);a.getEndPosition().isBefore(n)&&(n=a.getEndPosition()),n.isBefore(a.getStartPosition())&&(n=a.getEndPosition());let{lineNumber:o,column:s}=n,c=this._editor.getModel(),l=new e.Position$1(o,s),u=c.findPreviousMatch(this._state.searchString,l,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(132):null,!1);if(u&&u.range.isEmpty()&&u.range.getStartPosition().equals(l)&&(l=this._prevSearchPosition(l),u=c.findPreviousMatch(this._state.searchString,l,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(132):null,!1)),u){if(!r&&!a.containsRange(u.range))return this._moveToPrevMatch(u.range.getStartPosition(),!0);this._setCurrentFindMatch(u.range)}}moveToPrevMatch(){this._moveToPrevMatch(this._editor.getSelection().getStartPosition())}_nextSearchPosition(t){let n=this._state.isRegex&&(this._state.searchString.indexOf(`^`)>=0||this._state.searchString.indexOf(`$`)>=0),{lineNumber:r,column:i}=t,a=this._editor.getModel();return n||i===a.getLineMaxColumn(r)?(r===a.getLineCount()?r=1:r++,i=1):i++,new e.Position$1(r,i)}_moveToNextMatch(e){if(!this._state.canNavigateForward()){let t=this._decorations.matchBeforePosition(e);t&&this._setCurrentFindMatch(t);return}if(this._decorations.getCount()<19999){let t=this._decorations.matchAfterPosition(e);t&&t.isEmpty()&&t.getStartPosition().equals(e)&&(e=this._nextSearchPosition(e),t=this._decorations.matchAfterPosition(e)),t&&this._setCurrentFindMatch(t);return}let t=this._getNextMatch(e,!1,!0);t&&this._setCurrentFindMatch(t.range)}_getNextMatch(n,r,i,a=!1){if(this._cannotFind())return null;let o=this._decorations.getFindScope(),s=t._getSearchRange(this._editor.getModel(),o);s.getEndPosition().isBefore(n)&&(n=s.getStartPosition()),n.isBefore(s.getStartPosition())&&(n=s.getStartPosition());let{lineNumber:c,column:l}=n,u=this._editor.getModel(),d=new e.Position$1(c,l),f=u.findNextMatch(this._state.searchString,d,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(132):null,r);return i&&f&&f.range.isEmpty()&&f.range.getStartPosition().equals(d)&&(d=this._nextSearchPosition(d),f=u.findNextMatch(this._state.searchString,d,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(132):null,r)),f?!a&&!s.containsRange(f.range)?this._getNextMatch(f.range.getEndPosition(),r,i,!0):f:null}moveToNextMatch(){this._moveToNextMatch(this._editor.getSelection().getEndPosition())}_moveToMatch(e){let t=this._decorations.getDecorationRangeAt(e);t&&this._setCurrentFindMatch(t)}moveToMatch(e){this._moveToMatch(e)}_getReplacePattern(){return this._state.isRegex?F_(this._state.replaceString):M_.fromStaticValue(this._state.replaceString)}replace(){if(!this._hasMatches())return;let t=this._getReplacePattern(),n=this._editor.getSelection(),r=this._getNextMatch(n.getStartPosition(),!0,!1);if(r)if(n.equalsRange(r.range)){let i=t.buildReplaceString(r.matches,this._state.preserveCase),a=new e.ReplaceCommand(n,i);this._executeEditorCommand(`replace`,a),this._decorations.setStartPosition(new e.Position$1(n.startLineNumber,n.startColumn+i.length)),this.research(!0)}else this._decorations.setStartPosition(this._editor.getPosition()),this._setCurrentFindMatch(r.range)}_findMatches(e,n,r){let i=(e||[null]).map(e=>t._getSearchRange(this._editor.getModel(),e));return this._editor.getModel().findMatches(this._state.searchString,i,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(132):null,n,r)}replaceAll(){if(!this._hasMatches())return;let e=this._decorations.getFindScopes();e===null&&this._state.matchesCount>=19999?this._largeReplaceAll():this._regularReplaceAll(e),this.research(!1)}_largeReplaceAll(){let t=new e.SearchParams(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(132):null).parseSearchRequest();if(!t)return;let n=t.regex;if(!n.multiline){let e=`mu`;n.ignoreCase&&(e+=`i`),n.global&&(e+=`g`),n=new RegExp(n.source,e)}let r=this._editor.getModel(),i=r.getValue(1),a=r.getFullModelRange(),o=this._getReplacePattern(),s,c=this._state.preserveCase;s=o.hasReplacementPatterns||c?i.replace(n,function(){return o.buildReplaceString(arguments,c)}):i.replace(n,o.buildReplaceString(null,c));let l=new e.ReplaceCommandThatPreservesSelection(a,s,this._editor.getSelection());this._executeEditorCommand(`replaceAll`,l)}_regularReplaceAll(e){let t=this._getReplacePattern(),n=this._findMatches(e,t.hasReplacementPatterns||this._state.preserveCase,1073741824),r=[];for(let e=0,i=n.length;e<i;e++)r[e]=t.buildReplaceString(n[e].matches,this._state.preserveCase);let i=new E_(this._editor.getSelection(),n.map(e=>e.range),r);this._executeEditorCommand(`replaceAll`,i)}selectAllMatches(){if(!this._hasMatches())return;let t=this._decorations.getFindScopes(),n=this._findMatches(t,!1,1073741824).map(t=>new e.Selection$1(t.range.startLineNumber,t.range.startColumn,t.range.endLineNumber,t.range.endColumn)),r=this._editor.getSelection();for(let e=0,t=n.length;e<t;e++)if(n[e].equalsRange(r)){n=[r].concat(n.slice(0,e),n.slice(e+1));break}this._editor.setSelections(n)}_executeEditorCommand(e,t){try{this._ignoreModelContentChanged=!0,this._editor.pushUndoStop(),this._editor.executeCommand(e,t),this._editor.pushUndoStop()}finally{this._ignoreModelContentChanged=!1}}},J_=class t extends e.Widget{static{this.ID=`editor.contrib.findOptionsWidget`}constructor(t,n,r){super(),this._hideSoon=this._register(new e.RunOnceScheduler(()=>this._hide(),2e3)),this._isVisible=!1,this._editor=t,this._state=n,this._keybindingService=r,this._domNode=document.createElement(`div`),this._domNode.className=`findOptionsWidget`,this._domNode.style.display=`none`,this._domNode.style.top=`10px`,this._domNode.style.zIndex=`12`,this._domNode.setAttribute(`role`,`presentation`),this._domNode.setAttribute(`aria-hidden`,`true`);let i={inputActiveOptionBorder:e.asCssVariable(e.inputActiveOptionBorder),inputActiveOptionForeground:e.asCssVariable(e.inputActiveOptionForeground),inputActiveOptionBackground:e.asCssVariable(e.inputActiveOptionBackground)},a=this._register(e.createInstantHoverDelegate());this.caseSensitive=this._register(new e.CaseSensitiveToggle({appendTitle:this._keybindingLabelFor(J.ToggleCaseSensitiveCommand),isChecked:this._state.matchCase,hoverDelegate:a,...i})),this._domNode.appendChild(this.caseSensitive.domNode),this._register(this.caseSensitive.onChange(()=>{this._state.change({matchCase:this.caseSensitive.checked},!1)})),this.wholeWords=this._register(new e.WholeWordsToggle({appendTitle:this._keybindingLabelFor(J.ToggleWholeWordCommand),isChecked:this._state.wholeWord,hoverDelegate:a,...i})),this._domNode.appendChild(this.wholeWords.domNode),this._register(this.wholeWords.onChange(()=>{this._state.change({wholeWord:this.wholeWords.checked},!1)})),this.regex=this._register(new e.RegexToggle({appendTitle:this._keybindingLabelFor(J.ToggleRegexCommand),isChecked:this._state.isRegex,hoverDelegate:a,...i})),this._domNode.appendChild(this.regex.domNode),this._register(this.regex.onChange(()=>{this._state.change({isRegex:this.regex.checked},!1)})),this._editor.addOverlayWidget(this),this._register(this._state.onFindReplaceStateChange(e=>{let t=!1;e.isRegex&&(this.regex.checked=this._state.isRegex,t=!0),e.wholeWord&&(this.wholeWords.checked=this._state.wholeWord,t=!0),e.matchCase&&(this.caseSensitive.checked=this._state.matchCase,t=!0),!this._state.isRevealed&&t&&this._revealTemporarily()})),this._register(e.addDisposableListener(this._domNode,e.EventType$1.MOUSE_LEAVE,e=>this._onMouseLeave())),this._register(e.addDisposableListener(this._domNode,`mouseover`,e=>this._onMouseOver()))}_keybindingLabelFor(e){let t=this._keybindingService.lookupKeybinding(e);return t?` (${t.getLabel()})`:``}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return t.ID}getDomNode(){return this._domNode}getPosition(){return{preference:0}}highlightFindOptions(){this._revealTemporarily()}_revealTemporarily(){this._show(),this._hideSoon.schedule()}_onMouseLeave(){this._hideSoon.schedule()}_onMouseOver(){this._hideSoon.cancel()}_show(){this._isVisible||(this._isVisible=!0,this._domNode.style.display=`block`)}_hide(){this._isVisible&&(this._isVisible=!1,this._domNode.style.display=`none`)}};function Y_(e,t){return e===1?!0:e===2?!1:t}var X_=class extends e.Disposable{get searchString(){return this._searchString}get replaceString(){return this._replaceString}get isRevealed(){return this._isRevealed}get isReplaceRevealed(){return this._isReplaceRevealed}get isRegex(){return Y_(this._isRegexOverride,this._isRegex)}get wholeWord(){return Y_(this._wholeWordOverride,this._wholeWord)}get matchCase(){return Y_(this._matchCaseOverride,this._matchCase)}get preserveCase(){return Y_(this._preserveCaseOverride,this._preserveCase)}get actualIsRegex(){return this._isRegex}get actualWholeWord(){return this._wholeWord}get actualMatchCase(){return this._matchCase}get actualPreserveCase(){return this._preserveCase}get searchScope(){return this._searchScope}get matchesPosition(){return this._matchesPosition}get matchesCount(){return this._matchesCount}get currentMatch(){return this._currentMatch}constructor(){super(),this._onFindReplaceStateChange=this._register(new e.Emitter$1),this.onFindReplaceStateChange=this._onFindReplaceStateChange.event,this._searchString=``,this._replaceString=``,this._isRevealed=!1,this._isReplaceRevealed=!1,this._isRegex=!1,this._isRegexOverride=0,this._wholeWord=!1,this._wholeWordOverride=0,this._matchCase=!1,this._matchCaseOverride=0,this._preserveCase=!1,this._preserveCaseOverride=0,this._searchScope=null,this._matchesPosition=0,this._matchesCount=0,this._currentMatch=null,this._loop=!0,this._isSearching=!1,this._filters=null}changeMatchInfo(t,n,r){let i={moveCursor:!1,updateHistory:!1,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1},a=!1;n===0&&(t=0),t>n&&(t=n),this._matchesPosition!==t&&(this._matchesPosition=t,i.matchesPosition=!0,a=!0),this._matchesCount!==n&&(this._matchesCount=n,i.matchesCount=!0,a=!0),r!==void 0&&(e.Range$1.equalsRange(this._currentMatch,r)||(this._currentMatch=r,i.currentMatch=!0,a=!0)),a&&this._onFindReplaceStateChange.fire(i)}change(t,n,r=!0){let i={moveCursor:n,updateHistory:r,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1},a=!1,o=this.isRegex,s=this.wholeWord,c=this.matchCase,l=this.preserveCase;t.searchString!==void 0&&this._searchString!==t.searchString&&(this._searchString=t.searchString,i.searchString=!0,a=!0),t.replaceString!==void 0&&this._replaceString!==t.replaceString&&(this._replaceString=t.replaceString,i.replaceString=!0,a=!0),t.isRevealed!==void 0&&this._isRevealed!==t.isRevealed&&(this._isRevealed=t.isRevealed,i.isRevealed=!0,a=!0),t.isReplaceRevealed!==void 0&&this._isReplaceRevealed!==t.isReplaceRevealed&&(this._isReplaceRevealed=t.isReplaceRevealed,i.isReplaceRevealed=!0,a=!0),t.isRegex!==void 0&&(this._isRegex=t.isRegex),t.wholeWord!==void 0&&(this._wholeWord=t.wholeWord),t.matchCase!==void 0&&(this._matchCase=t.matchCase),t.preserveCase!==void 0&&(this._preserveCase=t.preserveCase),t.searchScope!==void 0&&(t.searchScope?.every(t=>this._searchScope?.some(n=>!e.Range$1.equalsRange(n,t)))||(this._searchScope=t.searchScope,i.searchScope=!0,a=!0)),t.loop!==void 0&&this._loop!==t.loop&&(this._loop=t.loop,i.loop=!0,a=!0),t.isSearching!==void 0&&this._isSearching!==t.isSearching&&(this._isSearching=t.isSearching,i.isSearching=!0,a=!0),t.filters!==void 0&&(this._filters?this._filters.update(t.filters):this._filters=t.filters,i.filters=!0,a=!0),this._isRegexOverride=t.isRegexOverride===void 0?0:t.isRegexOverride,this._wholeWordOverride=t.wholeWordOverride===void 0?0:t.wholeWordOverride,this._matchCaseOverride=t.matchCaseOverride===void 0?0:t.matchCaseOverride,this._preserveCaseOverride=t.preserveCaseOverride===void 0?0:t.preserveCaseOverride,o!==this.isRegex&&(a=!0,i.isRegex=!0),s!==this.wholeWord&&(a=!0,i.wholeWord=!0),c!==this.matchCase&&(a=!0,i.matchCase=!0),l!==this.preserveCase&&(a=!0,i.preserveCase=!0),a&&this._onFindReplaceStateChange.fire(i)}canNavigateBack(){return this.canNavigateInLoop()||this.matchesPosition!==1}canNavigateForward(){return this.canNavigateInLoop()||this.matchesPosition<this.matchesCount}canNavigateInLoop(){return this._loop||this.matchesCount>=19999}},Z_=e.localize(`defaultLabel`,`input`),Q_=e.localize(`label.preserveCaseToggle`,`Preserve Case`),$_=class extends e.Toggle{constructor(t){super({icon:e.Codicon.preserveCase,title:Q_+t.appendTitle,isChecked:t.isChecked,hoverDelegate:t.hoverDelegate??e.getDefaultHoverDelegate(`element`),inputActiveOptionBorder:t.inputActiveOptionBorder,inputActiveOptionForeground:t.inputActiveOptionForeground,inputActiveOptionBackground:t.inputActiveOptionBackground})}},ev=class extends e.Widget{constructor(t,n,r,i){super(),this._showOptionButtons=r,this.fixFocusOnOptionClickEnabled=!0,this.cachedOptionsWidth=0,this._onDidOptionChange=this._register(new e.Emitter$1),this.onDidOptionChange=this._onDidOptionChange.event,this._onKeyDown=this._register(new e.Emitter$1),this.onKeyDown=this._onKeyDown.event,this._onMouseDown=this._register(new e.Emitter$1),this._onInput=this._register(new e.Emitter$1),this._onKeyUp=this._register(new e.Emitter$1),this._onPreserveCaseKeyDown=this._register(new e.Emitter$1),this.onPreserveCaseKeyDown=this._onPreserveCaseKeyDown.event,this.contextViewProvider=n,this.placeholder=i.placeholder||``,this.validation=i.validation,this.label=i.label||Z_;let a=i.appendPreserveCaseLabel||``,o=i.history||[],s=!!i.flexibleHeight,c=!!i.flexibleWidth,l=i.flexibleMaxHeight;this.domNode=document.createElement(`div`),this.domNode.classList.add(`monaco-findInput`),this.inputBox=this._register(new e.HistoryInputBox(this.domNode,this.contextViewProvider,{ariaLabel:this.label||``,placeholder:this.placeholder||``,validationOptions:{validation:this.validation},history:o,showHistoryHint:i.showHistoryHint,flexibleHeight:s,flexibleWidth:c,flexibleMaxHeight:l,inputBoxStyles:i.inputBoxStyles})),this.preserveCase=this._register(new $_({appendTitle:a,isChecked:!1,...i.toggleStyles})),this._register(this.preserveCase.onChange(e=>{this._onDidOptionChange.fire(e),!e&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.preserveCase.onKeyDown(e=>{this._onPreserveCaseKeyDown.fire(e)})),this._showOptionButtons?this.cachedOptionsWidth=this.preserveCase.width():this.cachedOptionsWidth=0;let u=[this.preserveCase.domNode];this.onkeydown(this.domNode,t=>{if(t.equals(15)||t.equals(17)||t.equals(9)){let n=u.indexOf(this.domNode.ownerDocument.activeElement);if(n>=0){let r=-1;t.equals(17)?r=(n+1)%u.length:t.equals(15)&&(r=n===0?u.length-1:n-1),t.equals(9)?(u[n].blur(),this.inputBox.focus()):r>=0&&u[r].focus(),e.EventHelper.stop(t,!0)}}});let d=document.createElement(`div`);d.className=`controls`,d.style.display=this._showOptionButtons?`block`:`none`,d.appendChild(this.preserveCase.domNode),this.domNode.appendChild(d),t?.appendChild(this.domNode),this.onkeydown(this.inputBox.inputElement,e=>this._onKeyDown.fire(e)),this.onkeyup(this.inputBox.inputElement,e=>this._onKeyUp.fire(e)),this.oninput(this.inputBox.inputElement,e=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,e=>this._onMouseDown.fire(e))}enable(){this.domNode.classList.remove(`disabled`),this.inputBox.enable(),this.preserveCase.enable()}disable(){this.domNode.classList.add(`disabled`),this.inputBox.disable(),this.preserveCase.disable()}setEnabled(e){e?this.enable():this.disable()}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getPreserveCase(){return this.preserveCase.checked}setPreserveCase(e){this.preserveCase.checked=e}focusOnPreserve(){this.preserveCase.focus()}validate(){this.inputBox?.validate()}set width(e){this.inputBox.paddingRight=this.cachedOptionsWidth,this.domNode.style.width=e+`px`}dispose(){super.dispose()}},tv=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},nv=function(e,t){return function(n,r){t(n,r,e)}};const rv=new e.RawContextKey(`suggestWidgetVisible`,!1,e.localize(`suggestWidgetVisible`,`Whether suggestion are visible`));var iv=`historyNavigationWidgetFocus`,av=`historyNavigationForwardsEnabled`,ov=`historyNavigationBackwardsEnabled`,sv=void 0,cv=[];function lv(t,n){if(cv.includes(n))throw Error(`Cannot register the same widget multiple times`);cv.push(n);let r=new e.DisposableStore,i=new e.RawContextKey(iv,!1).bindTo(t),a=new e.RawContextKey(av,!0).bindTo(t),o=new e.RawContextKey(ov,!0).bindTo(t),s=()=>{i.set(!0),sv=n},c=()=>{i.set(!1),sv===n&&(sv=void 0)};return e.isActiveElement(n.element)&&s(),r.add(n.onDidFocus(()=>s())),r.add(n.onDidBlur(()=>c())),r.add(e.toDisposable(()=>{cv.splice(cv.indexOf(n),1),c()})),{historyNavigationForwardsEnablement:a,historyNavigationBackwardsEnablement:o,dispose(){r.dispose()}}}var uv=class extends e.FindInput{constructor(e,t,n,r){super(e,t,n);let i=this._register(r.createScoped(this.inputBox.element));this._register(lv(i,this.inputBox))}};uv=tv([nv(3,e.IContextKeyService)],uv);var dv=class extends ev{constructor(e,t,n,r,i=!1){super(e,t,i,n);let a=this._register(r.createScoped(this.inputBox.element));this._register(lv(a,this.inputBox))}};dv=tv([nv(3,e.IContextKeyService)],dv),e.KeybindingsRegistry.registerCommandAndKeybindingRule({id:`history.showPrevious`,weight:200,when:e.ContextKeyExpr.and(e.ContextKeyExpr.has(iv),e.ContextKeyExpr.equals(ov,!0),e.ContextKeyExpr.not(`isComposing`),rv.isEqualTo(!1)),primary:16,secondary:[528],handler:e=>{sv?.showPreviousValue()}}),e.KeybindingsRegistry.registerCommandAndKeybindingRule({id:`history.showNext`,weight:200,when:e.ContextKeyExpr.and(e.ContextKeyExpr.has(iv),e.ContextKeyExpr.equals(av,!0),e.ContextKeyExpr.not(`isComposing`),rv.isEqualTo(!1)),primary:18,secondary:[530],handler:e=>{sv?.showNextValue()}});function fv(e){return e.lookupKeybinding(`history.showPrevious`)?.getElectronAccelerator()===`Up`&&e.lookupKeybinding(`history.showNext`)?.getElectronAccelerator()===`Down`}var pv=e.registerIcon(`find-collapsed`,e.Codicon.chevronRight,e.localize(`findCollapsedIcon`,`Icon to indicate that the editor find widget is collapsed.`)),mv=e.registerIcon(`find-expanded`,e.Codicon.chevronDown,e.localize(`findExpandedIcon`,`Icon to indicate that the editor find widget is expanded.`));const hv=e.registerIcon(`find-selection`,e.Codicon.selection,e.localize(`findSelectionIcon`,`Icon for 'Find in Selection' in the editor find widget.`)),gv=e.registerIcon(`find-replace`,e.Codicon.replace,e.localize(`findReplaceIcon`,`Icon for 'Replace' in the editor find widget.`)),_v=e.registerIcon(`find-replace-all`,e.Codicon.replaceAll,e.localize(`findReplaceAllIcon`,`Icon for 'Replace All' in the editor find widget.`)),vv=e.registerIcon(`find-previous-match`,e.Codicon.arrowUp,e.localize(`findPreviousMatchIcon`,`Icon for 'Find Previous' in the editor find widget.`)),yv=e.registerIcon(`find-next-match`,e.Codicon.arrowDown,e.localize(`findNextMatchIcon`,`Icon for 'Find Next' in the editor find widget.`));var bv=e.localize(`label.findDialog`,`Find / Replace`),xv=e.localize(`label.find`,`Find`),Sv=e.localize(`placeholder.find`,`Find`),Cv=e.localize(`label.previousMatchButton`,`Previous Match`),wv=e.localize(`label.nextMatchButton`,`Next Match`),Tv=e.localize(`label.toggleSelectionFind`,`Find in Selection`),Ev=e.localize(`label.closeButton`,`Close`),Dv=e.localize(`label.replace`,`Replace`),Ov=e.localize(`placeholder.replace`,`Replace`),kv=e.localize(`label.replaceButton`,`Replace`),Av=e.localize(`label.replaceAllButton`,`Replace All`),jv=e.localize(`label.toggleReplaceButton`,`Toggle Replace`),Mv=e.localize(`title.matchesCountLimit`,`Only the first {0} results are highlighted, but all find operations work on the entire text.`,G_);const Nv=e.localize(`label.matchesLocation`,`{0} of {1}`),Pv=e.localize(`label.noResults`,`No results`);var Fv=419,Iv=221,Lv=69,Rv=33,zv=`ctrlEnterReplaceAll.windows.donotask`,Bv=e.isMacintosh?256:2048,Vv=class{constructor(e){this.afterLineNumber=e,this.heightInPx=Rv,this.suppressMouseDown=!1,this.domNode=document.createElement(`div`),this.domNode.className=`dock-find-viewzone`}};function Hv(e,t,n){let r=!!t.match(/\n/);if(n&&r&&n.selectionStart>0){e.stopPropagation();return}}function Uv(e,t,n){let r=!!t.match(/\n/);if(n&&r&&n.selectionEnd<n.value.length){e.stopPropagation();return}}var Wv=class t extends e.Widget{static{this.ID=`editor.contrib.findWidget`}constructor(t,n,r,i,a,o,s,c,l,u){super(),this._hoverService=u,this._cachedHeight=null,this._revealTimeouts=[],this._codeEditor=t,this._controller=n,this._state=r,this._contextViewProvider=i,this._keybindingService=a,this._contextKeyService=o,this._storageService=c,this._notificationService=l,this._ctrlEnterReplaceAllWarningPrompted=!!c.getBoolean(zv,0),this._isVisible=!1,this._isReplaceVisible=!1,this._ignoreChangeEvent=!1,this._updateHistoryDelayer=new e.Delayer(500),this._register(e.toDisposable(()=>this._updateHistoryDelayer.cancel())),this._register(this._state.onFindReplaceStateChange(e=>this._onStateChanged(e))),this._buildDomNode(),this._updateButtons(),this._tryUpdateWidgetWidth(),this._findInput.inputBox.layout(),this._register(this._codeEditor.onDidChangeConfiguration(e=>{if(e.hasChanged(92)&&(this._codeEditor.getOption(92)&&this._state.change({isReplaceRevealed:!1},!1),this._updateButtons()),e.hasChanged(146)&&this._tryUpdateWidgetWidth(),e.hasChanged(2)&&this.updateAccessibilitySupport(),e.hasChanged(41)){let e=this._codeEditor.getOption(41).loop;this._state.change({loop:e},!1);let t=this._codeEditor.getOption(41).addExtraSpaceOnTop;t&&!this._viewZone&&(this._viewZone=new Vv(0),this._showViewZone()),!t&&this._viewZone&&this._removeViewZone()}})),this.updateAccessibilitySupport(),this._register(this._codeEditor.onDidChangeCursorSelection(()=>{this._isVisible&&this._updateToggleSelectionFindButton()})),this._register(this._codeEditor.onDidFocusEditorWidget(async()=>{if(this._isVisible){let e=await this._controller.getGlobalBufferTerm();e&&e!==this._state.searchString&&(this._state.change({searchString:e},!1),this._findInput.select())}})),this._findInputFocused=R_.bindTo(o),this._findFocusTracker=this._register(e.trackFocus(this._findInput.inputBox.inputElement)),this._register(this._findFocusTracker.onDidFocus(()=>{this._findInputFocused.set(!0),this._updateSearchScope()})),this._register(this._findFocusTracker.onDidBlur(()=>{this._findInputFocused.set(!1)})),this._replaceInputFocused=z_.bindTo(o),this._replaceFocusTracker=this._register(e.trackFocus(this._replaceInput.inputBox.inputElement)),this._register(this._replaceFocusTracker.onDidFocus(()=>{this._replaceInputFocused.set(!0),this._updateSearchScope()})),this._register(this._replaceFocusTracker.onDidBlur(()=>{this._replaceInputFocused.set(!1)})),this._codeEditor.addOverlayWidget(this),this._codeEditor.getOption(41).addExtraSpaceOnTop&&(this._viewZone=new Vv(0)),this._register(this._codeEditor.onDidChangeModel(()=>{this._isVisible&&(this._viewZoneId=void 0)})),this._register(this._codeEditor.onDidScrollChange(e=>{if(e.scrollTopChanged){this._layoutViewZone();return}setTimeout(()=>{this._layoutViewZone()},0)}))}getId(){return t.ID}getDomNode(){return this._domNode}getPosition(){return this._isVisible?{preference:0}:null}_onStateChanged(t){if(t.searchString){try{this._ignoreChangeEvent=!0,this._findInput.setValue(this._state.searchString)}finally{this._ignoreChangeEvent=!1}this._updateButtons()}if(t.replaceString&&(this._replaceInput.inputBox.value=this._state.replaceString),t.isRevealed&&(this._state.isRevealed?this._reveal():this._hide(!0)),t.isReplaceRevealed&&(this._state.isReplaceRevealed?!this._codeEditor.getOption(92)&&!this._isReplaceVisible&&(this._isReplaceVisible=!0,this._replaceInput.width=e.getTotalWidth(this._findInput.domNode),this._updateButtons(),this._replaceInput.inputBox.layout()):this._isReplaceVisible&&(this._isReplaceVisible=!1,this._updateButtons())),(t.isRevealed||t.isReplaceRevealed)&&(this._state.isRevealed||this._state.isReplaceRevealed)&&this._tryUpdateHeight()&&this._showViewZone(),t.isRegex&&this._findInput.setRegex(this._state.isRegex),t.wholeWord&&this._findInput.setWholeWords(this._state.wholeWord),t.matchCase&&this._findInput.setCaseSensitive(this._state.matchCase),t.preserveCase&&this._replaceInput.setPreserveCase(this._state.preserveCase),t.searchScope&&(this._state.searchScope?this._toggleSelectionFind.checked=!0:this._toggleSelectionFind.checked=!1,this._updateToggleSelectionFindButton()),t.searchString||t.matchesCount||t.matchesPosition){let e=this._state.searchString.length>0&&this._state.matchesCount===0;this._domNode.classList.toggle(`no-results`,e),this._updateMatchesCount(),this._updateButtons()}(t.searchString||t.currentMatch)&&this._layoutViewZone(),t.updateHistory&&this._delayedUpdateHistory(),t.loop&&this._updateButtons()}_delayedUpdateHistory(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(void 0,e.onUnexpectedError)}_updateHistory(){this._state.searchString&&this._findInput.inputBox.addToHistory(),this._state.replaceString&&this._replaceInput.inputBox.addToHistory()}_updateMatchesCount(){this._matchesCount.style.minWidth=Lv+`px`,this._state.matchesCount>=19999?this._matchesCount.title=Mv:this._matchesCount.title=``,this._matchesCount.firstChild?.remove();let t;if(this._state.matchesCount>0){let n=String(this._state.matchesCount);this._state.matchesCount>=19999&&(n+=`+`);let r=String(this._state.matchesPosition);r===`0`&&(r=`?`),t=e.format(Nv,r,n)}else t=Pv;this._matchesCount.appendChild(document.createTextNode(t)),e.alert(this._getAriaLabel(t,this._state.currentMatch,this._state.searchString)),Lv=Math.max(Lv,this._matchesCount.clientWidth)}_getAriaLabel(t,n,r){if(t===Pv)return r===``?e.localize(`ariaSearchNoResultEmpty`,`{0} found`,t):e.localize(`ariaSearchNoResult`,`{0} found for '{1}'`,t,r);if(n){let i=e.localize(`ariaSearchNoResultWithLineNum`,`{0} found for '{1}', at {2}`,t,r,n.startLineNumber+`:`+n.startColumn),a=this._codeEditor.getModel();return a&&n.startLineNumber<=a.getLineCount()&&n.startLineNumber>=1?`${a.getLineContent(n.startLineNumber)}, ${i}`:i}return e.localize(`ariaSearchNoResultWithLineNumNoCurrentMatch`,`{0} found for '{1}'`,t,r)}_updateToggleSelectionFindButton(){let e=this._codeEditor.getSelection(),t=e?e.startLineNumber!==e.endLineNumber||e.startColumn!==e.endColumn:!1,n=this._toggleSelectionFind.checked;this._isVisible&&(n||t)?this._toggleSelectionFind.enable():this._toggleSelectionFind.disable()}_updateButtons(){this._findInput.setEnabled(this._isVisible),this._replaceInput.setEnabled(this._isVisible&&this._isReplaceVisible),this._updateToggleSelectionFindButton(),this._closeBtn.setEnabled(this._isVisible);let e=this._state.searchString.length>0,t=!!this._state.matchesCount;this._prevBtn.setEnabled(this._isVisible&&e&&t&&this._state.canNavigateBack()),this._nextBtn.setEnabled(this._isVisible&&e&&t&&this._state.canNavigateForward()),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._domNode.classList.toggle(`replaceToggled`,this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);let n=!this._codeEditor.getOption(92);this._toggleReplaceBtn.setEnabled(this._isVisible&&n)}_reveal(){if(this._revealTimeouts.forEach(e=>{clearTimeout(e)}),this._revealTimeouts=[],!this._isVisible){this._isVisible=!0;let t=this._codeEditor.getSelection();switch(this._codeEditor.getOption(41).autoFindInSelection){case`always`:this._toggleSelectionFind.checked=!0;break;case`never`:this._toggleSelectionFind.checked=!1;break;case`multiline`:{let e=!!t&&t.startLineNumber!==t.endLineNumber;this._toggleSelectionFind.checked=e;break}default:break}this._tryUpdateWidgetWidth(),this._updateButtons(),this._revealTimeouts.push(setTimeout(()=>{this._domNode.classList.add(`visible`),this._domNode.setAttribute(`aria-hidden`,`false`)},0)),this._revealTimeouts.push(setTimeout(()=>{this._findInput.validate()},200)),this._codeEditor.layoutOverlayWidget(this);let n=!0;if(this._codeEditor.getOption(41).seedSearchStringFromSelection&&t){let r=this._codeEditor.getDomNode();if(r){let i=e.getDomNodePagePosition(r),a=this._codeEditor.getScrolledVisiblePosition(t.getStartPosition()),o=i.left+(a?a.left:0),s=a?a.top:0;if(this._viewZone&&s<this._viewZone.heightInPx){t.endLineNumber>t.startLineNumber&&(n=!1);let r=e.getTopLeftOffset(this._domNode).left;o>r&&(n=!1);let a=this._codeEditor.getScrolledVisiblePosition(t.getEndPosition());i.left+(a?a.left:0)>r&&(n=!1)}}}this._showViewZone(n)}}_hide(e){this._revealTimeouts.forEach(e=>{clearTimeout(e)}),this._revealTimeouts=[],this._isVisible&&(this._isVisible=!1,this._updateButtons(),this._domNode.classList.remove(`visible`),this._domNode.setAttribute(`aria-hidden`,`true`),this._findInput.clearMessage(),e&&this._codeEditor.focus(),this._codeEditor.layoutOverlayWidget(this),this._removeViewZone())}_layoutViewZone(e){if(!this._codeEditor.getOption(41).addExtraSpaceOnTop){this._removeViewZone();return}if(!this._isVisible)return;let t=this._viewZone;this._viewZoneId!==void 0||!t||this._codeEditor.changeViewZones(n=>{t.heightInPx=this._getHeight(),this._viewZoneId=n.addZone(t),this._codeEditor.setScrollTop(e||this._codeEditor.getScrollTop()+t.heightInPx)})}_showViewZone(e=!0){if(!this._isVisible||!this._codeEditor.getOption(41).addExtraSpaceOnTop)return;this._viewZone===void 0&&(this._viewZone=new Vv(0));let t=this._viewZone;this._codeEditor.changeViewZones(n=>{if(this._viewZoneId!==void 0){let r=this._getHeight();if(r===t.heightInPx)return;let i=r-t.heightInPx;t.heightInPx=r,n.layoutZone(this._viewZoneId),e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+i);return}else{let r=this._getHeight();if(r-=this._codeEditor.getOption(84).top,r<=0)return;t.heightInPx=r,this._viewZoneId=n.addZone(t),e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+r)}})}_removeViewZone(){this._codeEditor.changeViewZones(e=>{this._viewZoneId!==void 0&&(e.removeZone(this._viewZoneId),this._viewZoneId=void 0,this._viewZone&&=(this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()-this._viewZone.heightInPx),void 0))})}_tryUpdateWidgetWidth(){if(!this._isVisible||!this._domNode.isConnected)return;let t=this._codeEditor.getLayoutInfo();if(t.contentWidth<=0){this._domNode.classList.add(`hiddenEditor`);return}else this._domNode.classList.contains(`hiddenEditor`)&&this._domNode.classList.remove(`hiddenEditor`);let n=t.width,r=t.minimap.minimapWidth,i=!1,a=!1,o=!1;if(this._resized&&e.getTotalWidth(this._domNode)>Fv){this._domNode.style.maxWidth=`${n-28-r-15}px`,this._replaceInput.width=e.getTotalWidth(this._findInput.domNode);return}if(Fv+28+r>=n&&(a=!0),Fv+28+r-Lv>=n&&(o=!0),Fv+28+r-Lv>=n+50&&(i=!0),this._domNode.classList.toggle(`collapsed-find-widget`,i),this._domNode.classList.toggle(`narrow-find-widget`,o),this._domNode.classList.toggle(`reduced-find-widget`,a),!o&&!i&&(this._domNode.style.maxWidth=`${n-28-r-15}px`),this._findInput.layout({collapsedFindWidget:i,narrowFindWidget:o,reducedFindWidget:a}),this._resized){let e=this._findInput.inputBox.element.clientWidth;e>0&&(this._replaceInput.width=e)}else this._isReplaceVisible&&(this._replaceInput.width=e.getTotalWidth(this._findInput.domNode))}_getHeight(){let e=0;return e+=4,e+=this._findInput.inputBox.height+2,this._isReplaceVisible&&(e+=4,e+=this._replaceInput.inputBox.height+2),e+=4,e}_tryUpdateHeight(){let e=this._getHeight();return this._cachedHeight!==null&&this._cachedHeight===e?!1:(this._cachedHeight=e,this._domNode.style.height=`${e}px`,!0)}focusFindInput(){this._findInput.select(),this._findInput.focus()}focusReplaceInput(){this._replaceInput.select(),this._replaceInput.focus()}highlightFindOptions(){this._findInput.highlightFindOptions()}_updateSearchScope(){if(this._codeEditor.hasModel()&&this._toggleSelectionFind.checked){let t=this._codeEditor.getSelections();t.map(t=>{t.endColumn===1&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(t.endLineNumber-1)));let n=this._state.currentMatch;return t.startLineNumber!==t.endLineNumber&&!e.Range$1.equalsRange(t,n)?t:null}).filter(e=>!!e),t.length&&this._state.change({searchScope:t},!0)}}_onFindInputMouseDown(e){e.middleButton&&e.stopPropagation()}_onFindInputKeyDown(e){if(e.equals(Bv|3))if(this._keybindingService.dispatchEvent(e,e.target)){e.preventDefault();return}else{this._findInput.inputBox.insertAtCursor(`
`),e.preventDefault();return}if(e.equals(2)){this._isReplaceVisible?this._replaceInput.focus():this._findInput.focusOnCaseSensitive(),e.preventDefault();return}if(e.equals(2066)){this._codeEditor.focus(),e.preventDefault();return}if(e.equals(16))return Hv(e,this._findInput.getValue(),this._findInput.domNode.querySelector(`textarea`));if(e.equals(18))return Uv(e,this._findInput.getValue(),this._findInput.domNode.querySelector(`textarea`))}_onReplaceInputKeyDown(t){if(t.equals(Bv|3))if(this._keybindingService.dispatchEvent(t,t.target)){t.preventDefault();return}else{e.isWindows&&e.isNative&&!this._ctrlEnterReplaceAllWarningPrompted&&(this._notificationService.info(e.localize(`ctrlEnter.keybindingChanged`,`Ctrl+Enter now inserts line break instead of replacing all. You can modify the keybinding for editor.action.replaceAll to override this behavior.`)),this._ctrlEnterReplaceAllWarningPrompted=!0,this._storageService.store(zv,!0,0,0)),this._replaceInput.inputBox.insertAtCursor(`
`),t.preventDefault();return}if(t.equals(2)){this._findInput.focusOnCaseSensitive(),t.preventDefault();return}if(t.equals(1026)){this._findInput.focus(),t.preventDefault();return}if(t.equals(2066)){this._codeEditor.focus(),t.preventDefault();return}if(t.equals(16))return Hv(t,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector(`textarea`));if(t.equals(18))return Uv(t,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector(`textarea`))}getVerticalSashLeft(e){return 0}_keybindingLabelFor(e){let t=this._keybindingService.lookupKeybinding(e);return t?` (${t.getLabel()})`:``}_buildDomNode(){this._findInput=this._register(new uv(null,this._contextViewProvider,{width:Iv,label:xv,placeholder:Sv,appendCaseSensitiveLabel:this._keybindingLabelFor(J.ToggleCaseSensitiveCommand),appendWholeWordsLabel:this._keybindingLabelFor(J.ToggleWholeWordCommand),appendRegexLabel:this._keybindingLabelFor(J.ToggleRegexCommand),validation:e=>{if(e.length===0||!this._findInput.getRegex())return null;try{return new RegExp(e,`gu`),null}catch(e){return{content:e.message}}},flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showCommonFindToggles:!0,showHistoryHint:()=>fv(this._keybindingService),inputBoxStyles:e.defaultInputBoxStyles,toggleStyles:e.defaultToggleStyles},this._contextKeyService)),this._findInput.setRegex(!!this._state.isRegex),this._findInput.setCaseSensitive(!!this._state.matchCase),this._findInput.setWholeWords(!!this._state.wholeWord),this._register(this._findInput.onKeyDown(e=>this._onFindInputKeyDown(e))),this._register(this._findInput.inputBox.onDidChange(()=>{this._ignoreChangeEvent||this._state.change({searchString:this._findInput.getValue()},!0)})),this._register(this._findInput.onDidOptionChange(()=>{this._state.change({isRegex:this._findInput.getRegex(),wholeWord:this._findInput.getWholeWords(),matchCase:this._findInput.getCaseSensitive()},!0)})),this._register(this._findInput.onCaseSensitiveKeyDown(e=>{e.equals(1026)&&this._isReplaceVisible&&(this._replaceInput.focus(),e.preventDefault())})),this._register(this._findInput.onRegexKeyDown(e=>{e.equals(2)&&this._isReplaceVisible&&(this._replaceInput.focusOnPreserve(),e.preventDefault())})),this._register(this._findInput.inputBox.onDidHeightChange(e=>{this._tryUpdateHeight()&&this._showViewZone()})),e.isLinux&&this._register(this._findInput.onMouseDown(e=>this._onFindInputMouseDown(e))),this._matchesCount=document.createElement(`div`),this._matchesCount.className=`matchesCount`,this._updateMatchesCount();let t=this._register(e.createInstantHoverDelegate());this._prevBtn=this._register(new Gv({label:Cv+this._keybindingLabelFor(J.PreviousMatchFindAction),icon:vv,hoverDelegate:t,onTrigger:()=>{e.assertIsDefined(this._codeEditor.getAction(J.PreviousMatchFindAction)).run().then(void 0,e.onUnexpectedError)}},this._hoverService)),this._nextBtn=this._register(new Gv({label:wv+this._keybindingLabelFor(J.NextMatchFindAction),icon:yv,hoverDelegate:t,onTrigger:()=>{e.assertIsDefined(this._codeEditor.getAction(J.NextMatchFindAction)).run().then(void 0,e.onUnexpectedError)}},this._hoverService));let n=document.createElement(`div`);n.className=`find-part`,n.appendChild(this._findInput.domNode);let r=document.createElement(`div`);r.className=`find-actions`,n.appendChild(r),r.appendChild(this._matchesCount),r.appendChild(this._prevBtn.domNode),r.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new e.Toggle({icon:hv,title:Tv+this._keybindingLabelFor(J.ToggleSearchScopeCommand),isChecked:!1,hoverDelegate:t,inputActiveOptionBackground:e.asCssVariable(e.inputActiveOptionBackground),inputActiveOptionBorder:e.asCssVariable(e.inputActiveOptionBorder),inputActiveOptionForeground:e.asCssVariable(e.inputActiveOptionForeground)})),this._register(this._toggleSelectionFind.onChange(()=>{if(this._toggleSelectionFind.checked){if(this._codeEditor.hasModel()){let e=this._codeEditor.getSelections();e=e.map(e=>(e.endColumn===1&&e.endLineNumber>e.startLineNumber&&(e=e.setEndPosition(e.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(e.endLineNumber-1))),e.isEmpty()?null:e)).filter(e=>!!e),e.length&&this._state.change({searchScope:e},!0)}}else this._state.change({searchScope:null},!0)})),r.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new Gv({label:Ev+this._keybindingLabelFor(J.CloseFindWidgetCommand),icon:e.widgetClose,hoverDelegate:t,onTrigger:()=>{this._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:e=>{e.equals(2)&&this._isReplaceVisible&&(this._replaceBtn.isEnabled()?this._replaceBtn.focus():this._codeEditor.focus(),e.preventDefault())}},this._hoverService)),this._replaceInput=this._register(new dv(null,void 0,{label:Dv,placeholder:Ov,appendPreserveCaseLabel:this._keybindingLabelFor(J.TogglePreserveCaseCommand),history:[],flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showHistoryHint:()=>fv(this._keybindingService),inputBoxStyles:e.defaultInputBoxStyles,toggleStyles:e.defaultToggleStyles},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown(e=>this._onReplaceInputKeyDown(e))),this._register(this._replaceInput.inputBox.onDidChange(()=>{this._state.change({replaceString:this._replaceInput.inputBox.value},!1)})),this._register(this._replaceInput.inputBox.onDidHeightChange(e=>{this._isReplaceVisible&&this._tryUpdateHeight()&&this._showViewZone()})),this._register(this._replaceInput.onDidOptionChange(()=>{this._state.change({preserveCase:this._replaceInput.getPreserveCase()},!0)})),this._register(this._replaceInput.onPreserveCaseKeyDown(e=>{e.equals(2)&&(this._prevBtn.isEnabled()?this._prevBtn.focus():this._nextBtn.isEnabled()?this._nextBtn.focus():this._toggleSelectionFind.enabled?this._toggleSelectionFind.focus():this._closeBtn.isEnabled()&&this._closeBtn.focus(),e.preventDefault())}));let i=this._register(e.createInstantHoverDelegate());this._replaceBtn=this._register(new Gv({label:kv+this._keybindingLabelFor(J.ReplaceOneAction),icon:gv,hoverDelegate:i,onTrigger:()=>{this._controller.replace()},onKeyDown:e=>{e.equals(1026)&&(this._closeBtn.focus(),e.preventDefault())}},this._hoverService)),this._replaceAllBtn=this._register(new Gv({label:Av+this._keybindingLabelFor(J.ReplaceAllAction),icon:_v,hoverDelegate:i,onTrigger:()=>{this._controller.replaceAll()}},this._hoverService));let a=document.createElement(`div`);a.className=`replace-part`,a.appendChild(this._replaceInput.domNode);let o=document.createElement(`div`);o.className=`replace-actions`,a.appendChild(o),o.appendChild(this._replaceBtn.domNode),o.appendChild(this._replaceAllBtn.domNode),this._toggleReplaceBtn=this._register(new Gv({label:jv,className:`codicon toggle left`,onTrigger:()=>{this._state.change({isReplaceRevealed:!this._isReplaceVisible},!1),this._isReplaceVisible&&(this._replaceInput.width=e.getTotalWidth(this._findInput.domNode),this._replaceInput.inputBox.layout()),this._showViewZone()}},this._hoverService)),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible),this._domNode=document.createElement(`div`),this._domNode.className=`editor-widget find-widget`,this._domNode.setAttribute(`aria-hidden`,`true`),this._domNode.ariaLabel=bv,this._domNode.role=`dialog`,this._domNode.style.width=`${Fv}px`,this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(n),this._domNode.appendChild(this._closeBtn.domNode),this._domNode.appendChild(a),this._resizeSash=this._register(new e.Sash(this._domNode,this,{orientation:0,size:2})),this._resized=!1;let s=Fv;this._register(this._resizeSash.onDidStart(()=>{s=e.getTotalWidth(this._domNode)})),this._register(this._resizeSash.onDidChange(t=>{this._resized=!0;let n=s+t.startX-t.currentX;if(n<Fv)return;let r=parseFloat(e.getComputedStyle(this._domNode).maxWidth)||0;n>r||(this._domNode.style.width=`${n}px`,this._isReplaceVisible&&(this._replaceInput.width=e.getTotalWidth(this._findInput.domNode)),this._findInput.inputBox.layout(),this._tryUpdateHeight())})),this._register(this._resizeSash.onDidReset(()=>{let t=e.getTotalWidth(this._domNode);if(t<Fv)return;let n=Fv;if(!this._resized||t===Fv){let e=this._codeEditor.getLayoutInfo();n=e.width-28-e.minimap.minimapWidth-15,this._resized=!0}this._domNode.style.width=`${n}px`,this._isReplaceVisible&&(this._replaceInput.width=e.getTotalWidth(this._findInput.domNode)),this._findInput.inputBox.layout()}))}updateAccessibilitySupport(){let e=this._codeEditor.getOption(2);this._findInput.setFocusInputOnOptionClick(e!==2)}},Gv=class extends e.Widget{constructor(t,n){super(),this._opts=t;let r=`button`;this._opts.className&&(r=r+` `+this._opts.className),this._opts.icon&&(r=r+` `+e.ThemeIcon.asClassName(this._opts.icon)),this._domNode=document.createElement(`div`),this._domNode.tabIndex=0,this._domNode.className=r,this._domNode.setAttribute(`role`,`button`),this._domNode.setAttribute(`aria-label`,this._opts.label),this._register(n.setupManagedHover(t.hoverDelegate??e.getDefaultHoverDelegate(`element`),this._domNode,this._opts.label)),this.onclick(this._domNode,e=>{this._opts.onTrigger(),e.preventDefault()}),this.onkeydown(this._domNode,e=>{if(e.equals(10)||e.equals(3)){this._opts.onTrigger(),e.preventDefault();return}this._opts.onKeyDown?.(e)})}get domNode(){return this._domNode}isEnabled(){return this._domNode.tabIndex>=0}focus(){this._domNode.focus()}setEnabled(e){this._domNode.classList.toggle(`disabled`,!e),this._domNode.setAttribute(`aria-disabled`,String(!e)),this._domNode.tabIndex=e?0:-1}setExpanded(t){this._domNode.setAttribute(`aria-expanded`,String(!!t)),t?(this._domNode.classList.remove(...e.ThemeIcon.asClassNameArray(pv)),this._domNode.classList.add(...e.ThemeIcon.asClassNameArray(mv))):(this._domNode.classList.remove(...e.ThemeIcon.asClassNameArray(mv)),this._domNode.classList.add(...e.ThemeIcon.asClassNameArray(pv)))}};e.registerThemingParticipant((t,n)=>{let r=t.getColor(e.editorFindMatchHighlightBorder);r&&n.addRule(`.monaco-editor .findMatch { border: 1px ${e.isHighContrast(t.type)?`dotted`:`solid`} ${r}; box-sizing: border-box; }`);let i=t.getColor(e.editorFindRangeHighlightBorder);i&&n.addRule(`.monaco-editor .findScope { border: 1px ${e.isHighContrast(t.type)?`dashed`:`solid`} ${i}; }`);let a=t.getColor(e.contrastBorder);a&&n.addRule(`.monaco-editor .find-widget { border: 1px solid ${a}; }`);let o=t.getColor(e.editorFindMatchForeground);o&&n.addRule(`.monaco-editor .findMatchInline { color: ${o}; }`);let s=t.getColor(e.editorFindMatchHighlightForeground);s&&n.addRule(`.monaco-editor .currentFindMatchInline { color: ${s}; }`)});var Kv=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},qv=function(e,t){return function(n,r){t(n,r,e)}},Jv,Yv=524288;function Xv(e,t=`single`,n=!1){if(!e.hasModel())return null;let r=e.getSelection();if(t===`single`&&r.startLineNumber===r.endLineNumber||t===`multiple`){if(r.isEmpty()){let t=e.getConfiguredWordAtPosition(r.getStartPosition());if(t&&!1===n)return t.word}else if(e.getModel().getValueLengthInRange(r)<Yv)return e.getModel().getValueInRange(r)}return null}var Zv=class extends e.Disposable{static{Jv=this}static{this.ID=`editor.contrib.findController`}get editor(){return this._editor}static get(e){return e.getContribution(Jv.ID)}constructor(t,n,r,i,a,o){super(),this._editor=t,this._findWidgetVisible=I_.bindTo(n),this._contextKeyService=n,this._storageService=r,this._clipboardService=i,this._notificationService=a,this._hoverService=o,this._updateHistoryDelayer=new e.Delayer(500),this._state=this._register(new X_),this.loadQueryState(),this._register(this._state.onFindReplaceStateChange(e=>this._onStateChanged(e))),this._model=null,this._register(this._editor.onDidChangeModel(()=>{let e=this._editor.getModel()&&this._state.isRevealed;this.disposeModel(),this._state.change({searchScope:null,matchCase:this._storageService.getBoolean(`editor.matchCase`,1,!1),wholeWord:this._storageService.getBoolean(`editor.wholeWord`,1,!1),isRegex:this._storageService.getBoolean(`editor.isRegex`,1,!1),preserveCase:this._storageService.getBoolean(`editor.preserveCase`,1,!1)},!1),e&&this._start({forceRevealReplace:!1,seedSearchStringFromSelection:`none`,seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1,updateSearchScope:!1,loop:this._editor.getOption(41).loop})}))}dispose(){this.disposeModel(),super.dispose()}disposeModel(){this._model&&=(this._model.dispose(),null)}_onStateChanged(e){this.saveQueryState(e),e.isRevealed&&(this._state.isRevealed?this._findWidgetVisible.set(!0):(this._findWidgetVisible.reset(),this.disposeModel())),e.searchString&&this.setGlobalBufferTerm(this._state.searchString)}saveQueryState(e){e.isRegex&&this._storageService.store(`editor.isRegex`,this._state.actualIsRegex,1,1),e.wholeWord&&this._storageService.store(`editor.wholeWord`,this._state.actualWholeWord,1,1),e.matchCase&&this._storageService.store(`editor.matchCase`,this._state.actualMatchCase,1,1),e.preserveCase&&this._storageService.store(`editor.preserveCase`,this._state.actualPreserveCase,1,1)}loadQueryState(){this._state.change({matchCase:this._storageService.getBoolean(`editor.matchCase`,1,this._state.matchCase),wholeWord:this._storageService.getBoolean(`editor.wholeWord`,1,this._state.wholeWord),isRegex:this._storageService.getBoolean(`editor.isRegex`,1,this._state.isRegex),preserveCase:this._storageService.getBoolean(`editor.preserveCase`,1,this._state.preserveCase)},!1)}isFindInputFocused(){return!!R_.getValue(this._contextKeyService)}getState(){return this._state}closeFindWidget(){this._state.change({isRevealed:!1,searchScope:null},!1),this._editor.focus()}toggleCaseSensitive(){this._state.change({matchCase:!this._state.matchCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleWholeWords(){this._state.change({wholeWord:!this._state.wholeWord},!1),this._state.isRevealed||this.highlightFindOptions()}toggleRegex(){this._state.change({isRegex:!this._state.isRegex},!1),this._state.isRevealed||this.highlightFindOptions()}togglePreserveCase(){this._state.change({preserveCase:!this._state.preserveCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleSearchScope(){if(this._state.searchScope)this._state.change({searchScope:null},!0);else if(this._editor.hasModel()){let e=this._editor.getSelections();e=e.map(e=>(e.endColumn===1&&e.endLineNumber>e.startLineNumber&&(e=e.setEndPosition(e.endLineNumber-1,this._editor.getModel().getLineMaxColumn(e.endLineNumber-1))),e.isEmpty()?null:e)).filter(e=>!!e),e.length&&this._state.change({searchScope:e},!0)}}setSearchString(t){this._state.isRegex&&(t=e.escapeRegExpCharacters(t)),this._state.change({searchString:t},!1)}highlightFindOptions(e=!1){}async _start(t,n){if(this.disposeModel(),!this._editor.hasModel())return;let r={...n,isRevealed:!0};if(t.seedSearchStringFromSelection===`single`){let n=Xv(this._editor,t.seedSearchStringFromSelection,t.seedSearchStringFromNonEmptySelection);n&&(this._state.isRegex?r.searchString=e.escapeRegExpCharacters(n):r.searchString=n)}else if(t.seedSearchStringFromSelection===`multiple`&&!t.updateSearchScope){let e=Xv(this._editor,t.seedSearchStringFromSelection);e&&(r.searchString=e)}if(!r.searchString&&t.seedSearchStringFromGlobalClipboard){let e=await this.getGlobalBufferTerm();if(!this._editor.hasModel())return;e&&(r.searchString=e)}if(t.forceRevealReplace||r.isReplaceRevealed?r.isReplaceRevealed=!0:this._findWidgetVisible.get()||(r.isReplaceRevealed=!1),t.updateSearchScope){let e=this._editor.getSelections();e.some(e=>!e.isEmpty())&&(r.searchScope=e)}r.loop=t.loop,this._state.change(r,!1),this._model||=new q_(this._editor,this._state)}start(e,t){return this._start(e,t)}moveToNextMatch(){return this._model?(this._model.moveToNextMatch(),!0):!1}moveToPrevMatch(){return this._model?(this._model.moveToPrevMatch(),!0):!1}goToMatch(e){return this._model?(this._model.moveToMatch(e),!0):!1}replace(){return this._model?(this._model.replace(),!0):!1}replaceAll(){return this._model?this._editor.getModel()?.isTooLargeForHeapOperation()?(this._notificationService.warn(e.localize(`too.large.for.replaceall`,`The file is too large to perform a replace all operation.`)),!1):(this._model.replaceAll(),!0):!1}selectAllMatches(){return this._model?(this._model.selectAllMatches(),this._editor.focus(),!0):!1}async getGlobalBufferTerm(){return this._editor.getOption(41).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()?this._clipboardService.readFindText():``}setGlobalBufferTerm(e){this._editor.getOption(41).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()&&this._clipboardService.writeFindText(e)}};Zv=Jv=Kv([qv(1,e.IContextKeyService),qv(2,e.IStorageService),qv(3,e.IClipboardService),qv(4,e.INotificationService),qv(5,e.IHoverService)],Zv);var Qv=class extends Zv{constructor(e,t,n,r,i,a,o,s,c){super(e,n,o,s,a,c),this._contextViewService=t,this._keybindingService=r,this._themeService=i,this._widget=null,this._findOptionsWidget=null}async _start(e,t){this._widget||this._createFindWidget();let n=this._editor.getSelection(),r=!1;switch(this._editor.getOption(41).autoFindInSelection){case`always`:r=!0;break;case`never`:r=!1;break;case`multiline`:r=!!n&&n.startLineNumber!==n.endLineNumber;break;default:break}e.updateSearchScope=e.updateSearchScope||r,await super._start(e,t),this._widget&&(e.shouldFocus===2?this._widget.focusReplaceInput():e.shouldFocus===1&&this._widget.focusFindInput())}highlightFindOptions(e=!1){this._widget||this._createFindWidget(),this._state.isRevealed&&!e?this._widget.highlightFindOptions():this._findOptionsWidget.highlightFindOptions()}_createFindWidget(){this._widget=this._register(new Wv(this._editor,this,this._state,this._contextViewService,this._keybindingService,this._contextKeyService,this._themeService,this._storageService,this._notificationService,this._hoverService)),this._findOptionsWidget=this._register(new J_(this._editor,this._state,this._keybindingService))}};Qv=Kv([qv(1,e.IContextViewService),qv(2,e.IContextKeyService),qv(3,e.IKeybindingService),qv(4,e.IThemeService),qv(5,e.INotificationService),qv(6,e.IStorageService),qv(7,e.IClipboardService),qv(8,e.IHoverService)],Qv);const $v=e.registerMultiEditorAction(new e.MultiEditorAction({id:J.StartFindAction,label:e.localize(`startFindAction`,`Find`),alias:`Find`,precondition:e.ContextKeyExpr.or(e.EditorContextKeys.focus,e.ContextKeyExpr.has(`editorIsOpen`)),kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:e.MenuId.MenubarEditMenu,group:`3_find`,title:e.localize({key:`miFind`,comment:[`&& denotes a mnemonic`]},`&&Find`),order:1}}));$v.addImplementation(0,(e,t,n)=>{let r=Zv.get(t);return r?r.start({forceRevealReplace:!1,seedSearchStringFromSelection:t.getOption(41).seedSearchStringFromSelection===`never`?`none`:`single`,seedSearchStringFromNonEmptySelection:t.getOption(41).seedSearchStringFromSelection===`selection`,seedSearchStringFromGlobalClipboard:t.getOption(41).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(41).loop}):!1});var ey={description:`Open a new In-Editor Find Widget.`,args:[{name:`Open a new In-Editor Find Widget args`,schema:{properties:{searchString:{type:`string`},replaceString:{type:`string`},isRegex:{type:`boolean`},matchWholeWord:{type:`boolean`},isCaseSensitive:{type:`boolean`},preserveCase:{type:`boolean`},findInSelection:{type:`boolean`}}}}]},ty=class extends e.EditorAction{constructor(){super({id:J.StartFindWithArgs,label:e.localize(`startFindWithArgsAction`,`Find With Arguments`),alias:`Find With Arguments`,precondition:void 0,kbOpts:{kbExpr:null,primary:0,weight:100},metadata:ey})}async run(e,t,n){let r=Zv.get(t);if(r){let e=n?{searchString:n.searchString,replaceString:n.replaceString,isReplaceRevealed:n.replaceString!==void 0,isRegex:n.isRegex,wholeWord:n.matchWholeWord,matchCase:n.isCaseSensitive,preserveCase:n.preserveCase}:{};await r.start({forceRevealReplace:!1,seedSearchStringFromSelection:r.getState().searchString.length===0&&t.getOption(41).seedSearchStringFromSelection!==`never`?`single`:`none`,seedSearchStringFromNonEmptySelection:t.getOption(41).seedSearchStringFromSelection===`selection`,seedSearchStringFromGlobalClipboard:!0,shouldFocus:1,shouldAnimate:!0,updateSearchScope:n?.findInSelection||!1,loop:t.getOption(41).loop},e),r.setGlobalBufferTerm(r.getState().searchString)}}},ny=class extends e.EditorAction{constructor(){super({id:J.StartFindWithSelection,label:e.localize(`startFindWithSelectionAction`,`Find With Selection`),alias:`Find With Selection`,precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}async run(e,t){let n=Zv.get(t);n&&(await n.start({forceRevealReplace:!1,seedSearchStringFromSelection:`multiple`,seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(41).loop}),n.setGlobalBufferTerm(n.getState().searchString))}},ry=class extends e.EditorAction{async run(e,t){let n=Zv.get(t);n&&!this._run(n)&&(await n.start({forceRevealReplace:!1,seedSearchStringFromSelection:n.getState().searchString.length===0&&t.getOption(41).seedSearchStringFromSelection!==`never`?`single`:`none`,seedSearchStringFromNonEmptySelection:t.getOption(41).seedSearchStringFromSelection===`selection`,seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(41).loop}),this._run(n))}},iy=class extends ry{constructor(){super({id:J.NextMatchFindAction,label:e.localize(`findNextMatchAction`,`Find Next`),alias:`Find Next`,precondition:void 0,kbOpts:[{kbExpr:e.EditorContextKeys.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100},{kbExpr:e.ContextKeyExpr.and(e.EditorContextKeys.focus,R_),primary:3,weight:100}]})}_run(e){return e.moveToNextMatch()?(e.editor.pushUndoStop(),!0):!1}},ay=class extends ry{constructor(){super({id:J.PreviousMatchFindAction,label:e.localize(`findPreviousMatchAction`,`Find Previous`),alias:`Find Previous`,precondition:void 0,kbOpts:[{kbExpr:e.EditorContextKeys.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100},{kbExpr:e.ContextKeyExpr.and(e.EditorContextKeys.focus,R_),primary:1027,weight:100}]})}_run(e){return e.moveToPrevMatch()}},oy=class extends e.EditorAction{constructor(){super({id:J.GoToMatchFindAction,label:e.localize(`findMatchAction.goToMatch`,`Go to Match...`),alias:`Go to Match...`,precondition:I_}),this._highlightDecorations=[]}run(t,n,r){let i=Zv.get(n);if(!i)return;let a=i.getState().matchesCount;if(a<1){t.get(e.INotificationService).notify({severity:e.Severity.Warning,message:e.localize(`findMatchAction.noResults`,`No matches. Try searching for something else.`)});return}let o=t.get(e.IQuickInputService),s=new e.DisposableStore,c=s.add(o.createInputBox());c.placeholder=e.localize(`findMatchAction.inputPlaceHolder`,`Type a number to go to a specific match (between 1 and {0})`,a);let l=e=>{let t=parseInt(e);if(isNaN(t))return;let n=i.getState().matchesCount;if(t>0&&t<=n)return t-1;if(t<0&&t>=-n)return n+t},u=t=>{let r=l(t);if(typeof r==`number`){c.validationMessage=void 0,i.goToMatch(r);let e=i.getState().currentMatch;e&&this.addDecorations(n,e)}else c.validationMessage=e.localize(`findMatchAction.inputValidationMessage`,`Please type a number between 1 and {0}`,i.getState().matchesCount),this.clearDecorations(n)};s.add(c.onDidChangeValue(e=>{u(e)})),s.add(c.onDidAccept(()=>{let t=l(c.value);typeof t==`number`?(i.goToMatch(t),c.hide()):c.validationMessage=e.localize(`findMatchAction.inputValidationMessage`,`Please type a number between 1 and {0}`,i.getState().matchesCount)})),s.add(c.onDidHide(()=>{this.clearDecorations(n),s.dispose()})),c.show()}clearDecorations(e){e.changeDecorations(e=>{this._highlightDecorations=e.deltaDecorations(this._highlightDecorations,[])})}addDecorations(t,n){t.changeDecorations(t=>{this._highlightDecorations=t.deltaDecorations(this._highlightDecorations,[{range:n,options:{description:`find-match-quick-access-range-highlight`,className:`rangeHighlight`,isWholeLine:!0}},{range:n,options:{description:`find-match-quick-access-range-highlight-overview`,overviewRuler:{color:e.themeColorFromId(e.overviewRulerRangeHighlight),position:e.OverviewRulerLane.Full}}}])})}},sy=class extends e.EditorAction{async run(e,t){let n=Zv.get(t);if(!n)return;let r=Xv(t,`single`,!1);r&&n.setSearchString(r),this._run(n)||(await n.start({forceRevealReplace:!1,seedSearchStringFromSelection:`none`,seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(41).loop}),this._run(n))}},cy=class extends sy{constructor(){super({id:J.NextSelectionMatchFindAction,label:e.localize(`nextSelectionMatchFindAction`,`Find Next Selection`),alias:`Find Next Selection`,precondition:void 0,kbOpts:{kbExpr:e.EditorContextKeys.focus,primary:2109,weight:100}})}_run(e){return e.moveToNextMatch()}},ly=class extends sy{constructor(){super({id:J.PreviousSelectionMatchFindAction,label:e.localize(`previousSelectionMatchFindAction`,`Find Previous Selection`),alias:`Find Previous Selection`,precondition:void 0,kbOpts:{kbExpr:e.EditorContextKeys.focus,primary:3133,weight:100}})}_run(e){return e.moveToPrevMatch()}};const uy=e.registerMultiEditorAction(new e.MultiEditorAction({id:J.StartFindReplaceAction,label:e.localize(`startReplace`,`Replace`),alias:`Replace`,precondition:e.ContextKeyExpr.or(e.EditorContextKeys.focus,e.ContextKeyExpr.has(`editorIsOpen`)),kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:e.MenuId.MenubarEditMenu,group:`3_find`,title:e.localize({key:`miReplace`,comment:[`&& denotes a mnemonic`]},`&&Replace`),order:2}}));uy.addImplementation(0,(e,t,n)=>{if(!t.hasModel()||t.getOption(92))return!1;let r=Zv.get(t);if(!r)return!1;let i=t.getSelection(),a=r.isFindInputFocused(),o=!i.isEmpty()&&i.startLineNumber===i.endLineNumber&&t.getOption(41).seedSearchStringFromSelection!==`never`&&!a,s=a||o?2:1;return r.start({forceRevealReplace:!0,seedSearchStringFromSelection:o?`single`:`none`,seedSearchStringFromNonEmptySelection:t.getOption(41).seedSearchStringFromSelection===`selection`,seedSearchStringFromGlobalClipboard:t.getOption(41).seedSearchStringFromSelection!==`never`,shouldFocus:s,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(41).loop})}),e.registerEditorContribution(Zv.ID,Qv,0),e.registerEditorAction(ty),e.registerEditorAction(ny),e.registerEditorAction(iy),e.registerEditorAction(ay),e.registerEditorAction(oy),e.registerEditorAction(cy),e.registerEditorAction(ly);var dy=e.EditorCommand.bindToContribution(Zv.get);e.registerEditorCommand(new dy({id:J.CloseFindWidgetCommand,precondition:I_,handler:e=>e.closeFindWidget(),kbOpts:{weight:105,kbExpr:e.ContextKeyExpr.and(e.EditorContextKeys.focus,e.ContextKeyExpr.not(`isComposing`)),primary:9,secondary:[1033]}})),e.registerEditorCommand(new dy({id:J.ToggleCaseSensitiveCommand,precondition:void 0,handler:e=>e.toggleCaseSensitive(),kbOpts:{weight:105,kbExpr:e.EditorContextKeys.focus,primary:B_.primary,mac:B_.mac,win:B_.win,linux:B_.linux}})),e.registerEditorCommand(new dy({id:J.ToggleWholeWordCommand,precondition:void 0,handler:e=>e.toggleWholeWords(),kbOpts:{weight:105,kbExpr:e.EditorContextKeys.focus,primary:V_.primary,mac:V_.mac,win:V_.win,linux:V_.linux}})),e.registerEditorCommand(new dy({id:J.ToggleRegexCommand,precondition:void 0,handler:e=>e.toggleRegex(),kbOpts:{weight:105,kbExpr:e.EditorContextKeys.focus,primary:H_.primary,mac:H_.mac,win:H_.win,linux:H_.linux}})),e.registerEditorCommand(new dy({id:J.ToggleSearchScopeCommand,precondition:void 0,handler:e=>e.toggleSearchScope(),kbOpts:{weight:105,kbExpr:e.EditorContextKeys.focus,primary:U_.primary,mac:U_.mac,win:U_.win,linux:U_.linux}})),e.registerEditorCommand(new dy({id:J.TogglePreserveCaseCommand,precondition:void 0,handler:e=>e.togglePreserveCase(),kbOpts:{weight:105,kbExpr:e.EditorContextKeys.focus,primary:W_.primary,mac:W_.mac,win:W_.win,linux:W_.linux}})),e.registerEditorCommand(new dy({id:J.ReplaceOneAction,precondition:I_,handler:e=>e.replace(),kbOpts:{weight:105,kbExpr:e.EditorContextKeys.focus,primary:3094}})),e.registerEditorCommand(new dy({id:J.ReplaceOneAction,precondition:I_,handler:e=>e.replace(),kbOpts:{weight:105,kbExpr:e.ContextKeyExpr.and(e.EditorContextKeys.focus,z_),primary:3}})),e.registerEditorCommand(new dy({id:J.ReplaceAllAction,precondition:I_,handler:e=>e.replaceAll(),kbOpts:{weight:105,kbExpr:e.EditorContextKeys.focus,primary:2563}})),e.registerEditorCommand(new dy({id:J.ReplaceAllAction,precondition:I_,handler:e=>e.replaceAll(),kbOpts:{weight:105,kbExpr:e.ContextKeyExpr.and(e.EditorContextKeys.focus,z_),primary:void 0,mac:{primary:2051}}})),e.registerEditorCommand(new dy({id:J.SelectAllMatchesAction,precondition:I_,handler:e=>e.selectAllMatches(),kbOpts:{weight:105,kbExpr:e.EditorContextKeys.focus,primary:515}}));const fy={0:` `,1:`u`,2:`r`},py=65535,my=16777215;var hy=4278190080,gy=class{constructor(e){let t=Math.ceil(e/32);this._states=new Uint32Array(t)}get(e){let t=e/32|0,n=e%32;return(this._states[t]&1<<n)!=0}set(e,t){let n=e/32|0,r=e%32,i=this._states[n];t?this._states[n]=i|1<<r:this._states[n]=i&~(1<<r)}},_y=class e{constructor(e,t,n){if(e.length!==t.length||e.length>65535)throw Error(`invalid startIndexes or endIndexes size`);this._startIndexes=e,this._endIndexes=t,this._collapseStates=new gy(e.length),this._userDefinedStates=new gy(e.length),this._recoveredStates=new gy(e.length),this._types=n,this._parentsComputed=!1}ensureParentIndices(){if(!this._parentsComputed){this._parentsComputed=!0;let e=[],t=(t,n)=>{let r=e[e.length-1];return this.getStartLineNumber(r)<=t&&this.getEndLineNumber(r)>=n};for(let n=0,r=this._startIndexes.length;n<r;n++){let r=this._startIndexes[n],i=this._endIndexes[n];if(r>16777215||i>16777215)throw Error(`startLineNumber or endLineNumber must not exceed `+my);for(;e.length>0&&!t(r,i);)e.pop();let a=e.length>0?e[e.length-1]:-1;e.push(n),this._startIndexes[n]=r+((a&255)<<24),this._endIndexes[n]=i+((a&65280)<<16)}}}get length(){return this._startIndexes.length}getStartLineNumber(e){return this._startIndexes[e]&my}getEndLineNumber(e){return this._endIndexes[e]&my}getType(e){return this._types?this._types[e]:void 0}hasTypes(){return!!this._types}isCollapsed(e){return this._collapseStates.get(e)}setCollapsed(e,t){this._collapseStates.set(e,t)}isUserDefined(e){return this._userDefinedStates.get(e)}setUserDefined(e,t){return this._userDefinedStates.set(e,t)}isRecovered(e){return this._recoveredStates.get(e)}setRecovered(e,t){return this._recoveredStates.set(e,t)}getSource(e){return this.isUserDefined(e)?1:this.isRecovered(e)?2:0}setSource(e,t){t===1?(this.setUserDefined(e,!0),this.setRecovered(e,!1)):t===2?(this.setUserDefined(e,!1),this.setRecovered(e,!0)):(this.setUserDefined(e,!1),this.setRecovered(e,!1))}setCollapsedAllOfType(e,t){let n=!1;if(this._types)for(let r=0;r<this._types.length;r++)this._types[r]===e&&(this.setCollapsed(r,t),n=!0);return n}toRegion(e){return new vy(this,e)}getParentIndex(e){this.ensureParentIndices();let t=((this._startIndexes[e]&hy)>>>24)+((this._endIndexes[e]&hy)>>>16);return t===65535?-1:t}contains(e,t){return this.getStartLineNumber(e)<=t&&this.getEndLineNumber(e)>=t}findIndex(e){let t=0,n=this._startIndexes.length;if(n===0)return-1;for(;t<n;){let r=Math.floor((t+n)/2);e<this.getStartLineNumber(r)?n=r:t=r+1}return t-1}findRange(e){let t=this.findIndex(e);if(t>=0){if(this.getEndLineNumber(t)>=e)return t;for(t=this.getParentIndex(t);t!==-1;){if(this.contains(t,e))return t;t=this.getParentIndex(t)}}return-1}toString(){let e=[];for(let t=0;t<this.length;t++)e[t]=`[${fy[this.getSource(t)]}${this.isCollapsed(t)?`+`:`-`}] ${this.getStartLineNumber(t)}/${this.getEndLineNumber(t)}`;return e.join(`, `)}toFoldRange(e){return{startLineNumber:this._startIndexes[e]&my,endLineNumber:this._endIndexes[e]&my,type:this._types?this._types[e]:void 0,isCollapsed:this.isCollapsed(e),source:this.getSource(e)}}static fromFoldRanges(t){let n=t.length,r=new Uint32Array(n),i=new Uint32Array(n),a=[],o=!1;for(let e=0;e<n;e++){let n=t[e];r[e]=n.startLineNumber,i[e]=n.endLineNumber,a.push(n.type),n.type&&(o=!0)}o||(a=void 0);let s=new e(r,i,a);for(let e=0;e<n;e++)t[e].isCollapsed&&s.setCollapsed(e,!0),s.setSource(e,t[e].source);return s}static sanitizeAndMerge(e,t,n,r){n??=Number.MAX_VALUE;let i=(e,t)=>Array.isArray(e)?(n=>n<t?e[n]:void 0):(n=>n<t?e.toFoldRange(n):void 0),a=i(e,e.length),o=i(t,t.length),s=0,c=0,l=a(0),u=o(0),d=[],f,p=0,m=[];for(;l||u;){let e;if(u&&(!l||l.startLineNumber>=u.startLineNumber))l&&l.startLineNumber===u.startLineNumber?(u.source===1?e=u:(e=l,e.isCollapsed=u.isCollapsed&&(l.endLineNumber===u.endLineNumber||!r?.startsInside(l.startLineNumber+1,l.endLineNumber+1)),e.source=0),l=a(++s)):(e=u,u.isCollapsed&&u.source===0&&(e.source=2)),u=o(++c);else{let t=c,n=u;for(;;){if(!n||n.startLineNumber>l.endLineNumber){e=l;break}if(n.source===1&&n.endLineNumber>l.endLineNumber)break;n=o(++t)}l=a(++s)}if(e){for(;f&&f.endLineNumber<e.startLineNumber;)f=d.pop();e.endLineNumber>e.startLineNumber&&e.startLineNumber>p&&e.endLineNumber<=n&&(!f||f.endLineNumber>=e.endLineNumber)&&(m.push(e),p=e.startLineNumber,f&&d.push(f),f=e)}}return m}},vy=class{constructor(e,t){this.ranges=e,this.index=t}get startLineNumber(){return this.ranges.getStartLineNumber(this.index)}get endLineNumber(){return this.ranges.getEndLineNumber(this.index)}get regionIndex(){return this.index}get parentIndex(){return this.ranges.getParentIndex(this.index)}get isCollapsed(){return this.ranges.isCollapsed(this.index)}containedBy(e){return e.startLineNumber<=this.startLineNumber&&e.endLineNumber>=this.endLineNumber}containsLine(e){return this.startLineNumber<=e&&e<=this.endLineNumber}},yy=class{get regions(){return this._regions}get textModel(){return this._textModel}constructor(t,n){this._updateEventEmitter=new e.Emitter$1,this.onDidChange=this._updateEventEmitter.event,this._textModel=t,this._decorationProvider=n,this._regions=new _y(new Uint32Array,new Uint32Array),this._editorDecorationIds=[]}toggleCollapseState(e){if(!e.length)return;e=e.sort((e,t)=>e.regionIndex-t.regionIndex);let t={};this._decorationProvider.changeDecorations(n=>{let r=0,i=-1,a=-1,o=e=>{for(;r<e;){let e=this._regions.getEndLineNumber(r),t=this._regions.isCollapsed(r);if(e<=i){let i=this.regions.getSource(r)!==0;n.changeDecorationOptions(this._editorDecorationIds[r],this._decorationProvider.getDecorationOption(t,e<=a,i))}t&&e>a&&(a=e),r++}};for(let n of e){let e=n.regionIndex,r=this._editorDecorationIds[e];if(r&&!t[r]){t[r]=!0,o(e);let n=!this._regions.isCollapsed(e);this._regions.setCollapsed(e,n),i=Math.max(i,this._regions.getEndLineNumber(e))}}o(this._regions.length)}),this._updateEventEmitter.fire({model:this,collapseStateChanged:e})}removeManualRanges(e){let t=[],n=t=>{for(let n of e)if(!(n.startLineNumber>t.endLineNumber||t.startLineNumber>n.endLineNumber))return!0;return!1};for(let e=0;e<this._regions.length;e++){let r=this._regions.toFoldRange(e);(r.source===0||!n(r))&&t.push(r)}this.updatePost(_y.fromFoldRanges(t))}update(e,t){let n=this._currentFoldedOrManualRanges(t),r=_y.sanitizeAndMerge(e,n,this._textModel.getLineCount(),t);this.updatePost(_y.fromFoldRanges(r))}updatePost(e){let t=[],n=-1;for(let r=0,i=e.length;r<i;r++){let i=e.getStartLineNumber(r),a=e.getEndLineNumber(r),o=e.isCollapsed(r),s=e.getSource(r)!==0,c={startLineNumber:i,startColumn:this._textModel.getLineMaxColumn(i),endLineNumber:a,endColumn:this._textModel.getLineMaxColumn(a)+1};t.push({range:c,options:this._decorationProvider.getDecorationOption(o,a<=n,s)}),o&&a>n&&(n=a)}this._decorationProvider.changeDecorations(e=>this._editorDecorationIds=e.deltaDecorations(this._editorDecorationIds,t)),this._regions=e,this._updateEventEmitter.fire({model:this})}_currentFoldedOrManualRanges(e){let t=[];for(let n=0,r=this._regions.length;n<r;n++){let r=this.regions.isCollapsed(n),i=this.regions.getSource(n);if(r||i!==0){let a=this._regions.toFoldRange(n),o=this._textModel.getDecorationRange(this._editorDecorationIds[n]);o&&(r&&e?.startsInside(o.startLineNumber+1,o.endLineNumber)&&(r=!1),t.push({startLineNumber:o.startLineNumber,endLineNumber:o.endLineNumber,type:a.type,isCollapsed:r,source:i}))}}return t}getMemento(){let e=this._currentFoldedOrManualRanges(),t=[],n=this._textModel.getLineCount();for(let r=0,i=e.length;r<i;r++){let i=e[r];if(i.startLineNumber>=i.endLineNumber||i.startLineNumber<1||i.endLineNumber>n)continue;let a=this._getLinesChecksum(i.startLineNumber+1,i.endLineNumber);t.push({startLineNumber:i.startLineNumber,endLineNumber:i.endLineNumber,isCollapsed:i.isCollapsed,source:i.source,checksum:a})}return t.length>0?t:void 0}applyMemento(e){if(!Array.isArray(e))return;let t=[],n=this._textModel.getLineCount();for(let r of e){if(r.startLineNumber>=r.endLineNumber||r.startLineNumber<1||r.endLineNumber>n)continue;let e=this._getLinesChecksum(r.startLineNumber+1,r.endLineNumber);(!r.checksum||e===r.checksum)&&t.push({startLineNumber:r.startLineNumber,endLineNumber:r.endLineNumber,type:void 0,isCollapsed:r.isCollapsed??!0,source:r.source??0})}let r=_y.sanitizeAndMerge(this._regions,t,n);this.updatePost(_y.fromFoldRanges(r))}_getLinesChecksum(t,n){return e.hash(this._textModel.getLineContent(t)+this._textModel.getLineContent(n))%1e6}dispose(){this._decorationProvider.removeDecorations(this._editorDecorationIds)}getAllRegionsAtLine(e,t){let n=[];if(this._regions){let r=this._regions.findRange(e),i=1;for(;r>=0;){let e=this._regions.toRegion(r);(!t||t(e,i))&&n.push(e),i++,r=e.parentIndex}}return n}getRegionAtLine(e){if(this._regions){let t=this._regions.findRange(e);if(t>=0)return this._regions.toRegion(t)}return null}getRegionsInside(e,t){let n=[],r=e?e.regionIndex+1:0,i=e?e.endLineNumber:Number.MAX_VALUE;if(t&&t.length===2){let e=[];for(let a=r,o=this._regions.length;a<o;a++){let r=this._regions.toRegion(a);if(this._regions.getStartLineNumber(a)<i){for(;e.length>0&&!r.containedBy(e[e.length-1]);)e.pop();e.push(r),t(r,e.length)&&n.push(r)}else break}}else for(let e=r,a=this._regions.length;e<a;e++){let r=this._regions.toRegion(e);if(this._regions.getStartLineNumber(e)<i)(!t||t(r))&&n.push(r);else break}return n}};function by(e,t,n){let r=[];for(let i of n){let n=e.getRegionAtLine(i);if(n){let i=!n.isCollapsed;if(r.push(n),t>1){let a=e.getRegionsInside(n,(e,n)=>e.isCollapsed!==i&&n<t);r.push(...a)}}}e.toggleCollapseState(r)}function xy(e,t,n=Number.MAX_VALUE,r){let i=[];if(r&&r.length>0)for(let a of r){let r=e.getRegionAtLine(a);if(r&&(r.isCollapsed!==t&&i.push(r),n>1)){let a=e.getRegionsInside(r,(e,r)=>e.isCollapsed!==t&&r<n);i.push(...a)}}else{let r=e.getRegionsInside(null,(e,r)=>e.isCollapsed!==t&&r<n);i.push(...r)}e.toggleCollapseState(i)}function Sy(e,t,n,r){let i=[];for(let a of r){let r=e.getAllRegionsAtLine(a,(e,r)=>e.isCollapsed!==t&&r<=n);i.push(...r)}e.toggleCollapseState(i)}function Cy(e,t,n){let r=[];for(let i of n){let n=e.getAllRegionsAtLine(i,e=>e.isCollapsed!==t);n.length>0&&r.push(n[0])}e.toggleCollapseState(r)}function wy(e,t,n,r){let i=e.getRegionsInside(null,(e,i)=>i===t&&e.isCollapsed!==n&&!r.some(t=>e.containsLine(t)));e.toggleCollapseState(i)}function Ty(e,t,n){let r=[];for(let t of n){let n=e.getAllRegionsAtLine(t,void 0);n.length>0&&r.push(n[0])}let i=e.getRegionsInside(null,e=>r.every(t=>!t.containedBy(e)&&!e.containedBy(t))&&e.isCollapsed!==t);e.toggleCollapseState(i)}function Ey(e,t,n){let r=e.textModel,i=e.regions,a=[];for(let e=i.length-1;e>=0;e--)if(n!==i.isCollapsed(e)){let n=i.getStartLineNumber(e);t.test(r.getLineContent(n))&&a.push(i.toRegion(e))}e.toggleCollapseState(a)}function Dy(e,t,n){let r=e.regions,i=[];for(let e=r.length-1;e>=0;e--)n!==r.isCollapsed(e)&&t===r.getType(e)&&i.push(r.toRegion(e));e.toggleCollapseState(i)}function Oy(e,t){let n=null,r=t.getRegionAtLine(e);if(r!==null&&(n=r.startLineNumber,e===n)){let e=r.parentIndex;n=e===-1?null:t.regions.getStartLineNumber(e)}return n}function ky(e,t){let n=t.getRegionAtLine(e);if(n!==null&&n.startLineNumber===e){if(e!==n.startLineNumber)return n.startLineNumber;{let e=n.parentIndex,r=0;for(e!==-1&&(r=t.regions.getStartLineNumber(n.parentIndex));n!==null;)if(n.regionIndex>0){if(n=t.regions.toRegion(n.regionIndex-1),n.startLineNumber<=r)return null;if(n.parentIndex===e)return n.startLineNumber}else return null}}else if(t.regions.length>0)for(n=t.regions.toRegion(t.regions.length-1);n!==null;){if(n.startLineNumber<e)return n.startLineNumber;n=n.regionIndex>0?t.regions.toRegion(n.regionIndex-1):null}return null}function Ay(e,t){let n=t.getRegionAtLine(e);if(n!==null&&n.startLineNumber===e){let e=n.parentIndex,r=0;if(e!==-1)r=t.regions.getEndLineNumber(n.parentIndex);else if(t.regions.length===0)return null;else r=t.regions.getEndLineNumber(t.regions.length-1);for(;n!==null;)if(n.regionIndex<t.regions.length){if(n=t.regions.toRegion(n.regionIndex+1),n.startLineNumber>=r)return null;if(n.parentIndex===e)return n.startLineNumber}else return null}else if(t.regions.length>0)for(n=t.regions.toRegion(0);n!==null;){if(n.startLineNumber>e)return n.startLineNumber;n=n.regionIndex<t.regions.length?t.regions.toRegion(n.regionIndex+1):null}return null}var jy=class{get onDidChange(){return this._updateEventEmitter.event}get hiddenRanges(){return this._hiddenRanges}constructor(t){this._updateEventEmitter=new e.Emitter$1,this._hasLineChanges=!1,this._foldingModel=t,this._foldingModelListener=t.onDidChange(e=>this.updateHiddenRanges()),this._hiddenRanges=[],t.regions.length&&this.updateHiddenRanges()}notifyChangeModelContent(t){this._hiddenRanges.length&&!this._hasLineChanges&&(this._hasLineChanges=t.changes.some(t=>t.range.endLineNumber!==t.range.startLineNumber||e.countEOL(t.text)[0]!==0))}updateHiddenRanges(){let t=!1,n=[],r=0,i=0,a=Number.MAX_VALUE,o=-1,s=this._foldingModel.regions;for(;r<s.length;r++){if(!s.isCollapsed(r))continue;let c=s.getStartLineNumber(r)+1,l=s.getEndLineNumber(r);a<=c&&l<=o||(!t&&i<this._hiddenRanges.length&&this._hiddenRanges[i].startLineNumber===c&&this._hiddenRanges[i].endLineNumber===l?(n.push(this._hiddenRanges[i]),i++):(t=!0,n.push(new e.Range$1(c,1,l,1))),a=c,o=l)}(this._hasLineChanges||t||i<this._hiddenRanges.length)&&this.applyHiddenRanges(n)}applyHiddenRanges(e){this._hiddenRanges=e,this._hasLineChanges=!1,this._updateEventEmitter.fire(e)}hasRanges(){return this._hiddenRanges.length>0}isHidden(e){return Ny(this._hiddenRanges,e)!==null}adjustSelections(e){let t=!1,n=this._foldingModel.textModel,r=null,i=e=>((!r||!My(e,r))&&(r=Ny(this._hiddenRanges,e)),r?r.startLineNumber-1:null);for(let r=0,a=e.length;r<a;r++){let a=e[r],o=i(a.startLineNumber);o&&(a=a.setStartPosition(o,n.getLineMaxColumn(o)),t=!0);let s=i(a.endLineNumber);s&&(a=a.setEndPosition(s,n.getLineMaxColumn(s)),t=!0),e[r]=a}return t}dispose(){this.hiddenRanges.length>0&&(this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges)),this._foldingModelListener&&=(this._foldingModelListener.dispose(),null)}};function My(e,t){return e>=t.startLineNumber&&e<=t.endLineNumber}function Ny(t,n){let r=e.findFirstIdxMonotonousOrArrLen(t,e=>n<e.startLineNumber)-1;return r>=0&&t[r].endLineNumber>=n?t[r]:null}var Py=5e3,Fy=`indent`,Iy=class{constructor(e,t,n){this.editorModel=e,this.languageConfigurationService=t,this.foldingRangesLimit=n,this.id=Fy}dispose(){}compute(e){let t=this.languageConfigurationService.getLanguageConfiguration(this.editorModel.getLanguageId()).foldingRules,n=t&&!!t.offSide,r=t&&t.markers;return Promise.resolve(zy(this.editorModel,n,r,this.foldingRangesLimit))}},Ly=class{constructor(e){this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=e}insertFirst(e,t,n){if(e>16777215||t>16777215)return;let r=this._length;this._startIndexes[r]=e,this._endIndexes[r]=t,this._length++,n<1e3&&(this._indentOccurrences[n]=(this._indentOccurrences[n]||0)+1)}toIndentRanges(t){let n=this._foldingRangesLimit.limit;if(this._length<=n){this._foldingRangesLimit.update(this._length,!1);let e=new Uint32Array(this._length),t=new Uint32Array(this._length);for(let n=this._length-1,r=0;n>=0;n--,r++)e[r]=this._startIndexes[n],t[r]=this._endIndexes[n];return new _y(e,t)}else{this._foldingRangesLimit.update(this._length,n);let r=0,i=this._indentOccurrences.length;for(let e=0;e<this._indentOccurrences.length;e++){let t=this._indentOccurrences[e];if(t){if(t+r>n){i=e;break}r+=t}}let a=t.getOptions().tabSize,o=new Uint32Array(n),s=new Uint32Array(n);for(let c=this._length-1,l=0;c>=0;c--){let u=this._startIndexes[c],d=t.getLineContent(u),f=e.computeIndentLevel(d,a);(f<i||f===i&&r++<n)&&(o[l]=u,s[l]=this._endIndexes[c],l++)}return new _y(o,s)}}},Ry={limit:Py,update:()=>{}};function zy(t,n,r,i=Ry){let a=t.getOptions().tabSize,o=new Ly(i),s;r&&(s=RegExp(`(${r.start.source})|(?:${r.end.source})`));let c=[],l=t.getLineCount()+1;c.push({indent:-1,endAbove:l,line:l});for(let r=t.getLineCount();r>0;r--){let i=t.getLineContent(r),l=e.computeIndentLevel(i,a),u=c[c.length-1];if(l===-1){n&&(u.endAbove=r);continue}let d;if(s&&(d=i.match(s)))if(d[1]){let e=c.length-1;for(;e>0&&c[e].indent!==-2;)e--;if(e>0){c.length=e+1,u=c[e],o.insertFirst(r,u.line,l),u.line=r,u.indent=l,u.endAbove=r;continue}}else{c.push({indent:-2,endAbove:r,line:r});continue}if(u.indent>l){do c.pop(),u=c[c.length-1];while(u.indent>l);let e=u.endAbove-1;e-r>=1&&o.insertFirst(r,e,l)}u.indent===l?u.endAbove=r:c.push({indent:l,endAbove:r,line:r})}return o.toIndentRanges(t)}var By=e.registerColor(`editor.foldBackground`,{light:e.transparent(e.editorSelectionBackground,.3),dark:e.transparent(e.editorSelectionBackground,.3),hcDark:null,hcLight:null},e.localize(`foldBackgroundBackground`,`Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations.`),!0);e.registerColor(`editor.foldPlaceholderForeground`,{light:`#808080`,dark:`#808080`,hcDark:null,hcLight:null},e.localize(`collapsedTextColor`,`Color of the collapsed text after the first line of a folded range.`)),e.registerColor(`editorGutter.foldingControlForeground`,e.iconForeground,e.localize(`editorGutter.foldingControlForeground`,`Color of the folding control in the editor gutter.`));const Vy=e.registerIcon(`folding-expanded`,e.Codicon.chevronDown,e.localize(`foldingExpandedIcon`,`Icon for expanded ranges in the editor glyph margin.`)),Hy=e.registerIcon(`folding-collapsed`,e.Codicon.chevronRight,e.localize(`foldingCollapsedIcon`,`Icon for collapsed ranges in the editor glyph margin.`)),Uy=e.registerIcon(`folding-manual-collapsed`,Hy,e.localize(`foldingManualCollapedIcon`,`Icon for manually collapsed ranges in the editor glyph margin.`)),Wy=e.registerIcon(`folding-manual-expanded`,Vy,e.localize(`foldingManualExpandedIcon`,`Icon for manually expanded ranges in the editor glyph margin.`));var Gy={color:e.themeColorFromId(By),position:1},Ky=e.localize(`linesCollapsed`,`Click to expand the range.`),qy=e.localize(`linesExpanded`,`Click to collapse the range.`),Jy=class t{static{this.COLLAPSED_VISUAL_DECORATION=e.ModelDecorationOptions.register({description:`folding-collapsed-visual-decoration`,stickiness:0,afterContentClassName:`inline-folded`,isWholeLine:!0,linesDecorationsTooltip:Ky,firstLineDecorationClassName:e.ThemeIcon.asClassName(Hy)})}static{this.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=e.ModelDecorationOptions.register({description:`folding-collapsed-highlighted-visual-decoration`,stickiness:0,afterContentClassName:`inline-folded`,className:`folded-background`,minimap:Gy,isWholeLine:!0,linesDecorationsTooltip:Ky,firstLineDecorationClassName:e.ThemeIcon.asClassName(Hy)})}static{this.MANUALLY_COLLAPSED_VISUAL_DECORATION=e.ModelDecorationOptions.register({description:`folding-manually-collapsed-visual-decoration`,stickiness:0,afterContentClassName:`inline-folded`,isWholeLine:!0,linesDecorationsTooltip:Ky,firstLineDecorationClassName:e.ThemeIcon.asClassName(Uy)})}static{this.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=e.ModelDecorationOptions.register({description:`folding-manually-collapsed-highlighted-visual-decoration`,stickiness:0,afterContentClassName:`inline-folded`,className:`folded-background`,minimap:Gy,isWholeLine:!0,linesDecorationsTooltip:Ky,firstLineDecorationClassName:e.ThemeIcon.asClassName(Uy)})}static{this.NO_CONTROLS_COLLAPSED_RANGE_DECORATION=e.ModelDecorationOptions.register({description:`folding-no-controls-range-decoration`,stickiness:0,afterContentClassName:`inline-folded`,isWholeLine:!0,linesDecorationsTooltip:Ky})}static{this.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION=e.ModelDecorationOptions.register({description:`folding-no-controls-range-decoration`,stickiness:0,afterContentClassName:`inline-folded`,className:`folded-background`,minimap:Gy,isWholeLine:!0,linesDecorationsTooltip:Ky})}static{this.EXPANDED_VISUAL_DECORATION=e.ModelDecorationOptions.register({description:`folding-expanded-visual-decoration`,stickiness:1,isWholeLine:!0,firstLineDecorationClassName:`alwaysShowFoldIcons `+e.ThemeIcon.asClassName(Vy),linesDecorationsTooltip:qy})}static{this.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=e.ModelDecorationOptions.register({description:`folding-expanded-auto-hide-visual-decoration`,stickiness:1,isWholeLine:!0,firstLineDecorationClassName:e.ThemeIcon.asClassName(Vy),linesDecorationsTooltip:qy})}static{this.MANUALLY_EXPANDED_VISUAL_DECORATION=e.ModelDecorationOptions.register({description:`folding-manually-expanded-visual-decoration`,stickiness:0,isWholeLine:!0,firstLineDecorationClassName:`alwaysShowFoldIcons `+e.ThemeIcon.asClassName(Wy),linesDecorationsTooltip:qy})}static{this.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION=e.ModelDecorationOptions.register({description:`folding-manually-expanded-auto-hide-visual-decoration`,stickiness:0,isWholeLine:!0,firstLineDecorationClassName:e.ThemeIcon.asClassName(Wy),linesDecorationsTooltip:qy})}static{this.NO_CONTROLS_EXPANDED_RANGE_DECORATION=e.ModelDecorationOptions.register({description:`folding-no-controls-range-decoration`,stickiness:0,isWholeLine:!0})}static{this.HIDDEN_RANGE_DECORATION=e.ModelDecorationOptions.register({description:`folding-hidden-range-decoration`,stickiness:1})}constructor(e){this.editor=e,this.showFoldingControls=`mouseover`,this.showFoldingHighlights=!0}getDecorationOption(e,n,r){return n?t.HIDDEN_RANGE_DECORATION:this.showFoldingControls===`never`?e?this.showFoldingHighlights?t.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION:t.NO_CONTROLS_COLLAPSED_RANGE_DECORATION:t.NO_CONTROLS_EXPANDED_RANGE_DECORATION:e?r?this.showFoldingHighlights?t.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:t.MANUALLY_COLLAPSED_VISUAL_DECORATION:this.showFoldingHighlights?t.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:t.COLLAPSED_VISUAL_DECORATION:this.showFoldingControls===`mouseover`?r?t.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION:t.EXPANDED_AUTO_HIDE_VISUAL_DECORATION:r?t.MANUALLY_EXPANDED_VISUAL_DECORATION:t.EXPANDED_VISUAL_DECORATION}changeDecorations(e){return this.editor.changeDecorations(e)}removeDecorations(e){this.editor.removeDecorations(e)}},Yy={},Xy=`syntax`,Zy=class{constructor(t,n,r,i,a){this.editorModel=t,this.providers=n,this.handleFoldingRangesChange=r,this.foldingRangesLimit=i,this.fallbackRangeProvider=a,this.id=Xy,this.disposables=new e.DisposableStore,a&&this.disposables.add(a);for(let e of n)typeof e.onDidChange==`function`&&this.disposables.add(e.onDidChange(r))}compute(e){return Qy(this.providers,this.editorModel,e).then(t=>t?eb(t,this.foldingRangesLimit):this.fallbackRangeProvider?.compute(e)??null)}dispose(){this.disposables.dispose()}};function Qy(t,n,r){let i=null,a=t.map((t,a)=>Promise.resolve(t.provideFoldingRanges(n,Yy,r)).then(e=>{if(!r.isCancellationRequested&&Array.isArray(e)){Array.isArray(i)||(i=[]);let t=n.getLineCount();for(let n of e)n.start>0&&n.end>n.start&&n.end<=t&&i.push({start:n.start,end:n.end,rank:a,kind:n.kind})}},e.onUnexpectedExternalError));return Promise.all(a).then(e=>i)}var $y=class{constructor(e){this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=e}add(e,t,n,r){if(e>16777215||t>16777215)return;let i=this._length;this._startIndexes[i]=e,this._endIndexes[i]=t,this._nestingLevels[i]=r,this._types[i]=n,this._length++,r<30&&(this._nestingLevelCounts[r]=(this._nestingLevelCounts[r]||0)+1)}toIndentRanges(){let e=this._foldingRangesLimit.limit;if(this._length<=e){this._foldingRangesLimit.update(this._length,!1);let e=new Uint32Array(this._length),t=new Uint32Array(this._length);for(let n=0;n<this._length;n++)e[n]=this._startIndexes[n],t[n]=this._endIndexes[n];return new _y(e,t,this._types)}else{this._foldingRangesLimit.update(this._length,e);let t=0,n=this._nestingLevelCounts.length;for(let r=0;r<this._nestingLevelCounts.length;r++){let i=this._nestingLevelCounts[r];if(i){if(i+t>e){n=r;break}t+=i}}let r=new Uint32Array(e),i=new Uint32Array(e),a=[];for(let o=0,s=0;o<this._length;o++){let c=this._nestingLevels[o];(c<n||c===n&&t++<e)&&(r[s]=this._startIndexes[o],i[s]=this._endIndexes[o],a[s]=this._types[o],s++)}return new _y(r,i,a)}}};function eb(e,t){let n=e.sort((e,t)=>{let n=e.start-t.start;return n===0&&(n=e.rank-t.rank),n}),r=new $y(t),i,a=[];for(let e of n)if(!i)i=e,r.add(e.start,e.end,e.kind&&e.kind.value,a.length);else if(e.start>i.start)if(e.end<=i.end)a.push(i),i=e,r.add(e.start,e.end,e.kind&&e.kind.value,a.length);else{if(e.start>i.end){do i=a.pop();while(i&&e.start>i.end);i&&a.push(i),i=e}r.add(e.start,e.end,e.kind&&e.kind.value,a.length)}return r.toIndentRanges()}var tb=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},nb=function(e,t){return function(n,r){t(n,r,e)}},rb,Y=new e.RawContextKey(`foldingEnabled`,!1),ib=class extends e.Disposable{static{rb=this}static{this.ID=`editor.contrib.folding`}static get(e){return e.getContribution(rb.ID)}static getFoldingRangeProviders(e,t){let n=e.foldingRangeProvider.ordered(t);return rb._foldingRangeSelector?.(n,t)??n}constructor(t,n,r,i,a,o){super(),this.contextKeyService=n,this.languageConfigurationService=r,this.languageFeaturesService=o,this.localToDispose=this._register(new e.DisposableStore),this.editor=t,this._foldingLimitReporter=new ab(t);let s=this.editor.getOptions();this._isEnabled=s.get(43),this._useFoldingProviders=s.get(44)!==`indentation`,this._unfoldOnClickAfterEndOfLine=s.get(48),this._restoringViewState=!1,this._currentModelHasFoldedImports=!1,this._foldingImportsByDefault=s.get(46),this.updateDebounceInfo=a.for(o.foldingRangeProvider,`Folding`,{min:200}),this.foldingModel=null,this.hiddenRangeModel=null,this.rangeProvider=null,this.foldingRegionPromise=null,this.foldingModelPromise=null,this.updateScheduler=null,this.cursorChangedScheduler=null,this.mouseDownInfo=null,this.foldingDecorationProvider=new Jy(t),this.foldingDecorationProvider.showFoldingControls=s.get(111),this.foldingDecorationProvider.showFoldingHighlights=s.get(45),this.foldingEnabled=Y.bindTo(this.contextKeyService),this.foldingEnabled.set(this._isEnabled),this._register(this.editor.onDidChangeModel(()=>this.onModelChanged())),this._register(this.editor.onDidChangeConfiguration(e=>{if(e.hasChanged(43)&&(this._isEnabled=this.editor.getOptions().get(43),this.foldingEnabled.set(this._isEnabled),this.onModelChanged()),e.hasChanged(47)&&this.onModelChanged(),e.hasChanged(111)||e.hasChanged(45)){let e=this.editor.getOptions();this.foldingDecorationProvider.showFoldingControls=e.get(111),this.foldingDecorationProvider.showFoldingHighlights=e.get(45),this.triggerFoldingModelChanged()}e.hasChanged(44)&&(this._useFoldingProviders=this.editor.getOptions().get(44)!==`indentation`,this.onFoldingStrategyChanged()),e.hasChanged(48)&&(this._unfoldOnClickAfterEndOfLine=this.editor.getOptions().get(48)),e.hasChanged(46)&&(this._foldingImportsByDefault=this.editor.getOptions().get(46))})),this.onModelChanged()}saveViewState(){let e=this.editor.getModel();if(!e||!this._isEnabled||e.isTooLargeForTokenization())return{};if(this.foldingModel){let t=this.foldingModel.getMemento(),n=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:t,lineCount:e.getLineCount(),provider:n,foldedImports:this._currentModelHasFoldedImports}}}restoreViewState(e){let t=this.editor.getModel();if(!(!t||!this._isEnabled||t.isTooLargeForTokenization()||!this.hiddenRangeModel)&&e&&(this._currentModelHasFoldedImports=!!e.foldedImports,e.collapsedRegions&&e.collapsedRegions.length>0&&this.foldingModel)){this._restoringViewState=!0;try{this.foldingModel.applyMemento(e.collapsedRegions)}finally{this._restoringViewState=!1}}}onModelChanged(){this.localToDispose.clear();let t=this.editor.getModel();!this._isEnabled||!t||t.isTooLargeForTokenization()||(this._currentModelHasFoldedImports=!1,this.foldingModel=new yy(t,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new jy(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange(e=>this.onHiddenRangesChanges(e))),this.updateScheduler=new e.Delayer(this.updateDebounceInfo.get(t)),this.cursorChangedScheduler=new e.RunOnceScheduler(()=>this.revealCursor(),200),this.localToDispose.add(this.cursorChangedScheduler),this.localToDispose.add(this.languageFeaturesService.foldingRangeProvider.onDidChange(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelContent(e=>this.onDidChangeModelContent(e))),this.localToDispose.add(this.editor.onDidChangeCursorPosition(()=>this.onCursorPositionChanged())),this.localToDispose.add(this.editor.onMouseDown(e=>this.onEditorMouseDown(e))),this.localToDispose.add(this.editor.onMouseUp(e=>this.onEditorMouseUp(e))),this.localToDispose.add({dispose:()=>{this.foldingRegionPromise&&=(this.foldingRegionPromise.cancel(),null),this.updateScheduler?.cancel(),this.updateScheduler=null,this.foldingModel=null,this.foldingModelPromise=null,this.hiddenRangeModel=null,this.cursorChangedScheduler=null,this.rangeProvider?.dispose(),this.rangeProvider=null}}),this.triggerFoldingModelChanged())}onFoldingStrategyChanged(){this.rangeProvider?.dispose(),this.rangeProvider=null,this.triggerFoldingModelChanged()}getRangeProvider(e){if(this.rangeProvider)return this.rangeProvider;let t=new Iy(e,this.languageConfigurationService,this._foldingLimitReporter);if(this.rangeProvider=t,this._useFoldingProviders&&this.foldingModel){let n=rb.getFoldingRangeProviders(this.languageFeaturesService,e);n.length>0&&(this.rangeProvider=new Zy(e,n,()=>this.triggerFoldingModelChanged(),this._foldingLimitReporter,t))}return this.rangeProvider}getFoldingModel(){return this.foldingModelPromise}onDidChangeModelContent(e){this.hiddenRangeModel?.notifyChangeModelContent(e),this.triggerFoldingModelChanged()}triggerFoldingModelChanged(){this.updateScheduler&&(this.foldingRegionPromise&&=(this.foldingRegionPromise.cancel(),null),this.foldingModelPromise=this.updateScheduler.trigger(()=>{let t=this.foldingModel;if(!t)return null;let n=new e.StopWatch,r=this.getRangeProvider(t.textModel),i=this.foldingRegionPromise=e.createCancelablePromise(e=>r.compute(e));return i.then(r=>{if(r&&i===this.foldingRegionPromise){let i;if(this._foldingImportsByDefault&&!this._currentModelHasFoldedImports){let t=r.setCollapsedAllOfType(e.FoldingRangeKind.Imports.value,!0);t&&(i=e.StableEditorScrollState.capture(this.editor),this._currentModelHasFoldedImports=t)}let a=this.editor.getSelections();t.update(r,ob(a)),i?.restore(this.editor);let o=this.updateDebounceInfo.update(t.textModel,n.elapsed());this.updateScheduler&&(this.updateScheduler.defaultDelay=o)}return t})}).then(void 0,t=>(e.onUnexpectedError(t),null)))}onHiddenRangesChanges(e){if(this.hiddenRangeModel&&e.length&&!this._restoringViewState){let e=this.editor.getSelections();e&&this.hiddenRangeModel.adjustSelections(e)&&this.editor.setSelections(e)}this.editor.setHiddenAreas(e,this)}onCursorPositionChanged(){this.hiddenRangeModel&&this.hiddenRangeModel.hasRanges()&&this.cursorChangedScheduler.schedule()}revealCursor(){let t=this.getFoldingModel();t&&t.then(e=>{if(e){let t=this.editor.getSelections();if(t&&t.length>0){let n=[];for(let r of t){let t=r.selectionStartLineNumber;this.hiddenRangeModel&&this.hiddenRangeModel.isHidden(t)&&n.push(...e.getAllRegionsAtLine(t,e=>e.isCollapsed&&t>e.startLineNumber))}n.length&&(e.toggleCollapseState(n),this.reveal(t[0].getPosition()))}}}).then(void 0,e.onUnexpectedError)}onEditorMouseDown(e){if(this.mouseDownInfo=null,!this.hiddenRangeModel||!e.target||!e.target.range||!e.event.leftButton&&!e.event.middleButton)return;let t=e.target.range,n=!1;switch(e.target.type){case 4:{let t=e.target.detail,r=e.target.element.offsetLeft;if(t.offsetX-r<4)return;n=!0;break}case 7:if(this._unfoldOnClickAfterEndOfLine&&this.hiddenRangeModel.hasRanges()&&!e.target.detail.isAfterLines)break;return;case 6:if(this.hiddenRangeModel.hasRanges()){let e=this.editor.getModel();if(e&&t.startColumn===e.getLineMaxColumn(t.startLineNumber))break}return;default:return}this.mouseDownInfo={lineNumber:t.startLineNumber,iconClicked:n}}onEditorMouseUp(e){let t=this.foldingModel;if(!t||!this.mouseDownInfo||!e.target)return;let n=this.mouseDownInfo.lineNumber,r=this.mouseDownInfo.iconClicked,i=e.target.range;if(!i||i.startLineNumber!==n)return;if(r){if(e.target.type!==4)return}else{let e=this.editor.getModel();if(!e||i.startColumn!==e.getLineMaxColumn(n))return}let a=t.getRegionAtLine(n);if(a&&a.startLineNumber===n){let i=a.isCollapsed;if(r||i){let r=e.event.altKey,o=[];if(r){let e=t.getRegionsInside(null,e=>!e.containedBy(a)&&!a.containedBy(e));for(let t of e)t.isCollapsed&&o.push(t);o.length===0&&(o=e)}else{let n=e.event.middleButton||e.event.shiftKey;if(n)for(let e of t.getRegionsInside(a))e.isCollapsed===i&&o.push(e);(i||!n||o.length===0)&&o.push(a)}t.toggleCollapseState(o),this.reveal({lineNumber:n,column:1})}}}reveal(e){this.editor.revealPositionInCenterIfOutsideViewport(e,0)}};ib=rb=tb([nb(1,e.IContextKeyService),nb(2,e.ILanguageConfigurationService),nb(3,e.INotificationService),nb(4,e.ILanguageFeatureDebounceService),nb(5,e.ILanguageFeaturesService)],ib);var ab=class{constructor(t){this.editor=t,this._onDidChange=new e.Emitter$1,this._computed=0,this._limited=!1}get limit(){return this.editor.getOptions().get(47)}update(e,t){(e!==this._computed||t!==this._limited)&&(this._computed=e,this._limited=t,this._onDidChange.fire())}},X=class extends e.EditorAction{runEditorCommand(t,n,r){let i=t.get(e.ILanguageConfigurationService),a=ib.get(n);if(!a)return;let o=a.getFoldingModel();if(o)return this.reportTelemetry(t,n),o.then(e=>{if(e){this.invoke(a,e,n,r,i);let t=n.getSelection();t&&a.reveal(t.getStartPosition())}})}getSelectedLines(e){let t=e.getSelections();return t?t.map(e=>e.startLineNumber):[]}getLineNumbers(e,t){return e&&e.selectionLines?e.selectionLines.map(e=>e+1):this.getSelectedLines(t)}run(e,t){}};function ob(e){return!e||e.length===0?{startsInside:()=>!1}:{startsInside(t,n){for(let r of e){let e=r.startLineNumber;if(e>=t&&e<=n)return!0}return!1}}}function sb(t){if(!e.isUndefined(t)){if(!e.isObject(t))return!1;let n=t;if(!e.isUndefined(n.levels)&&!e.isNumber(n.levels)||!e.isUndefined(n.direction)&&!e.isString(n.direction)||!e.isUndefined(n.selectionLines)&&(!Array.isArray(n.selectionLines)||!n.selectionLines.every(e.isNumber)))return!1}return!0}var cb=class extends X{constructor(){super({id:`editor.unfold`,label:e.localize(`unfoldAction.label`,`Unfold`),alias:`Unfold`,precondition:Y,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:3166,mac:{primary:2654},weight:100},metadata:{description:`Unfold the content in the editor`,args:[{name:`Unfold editor argument`,description:`Property-value pairs that can be passed through this argument:
* 'levels': Number of levels to unfold. If not set, defaults to 1.
* 'direction': If 'up', unfold given number of levels up otherwise unfolds down.
* 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the unfold action to. If not set, the active selection(s) will be used.
`,constraint:sb,schema:{type:`object`,properties:{levels:{type:`number`,default:1},direction:{type:`string`,enum:[`up`,`down`],default:`down`},selectionLines:{type:`array`,items:{type:`number`}}}}}]}})}invoke(e,t,n,r){let i=r&&r.levels||1,a=this.getLineNumbers(r,n);r&&r.direction===`up`?Sy(t,!1,i,a):xy(t,!1,i,a)}},lb=class extends X{constructor(){super({id:`editor.unfoldRecursively`,label:e.localize(`unFoldRecursivelyAction.label`,`Unfold Recursively`),alias:`Unfold Recursively`,precondition:Y,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:e.KeyChord(2089,2142),weight:100}})}invoke(e,t,n,r){xy(t,!1,Number.MAX_VALUE,this.getSelectedLines(n))}},ub=class extends X{constructor(){super({id:`editor.fold`,label:e.localize(`foldAction.label`,`Fold`),alias:`Fold`,precondition:Y,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:3164,mac:{primary:2652},weight:100},metadata:{description:`Fold the content in the editor`,args:[{name:`Fold editor argument`,description:`Property-value pairs that can be passed through this argument:
* 'levels': Number of levels to fold.
* 'direction': If 'up', folds given number of levels up otherwise folds down.
* 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the fold action to. If not set, the active selection(s) will be used.
If no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead.
`,constraint:sb,schema:{type:`object`,properties:{levels:{type:`number`},direction:{type:`string`,enum:[`up`,`down`]},selectionLines:{type:`array`,items:{type:`number`}}}}}]}})}invoke(e,t,n,r){let i=this.getLineNumbers(r,n),a=r&&r.levels,o=r&&r.direction;typeof a!=`number`&&typeof o!=`string`?Cy(t,!0,i):o===`up`?Sy(t,!0,a||1,i):xy(t,!0,a||1,i)}},db=class extends X{constructor(){super({id:`editor.toggleFold`,label:e.localize(`toggleFoldAction.label`,`Toggle Fold`),alias:`Toggle Fold`,precondition:Y,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:e.KeyChord(2089,2090),weight:100}})}invoke(e,t,n){let r=this.getSelectedLines(n);by(t,1,r)}},fb=class extends X{constructor(){super({id:`editor.foldRecursively`,label:e.localize(`foldRecursivelyAction.label`,`Fold Recursively`),alias:`Fold Recursively`,precondition:Y,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:e.KeyChord(2089,2140),weight:100}})}invoke(e,t,n){let r=this.getSelectedLines(n);xy(t,!0,Number.MAX_VALUE,r)}},pb=class extends X{constructor(){super({id:`editor.toggleFoldRecursively`,label:e.localize(`toggleFoldRecursivelyAction.label`,`Toggle Fold Recursively`),alias:`Toggle Fold Recursively`,precondition:Y,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:e.KeyChord(2089,3114),weight:100}})}invoke(e,t,n){let r=this.getSelectedLines(n);by(t,Number.MAX_VALUE,r)}},mb=class extends X{constructor(){super({id:`editor.foldAllBlockComments`,label:e.localize(`foldAllBlockComments.label`,`Fold All Block Comments`),alias:`Fold All Block Comments`,precondition:Y,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:e.KeyChord(2089,2138),weight:100}})}invoke(t,n,r,i,a){if(n.regions.hasTypes())Dy(n,e.FoldingRangeKind.Comment.value,!0);else{let t=r.getModel();if(!t)return;let i=a.getLanguageConfiguration(t.getLanguageId()).comments;if(i&&i.blockCommentStartToken){let t=RegExp(`^\\s*`+e.escapeRegExpCharacters(i.blockCommentStartToken));Ey(n,t,!0)}}}},hb=class extends X{constructor(){super({id:`editor.foldAllMarkerRegions`,label:e.localize(`foldAllMarkerRegions.label`,`Fold All Regions`),alias:`Fold All Regions`,precondition:Y,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:e.KeyChord(2089,2077),weight:100}})}invoke(t,n,r,i,a){if(n.regions.hasTypes())Dy(n,e.FoldingRangeKind.Region.value,!0);else{let e=r.getModel();if(!e)return;let t=a.getLanguageConfiguration(e.getLanguageId()).foldingRules;if(t&&t.markers&&t.markers.start){let e=new RegExp(t.markers.start);Ey(n,e,!0)}}}},gb=class extends X{constructor(){super({id:`editor.unfoldAllMarkerRegions`,label:e.localize(`unfoldAllMarkerRegions.label`,`Unfold All Regions`),alias:`Unfold All Regions`,precondition:Y,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:e.KeyChord(2089,2078),weight:100}})}invoke(t,n,r,i,a){if(n.regions.hasTypes())Dy(n,e.FoldingRangeKind.Region.value,!1);else{let e=r.getModel();if(!e)return;let t=a.getLanguageConfiguration(e.getLanguageId()).foldingRules;if(t&&t.markers&&t.markers.start){let e=new RegExp(t.markers.start);Ey(n,e,!1)}}}},_b=class extends X{constructor(){super({id:`editor.foldAllExcept`,label:e.localize(`foldAllExcept.label`,`Fold All Except Selected`),alias:`Fold All Except Selected`,precondition:Y,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:e.KeyChord(2089,2136),weight:100}})}invoke(e,t,n){let r=this.getSelectedLines(n);Ty(t,!0,r)}},vb=class extends X{constructor(){super({id:`editor.unfoldAllExcept`,label:e.localize(`unfoldAllExcept.label`,`Unfold All Except Selected`),alias:`Unfold All Except Selected`,precondition:Y,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:e.KeyChord(2089,2134),weight:100}})}invoke(e,t,n){let r=this.getSelectedLines(n);Ty(t,!1,r)}},yb=class extends X{constructor(){super({id:`editor.foldAll`,label:e.localize(`foldAllAction.label`,`Fold All`),alias:`Fold All`,precondition:Y,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:e.KeyChord(2089,2069),weight:100}})}invoke(e,t,n){xy(t,!0)}},bb=class extends X{constructor(){super({id:`editor.unfoldAll`,label:e.localize(`unfoldAllAction.label`,`Unfold All`),alias:`Unfold All`,precondition:Y,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:e.KeyChord(2089,2088),weight:100}})}invoke(e,t,n){xy(t,!1)}},xb=class e extends X{static{this.ID_PREFIX=`editor.foldLevel`}static{this.ID=t=>e.ID_PREFIX+t}getFoldingLevel(){return parseInt(this.id.substr(e.ID_PREFIX.length))}invoke(e,t,n){wy(t,this.getFoldingLevel(),!0,this.getSelectedLines(n))}},Sb=class extends X{constructor(){super({id:`editor.gotoParentFold`,label:e.localize(`gotoParentFold.label`,`Go to Parent Fold`),alias:`Go to Parent Fold`,precondition:Y,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,weight:100}})}invoke(e,t,n){let r=this.getSelectedLines(n);if(r.length>0){let e=Oy(r[0],t);e!==null&&n.setSelection({startLineNumber:e,startColumn:1,endLineNumber:e,endColumn:1})}}},Cb=class extends X{constructor(){super({id:`editor.gotoPreviousFold`,label:e.localize(`gotoPreviousFold.label`,`Go to Previous Folding Range`),alias:`Go to Previous Folding Range`,precondition:Y,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,weight:100}})}invoke(e,t,n){let r=this.getSelectedLines(n);if(r.length>0){let e=ky(r[0],t);e!==null&&n.setSelection({startLineNumber:e,startColumn:1,endLineNumber:e,endColumn:1})}}},wb=class extends X{constructor(){super({id:`editor.gotoNextFold`,label:e.localize(`gotoNextFold.label`,`Go to Next Folding Range`),alias:`Go to Next Folding Range`,precondition:Y,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,weight:100}})}invoke(e,t,n){let r=this.getSelectedLines(n);if(r.length>0){let e=Ay(r[0],t);e!==null&&n.setSelection({startLineNumber:e,startColumn:1,endLineNumber:e,endColumn:1})}}},Tb=class extends X{constructor(){super({id:`editor.createFoldingRangeFromSelection`,label:e.localize(`createManualFoldRange.label`,`Create Folding Range from Selection`),alias:`Create Folding Range from Selection`,precondition:Y,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:e.KeyChord(2089,2135),weight:100}})}invoke(e,t,n){let r=[],i=n.getSelections();if(i){for(let e of i){let t=e.endLineNumber;e.endColumn===1&&--t,t>e.startLineNumber&&(r.push({startLineNumber:e.startLineNumber,endLineNumber:t,type:void 0,isCollapsed:!0,source:1}),n.setSelection({startLineNumber:e.startLineNumber,startColumn:1,endLineNumber:e.startLineNumber,endColumn:1}))}if(r.length>0){r.sort((e,t)=>e.startLineNumber-t.startLineNumber);let e=_y.sanitizeAndMerge(t.regions,r,n.getModel()?.getLineCount());t.updatePost(_y.fromFoldRanges(e))}}}},Eb=class extends X{constructor(){super({id:`editor.removeManualFoldingRanges`,label:e.localize(`removeManualFoldingRanges.label`,`Remove Manual Folding Ranges`),alias:`Remove Manual Folding Ranges`,precondition:Y,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:e.KeyChord(2089,2137),weight:100}})}invoke(e,t,n){let r=n.getSelections();if(r){let n=[];for(let e of r){let{startLineNumber:t,endLineNumber:r}=e;n.push(r>=t?{startLineNumber:t,endLineNumber:r}:{endLineNumber:r,startLineNumber:t})}t.removeManualRanges(n),e.triggerFoldingModelChanged()}}};e.registerEditorContribution(ib.ID,ib,0),e.registerEditorAction(cb),e.registerEditorAction(lb),e.registerEditorAction(ub),e.registerEditorAction(fb),e.registerEditorAction(pb),e.registerEditorAction(yb),e.registerEditorAction(bb),e.registerEditorAction(mb),e.registerEditorAction(hb),e.registerEditorAction(gb),e.registerEditorAction(_b),e.registerEditorAction(vb),e.registerEditorAction(db),e.registerEditorAction(Sb),e.registerEditorAction(Cb),e.registerEditorAction(wb),e.registerEditorAction(Tb),e.registerEditorAction(Eb);for(let t=1;t<=7;t++)e.registerInstantiatedEditorAction(new xb({id:xb.ID(t),label:e.localize(`foldLevelAction.label`,`Fold Level {0}`,t),alias:`Fold Level ${t}`,precondition:Y,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:e.KeyChord(2089,2048|21+t),weight:100}}));e.CommandsRegistry.registerCommand(`_executeFoldingRangeProvider`,async function(t,...n){let[r]=n;if(!(r instanceof e.URI))throw e.illegalArgument();let i=t.get(e.ILanguageFeaturesService),a=t.get(e.IModelService).getModel(r);if(!a)throw e.illegalArgument();let o=t.get(e.IConfigurationService);if(!o.getValue(`editor.folding`,{resource:r}))return[];let s=t.get(e.ILanguageConfigurationService),c=o.getValue(`editor.foldingStrategy`,{resource:r}),l={get limit(){return o.getValue(`editor.foldingMaximumRegions`,{resource:r})},update:(e,t)=>{}},u=new Iy(a,s,l),d=u;if(c!==`indentation`){let e=ib.getFoldingRangeProviders(i,a);e.length&&(d=new Zy(a,e,()=>{},l,u))}let f=await d.compute(e.CancellationToken.None),p=[];try{if(f)for(let t=0;t<f.length;t++){let n=f.getType(t);p.push({start:f.getStartLineNumber(t),end:f.getEndLineNumber(t),kind:n?e.FoldingRangeKind.fromValue(n):void 0})}return p}finally{d.dispose()}});var Db=class extends e.EditorAction{constructor(){super({id:`editor.action.fontZoomIn`,label:e.localize(`EditorFontZoomIn.label`,`Increase Editor Font Size`),alias:`Increase Editor Font Size`,precondition:void 0})}run(t,n){e.EditorZoom.setZoomLevel(e.EditorZoom.getZoomLevel()+1)}},Ob=class extends e.EditorAction{constructor(){super({id:`editor.action.fontZoomOut`,label:e.localize(`EditorFontZoomOut.label`,`Decrease Editor Font Size`),alias:`Decrease Editor Font Size`,precondition:void 0})}run(t,n){e.EditorZoom.setZoomLevel(e.EditorZoom.getZoomLevel()-1)}},kb=class extends e.EditorAction{constructor(){super({id:`editor.action.fontZoomReset`,label:e.localize(`EditorFontZoomReset.label`,`Reset Editor Font Size`),alias:`Reset Editor Font Size`,precondition:void 0})}run(t,n){e.EditorZoom.setZoomLevel(0)}};e.registerEditorAction(Db),e.registerEditorAction(Ob),e.registerEditorAction(kb);var Ab=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},jb=function(e,t){return function(n,r){t(n,r,e)}},Mb=class{static{this.ID=`editor.contrib.autoFormat`}constructor(t,n,r,i){this._editor=t,this._languageFeaturesService=n,this._workerService=r,this._accessibilitySignalService=i,this._disposables=new e.DisposableStore,this._sessionDisposables=new e.DisposableStore,this._disposables.add(n.onTypeFormattingEditProvider.onDidChange(this._update,this)),this._disposables.add(t.onDidChangeModel(()=>this._update())),this._disposables.add(t.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(t.onDidChangeConfiguration(e=>{e.hasChanged(56)&&this._update()})),this._update()}dispose(){this._disposables.dispose(),this._sessionDisposables.dispose()}_update(){if(this._sessionDisposables.clear(),!this._editor.getOption(56)||!this._editor.hasModel())return;let t=this._editor.getModel(),[n]=this._languageFeaturesService.onTypeFormattingEditProvider.ordered(t);if(!n||!n.autoFormatTriggerCharacters)return;let r=new e.CharacterSet;for(let e of n.autoFormatTriggerCharacters)r.add(e.charCodeAt(0));this._sessionDisposables.add(this._editor.onDidType(e=>{let t=e.charCodeAt(e.length-1);r.has(t)&&this._trigger(String.fromCharCode(t))}))}_trigger(t){if(!this._editor.hasModel()||this._editor.getSelections().length>1||!this._editor.getSelection().isEmpty())return;let n=this._editor.getModel(),r=this._editor.getPosition(),i=new e.CancellationTokenSource$1,a=this._editor.onDidChangeModelContent(e=>{if(e.isFlush){i.cancel(),a.dispose();return}for(let t=0,n=e.changes.length;t<n;t++)if(e.changes[t].range.endLineNumber<=r.lineNumber){i.cancel(),a.dispose();return}});e.getOnTypeFormattingEdits(this._workerService,this._languageFeaturesService,n,r,t,n.getFormattingOptions(),i.token).then(t=>{i.token.isCancellationRequested||e.isNonEmptyArray(t)&&(this._accessibilitySignalService.playSignal(e.AccessibilitySignal.format,{userGesture:!1}),e.FormattingEdit.execute(this._editor,t,!0))}).finally(()=>{a.dispose()})}};Mb=Ab([jb(1,e.ILanguageFeaturesService),jb(2,e.IEditorWorkerService),jb(3,e.IAccessibilitySignalService)],Mb);var Nb=class{static{this.ID=`editor.contrib.formatOnPaste`}constructor(t,n,r){this.editor=t,this._languageFeaturesService=n,this._instantiationService=r,this._callOnDispose=new e.DisposableStore,this._callOnModel=new e.DisposableStore,this._callOnDispose.add(t.onDidChangeConfiguration(()=>this._update())),this._callOnDispose.add(t.onDidChangeModel(()=>this._update())),this._callOnDispose.add(t.onDidChangeModelLanguage(()=>this._update())),this._callOnDispose.add(n.documentRangeFormattingEditProvider.onDidChange(this._update,this))}dispose(){this._callOnDispose.dispose(),this._callOnModel.dispose()}_update(){this._callOnModel.clear(),this.editor.getOption(55)&&this.editor.hasModel()&&this._languageFeaturesService.documentRangeFormattingEditProvider.has(this.editor.getModel())&&this._callOnModel.add(this.editor.onDidPaste(({range:e})=>this._trigger(e)))}_trigger(t){this.editor.hasModel()&&(this.editor.getSelections().length>1||this._instantiationService.invokeFunction(e.formatDocumentRangesWithSelectedProvider,this.editor,t,2,e.Progress.None,e.CancellationToken.None,!1).catch(e.onUnexpectedError))}};Nb=Ab([jb(1,e.ILanguageFeaturesService),jb(2,e.IInstantiationService)],Nb);var Pb=class extends e.EditorAction{constructor(){super({id:`editor.action.formatDocument`,label:e.localize(`formatDocument.label`,`Format Document`),alias:`Format Document`,precondition:e.ContextKeyExpr.and(e.EditorContextKeys.notInCompositeEditor,e.EditorContextKeys.writable,e.EditorContextKeys.hasDocumentFormattingProvider),kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{group:`1_modification`,order:1.3}})}async run(t,n){if(n.hasModel()){let r=t.get(e.IInstantiationService);await t.get(e.IEditorProgressService).showWhile(r.invokeFunction(e.formatDocumentWithSelectedProvider,n,1,e.Progress.None,e.CancellationToken.None,!0),250)}}},Fb=class extends e.EditorAction{constructor(){super({id:`editor.action.formatSelection`,label:e.localize(`formatSelection.label`,`Format Selection`),alias:`Format Selection`,precondition:e.ContextKeyExpr.and(e.EditorContextKeys.writable,e.EditorContextKeys.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:e.KeyChord(2089,2084),weight:100},contextMenuOpts:{when:e.EditorContextKeys.hasNonEmptySelection,group:`1_modification`,order:1.31}})}async run(t,n){if(!n.hasModel())return;let r=t.get(e.IInstantiationService),i=n.getModel(),a=n.getSelections().map(t=>t.isEmpty()?new e.Range$1(t.startLineNumber,1,t.startLineNumber,i.getLineMaxColumn(t.startLineNumber)):t);await t.get(e.IEditorProgressService).showWhile(r.invokeFunction(e.formatDocumentRangesWithSelectedProvider,n,a,1,e.Progress.None,e.CancellationToken.None,!0),250)}};e.registerEditorContribution(Mb.ID,Mb,2),e.registerEditorContribution(Nb.ID,Nb,2),e.registerEditorAction(Pb),e.registerEditorAction(Fb),e.CommandsRegistry.registerCommand(`editor.action.format`,async t=>{let n=t.get(e.ICodeEditorService).getFocusedCodeEditor();if(!n||!n.hasModel())return;let r=t.get(e.ICommandService);n.getSelection().isEmpty()?await r.executeCommand(`editor.action.formatDocument`):await r.executeCommand(`editor.action.formatSelection`)});var Ib=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Lb=function(e,t){return function(n,r){t(n,r,e)}},Rb=class{remove(){this.parent?.children.delete(this.id)}static findId(e,t){let n;typeof e==`string`?n=`${t.id}/${e}`:(n=`${t.id}/${e.name}`,t.children.get(n)!==void 0&&(n=`${t.id}/${e.name}_${e.range.startLineNumber}_${e.range.startColumn}`));let r=n;for(let e=0;t.children.get(r)!==void 0;e++)r=`${n}_${e}`;return r}static empty(e){return e.children.size===0}},zb=class extends Rb{constructor(e,t,n){super(),this.id=e,this.parent=t,this.symbol=n,this.children=new Map}},Bb=class extends Rb{constructor(e,t,n,r){super(),this.id=e,this.parent=t,this.label=n,this.order=r,this.children=new Map}},Vb=class t extends Rb{static create(n,r,i){let a=new e.CancellationTokenSource$1(i),o=new t(r.uri),s=n.ordered(r),c=s.map((n,i)=>{let s=Rb.findId(`provider_${i}`,o),c=new Bb(s,o,n.displayName??`Unknown Outline Provider`,i);return Promise.resolve(n.provideDocumentSymbols(r,a.token)).then(e=>{for(let n of e||[])t._makeOutlineElement(n,c);return c},t=>(e.onUnexpectedExternalError(t),c)).then(e=>{Rb.empty(e)?e.remove():o._groups.set(s,e)})}),l=n.onDidChange(()=>{let t=n.ordered(r);e.equals(t,s)||a.cancel()});return Promise.all(c).then(()=>a.token.isCancellationRequested&&!i.isCancellationRequested?t.create(n,r,i):o._compact()).finally(()=>{a.dispose(),l.dispose(),a.dispose()})}static _makeOutlineElement(e,n){let r=Rb.findId(e,n),i=new zb(r,n,e);if(e.children)for(let n of e.children)t._makeOutlineElement(n,i);n.children.set(i.id,i)}constructor(e){super(),this.uri=e,this.id=`root`,this.parent=void 0,this._groups=new Map,this.children=new Map,this.id=`root`,this.parent=void 0}_compact(){let t=0;for(let[e,n]of this._groups)n.children.size===0?this._groups.delete(e):t+=1;if(t!==1)this.children=this._groups;else{let t=e.Iterable.first(this._groups.values());for(let[,e]of t.children)e.parent=this,this.children.set(e.id,e)}return this}getTopLevelSymbols(){let t=[];for(let n of this.children.values())n instanceof zb?t.push(n.symbol):t.push(...e.Iterable.map(n.children.values(),e=>e.symbol));return t.sort((t,n)=>e.Range$1.compareRangesUsingStarts(t.range,n.range))}asListOfDocumentSymbols(){let n=this.getTopLevelSymbols(),r=[];return t._flattenDocumentSymbols(r,n,``),r.sort((t,n)=>e.Position$1.compare(e.Range$1.getStartPosition(t.range),e.Range$1.getStartPosition(n.range))||e.Position$1.compare(e.Range$1.getEndPosition(n.range),e.Range$1.getEndPosition(t.range)))}static _flattenDocumentSymbols(e,n,r){for(let i of n)e.push({kind:i.kind,tags:i.tags,name:i.name,detail:i.detail,containerName:i.containerName||r,range:i.range,selectionRange:i.selectionRange,children:void 0}),i.children&&t._flattenDocumentSymbols(e,i.children,i.name)}};const Hb=e.createDecorator(`IOutlineModelService`);var Ub=class{constructor(t,n,r){this._languageFeaturesService=t,this._disposables=new e.DisposableStore,this._cache=new e.LRUCache(10,.7),this._debounceInformation=n.for(t.documentSymbolProvider,`DocumentSymbols`,{min:350}),this._disposables.add(r.onModelRemoved(e=>{this._cache.delete(e.id)}))}dispose(){this._disposables.dispose()}async getOrCreate(t,n){let r=this._languageFeaturesService.documentSymbolProvider,i=r.ordered(t),a=this._cache.get(t.id);if(!a||a.versionId!==t.getVersionId()||!e.equals(a.provider,i)){let n=new e.CancellationTokenSource$1;a={versionId:t.getVersionId(),provider:i,promiseCnt:0,source:n,promise:Vb.create(r,t,n.token),model:void 0},this._cache.set(t.id,a);let o=Date.now();a.promise.then(e=>{a.model=e,this._debounceInformation.update(t,Date.now()-o)}).catch(e=>{this._cache.delete(t.id)})}if(a.model)return a.model;a.promiseCnt+=1;let o=n.onCancellationRequested(()=>{--a.promiseCnt===0&&(a.source.cancel(),this._cache.delete(t.id))});try{return await a.promise}finally{o.dispose()}}};Ub=Ib([Lb(0,e.ILanguageFeaturesService),Lb(1,e.ILanguageFeatureDebounceService),Lb(2,e.IModelService)],Ub),e.registerSingleton(Hb,Ub,1),e.CommandsRegistry.registerCommand(`_executeDocumentSymbolProvider`,async function(t,...n){let[r]=n;e.assertType(e.URI.isUri(r));let i=t.get(Hb),a=await t.get(e.ITextModelService).createModelReference(r);try{return(await i.getOrCreate(a.object.textEditorModel,e.CancellationToken.None)).getTopLevelSymbols()}finally{a.dispose()}});var Wb=class t extends e.Disposable{static{this.inlineSuggestionVisible=new e.RawContextKey(`inlineSuggestionVisible`,!1,e.localize(`inlineSuggestionVisible`,`Whether an inline suggestion is visible`))}static{this.inlineSuggestionHasIndentation=new e.RawContextKey(`inlineSuggestionHasIndentation`,!1,e.localize(`inlineSuggestionHasIndentation`,`Whether the inline suggestion starts with whitespace`))}static{this.inlineSuggestionHasIndentationLessThanTabSize=new e.RawContextKey(`inlineSuggestionHasIndentationLessThanTabSize`,!0,e.localize(`inlineSuggestionHasIndentationLessThanTabSize`,`Whether the inline suggestion starts with whitespace that is less than what would be inserted by tab`))}static{this.suppressSuggestions=new e.RawContextKey(`inlineSuggestionSuppressSuggestions`,void 0,e.localize(`suppressSuggestions`,`Whether suggestions should be suppressed for the current suggestion`))}constructor(n,r){super(),this.contextKeyService=n,this.model=r,this.inlineCompletionVisible=t.inlineSuggestionVisible.bindTo(this.contextKeyService),this.inlineCompletionSuggestsIndentation=t.inlineSuggestionHasIndentation.bindTo(this.contextKeyService),this.inlineCompletionSuggestsIndentationLessThanTabSize=t.inlineSuggestionHasIndentationLessThanTabSize.bindTo(this.contextKeyService),this.suppressSuggestions=t.suppressSuggestions.bindTo(this.contextKeyService),this._register(e.autorun(e=>{let t=this.model.read(e)?.state.read(e),n=!!t?.inlineCompletion&&t?.primaryGhostText!==void 0&&!t?.primaryGhostText.isEmpty();this.inlineCompletionVisible.set(n),t?.primaryGhostText&&t?.inlineCompletion&&this.suppressSuggestions.set(t.inlineCompletion.inlineCompletion.source.inlineCompletions.suppressSuggestions)})),this._register(e.autorun(t=>{let n=this.model.read(t),r=!1,i=!0,a=n?.primaryGhostText.read(t);if(n?.selectedSuggestItem&&a&&a.parts.length>0){let{column:t,lines:o}=a.parts[0],s=o[0],c=n.textModel.getLineIndentColumn(a.lineNumber);if(t<=c){let t=e.firstNonWhitespaceIndex(s);t===-1&&(t=s.length-1),r=t>0;let a=n.textModel.getOptions().tabSize;i=e.CursorColumns.visibleColumnFromColumn(s,t+1,a)<a}}this.inlineCompletionSuggestsIndentation.set(r),this.inlineCompletionSuggestsIndentationLessThanTabSize.set(i)}))}};function Gb(t){let n=new e.DisposableStore,r=n.add(e.createStyleSheet2());return n.add(e.autorun(e=>{r.setStyle(t.read(e))})),n}var Kb=class{constructor(e,t){this.lineNumber=e,this.parts=t}equals(e){return this.lineNumber===e.lineNumber&&this.parts.length===e.parts.length&&this.parts.every((t,n)=>t.equals(e.parts[n]))}renderForScreenReader(t){if(this.parts.length===0)return``;let n=this.parts[this.parts.length-1],r=t.substr(0,n.column-1);return new e.TextEdit([...this.parts.map(t=>new e.SingleTextEdit(e.Range$1.fromPositions(new e.Position$1(1,t.column)),t.lines.join(`
`)))]).applyToString(r).substring(this.parts[0].column-1)}isEmpty(){return this.parts.every(e=>e.lines.length===0)}get lineCount(){return 1+this.parts.reduce((e,t)=>e+t.lines.length-1,0)}},qb=class{constructor(t,n,r){this.column=t,this.text=n,this.preview=r,this.lines=e.splitLines(this.text)}equals(e){return this.column===e.column&&this.lines.length===e.lines.length&&this.lines.every((t,n)=>t===e.lines[n])}},Jb=class{constructor(t,n,r,i=0){this.lineNumber=t,this.columnRange=n,this.text=r,this.additionalReservedLineCount=i,this.parts=[new qb(this.columnRange.endColumnExclusive,this.text,!1)],this.newLines=e.splitLines(this.text)}renderForScreenReader(e){return this.newLines.join(`
`)}get lineCount(){return this.newLines.length}isEmpty(){return this.parts.every(e=>e.lines.length===0)}equals(e){return this.lineNumber===e.lineNumber&&this.columnRange.equals(e.columnRange)&&this.newLines.length===e.newLines.length&&this.newLines.every((t,n)=>t===e.newLines[n])&&this.additionalReservedLineCount===e.additionalReservedLineCount}};function Yb(t,n){return e.equals(t,n,Xb)}function Xb(e,t){return e===t?!0:!e||!t?!1:e instanceof Kb&&t instanceof Kb||e instanceof Jb&&t instanceof Jb?e.equals(t):!1}var Zb=[];function Qb(){return Zb}var $b=class{constructor(t,n){if(this.startColumn=t,this.endColumnExclusive=n,t>n)throw new e.BugIndicatingError(`startColumn ${t} cannot be after endColumnExclusive ${n}`)}toRange(t){return new e.Range$1(t,this.startColumn,t,this.endColumnExclusive)}equals(e){return this.startColumn===e.startColumn&&this.endColumnExclusive===e.endColumnExclusive}};function ex(t,n){let r=new e.DisposableStore,i=t.createDecorationsCollection();return r.add(e.autorunOpts({debugName:()=>`Apply decorations from ${n.debugName}`},e=>{let t=n.read(e);i.set(t)})),r.add({dispose:()=>{i.clear()}}),r}function tx(t,n){return new e.Position$1(t.lineNumber+n.lineNumber-1,n.lineNumber===1?t.column+n.column-1:n.column)}function nx(t,n){return new e.Position$1(t.lineNumber-n.lineNumber+1,t.lineNumber-n.lineNumber===0?t.column-n.column+1:t.column)}var rx=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},ix=function(e,t){return function(n,r){t(n,r,e)}};const ax=`ghost-text`;var ox=class extends e.Disposable{constructor(t,n,r){super(),this.editor=t,this.model=n,this.languageService=r,this.isDisposed=e.observableValue(this,!1),this.currentTextModel=e.observableFromEvent(this,this.editor.onDidChangeModel,()=>this.editor.getModel()),this.uiState=e.derived(this,t=>{if(this.isDisposed.read(t))return;let n=this.currentTextModel.read(t);if(n!==this.model.targetTextModel.read(t))return;let r=this.model.ghostText.read(t);if(!r)return;let i=r instanceof Jb?r.columnRange:void 0,a=[],o=[];function s(t,n){if(o.length>0){let r=o[o.length-1];n&&r.decorations.push(new e.LineDecoration(r.content.length+1,r.content.length+1+t[0].length,n,0)),r.content+=t[0],t=t.slice(1)}for(let r of t)o.push({content:r,decorations:n?[new e.LineDecoration(1,r.length+1,n,0)]:[]})}let c=n.getLineContent(r.lineNumber),l,u=0;for(let e of r.parts){let t=e.lines;l===void 0?(a.push({column:e.column,text:t[0],preview:e.preview}),t=t.slice(1)):s([c.substring(u,e.column-1)],void 0),t.length>0&&(s(t,ax),l===void 0&&e.column<=c.length&&(l=e.column)),u=e.column-1}l!==void 0&&s([c.substring(u)],void 0);let d=l===void 0?void 0:new $b(l,c.length+1);return{replacedRange:i,inlineTexts:a,additionalLines:o,hiddenRange:d,lineNumber:r.lineNumber,additionalReservedLineCount:this.model.minReservedLineCount.read(t),targetTextModel:n}}),this.decorations=e.derived(this,t=>{let n=this.uiState.read(t);if(!n)return[];let r=[];n.replacedRange&&r.push({range:n.replacedRange.toRange(n.lineNumber),options:{inlineClassName:`inline-completion-text-to-replace`,description:`GhostTextReplacement`}}),n.hiddenRange&&r.push({range:n.hiddenRange.toRange(n.lineNumber),options:{inlineClassName:`ghost-text-hidden`,description:`ghost-text-hidden`}});for(let t of n.inlineTexts)r.push({range:e.Range$1.fromPositions(new e.Position$1(n.lineNumber,t.column)),options:{description:ax,after:{content:t.text,inlineClassName:t.preview?`ghost-text-decoration-preview`:`ghost-text-decoration`,cursorStops:e.InjectedTextCursorStops.Left},showIfCollapsed:!0}});return r}),this.additionalLinesWidget=this._register(new sx(this.editor,this.languageService.languageIdCodec,e.derived(e=>{let t=this.uiState.read(e);return t?{lineNumber:t.lineNumber,additionalLines:t.additionalLines,minReservedLineCount:t.additionalReservedLineCount,targetTextModel:t.targetTextModel}:void 0}))),this._register(e.toDisposable(()=>{this.isDisposed.set(!0,void 0)})),this._register(ex(this.editor,this.decorations))}ownsViewZone(e){return this.additionalLinesWidget.viewZoneId===e}};ox=rx([ix(2,e.ILanguageService)],ox);var sx=class extends e.Disposable{get viewZoneId(){return this._viewZoneId}constructor(t,n,r){super(),this.editor=t,this.languageIdCodec=n,this.lines=r,this._viewZoneId=void 0,this.editorOptionsChanged=e.observableSignalFromEvent(`editorOptionChanged`,e.Event.filter(this.editor.onDidChangeConfiguration,e=>e.hasChanged(33)||e.hasChanged(118)||e.hasChanged(100)||e.hasChanged(95)||e.hasChanged(51)||e.hasChanged(50)||e.hasChanged(67))),this._register(e.autorun(e=>{let t=this.lines.read(e);this.editorOptionsChanged.read(e),t?this.updateLines(t.lineNumber,t.additionalLines,t.minReservedLineCount):this.clear()}))}dispose(){super.dispose(),this.clear()}clear(){this.editor.changeViewZones(e=>{this._viewZoneId&&=(e.removeZone(this._viewZoneId),void 0)})}updateLines(e,t,n){let r=this.editor.getModel();if(!r)return;let{tabSize:i}=r.getOptions();this.editor.changeViewZones(r=>{this._viewZoneId&&=(r.removeZone(this._viewZoneId),void 0);let a=Math.max(t.length,n);if(a>0){let n=document.createElement(`div`);cx(n,i,t,this.editor.getOptions(),this.languageIdCodec),this._viewZoneId=r.addZone({afterLineNumber:e,heightInLines:a,domNode:n,afterColumnAffinity:1})}})}};function cx(t,n,r,i,a){let o=i.get(33),s=i.get(118),c=i.get(95),l=i.get(51),u=i.get(50),d=i.get(67),f=new e.StringBuilder(1e4);f.appendString(`<div class="suggest-preview-text">`);for(let t=0,i=r.length;t<i;t++){let i=r[t],p=i.content;f.appendString(`<div class="view-line`),f.appendString(`" style="top:`),f.appendString(String(t*d)),f.appendString(`px;width:1000000px;">`);let m=e.isBasicASCII(p),h=e.containsRTL(p),g=e.LineTokens.createEmpty(p,a);e.renderViewLine(new e.RenderLineInput(u.isMonospace&&!o,u.canUseHalfwidthRightwardsArrow,p,!1,m,h,0,g,i.decorations,n,0,u.spaceWidth,u.middotWidth,u.wsmiddotWidth,s,`none`,c,l!==e.EditorFontLigatures.OFF,null),f),f.appendString(`</div>`)}f.appendString(`</div>`),e.applyFontInfo(t,u);let p=f.build();t.innerHTML=lx?lx.createHTML(p):p}const lx=e.createTrustedTypesPolicy(`editorGhostText`,{createHTML:e=>e});function ux(t,n){let r=new e.DenseKeyProvider,i=new e.LanguageAgnosticBracketTokens(r,e=>n.getLanguageConfiguration(e)),a=new e.TextBufferTokenizer(new dx([t]),i),o=e.parseDocument(a,[],void 0,!0),s=``,c=t.getLineContent();function l(t,n){if(t.kind===2)if(l(t.openingBracket,n),n=e.lengthAdd(n,t.openingBracket.length),t.child&&(l(t.child,n),n=e.lengthAdd(n,t.child.length)),t.closingBracket)l(t.closingBracket,n),n=e.lengthAdd(n,t.closingBracket.length);else{let e=i.getSingleLanguageBracketTokens(t.openingBracket.languageId).findClosingTokenText(t.openingBracket.bracketIds);s+=e}else if(t.kind!==3){if(t.kind===0||t.kind===1)s+=c.substring(e.lengthGetColumnCountIfZeroLineCount(n),e.lengthGetColumnCountIfZeroLineCount(e.lengthAdd(n,t.length)));else if(t.kind===4)for(let r of t.children)l(r,n),n=e.lengthAdd(n,r.length)}}return l(o,0),s}var dx=class{constructor(e){this.lines=e,this.tokenization={getLineTokens:e=>this.lines[e-1]}}getLineCount(){return this.lines.length}getLineLength(e){return this.lines[e-1].getLineContent().length}};async function fx(t,n,r,i,a=e.CancellationToken.None,o){let s=n instanceof e.Position$1?gx(n,r):n,c=t.all(r),l=new e.SetMap;for(let e of c)e.groupId&&l.add(e.groupId,e);function u(e){if(!e.yieldsToGroupIds)return[];let t=[];for(let n of e.yieldsToGroupIds||[]){let e=l.get(n);for(let n of e)t.push(n)}return t}let d=new Map,f=new Set;function p(e,t){if(t=[...t,e],f.has(e))return t;f.add(e);try{let n=u(e);for(let e of n){let n=p(e,t);if(n)return n}}finally{f.delete(e)}}function m(t){let o=d.get(t);if(o)return o;let s=p(t,[]);s&&e.onUnexpectedExternalError(Error(`Inline completions: cyclic yield-to dependency detected. Path: ${s.map(e=>e.toString?e.toString():``+e).join(` -> `)}`));let c=new e.DeferredPromise;return d.set(t,c.p),(async()=>{if(!s){let e=u(t);for(let t of e){let e=await m(t);if(e&&e.items.length>0)return}}try{return n instanceof e.Position$1?await t.provideInlineCompletions(r,n,i,a):await t.provideInlineEdits?.(r,n,i,a)}catch(t){e.onUnexpectedExternalError(t);return}})().then(e=>c.complete(e),e=>c.error(e)),c.p}let h=await Promise.all(c.map(async e=>({provider:e,completions:await m(e)}))),g=new Map,_=[];for(let e of h){let t=e.completions;if(!t)continue;let n=new mx(t,e.provider);_.push(n);for(let e of t.items){let t=hx.from(e,n,s,r,o);g.set(t.hash(),t)}}return new px(Array.from(g.values()),new Set(g.keys()),_)}var px=class{constructor(e,t,n){this.completions=e,this.hashs=t,this.providerResults=n}has(e){return this.hashs.has(e.hash())}dispose(){for(let e of this.providerResults)e.removeRef()}},mx=class{constructor(e,t){this.inlineCompletions=e,this.provider=t,this.refCount=1}addRef(){this.refCount++}removeRef(){this.refCount--,this.refCount===0&&this.provider.freeInlineCompletions(this.inlineCompletions)}},hx=class t{static from(n,r,i,a,o){let s,c,l=n.range?e.Range$1.lift(n.range):i;if(typeof n.insertText==`string`){if(s=n.insertText,o&&n.completeBracketPairs){s=_x(s,l.getStartPosition(),a,o);let t=s.length-n.insertText.length;t!==0&&(l=new e.Range$1(l.startLineNumber,l.startColumn,l.endLineNumber,l.endColumn+t))}c=void 0}else if(`snippet`in n.insertText){let t=n.insertText.snippet.length;if(o&&n.completeBracketPairs){n.insertText.snippet=_x(n.insertText.snippet,l.getStartPosition(),a,o);let r=n.insertText.snippet.length-t;r!==0&&(l=new e.Range$1(l.startLineNumber,l.startColumn,l.endLineNumber,l.endColumn+r))}let r=new Sl().parse(n.insertText.snippet);r.children.length===1&&r.children[0]instanceof pl?(s=r.children[0].value,c=void 0):(s=r.toString(),c={snippet:n.insertText.snippet,range:l})}else e.assertNever(n.insertText);return new t(s,n.command,l,s,c,n.additionalTextEdits||Qb(),n,r)}constructor(e,t,n,r,i,a,o,s){this.filterText=e,this.command=t,this.range=n,this.insertText=r,this.snippetInfo=i,this.additionalTextEdits=a,this.sourceInlineCompletion=o,this.source=s,e=e.replace(/\r\n|\r/g,`
`),r=e.replace(/\r\n|\r/g,`
`)}withRange(e){return new t(this.filterText,this.command,e,this.insertText,this.snippetInfo,this.additionalTextEdits,this.sourceInlineCompletion,this.source)}hash(){return JSON.stringify({insertText:this.insertText,range:this.range.toString()})}toSingleTextEdit(){return new e.SingleTextEdit(this.range,this.insertText)}};function gx(t,n){let r=n.getWordAtPosition(t),i=n.getLineMaxColumn(t.lineNumber);return r?new e.Range$1(t.lineNumber,r.startColumn,t.lineNumber,i):e.Range$1.fromPositions(t,t.with(void 0,i))}function _x(e,t,n,r){let i=n.getLineContent(t.lineNumber).substring(0,t.column-1)+e,a=n.tokenization.tokenizeLineWithEdit(t,i.length-(t.column-1),e)?.sliceAndInflate(t.column-1,i.length,0);return a?ux(a,r):e}function vx(t,n,r){let i=r?t.range.intersectRanges(r):t.range;if(!i)return t;let a=n.getValueInRange(i,1),o=e.commonPrefixLength(a,t.text),s=e.TextLength.ofText(a.substring(0,o)).addToPosition(t.range.getStartPosition()),c=t.text.substring(o),l=e.Range$1.fromPositions(s,t.range.getEndPosition());return new e.SingleTextEdit(l,c)}function yx(e,t){return e.text.startsWith(t.text)&&xx(e.range,t.range)}function bx(t,n,r,i,a=0){let o=vx(t,n);if(o.range.endLineNumber!==o.range.startLineNumber)return;let s=n.getLineContent(o.range.startLineNumber),c=e.getLeadingWhitespace(s).length;if(o.range.startColumn-1<=c){let t=e.getLeadingWhitespace(o.text).length,n=s.substring(o.range.startColumn-1,c),[r,i]=[o.range.getStartPosition(),o.range.getEndPosition()],a=r.column+n.length<=i.column?r.delta(0,n.length):i,l=e.Range$1.fromPositions(a,i),u=o.text.startsWith(n)?o.text.substring(n.length):o.text.substring(t);o=new e.SingleTextEdit(l,u)}let l=n.getValueInRange(o.range),u=Cx(l,o.text);if(!u)return;let d=o.range.startLineNumber,f=[];if(r===`prefix`){let e=u.filter(e=>e.originalLength===0);if(e.length>1||e.length===1&&e[0].originalStart!==l.length)return}let p=o.text.length-a;for(let e of u){let t=o.range.startColumn+e.originalStart+e.originalLength;if(r===`subwordSmart`&&i&&i.lineNumber===o.range.startLineNumber&&t<i.column||e.originalLength>0)return;if(e.modifiedLength===0)continue;let n=e.modifiedStart+e.modifiedLength,a=Math.max(e.modifiedStart,Math.min(n,p)),s=o.text.substring(e.modifiedStart,a),c=o.text.substring(a,Math.max(e.modifiedStart,n));s.length>0&&f.push(new qb(t,s,!1)),c.length>0&&f.push(new qb(t,c,!0))}return new Kb(d,f)}function xx(e,t){return t.getStartPosition().equals(e.getStartPosition())&&t.getEndPosition().isBeforeOrEqual(e.getEndPosition())}var Sx=void 0;function Cx(e,t){if(Sx?.originalValue===e&&Sx?.newValue===t)return Sx?.changes;{let n=Tx(e,t,!0);if(n){let r=wx(n);if(r>0){let i=Tx(e,t,!1);i&&wx(i)<r&&(n=i)}}return Sx={originalValue:e,newValue:t,changes:n},n}}function wx(e){let t=0;for(let n of e)t+=n.originalLength;return t}function Tx(t,n,r){if(t.length>5e3||n.length>5e3)return;function i(e){let t=0;for(let n=0,r=e.length;n<r;n++){let r=e.charCodeAt(n);r>t&&(t=r)}return t}let a=Math.max(i(t),i(n));function o(e){if(e<0)throw Error(`unexpected`);return a+e+1}function s(e){let t=0,n=0,i=new Int32Array(e.length);for(let a=0,s=e.length;a<s;a++)if(r&&e[a]===`(`){let e=n*100+t;i[a]=o(2*e),t++}else if(r&&e[a]===`)`){t=Math.max(t-1,0);let e=n*100+t;i[a]=o(2*e+1),t===0&&n++}else i[a]=e.charCodeAt(a);return i}let c=s(t),l=s(n);return new e.LcsDiff({getElements:()=>c},{getElements:()=>l}).ComputeDiff(!1).changes}var Ex=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Dx=function(e,t){return function(n,r){t(n,r,e)}},Ox=class extends e.Disposable{constructor(t,n,r,i,a){super(),this.textModel=t,this.versionId=n,this._debounceValue=r,this.languageFeaturesService=i,this.languageConfigurationService=a,this._updateOperation=this._register(new e.MutableDisposable),this.inlineCompletions=e.disposableObservableValue(`inlineCompletions`,void 0),this.suggestWidgetInlineCompletions=e.disposableObservableValue(`suggestWidgetInlineCompletions`,void 0),this._register(this.textModel.onDidChangeContent(()=>{this._updateOperation.clear()}))}fetch(t,n,r){let i=new Ax(t,n,this.textModel.getVersionId()),a=n.selectedSuggestionInfo?this.suggestWidgetInlineCompletions:this.inlineCompletions;if(this._updateOperation.value?.request.satisfies(i))return this._updateOperation.value.promise;if(a.get()?.request.satisfies(i))return Promise.resolve(!0);let o=!!this._updateOperation.value;this._updateOperation.clear();let s=new e.CancellationTokenSource$1,c=(async()=>{if((o||n.triggerKind===e.InlineCompletionTriggerKind.Automatic)&&await kx(this._debounceValue.get(this.textModel),s.token),s.token.isCancellationRequested||this._store.isDisposed||this.textModel.getVersionId()!==i.versionId)return!1;let c=new Date,l=await fx(this.languageFeaturesService.inlineCompletionsProvider,t,this.textModel,n,s.token,this.languageConfigurationService);if(s.token.isCancellationRequested||this._store.isDisposed||this.textModel.getVersionId()!==i.versionId)return!1;let u=new Date;this._debounceValue.update(this.textModel,u.getTime()-c.getTime());let d=new Mx(l,i,this.textModel,this.versionId);if(r){let e=r.toInlineCompletion(void 0);r.canBeReused(this.textModel,t)&&!l.has(e)&&d.prepend(r.inlineCompletion,e.range,!0)}return this._updateOperation.clear(),e.transaction(e=>{a.set(d,e)}),!0})(),l=new jx(i,s,c);return this._updateOperation.value=l,c}clear(e){this._updateOperation.clear(),this.inlineCompletions.set(void 0,e),this.suggestWidgetInlineCompletions.set(void 0,e)}clearSuggestWidgetInlineCompletions(e){this._updateOperation.value?.request.context.selectedSuggestionInfo&&this._updateOperation.clear(),this.suggestWidgetInlineCompletions.set(void 0,e)}cancelUpdate(){this._updateOperation.clear()}};Ox=Ex([Dx(3,e.ILanguageFeaturesService),Dx(4,e.ILanguageConfigurationService)],Ox);function kx(e,t){return new Promise(n=>{let r,i=setTimeout(()=>{r&&r.dispose(),n()},e);t&&(r=t.onCancellationRequested(()=>{clearTimeout(i),r&&r.dispose(),n()}))})}var Ax=class{constructor(e,t,n){this.position=e,this.context=t,this.versionId=n}satisfies(t){return this.position.equals(t.position)&&e.equalsIfDefined(this.context.selectedSuggestionInfo,t.context.selectedSuggestionInfo,e.itemEquals())&&(t.context.triggerKind===e.InlineCompletionTriggerKind.Automatic||this.context.triggerKind===e.InlineCompletionTriggerKind.Explicit)&&this.versionId===t.versionId}},jx=class{constructor(e,t,n){this.request=e,this.cancellationTokenSource=t,this.promise=n}dispose(){this.cancellationTokenSource.cancel()}},Mx=class{get inlineCompletions(){return this._inlineCompletions}constructor(e,t,n,r){this.inlineCompletionProviderResult=e,this.request=t,this._textModel=n,this._versionId=r,this._refCount=1,this._prependedInlineCompletionItems=[];let i=n.deltaDecorations([],e.completions.map(e=>({range:e.range,options:{description:`inline-completion-tracking-range`}})));this._inlineCompletions=e.completions.map((e,t)=>new Nx(e,i[t],this._textModel,this._versionId))}clone(){return this._refCount++,this}dispose(){if(this._refCount--,this._refCount===0){setTimeout(()=>{this._textModel.isDisposed()||this._textModel.deltaDecorations(this._inlineCompletions.map(e=>e.decorationId),[])},0),this.inlineCompletionProviderResult.dispose();for(let e of this._prependedInlineCompletionItems)e.source.removeRef()}}prepend(e,t,n){n&&e.source.addRef();let r=this._textModel.deltaDecorations([],[{range:t,options:{description:`inline-completion-tracking-range`}}])[0];this._inlineCompletions.unshift(new Nx(e,r,this._textModel,this._versionId)),this._prependedInlineCompletionItems.push(e)}},Nx=class{get forwardStable(){return this.inlineCompletion.source.inlineCompletions.enableForwardStability??!1}constructor(t,n,r,i){this.inlineCompletion=t,this.decorationId=n,this._textModel=r,this._modelVersion=i,this.semanticId=JSON.stringify([this.inlineCompletion.filterText,this.inlineCompletion.insertText,this.inlineCompletion.range.getStartPosition().toString()]),this._updatedRange=e.derivedOpts({owner:this,equalsFn:e.Range$1.equalsRange},e=>(this._modelVersion.read(e),this._textModel.getDecorationRange(this.decorationId)))}toInlineCompletion(e){return this.inlineCompletion.withRange(this._updatedRange.read(e)??Px)}toSingleTextEdit(t){return new e.SingleTextEdit(this._updatedRange.read(t)??Px,this.inlineCompletion.insertText)}isVisible(t,n,r){let i=vx(this._toFilterTextReplacement(r),t),a=this._updatedRange.read(r);if(!a||!this.inlineCompletion.range.getStartPosition().equals(a.getStartPosition())||n.lineNumber!==i.range.startLineNumber)return!1;let o=t.getValueInRange(i.range,1),s=i.text,c=Math.max(0,n.column-i.range.startColumn),l=s.substring(0,c),u=s.substring(c),d=o.substring(0,c),f=o.substring(c),p=t.getLineIndentColumn(i.range.startLineNumber);return i.range.startColumn<=p&&(d=d.trimStart(),d.length===0&&(f=f.trimStart()),l=l.trimStart(),l.length===0&&(u=u.trimStart())),l.startsWith(d)&&!!e.matchesSubString(f,u)}canBeReused(t,n){let r=this._updatedRange.read(void 0);return!!r&&r.containsPosition(n)&&this.isVisible(t,n,void 0)&&e.TextLength.ofRange(r).isGreaterThanOrEqualTo(e.TextLength.ofRange(this.inlineCompletion.range))}_toFilterTextReplacement(t){return new e.SingleTextEdit(this._updatedRange.read(t)??Px,this.inlineCompletion.filterText)}},Px=new e.Range$1(1,1,1,1);const Z={Visible:rv,HasFocusedSuggestion:new e.RawContextKey(`suggestWidgetHasFocusedSuggestion`,!1,e.localize(`suggestWidgetHasSelection`,`Whether any suggestion is focused`)),DetailsVisible:new e.RawContextKey(`suggestWidgetDetailsVisible`,!1,e.localize(`suggestWidgetDetailsVisible`,`Whether suggestion details are visible`)),MultipleSuggestions:new e.RawContextKey(`suggestWidgetMultipleSuggestions`,!1,e.localize(`suggestWidgetMultipleSuggestions`,`Whether there are multiple suggestions to pick from`)),MakesTextEdit:new e.RawContextKey(`suggestionMakesTextEdit`,!0,e.localize(`suggestionMakesTextEdit`,`Whether inserting the current suggestion yields in a change or has everything already been typed`)),AcceptSuggestionsOnEnter:new e.RawContextKey(`acceptSuggestionOnEnter`,!0,e.localize(`acceptSuggestionOnEnter`,`Whether suggestions are inserted when pressing Enter`)),HasInsertAndReplaceRange:new e.RawContextKey(`suggestionHasInsertAndReplaceRange`,!1,e.localize(`suggestionHasInsertAndReplaceRange`,`Whether the current suggestion has insert and replace behaviour`)),InsertMode:new e.RawContextKey(`suggestionInsertMode`,void 0,{type:`string`,description:e.localize(`suggestionInsertMode`,`Whether the default behaviour is to insert or replace`)}),CanResolve:new e.RawContextKey(`suggestionCanResolve`,!1,e.localize(`suggestionCanResolve`,`Whether the current suggestion supports to resolve further details`))},Fx=new e.MenuId(`suggestWidgetStatusBar`);var Ix=class{constructor(t,n,r,i){this.position=t,this.completion=n,this.container=r,this.provider=i,this.isInvalid=!1,this.score=e.FuzzyScore.Default,this.distance=0,this.textLabel=typeof n.label==`string`?n.label:n.label?.label,this.labelLow=this.textLabel.toLowerCase(),this.isInvalid=!this.textLabel,this.sortTextLow=n.sortText&&n.sortText.toLowerCase(),this.filterTextLow=n.filterText&&n.filterText.toLowerCase(),this.extensionId=n.extensionId,e.Range$1.isIRange(n.range)?(this.editStart=new e.Position$1(n.range.startLineNumber,n.range.startColumn),this.editInsertEnd=new e.Position$1(n.range.endLineNumber,n.range.endColumn),this.editReplaceEnd=new e.Position$1(n.range.endLineNumber,n.range.endColumn),this.isInvalid=this.isInvalid||e.Range$1.spansMultipleLines(n.range)||n.range.startLineNumber!==t.lineNumber):(this.editStart=new e.Position$1(n.range.insert.startLineNumber,n.range.insert.startColumn),this.editInsertEnd=new e.Position$1(n.range.insert.endLineNumber,n.range.insert.endColumn),this.editReplaceEnd=new e.Position$1(n.range.replace.endLineNumber,n.range.replace.endColumn),this.isInvalid=this.isInvalid||e.Range$1.spansMultipleLines(n.range.insert)||e.Range$1.spansMultipleLines(n.range.replace)||n.range.insert.startLineNumber!==t.lineNumber||n.range.replace.startLineNumber!==t.lineNumber||n.range.insert.startColumn!==n.range.replace.startColumn),typeof i.resolveCompletionItem!=`function`&&(this._resolveCache=Promise.resolve(),this._resolveDuration=0)}get isResolved(){return this._resolveDuration!==void 0}get resolveDuration(){return this._resolveDuration===void 0?-1:this._resolveDuration}async resolve(t){if(!this._resolveCache){let n=t.onCancellationRequested(()=>{this._resolveCache=void 0,this._resolveDuration=void 0}),r=new e.StopWatch(!0);this._resolveCache=Promise.resolve(this.provider.resolveCompletionItem(this.completion,t)).then(e=>{Object.assign(this.completion,e),this._resolveDuration=r.elapsed()},t=>{e.isCancellationError(t)&&(this._resolveCache=void 0,this._resolveDuration=void 0)}).finally(()=>{n.dispose()})}return this._resolveCache}},Lx=class e{static{this.default=new e}constructor(e=2,t=new Set,n=new Set,r=new Map,i=!0){this.snippetSortOrder=e,this.kindFilter=t,this.providerFilter=n,this.providerItemsToReuse=r,this.showDeprecated=i}},Rx;function zx(){return Rx}var Bx=class{constructor(e,t,n,r){this.items=e,this.needsClipboard=t,this.durations=n,this.disposable=r}};async function Vx(t,n,r,i=Lx.default,a={triggerKind:0},o=e.CancellationToken.None){let s=new e.StopWatch;r=r.clone();let c=n.getWordAtPosition(r),l=c?new e.Range$1(r.lineNumber,c.startColumn,r.lineNumber,c.endColumn):e.Range$1.fromPositions(r),u={replace:l,insert:l.setEndPosition(r.lineNumber,r.column)},d=[],f=new e.DisposableStore,p=[],m=!1,h=(t,n,a)=>{let o=!1;if(!n)return o;for(let e of n.suggestions)if(!i.kindFilter.has(e.kind)){if(!i.showDeprecated&&e?.tags?.includes(1))continue;e.range||=u,e.sortText||=typeof e.label==`string`?e.label:e.label.label,!m&&e.insertTextRules&&e.insertTextRules&4&&(m=Sl.guessNeedsClipboard(e.insertText)),d.push(new Ix(r,e,n,t)),o=!0}return e.isDisposable(n)&&f.add(n),p.push({providerName:t._debugDisplayName??`unknown_provider`,elapsedProvider:n.duration??-1,elapsedOverall:a.elapsed()}),o},g=(async()=>{})();for(let s of t.orderedGroups(n)){let t=!1;if(await Promise.all(s.map(async s=>{if(i.providerItemsToReuse.has(s)){let e=i.providerItemsToReuse.get(s);e.forEach(e=>d.push(e)),t||=e.length>0;return}if(!(i.providerFilter.size>0&&!i.providerFilter.has(s)))try{let i=new e.StopWatch,c=await s.provideCompletionItems(n,r,a,o);t=h(s,c,i)||t}catch(t){e.onUnexpectedExternalError(t)}})),t||o.isCancellationRequested)break}return await g,o.isCancellationRequested?(f.dispose(),Promise.reject(new e.CancellationError)):new Bx(d.sort(Kx(i.snippetSortOrder)),m,{entries:p,elapsed:s.elapsed()},f)}function Hx(e,t){if(e.sortTextLow&&t.sortTextLow){if(e.sortTextLow<t.sortTextLow)return-1;if(e.sortTextLow>t.sortTextLow)return 1}return e.textLabel<t.textLabel?-1:e.textLabel>t.textLabel?1:e.completion.kind-t.completion.kind}function Ux(e,t){if(e.completion.kind!==t.completion.kind){if(e.completion.kind===27)return-1;if(t.completion.kind===27)return 1}return Hx(e,t)}function Wx(e,t){if(e.completion.kind!==t.completion.kind){if(e.completion.kind===27)return 1;if(t.completion.kind===27)return-1}return Hx(e,t)}var Gx=new Map;Gx.set(0,Ux),Gx.set(2,Wx),Gx.set(1,Hx);function Kx(e){return Gx.get(e)}e.CommandsRegistry.registerCommand(`_executeCompletionItemProvider`,async(t,...n)=>{let[r,i,a,o]=n;e.assertType(e.URI.isUri(r)),e.assertType(e.Position$1.isIPosition(i)),e.assertType(typeof a==`string`||!a),e.assertType(typeof o==`number`||!o);let{completionProvider:s}=t.get(e.ILanguageFeaturesService),c=await t.get(e.ITextModelService).createModelReference(r);try{let t={incomplete:!1,suggestions:[]},n=[],r=c.object.textEditorModel.validatePosition(i),l=await Vx(s,c.object.textEditorModel,r,void 0,{triggerCharacter:a??void 0,triggerKind:a?1:0});for(let r of l.items)n.length<(o??0)&&n.push(r.resolve(e.CancellationToken.None)),t.incomplete=t.incomplete||r.container.incomplete,t.suggestions.push(r.completion);try{return await Promise.all(n),t}finally{setTimeout(()=>l.disposable.dispose(),100)}}finally{c.dispose()}});function qx(e,t){e.getContribution(`editor.contrib.suggestController`)?.triggerSuggest(new Set().add(t),void 0,!0)}var Jx=class{static isAllOff(e){return e.other===`off`&&e.comments===`off`&&e.strings===`off`}static isAllOn(e){return e.other===`on`&&e.comments===`on`&&e.strings===`on`}static valueFor(e,t){switch(t){case 1:return e.comments;case 2:return e.strings;default:return e.other}}};function Yx(t,n=e.isWindows){return e.hasDriveLetter(t,n)?t.charAt(0).toUpperCase()+t.slice(1):t}var Xx=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Zx=function(e,t){return function(n,r){t(n,r,e)}};const Qx=Object.freeze({CURRENT_YEAR:!0,CURRENT_YEAR_SHORT:!0,CURRENT_MONTH:!0,CURRENT_DATE:!0,CURRENT_HOUR:!0,CURRENT_MINUTE:!0,CURRENT_SECOND:!0,CURRENT_DAY_NAME:!0,CURRENT_DAY_NAME_SHORT:!0,CURRENT_MONTH_NAME:!0,CURRENT_MONTH_NAME_SHORT:!0,CURRENT_SECONDS_UNIX:!0,CURRENT_TIMEZONE_OFFSET:!0,SELECTION:!0,CLIPBOARD:!0,TM_SELECTED_TEXT:!0,TM_CURRENT_LINE:!0,TM_CURRENT_WORD:!0,TM_LINE_INDEX:!0,TM_LINE_NUMBER:!0,TM_FILENAME:!0,TM_FILENAME_BASE:!0,TM_DIRECTORY:!0,TM_FILEPATH:!0,CURSOR_INDEX:!0,CURSOR_NUMBER:!0,RELATIVE_FILEPATH:!0,BLOCK_COMMENT_START:!0,BLOCK_COMMENT_END:!0,LINE_COMMENT:!0,WORKSPACE_NAME:!0,WORKSPACE_FOLDER:!0,RANDOM:!0,RANDOM_HEX:!0,UUID:!0});var $x=class{constructor(e){this._delegates=e}resolve(e){for(let t of this._delegates){let n=t.resolve(e);if(n!==void 0)return n}}},eS=class{constructor(e,t,n,r){this._model=e,this._selection=t,this._selectionIdx=n,this._overtypingCapturer=r}resolve(t){let{name:n}=t;if(n===`SELECTION`||n===`TM_SELECTED_TEXT`){let n=this._model.getValueInRange(this._selection)||void 0,r=this._selection.startLineNumber!==this._selection.endLineNumber;if(!n&&this._overtypingCapturer){let e=this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);e&&(n=e.value,r=e.multiline)}if(n&&r&&t.snippet){let r=this._model.getLineContent(this._selection.startLineNumber),i=e.getLeadingWhitespace(r,0,this._selection.startColumn-1),a=i;t.snippet.walk(n=>n===t?!1:(n instanceof pl&&(a=e.getLeadingWhitespace(e.splitLines(n.value).pop())),!0));let o=e.commonPrefixLength(a,i);n=n.replace(/(\r\n|\r|\n)(.*)/g,(e,t,n)=>`${t}${a.substr(o)}${n}`)}return n}else if(n===`TM_CURRENT_LINE`)return this._model.getLineContent(this._selection.positionLineNumber);else if(n===`TM_CURRENT_WORD`){let e=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return e&&e.word||void 0}else if(n===`TM_LINE_INDEX`)return String(this._selection.positionLineNumber-1);else if(n===`TM_LINE_NUMBER`)return String(this._selection.positionLineNumber);else if(n===`CURSOR_INDEX`)return String(this._selectionIdx);else if(n===`CURSOR_NUMBER`)return String(this._selectionIdx+1)}},tS=class{constructor(e,t){this._labelService=e,this._model=t}resolve(t){let{name:n}=t;if(n===`TM_FILENAME`)return e.basename$1(this._model.uri.fsPath);if(n===`TM_FILENAME_BASE`){let t=e.basename$1(this._model.uri.fsPath),n=t.lastIndexOf(`.`);return n<=0?t:t.slice(0,n)}else if(n===`TM_DIRECTORY`)return e.dirname$1(this._model.uri.fsPath)===`.`?``:this._labelService.getUriLabel(e.dirname(this._model.uri));else if(n===`TM_FILEPATH`)return this._labelService.getUriLabel(this._model.uri);else if(n===`RELATIVE_FILEPATH`)return this._labelService.getUriLabel(this._model.uri,{relative:!0,noPrefix:!0})}},nS=class{constructor(e,t,n,r){this._readClipboardText=e,this._selectionIdx=t,this._selectionCount=n,this._spread=r}resolve(t){if(t.name!==`CLIPBOARD`)return;let n=this._readClipboardText();if(n){if(this._spread){let t=n.split(/\r\n|\n|\r/).filter(t=>!e.isFalsyOrWhitespace(t));if(t.length===this._selectionCount)return t[this._selectionIdx]}return n}}},rS=class{constructor(e,t,n){this._model=e,this._selection=t,this._languageConfigurationService=n}resolve(e){let{name:t}=e,n=this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber,this._selection.selectionStartColumn),r=this._languageConfigurationService.getLanguageConfiguration(n).comments;if(r){if(t===`LINE_COMMENT`)return r.lineCommentToken||void 0;if(t===`BLOCK_COMMENT_START`)return r.blockCommentStartToken||void 0;if(t===`BLOCK_COMMENT_END`)return r.blockCommentEndToken||void 0}}};rS=Xx([Zx(2,e.ILanguageConfigurationService)],rS);var iS=class t{constructor(){this._date=new Date}static{this.dayNames=[e.localize(`Sunday`,`Sunday`),e.localize(`Monday`,`Monday`),e.localize(`Tuesday`,`Tuesday`),e.localize(`Wednesday`,`Wednesday`),e.localize(`Thursday`,`Thursday`),e.localize(`Friday`,`Friday`),e.localize(`Saturday`,`Saturday`)]}static{this.dayNamesShort=[e.localize(`SundayShort`,`Sun`),e.localize(`MondayShort`,`Mon`),e.localize(`TuesdayShort`,`Tue`),e.localize(`WednesdayShort`,`Wed`),e.localize(`ThursdayShort`,`Thu`),e.localize(`FridayShort`,`Fri`),e.localize(`SaturdayShort`,`Sat`)]}static{this.monthNames=[e.localize(`January`,`January`),e.localize(`February`,`February`),e.localize(`March`,`March`),e.localize(`April`,`April`),e.localize(`May`,`May`),e.localize(`June`,`June`),e.localize(`July`,`July`),e.localize(`August`,`August`),e.localize(`September`,`September`),e.localize(`October`,`October`),e.localize(`November`,`November`),e.localize(`December`,`December`)]}static{this.monthNamesShort=[e.localize(`JanuaryShort`,`Jan`),e.localize(`FebruaryShort`,`Feb`),e.localize(`MarchShort`,`Mar`),e.localize(`AprilShort`,`Apr`),e.localize(`MayShort`,`May`),e.localize(`JuneShort`,`Jun`),e.localize(`JulyShort`,`Jul`),e.localize(`AugustShort`,`Aug`),e.localize(`SeptemberShort`,`Sep`),e.localize(`OctoberShort`,`Oct`),e.localize(`NovemberShort`,`Nov`),e.localize(`DecemberShort`,`Dec`)]}resolve(e){let{name:n}=e;if(n===`CURRENT_YEAR`)return String(this._date.getFullYear());if(n===`CURRENT_YEAR_SHORT`)return String(this._date.getFullYear()).slice(-2);if(n===`CURRENT_MONTH`)return String(this._date.getMonth().valueOf()+1).padStart(2,`0`);if(n===`CURRENT_DATE`)return String(this._date.getDate().valueOf()).padStart(2,`0`);if(n===`CURRENT_HOUR`)return String(this._date.getHours().valueOf()).padStart(2,`0`);if(n===`CURRENT_MINUTE`)return String(this._date.getMinutes().valueOf()).padStart(2,`0`);if(n===`CURRENT_SECOND`)return String(this._date.getSeconds().valueOf()).padStart(2,`0`);if(n===`CURRENT_DAY_NAME`)return t.dayNames[this._date.getDay()];if(n===`CURRENT_DAY_NAME_SHORT`)return t.dayNamesShort[this._date.getDay()];if(n===`CURRENT_MONTH_NAME`)return t.monthNames[this._date.getMonth()];if(n===`CURRENT_MONTH_NAME_SHORT`)return t.monthNamesShort[this._date.getMonth()];if(n===`CURRENT_SECONDS_UNIX`)return String(Math.floor(this._date.getTime()/1e3));if(n===`CURRENT_TIMEZONE_OFFSET`){let e=this._date.getTimezoneOffset(),t=e>0?`-`:`+`,n=Math.trunc(Math.abs(e/60)),r=n<10?`0`+n:n,i=Math.abs(e)-n*60,a=i<10?`0`+i:i;return t+r+`:`+a}}},aS=class{constructor(e){this._workspaceService=e}resolve(t){if(!this._workspaceService)return;let n=e.toWorkspaceIdentifier(this._workspaceService.getWorkspace());if(!e.isEmptyWorkspaceIdentifier(n)){if(t.name===`WORKSPACE_NAME`)return this._resolveWorkspaceName(n);if(t.name===`WORKSPACE_FOLDER`)return this._resoveWorkspacePath(n)}}_resolveWorkspaceName(t){if(e.isSingleFolderWorkspaceIdentifier(t))return e.basename$1(t.uri.path);let n=e.basename$1(t.configPath.path);return n.endsWith(`code-workspace`)&&(n=n.substr(0,n.length-e.WORKSPACE_EXTENSION.length-1)),n}_resoveWorkspacePath(t){if(e.isSingleFolderWorkspaceIdentifier(t))return Yx(t.uri.fsPath);let n=e.basename$1(t.configPath.path),r=t.configPath.fsPath;return r.endsWith(n)&&(r=r.substr(0,r.length-n.length-1)),r?Yx(r):`/`}},oS=class{resolve(e){let{name:t}=e;if(t===`RANDOM`)return Math.random().toString().slice(-6);if(t===`RANDOM_HEX`)return Math.random().toString(16).slice(-6);if(t===`UUID`)return zc()}},sS=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},cS=function(e,t){return function(n,r){t(n,r,e)}},lS,uS=class t{static{this._decor={active:e.ModelDecorationOptions.register({description:`snippet-placeholder-1`,stickiness:0,className:`snippet-placeholder`}),inactive:e.ModelDecorationOptions.register({description:`snippet-placeholder-2`,stickiness:1,className:`snippet-placeholder`}),activeFinal:e.ModelDecorationOptions.register({description:`snippet-placeholder-3`,stickiness:1,className:`finish-snippet-placeholder`}),inactiveFinal:e.ModelDecorationOptions.register({description:`snippet-placeholder-4`,stickiness:1,className:`finish-snippet-placeholder`})}}constructor(t,n,r){this._editor=t,this._snippet=n,this._snippetLineLeadingWhitespace=r,this._offset=-1,this._nestingLevel=1,this._placeholderGroups=e.groupBy(n.placeholders,hl.compareByIndex),this._placeholderGroupsIdx=-1}initialize(e){this._offset=e.newPosition}dispose(){this._placeholderDecorations&&this._editor.removeDecorations([...this._placeholderDecorations.values()]),this._placeholderGroups.length=0}_initDecorations(){if(this._offset===-1)throw Error(`Snippet not initialized!`);if(this._placeholderDecorations)return;this._placeholderDecorations=new Map;let n=this._editor.getModel();this._editor.changeDecorations(r=>{for(let i of this._snippet.placeholders){let a=this._snippet.offset(i),o=this._snippet.fullLen(i),s=e.Range$1.fromPositions(n.getPositionAt(this._offset+a),n.getPositionAt(this._offset+a+o)),c=i.isFinalTabstop?t._decor.inactiveFinal:t._decor.inactive,l=r.addDecoration(s,c);this._placeholderDecorations.set(i,l)}})}move(n){if(!this._editor.hasModel())return[];if(this._initDecorations(),this._placeholderGroupsIdx>=0){let t=[];for(let n of this._placeholderGroups[this._placeholderGroupsIdx])if(n.transform){let r=this._placeholderDecorations.get(n),i=this._editor.getModel().getDecorationRange(r),a=this._editor.getModel().getValueInRange(i),o=n.transform.resolve(a).split(/\r\n|\r|\n/);for(let e=1;e<o.length;e++)o[e]=this._editor.getModel().normalizeIndentation(this._snippetLineLeadingWhitespace+o[e]);t.push(e.EditOperation.replace(i,o.join(this._editor.getModel().getEOL())))}t.length>0&&this._editor.executeEdits(`snippet.placeholderTransform`,t)}let r=!1;n===!0&&this._placeholderGroupsIdx<this._placeholderGroups.length-1?(this._placeholderGroupsIdx+=1,r=!0):n===!1&&this._placeholderGroupsIdx>0&&(--this._placeholderGroupsIdx,r=!0);let i=this._editor.getModel().changeDecorations(n=>{let i=new Set,a=[];for(let o of this._placeholderGroups[this._placeholderGroupsIdx]){let s=this._placeholderDecorations.get(o),c=this._editor.getModel().getDecorationRange(s);a.push(new e.Selection$1(c.startLineNumber,c.startColumn,c.endLineNumber,c.endColumn)),r&&=this._hasPlaceholderBeenCollapsed(o),n.changeDecorationOptions(s,o.isFinalTabstop?t._decor.activeFinal:t._decor.active),i.add(o);for(let e of this._snippet.enclosingPlaceholders(o)){let r=this._placeholderDecorations.get(e);n.changeDecorationOptions(r,e.isFinalTabstop?t._decor.activeFinal:t._decor.active),i.add(e)}}for(let[e,r]of this._placeholderDecorations)i.has(e)||n.changeDecorationOptions(r,e.isFinalTabstop?t._decor.inactiveFinal:t._decor.inactive);return a});return r?this.move(n):i??[]}_hasPlaceholderBeenCollapsed(e){let t=e;for(;t;){if(t instanceof hl){let e=this._placeholderDecorations.get(t);if(this._editor.getModel().getDecorationRange(e).isEmpty()&&t.toString().length>0)return!0}t=t.parent}return!1}get isAtFirstPlaceholder(){return this._placeholderGroupsIdx<=0||this._placeholderGroups.length===0}get isAtLastPlaceholder(){return this._placeholderGroupsIdx===this._placeholderGroups.length-1}get hasPlaceholder(){return this._snippet.placeholders.length>0}get isTrivialSnippet(){if(this._snippet.placeholders.length===0)return!0;if(this._snippet.placeholders.length===1){let[e]=this._snippet.placeholders;if(e.isFinalTabstop&&this._snippet.rightMostDescendant===e)return!0}return!1}computePossibleSelections(){let e=new Map;for(let t of this._placeholderGroups){let n;for(let r of t){if(r.isFinalTabstop)break;n||(n=[],e.set(r.index,n));let t=this._placeholderDecorations.get(r),i=this._editor.getModel().getDecorationRange(t);if(!i){e.delete(r.index);break}n.push(i)}}return e}get activeChoice(){if(!this._placeholderDecorations)return;let e=this._placeholderGroups[this._placeholderGroupsIdx][0];if(!e?.choice)return;let t=this._placeholderDecorations.get(e);if(!t)return;let n=this._editor.getModel().getDecorationRange(t);if(n)return{range:n,choice:e.choice}}get hasChoice(){let e=!1;return this._snippet.walk(t=>(e=t instanceof gl,!e)),e}merge(n){let r=this._editor.getModel();this._nestingLevel*=10,this._editor.changeDecorations(i=>{for(let a of this._placeholderGroups[this._placeholderGroupsIdx]){let o=n.shift();console.assert(o._offset!==-1),console.assert(!o._placeholderDecorations);let s=o._snippet.placeholderInfo.last.index;for(let e of o._snippet.placeholderInfo.all)e.isFinalTabstop?e.index=a.index+(s+1)/this._nestingLevel:e.index=a.index+e.index/this._nestingLevel;this._snippet.replace(a,o._snippet.children);let c=this._placeholderDecorations.get(a);i.removeDecoration(c),this._placeholderDecorations.delete(a);for(let n of o._snippet.placeholders){let a=o._snippet.offset(n),s=o._snippet.fullLen(n),c=e.Range$1.fromPositions(r.getPositionAt(o._offset+a),r.getPositionAt(o._offset+a+s)),l=i.addDecoration(c,t._decor.inactive);this._placeholderDecorations.set(n,l)}}this._placeholderGroups=e.groupBy(this._snippet.placeholders,hl.compareByIndex)})}},dS={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0},fS=lS=class{static adjustWhitespace(t,n,r,i,a){let o=t.getLineContent(n.lineNumber),s=e.getLeadingWhitespace(o,0,n.column-1),c;return i.walk(e=>{if(!(e instanceof pl)||e.parent instanceof gl||a&&!a.has(e))return!0;let n=e.value.split(/\r\n|\r|\n/);if(r){let r=i.offset(e);if(r===0)n[0]=t.normalizeIndentation(n[0]);else{c??=i.toString();let e=c.charCodeAt(r-1);(e===10||e===13)&&(n[0]=t.normalizeIndentation(s+n[0]))}for(let e=1;e<n.length;e++)n[e]=t.normalizeIndentation(s+n[e])}let o=n.join(t.getEOL());return o!==e.value&&(e.parent.replace(e,[new pl(o)]),c=void 0),!0}),s}static adjustSelection(t,n,r,i){if(r!==0||i!==0){let{positionLineNumber:a,positionColumn:o}=n,s=o-r,c=o+i,l=t.validateRange({startLineNumber:a,startColumn:s,endLineNumber:a,endColumn:c});n=e.Selection$1.createWithDirection(l.startLineNumber,l.startColumn,l.endLineNumber,l.endColumn,n.getDirection())}return n}static createEditsAndSnippetsFromSelections(t,n,r,i,a,o,s,c,l){let u=[],d=[];if(!t.hasModel())return{edits:u,snippets:d};let f=t.getModel(),p=t.invokeWithinContext(t=>t.get(e.IWorkspaceContextService)),m=t.invokeWithinContext(t=>new tS(t.get(e.ILabelService),f)),h=()=>s,g=f.getValueInRange(lS.adjustSelection(f,t.getSelection(),r,0)),_=f.getValueInRange(lS.adjustSelection(f,t.getSelection(),0,i)),v=f.getLineFirstNonWhitespaceColumn(t.getSelection().positionLineNumber),y=t.getSelections().map((e,t)=>({selection:e,idx:t})).sort((t,n)=>e.Range$1.compareRangesUsingStarts(t.selection,n.selection));for(let{selection:s,idx:b}of y){let ee=lS.adjustSelection(f,s,r,0),te=lS.adjustSelection(f,s,0,i);g!==f.getValueInRange(ee)&&(ee=s),_!==f.getValueInRange(te)&&(te=s);let ne=s.setStartPosition(ee.startLineNumber,ee.startColumn).setEndPosition(te.endLineNumber,te.endColumn),re=new Sl().parse(n,!0,a),ie=ne.getStartPosition(),ae=lS.adjustWhitespace(f,ie,o||b>0&&v!==f.getLineFirstNonWhitespaceColumn(s.positionLineNumber),re);re.resolveVariables(new $x([m,new nS(h,b,y.length,t.getOption(79)===`spread`),new eS(f,s,b,c),new rS(f,s,l),new iS,new aS(p),new oS])),u[b]=e.EditOperation.replace(ne,re.toString()),u[b].identifier={major:b,minor:0},u[b]._isTracked=!0,d[b]=new uS(t,re,ae)}return{edits:u,snippets:d}}static createEditsAndSnippetsFromEdits(t,n,r,i,a,o,s){if(!t.hasModel()||n.length===0)return{edits:[],snippets:[]};let c=[],l=t.getModel(),u=new Sl,d=new xl,f=new $x([t.invokeWithinContext(t=>new tS(t.get(e.ILabelService),l)),new nS(()=>a,0,t.getSelections().length,t.getOption(79)===`spread`),new eS(l,t.getSelection(),0,o),new rS(l,t.getSelection(),s),new iS,new aS(t.invokeWithinContext(t=>t.get(e.IWorkspaceContextService))),new oS]);n=n.sort((t,n)=>e.Range$1.compareRangesUsingStarts(t.range,n.range));let p=0;for(let t=0;t<n.length;t++){let{range:r,template:i}=n[t];if(t>0){let i=n[t-1].range,a=e.Range$1.fromPositions(i.getEndPosition(),r.getStartPosition()),o=new pl(l.getValueInRange(a));d.appendChild(o),p+=o.value.length}let a=u.parseFragment(i,d);lS.adjustWhitespace(l,r.getStartPosition(),!0,d,new Set(a)),d.resolveVariables(f);let o=d.toString(),s=o.slice(p);p=o.length;let m=e.EditOperation.replace(r,s);m.identifier={major:t,minor:0},m._isTracked=!0,c.push(m)}return u.ensureFinalTabstop(d,r,!0),{edits:c,snippets:[new uS(t,d,``)]}}constructor(e,t,n=dS,r){this._editor=e,this._template=t,this._options=n,this._languageConfigurationService=r,this._templateMerges=[],this._snippets=[]}dispose(){e.dispose(this._snippets)}_logInfo(){return`template="${this._template}", merged_templates="${this._templateMerges.join(` -> `)}"`}insert(){if(!this._editor.hasModel())return;let{edits:t,snippets:n}=typeof this._template==`string`?lS.createEditsAndSnippetsFromSelections(this._editor,this._template,this._options.overwriteBefore,this._options.overwriteAfter,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService):lS.createEditsAndSnippetsFromEdits(this._editor,this._template,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService);this._snippets=n,this._editor.executeEdits(`snippet`,t,t=>{let r=t.filter(e=>!!e.identifier);for(let e=0;e<n.length;e++)n[e].initialize(r[e].textChange);return this._snippets[0].hasPlaceholder?this._move(!0):r.map(t=>e.Selection$1.fromPositions(t.range.getEndPosition()))}),this._editor.revealRange(this._editor.getSelections()[0])}merge(t,n=dS){if(!this._editor.hasModel())return;this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,t]);let{edits:r,snippets:i}=lS.createEditsAndSnippetsFromSelections(this._editor,t,n.overwriteBefore,n.overwriteAfter,!0,n.adjustWhitespace,n.clipboardText,n.overtypingCapturer,this._languageConfigurationService);this._editor.executeEdits(`snippet`,r,t=>{let n=t.filter(e=>!!e.identifier);for(let e=0;e<i.length;e++)i[e].initialize(n[e].textChange);let r=i[0].isTrivialSnippet;if(!r){for(let e of this._snippets)e.merge(i);console.assert(i.length===0)}return this._snippets[0].hasPlaceholder&&!r?this._move(void 0):n.map(t=>e.Selection$1.fromPositions(t.range.getEndPosition()))})}next(){let e=this._move(!0);this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition())}prev(){let e=this._move(!1);this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition())}_move(e){let t=[];for(let n of this._snippets){let r=n.move(e);t.push(...r)}return t}get isAtFirstPlaceholder(){return this._snippets[0].isAtFirstPlaceholder}get isAtLastPlaceholder(){return this._snippets[0].isAtLastPlaceholder}get hasPlaceholder(){return this._snippets[0].hasPlaceholder}get hasChoice(){return this._snippets[0].hasChoice}get activeChoice(){return this._snippets[0].activeChoice}isSelectionWithinPlaceholders(){if(!this.hasPlaceholder)return!1;let t=this._editor.getSelections();if(t.length<this._snippets.length)return!1;let n=new Map;for(let r of this._snippets){let i=r.computePossibleSelections();if(n.size===0)for(let[r,a]of i){a.sort(e.Range$1.compareRangesUsingStarts);for(let e of t)if(a[0].containsRange(e)){n.set(r,[]);break}}if(n.size===0)return!1;n.forEach((e,t)=>{e.push(...i.get(t))})}t.sort(e.Range$1.compareRangesUsingStarts);for(let[r,i]of n){if(i.length!==t.length){n.delete(r);continue}i.sort(e.Range$1.compareRangesUsingStarts);for(let e=0;e<i.length;e++)if(!i[e].containsRange(t[e])){n.delete(r);continue}}return n.size>0}};fS=lS=sS([cS(3,e.ILanguageConfigurationService)],fS);var pS=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},mS=function(e,t){return function(n,r){t(n,r,e)}},hS,gS={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0},_S=class{static{hS=this}static{this.ID=`snippetController2`}static get(e){return e.getContribution(hS.ID)}static{this.InSnippetMode=new e.RawContextKey(`inSnippetMode`,!1,e.localize(`inSnippetMode`,`Whether the editor in current in snippet mode`))}static{this.HasNextTabstop=new e.RawContextKey(`hasNextTabstop`,!1,e.localize(`hasNextTabstop`,`Whether there is a next tab stop when in snippet mode`))}static{this.HasPrevTabstop=new e.RawContextKey(`hasPrevTabstop`,!1,e.localize(`hasPrevTabstop`,`Whether there is a previous tab stop when in snippet mode`))}constructor(t,n,r,i,a){this._editor=t,this._logService=n,this._languageFeaturesService=r,this._languageConfigurationService=a,this._snippetListener=new e.DisposableStore,this._modelVersionId=-1,this._inSnippet=hS.InSnippetMode.bindTo(i),this._hasNextTabstop=hS.HasNextTabstop.bindTo(i),this._hasPrevTabstop=hS.HasPrevTabstop.bindTo(i)}dispose(){this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._session?.dispose(),this._snippetListener.dispose()}insert(e,t){try{this._doInsert(e,t===void 0?gS:{...gS,...t})}catch(t){this.cancel(),this._logService.error(t),this._logService.error(`snippet_error`),this._logService.error(`insert_template=`,e),this._logService.error(`existing_template=`,this._session?this._session._logInfo():`<no_session>`)}}_doInsert(t,n){if(this._editor.hasModel()){if(this._snippetListener.clear(),n.undoStopBefore&&this._editor.getModel().pushStackElement(),this._session&&typeof t!=`string`&&this.cancel(),this._session?(e.assertType(typeof t==`string`),this._session.merge(t,n)):(this._modelVersionId=this._editor.getModel().getAlternativeVersionId(),this._session=new fS(this._editor,t,n,this._languageConfigurationService),this._session.insert()),n.undoStopAfter&&this._editor.getModel().pushStackElement(),this._session?.hasChoice){let t={_debugDisplayName:`snippetChoiceCompletions`,provideCompletionItems:(t,n)=>{if(!this._session||t!==this._editor.getModel()||!e.Position$1.equals(this._editor.getPosition(),n))return;let{activeChoice:r}=this._session;if(!r||r.choice.options.length===0)return;let i=t.getValueInRange(r.range),a=!!r.choice.options.find(e=>e.value===i),o=[];for(let t=0;t<r.choice.options.length;t++){let n=r.choice.options[t];o.push({kind:13,label:n.value,insertText:n.value,sortText:`a`.repeat(t+1),range:r.range,filterText:a?`${i}_${n.value}`:void 0,command:{id:`jumpToNextSnippetPlaceholder`,title:e.localize(`next`,`Go to next placeholder...`)}})}return{suggestions:o}}},n=this._editor.getModel(),r,i=!1;this._choiceCompletions={provider:t,enable:()=>{i||=(r=this._languageFeaturesService.completionProvider.register({language:n.getLanguageId(),pattern:n.uri.fsPath,scheme:n.uri.scheme,exclusive:!0},t),this._snippetListener.add(r),!0)},disable:()=>{r?.dispose(),i=!1}}}this._updateState(),this._snippetListener.add(this._editor.onDidChangeModelContent(e=>e.isFlush&&this.cancel())),this._snippetListener.add(this._editor.onDidChangeModel(()=>this.cancel())),this._snippetListener.add(this._editor.onDidChangeCursorSelection(()=>this._updateState()))}}_updateState(){if(!(!this._session||!this._editor.hasModel())){if(this._modelVersionId===this._editor.getModel().getAlternativeVersionId()||!this._session.hasPlaceholder)return this.cancel();if(this._session.isAtLastPlaceholder||!this._session.isSelectionWithinPlaceholders())return this._editor.getModel().pushStackElement(),this.cancel();this._inSnippet.set(!0),this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder),this._hasNextTabstop.set(!this._session.isAtLastPlaceholder),this._handleChoice()}}_handleChoice(){if(!this._session||!this._editor.hasModel()){this._currentChoice=void 0;return}let{activeChoice:e}=this._session;if(!e||!this._choiceCompletions){this._choiceCompletions?.disable(),this._currentChoice=void 0;return}this._currentChoice!==e.choice&&(this._currentChoice=e.choice,this._choiceCompletions.enable(),queueMicrotask(()=>{qx(this._editor,this._choiceCompletions.provider)}))}finish(){for(;this._inSnippet.get();)this.next()}cancel(e=!1){this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._snippetListener.clear(),this._currentChoice=void 0,this._session?.dispose(),this._session=void 0,this._modelVersionId=-1,e&&this._editor.setSelections([this._editor.getSelection()])}prev(){this._session?.prev(),this._updateState()}next(){this._session?.next(),this._updateState()}isInSnippet(){return!!this._inSnippet.get()}};_S=hS=pS([mS(1,e.ILogService),mS(2,e.ILanguageFeaturesService),mS(3,e.IContextKeyService),mS(4,e.ILanguageConfigurationService)],_S),e.registerEditorContribution(_S.ID,_S,4);var vS=e.EditorCommand.bindToContribution(_S.get);e.registerEditorCommand(new vS({id:`jumpToNextSnippetPlaceholder`,precondition:e.ContextKeyExpr.and(_S.InSnippetMode,_S.HasNextTabstop),handler:e=>e.next(),kbOpts:{weight:130,kbExpr:e.EditorContextKeys.textInputFocus,primary:2}})),e.registerEditorCommand(new vS({id:`jumpToPrevSnippetPlaceholder`,precondition:e.ContextKeyExpr.and(_S.InSnippetMode,_S.HasPrevTabstop),handler:e=>e.prev(),kbOpts:{weight:130,kbExpr:e.EditorContextKeys.textInputFocus,primary:1026}})),e.registerEditorCommand(new vS({id:`leaveSnippet`,precondition:_S.InSnippetMode,handler:e=>e.cancel(!0),kbOpts:{weight:130,kbExpr:e.EditorContextKeys.textInputFocus,primary:9,secondary:[1033]}})),e.registerEditorCommand(new vS({id:`acceptSnippet`,precondition:_S.InSnippetMode,handler:e=>e.finish()}));var yS=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},bS=function(e,t){return function(n,r){t(n,r,e)}},xS=class extends e.Disposable{get isAcceptingPartially(){return this._isAcceptingPartially}constructor(t,n,r,i,a,o,s,c,l,u,d,f){super(),this.textModel=t,this.selectedSuggestItem=n,this._textModelVersionId=r,this._positions=i,this._debounceValue=a,this._suggestPreviewEnabled=o,this._suggestPreviewMode=s,this._inlineSuggestMode=c,this._enabled=l,this._instantiationService=u,this._commandService=d,this._languageConfigurationService=f,this._source=this._register(this._instantiationService.createInstance(Ox,this.textModel,this._textModelVersionId,this._debounceValue)),this._isActive=e.observableValue(this,!1),this._forceUpdateExplicitlySignal=e.observableSignal(this),this._selectedInlineCompletionId=e.observableValue(this,void 0),this._primaryPosition=e.derived(this,t=>this._positions.read(t)[0]??new e.Position$1(1,1)),this._isAcceptingPartially=!1,this._preserveCurrentCompletionReasons=new Set([SS.Redo,SS.Undo,SS.AcceptWord]),this._fetchInlineCompletionsPromise=e.derivedHandleChanges({owner:this,createEmptyChangeSummary:()=>({preserveCurrentCompletion:!1,inlineCompletionTriggerKind:e.InlineCompletionTriggerKind.Automatic}),handleChange:(t,n)=>(t.didChange(this._textModelVersionId)&&this._preserveCurrentCompletionReasons.has(this._getReason(t.change))?n.preserveCurrentCompletion=!0:t.didChange(this._forceUpdateExplicitlySignal)&&(n.inlineCompletionTriggerKind=e.InlineCompletionTriggerKind.Explicit),!0)},(t,n)=>{if(this._forceUpdateExplicitlySignal.read(t),!(this._enabled.read(t)&&this.selectedSuggestItem.read(t)||this._isActive.read(t))){this._source.cancelUpdate();return}this._textModelVersionId.read(t);let r=this._source.suggestWidgetInlineCompletions.get(),i=this.selectedSuggestItem.read(t);if(r&&!i){let t=this._source.inlineCompletions.get();e.transaction(e=>{(!t||r.request.versionId>t.request.versionId)&&this._source.inlineCompletions.set(r.clone(),e),this._source.clearSuggestWidgetInlineCompletions(e)})}let a=this._primaryPosition.read(t),o={triggerKind:n.inlineCompletionTriggerKind,selectedSuggestionInfo:i?.toSelectedSuggestionInfo()},s=this.selectedInlineCompletion.get(),c=n.preserveCurrentCompletion||s?.forwardStable?s:void 0;return this._source.fetch(a,o,c)}),this._filteredInlineCompletionItems=e.derivedOpts({owner:this,equalsFn:e.itemsEquals()},e=>{let t=this._source.inlineCompletions.read(e);if(!t)return[];let n=this._primaryPosition.read(e);return t.inlineCompletions.filter(t=>t.isVisible(this.textModel,n,e))}),this.selectedInlineCompletionIndex=e.derived(this,e=>{let t=this._selectedInlineCompletionId.read(e),n=this._filteredInlineCompletionItems.read(e),r=this._selectedInlineCompletionId===void 0?-1:n.findIndex(e=>e.semanticId===t);return r===-1?(this._selectedInlineCompletionId.set(void 0,void 0),0):r}),this.selectedInlineCompletion=e.derived(this,e=>{let t=this._filteredInlineCompletionItems.read(e),n=this.selectedInlineCompletionIndex.read(e);return t[n]}),this.activeCommands=e.derivedOpts({owner:this,equalsFn:e.itemsEquals()},e=>this.selectedInlineCompletion.read(e)?.inlineCompletion.source.inlineCompletions.commands??[]),this.lastTriggerKind=this._source.inlineCompletions.map(this,e=>e?.request.context.triggerKind),this.inlineCompletionsCount=e.derived(this,t=>{if(this.lastTriggerKind.read(t)===e.InlineCompletionTriggerKind.Explicit)return this._filteredInlineCompletionItems.read(t).length}),this.state=e.derivedOpts({owner:this,equalsFn:(e,t)=>!e||!t?e===t:Yb(e.ghostTexts,t.ghostTexts)&&e.inlineCompletion===t.inlineCompletion&&e.suggestItem===t.suggestItem},t=>{let n=this.textModel,r=this.selectedSuggestItem.read(t);if(r){let i=vx(r.toSingleTextEdit(),n),a=this._computeAugmentation(i,t);if(!this._suggestPreviewEnabled.read(t)&&!a)return;let o=a?.edit??i,s=a?a.edit.text.length-i.text.length:0,c=this._suggestPreviewMode.read(t),l=this._positions.read(t),u=[o,...CS(this.textModel,l,o)],d=u.map((e,t)=>bx(e,n,c,l[t],s)).filter(e.isDefined),f=d[0]??new Kb(o.range.endLineNumber,[]);return{edits:u,primaryGhostText:f,ghostTexts:d,inlineCompletion:a?.completion,suggestItem:r}}else{if(!this._isActive.read(t))return;let r=this.selectedInlineCompletion.read(t);if(!r)return;let i=r.toSingleTextEdit(t),a=this._inlineSuggestMode.read(t),o=this._positions.read(t),s=[i,...CS(this.textModel,o,i)],c=s.map((e,t)=>bx(e,n,a,o[t],0)).filter(e.isDefined);return c[0]?{edits:s,primaryGhostText:c[0],ghostTexts:c,inlineCompletion:r,suggestItem:void 0}:void 0}}),this.ghostTexts=e.derivedOpts({owner:this,equalsFn:Yb},e=>{let t=this.state.read(e);if(t)return t.ghostTexts}),this.primaryGhostText=e.derivedOpts({owner:this,equalsFn:Xb},e=>{let t=this.state.read(e);if(t)return t?.primaryGhostText}),this._register(e.recomputeInitiallyAndOnChange(this._fetchInlineCompletionsPromise));let p;this._register(e.autorun(e=>{let t=this.state.read(e)?.inlineCompletion;if(t?.semanticId!==p?.semanticId&&(p=t,t)){let e=t.inlineCompletion,n=e.source;n.provider.handleItemDidShow?.(n.inlineCompletions,e.sourceInlineCompletion,e.insertText)}}))}_getReason(e){return e?.isUndoing?SS.Undo:e?.isRedoing?SS.Redo:this.isAcceptingPartially?SS.AcceptWord:SS.Other}async trigger(e){this._isActive.set(!0,e),await this._fetchInlineCompletionsPromise.get()}async triggerExplicitly(t){e.subtransaction(t,e=>{this._isActive.set(!0,e),this._forceUpdateExplicitlySignal.trigger(e)}),await this._fetchInlineCompletionsPromise.get()}stop(t){e.subtransaction(t,e=>{this._isActive.set(!1,e),this._source.clear(e)})}_computeAugmentation(t,n){let r=this.textModel,i=this._source.suggestWidgetInlineCompletions.read(n),a=i?i.inlineCompletions:[this.selectedInlineCompletion.read(n)].filter(e.isDefined);return e.mapFindFirst(a,i=>{let a=i.toSingleTextEdit(n);return a=vx(a,r,e.Range$1.fromPositions(a.range.getStartPosition(),t.range.getEndPosition())),yx(a,t)?{completion:i,edit:a}:void 0})}async _deltaSelectedInlineCompletionIndex(e){await this.triggerExplicitly();let t=this._filteredInlineCompletionItems.get()||[];if(t.length>0){let n=(this.selectedInlineCompletionIndex.get()+e+t.length)%t.length;this._selectedInlineCompletionId.set(t[n].semanticId,void 0)}else this._selectedInlineCompletionId.set(void 0,void 0)}async next(){await this._deltaSelectedInlineCompletionIndex(1)}async previous(){await this._deltaSelectedInlineCompletionIndex(-1)}async accept(t){if(t.getModel()!==this.textModel)throw new e.BugIndicatingError;let n=this.state.get();if(!n||n.primaryGhostText.isEmpty()||!n.inlineCompletion)return;let r=n.inlineCompletion.toInlineCompletion(void 0);if(r.command&&r.source.addRef(),t.pushUndoStop(),r.snippetInfo)t.executeEdits(`inlineSuggestion.accept`,[e.EditOperation.replace(r.range,``),...r.additionalTextEdits]),t.setPosition(r.snippetInfo.range.getStartPosition(),`inlineCompletionAccept`),_S.get(t)?.insert(r.snippetInfo.snippet,{undoStopBefore:!1});else{let i=n.edits,a=TS(i).map(t=>e.Selection$1.fromPositions(t));t.executeEdits(`inlineSuggestion.accept`,[...i.map(t=>e.EditOperation.replace(t.range,t.text)),...r.additionalTextEdits]),t.setSelections(a,`inlineCompletionAccept`)}this.stop(),r.command&&(await this._commandService.executeCommand(r.command.id,...r.command.arguments||[]).then(void 0,e.onUnexpectedExternalError),r.source.removeRef())}async acceptNextWord(e){await this._acceptNext(e,(e,t)=>{let n=this.textModel.getLanguageIdAtPosition(e.lineNumber,e.column),r=this._languageConfigurationService.getLanguageConfiguration(n),i=new RegExp(r.wordDefinition.source,r.wordDefinition.flags.replace(`g`,``)),a=t.match(i),o=0;o=a&&a.index!==void 0?a.index===0?a[0].length:a.index:t.length;let s=/\s+/g.exec(t);return s&&s.index!==void 0&&s.index+s[0].length<o&&(o=s.index+s[0].length),o},0)}async acceptNextLine(e){await this._acceptNext(e,(e,t)=>{let n=t.match(/\n/);return n&&n.index!==void 0?n.index+1:t.length},1)}async _acceptNext(t,n,r){if(t.getModel()!==this.textModel)throw new e.BugIndicatingError;let i=this.state.get();if(!i||i.primaryGhostText.isEmpty()||!i.inlineCompletion)return;let a=i.primaryGhostText,o=i.inlineCompletion.toInlineCompletion(void 0);if(o.snippetInfo||o.filterText!==o.insertText){await this.accept(t);return}let s=a.parts[0],c=new e.Position$1(a.lineNumber,s.column),l=s.text,u=n(c,l);if(u===l.length&&a.parts.length===1){this.accept(t);return}let d=l.substring(0,u),f=this._positions.get(),p=f[0];o.source.addRef();try{this._isAcceptingPartially=!0;try{t.pushUndoStop();let n=e.Range$1.fromPositions(p,c),r=t.getModel().getValueInRange(n)+d,i=new e.SingleTextEdit(n,r),a=[i,...CS(this.textModel,f,i)],o=TS(a).map(t=>e.Selection$1.fromPositions(t));t.executeEdits(`inlineSuggestion.accept`,a.map(t=>e.EditOperation.replace(t.range,t.text))),t.setSelections(o,`inlineCompletionPartialAccept`),t.revealPositionInCenterIfOutsideViewport(t.getPosition(),1)}finally{this._isAcceptingPartially=!1}if(o.source.provider.handlePartialAccept){let n=e.Range$1.fromPositions(o.range.getStartPosition(),e.TextLength.ofText(d).addToPosition(c)),i=t.getModel().getValueInRange(n,1);o.source.provider.handlePartialAccept(o.source.inlineCompletions,o.sourceInlineCompletion,i.length,{kind:r})}}finally{o.source.removeRef()}}handleSuggestAccepted(e){let t=vx(e.toSingleTextEdit(),this.textModel),n=this._computeAugmentation(t,void 0);if(!n)return;let r=n.completion.inlineCompletion;r.source.provider.handlePartialAccept?.(r.source.inlineCompletions,r.sourceInlineCompletion,t.text.length,{kind:2})}};xS=yS([bS(9,e.IInstantiationService),bS(10,e.ICommandService),bS(11,e.ILanguageConfigurationService)],xS);var SS;(function(e){e[e.Undo=0]=`Undo`,e[e.Redo=1]=`Redo`,e[e.AcceptWord=2]=`AcceptWord`,e[e.Other=3]=`Other`})(SS||={});function CS(t,n,r){if(n.length===1)return[];let i=n[0],a=n.slice(1),o=r.range.getStartPosition(),s=r.range.getEndPosition(),c=t.getValueInRange(e.Range$1.fromPositions(i,s)),l=nx(i,o);if(l.lineNumber<1)return e.onUnexpectedError(new e.BugIndicatingError(`positionWithinTextEdit line number should be bigger than 0.
Invalid subtraction between ${i.toString()} and ${o.toString()}`)),[];let u=wS(r.text,l);return a.map(n=>{let r=tx(nx(n,o),s),i=t.getValueInRange(e.Range$1.fromPositions(n,r)),a=e.commonPrefixLength(c,i),l=e.Range$1.fromPositions(n,n.delta(0,a));return new e.SingleTextEdit(l,u)})}function wS(t,n){let r=``,i=e.splitLinesIncludeSeparators(t);for(let e=n.lineNumber-1;e<i.length;e++)r+=i[e].substring(e===n.lineNumber-1?n.column-1:0);return r}function TS(t){let n=e.Permutation.createSortPermutation(t,e.compareBy(e=>e.range,e.Range$1.compareRangesUsingStarts)),r=new e.TextEdit(n.apply(t)).getNewRanges();return n.inverse().apply(r).map(e=>e.getEndPosition())}var ES=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},DS=function(e,t){return function(n,r){t(n,r,e)}},OS,kS=class{constructor(e){this.name=e}select(e,t,n){if(n.length===0)return 0;let r=n[0].score[0];for(let e=0;e<n.length;e++){let{score:t,completion:i}=n[e];if(t[0]!==r)break;if(i.preselect)return e}return 0}},AS=class extends kS{constructor(){super(`first`)}memorize(e,t,n){}toJSON(){}fromJSON(){}},jS=class extends kS{constructor(){super(`recentlyUsed`),this._cache=new e.LRUCache(300,.66),this._seq=0}memorize(e,t,n){let r=`${e.getLanguageId()}/${n.textLabel}`;this._cache.set(r,{touch:this._seq++,type:n.completion.kind,insertText:n.completion.insertText})}select(e,t,n){if(n.length===0)return 0;let r=e.getLineContent(t.lineNumber).substr(t.column-10,t.column-1);if(/\s$/.test(r))return super.select(e,t,n);let i=n[0].score[0],a=-1,o=-1,s=-1;for(let t=0;t<n.length&&n[t].score[0]===i;t++){let r=`${e.getLanguageId()}/${n[t].textLabel}`,i=this._cache.peek(r);if(i&&i.touch>s&&i.type===n[t].completion.kind&&i.insertText===n[t].completion.insertText&&(s=i.touch,o=t),n[t].completion.preselect&&a===-1)return a=t}return o===-1?a===-1?0:a:o}toJSON(){return this._cache.toJSON()}fromJSON(t){this._cache.clear();for(let[n,r]of t)r.touch=0,r.type=typeof r.type==`number`?r.type:e.CompletionItemKinds.fromString(r.type),this._cache.set(n,r);this._seq=this._cache.size}},MS=class extends kS{constructor(){super(`recentlyUsedByPrefix`),this._trie=e.TernarySearchTree.forStrings(),this._seq=0}memorize(e,t,n){let{word:r}=e.getWordUntilPosition(t),i=`${e.getLanguageId()}/${r}`;this._trie.set(i,{type:n.completion.kind,insertText:n.completion.insertText,touch:this._seq++})}select(e,t,n){let{word:r}=e.getWordUntilPosition(t);if(!r)return super.select(e,t,n);let i=`${e.getLanguageId()}/${r}`,a=this._trie.get(i);if(a||=this._trie.findSubstr(i),a)for(let e=0;e<n.length;e++){let{kind:t,insertText:r}=n[e].completion;if(t===a.type&&r===a.insertText)return e}return super.select(e,t,n)}toJSON(){let e=[];return this._trie.forEach((t,n)=>e.push([n,t])),e.sort((e,t)=>-(e[1].touch-t[1].touch)).forEach((e,t)=>e[1].touch=t),e.slice(0,200)}fromJSON(t){if(this._trie.clear(),t.length>0){this._seq=t[0][1].touch+1;for(let[n,r]of t)r.type=typeof r.type==`number`?r.type:e.CompletionItemKinds.fromString(r.type),this._trie.set(n,r)}}},NS=class{static{OS=this}static{this._strategyCtors=new Map([[`recentlyUsedByPrefix`,MS],[`recentlyUsed`,jS],[`first`,AS]])}static{this._storagePrefix=`suggest/memories`}constructor(t,n){this._storageService=t,this._configService=n,this._disposables=new e.DisposableStore,this._persistSoon=new e.RunOnceScheduler(()=>this._saveState(),500),this._disposables.add(t.onWillSaveState(t=>{t.reason===e.WillSaveStateReason.SHUTDOWN&&this._saveState()}))}dispose(){this._disposables.dispose(),this._persistSoon.dispose()}memorize(e,t,n){this._withStrategy(e,t).memorize(e,t,n),this._persistSoon.schedule()}select(e,t,n){return this._withStrategy(e,t).select(e,t,n)}_withStrategy(e,t){let n=this._configService.getValue(`editor.suggestSelection`,{overrideIdentifier:e.getLanguageIdAtPosition(t.lineNumber,t.column),resource:e.uri});if(this._strategy?.name!==n){this._saveState(),this._strategy=new((OS._strategyCtors.get(n))||AS);try{let e=this._configService.getValue(`editor.suggest.shareSuggestSelections`)?0:1,t=this._storageService.get(`${OS._storagePrefix}/${n}`,e);t&&this._strategy.fromJSON(JSON.parse(t))}catch{}}return this._strategy}_saveState(){if(this._strategy){let e=this._configService.getValue(`editor.suggest.shareSuggestSelections`)?0:1,t=JSON.stringify(this._strategy);this._storageService.store(`${OS._storagePrefix}/${this._strategy.name}`,t,e,1)}}};NS=OS=ES([DS(0,e.IStorageService),DS(1,e.IConfigurationService)],NS);const PS=e.createDecorator(`ISuggestMemories`);e.registerSingleton(PS,NS,1);var FS=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},IS=function(e,t){return function(n,r){t(n,r,e)}},LS,RS=class{static{LS=this}static{this.AtEnd=new e.RawContextKey(`atEndOfWord`,!1)}constructor(e,t){this._editor=e,this._enabled=!1,this._ckAtEnd=LS.AtEnd.bindTo(t),this._configListener=this._editor.onDidChangeConfiguration(e=>e.hasChanged(124)&&this._update()),this._update()}dispose(){this._configListener.dispose(),this._selectionListener?.dispose(),this._ckAtEnd.reset()}_update(){let e=this._editor.getOption(124)===`on`;if(this._enabled!==e)if(this._enabled=e,this._enabled){let e=()=>{if(!this._editor.hasModel()){this._ckAtEnd.set(!1);return}let e=this._editor.getModel(),t=this._editor.getSelection(),n=e.getWordAtPosition(t.getStartPosition());if(!n){this._ckAtEnd.set(!1);return}this._ckAtEnd.set(n.endColumn===t.getStartPosition().column)};this._selectionListener=this._editor.onDidChangeCursorSelection(e),e()}else this._selectionListener&&=(this._ckAtEnd.reset(),this._selectionListener.dispose(),void 0)}};RS=LS=FS([IS(1,e.IContextKeyService)],RS);var zS=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},BS=function(e,t){return function(n,r){t(n,r,e)}},VS,HS=class{static{VS=this}static{this.OtherSuggestions=new e.RawContextKey(`hasOtherSuggestions`,!1)}constructor(e,t){this._editor=e,this._index=0,this._ckOtherSuggestions=VS.OtherSuggestions.bindTo(t)}dispose(){this.reset()}reset(){this._ckOtherSuggestions.reset(),this._listener?.dispose(),this._model=void 0,this._acceptNext=void 0,this._ignore=!1}set({model:e,index:t},n){if(e.items.length===0){this.reset();return}if(VS._moveIndex(!0,e,t)===t){this.reset();return}this._acceptNext=n,this._model=e,this._index=t,this._listener=this._editor.onDidChangeCursorPosition(()=>{this._ignore||this.reset()}),this._ckOtherSuggestions.set(!0)}static _moveIndex(e,t,n){let r=n;for(let i=t.items.length;i>0&&(r=(r+t.items.length+(e?1:-1))%t.items.length,!(r===n||!t.items[r].completion.additionalTextEdits));i--);return r}next(){this._move(!0)}prev(){this._move(!1)}_move(e){if(this._model)try{this._ignore=!0,this._index=VS._moveIndex(e,this._model,this._index),this._acceptNext({index:this._index,item:this._model.items[this._index],model:this._model})}finally{this._ignore=!1}}};HS=VS=zS([BS(1,e.IContextKeyService)],HS);var US=class{constructor(t,n,r,i){this._disposables=new e.DisposableStore,this._disposables.add(r.onDidSuggest(e=>{e.completionModel.items.length===0&&this.reset()})),this._disposables.add(r.onDidCancel(e=>{this.reset()})),this._disposables.add(n.onDidShow(()=>this._onItem(n.getFocusedItem()))),this._disposables.add(n.onDidFocus(this._onItem,this)),this._disposables.add(n.onDidHide(this.reset,this)),this._disposables.add(t.onWillType(e=>{if(this._active&&!n.isFrozen()&&r.state!==0){let n=e.charCodeAt(e.length-1);this._active.acceptCharacters.has(n)&&t.getOption(0)&&i(this._active.item)}}))}_onItem(t){if(!t||!e.isNonEmptyArray(t.item.completion.commitCharacters)){this.reset();return}if(this._active&&this._active.item.item===t.item)return;let n=new e.CharacterSet;for(let e of t.item.completion.commitCharacters)e.length>0&&n.add(e.charCodeAt(0));this._active={acceptCharacters:n,item:t}}reset(){this._active=void 0}dispose(){this._disposables.dispose()}},WS=class t{async provideSelectionRanges(e,n){let r=[];for(let i of n){let n=[];r.push(n);let a=new Map;await new Promise(n=>t._bracketsRightYield(n,0,e,i,a)),await new Promise(r=>t._bracketsLeftYield(r,0,e,i,a,n))}return r}static{this._maxDuration=30}static{this._maxRounds=2}static _bracketsRightYield(n,r,i,a,o){let s=new Map,c=Date.now();for(;;){if(r>=t._maxRounds){n();break}if(!a){n();break}let l=i.bracketPairs.findNextBracket(a);if(!l){n();break}if(Date.now()-c>t._maxDuration){setTimeout(()=>t._bracketsRightYield(n,r+1,i,a,o));break}if(l.bracketInfo.isOpeningBracket){let e=l.bracketInfo.bracketText,t=s.has(e)?s.get(e):0;s.set(e,t+1)}else{let t=l.bracketInfo.getOpeningBrackets()[0].bracketText,n=s.has(t)?s.get(t):0;if(--n,s.set(t,Math.max(0,n)),n<0){let n=o.get(t);n||(n=new e.LinkedList,o.set(t,n)),n.push(l.range)}}a=l.range.getEndPosition()}}static _bracketsLeftYield(n,r,i,a,o,s){let c=new Map,l=Date.now();for(;;){if(r>=t._maxRounds&&o.size===0){n();break}if(!a){n();break}let u=i.bracketPairs.findPrevBracket(a);if(!u){n();break}if(Date.now()-l>t._maxDuration){setTimeout(()=>t._bracketsLeftYield(n,r+1,i,a,o,s));break}if(u.bracketInfo.isOpeningBracket){let n=u.bracketInfo.bracketText,r=c.has(n)?c.get(n):0;if(--r,c.set(n,Math.max(0,r)),r<0){let r=o.get(n);if(r){let a=r.shift();r.size===0&&o.delete(n);let c=e.Range$1.fromPositions(u.range.getEndPosition(),a.getStartPosition()),l=e.Range$1.fromPositions(u.range.getStartPosition(),a.getEndPosition());s.push({range:c}),s.push({range:l}),t._addBracketLeading(i,l,s)}}}else{let e=u.bracketInfo.getOpeningBrackets()[0].bracketText,t=c.has(e)?c.get(e):0;c.set(e,t+1)}a=u.range.getStartPosition()}}static _addBracketLeading(t,n,r){if(n.startLineNumber===n.endLineNumber)return;let i=n.startLineNumber,a=t.getLineFirstNonWhitespaceColumn(i);a!==0&&a!==n.startColumn&&(r.push({range:e.Range$1.fromPositions(new e.Position$1(i,a),n.getEndPosition())}),r.push({range:e.Range$1.fromPositions(new e.Position$1(i,1),n.getEndPosition())}));let o=i-1;if(o>0){let i=t.getLineFirstNonWhitespaceColumn(o);i===n.startColumn&&i!==t.getLineLastNonWhitespaceColumn(o)&&(r.push({range:e.Range$1.fromPositions(new e.Position$1(o,i),n.getEndPosition())}),r.push({range:e.Range$1.fromPositions(new e.Position$1(o,1),n.getEndPosition())}))}}},GS=class t{static{this.None=new class extends t{distance(){return 0}}}static async create(n,r){if(!r.getOption(119).localityBonus||!r.hasModel())return t.None;let i=r.getModel(),a=r.getPosition();if(!n.canComputeWordRanges(i.uri))return t.None;let[o]=await new WS().provideSelectionRanges(i,[a]);if(o.length===0)return t.None;let s=await n.computeWordRanges(i.uri,o[0].range);if(!s)return t.None;let c=i.getWordUntilPosition(a);return delete s[c.word],new class extends t{distance(t,n){if(!a.equals(r.getPosition()))return 0;if(n.kind===17)return 2<<20;let i=typeof n.label==`string`?n.label:n.label.label,c=s[i];if(e.isFalsyOrEmpty(c))return 2<<20;let l=e.binarySearch(c,e.Range$1.fromPositions(t),e.Range$1.compareRangesUsingStarts),u=l>=0?c[l]:c[Math.max(0,~l-1)],d=o.length;for(let t of o){if(!e.Range$1.containsRange(t.range,u))break;--d}return d}}}},KS=class{constructor(e,t){this.leadingLineContent=e,this.characterCountDelta=t}},qS=class t{constructor(n,r,i,a,o,s,c=e.FuzzyScoreOptions.default,l=void 0){this.clipboardText=l,this._snippetCompareFn=t._compareCompletionItems,this._items=n,this._column=r,this._wordDistance=a,this._options=o,this._refilterKind=1,this._lineContext=i,this._fuzzyScoreOptions=c,s===`top`?this._snippetCompareFn=t._compareCompletionItemsSnippetsUp:s===`bottom`&&(this._snippetCompareFn=t._compareCompletionItemsSnippetsDown)}get lineContext(){return this._lineContext}set lineContext(e){(this._lineContext.leadingLineContent!==e.leadingLineContent||this._lineContext.characterCountDelta!==e.characterCountDelta)&&(this._refilterKind=this._lineContext.characterCountDelta<e.characterCountDelta&&this._filteredItems?2:1,this._lineContext=e)}get items(){return this._ensureCachedState(),this._filteredItems}getItemsByProvider(){return this._ensureCachedState(),this._itemsByProvider}getIncompleteProvider(){this._ensureCachedState();let e=new Set;for(let[t,n]of this.getItemsByProvider())n.length>0&&n[0].container.incomplete&&e.add(t);return e}get stats(){return this._ensureCachedState(),this._stats}_ensureCachedState(){this._refilterKind!==0&&this._createCachedState()}_createCachedState(){this._itemsByProvider=new Map;let t=[],{leadingLineContent:n,characterCountDelta:r}=this._lineContext,i=``,a=``,o=this._refilterKind===1?this._items:this._filteredItems,s=[],c=!this._options.filterGraceful||o.length>2e3?e.fuzzyScore:e.fuzzyScoreGracefulAggressive;for(let l=0;l<o.length;l++){let u=o[l];if(u.isInvalid)continue;let d=this._itemsByProvider.get(u.provider);d?d.push(u):this._itemsByProvider.set(u.provider,[u]);let f=u.position.column-u.editStart.column,p=f+r-(u.position.column-this._column);if(i.length!==p&&(i=p===0?``:n.slice(-p),a=i.toLowerCase()),u.word=i,p===0)u.score=e.FuzzyScore.Default;else{let t=0;for(;t<f;){let e=i.charCodeAt(t);if(e===32||e===9)t+=1;else break}if(t>=p)u.score=e.FuzzyScore.Default;else if(typeof u.completion.filterText==`string`){let n=c(i,a,t,u.completion.filterText,u.filterTextLow,0,this._fuzzyScoreOptions);if(!n)continue;e.compareIgnoreCase(u.completion.filterText,u.textLabel)===0?u.score=n:(u.score=e.anyScore(i,a,t,u.textLabel,u.labelLow,0),u.score[0]=n[0])}else{let e=c(i,a,t,u.textLabel,u.labelLow,0,this._fuzzyScoreOptions);if(!e)continue;u.score=e}}u.idx=l,u.distance=this._wordDistance.distance(u.position,u.completion),s.push(u),t.push(u.textLabel.length)}this._filteredItems=s.sort(this._snippetCompareFn),this._refilterKind=0,this._stats={pLabelLen:t.length?e.quickSelect(t.length-.85,t,(e,t)=>e-t):0}}static _compareCompletionItems(e,t){return e.score[0]>t.score[0]?-1:e.score[0]<t.score[0]?1:e.distance<t.distance?-1:e.distance>t.distance?1:e.idx<t.idx?-1:e.idx>t.idx?1:0}static _compareCompletionItemsSnippetsDown(e,n){if(e.completion.kind!==n.completion.kind){if(e.completion.kind===27)return 1;if(n.completion.kind===27)return-1}return t._compareCompletionItems(e,n)}static _compareCompletionItemsSnippetsUp(e,n){if(e.completion.kind!==n.completion.kind){if(e.completion.kind===27)return-1;if(n.completion.kind===27)return 1}return t._compareCompletionItems(e,n)}},JS=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},YS=function(e,t){return function(n,r){t(n,r,e)}},XS,ZS=class{static shouldAutoTrigger(e){if(!e.hasModel())return!1;let t=e.getModel(),n=e.getPosition();t.tokenization.tokenizeIfCheap(n.lineNumber);let r=t.getWordAtPosition(n);return!(!r||r.endColumn!==n.column&&r.startColumn+1!==n.column||!isNaN(Number(r.word)))}constructor(e,t,n){this.leadingLineContent=e.getLineContent(t.lineNumber).substr(0,t.column-1),this.leadingWord=e.getWordUntilPosition(t),this.lineNumber=t.lineNumber,this.column=t.column,this.triggerOptions=n}};function QS(e,t,n){if(!t.getContextKeyValue(Wb.inlineSuggestionVisible.key))return!0;let r=t.getContextKeyValue(Wb.suppressSuggestions.key);return r===void 0?!e.getOption(62).suppressSuggestions:!r}function $S(e,t,n){if(!t.getContextKeyValue(`inlineSuggestionVisible`))return!0;let r=t.getContextKeyValue(Wb.suppressSuggestions.key);return r===void 0?!e.getOption(62).suppressSuggestions:!r}var eC=XS=class{constructor(t,n,r,i,a,o,s,c,l){this._editor=t,this._editorWorkerService=n,this._clipboardService=r,this._telemetryService=i,this._logService=a,this._contextKeyService=o,this._configurationService=s,this._languageFeaturesService=c,this._envService=l,this._toDispose=new e.DisposableStore,this._triggerCharacterListener=new e.DisposableStore,this._triggerQuickSuggest=new e.TimeoutTimer,this._triggerState=void 0,this._completionDisposables=new e.DisposableStore,this._onDidCancel=new e.Emitter$1,this._onDidTrigger=new e.Emitter$1,this._onDidSuggest=new e.Emitter$1,this.onDidCancel=this._onDidCancel.event,this.onDidTrigger=this._onDidTrigger.event,this.onDidSuggest=this._onDidSuggest.event,this._telemetryGate=0,this._currentSelection=this._editor.getSelection()||new e.Selection$1(1,1,1,1),this._toDispose.add(this._editor.onDidChangeModel(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeModelLanguage(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeConfiguration(()=>{this._updateTriggerCharacters()})),this._toDispose.add(this._languageFeaturesService.completionProvider.onDidChange(()=>{this._updateTriggerCharacters(),this._updateActiveSuggestSession()}));let u=!1;this._toDispose.add(this._editor.onDidCompositionStart(()=>{u=!0})),this._toDispose.add(this._editor.onDidCompositionEnd(()=>{u=!1,this._onCompositionEnd()})),this._toDispose.add(this._editor.onDidChangeCursorSelection(e=>{u||this._onCursorChange(e)})),this._toDispose.add(this._editor.onDidChangeModelContent(()=>{!u&&this._triggerState!==void 0&&this._refilterCompletionItems()})),this._updateTriggerCharacters()}dispose(){e.dispose(this._triggerCharacterListener),e.dispose([this._onDidCancel,this._onDidSuggest,this._onDidTrigger,this._triggerQuickSuggest]),this._toDispose.dispose(),this._completionDisposables.dispose(),this.cancel()}_updateTriggerCharacters(){if(this._triggerCharacterListener.clear(),this._editor.getOption(92)||!this._editor.hasModel()||!this._editor.getOption(122))return;let t=new Map;for(let e of this._languageFeaturesService.completionProvider.all(this._editor.getModel()))for(let n of e.triggerCharacters||[]){let r=t.get(n);if(!r){r=new Set;let e=zx();e&&r.add(e),t.set(n,r)}r.add(e)}let n=n=>{if(!$S(this._editor,this._contextKeyService,this._configurationService)||ZS.shouldAutoTrigger(this._editor))return;if(!n){let e=this._editor.getPosition();n=this._editor.getModel().getLineContent(e.lineNumber).substr(0,e.column-1)}let r=``;e.isLowSurrogate(n.charCodeAt(n.length-1))?e.isHighSurrogate(n.charCodeAt(n.length-2))&&(r=n.substr(n.length-2)):r=n.charAt(n.length-1);let i=t.get(r);if(i){let e=new Map;if(this._completionModel)for(let[t,n]of this._completionModel.getItemsByProvider())i.has(t)||e.set(t,n);this.trigger({auto:!0,triggerKind:1,triggerCharacter:r,retrigger:!!this._completionModel,clipboardText:this._completionModel?.clipboardText,completionOptions:{providerFilter:i,providerItemsToReuse:e}})}};this._triggerCharacterListener.add(this._editor.onDidType(n)),this._triggerCharacterListener.add(this._editor.onDidCompositionEnd(()=>n()))}get state(){return this._triggerState?this._triggerState.auto?2:1:0}cancel(e=!1){this._triggerState!==void 0&&(this._triggerQuickSuggest.cancel(),this._requestToken?.cancel(),this._requestToken=void 0,this._triggerState=void 0,this._completionModel=void 0,this._context=void 0,this._onDidCancel.fire({retrigger:e}))}clear(){this._completionDisposables.clear()}_updateActiveSuggestSession(){this._triggerState!==void 0&&(!this._editor.hasModel()||!this._languageFeaturesService.completionProvider.has(this._editor.getModel())?this.cancel():this.trigger({auto:this._triggerState.auto,retrigger:!0}))}_onCursorChange(e){if(!this._editor.hasModel())return;let t=this._currentSelection;if(this._currentSelection=this._editor.getSelection(),!e.selection.isEmpty()||e.reason!==0&&e.reason!==3||e.source!==`keyboard`&&e.source!==`deleteLeft`){this.cancel();return}this._triggerState===void 0&&e.reason===0?(t.containsRange(this._currentSelection)||t.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition()))&&this._doTriggerQuickSuggest():this._triggerState!==void 0&&e.reason===3&&this._refilterCompletionItems()}_onCompositionEnd(){this._triggerState===void 0?this._doTriggerQuickSuggest():this._refilterCompletionItems()}_doTriggerQuickSuggest(){Jx.isAllOff(this._editor.getOption(90))||this._editor.getOption(119).snippetsPreventQuickSuggestions&&_S.get(this._editor)?.isInSnippet()||(this.cancel(),this._triggerQuickSuggest.cancelAndSet(()=>{if(this._triggerState!==void 0||!ZS.shouldAutoTrigger(this._editor)||!this._editor.hasModel()||!this._editor.hasWidgetFocus())return;let e=this._editor.getModel(),t=this._editor.getPosition(),n=this._editor.getOption(90);if(!Jx.isAllOff(n)){if(!Jx.isAllOn(n)){e.tokenization.tokenizeIfCheap(t.lineNumber);let r=e.tokenization.getLineTokens(t.lineNumber),i=r.getStandardTokenType(r.findTokenIndexAtOffset(Math.max(t.column-1-1,0)));if(Jx.valueFor(n,i)!==`on`)return}QS(this._editor,this._contextKeyService,this._configurationService)&&this._languageFeaturesService.completionProvider.has(e)&&this.trigger({auto:!0})}},this._editor.getOption(91)))}_refilterCompletionItems(){e.assertType(this._editor.hasModel()),e.assertType(this._triggerState!==void 0);let t=this._editor.getModel(),n=this._editor.getPosition(),r=new ZS(t,n,{...this._triggerState,refilter:!0});this._onNewContext(r)}trigger(t){if(!this._editor.hasModel())return;let n=this._editor.getModel(),r=new ZS(n,this._editor.getPosition(),t);this.cancel(t.retrigger),this._triggerState=t,this._onDidTrigger.fire({auto:t.auto,shy:t.shy??!1,position:this._editor.getPosition()}),this._context=r;let i={triggerKind:t.triggerKind??0};t.triggerCharacter&&(i={triggerKind:1,triggerCharacter:t.triggerCharacter}),this._requestToken=new e.CancellationTokenSource$1;let a=this._editor.getOption(113),o=1;switch(a){case`top`:o=0;break;case`bottom`:o=2;break}let{itemKind:s,showDeprecated:c}=XS.createSuggestFilter(this._editor),l=new Lx(o,t.completionOptions?.kindFilter??s,t.completionOptions?.providerFilter,t.completionOptions?.providerItemsToReuse,c),u=GS.create(this._editorWorkerService,this._editor),d=Vx(this._languageFeaturesService.completionProvider,n,this._editor.getPosition(),l,i,this._requestToken.token);Promise.all([d,u]).then(async([n,r])=>{if(this._requestToken?.dispose(),!this._editor.hasModel())return;let i=t?.clipboardText;if(!i&&n.needsClipboard&&(i=await this._clipboardService.readText()),this._triggerState===void 0)return;let a=this._editor.getModel(),o=new ZS(a,this._editor.getPosition(),t),s={...e.FuzzyScoreOptions.default,firstMatchCanBeWeak:!this._editor.getOption(119).matchOnWordStartOnly};if(this._completionModel=new qS(n.items,this._context.column,{leadingLineContent:o.leadingLineContent,characterCountDelta:o.column-this._context.column},r,this._editor.getOption(119),this._editor.getOption(113),s,i),this._completionDisposables.add(n.disposable),this._onNewContext(o),this._reportDurationsTelemetry(n.durations),!this._envService.isBuilt||this._envService.isExtensionDevelopment)for(let e of n.items)e.isInvalid&&this._logService.warn(`[suggest] did IGNORE invalid completion item from ${e.provider._debugDisplayName}`,e.completion)}).catch(e.onUnexpectedError)}_reportDurationsTelemetry(e){this._telemetryGate++%230==0&&setTimeout(()=>{this._telemetryService.publicLog2(`suggest.durations.json`,{data:JSON.stringify(e)}),this._logService.debug(`suggest.durations.json`,e)})}static createSuggestFilter(e){let t=new Set;e.getOption(113)===`none`&&t.add(27);let n=e.getOption(119);return n.showMethods||t.add(0),n.showFunctions||t.add(1),n.showConstructors||t.add(2),n.showFields||t.add(3),n.showVariables||t.add(4),n.showClasses||t.add(5),n.showStructs||t.add(6),n.showInterfaces||t.add(7),n.showModules||t.add(8),n.showProperties||t.add(9),n.showEvents||t.add(10),n.showOperators||t.add(11),n.showUnits||t.add(12),n.showValues||t.add(13),n.showConstants||t.add(14),n.showEnums||t.add(15),n.showEnumMembers||t.add(16),n.showKeywords||t.add(17),n.showWords||t.add(18),n.showColors||t.add(19),n.showFiles||t.add(20),n.showReferences||t.add(21),n.showColors||t.add(22),n.showFolders||t.add(23),n.showTypeParameters||t.add(24),n.showSnippets||t.add(27),n.showUsers||t.add(25),n.showIssues||t.add(26),{itemKind:t,showDeprecated:n.showDeprecated}}_onNewContext(t){if(this._context){if(t.lineNumber!==this._context.lineNumber){this.cancel();return}if(e.getLeadingWhitespace(t.leadingLineContent)!==e.getLeadingWhitespace(this._context.leadingLineContent)){this.cancel();return}if(t.column<this._context.column){t.leadingWord.word?this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0}):this.cancel();return}if(this._completionModel){if(t.leadingWord.word.length!==0&&t.leadingWord.startColumn>this._context.leadingWord.startColumn){if(ZS.shouldAutoTrigger(this._editor)&&this._context){let e=this._completionModel.getItemsByProvider();this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerItemsToReuse:e}})}return}if(t.column>this._context.column&&this._completionModel.getIncompleteProvider().size>0&&t.leadingWord.word.length!==0){let e=new Map,t=new Set;for(let[n,r]of this._completionModel.getItemsByProvider())r.length>0&&r[0].container.incomplete?t.add(n):e.set(n,r);this.trigger({auto:this._context.triggerOptions.auto,triggerKind:2,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerFilter:t,providerItemsToReuse:e}})}else{let e=this._completionModel.lineContext,n=!1;if(this._completionModel.lineContext={leadingLineContent:t.leadingLineContent,characterCountDelta:t.column-this._context.column},this._completionModel.items.length===0){let r=ZS.shouldAutoTrigger(this._editor);if(!this._context){this.cancel();return}if(r&&this._context.leadingWord.endColumn<t.leadingWord.startColumn){this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0});return}if(this._context.triggerOptions.auto){this.cancel();return}else if(this._completionModel.lineContext=e,n=this._completionModel.items.length>0,n&&t.leadingWord.word.length===0){this.cancel();return}}this._onDidSuggest.fire({completionModel:this._completionModel,triggerOptions:t.triggerOptions,isFrozen:n})}}}}};eC=XS=JS([YS(1,e.IEditorWorkerService),YS(2,e.IClipboardService),YS(3,e.ITelemetryService),YS(4,e.ILogService),YS(5,e.IContextKeyService),YS(6,e.IConfigurationService),YS(7,e.ILanguageFeaturesService),YS(8,e.IEnvironmentService)],eC);var tC=class t{static{this._maxSelectionLength=51200}constructor(n,r){this._disposables=new e.DisposableStore,this._lastOvertyped=[],this._locked=!1,this._disposables.add(n.onWillType(()=>{if(this._locked||!n.hasModel())return;let e=n.getSelections(),r=e.length,i=!1;for(let t=0;t<r;t++)if(!e[t].isEmpty()){i=!0;break}if(!i){this._lastOvertyped.length!==0&&(this._lastOvertyped.length=0);return}this._lastOvertyped=[];let a=n.getModel();for(let n=0;n<r;n++){let r=e[n];if(a.getValueLengthInRange(r)>t._maxSelectionLength)return;this._lastOvertyped[n]={value:a.getValueInRange(r),multiline:r.startLineNumber!==r.endLineNumber}}})),this._disposables.add(r.onDidTrigger(e=>{this._locked=!0})),this._disposables.add(r.onDidCancel(e=>{this._locked=!1}))}getLastOvertypedInfo(e){if(e>=0&&e<this._lastOvertyped.length)return this._lastOvertyped[e]}dispose(){this._disposables.dispose()}},nC=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},rC=function(e,t){return function(n,r){t(n,r,e)}},iC=class{constructor(t,n,r,i,a){this._menuId=n,this._menuService=i,this._contextKeyService=a,this._menuDisposables=new e.DisposableStore,this.element=e.append(t,e.$(`.suggest-status-bar`));let o=(t=>t instanceof e.MenuItemAction?r.createInstance(e.TextOnlyMenuEntryActionViewItem,t,{useComma:!0}):void 0);this._leftActions=new e.ActionBar(this.element,{actionViewItemProvider:o}),this._rightActions=new e.ActionBar(this.element,{actionViewItemProvider:o}),this._leftActions.domNode.classList.add(`left`),this._rightActions.domNode.classList.add(`right`)}dispose(){this._menuDisposables.dispose(),this._leftActions.dispose(),this._rightActions.dispose(),this.element.remove()}show(){let e=this._menuService.createMenu(this._menuId,this._contextKeyService),t=()=>{let t=[],n=[];for(let[r,i]of e.getActions())r===`left`?t.push(...i):n.push(...i);this._leftActions.clear(),this._leftActions.push(t),this._rightActions.clear(),this._rightActions.push(n)};this._menuDisposables.add(e.onDidChange(()=>t())),this._menuDisposables.add(e)}hide(){this._menuDisposables.clear()}};iC=nC([rC(2,e.IInstantiationService),rC(3,e.IMenuService),rC(4,e.IContextKeyService)],iC);var aC=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},oC=function(e,t){return function(n,r){t(n,r,e)}};function sC(e){return!!e&&!!(e.completion.documentation||e.completion.detail&&e.completion.detail!==e.completion.label)}var cC=class{constructor(t,n){this._editor=t,this._onDidClose=new e.Emitter$1,this.onDidClose=this._onDidClose.event,this._onDidChangeContents=new e.Emitter$1,this.onDidChangeContents=this._onDidChangeContents.event,this._disposables=new e.DisposableStore,this._renderDisposeable=new e.DisposableStore,this._borderWidth=1,this._size=new e.Dimension(330,0),this.domNode=e.$(`.suggest-details`),this.domNode.classList.add(`no-docs`),this._markdownRenderer=n.createInstance(e.MarkdownRenderer,{editor:t}),this._body=e.$(`.body`),this._scrollbar=new e.DomScrollableElement(this._body,{alwaysConsumeMouseWheel:!0}),e.append(this.domNode,this._scrollbar.getDomNode()),this._disposables.add(this._scrollbar),this._header=e.append(this._body,e.$(`.header`)),this._close=e.append(this._header,e.$(`span`+e.ThemeIcon.asCSSSelector(e.Codicon.close))),this._close.title=e.localize(`details.close`,`Close`),this._type=e.append(this._header,e.$(`p.type`)),this._docs=e.append(this._body,e.$(`p.docs`)),this._configureFont(),this._disposables.add(this._editor.onDidChangeConfiguration(e=>{e.hasChanged(50)&&this._configureFont()}))}dispose(){this._disposables.dispose(),this._renderDisposeable.dispose()}_configureFont(){let e=this._editor.getOptions(),t=e.get(50),n=t.getMassagedFontFamily(),r=e.get(120)||t.fontSize,i=e.get(121)||t.lineHeight,a=t.fontWeight,o=`${r}px`,s=`${i}px`;this.domNode.style.fontSize=o,this.domNode.style.lineHeight=`${i/r}`,this.domNode.style.fontWeight=a,this.domNode.style.fontFeatureSettings=t.fontFeatureSettings,this._type.style.fontFamily=n,this._close.style.height=s,this._close.style.width=s}getLayoutInfo(){let e=this._editor.getOption(121)||this._editor.getOption(50).lineHeight,t=this._borderWidth,n=t*2;return{lineHeight:e,borderWidth:t,borderHeight:n,verticalPadding:22,horizontalPadding:14}}renderLoading(){this._type.textContent=e.localize(`loading`,`Loading...`),this._docs.textContent=``,this.domNode.classList.remove(`no-docs`,`no-type`),this.layout(this.size.width,this.getLayoutInfo().lineHeight*2),this._onDidChangeContents.fire(this)}renderItem(t,n){this._renderDisposeable.clear();let{detail:r,documentation:i}=t.completion;if(n){let n=``;n+=`score: ${t.score[0]}\n`,n+=`prefix: ${t.word??`(no prefix)`}\n`,n+=`word: ${t.completion.filterText?t.completion.filterText+` (filterText)`:t.textLabel}\n`,n+=`distance: ${t.distance} (localityBonus-setting)\n`,n+=`index: ${t.idx}, based on ${t.completion.sortText&&`sortText: "${t.completion.sortText}"`||`label`}\n`,n+=`commit_chars: ${t.completion.commitCharacters?.join(``)}\n`,i=new e.MarkdownString().appendCodeblock(`empty`,n),r=`Provider: ${t.provider._debugDisplayName}`}if(!n&&!sC(t)){this.clearContents();return}if(this.domNode.classList.remove(`no-docs`,`no-type`),r){let t=r.length>1e5?`${r.substr(0,1e5)}…`:r;this._type.textContent=t,this._type.title=t,e.show(this._type),this._type.classList.toggle(`auto-wrap`,!/\r?\n^\s+/gim.test(t))}else e.clearNode(this._type),this._type.title=``,e.hide(this._type),this.domNode.classList.add(`no-type`);if(e.clearNode(this._docs),typeof i==`string`)this._docs.classList.remove(`markdown-docs`),this._docs.textContent=i;else if(i){this._docs.classList.add(`markdown-docs`),e.clearNode(this._docs);let t=this._markdownRenderer.render(i);this._docs.appendChild(t.element),this._renderDisposeable.add(t),this._renderDisposeable.add(this._markdownRenderer.onDidRenderAsync(()=>{this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}))}this.domNode.style.userSelect=`text`,this.domNode.tabIndex=-1,this._close.onmousedown=e=>{e.preventDefault(),e.stopPropagation()},this._close.onclick=e=>{e.preventDefault(),e.stopPropagation(),this._onDidClose.fire()},this._body.scrollTop=0,this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}clearContents(){this.domNode.classList.add(`no-docs`),this._type.textContent=``,this._docs.textContent=``}get isEmpty(){return this.domNode.classList.contains(`no-docs`)}get size(){return this._size}layout(t,n){let r=new e.Dimension(t,n);e.Dimension.equals(r,this._size)||(this._size=r,e.size(this.domNode,t,n)),this._scrollbar.scanDomNode()}scrollDown(e=8){this._body.scrollTop+=e}scrollUp(e=8){this._body.scrollTop-=e}scrollTop(){this._body.scrollTop=0}scrollBottom(){this._body.scrollTop=this._body.scrollHeight}pageDown(){this.scrollDown(80)}pageUp(){this.scrollUp(80)}set borderWidth(e){this._borderWidth=e}get borderWidth(){return this._borderWidth}};cC=aC([oC(1,e.IInstantiationService)],cC);var lC=class{constructor(t,n){this.widget=t,this._editor=n,this.allowEditorOverflow=!0,this._disposables=new e.DisposableStore,this._added=!1,this._preferAlignAtTop=!0,this._resizable=new Gp,this._resizable.domNode.classList.add(`suggest-details-container`),this._resizable.domNode.appendChild(t.domNode),this._resizable.enableSashes(!1,!0,!0,!1);let r,i,a=0,o=0;this._disposables.add(this._resizable.onDidWillResize(()=>{r=this._topLeft,i=this._resizable.size})),this._disposables.add(this._resizable.onDidResize(e=>{if(r&&i){this.widget.layout(e.dimension.width,e.dimension.height);let t=!1;e.west&&(o=i.width-e.dimension.width,t=!0),e.north&&(a=i.height-e.dimension.height,t=!0),t&&this._applyTopLeft({top:r.top+a,left:r.left+o})}e.done&&(r=void 0,i=void 0,a=0,o=0,this._userSize=e.dimension)})),this._disposables.add(this.widget.onDidChangeContents(()=>{this._anchorBox&&this._placeAtAnchor(this._anchorBox,this._userSize??this.widget.size,this._preferAlignAtTop)}))}dispose(){this._resizable.dispose(),this._disposables.dispose(),this.hide()}getId(){return`suggest.details`}getDomNode(){return this._resizable.domNode}getPosition(){return this._topLeft?{preference:this._topLeft}:null}show(){this._added||=(this._editor.addOverlayWidget(this),!0)}hide(e=!1){this._resizable.clearSashHoverState(),this._added&&(this._editor.removeOverlayWidget(this),this._added=!1,this._anchorBox=void 0,this._topLeft=void 0),e&&(this._userSize=void 0,this.widget.clearContents())}placeAtAnchor(e,t){this._anchorBox=e.getBoundingClientRect(),this._preferAlignAtTop=t,this._placeAtAnchor(this._anchorBox,this._userSize??this.widget.size,t)}_placeAtAnchor(t,n,r){let i=e.getClientArea(this.getDomNode().ownerDocument.body),a=this.widget.getLayoutInfo(),o=new e.Dimension(220,2*a.lineHeight),s=t.top,c=(function(){let r=i.width-(t.left+t.width+a.borderWidth+a.horizontalPadding),c=-a.borderWidth+t.left+t.width,l=new e.Dimension(r,i.height-t.top-a.borderHeight-a.verticalPadding),u=l.with(void 0,t.top+t.height-a.borderHeight-a.verticalPadding);return{top:s,left:c,fit:r-n.width,maxSizeTop:l,maxSizeBottom:u,minSize:o.with(Math.min(r,o.width))}})(),l=(function(){let r=t.left-a.borderWidth-a.horizontalPadding,c=Math.max(a.horizontalPadding,t.left-n.width-a.borderWidth),l=new e.Dimension(r,i.height-t.top-a.borderHeight-a.verticalPadding),u=l.with(void 0,t.top+t.height-a.borderHeight-a.verticalPadding);return{top:s,left:c,fit:r-n.width,maxSizeTop:l,maxSizeBottom:u,minSize:o.with(Math.min(r,o.width))}})(),u=(function(){let r=t.left,s=-a.borderWidth+t.top+t.height,c=new e.Dimension(t.width-a.borderHeight,i.height-t.top-t.height-a.verticalPadding);return{top:s,left:r,fit:c.height-n.height,maxSizeBottom:c,maxSizeTop:c,minSize:o.with(c.width)}})(),d=[c,l,u],f=d.find(e=>e.fit>=0)??d.sort((e,t)=>t.fit-e.fit)[0],p=t.top+t.height-a.borderHeight,m,h=n.height,g=Math.max(f.maxSizeTop.height,f.maxSizeBottom.height);h>g&&(h=g);let _;r?h<=f.maxSizeTop.height?(m=!0,_=f.maxSizeTop):(m=!1,_=f.maxSizeBottom):h<=f.maxSizeBottom.height?(m=!1,_=f.maxSizeBottom):(m=!0,_=f.maxSizeTop);let{top:v,left:y}=f;!m&&h>t.height&&(v=p-h);let b=this._editor.getDomNode();if(b){let e=b.getBoundingClientRect();v-=e.top,y-=e.left}this._applyTopLeft({left:y,top:v}),this._resizable.enableSashes(!m,f===c,m,f!==c),this._resizable.minSize=f.minSize,this._resizable.maxSize=_,this._resizable.layout(h,Math.min(_.width,n.width)),this.widget.layout(this._resizable.size.width,this._resizable.size.height)}_applyTopLeft(e){this._topLeft=e,this._editor.layoutOverlayWidget(this)}},uC;(function(e){e[e.FILE=0]=`FILE`,e[e.FOLDER=1]=`FOLDER`,e[e.ROOT_FOLDER=2]=`ROOT_FOLDER`})(uC||={});var dC=/(?:\/|^)(?:([^\/]+)\/)?([^\/]+)$/;function fC(t,n,r,i,a){if(e.ThemeIcon.isThemeIcon(a))return[`codicon-${a.id}`,`predefined-file-icon`];if(e.URI.isUri(a))return[];let o=i===uC.ROOT_FOLDER?[`rootfolder-icon`]:i===uC.FOLDER?[`folder-icon`]:[`file-icon`];if(r){let a;if(r.scheme===e.Schemas.data)a=e.DataUri.parseMetaData(r).get(e.DataUri.META_DATA_LABEL);else{let e=r.path.match(dC);e?(a=mC(e[2].toLowerCase()),e[1]&&o.push(`${mC(e[1].toLowerCase())}-name-dir-icon`)):a=mC(r.authority.toLowerCase())}if(i===uC.ROOT_FOLDER)o.push(`${a}-root-name-folder-icon`);else if(i===uC.FOLDER)o.push(`${a}-name-folder-icon`);else{if(a){if(o.push(`${a}-name-file-icon`),o.push(`name-file-icon`),a.length<=255){let e=a.split(`.`);for(let t=1;t<e.length;t++)o.push(`${e.slice(t).join(`.`)}-ext-file-icon`)}o.push(`ext-file-icon`)}let e=pC(t,n,r);e&&o.push(`${mC(e)}-lang-file-icon`)}}return o}function pC(t,n,r){if(!r)return null;let i=null;if(r.scheme===e.Schemas.data){let t=e.DataUri.parseMetaData(r).get(e.DataUri.META_DATA_MIME);t&&(i=n.getLanguageIdByMimeType(t))}else{let e=t.getModel(r);e&&(i=e.getLanguageId())}return i&&i!==`plaintext`?i:n.guessLanguageIdByFilepathOrFirstLine(r)}function mC(e){return e.replace(/[\s]/g,`/`)}var hC=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},gC=function(e,t){return function(n,r){t(n,r,e)}};function _C(e){return`suggest-aria-id:${e}`}var vC=e.registerIcon(`suggest-more-info`,e.Codicon.chevronRight,e.localize(`suggestMoreInfoIcon`,`Icon for more information in the suggest widget.`)),yC=new class e{static{this._regexRelaxed=/(#([\da-fA-F]{3}){1,2}|(rgb|hsl)a\(\s*(\d{1,3}%?\s*,\s*){3}(1|0?\.\d+)\)|(rgb|hsl)\(\s*\d{1,3}%?(\s*,\s*\d{1,3}%?){2}\s*\))/}static{this._regexStrict=RegExp(`^${e._regexRelaxed.source}$`,`i`)}extract(t,n){if(t.textLabel.match(e._regexStrict))return n[0]=t.textLabel,!0;if(t.completion.detail&&t.completion.detail.match(e._regexStrict))return n[0]=t.completion.detail,!0;if(t.completion.documentation){let r=typeof t.completion.documentation==`string`?t.completion.documentation:t.completion.documentation.value,i=e._regexRelaxed.exec(r);if(i&&(i.index===0||i.index+i[0].length===r.length))return n[0]=i[0],!0}return!1}},bC=class{constructor(t,n,r,i){this._editor=t,this._modelService=n,this._languageService=r,this._themeService=i,this._onDidToggleDetails=new e.Emitter$1,this.onDidToggleDetails=this._onDidToggleDetails.event,this.templateId=`suggestion`}dispose(){this._onDidToggleDetails.dispose()}renderTemplate(t){let n=new e.DisposableStore,r=t;r.classList.add(`show-file-icons`);let i=e.append(t,e.$(`.icon`)),a=e.append(i,e.$(`span.colorspan`)),o=e.append(t,e.$(`.contents`)),s=e.append(o,e.$(`.main`)),c=e.append(s,e.$(`.icon-label.codicon`)),l=e.append(s,e.$(`span.left`)),u=e.append(s,e.$(`span.right`)),d=new e.IconLabel(l,{supportHighlights:!0,supportIcons:!0});n.add(d);let f=e.append(l,e.$(`span.signature-label`)),p=e.append(l,e.$(`span.qualifier-label`)),m=e.append(u,e.$(`span.details-label`)),h=e.append(u,e.$(`span.readMore`+e.ThemeIcon.asCSSSelector(vC)));return h.title=e.localize(`readMore`,`Read More`),{root:r,left:l,right:u,icon:i,colorspan:a,iconLabel:d,iconContainer:c,parametersLabel:f,qualifierLabel:p,detailsLabel:m,readMore:h,disposables:n,configureFont:()=>{let e=this._editor.getOptions(),t=e.get(50),n=t.getMassagedFontFamily(),a=t.fontFeatureSettings,o=e.get(120)||t.fontSize,c=e.get(121)||t.lineHeight,l=t.fontWeight,u=t.letterSpacing,d=`${o}px`,f=`${c}px`,p=`${u}px`;r.style.fontSize=d,r.style.fontWeight=l,r.style.letterSpacing=p,s.style.fontFamily=n,s.style.fontFeatureSettings=a,s.style.lineHeight=f,i.style.height=f,i.style.width=f,h.style.height=f,h.style.width=f}}}renderElement(t,n,r){r.configureFont();let{completion:i}=t;r.root.id=_C(n),r.colorspan.style.backgroundColor=``;let a={labelEscapeNewLines:!0,matches:e.createMatches(t.score)},o=[];if(i.kind===19&&yC.extract(t,o))r.icon.className=`icon customcolor`,r.iconContainer.className=`icon hide`,r.colorspan.style.backgroundColor=o[0];else if(i.kind===20&&this._themeService.getFileIconTheme().hasFileIcons){r.icon.className=`icon hide`,r.iconContainer.className=`icon hide`;let n=fC(this._modelService,this._languageService,e.URI.from({scheme:`fake`,path:t.textLabel}),uC.FILE),o=fC(this._modelService,this._languageService,e.URI.from({scheme:`fake`,path:i.detail}),uC.FILE);a.extraClasses=n.length>o.length?n:o}else i.kind===23&&this._themeService.getFileIconTheme().hasFolderIcons?(r.icon.className=`icon hide`,r.iconContainer.className=`icon hide`,a.extraClasses=[fC(this._modelService,this._languageService,e.URI.from({scheme:`fake`,path:t.textLabel}),uC.FOLDER),fC(this._modelService,this._languageService,e.URI.from({scheme:`fake`,path:i.detail}),uC.FOLDER)].flat()):(r.icon.className=`icon hide`,r.iconContainer.className=``,r.iconContainer.classList.add(`suggest-icon`,...e.ThemeIcon.asClassNameArray(e.CompletionItemKinds.toIcon(i.kind))));i.tags&&i.tags.indexOf(1)>=0&&(a.extraClasses=(a.extraClasses||[]).concat([`deprecated`]),a.matches=[]),r.iconLabel.setLabel(t.textLabel,void 0,a),typeof i.label==`string`?(r.parametersLabel.textContent=``,r.detailsLabel.textContent=xC(i.detail||``),r.root.classList.add(`string-label`)):(r.parametersLabel.textContent=xC(i.label.detail||``),r.detailsLabel.textContent=xC(i.label.description||``),r.root.classList.remove(`string-label`)),this._editor.getOption(119).showInlineDetails?e.show(r.detailsLabel):e.hide(r.detailsLabel),sC(t)?(r.right.classList.add(`can-expand-details`),e.show(r.readMore),r.readMore.onmousedown=e=>{e.stopPropagation(),e.preventDefault()},r.readMore.onclick=e=>{e.stopPropagation(),e.preventDefault(),this._onDidToggleDetails.fire()}):(r.right.classList.remove(`can-expand-details`),e.hide(r.readMore),r.readMore.onmousedown=null,r.readMore.onclick=null)}disposeTemplate(e){e.disposables.dispose()}};bC=hC([gC(1,e.IModelService),gC(2,e.ILanguageService),gC(3,e.IThemeService)],bC);function xC(e){return e.replace(/\r\n|\r|\n/g,``)}var SC=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},CC=function(e,t){return function(n,r){t(n,r,e)}},wC;e.registerColor(`editorSuggestWidget.background`,e.editorWidgetBackground,e.localize(`editorSuggestWidgetBackground`,`Background color of the suggest widget.`)),e.registerColor(`editorSuggestWidget.border`,e.editorWidgetBorder,e.localize(`editorSuggestWidgetBorder`,`Border color of the suggest widget.`));var TC=e.registerColor(`editorSuggestWidget.foreground`,e.editorForeground,e.localize(`editorSuggestWidgetForeground`,`Foreground color of the suggest widget.`));e.registerColor(`editorSuggestWidget.selectedForeground`,e.quickInputListFocusForeground,e.localize(`editorSuggestWidgetSelectedForeground`,`Foreground color of the selected entry in the suggest widget.`)),e.registerColor(`editorSuggestWidget.selectedIconForeground`,e.quickInputListFocusIconForeground,e.localize(`editorSuggestWidgetSelectedIconForeground`,`Icon foreground color of the selected entry in the suggest widget.`));const EC=e.registerColor(`editorSuggestWidget.selectedBackground`,e.quickInputListFocusBackground,e.localize(`editorSuggestWidgetSelectedBackground`,`Background color of the selected entry in the suggest widget.`));e.registerColor(`editorSuggestWidget.highlightForeground`,e.listHighlightForeground,e.localize(`editorSuggestWidgetHighlightForeground`,`Color of the match highlights in the suggest widget.`)),e.registerColor(`editorSuggestWidget.focusHighlightForeground`,e.listFocusHighlightForeground,e.localize(`editorSuggestWidgetFocusHighlightForeground`,`Color of the match highlights in the suggest widget when an item is focused.`)),e.registerColor(`editorSuggestWidgetStatus.foreground`,e.transparent(TC,.5),e.localize(`editorSuggestWidgetStatusForeground`,`Foreground color of the suggest widget status.`));var DC=class{constructor(e,t){this._service=e,this._key=`suggestWidget.size/${t.getEditorType()}/${t instanceof zm}`}restore(){let t=this._service.get(this._key,0)??``;try{let n=JSON.parse(t);if(e.Dimension.is(n))return e.Dimension.lift(n)}catch{}}store(e){this._service.store(this._key,JSON.stringify(e),0,1)}reset(){this._service.remove(this._key,0)}},OC=class{static{wC=this}static{this.LOADING_MESSAGE=e.localize(`suggestWidget.loading`,`Loading...`)}static{this.NO_SUGGESTIONS_MESSAGE=e.localize(`suggestWidget.noSuggestions`,`No suggestions.`)}constructor(t,n,r,i,a){this.editor=t,this._storageService=n,this._state=0,this._isAuto=!1,this._pendingLayout=new e.MutableDisposable,this._pendingShowDetails=new e.MutableDisposable,this._ignoreFocusEvents=!1,this._forceRenderingAbove=!1,this._explainMode=!1,this._showTimeout=new e.TimeoutTimer,this._disposables=new e.DisposableStore,this._onDidSelect=new e.PauseableEmitter,this._onDidFocus=new e.PauseableEmitter,this._onDidHide=new e.Emitter$1,this._onDidShow=new e.Emitter$1,this.onDidSelect=this._onDidSelect.event,this.onDidFocus=this._onDidFocus.event,this.onDidHide=this._onDidHide.event,this.onDidShow=this._onDidShow.event,this._onDetailsKeydown=new e.Emitter$1,this.onDetailsKeyDown=this._onDetailsKeydown.event,this.element=new Gp,this.element.domNode.classList.add(`editor-widget`,`suggest-widget`),this._contentWidget=new kC(this,t),this._persistedSize=new DC(n,t);class o{constructor(e,t,n=!1,r=!1){this.persistedSize=e,this.currentSize=t,this.persistHeight=n,this.persistWidth=r}}let s;this._disposables.add(this.element.onDidWillResize(()=>{this._contentWidget.lockPreference(),s=new o(this._persistedSize.restore(),this.element.size)})),this._disposables.add(this.element.onDidResize(t=>{if(this._resize(t.dimension.width,t.dimension.height),s&&(s.persistHeight=s.persistHeight||!!t.north||!!t.south,s.persistWidth=s.persistWidth||!!t.east||!!t.west),t.done){if(s){let{itemHeight:t,defaultSize:n}=this.getLayoutInfo(),r=Math.round(t/2),{width:i,height:a}=this.element.size;(!s.persistHeight||Math.abs(s.currentSize.height-a)<=r)&&(a=s.persistedSize?.height??n.height),(!s.persistWidth||Math.abs(s.currentSize.width-i)<=r)&&(i=s.persistedSize?.width??n.width),this._persistedSize.store(new e.Dimension(i,a))}this._contentWidget.unlockPreference(),s=void 0}})),this._messageElement=e.append(this.element.domNode,e.$(`.message`)),this._listElement=e.append(this.element.domNode,e.$(`.tree`));let c=this._disposables.add(a.createInstance(cC,this.editor));c.onDidClose(this.toggleDetails,this,this._disposables),this._details=new lC(c,this.editor);let l=()=>this.element.domNode.classList.toggle(`no-icons`,!this.editor.getOption(119).showIcons);l();let u=a.createInstance(bC,this.editor);this._disposables.add(u),this._disposables.add(u.onDidToggleDetails(()=>this.toggleDetails())),this._list=new e.List(`SuggestWidget`,this._listElement,{getHeight:e=>this.getLayoutInfo().itemHeight,getTemplateId:e=>`suggestion`},[u],{alwaysConsumeMouseWheel:!0,useShadows:!1,mouseSupport:!1,multipleSelectionSupport:!1,accessibilityProvider:{getRole:()=>`option`,getWidgetAriaLabel:()=>e.localize(`suggest`,`Suggest`),getWidgetRole:()=>`listbox`,getAriaLabel:t=>{let n=t.textLabel;if(typeof t.completion.label!=`string`){let{detail:r,description:i}=t.completion.label;r&&i?n=e.localize(`label.full`,`{0} {1}, {2}`,n,r,i):r?n=e.localize(`label.detail`,`{0} {1}`,n,r):i&&(n=e.localize(`label.desc`,`{0}, {1}`,n,i))}if(!t.isResolved||!this._isDetailsVisible())return n;let{documentation:r,detail:i}=t.completion,a=e.format(`{0}{1}`,i||``,r?typeof r==`string`?r:r.value:``);return e.localize(`ariaCurrenttSuggestionReadDetails`,`{0}, docs: {1}`,n,a)}}}),this._list.style(e.getListStyles({listInactiveFocusBackground:EC,listInactiveFocusOutline:e.activeContrastBorder})),this._status=a.createInstance(iC,this.element.domNode,Fx);let d=()=>this.element.domNode.classList.toggle(`with-status-bar`,this.editor.getOption(119).showStatusBar);d(),this._disposables.add(i.onDidColorThemeChange(e=>this._onThemeChange(e))),this._onThemeChange(i.getColorTheme()),this._disposables.add(this._list.onMouseDown(e=>this._onListMouseDownOrTap(e))),this._disposables.add(this._list.onTap(e=>this._onListMouseDownOrTap(e))),this._disposables.add(this._list.onDidChangeSelection(e=>this._onListSelection(e))),this._disposables.add(this._list.onDidChangeFocus(e=>this._onListFocus(e))),this._disposables.add(this.editor.onDidChangeCursorSelection(()=>this._onCursorSelectionChanged())),this._disposables.add(this.editor.onDidChangeConfiguration(e=>{e.hasChanged(119)&&(d(),l()),this._completionModel&&(e.hasChanged(50)||e.hasChanged(120)||e.hasChanged(121))&&this._list.splice(0,this._list.length,this._completionModel.items)})),this._ctxSuggestWidgetVisible=Z.Visible.bindTo(r),this._ctxSuggestWidgetDetailsVisible=Z.DetailsVisible.bindTo(r),this._ctxSuggestWidgetMultipleSuggestions=Z.MultipleSuggestions.bindTo(r),this._ctxSuggestWidgetHasFocusedSuggestion=Z.HasFocusedSuggestion.bindTo(r),this._disposables.add(e.addStandardDisposableListener(this._details.widget.domNode,`keydown`,e=>{this._onDetailsKeydown.fire(e)})),this._disposables.add(this.editor.onMouseDown(e=>this._onEditorMouseDown(e)))}dispose(){this._details.widget.dispose(),this._details.dispose(),this._list.dispose(),this._status.dispose(),this._disposables.dispose(),this._loadingTimeout?.dispose(),this._pendingLayout.dispose(),this._pendingShowDetails.dispose(),this._showTimeout.dispose(),this._contentWidget.dispose(),this.element.dispose()}_onEditorMouseDown(e){this._details.widget.domNode.contains(e.target.element)?this._details.widget.domNode.focus():this.element.domNode.contains(e.target.element)&&this.editor.focus()}_onCursorSelectionChanged(){this._state!==0&&this._contentWidget.layout()}_onListMouseDownOrTap(e){e.element===void 0||e.index===void 0||(e.browserEvent.preventDefault(),e.browserEvent.stopPropagation(),this._select(e.element,e.index))}_onListSelection(e){e.elements.length&&this._select(e.elements[0],e.indexes[0])}_select(e,t){let n=this._completionModel;n&&(this._onDidSelect.fire({item:e,index:t,model:n}),this.editor.focus())}_onThemeChange(t){this._details.widget.borderWidth=e.isHighContrast(t.type)?2:1}_onListFocus(t){if(this._ignoreFocusEvents)return;if(!t.elements.length){this._currentSuggestionDetails&&(this._currentSuggestionDetails.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=void 0),this.editor.setAriaOptions({activeDescendant:void 0}),this._ctxSuggestWidgetHasFocusedSuggestion.set(!1);return}if(!this._completionModel)return;this._ctxSuggestWidgetHasFocusedSuggestion.set(!0);let n=t.elements[0],r=t.indexes[0];n!==this._focusedItem&&(this._currentSuggestionDetails?.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=n,this._list.reveal(r),this._currentSuggestionDetails=e.createCancelablePromise(async t=>{let r=e.disposableTimeout(()=>{this._isDetailsVisible()&&this.showDetails(!0)},250),i=t.onCancellationRequested(()=>r.dispose());try{return await n.resolve(t)}finally{r.dispose(),i.dispose()}}),this._currentSuggestionDetails.then(()=>{r>=this._list.length||n!==this._list.element(r)||(this._ignoreFocusEvents=!0,this._list.splice(r,1,[n]),this._list.setFocus([r]),this._ignoreFocusEvents=!1,this._isDetailsVisible()?this.showDetails(!1):this.element.domNode.classList.remove(`docs-side`),this.editor.setAriaOptions({activeDescendant:_C(r)}))}).catch(e.onUnexpectedError)),this._onDidFocus.fire({item:n,index:r,model:this._completionModel})}_setState(t){if(this._state!==t)switch(this._state=t,this.element.domNode.classList.toggle(`frozen`,t===4),this.element.domNode.classList.remove(`message`),t){case 0:e.hide(this._messageElement,this._listElement,this._status.element),this._details.hide(!0),this._status.hide(),this._contentWidget.hide(),this._ctxSuggestWidgetVisible.reset(),this._ctxSuggestWidgetMultipleSuggestions.reset(),this._ctxSuggestWidgetHasFocusedSuggestion.reset(),this._showTimeout.cancel(),this.element.domNode.classList.remove(`visible`),this._list.splice(0,this._list.length),this._focusedItem=void 0,this._cappedHeight=void 0,this._explainMode=!1;break;case 1:this.element.domNode.classList.add(`message`),this._messageElement.textContent=wC.LOADING_MESSAGE,e.hide(this._listElement,this._status.element),e.show(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,e.status(wC.LOADING_MESSAGE);break;case 2:this.element.domNode.classList.add(`message`),this._messageElement.textContent=wC.NO_SUGGESTIONS_MESSAGE,e.hide(this._listElement,this._status.element),e.show(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,e.status(wC.NO_SUGGESTIONS_MESSAGE);break;case 3:e.hide(this._messageElement),e.show(this._listElement,this._status.element),this._show();break;case 4:e.hide(this._messageElement),e.show(this._listElement,this._status.element),this._show();break;case 5:e.hide(this._messageElement),e.show(this._listElement,this._status.element),this._details.show(),this._show();break}}_show(){this._status.show(),this._contentWidget.show(),this._layout(this._persistedSize.restore()),this._ctxSuggestWidgetVisible.set(!0),this._showTimeout.cancelAndSet(()=>{this.element.domNode.classList.add(`visible`),this._onDidShow.fire(this)},100)}showTriggered(t,n){this._state===0&&(this._contentWidget.setPosition(this.editor.getPosition()),this._isAuto=!!t,this._isAuto||(this._loadingTimeout=e.disposableTimeout(()=>this._setState(1),n)))}showSuggestions(t,n,r,i,a){if(this._contentWidget.setPosition(this.editor.getPosition()),this._loadingTimeout?.dispose(),this._currentSuggestionDetails?.cancel(),this._currentSuggestionDetails=void 0,this._completionModel!==t&&(this._completionModel=t),r&&this._state!==2&&this._state!==0){this._setState(4);return}let o=this._completionModel.items.length,s=o===0;if(this._ctxSuggestWidgetMultipleSuggestions.set(o>1),s){this._setState(i?0:2),this._completionModel=void 0;return}this._focusedItem=void 0,this._onDidFocus.pause(),this._onDidSelect.pause();try{this._list.splice(0,this._list.length,this._completionModel.items),this._setState(r?4:3),this._list.reveal(n,0),this._list.setFocus(a?[]:[n])}finally{this._onDidFocus.resume(),this._onDidSelect.resume()}this._pendingLayout.value=e.runAtThisOrScheduleAtNextAnimationFrame(e.getWindow(this.element.domNode),()=>{this._pendingLayout.clear(),this._layout(this.element.size),this._details.widget.domNode.classList.remove(`focused`)})}focusSelected(){this._list.length>0&&this._list.setFocus([0])}selectNextPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageDown(),!0;case 1:return!this._isAuto;default:return this._list.focusNextPage(),!0}}selectNext(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusNext(1,!0),!0}}selectLast(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollBottom(),!0;case 1:return!this._isAuto;default:return this._list.focusLast(),!0}}selectPreviousPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageUp(),!0;case 1:return!this._isAuto;default:return this._list.focusPreviousPage(),!0}}selectPrevious(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusPrevious(1,!0),!1}}selectFirst(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollTop(),!0;case 1:return!this._isAuto;default:return this._list.focusFirst(),!0}}getFocusedItem(){if(this._state!==0&&this._state!==2&&this._state!==1&&this._completionModel&&this._list.getFocus().length>0)return{item:this._list.getFocusedElements()[0],index:this._list.getFocus()[0],model:this._completionModel}}toggleDetailsFocus(){this._state===5?(this._setState(3),this._details.widget.domNode.classList.remove(`focused`)):this._state===3&&this._isDetailsVisible()&&(this._setState(5),this._details.widget.domNode.classList.add(`focused`))}toggleDetails(){this._isDetailsVisible()?(this._pendingShowDetails.clear(),this._ctxSuggestWidgetDetailsVisible.set(!1),this._setDetailsVisible(!1),this._details.hide(),this.element.domNode.classList.remove(`shows-details`)):(sC(this._list.getFocusedElements()[0])||this._explainMode)&&(this._state===3||this._state===5||this._state===4)&&(this._ctxSuggestWidgetDetailsVisible.set(!0),this._setDetailsVisible(!0),this.showDetails(!1))}showDetails(t){this._pendingShowDetails.value=e.runAtThisOrScheduleAtNextAnimationFrame(e.getWindow(this.element.domNode),()=>{this._pendingShowDetails.clear(),this._details.show(),t?this._details.widget.renderLoading():this._details.widget.renderItem(this._list.getFocusedElements()[0],this._explainMode),this._details.widget.isEmpty?this._details.hide():(this._positionDetails(),this.element.domNode.classList.add(`shows-details`)),this.editor.focus()})}toggleExplainMode(){this._list.getFocusedElements()[0]&&(this._explainMode=!this._explainMode,this._isDetailsVisible()?this.showDetails(!1):this.toggleDetails())}resetPersistedSize(){this._persistedSize.reset()}hideWidget(){this._pendingLayout.clear(),this._pendingShowDetails.clear(),this._loadingTimeout?.dispose(),this._setState(0),this._onDidHide.fire(this),this.element.clearSashHoverState();let e=this._persistedSize.restore(),t=Math.ceil(this.getLayoutInfo().itemHeight*4.3);e&&e.height<t&&this._persistedSize.store(e.with(void 0,t))}isFrozen(){return this._state===4}_afterRender(e){if(e===null){this._isDetailsVisible()&&this._details.hide();return}this._state===2||this._state===1||(this._isDetailsVisible()&&!this._details.widget.isEmpty&&this._details.show(),this._positionDetails())}_layout(t){if(!this.editor.hasModel()||!this.editor.getDomNode())return;let n=e.getClientArea(this.element.domNode.ownerDocument.body),r=this.getLayoutInfo();t||=r.defaultSize;let i=t.height,a=t.width;if(this._status.element.style.height=`${r.itemHeight}px`,this._state===2||this._state===1)i=r.itemHeight+r.borderHeight,a=r.defaultSize.width/2,this.element.enableSashes(!1,!1,!1,!1),this.element.minSize=this.element.maxSize=new e.Dimension(a,i),this._contentWidget.setPreference(2);else{let o=n.width-r.borderHeight-2*r.horizontalPadding;a>o&&(a=o);let s=this._completionModel?this._completionModel.stats.pLabelLen*r.typicalHalfwidthCharacterWidth:a,c=r.statusBarHeight+this._list.contentHeight+r.borderHeight,l=r.itemHeight+r.statusBarHeight,u=e.getDomNodePagePosition(this.editor.getDomNode()),d=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),f=u.top+d.top+d.height,p=Math.min(n.height-f-r.verticalPadding,c),m=u.top+d.top-r.verticalPadding,h=Math.min(m,c),g=Math.min(Math.max(h,p)+r.borderHeight,c);i===this._cappedHeight?.capped&&(i=this._cappedHeight.wanted),i<l&&(i=l),i>g&&(i=g),i>p||this._forceRenderingAbove&&m>150?(this._contentWidget.setPreference(1),this.element.enableSashes(!0,!0,!1,!1),g=h):(this._contentWidget.setPreference(2),this.element.enableSashes(!1,!0,!0,!1),g=p),this.element.preferredSize=new e.Dimension(s,r.defaultSize.height),this.element.maxSize=new e.Dimension(o,g),this.element.minSize=new e.Dimension(220,l),this._cappedHeight=i===c?{wanted:this._cappedHeight?.wanted??t.height,capped:i}:void 0}this._resize(a,i)}_resize(e,t){let{width:n,height:r}=this.element.maxSize;e=Math.min(n,e),t=Math.min(r,t);let{statusBarHeight:i}=this.getLayoutInfo();this._list.layout(t-i,e),this._listElement.style.height=`${t-i}px`,this.element.layout(t,e),this._contentWidget.layout(),this._positionDetails()}_positionDetails(){this._isDetailsVisible()&&this._details.placeAtAnchor(this.element.domNode,this._contentWidget.getPosition()?.preference[0]===2)}getLayoutInfo(){let t=this.editor.getOption(50),n=e.clamp(this.editor.getOption(121)||t.lineHeight,8,1e3),r=!this.editor.getOption(119).showStatusBar||this._state===2||this._state===1?0:n,i=this._details.widget.borderWidth,a=2*i;return{itemHeight:n,statusBarHeight:r,borderWidth:i,borderHeight:a,typicalHalfwidthCharacterWidth:t.typicalHalfwidthCharacterWidth,verticalPadding:22,horizontalPadding:14,defaultSize:new e.Dimension(430,r+12*n+a)}}_isDetailsVisible(){return this._storageService.getBoolean(`expandSuggestionDocs`,0,!1)}_setDetailsVisible(e){this._storageService.store(`expandSuggestionDocs`,e,0,0)}forceRenderingAbove(){this._forceRenderingAbove||(this._forceRenderingAbove=!0,this._layout(this._persistedSize.restore()))}stopForceRenderingAbove(){this._forceRenderingAbove=!1}};OC=wC=SC([CC(1,e.IStorageService),CC(2,e.IContextKeyService),CC(3,e.IThemeService),CC(4,e.IInstantiationService)],OC);var kC=class{constructor(e,t){this._widget=e,this._editor=t,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._preferenceLocked=!1,this._added=!1,this._hidden=!1}dispose(){this._added&&(this._added=!1,this._editor.removeContentWidget(this))}getId(){return`editor.widget.suggestWidget`}getDomNode(){return this._widget.element.domNode}show(){this._hidden=!1,this._added||(this._added=!0,this._editor.addContentWidget(this))}hide(){this._hidden||(this._hidden=!0,this.layout())}layout(){this._editor.layoutContentWidget(this)}getPosition(){return this._hidden||!this._position||!this._preference?null:{position:this._position,preference:[this._preference]}}beforeRender(){let{height:t,width:n}=this._widget.element.size,{borderWidth:r,horizontalPadding:i}=this._widget.getLayoutInfo();return new e.Dimension(n+2*r+i,t+2*r)}afterRender(e){this._widget._afterRender(e)}setPreference(e){this._preferenceLocked||(this._preference=e)}lockPreference(){this._preferenceLocked=!0}unlockPreference(){this._preferenceLocked=!1}setPosition(e){this._position=e}},AC=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},jC=function(e,t){return function(n,r){t(n,r,e)}},MC,NC=class{constructor(t,n){if(this._model=t,this._position=n,this._decorationOptions=e.ModelDecorationOptions.register({description:`suggest-line-suffix`,stickiness:1}),t.getLineMaxColumn(n.lineNumber)!==n.column){let r=t.getOffsetAt(n),i=t.getPositionAt(r+1);t.changeDecorations(t=>{this._marker&&t.removeDecoration(this._marker),this._marker=t.addDecoration(e.Range$1.fromPositions(n,i),this._decorationOptions)})}}dispose(){this._marker&&!this._model.isDisposed()&&this._model.changeDecorations(e=>{e.removeDecoration(this._marker),this._marker=void 0})}delta(e){if(this._model.isDisposed()||this._position.lineNumber!==e.lineNumber)return 0;if(this._marker){let t=this._model.getDecorationRange(this._marker);return this._model.getOffsetAt(t.getStartPosition())-this._model.getOffsetAt(e)}else return this._model.getLineMaxColumn(e.lineNumber)-e.column}},PC=class{static{MC=this}static{this.ID=`editor.contrib.suggestController`}static get(e){return e.getContribution(MC.ID)}constructor(t,n,r,i,a,o,s){this._memoryService=n,this._commandService=r,this._contextKeyService=i,this._instantiationService=a,this._logService=o,this._telemetryService=s,this._lineSuffix=new e.MutableDisposable,this._toDispose=new e.DisposableStore,this._selectors=new FC(e=>e.priority),this._onWillInsertSuggestItem=new e.Emitter$1,this.onWillInsertSuggestItem=this._onWillInsertSuggestItem.event,this.editor=t,this.model=a.createInstance(eC,this.editor),this._selectors.register({priority:0,select:(e,t,n)=>this._memoryService.select(e,t,n)});let c=Z.InsertMode.bindTo(i);c.set(t.getOption(119).insertMode),this._toDispose.add(this.model.onDidTrigger(()=>c.set(t.getOption(119).insertMode))),this.widget=this._toDispose.add(new e.WindowIdleValue(e.getWindow(t.getDomNode()),()=>{let t=this._instantiationService.createInstance(OC,this.editor);this._toDispose.add(t),this._toDispose.add(t.onDidSelect(e=>this._insertSuggestion(e,0),this));let n=new US(this.editor,t,this.model,e=>this._insertSuggestion(e,2));this._toDispose.add(n);let r=Z.MakesTextEdit.bindTo(this._contextKeyService),i=Z.HasInsertAndReplaceRange.bindTo(this._contextKeyService),a=Z.CanResolve.bindTo(this._contextKeyService);return this._toDispose.add(e.toDisposable(()=>{r.reset(),i.reset(),a.reset()})),this._toDispose.add(t.onDidFocus(({item:t})=>{let n=this.editor.getPosition(),o=t.editStart.column,s=n.column,c=!0;this.editor.getOption(1)===`smart`&&this.model.state===2&&!t.completion.additionalTextEdits&&!(t.completion.insertTextRules&4)&&s-o===t.completion.insertText.length&&(c=this.editor.getModel().getValueInRange({startLineNumber:n.lineNumber,startColumn:o,endLineNumber:n.lineNumber,endColumn:s})!==t.completion.insertText),r.set(c),i.set(!e.Position$1.equals(t.editInsertEnd,t.editReplaceEnd)),a.set(!!t.provider.resolveCompletionItem||!!t.completion.documentation||t.completion.detail!==t.completion.label)})),this._toDispose.add(t.onDetailsKeyDown(t=>{if(t.toKeyCodeChord().equals(new e.KeyCodeChord(!0,!1,!1,!1,33))||e.isMacintosh&&t.toKeyCodeChord().equals(new e.KeyCodeChord(!1,!1,!1,!0,33))){t.stopPropagation();return}t.toKeyCodeChord().isModifierKey()||this.editor.focus()})),t})),this._overtypingCapturer=this._toDispose.add(new e.WindowIdleValue(e.getWindow(t.getDomNode()),()=>this._toDispose.add(new tC(this.editor,this.model)))),this._alternatives=this._toDispose.add(new e.WindowIdleValue(e.getWindow(t.getDomNode()),()=>this._toDispose.add(new HS(this.editor,this._contextKeyService)))),this._toDispose.add(a.createInstance(RS,t)),this._toDispose.add(this.model.onDidTrigger(e=>{this.widget.value.showTriggered(e.auto,e.shy?250:50),this._lineSuffix.value=new NC(this.editor.getModel(),e.position)})),this._toDispose.add(this.model.onDidSuggest(e=>{if(e.triggerOptions.shy)return;let t=-1;for(let n of this._selectors.itemsOrderedByPriorityDesc)if(t=n.select(this.editor.getModel(),this.editor.getPosition(),e.completionModel.items),t!==-1)break;if(t===-1&&(t=0),this.model.state===0)return;let n=!1;if(e.triggerOptions.auto){let t=this.editor.getOption(119);t.selectionMode===`never`||t.selectionMode===`always`?n=t.selectionMode===`never`:t.selectionMode===`whenTriggerCharacter`?n=e.triggerOptions.triggerKind!==1:t.selectionMode===`whenQuickSuggestion`&&(n=e.triggerOptions.triggerKind===1&&!e.triggerOptions.refilter)}this.widget.value.showSuggestions(e.completionModel,t,e.isFrozen,e.triggerOptions.auto,n)})),this._toDispose.add(this.model.onDidCancel(e=>{e.retrigger||this.widget.value.hideWidget()})),this._toDispose.add(this.editor.onDidBlurEditorWidget(()=>{this.model.cancel(),this.model.clear()}));let l=Z.AcceptSuggestionsOnEnter.bindTo(i),u=()=>{let e=this.editor.getOption(1);l.set(e===`on`||e===`smart`)};this._toDispose.add(this.editor.onDidChangeConfiguration(()=>u())),u()}dispose(){this._alternatives.dispose(),this._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose(),this._onWillInsertSuggestItem.dispose()}_insertSuggestion(t,n){if(!t||!t.item){this._alternatives.value.reset(),this.model.cancel(),this.model.clear();return}if(!this.editor.hasModel())return;let r=_S.get(this.editor);if(!r)return;this._onWillInsertSuggestItem.fire({item:t.item});let i=this.editor.getModel(),a=i.getAlternativeVersionId(),{item:o}=t,s=[],c=new e.CancellationTokenSource$1;n&1||this.editor.pushUndoStop();let l=this.getOverwriteInfo(o,!!(n&8));this._memoryService.memorize(i,this.editor.getPosition(),o);let u=o.isResolved,d=-1,f=-1;if(Array.isArray(o.completion.additionalTextEdits)){this.model.cancel();let t=e.StableEditorScrollState.capture(this.editor);this.editor.executeEdits(`suggestController.additionalTextEdits.sync`,o.completion.additionalTextEdits.map(t=>{let n=e.Range$1.lift(t.range);if(n.startLineNumber===o.position.lineNumber&&n.startColumn>o.position.column){let t=this.editor.getPosition().column-o.position.column,r=t,i=e.Range$1.spansMultipleLines(n)?0:t;n=new e.Range$1(n.startLineNumber,n.startColumn+r,n.endLineNumber,n.endColumn+i)}return e.EditOperation.replaceMove(n,t.text)})),t.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!u){let t=new e.StopWatch,r,a=i.onDidChangeContent(t=>{if(t.isFlush){c.cancel(),a.dispose();return}for(let n of t.changes){let t=e.Range$1.getEndPosition(n.range);(!r||e.Position$1.isBefore(t,r))&&(r=t)}}),l=n;n|=2;let u=!1,d=this.editor.onWillType(()=>{d.dispose(),u=!0,l&2||this.editor.pushUndoStop()});s.push(o.resolve(c.token).then(()=>{if(!o.completion.additionalTextEdits||c.token.isCancellationRequested)return;if(r&&o.completion.additionalTextEdits.some(t=>e.Position$1.isBefore(r,e.Range$1.getStartPosition(t.range))))return!1;u&&this.editor.pushUndoStop();let t=e.StableEditorScrollState.capture(this.editor);return this.editor.executeEdits(`suggestController.additionalTextEdits.async`,o.completion.additionalTextEdits.map(t=>e.EditOperation.replaceMove(e.Range$1.lift(t.range),t.text))),t.restoreRelativeVerticalPositionOfCursor(this.editor),(u||!(l&2))&&this.editor.pushUndoStop(),!0}).then(e=>{this._logService.trace(`[suggest] async resolving of edits DONE (ms, applied?)`,t.elapsed(),e),f=e===!0?1:e===!1?0:-2}).finally(()=>{a.dispose(),d.dispose()}))}let{insertText:p}=o.completion;if(o.completion.insertTextRules&4||(p=Sl.escape(p)),this.model.cancel(),r.insert(p,{overwriteBefore:l.overwriteBefore,overwriteAfter:l.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(o.completion.insertTextRules&1),clipboardText:t.model.clipboardText,overtypingCapturer:this._overtypingCapturer.value}),n&2||this.editor.pushUndoStop(),o.completion.command)if(o.completion.command.id===IC.id)this.model.trigger({auto:!0,retrigger:!0});else{let t=new e.StopWatch;s.push(this._commandService.executeCommand(o.completion.command.id,...o.completion.command.arguments?[...o.completion.command.arguments]:[]).catch(t=>{o.completion.extensionId?e.onUnexpectedExternalError(t):e.onUnexpectedError(t)}).finally(()=>{d=t.elapsed()}))}n&4&&this._alternatives.value.set(t,e=>{for(c.cancel();i.canUndo();){a!==i.getAlternativeVersionId()&&i.undo(),this._insertSuggestion(e,3|(n&8?8:0));break}}),this._alertCompletionItem(o),Promise.all(s).finally(()=>{this._reportSuggestionAcceptedTelemetry(o,i,u,d,f,t.index,t.model.items),this.model.clear(),c.dispose()})}_reportSuggestionAcceptedTelemetry(t,n,r,i,a,o,s){if(Math.floor(Math.random()*100)===0)return;let c=new Map;for(let e=0;e<Math.min(30,s.length);e++){let t=s[e].textLabel;c.has(t)?c.get(t).push(e):c.set(t,[e])}let l=c.get(t.textLabel),u=l&&l.length>1?l[0]:-1;this._telemetryService.publicLog2(`suggest.acceptedSuggestion`,{extensionId:t.extensionId?.value??`unknown`,providerId:t.provider._debugDisplayName??`unknown`,kind:t.completion.kind,basenameHash:e.hash(e.basename(n.uri)).toString(16),languageId:n.getLanguageId(),fileExtension:e.extname(n.uri),resolveInfo:t.provider.resolveCompletionItem?r?1:0:-1,resolveDuration:t.resolveDuration,commandDuration:i,additionalEditsAsync:a,index:o,firstIndex:u})}getOverwriteInfo(t,n){e.assertType(this.editor.hasModel());let r=this.editor.getOption(119).insertMode===`replace`;n&&(r=!r);let i=t.position.column-t.editStart.column,a=(r?t.editReplaceEnd.column:t.editInsertEnd.column)-t.position.column,o=this.editor.getPosition().column-t.position.column,s=this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0;return{overwriteBefore:i+o,overwriteAfter:a+s}}_alertCompletionItem(t){if(e.isNonEmptyArray(t.completion.additionalTextEdits)){let n=e.localize(`aria.alert.snippet`,`Accepting '{0}' made {1} additional edits`,t.textLabel,t.completion.additionalTextEdits.length);e.alert(n)}}triggerSuggest(e,t,n){this.editor.hasModel()&&(this.model.trigger({auto:t??!1,completionOptions:{providerFilter:e,kindFilter:n?new Set:void 0}}),this.editor.revealPosition(this.editor.getPosition(),0),this.editor.focus())}triggerSuggestAndAcceptBest(t){if(!this.editor.hasModel())return;let n=this.editor.getPosition(),r=()=>{n.equals(this.editor.getPosition())&&this._commandService.executeCommand(t.fallback)},i=e=>{if(e.completion.insertTextRules&4||e.completion.additionalTextEdits)return!0;let t=this.editor.getPosition(),n=e.editStart.column,r=t.column;return r-n===e.completion.insertText.length?this.editor.getModel().getValueInRange({startLineNumber:t.lineNumber,startColumn:n,endLineNumber:t.lineNumber,endColumn:r})!==e.completion.insertText:!0};e.Event.once(this.model.onDidTrigger)(t=>{let n=[];e.Event.any(this.model.onDidTrigger,this.model.onDidCancel)(()=>{e.dispose(n),r()},void 0,n),this.model.onDidSuggest(({completionModel:t})=>{if(e.dispose(n),t.items.length===0){r();return}let a=this._memoryService.select(this.editor.getModel(),this.editor.getPosition(),t.items),o=t.items[a];if(!i(o)){r();return}this.editor.pushUndoStop(),this._insertSuggestion({index:a,item:o,model:t},7)},void 0,n)}),this.model.trigger({auto:!1,shy:!0}),this.editor.revealPosition(n,0),this.editor.focus()}acceptSelectedSuggestion(e,t){let n=this.widget.value.getFocusedItem(),r=0;e&&(r|=4),t&&(r|=8),this._insertSuggestion(n,r)}acceptNextSuggestion(){this._alternatives.value.next()}acceptPrevSuggestion(){this._alternatives.value.prev()}cancelSuggestWidget(){this.model.cancel(),this.model.clear(),this.widget.value.hideWidget()}focusSuggestion(){this.widget.value.focusSelected()}selectNextSuggestion(){this.widget.value.selectNext()}selectNextPageSuggestion(){this.widget.value.selectNextPage()}selectLastSuggestion(){this.widget.value.selectLast()}selectPrevSuggestion(){this.widget.value.selectPrevious()}selectPrevPageSuggestion(){this.widget.value.selectPreviousPage()}selectFirstSuggestion(){this.widget.value.selectFirst()}toggleSuggestionDetails(){this.widget.value.toggleDetails()}toggleExplainMode(){this.widget.value.toggleExplainMode()}toggleSuggestionFocus(){this.widget.value.toggleDetailsFocus()}resetWidgetSize(){this.widget.value.resetPersistedSize()}forceRenderingAbove(){this.widget.value.forceRenderingAbove()}stopForceRenderingAbove(){this.widget.isInitialized&&this.widget.value.stopForceRenderingAbove()}registerSelector(e){return this._selectors.register(e)}};PC=MC=AC([jC(1,PS),jC(2,e.ICommandService),jC(3,e.IContextKeyService),jC(4,e.IInstantiationService),jC(5,e.ILogService),jC(6,e.ITelemetryService)],PC);var FC=class{constructor(e){this.prioritySelector=e,this._items=[]}register(e){if(this._items.indexOf(e)!==-1)throw Error(`Value is already registered`);return this._items.push(e),this._items.sort((e,t)=>this.prioritySelector(t)-this.prioritySelector(e)),{dispose:()=>{let t=this._items.indexOf(e);t>=0&&this._items.splice(t,1)}}}get itemsOrderedByPriorityDesc(){return this._items}},IC=class t extends e.EditorAction{static{this.id=`editor.action.triggerSuggest`}constructor(){super({id:t.id,label:e.localize(`suggest.trigger.label`,`Trigger Suggest`),alias:`Trigger Suggest`,precondition:e.ContextKeyExpr.and(e.EditorContextKeys.writable,e.EditorContextKeys.hasCompletionItemProvider,Z.Visible.toNegated()),kbOpts:{kbExpr:e.EditorContextKeys.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[521,2087]},weight:100}})}run(e,t,n){let r=PC.get(t);if(!r)return;let i;n&&typeof n==`object`&&n.auto===!0&&(i=!0),r.triggerSuggest(void 0,i,void 0)}};e.registerEditorContribution(PC.ID,PC,2),e.registerEditorAction(IC);var LC=190,RC=e.EditorCommand.bindToContribution(PC.get);e.registerEditorCommand(new RC({id:`acceptSelectedSuggestion`,precondition:e.ContextKeyExpr.and(Z.Visible,Z.HasFocusedSuggestion),handler(e){e.acceptSelectedSuggestion(!0,!1)},kbOpts:[{primary:2,kbExpr:e.ContextKeyExpr.and(Z.Visible,e.EditorContextKeys.textInputFocus),weight:LC},{primary:3,kbExpr:e.ContextKeyExpr.and(Z.Visible,e.EditorContextKeys.textInputFocus,Z.AcceptSuggestionsOnEnter,Z.MakesTextEdit),weight:LC}],menuOpts:[{menuId:Fx,title:e.localize(`accept.insert`,`Insert`),group:`left`,order:1,when:Z.HasInsertAndReplaceRange.toNegated()},{menuId:Fx,title:e.localize(`accept.insert`,`Insert`),group:`left`,order:1,when:e.ContextKeyExpr.and(Z.HasInsertAndReplaceRange,Z.InsertMode.isEqualTo(`insert`))},{menuId:Fx,title:e.localize(`accept.replace`,`Replace`),group:`left`,order:1,when:e.ContextKeyExpr.and(Z.HasInsertAndReplaceRange,Z.InsertMode.isEqualTo(`replace`))}]})),e.registerEditorCommand(new RC({id:`acceptAlternativeSelectedSuggestion`,precondition:e.ContextKeyExpr.and(Z.Visible,e.EditorContextKeys.textInputFocus,Z.HasFocusedSuggestion),kbOpts:{weight:LC,kbExpr:e.EditorContextKeys.textInputFocus,primary:1027,secondary:[1026]},handler(e){e.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:Fx,group:`left`,order:2,when:e.ContextKeyExpr.and(Z.HasInsertAndReplaceRange,Z.InsertMode.isEqualTo(`insert`)),title:e.localize(`accept.replace`,`Replace`)},{menuId:Fx,group:`left`,order:2,when:e.ContextKeyExpr.and(Z.HasInsertAndReplaceRange,Z.InsertMode.isEqualTo(`replace`)),title:e.localize(`accept.insert`,`Insert`)}]})),e.CommandsRegistry.registerCommandAlias(`acceptSelectedSuggestionOnEnter`,`acceptSelectedSuggestion`),e.registerEditorCommand(new RC({id:`hideSuggestWidget`,precondition:Z.Visible,handler:e=>e.cancelSuggestWidget(),kbOpts:{weight:LC,kbExpr:e.EditorContextKeys.textInputFocus,primary:9,secondary:[1033]}})),e.registerEditorCommand(new RC({id:`selectNextSuggestion`,precondition:e.ContextKeyExpr.and(Z.Visible,e.ContextKeyExpr.or(Z.MultipleSuggestions,Z.HasFocusedSuggestion.negate())),handler:e=>e.selectNextSuggestion(),kbOpts:{weight:LC,kbExpr:e.EditorContextKeys.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})),e.registerEditorCommand(new RC({id:`selectNextPageSuggestion`,precondition:e.ContextKeyExpr.and(Z.Visible,e.ContextKeyExpr.or(Z.MultipleSuggestions,Z.HasFocusedSuggestion.negate())),handler:e=>e.selectNextPageSuggestion(),kbOpts:{weight:LC,kbExpr:e.EditorContextKeys.textInputFocus,primary:12,secondary:[2060]}})),e.registerEditorCommand(new RC({id:`selectLastSuggestion`,precondition:e.ContextKeyExpr.and(Z.Visible,e.ContextKeyExpr.or(Z.MultipleSuggestions,Z.HasFocusedSuggestion.negate())),handler:e=>e.selectLastSuggestion()})),e.registerEditorCommand(new RC({id:`selectPrevSuggestion`,precondition:e.ContextKeyExpr.and(Z.Visible,e.ContextKeyExpr.or(Z.MultipleSuggestions,Z.HasFocusedSuggestion.negate())),handler:e=>e.selectPrevSuggestion(),kbOpts:{weight:LC,kbExpr:e.EditorContextKeys.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})),e.registerEditorCommand(new RC({id:`selectPrevPageSuggestion`,precondition:e.ContextKeyExpr.and(Z.Visible,e.ContextKeyExpr.or(Z.MultipleSuggestions,Z.HasFocusedSuggestion.negate())),handler:e=>e.selectPrevPageSuggestion(),kbOpts:{weight:LC,kbExpr:e.EditorContextKeys.textInputFocus,primary:11,secondary:[2059]}})),e.registerEditorCommand(new RC({id:`selectFirstSuggestion`,precondition:e.ContextKeyExpr.and(Z.Visible,e.ContextKeyExpr.or(Z.MultipleSuggestions,Z.HasFocusedSuggestion.negate())),handler:e=>e.selectFirstSuggestion()})),e.registerEditorCommand(new RC({id:`focusSuggestion`,precondition:e.ContextKeyExpr.and(Z.Visible,Z.HasFocusedSuggestion.negate()),handler:e=>e.focusSuggestion(),kbOpts:{weight:LC,kbExpr:e.EditorContextKeys.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}}})),e.registerEditorCommand(new RC({id:`focusAndAcceptSuggestion`,precondition:e.ContextKeyExpr.and(Z.Visible,Z.HasFocusedSuggestion.negate()),handler:e=>{e.focusSuggestion(),e.acceptSelectedSuggestion(!0,!1)}})),e.registerEditorCommand(new RC({id:`toggleSuggestionDetails`,precondition:e.ContextKeyExpr.and(Z.Visible,Z.HasFocusedSuggestion),handler:e=>e.toggleSuggestionDetails(),kbOpts:{weight:LC,kbExpr:e.EditorContextKeys.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}},menuOpts:[{menuId:Fx,group:`right`,order:1,when:e.ContextKeyExpr.and(Z.DetailsVisible,Z.CanResolve),title:e.localize(`detail.more`,`Show Less`)},{menuId:Fx,group:`right`,order:1,when:e.ContextKeyExpr.and(Z.DetailsVisible.toNegated(),Z.CanResolve),title:e.localize(`detail.less`,`Show More`)}]})),e.registerEditorCommand(new RC({id:`toggleExplainMode`,precondition:Z.Visible,handler:e=>e.toggleExplainMode(),kbOpts:{weight:100,primary:2138}})),e.registerEditorCommand(new RC({id:`toggleSuggestionFocus`,precondition:Z.Visible,handler:e=>e.toggleSuggestionFocus(),kbOpts:{weight:LC,kbExpr:e.EditorContextKeys.textInputFocus,primary:2570,mac:{primary:778}}})),e.registerEditorCommand(new RC({id:`insertBestCompletion`,precondition:e.ContextKeyExpr.and(e.EditorContextKeys.textInputFocus,e.ContextKeyExpr.equals(`config.editor.tabCompletion`,`on`),RS.AtEnd,Z.Visible.toNegated(),HS.OtherSuggestions.toNegated(),_S.InSnippetMode.toNegated()),handler:(t,n)=>{t.triggerSuggestAndAcceptBest(e.isObject(n)?{fallback:`tab`,...n}:{fallback:`tab`})},kbOpts:{weight:LC,primary:2}})),e.registerEditorCommand(new RC({id:`insertNextSuggestion`,precondition:e.ContextKeyExpr.and(e.EditorContextKeys.textInputFocus,e.ContextKeyExpr.equals(`config.editor.tabCompletion`,`on`),HS.OtherSuggestions,Z.Visible.toNegated(),_S.InSnippetMode.toNegated()),handler:e=>e.acceptNextSuggestion(),kbOpts:{weight:LC,kbExpr:e.EditorContextKeys.textInputFocus,primary:2}})),e.registerEditorCommand(new RC({id:`insertPrevSuggestion`,precondition:e.ContextKeyExpr.and(e.EditorContextKeys.textInputFocus,e.ContextKeyExpr.equals(`config.editor.tabCompletion`,`on`),HS.OtherSuggestions,Z.Visible.toNegated(),_S.InSnippetMode.toNegated()),handler:e=>e.acceptPrevSuggestion(),kbOpts:{weight:LC,kbExpr:e.EditorContextKeys.textInputFocus,primary:1026}})),e.registerEditorAction(class extends e.EditorAction{constructor(){super({id:`editor.action.resetSuggestSize`,label:e.localize(`suggest.reset.label`,`Reset Suggest Widget Size`),alias:`Reset Suggest Widget Size`,precondition:void 0})}run(e,t){PC.get(t)?.resetWidgetSize()}});var zC=class extends e.Disposable{get selectedItem(){return this._currentSuggestItemInfo}constructor(t,n,r){super(),this.editor=t,this.suggestControllerPreselector=n,this.onWillAccept=r,this.isSuggestWidgetVisible=!1,this.isShiftKeyPressed=!1,this._isActive=!1,this._currentSuggestItemInfo=void 0,this._onDidSelectedItemChange=this._register(new e.Emitter$1),this.onDidSelectedItemChange=this._onDidSelectedItemChange.event,this._register(t.onKeyDown(e=>{e.shiftKey&&!this.isShiftKeyPressed&&(this.isShiftKeyPressed=!0,this.update(this._isActive))})),this._register(t.onKeyUp(e=>{e.shiftKey&&this.isShiftKeyPressed&&(this.isShiftKeyPressed=!1,this.update(this._isActive))}));let i=PC.get(this.editor);if(i){this._register(i.registerSelector({priority:100,select:(t,n,r)=>{let a=this.editor.getModel();if(!a)return-1;let o=this.suggestControllerPreselector(),s=o?vx(o,a):void 0;if(!s)return-1;let c=e.Position$1.lift(n),l=r.map((e,t)=>{let n=BC.fromSuggestion(i,a,c,e,this.isShiftKeyPressed),r=vx(n.toSingleTextEdit(),a),o=yx(s,r);return{index:t,valid:o,prefixLength:r.text.length,suggestItem:e}}).filter(e=>e&&e.valid&&e.prefixLength>0),u=e.findFirstMax(l,e.compareBy(e=>e.prefixLength,e.numberComparator));return u?u.index:-1}}));let t=!1,n=()=>{t||(t=!0,this._register(i.widget.value.onDidShow(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})),this._register(i.widget.value.onDidHide(()=>{this.isSuggestWidgetVisible=!1,this.update(!1)})),this._register(i.widget.value.onDidFocus(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})))};this._register(e.Event.once(i.model.onDidTrigger)(e=>{n()})),this._register(i.onWillInsertSuggestItem(e=>{let t=this.editor.getPosition(),n=this.editor.getModel();if(!t||!n)return;let r=BC.fromSuggestion(i,n,t,e.item,this.isShiftKeyPressed);this.onWillAccept(r)}))}this.update(this._isActive)}update(e){let t=this.getSuggestItemInfo();(this._isActive!==e||!VC(this._currentSuggestItemInfo,t))&&(this._isActive=e,this._currentSuggestItemInfo=t,this._onDidSelectedItemChange.fire())}getSuggestItemInfo(){let e=PC.get(this.editor);if(!e||!this.isSuggestWidgetVisible)return;let t=e.widget.value.getFocusedItem(),n=this.editor.getPosition(),r=this.editor.getModel();if(!(!t||!n||!r))return BC.fromSuggestion(e,r,n,t.item,this.isShiftKeyPressed)}stopForceRenderingAbove(){PC.get(this.editor)?.stopForceRenderingAbove()}forceRenderingAbove(){PC.get(this.editor)?.forceRenderingAbove()}},BC=class t{static fromSuggestion(n,r,i,a,o){let{insertText:s}=a.completion,c=!1;if(a.completion.insertTextRules&4){let e=new Sl().parse(s);e.children.length<100&&fS.adjustWhitespace(r,i,!0,e),s=e.toString(),c=!0}let l=n.getOverwriteInfo(a,o);return new t(e.Range$1.fromPositions(i.delta(0,-l.overwriteBefore),i.delta(0,Math.max(l.overwriteAfter,0))),s,a.completion.kind,c)}constructor(e,t,n,r){this.range=e,this.insertText=t,this.completionItemKind=n,this.isSnippetText=r}equals(e){return this.range.equalsRange(e.range)&&this.insertText===e.insertText&&this.completionItemKind===e.completionItemKind&&this.isSnippetText===e.isSnippetText}toSelectedSuggestionInfo(){return new e.SelectedSuggestionInfo(this.range,this.insertText,this.completionItemKind,this.isSnippetText)}toSingleTextEdit(){return new e.SingleTextEdit(this.range,this.insertText)}};function VC(e,t){return e===t?!0:!e||!t?!1:e.equals(t)}var HC=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},UC=function(e,t){return function(n,r){t(n,r,e)}},WC,GC=class extends e.Disposable{static{WC=this}static{this.ID=`editor.contrib.inlineCompletionsController`}static get(e){return e.getContribution(WC.ID)}constructor(t,n,r,i,a,o,s,c,l,u){super(),this.editor=t,this._instantiationService=n,this._contextKeyService=r,this._configurationService=i,this._commandService=a,this._debounceService=o,this._languageFeaturesService=s,this._accessibilitySignalService=c,this._keybindingService=l,this._accessibilityService=u,this._editorObs=e.observableCodeEditor(this.editor),this._positions=e.derived(this,t=>this._editorObs.selections.read(t)?.map(e=>e.getEndPosition())??[new e.Position$1(1,1)]),this._suggestWidgetAdaptor=this._register(new zC(this.editor,()=>(this._editorObs.forceUpdate(),this.model.get()?.selectedInlineCompletion.get()?.toSingleTextEdit(void 0)),e=>this._editorObs.forceUpdate(t=>{this.model.get()?.handleSuggestAccepted(e)}))),this._suggestWidgetSelectedItem=e.observableFromEvent(this,e=>this._suggestWidgetAdaptor.onDidSelectedItemChange(()=>{this._editorObs.forceUpdate(t=>e(void 0))}),()=>this._suggestWidgetAdaptor.selectedItem),this._enabledInConfig=e.observableFromEvent(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(62).enabled),this._isScreenReaderEnabled=e.observableFromEvent(this,this._accessibilityService.onDidChangeScreenReaderOptimized,()=>this._accessibilityService.isScreenReaderOptimized()),this._editorDictationInProgress=e.observableFromEvent(this,this._contextKeyService.onDidChangeContext,()=>this._contextKeyService.getContext(this.editor.getDomNode()).getValue(`editorDictation.inProgress`)===!0),this._enabled=e.derived(this,e=>this._enabledInConfig.read(e)&&(!this._isScreenReaderEnabled.read(e)||!this._editorDictationInProgress.read(e))),this._debounceValue=this._debounceService.for(this._languageFeaturesService.inlineCompletionsProvider,`InlineCompletionsDebounce`,{min:50,max:50}),this.model=e.derivedDisposable(this,t=>{if(this._editorObs.isReadonly.read(t))return;let n=this._editorObs.model.read(t);if(n)return this._instantiationService.createInstance(xS,n,this._suggestWidgetSelectedItem,this._editorObs.versionId,this._positions,this._debounceValue,e.observableFromEvent(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(119).preview),e.observableFromEvent(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(119).previewMode),e.observableFromEvent(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(62).mode),this._enabled)}).recomputeInitiallyAndOnChange(this._store),this._ghostTexts=e.derived(this,e=>this.model.read(e)?.ghostTexts.read(e)??[]),this._stablizedGhostTexts=KC(this._ghostTexts,this._store),this._ghostTextWidgets=e.mapObservableArrayCached(this,this._stablizedGhostTexts,(t,n)=>n.add(this._instantiationService.createInstance(ox,this.editor,{ghostText:t,minReservedLineCount:e.constObservable(0),targetTextModel:this.model.map(e=>e?.textModel)}))).recomputeInitiallyAndOnChange(this._store),this._playAccessibilitySignal=e.observableSignal(this),this._fontFamily=e.observableFromEvent(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(62).fontFamily),this._register(new Wb(this._contextKeyService,this.model)),this._register(e.reactToChange(this._editorObs.onDidType,(e,t)=>{this._enabled.get()&&this.model.get()?.trigger()})),this._register(this._commandService.onDidExecuteCommand(n=>{new Set([e.CoreEditingCommands.Tab.id,e.CoreEditingCommands.DeleteLeft.id,e.CoreEditingCommands.DeleteRight.id,`editor.action.inlineSuggest.commit`,`acceptSelectedSuggestion`]).has(n.commandId)&&t.hasTextFocus()&&this._enabled.get()&&this._editorObs.forceUpdate(e=>{this.model.get()?.trigger(e)})})),this._register(e.reactToChange(this._editorObs.selections,(e,t)=>{t.some(e=>e.reason===3||e.source===`api`)&&this.model.get()?.stop()})),this._register(this.editor.onDidBlurEditorWidget(()=>{this._contextKeyService.getContextKeyValue(`accessibleViewIsShown`)||this._configurationService.getValue(`editor.inlineSuggest.keepOnBlur`)||t.getOption(62).keepOnBlur||Rp.dropDownVisible||e.transaction(e=>{this.model.get()?.stop(e)})})),this._register(e.autorun(e=>{let t=this.model.read(e)?.state.read(e);t?.suggestItem?t.primaryGhostText.lineCount>=2&&this._suggestWidgetAdaptor.forceRenderingAbove():this._suggestWidgetAdaptor.stopForceRenderingAbove()})),this._register(e.toDisposable(()=>{this._suggestWidgetAdaptor.stopForceRenderingAbove()}));let d=e.derivedObservableWithCache(this,(e,t)=>{let n=this.model.read(e)?.state.read(e);return this._suggestWidgetSelectedItem.get()?t:n?.inlineCompletion?.semanticId});this._register(e.reactToChangeWithStore(e.derived(e=>(this._playAccessibilitySignal.read(e),d.read(e),{})),async(t,n,r)=>{let i=this.model.get(),a=i?.state.get();if(!a||!i)return;let o=i.textModel.getLineContent(a.primaryGhostText.lineNumber);await e.timeout(50,e.cancelOnDispose(r)),await e.waitForState(this._suggestWidgetSelectedItem,e.isUndefined,()=>!1,e.cancelOnDispose(r)),await this._accessibilitySignalService.playSignal(e.AccessibilitySignal.inlineSuggestion),this.editor.getOption(8)&&this._provideScreenReaderUpdate(a.primaryGhostText.renderForScreenReader(o))})),this._register(new Fp(this.editor,this.model,this._instantiationService)),this._register(Gb(e.derived(e=>{let t=this._fontFamily.read(e);return t===``||t===`default`?``:`
.monaco-editor .ghost-text-decoration,
.monaco-editor .ghost-text-decoration-preview,
.monaco-editor .ghost-text {
font-family: ${t};
}`}))),this._register(this._configurationService.onDidChangeConfiguration(e=>{e.affectsConfiguration(`accessibility.verbosity.inlineCompletions`)&&this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue(`accessibility.verbosity.inlineCompletions`)})})),this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue(`accessibility.verbosity.inlineCompletions`)})}playAccessibilitySignal(e){this._playAccessibilitySignal.trigger(e)}_provideScreenReaderUpdate(t){let n=this._contextKeyService.getContextKeyValue(`accessibleViewIsShown`),r=this._keybindingService.lookupKeybinding(`editor.action.accessibleView`),i;!n&&r&&this.editor.getOption(150)&&(i=e.localize(`showAccessibleViewHint`,`Inspect this in the accessible view ({0})`,r.getAriaLabel())),e.alert(i?t+`, `+i:t)}shouldShowHoverAt(t){let n=this.model.get()?.primaryGhostText.get();return n?n.parts.some(r=>t.containsPosition(new e.Position$1(n.lineNumber,r.column))):!1}shouldShowHoverAtViewZone(e){return this._ghostTextWidgets.get()[0]?.ownsViewZone(e)??!1}};GC=WC=HC([UC(1,e.IInstantiationService),UC(2,e.IContextKeyService),UC(3,e.IConfigurationService),UC(4,e.ICommandService),UC(5,e.ILanguageFeatureDebounceService),UC(6,e.ILanguageFeaturesService),UC(7,e.IAccessibilitySignalService),UC(8,e.IKeybindingService),UC(9,e.IAccessibilityService)],GC);function KC(t,n){let r=e.observableValue(`result`,[]),i=[];return n.add(e.autorun(n=>{let a=t.read(n);e.transaction(t=>{if(a.length!==i.length){i.length=a.length;for(let t=0;t<i.length;t++)i[t]||(i[t]=e.observableValue(`item`,a[t]));r.set([...i],t)}i.forEach((e,n)=>e.set(a[n],t))})})),r}var qC=class t extends e.EditorAction{static{this.ID=jp}constructor(){super({id:t.ID,label:e.localize(`action.inlineSuggest.showNext`,`Show Next Inline Suggestion`),alias:`Show Next Inline Suggestion`,precondition:e.ContextKeyExpr.and(e.EditorContextKeys.writable,Wb.inlineSuggestionVisible),kbOpts:{weight:100,primary:606}})}async run(e,t){GC.get(t)?.model.get()?.next()}},JC=class t extends e.EditorAction{static{this.ID=Ap}constructor(){super({id:t.ID,label:e.localize(`action.inlineSuggest.showPrevious`,`Show Previous Inline Suggestion`),alias:`Show Previous Inline Suggestion`,precondition:e.ContextKeyExpr.and(e.EditorContextKeys.writable,Wb.inlineSuggestionVisible),kbOpts:{weight:100,primary:604}})}async run(e,t){GC.get(t)?.model.get()?.previous()}},YC=class extends e.EditorAction{constructor(){super({id:`editor.action.inlineSuggest.trigger`,label:e.localize(`action.inlineSuggest.trigger`,`Trigger Inline Suggestion`),alias:`Trigger Inline Suggestion`,precondition:e.EditorContextKeys.writable})}async run(t,n){let r=GC.get(n);await e.asyncTransaction(async e=>{await r?.model.get()?.triggerExplicitly(e),r?.playAccessibilitySignal(e)})}},XC=class extends e.EditorAction{constructor(){super({id:`editor.action.inlineSuggest.acceptNextWord`,label:e.localize(`action.inlineSuggest.acceptNextWord`,`Accept Next Word Of Inline Suggestion`),alias:`Accept Next Word Of Inline Suggestion`,precondition:e.ContextKeyExpr.and(e.EditorContextKeys.writable,Wb.inlineSuggestionVisible),kbOpts:{weight:101,primary:2065,kbExpr:e.ContextKeyExpr.and(e.EditorContextKeys.writable,Wb.inlineSuggestionVisible)},menuOpts:[{menuId:e.MenuId.InlineSuggestionToolbar,title:e.localize(`acceptWord`,`Accept Word`),group:`primary`,order:2}]})}async run(e,t){let n=GC.get(t);await n?.model.get()?.acceptNextWord(n.editor)}},ZC=class extends e.EditorAction{constructor(){super({id:`editor.action.inlineSuggest.acceptNextLine`,label:e.localize(`action.inlineSuggest.acceptNextLine`,`Accept Next Line Of Inline Suggestion`),alias:`Accept Next Line Of Inline Suggestion`,precondition:e.ContextKeyExpr.and(e.EditorContextKeys.writable,Wb.inlineSuggestionVisible),kbOpts:{weight:101},menuOpts:[{menuId:e.MenuId.InlineSuggestionToolbar,title:e.localize(`acceptLine`,`Accept Line`),group:`secondary`,order:2}]})}async run(e,t){let n=GC.get(t);await n?.model.get()?.acceptNextLine(n.editor)}},QC=class extends e.EditorAction{constructor(){super({id:`editor.action.inlineSuggest.commit`,label:e.localize(`action.inlineSuggest.accept`,`Accept Inline Suggestion`),alias:`Accept Inline Suggestion`,precondition:Wb.inlineSuggestionVisible,menuOpts:[{menuId:e.MenuId.InlineSuggestionToolbar,title:e.localize(`accept`,`Accept`),group:`primary`,order:1}],kbOpts:{primary:2,weight:200,kbExpr:e.ContextKeyExpr.and(Wb.inlineSuggestionVisible,e.EditorContextKeys.tabMovesFocus.toNegated(),Wb.inlineSuggestionHasIndentationLessThanTabSize,Z.Visible.toNegated(),e.EditorContextKeys.hoverFocused.toNegated())}})}async run(e,t){let n=GC.get(t);n&&(n.model.get()?.accept(n.editor),n.editor.focus())}},$C=class t extends e.EditorAction{static{this.ID=`editor.action.inlineSuggest.hide`}constructor(){super({id:t.ID,label:e.localize(`action.inlineSuggest.hide`,`Hide Inline Suggestion`),alias:`Hide Inline Suggestion`,precondition:Wb.inlineSuggestionVisible,kbOpts:{weight:100,primary:9}})}async run(t,n){let r=GC.get(n);e.transaction(e=>{r?.model.get()?.stop(e)})}},ew=class t extends e.Action2{static{this.ID=`editor.action.inlineSuggest.toggleAlwaysShowToolbar`}constructor(){super({id:t.ID,title:e.localize(`action.inlineSuggest.alwaysShowToolbar`,`Always Show Toolbar`),f1:!1,precondition:void 0,menu:[{id:e.MenuId.InlineSuggestionToolbar,group:`secondary`,order:10}],toggled:e.ContextKeyExpr.equals(`config.editor.inlineSuggest.showToolbar`,`always`)})}async run(t,n){let r=t.get(e.IConfigurationService),i=r.getValue(`editor.inlineSuggest.showToolbar`)===`always`?`onHover`:`always`;r.updateValue(`editor.inlineSuggest.showToolbar`,i)}},tw=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},nw=function(e,t){return function(n,r){t(n,r,e)}},rw=class{constructor(e,t,n){this.owner=e,this.range=t,this.controller=n}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}},iw=class{constructor(e,t,n,r,i,a){this._editor=e,this._languageService=t,this._openerService=n,this.accessibilityService=r,this._instantiationService=i,this._telemetryService=a,this.hoverOrdinal=4}suggestHoverAnchor(t){let n=GC.get(this._editor);if(!n)return null;let r=t.target;if(r.type===8){let i=r.detail;if(n.shouldShowHoverAtViewZone(i.viewZoneId))return new np(1e3,this,e.Range$1.fromPositions(this._editor.getModel().validatePosition(i.positionBefore||i.position)),t.event.posx,t.event.posy,!1)}return r.type===7&&n.shouldShowHoverAt(r.range)||r.type===6&&r.detail.mightBeForeignElement&&n.shouldShowHoverAt(r.range)?new np(1e3,this,r.range,t.event.posx,t.event.posy,!1):null}computeSync(e,t){if(this._editor.getOption(62).showToolbar!==`onHover`)return[];let n=GC.get(this._editor);return n&&n.shouldShowHoverAt(e.range)?[new rw(this,e.range,n)]:[]}renderHoverParts(t,n){let r=new e.DisposableStore,i=n[0];this._telemetryService.publicLog2(`inlineCompletionHover.shown`),this.accessibilityService.isScreenReaderOptimized()&&!this._editor.getOption(8)&&r.add(this.renderScreenReaderText(t,i));let a=i.controller.model.get(),o=this._instantiationService.createInstance(Rp,this._editor,!1,e.constObservable(null),a.selectedInlineCompletionIndex,a.inlineCompletionsCount,a.activeCommands),s=o.getDomNode();return t.fragment.appendChild(s),a.triggerExplicitly(),r.add(o),new rp([{hoverPart:i,hoverElement:s,dispose(){r.dispose()}}])}renderScreenReaderText(t,n){let r=new e.DisposableStore,i=e.$,a=i(`div.hover-row.markdown-hover`),o=e.append(a,i(`div.hover-contents`,{"aria-live":`assertive`})),s=r.add(new e.MarkdownRenderer({editor:this._editor},this._languageService,this._openerService)),c=n=>{r.add(s.onDidRenderAsync(()=>{o.className=`hover-contents code-hover-contents`,t.onContentsChanged()}));let i=e.localize(`inlineSuggestionFollows`,`Suggestion:`),a=r.add(s.render(new e.MarkdownString().appendText(i).appendCodeblock(`text`,n)));o.replaceChildren(a.element)};return r.add(e.autorun(t=>{let r=n.controller.model.read(t)?.primaryGhostText.read(t);if(r){let e=this._editor.getModel().getLineContent(r.lineNumber);c(r.renderForScreenReader(e))}else e.reset(o)})),t.fragment.appendChild(a),r}};iw=tw([nw(1,e.ILanguageService),nw(2,e.IOpenerService),nw(3,e.IAccessibilityService),nw(4,e.IInstantiationService),nw(5,e.ITelemetryService)],iw);var aw=class{};const ow=new class{constructor(){this._implementations=[]}register(e){return this._implementations.push(e),{dispose:()=>{let t=this._implementations.indexOf(e);t!==-1&&this._implementations.splice(t,1)}}}getImplementations(){return this._implementations}};e.registerEditorContribution(GC.ID,GC,3),e.registerEditorAction(YC),e.registerEditorAction(qC),e.registerEditorAction(JC),e.registerEditorAction(XC),e.registerEditorAction(ZC),e.registerEditorAction(QC),e.registerEditorAction($C),e.registerAction2(ew),ip.register(iw),ow.register(new aw);var sw=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},cw=function(e,t){return function(n,r){t(n,r,e)}},lw,uw=class{static{lw=this}static{this.ID=`editor.contrib.gotodefinitionatposition`}static{this.MAX_SOURCE_PREVIEW_LINES=8}constructor(t,n,r,i){this.textModelResolverService=n,this.languageService=r,this.languageFeaturesService=i,this.toUnhook=new e.DisposableStore,this.toUnhookForKeyboard=new e.DisposableStore,this.currentWordAtPosition=null,this.previousPromise=null,this.editor=t,this.linkDecorations=this.editor.createDecorationsCollection();let a=new Mm(t);this.toUnhook.add(a),this.toUnhook.add(a.onMouseMoveOrRelevantKeyDown(([e,t])=>{this.startFindDefinitionFromMouse(e,t??void 0)})),this.toUnhook.add(a.onExecute(t=>{this.isEnabled(t)&&this.gotoDefinition(t.target.position,t.hasSideBySideModifier).catch(t=>{e.onUnexpectedError(t)}).finally(()=>{this.removeLinkDecorations()})})),this.toUnhook.add(a.onCancel(()=>{this.removeLinkDecorations(),this.currentWordAtPosition=null}))}static get(e){return e.getContribution(lw.ID)}async startFindDefinitionFromCursor(e){await this.startFindDefinition(e),this.toUnhookForKeyboard.add(this.editor.onDidChangeCursorPosition(()=>{this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear()})),this.toUnhookForKeyboard.add(this.editor.onKeyDown(e=>{e&&(this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear())}))}startFindDefinitionFromMouse(e,t){if(e.target.type===9&&this.linkDecorations.length>0)return;if(!this.editor.hasModel()||!this.isEnabled(e,t)){this.currentWordAtPosition=null,this.removeLinkDecorations();return}let n=e.target.position;this.startFindDefinition(n)}async startFindDefinition(t){this.toUnhookForKeyboard.clear();let n=t?this.editor.getModel()?.getWordAtPosition(t):null;if(!n){this.currentWordAtPosition=null,this.removeLinkDecorations();return}if(this.currentWordAtPosition&&this.currentWordAtPosition.startColumn===n.startColumn&&this.currentWordAtPosition.endColumn===n.endColumn&&this.currentWordAtPosition.word===n.word)return;this.currentWordAtPosition=n;let r=new e.EditorState(this.editor,15);this.previousPromise&&=(this.previousPromise.cancel(),null),this.previousPromise=e.createCancelablePromise(e=>this.findDefinition(t,e));let i;try{i=await this.previousPromise}catch(t){e.onUnexpectedError(t);return}if(!i||!i.length||!r.validate(this.editor)){this.removeLinkDecorations();return}let a=i[0].originSelectionRange?e.Range$1.lift(i[0].originSelectionRange):new e.Range$1(t.lineNumber,n.startColumn,t.lineNumber,n.endColumn);if(i.length>1){let t=a;for(let{originSelectionRange:n}of i)n&&(t=e.Range$1.plusRange(t,n));this.addDecoration(t,new e.MarkdownString().appendText(e.localize(`multipleResults`,`Click to show {0} definitions.`,i.length)))}else{let t=i[0];if(!t.uri)return;this.textModelResolverService.createModelReference(t.uri).then(n=>{if(!n.object||!n.object.textEditorModel){n.dispose();return}let{object:{textEditorModel:r}}=n,{startLineNumber:i}=t.range;if(i<1||i>r.getLineCount()){n.dispose();return}let o=this.getPreviewValue(r,i,t),s=this.languageService.guessLanguageIdByFilepathOrFirstLine(r.uri);this.addDecoration(a,o?new e.MarkdownString().appendCodeblock(s||``,o):void 0),n.dispose()})}}getPreviewValue(e,t,n){let r=n.range;return r.endLineNumber-r.startLineNumber>=lw.MAX_SOURCE_PREVIEW_LINES&&(r=this.getPreviewRangeBasedOnIndentation(e,t)),this.stripIndentationFromPreviewRange(e,t,r)}stripIndentationFromPreviewRange(e,t,n){let r=e.getLineFirstNonWhitespaceColumn(t);for(let i=t+1;i<n.endLineNumber;i++){let t=e.getLineFirstNonWhitespaceColumn(i);r=Math.min(r,t)}return e.getValueInRange(n).replace(RegExp(`^\\s{${r-1}}`,`gm`),``).trim()}getPreviewRangeBasedOnIndentation(t,n){let r=t.getLineFirstNonWhitespaceColumn(n),i=Math.min(t.getLineCount(),n+lw.MAX_SOURCE_PREVIEW_LINES),a=n+1;for(;a<i;a++){let e=t.getLineFirstNonWhitespaceColumn(a);if(r===e)break}return new e.Range$1(n,1,a+1,1)}addDecoration(e,t){let n={range:e,options:{description:`goto-definition-link`,inlineClassName:`goto-definition-link`,hoverMessage:t}};this.linkDecorations.set([n])}removeLinkDecorations(){this.linkDecorations.clear()}isEnabled(t,n){return this.editor.hasModel()&&t.isLeftClick&&t.isNoneOrSingleMouseDown&&t.target.type===6&&!(t.target.detail.injectedText?.options instanceof e.ModelDecorationInjectedTextOptions)&&(t.hasTriggerModifier||(n?n.keyCodeIsTriggerKey:!1))&&this.languageFeaturesService.definitionProvider.has(this.editor.getModel())}findDefinition(e,t){let n=this.editor.getModel();return n?Qh(this.languageFeaturesService.definitionProvider,n,e,!1,t):Promise.resolve(null)}gotoDefinition(e,t){return this.editor.setPosition(e),this.editor.invokeWithinContext(e=>{let n=!t&&this.editor.getOption(89)&&!this.isInPeekEditor(e);return new og({openToSide:t,openInPeek:n,muteMessage:!0},{title:{value:``,original:``},id:``,precondition:void 0}).run(e)})}isInPeekEditor(t){let n=t.get(e.IContextKeyService);return Xm.inPeekEditor.getValue(n)}dispose(){this.toUnhook.dispose(),this.toUnhookForKeyboard.dispose()}};uw=lw=sw([cw(1,e.ITextModelService),cw(2,e.ILanguageService),cw(3,e.ILanguageFeaturesService)],uw),e.registerEditorContribution(uw.ID,uw,2);var dw=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},fw=function(e,t){return function(n,r){t(n,r,e)}},pw=class{constructor(e,t,n){this.marker=e,this.index=t,this.total=n}},mw=class{constructor(t,n,r){this._markerService=n,this._configService=r,this._onDidChange=new e.Emitter$1,this.onDidChange=this._onDidChange.event,this._dispoables=new e.DisposableStore,this._markers=[],this._nextIdx=-1,e.URI.isUri(t)?this._resourceFilter=e=>e.toString()===t.toString():t&&(this._resourceFilter=t);let i=this._configService.getValue(`problems.sortOrder`),a=(t,n)=>{let r=e.compare(t.resource.toString(),n.resource.toString());return r===0&&(r=i===`position`?e.Range$1.compareRangesUsingStarts(t,n)||e.MarkerSeverity$1.compare(t.severity,n.severity):e.MarkerSeverity$1.compare(t.severity,n.severity)||e.Range$1.compareRangesUsingStarts(t,n)),r},o=()=>{this._markers=this._markerService.read({resource:e.URI.isUri(t)?t:void 0,severities:e.MarkerSeverity$1.Error|e.MarkerSeverity$1.Warning|e.MarkerSeverity$1.Info}),typeof t==`function`&&(this._markers=this._markers.filter(e=>this._resourceFilter(e.resource))),this._markers.sort(a)};o(),this._dispoables.add(n.onMarkerChanged(e=>{(!this._resourceFilter||e.some(e=>this._resourceFilter(e)))&&(o(),this._nextIdx=-1,this._onDidChange.fire())}))}dispose(){this._dispoables.dispose(),this._onDidChange.dispose()}matches(e){return!this._resourceFilter&&!e?!0:!this._resourceFilter||!e?!1:this._resourceFilter(e)}get selected(){let e=this._markers[this._nextIdx];return e&&new pw(e,this._nextIdx+1,this._markers.length)}_initIdx(t,n,r){let i=!1,a=this._markers.findIndex(e=>e.resource.toString()===t.uri.toString());a<0&&(a=e.binarySearch(this._markers,{resource:t.uri},(t,n)=>e.compare(t.resource.toString(),n.resource.toString())),a<0&&(a=~a));for(let r=a;r<this._markers.length;r++){let a=e.Range$1.lift(this._markers[r]);if(a.isEmpty()){let n=t.getWordAtPosition(a.getStartPosition());n&&(a=new e.Range$1(a.startLineNumber,n.startColumn,a.startLineNumber,n.endColumn))}if(n&&(a.containsPosition(n)||n.isBeforeOrEqual(a.getStartPosition()))){this._nextIdx=r,i=!0;break}if(this._markers[r].resource.toString()!==t.uri.toString())break}i||(this._nextIdx=r?0:this._markers.length-1),this._nextIdx<0&&(this._nextIdx=this._markers.length-1)}resetIndex(){this._nextIdx=-1}move(e,t,n){if(this._markers.length===0)return!1;let r=this._nextIdx;return this._nextIdx===-1?this._initIdx(t,n,e):e?this._nextIdx=(this._nextIdx+1)%this._markers.length:e||(this._nextIdx=(this._nextIdx-1+this._markers.length)%this._markers.length),r!==this._nextIdx}find(t,n){let r=this._markers.findIndex(e=>e.resource.toString()===t.toString());if(!(r<0)){for(;r<this._markers.length;r++)if(e.Range$1.containsPosition(this._markers[r],n))return new pw(this._markers[r],r+1,this._markers.length)}}};mw=dw([fw(1,e.IMarkerService),fw(2,e.IConfigurationService)],mw);const hw=e.createDecorator(`IMarkerNavigationService`);var gw=class{constructor(t,n){this._markerService=t,this._configService=n,this._provider=new e.LinkedList}getMarkerList(e){for(let t of this._provider){let n=t.getMarkerList(e);if(n)return n}return new mw(e,this._markerService,this._configService)}};gw=dw([fw(0,e.IMarkerService),fw(1,e.IConfigurationService)],gw),e.registerSingleton(hw,gw,1);var _w;(function(t){function n(t){switch(t){case e.severity_default.Ignore:return`severity-ignore `+e.ThemeIcon.asClassName(e.Codicon.info);case e.severity_default.Info:return e.ThemeIcon.asClassName(e.Codicon.info);case e.severity_default.Warning:return e.ThemeIcon.asClassName(e.Codicon.warning);case e.severity_default.Error:return e.ThemeIcon.asClassName(e.Codicon.error);default:return``}}t.className=n})(_w||={});var vw=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},yw=function(e,t){return function(n,r){t(n,r,e)}},bw,xw=class{constructor(t,n,r,i,a){this._openerService=i,this._labelService=a,this._lines=0,this._longestLineLength=0,this._relatedDiagnostics=new WeakMap,this._disposables=new e.DisposableStore,this._editor=n;let o=document.createElement(`div`);o.className=`descriptioncontainer`,this._messageBlock=document.createElement(`div`),this._messageBlock.classList.add(`message`),this._messageBlock.setAttribute(`aria-live`,`assertive`),this._messageBlock.setAttribute(`role`,`alert`),o.appendChild(this._messageBlock),this._relatedBlock=document.createElement(`div`),o.appendChild(this._relatedBlock),this._disposables.add(e.addStandardDisposableListener(this._relatedBlock,`click`,e=>{e.preventDefault();let t=this._relatedDiagnostics.get(e.target);t&&r(t)})),this._scrollable=new e.ScrollableElement(o,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:6,verticalScrollbarSize:6}),t.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll(e=>{o.style.left=`-${e.scrollLeft}px`,o.style.top=`-${e.scrollTop}px`})),this._disposables.add(this._scrollable)}dispose(){e.dispose(this._disposables)}update(t){let{source:n,message:r,relatedInformation:i,code:a}=t,o=(n?.length||0)+2;a&&(typeof a==`string`?o+=a.length:o+=a.value.length);let s=e.splitLines(r);this._lines=s.length,this._longestLineLength=0;for(let e of s)this._longestLineLength=Math.max(e.length+o,this._longestLineLength);e.clearNode(this._messageBlock),this._messageBlock.setAttribute(`aria-label`,this.getAriaLabel(t)),this._editor.applyFontInfo(this._messageBlock);let c=this._messageBlock;for(let e of s)c=document.createElement(`div`),c.innerText=e,e===``&&(c.style.height=this._messageBlock.style.lineHeight),this._messageBlock.appendChild(c);if(n||a){let t=document.createElement(`span`);if(t.classList.add(`details`),c.appendChild(t),n){let e=document.createElement(`span`);e.innerText=n,e.classList.add(`source`),t.appendChild(e)}if(a)if(typeof a==`string`){let e=document.createElement(`span`);e.innerText=`(${a})`,e.classList.add(`code`),t.appendChild(e)}else{this._codeLink=e.$(`a.code-link`),this._codeLink.setAttribute(`href`,`${a.target.toString()}`),this._codeLink.onclick=e=>{this._openerService.open(a.target,{allowCommands:!0}),e.preventDefault(),e.stopPropagation()};let n=e.append(this._codeLink,e.$(`span`));n.innerText=a.value,t.appendChild(this._codeLink)}}if(e.clearNode(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),e.isNonEmptyArray(i)){let e=this._relatedBlock.appendChild(document.createElement(`div`));e.style.paddingTop=`${Math.floor(this._editor.getOption(67)*.66)}px`,this._lines+=1;for(let t of i){let n=document.createElement(`div`),r=document.createElement(`a`);r.classList.add(`filename`),r.innerText=`${this._labelService.getUriBasenameLabel(t.resource)}(${t.startLineNumber}, ${t.startColumn}): `,r.title=this._labelService.getUriLabel(t.resource),this._relatedDiagnostics.set(r,t);let i=document.createElement(`span`);i.innerText=t.message,n.appendChild(r),n.appendChild(i),this._lines+=1,e.appendChild(n)}}let l=this._editor.getOption(50),u=Math.ceil(l.typicalFullwidthCharacterWidth*this._longestLineLength*.75),d=l.lineHeight*this._lines;this._scrollable.setScrollDimensions({scrollWidth:u,scrollHeight:d})}layout(e,t){this._scrollable.getDomNode().style.height=`${e}px`,this._scrollable.getDomNode().style.width=`${t}px`,this._scrollable.setScrollDimensions({width:t,height:e})}getHeightInLines(){return Math.min(17,this._lines)}getAriaLabel(t){let n=``;switch(t.severity){case e.MarkerSeverity$1.Error:n=e.localize(`Error`,`Error`);break;case e.MarkerSeverity$1.Warning:n=e.localize(`Warning`,`Warning`);break;case e.MarkerSeverity$1.Info:n=e.localize(`Info`,`Info`);break;case e.MarkerSeverity$1.Hint:n=e.localize(`Hint`,`Hint`);break}let r=e.localize(`marker aria`,`{0} at {1}. `,n,t.startLineNumber+`:`+t.startColumn),i=this._editor.getModel();return i&&t.startLineNumber<=i.getLineCount()&&t.startLineNumber>=1&&(r=`${i.getLineContent(t.startLineNumber)}, ${r}`),r}},Sw=class extends eh{static{bw=this}static{this.TitleMenu=new e.MenuId(`gotoErrorTitleMenu`)}constructor(t,n,r,i,a,o,s){super(t,{showArrow:!0,showFrame:!0,isAccessible:!0,frameWidth:1},a),this._themeService=n,this._openerService=r,this._menuService=i,this._contextKeyService=o,this._labelService=s,this._callOnDispose=new e.DisposableStore,this._onDidSelectRelatedInformation=new e.Emitter$1,this.onDidSelectRelatedInformation=this._onDidSelectRelatedInformation.event,this._severity=e.MarkerSeverity$1.Warning,this._backgroundColor=e.Color.white,this._applyTheme(n.getColorTheme()),this._callOnDispose.add(n.onDidColorThemeChange(this._applyTheme.bind(this))),this.create()}_applyTheme(t){this._backgroundColor=t.getColor(Mw);let n=Ew,r=Dw;this._severity===e.MarkerSeverity$1.Warning?(n=Ow,r=kw):this._severity===e.MarkerSeverity$1.Info&&(n=Aw,r=jw);let i=t.getColor(n),a=t.getColor(r);this.style({arrowColor:i,frameColor:i,headerBackgroundColor:a,primaryHeadingColor:t.getColor(nh),secondaryHeadingColor:t.getColor(rh)})}_applyStyles(){this._parentContainer&&(this._parentContainer.style.backgroundColor=this._backgroundColor?this._backgroundColor.toString():``),super._applyStyles()}dispose(){this._callOnDispose.dispose(),super.dispose()}_fillHead(t){super._fillHead(t),this._disposables.add(this._actionbarWidget.actionRunner.onWillRun(e=>this.editor.focus()));let n=[],r=this._menuService.getMenuActions(bw.TitleMenu,this._contextKeyService);e.createAndFillInActionBarActions(r,n),this._actionbarWidget.push(n,{label:!1,icon:!0,index:0})}_fillTitleIcon(t){this._icon=e.append(t,e.$(``))}_fillBody(e){this._parentContainer=e,e.classList.add(`marker-widget`),this._parentContainer.tabIndex=0,this._parentContainer.setAttribute(`role`,`tooltip`),this._container=document.createElement(`div`),e.appendChild(this._container),this._message=new xw(this._container,this.editor,e=>this._onDidSelectRelatedInformation.fire(e),this._openerService,this._labelService),this._disposables.add(this._message)}show(){throw Error(`call showAtMarker`)}showAtMarker(t,n,r){this._container.classList.remove(`stale`),this._message.update(t),this._severity=t.severity,this._applyTheme(this._themeService.getColorTheme());let i=e.Range$1.lift(t),a=this.editor.getPosition(),o=a&&i.containsPosition(a)?a:i.getStartPosition();super.show(o,this.computeRequiredHeight());let s=this.editor.getModel();if(s){let t=r>1?e.localize(`problems`,`{0} of {1} problems`,n,r):e.localize(`change`,`{0} of {1} problem`,n,r);this.setTitle(e.basename(s.uri),t)}this._icon.className=`codicon ${_w.className(e.MarkerSeverity$1.toSeverity(this._severity))}`,this.editor.revealPositionNearTop(o,0),this.editor.focus()}updateMarker(e){this._container.classList.remove(`stale`),this._message.update(e)}showStale(){this._container.classList.add(`stale`),this._relayout()}_doLayoutBody(e,t){super._doLayoutBody(e,t),this._heightInPixel=e,this._message.layout(e,t),this._container.style.height=`${e}px`}_onWidth(e){this._message.layout(this._heightInPixel,e)}_relayout(){super._relayout(this.computeRequiredHeight())}computeRequiredHeight(){return 3+this._message.getHeightInLines()}};Sw=bw=vw([yw(1,e.IThemeService),yw(2,e.IOpenerService),yw(3,e.IMenuService),yw(4,e.IInstantiationService),yw(5,e.IContextKeyService),yw(6,e.ILabelService)],Sw);var Cw=e.oneOf(e.editorErrorForeground,e.editorErrorBorder),ww=e.oneOf(e.editorWarningForeground,e.editorWarningBorder),Tw=e.oneOf(e.editorInfoForeground,e.editorInfoBorder),Ew=e.registerColor(`editorMarkerNavigationError.background`,{dark:Cw,light:Cw,hcDark:e.contrastBorder,hcLight:e.contrastBorder},e.localize(`editorMarkerNavigationError`,`Editor marker navigation widget error color.`)),Dw=e.registerColor(`editorMarkerNavigationError.headerBackground`,{dark:e.transparent(Ew,.1),light:e.transparent(Ew,.1),hcDark:null,hcLight:null},e.localize(`editorMarkerNavigationErrorHeaderBackground`,`Editor marker navigation widget error heading background.`)),Ow=e.registerColor(`editorMarkerNavigationWarning.background`,{dark:ww,light:ww,hcDark:e.contrastBorder,hcLight:e.contrastBorder},e.localize(`editorMarkerNavigationWarning`,`Editor marker navigation widget warning color.`)),kw=e.registerColor(`editorMarkerNavigationWarning.headerBackground`,{dark:e.transparent(Ow,.1),light:e.transparent(Ow,.1),hcDark:`#0C141F`,hcLight:e.transparent(Ow,.2)},e.localize(`editorMarkerNavigationWarningBackground`,`Editor marker navigation widget warning heading background.`)),Aw=e.registerColor(`editorMarkerNavigationInfo.background`,{dark:Tw,light:Tw,hcDark:e.contrastBorder,hcLight:e.contrastBorder},e.localize(`editorMarkerNavigationInfo`,`Editor marker navigation widget info color.`)),jw=e.registerColor(`editorMarkerNavigationInfo.headerBackground`,{dark:e.transparent(Aw,.1),light:e.transparent(Aw,.1),hcDark:null,hcLight:null},e.localize(`editorMarkerNavigationInfoHeaderBackground`,`Editor marker navigation widget info heading background.`)),Mw=e.registerColor(`editorMarkerNavigation.background`,e.editorBackground,e.localize(`editorMarkerNavigationBackground`,`Editor marker navigation widget background.`)),Nw=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Pw=function(e,t){return function(n,r){t(n,r,e)}},Fw,Iw=class{static{Fw=this}static{this.ID=`editor.contrib.markerController`}static get(e){return e.getContribution(Fw.ID)}constructor(t,n,r,i,a){this._markerNavigationService=n,this._contextKeyService=r,this._editorService=i,this._instantiationService=a,this._sessionDispoables=new e.DisposableStore,this._editor=t,this._widgetVisible=Hw.bindTo(this._contextKeyService)}dispose(){this._cleanUp(),this._sessionDispoables.dispose()}_cleanUp(){this._widgetVisible.reset(),this._sessionDispoables.clear(),this._widget=void 0,this._model=void 0}_getOrCreateModel(t){if(this._model&&this._model.matches(t))return this._model;let n=!1;return this._model&&(n=!0,this._cleanUp()),this._model=this._markerNavigationService.getMarkerList(t),n&&this._model.move(!0,this._editor.getModel(),this._editor.getPosition()),this._widget=this._instantiationService.createInstance(Sw,this._editor),this._widget.onDidClose(()=>this.close(),this,this._sessionDispoables),this._widgetVisible.set(!0),this._sessionDispoables.add(this._model),this._sessionDispoables.add(this._widget),this._sessionDispoables.add(this._editor.onDidChangeCursorPosition(t=>{(!this._model?.selected||!e.Range$1.containsPosition(this._model?.selected.marker,t.position))&&this._model?.resetIndex()})),this._sessionDispoables.add(this._model.onDidChange(()=>{if(!this._widget||!this._widget.position||!this._model)return;let e=this._model.find(this._editor.getModel().uri,this._widget.position);e?this._widget.updateMarker(e.marker):this._widget.showStale()})),this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation(t=>{this._editorService.openCodeEditor({resource:t.resource,options:{pinned:!0,revealIfOpened:!0,selection:e.Range$1.lift(t).collapseToStart()}},this._editor),this.close(!1)})),this._sessionDispoables.add(this._editor.onDidChangeModel(()=>this._cleanUp())),this._model}close(e=!0){this._cleanUp(),e&&this._editor.focus()}showAtMarker(t){if(this._editor.hasModel()){let n=this._getOrCreateModel(this._editor.getModel().uri);n.resetIndex(),n.move(!0,this._editor.getModel(),new e.Position$1(t.startLineNumber,t.startColumn)),n.selected&&this._widget.showAtMarker(n.selected.marker,n.selected.index,n.selected.total)}}async nagivate(e,t){if(this._editor.hasModel()){let n=this._getOrCreateModel(t?void 0:this._editor.getModel().uri);if(n.move(e,this._editor.getModel(),this._editor.getPosition()),!n.selected)return;if(n.selected.marker.resource.toString()!==this._editor.getModel().uri.toString()){this._cleanUp();let r=await this._editorService.openCodeEditor({resource:n.selected.marker.resource,options:{pinned:!1,revealIfOpened:!0,selectionRevealType:2,selection:n.selected.marker}},this._editor);r&&(Fw.get(r)?.close(),Fw.get(r)?.nagivate(e,t))}else this._widget.showAtMarker(n.selected.marker,n.selected.index,n.selected.total)}}};Iw=Fw=Nw([Pw(1,hw),Pw(2,e.IContextKeyService),Pw(3,e.ICodeEditorService),Pw(4,e.IInstantiationService)],Iw);var Lw=class extends e.EditorAction{constructor(e,t,n){super(n),this._next=e,this._multiFile=t}async run(e,t){t.hasModel()&&Iw.get(t)?.nagivate(this._next,this._multiFile)}},Rw=class t extends Lw{static{this.ID=`editor.action.marker.next`}static{this.LABEL=e.localize(`markerAction.next.label`,`Go to Next Problem (Error, Warning, Info)`)}constructor(){super(!0,!1,{id:t.ID,label:t.LABEL,alias:`Go to Next Problem (Error, Warning, Info)`,precondition:void 0,kbOpts:{kbExpr:e.EditorContextKeys.focus,primary:578,weight:100},menuOpts:{menuId:Sw.TitleMenu,title:t.LABEL,icon:e.registerIcon(`marker-navigation-next`,e.Codicon.arrowDown,e.localize(`nextMarkerIcon`,`Icon for goto next marker.`)),group:`navigation`,order:1}})}},zw=class t extends Lw{static{this.ID=`editor.action.marker.prev`}static{this.LABEL=e.localize(`markerAction.previous.label`,`Go to Previous Problem (Error, Warning, Info)`)}constructor(){super(!1,!1,{id:t.ID,label:t.LABEL,alias:`Go to Previous Problem (Error, Warning, Info)`,precondition:void 0,kbOpts:{kbExpr:e.EditorContextKeys.focus,primary:1602,weight:100},menuOpts:{menuId:Sw.TitleMenu,title:t.LABEL,icon:e.registerIcon(`marker-navigation-previous`,e.Codicon.arrowUp,e.localize(`previousMarkerIcon`,`Icon for goto previous marker.`)),group:`navigation`,order:2}})}},Bw=class extends Lw{constructor(){super(!0,!0,{id:`editor.action.marker.nextInFiles`,label:e.localize(`markerAction.nextInFiles.label`,`Go to Next Problem in Files (Error, Warning, Info)`),alias:`Go to Next Problem in Files (Error, Warning, Info)`,precondition:void 0,kbOpts:{kbExpr:e.EditorContextKeys.focus,primary:66,weight:100},menuOpts:{menuId:e.MenuId.MenubarGoMenu,title:e.localize({key:`miGotoNextProblem`,comment:[`&& denotes a mnemonic`]},`Next &&Problem`),group:`6_problem_nav`,order:1}})}},Vw=class extends Lw{constructor(){super(!1,!0,{id:`editor.action.marker.prevInFiles`,label:e.localize(`markerAction.previousInFiles.label`,`Go to Previous Problem in Files (Error, Warning, Info)`),alias:`Go to Previous Problem in Files (Error, Warning, Info)`,precondition:void 0,kbOpts:{kbExpr:e.EditorContextKeys.focus,primary:1090,weight:100},menuOpts:{menuId:e.MenuId.MenubarGoMenu,title:e.localize({key:`miGotoPreviousProblem`,comment:[`&& denotes a mnemonic`]},`Previous &&Problem`),group:`6_problem_nav`,order:2}})}};e.registerEditorContribution(Iw.ID,Iw,4),e.registerEditorAction(Rw),e.registerEditorAction(zw),e.registerEditorAction(Bw),e.registerEditorAction(Vw);var Hw=new e.RawContextKey(`markersNavigationVisible`,!1),Uw=e.EditorCommand.bindToContribution(Iw.get);e.registerEditorCommand(new Uw({id:`closeMarkersNavigation`,precondition:Hw,handler:e=>e.close(),kbOpts:{weight:150,kbExpr:e.EditorContextKeys.focus,primary:9,secondary:[1033]}}));var Ww;(function(e){e.NoAutoFocus=`noAutoFocus`,e.FocusIfVisible=`focusIfVisible`,e.AutoFocusImmediately=`autoFocusImmediately`})(Ww||={});var Gw=class extends e.EditorAction{constructor(){super({id:`editor.action.showHover`,label:e.localize({key:`showOrFocusHover`,comment:[`Label for action that will trigger the showing/focusing of a hover in the editor.`,`If the hover is not visible, it will show the hover.`,`This allows for users to show the hover without using the mouse.`]},`Show or Focus Hover`),metadata:{description:e.localize2(`showOrFocusHoverDescription`,`Show or focus the editor hover which shows documentation, references, and other content for a symbol at the current cursor position.`),args:[{name:`args`,schema:{type:`object`,properties:{focus:{description:`Controls if and when the hover should take focus upon being triggered by this action.`,enum:[Ww.NoAutoFocus,Ww.FocusIfVisible,Ww.AutoFocusImmediately],enumDescriptions:[e.localize(`showOrFocusHover.focus.noAutoFocus`,`The hover will not automatically take focus.`),e.localize(`showOrFocusHover.focus.focusIfVisible`,`The hover will take focus only if it is already visible.`),e.localize(`showOrFocusHover.focus.autoFocusImmediately`,`The hover will automatically take focus when it appears.`)],default:Ww.FocusIfVisible}}}}]},alias:`Show or Focus Hover`,precondition:void 0,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:e.KeyChord(2089,2087),weight:100}})}run(t,n,r){if(!n.hasModel())return;let i=q.get(n);if(!i)return;let a=r?.focus,o=Ww.FocusIfVisible;Object.values(Ww).includes(a)?o=a:typeof a==`boolean`&&a&&(o=Ww.AutoFocusImmediately);let s=t=>{let r=n.getPosition(),a=new e.Range$1(r.lineNumber,r.column,r.lineNumber,r.column);i.showContentHover(a,1,1,t)},c=n.getOption(2)===2;i.isHoverVisible?o===Ww.NoAutoFocus?s(c):i.focus():s(c||o===Ww.AutoFocusImmediately)}},Kw=class extends e.EditorAction{constructor(){super({id:`editor.action.showDefinitionPreviewHover`,label:e.localize({key:`showDefinitionPreviewHover`,comment:[`Label for action that will trigger the showing of definition preview hover in the editor.`,`This allows for users to show the definition preview hover without using the mouse.`]},`Show Definition Preview Hover`),alias:`Show Definition Preview Hover`,precondition:void 0,metadata:{description:e.localize2(`showDefinitionPreviewHoverDescription`,`Show the definition preview hover in the editor.`)}})}run(t,n){let r=q.get(n);if(!r)return;let i=n.getPosition();if(!i)return;let a=new e.Range$1(i.lineNumber,i.column,i.lineNumber,i.column),o=uw.get(n);o&&o.startFindDefinitionFromCursor(i).then(()=>{r.showContentHover(a,1,1,!0)})}},qw=class extends e.EditorAction{constructor(){super({id:`editor.action.scrollUpHover`,label:e.localize({key:`scrollUpHover`,comment:[`Action that allows to scroll up in the hover widget with the up arrow when the hover widget is focused.`]},`Scroll Up Hover`),alias:`Scroll Up Hover`,precondition:e.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:e.EditorContextKeys.hoverFocused,primary:16,weight:100},metadata:{description:e.localize2(`scrollUpHoverDescription`,`Scroll up the editor hover.`)}})}run(e,t){let n=q.get(t);n&&n.scrollUp()}},Jw=class extends e.EditorAction{constructor(){super({id:`editor.action.scrollDownHover`,label:e.localize({key:`scrollDownHover`,comment:[`Action that allows to scroll down in the hover widget with the up arrow when the hover widget is focused.`]},`Scroll Down Hover`),alias:`Scroll Down Hover`,precondition:e.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:e.EditorContextKeys.hoverFocused,primary:18,weight:100},metadata:{description:e.localize2(`scrollDownHoverDescription`,`Scroll down the editor hover.`)}})}run(e,t){let n=q.get(t);n&&n.scrollDown()}},Yw=class extends e.EditorAction{constructor(){super({id:`editor.action.scrollLeftHover`,label:e.localize({key:`scrollLeftHover`,comment:[`Action that allows to scroll left in the hover widget with the left arrow when the hover widget is focused.`]},`Scroll Left Hover`),alias:`Scroll Left Hover`,precondition:e.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:e.EditorContextKeys.hoverFocused,primary:15,weight:100},metadata:{description:e.localize2(`scrollLeftHoverDescription`,`Scroll left the editor hover.`)}})}run(e,t){let n=q.get(t);n&&n.scrollLeft()}},Xw=class extends e.EditorAction{constructor(){super({id:`editor.action.scrollRightHover`,label:e.localize({key:`scrollRightHover`,comment:[`Action that allows to scroll right in the hover widget with the right arrow when the hover widget is focused.`]},`Scroll Right Hover`),alias:`Scroll Right Hover`,precondition:e.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:e.EditorContextKeys.hoverFocused,primary:17,weight:100},metadata:{description:e.localize2(`scrollRightHoverDescription`,`Scroll right the editor hover.`)}})}run(e,t){let n=q.get(t);n&&n.scrollRight()}},Zw=class extends e.EditorAction{constructor(){super({id:`editor.action.pageUpHover`,label:e.localize({key:`pageUpHover`,comment:[`Action that allows to page up in the hover widget with the page up command when the hover widget is focused.`]},`Page Up Hover`),alias:`Page Up Hover`,precondition:e.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:e.EditorContextKeys.hoverFocused,primary:11,secondary:[528],weight:100},metadata:{description:e.localize2(`pageUpHoverDescription`,`Page up the editor hover.`)}})}run(e,t){let n=q.get(t);n&&n.pageUp()}},Qw=class extends e.EditorAction{constructor(){super({id:`editor.action.pageDownHover`,label:e.localize({key:`pageDownHover`,comment:[`Action that allows to page down in the hover widget with the page down command when the hover widget is focused.`]},`Page Down Hover`),alias:`Page Down Hover`,precondition:e.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:e.EditorContextKeys.hoverFocused,primary:12,secondary:[530],weight:100},metadata:{description:e.localize2(`pageDownHoverDescription`,`Page down the editor hover.`)}})}run(e,t){let n=q.get(t);n&&n.pageDown()}},$w=class extends e.EditorAction{constructor(){super({id:`editor.action.goToTopHover`,label:e.localize({key:`goToTopHover`,comment:[`Action that allows to go to the top of the hover widget with the home command when the hover widget is focused.`]},`Go To Top Hover`),alias:`Go To Bottom Hover`,precondition:e.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:e.EditorContextKeys.hoverFocused,primary:14,secondary:[2064],weight:100},metadata:{description:e.localize2(`goToTopHoverDescription`,`Go to the top of the editor hover.`)}})}run(e,t){let n=q.get(t);n&&n.goToTop()}},eT=class extends e.EditorAction{constructor(){super({id:`editor.action.goToBottomHover`,label:e.localize({key:`goToBottomHover`,comment:[`Action that allows to go to the bottom in the hover widget with the end command when the hover widget is focused.`]},`Go To Bottom Hover`),alias:`Go To Bottom Hover`,precondition:e.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:e.EditorContextKeys.hoverFocused,primary:13,secondary:[2066],weight:100},metadata:{description:e.localize2(`goToBottomHoverDescription`,`Go to the bottom of the editor hover.`)}})}run(e,t){let n=q.get(t);n&&n.goToBottom()}},tT=class extends e.EditorAction{constructor(){super({id:Tp,label:Ep,alias:`Increase Hover Verbosity Level`,precondition:e.EditorContextKeys.hoverVisible})}run(t,n,r){let i=q.get(n);if(!i)return;let a=r?.index===void 0?i.focusedHoverPartIndex():r.index;i.updateHoverVerbosityLevel(e.HoverVerbosityAction.Increase,a,r?.focus)}},nT=class extends e.EditorAction{constructor(){super({id:Dp,label:Op,alias:`Decrease Hover Verbosity Level`,precondition:e.EditorContextKeys.hoverVisible})}run(t,n,r){let i=q.get(n);if(!i)return;let a=r?.index===void 0?i.focusedHoverPartIndex():r.index;q.get(n)?.updateHoverVerbosityLevel(e.HoverVerbosityAction.Decrease,a,r?.focus)}},rT=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},iT=function(e,t){return function(n,r){t(n,r,e)}},aT=e.$,oT=class{constructor(e,t,n){this.owner=e,this.range=t,this.marker=n}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}},sT={type:1,filter:{include:K.QuickFix},triggerAction:cu.QuickFixHover},cT=class{constructor(e,t,n,r){this._editor=e,this._markerDecorationsService=t,this._openerService=n,this._languageFeaturesService=r,this.hoverOrdinal=1,this.recentMarkerCodeActionsInfo=void 0}computeSync(t,n){if(!this._editor.hasModel()||t.type!==1&&!t.supportsMarkerHover)return[];let r=this._editor.getModel(),i=t.range.startLineNumber,a=r.getLineMaxColumn(i),o=[];for(let s of n){let n=s.range.startLineNumber===i?s.range.startColumn:1,c=s.range.endLineNumber===i?s.range.endColumn:a,l=this._markerDecorationsService.getMarker(r.uri,s);if(!l)continue;let u=new e.Range$1(t.range.startLineNumber,n,t.range.startLineNumber,c);o.push(new oT(this,u,l))}return o}renderHoverParts(t,n){if(!n.length)return new rp([]);let r=new e.DisposableStore,i=[];n.forEach(e=>{let n=this._renderMarkerHover(e);t.fragment.appendChild(n.hoverElement),i.push(n)});let a=n.length===1?n[0]:n.sort((t,n)=>e.MarkerSeverity$1.compare(t.marker.severity,n.marker.severity))[0];return this.renderMarkerStatusbar(t,a,r),new rp(i)}_renderMarkerHover(t){let n=new e.DisposableStore,r=aT(`div.hover-row`),i=e.append(r,aT(`div.marker.hover-contents`)),{source:a,message:o,code:s,relatedInformation:c}=t.marker;this._editor.applyFontInfo(i);let l=e.append(i,aT(`span`));if(l.style.whiteSpace=`pre-wrap`,l.innerText=o,a||s)if(s&&typeof s!=`string`){let t=aT(`span`);if(a){let n=e.append(t,aT(`span`));n.innerText=a}let r=e.append(t,aT(`a.code-link`));r.setAttribute(`href`,s.target.toString()),n.add(e.addDisposableListener(r,`click`,e=>{this._openerService.open(s.target,{allowCommands:!0}),e.preventDefault(),e.stopPropagation()}));let o=e.append(r,aT(`span`));o.innerText=s.value;let c=e.append(i,t);c.style.opacity=`0.6`,c.style.paddingLeft=`6px`}else{let t=e.append(i,aT(`span`));t.style.opacity=`0.6`,t.style.paddingLeft=`6px`,t.innerText=a&&s?`${a}(${s})`:a||`(${s})`}if(e.isNonEmptyArray(c))for(let{message:t,resource:r,startLineNumber:a,startColumn:o}of c){let s=e.append(i,aT(`div`));s.style.marginTop=`8px`;let c=e.append(s,aT(`a`));c.innerText=`${e.basename(r)}(${a}, ${o}): `,c.style.cursor=`pointer`,n.add(e.addDisposableListener(c,`click`,t=>{if(t.stopPropagation(),t.preventDefault(),this._openerService){let t={selection:{startLineNumber:a,startColumn:o}};this._openerService.open(r,{fromUserGesture:!0,editorOptions:t}).catch(e.onUnexpectedError)}}));let l=e.append(s,aT(`span`));l.innerText=t,this._editor.applyFontInfo(l)}return{hoverPart:t,hoverElement:r,dispose:()=>n.dispose()}}renderMarkerStatusbar(t,n,r){if(n.marker.severity===e.MarkerSeverity$1.Error||n.marker.severity===e.MarkerSeverity$1.Warning||n.marker.severity===e.MarkerSeverity$1.Info){let r=Iw.get(this._editor);r&&t.statusBar.addAction({label:e.localize(`view problem`,`View Problem`),commandId:Rw.ID,run:()=>{t.hide(),r.showAtMarker(n.marker),this._editor.focus()}})}if(!this._editor.getOption(92)){let i=t.statusBar.append(aT(`div`));this.recentMarkerCodeActionsInfo&&(e.IMarkerData.makeKey(this.recentMarkerCodeActionsInfo.marker)===e.IMarkerData.makeKey(n.marker)?this.recentMarkerCodeActionsInfo.hasCodeActions||(i.textContent=e.localize(`noQuickFixes`,`No quick fixes available`)):this.recentMarkerCodeActionsInfo=void 0);let a=this.recentMarkerCodeActionsInfo&&!this.recentMarkerCodeActionsInfo.hasCodeActions?e.Disposable.None:e.disposableTimeout(()=>i.textContent=e.localize(`checkingForQuickFixes`,`Checking for quick fixes...`),200,r);i.textContent||=`\xA0`;let o=this.getCodeActions(n.marker);r.add(e.toDisposable(()=>o.cancel())),o.then(o=>{if(a.dispose(),this.recentMarkerCodeActionsInfo={marker:n.marker,hasCodeActions:o.validActions.length>0},!this.recentMarkerCodeActionsInfo.hasCodeActions){o.dispose(),i.textContent=e.localize(`noQuickFixes`,`No quick fixes available`);return}i.style.display=`none`;let s=!1;r.add(e.toDisposable(()=>{s||o.dispose()})),t.statusBar.addAction({label:e.localize(`quick fixes`,`Quick Fix...`),commandId:hu,run:n=>{s=!0;let r=$d.get(this._editor),i=e.getDomNodePagePosition(n);t.hide(),r?.showCodeActions(sT,o,{x:i.left,y:i.top,width:i.width,height:i.height})}})},e.onUnexpectedError)}}getCodeActions(t){return e.createCancelablePromise(n=>Cu(this._languageFeaturesService.codeActionProvider,this._editor.getModel(),new e.Range$1(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn),sT,e.Progress.None,n))}};cT=rT([iT(1,e.IMarkerDecorationsService),iT(2,e.IOpenerService),iT(3,e.ILanguageFeaturesService)],cT);var lT=class{get lineNumber(){return this._lineNumber}set lineNumber(e){this._lineNumber=e}get lane(){return this._laneOrLine}set lane(e){this._laneOrLine=e}constructor(t){this._editor=t,this._lineNumber=-1,this._laneOrLine=e.GlyphMarginLane.Center}computeSync(){let t=e=>({value:e}),n=this._editor.getLineDecorations(this._lineNumber),r=[],i=this._laneOrLine===`lineNo`;if(!n)return r;for(let a of n){let n=a.options.glyphMargin?.position??e.GlyphMarginLane.Center;if(!i&&n!==this._laneOrLine)continue;let o=i?a.options.lineNumberHoverMessage:a.options.glyphMarginHoverMessage;!o||e.isEmptyMarkdownString(o)||r.push(...e.asArray(o).map(t))}return r}},uT=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},dT=function(e,t){return function(n,r){t(n,r,e)}},fT,pT=e.$,mT=class extends e.Disposable{static{fT=this}static{this.ID=`editor.contrib.modesGlyphHoverWidget`}constructor(t,n,r){super(),this._renderDisposeables=this._register(new e.DisposableStore),this._editor=t,this._isVisible=!1,this._messages=[],this._hover=this._register(new e.HoverWidget),this._hover.containerDomNode.classList.toggle(`hidden`,!this._isVisible),this._markdownRenderer=this._register(new e.MarkdownRenderer({editor:this._editor},n,r)),this._computer=new lT(this._editor),this._hoverOperation=this._register(new Wp(this._editor,this._computer)),this._register(this._hoverOperation.onResult(e=>{this._withResult(e.value)})),this._register(this._editor.onDidChangeModelDecorations(()=>this._onModelDecorationsChanged())),this._register(this._editor.onDidChangeConfiguration(e=>{e.hasChanged(50)&&this._updateFont()})),this._register(e.addStandardDisposableListener(this._hover.containerDomNode,`mouseleave`,e=>{this._onMouseLeave(e)})),this._editor.addOverlayWidget(this)}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return fT.ID}getDomNode(){return this._hover.containerDomNode}getPosition(){return null}_updateFont(){Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName(`code`)).forEach(e=>this._editor.applyFontInfo(e))}_onModelDecorationsChanged(){this._isVisible&&(this._hoverOperation.cancel(),this._hoverOperation.start(0))}showsOrWillShow(e){let t=e.target;return t.type===2&&t.detail.glyphMarginLane?(this._startShowingAt(t.position.lineNumber,t.detail.glyphMarginLane),!0):t.type===3?(this._startShowingAt(t.position.lineNumber,`lineNo`),!0):!1}_startShowingAt(e,t){this._computer.lineNumber===e&&this._computer.lane===t||(this._hoverOperation.cancel(),this.hide(),this._computer.lineNumber=e,this._computer.lane=t,this._hoverOperation.start(0))}hide(){this._computer.lineNumber=-1,this._hoverOperation.cancel(),this._isVisible&&(this._isVisible=!1,this._hover.containerDomNode.classList.toggle(`hidden`,!this._isVisible))}_withResult(e){this._messages=e,this._messages.length>0?this._renderMessages(this._computer.lineNumber,this._messages):this.hide()}_renderMessages(t,n){this._renderDisposeables.clear();let r=document.createDocumentFragment();for(let t of n){let n=pT(`div.hover-row.markdown-hover`),i=e.append(n,pT(`div.hover-contents`)),a=this._renderDisposeables.add(this._markdownRenderer.render(t.value));i.appendChild(a.element),r.appendChild(n)}this._updateContents(r),this._showAt(t)}_updateContents(e){this._hover.contentsDomNode.textContent=``,this._hover.contentsDomNode.appendChild(e),this._updateFont()}_showAt(e){this._isVisible||(this._isVisible=!0,this._hover.containerDomNode.classList.toggle(`hidden`,!this._isVisible));let t=this._editor.getLayoutInfo(),n=this._editor.getTopForLineNumber(e),r=this._editor.getScrollTop(),i=this._editor.getOption(67),a=this._hover.containerDomNode.clientHeight,o=n-r-(a-i)/2,s=t.glyphMarginLeft+t.glyphMarginWidth+(this._computer.lane===`lineNo`?t.lineNumbersWidth:0);this._hover.containerDomNode.style.left=`${s}px`,this._hover.containerDomNode.style.top=`${Math.max(Math.round(o),0)}px`}_onMouseLeave(e){let t=this._editor.getDomNode();(!t||!Hp(t,e.x,e.y))&&this.hide()}};mT=fT=uT([dT(1,e.ILanguageService),dT(2,e.IOpenerService)],mT);var hT=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},gT=function(e,t){return function(n,r){t(n,r,e)}},_T=class extends e.Disposable{static{this.ID=`editor.contrib.marginHover`}constructor(t,n){super(),this._editor=t,this._instantiationService=n,this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new e.DisposableStore,this._hoverState={mouseDown:!1},this._reactToEditorMouseMoveRunner=this._register(new e.RunOnceScheduler(()=>this._reactToEditorMouseMove(this._mouseMoveEvent),0)),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration(e=>{e.hasChanged(60)&&(this._unhookListeners(),this._hookListeners())}))}_hookListeners(){let e=this._editor.getOption(60);this._hoverSettings={enabled:e.enabled,sticky:e.sticky,hidingDelay:e.hidingDelay},e.enabled?(this._listenersStore.add(this._editor.onMouseDown(e=>this._onEditorMouseDown(e))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove(e=>this._onEditorMouseMove(e))),this._listenersStore.add(this._editor.onKeyDown(e=>this._onKeyDown(e)))):(this._listenersStore.add(this._editor.onMouseMove(e=>this._onEditorMouseMove(e))),this._listenersStore.add(this._editor.onKeyDown(e=>this._onKeyDown(e)))),this._listenersStore.add(this._editor.onMouseLeave(e=>this._onEditorMouseLeave(e))),this._listenersStore.add(this._editor.onDidChangeModel(()=>{this._cancelScheduler(),this._hideWidgets()})),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange(e=>this._onEditorScrollChanged(e)))}_unhookListeners(){this._listenersStore.clear()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(e){(e.scrollTopChanged||e.scrollLeftChanged)&&this._hideWidgets()}_onEditorMouseDown(e){this._hoverState.mouseDown=!0,!this._isMouseOnMarginHoverWidget(e)&&this._hideWidgets()}_isMouseOnMarginHoverWidget(e){let t=this._glyphWidget?.getDomNode();return t?Hp(t,e.event.posx,e.event.posy):!1}_onEditorMouseUp(){this._hoverState.mouseDown=!1}_onEditorMouseLeave(e){this.shouldKeepOpenOnEditorMouseMoveOrLeave||(this._cancelScheduler(),!this._isMouseOnMarginHoverWidget(e)&&this._hideWidgets())}_shouldNotRecomputeCurrentHoverWidget(e){let t=this._hoverSettings.sticky,n=this._isMouseOnMarginHoverWidget(e);return t&&n}_onEditorMouseMove(e){if(!this.shouldKeepOpenOnEditorMouseMoveOrLeave){if(this._mouseMoveEvent=e,this._shouldNotRecomputeCurrentHoverWidget(e)){this._reactToEditorMouseMoveRunner.cancel();return}this._reactToEditorMouseMove(e)}}_reactToEditorMouseMove(e){e&&(this._tryShowHoverWidget(e)||this._hideWidgets())}_tryShowHoverWidget(e){return this._getOrCreateGlyphWidget().showsOrWillShow(e)}_onKeyDown(e){this._editor.hasModel()&&(e.keyCode===5||e.keyCode===6||e.keyCode===57||e.keyCode===4||this._hideWidgets())}_hideWidgets(){this._glyphWidget?.hide()}_getOrCreateGlyphWidget(){return this._glyphWidget||=this._instantiationService.createInstance(mT,this._editor),this._glyphWidget}dispose(){super.dispose(),this._unhookListeners(),this._listenersStore.dispose(),this._glyphWidget?.dispose()}};_T=hT([gT(1,e.IInstantiationService)],_T);var vT=class{},yT=class{},bT=class{};e.registerEditorContribution(q.ID,q,2),e.registerEditorContribution(_T.ID,_T,2),e.registerEditorAction(Gw),e.registerEditorAction(Kw),e.registerEditorAction(qw),e.registerEditorAction(Jw),e.registerEditorAction(Yw),e.registerEditorAction(Xw),e.registerEditorAction(Zw),e.registerEditorAction(Qw),e.registerEditorAction($w),e.registerEditorAction(eT),e.registerEditorAction(tT),e.registerEditorAction(nT),ip.register(xm),ip.register(cT),e.registerThemingParticipant((t,n)=>{let r=t.getColor(e.editorHoverBorder);r&&(n.addRule(`.monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${r.transparent(.5)}; }`),n.addRule(`.monaco-editor .monaco-hover hr { border-top: 1px solid ${r.transparent(.5)}; }`),n.addRule(`.monaco-editor .monaco-hover hr { border-bottom: 0px solid ${r.transparent(.5)}; }`))}),ow.register(new vT),ow.register(new yT),ow.register(new bT);function xT(e,t){let n=0;for(let r=0;r<e.length;r++)e.charAt(r)===` `?n+=t:n++;return n}function ST(e,t,n){e=e<0?0:e;let r=``;if(!n){let n=Math.floor(e/t);e%=t;for(let e=0;e<n;e++)r+=` `}for(let t=0;t<e;t++)r+=` `;return r}function CT(t,n,r,i){if(t.getLineCount()===1&&t.getLineMaxColumn(1)===1)return[];let a=n.getLanguageConfiguration(t.getLanguageId()).indentRulesSupport;if(!a)return[];let o=new e.ProcessedIndentRulesSupport(t,a,n);for(i=Math.min(i,t.getLineCount());r<=i&&o.shouldIgnore(r);)r++;if(r>i-1)return[];let{tabSize:s,indentSize:c,insertSpaces:l}=t.getOptions(),u=(t,n)=>(n||=1,e.ShiftCommand.shiftIndent(t,t.length+n,s,c,l)),d=(t,n)=>(n||=1,e.ShiftCommand.unshiftIndent(t,t.length+n,s,c,l)),f=[],p=t.getLineContent(r),m=e.getLeadingWhitespace(p),h=m;o.shouldIncrease(r)?(h=u(h),m=u(m)):o.shouldIndentNextLine(r)&&(h=u(h)),r++;for(let n=r;n<=i;n++){if(wT(t,n))continue;let r=t.getLineContent(n),i=e.getLeadingWhitespace(r),a=h;o.shouldDecrease(n,a)&&(h=d(h),m=d(m)),i!==h&&f.push(e.EditOperation.replaceMove(new e.Selection$1(n,1,n,i.length+1),e.normalizeIndentation(h,c,l))),!o.shouldIgnore(n)&&(o.shouldIncrease(n,a)?(m=u(m),h=m):h=o.shouldIndentNextLine(n,a)?u(h):m)}return f}function wT(e,t){return e.tokenization.isCheapToTokenize(t)?e.tokenization.getLineTokens(t).getStandardTokenType(0)===2:!1}var TT=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},ET=function(e,t){return function(n,r){t(n,r,e)}},DT=class t extends e.EditorAction{static{this.ID=`editor.action.indentationToSpaces`}constructor(){super({id:t.ID,label:e.localize(`indentationToSpaces`,`Convert Indentation to Spaces`),alias:`Convert Indentation to Spaces`,precondition:e.EditorContextKeys.writable,metadata:{description:e.localize2(`indentationToSpacesDescription`,`Convert the tab indentation to spaces.`)}})}run(e,t){let n=t.getModel();if(!n)return;let r=n.getOptions(),i=t.getSelection();if(!i)return;let a=new BT(i,r.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[a]),t.pushUndoStop(),n.updateOptions({insertSpaces:!0})}},OT=class t extends e.EditorAction{static{this.ID=`editor.action.indentationToTabs`}constructor(){super({id:t.ID,label:e.localize(`indentationToTabs`,`Convert Indentation to Tabs`),alias:`Convert Indentation to Tabs`,precondition:e.EditorContextKeys.writable,metadata:{description:e.localize2(`indentationToTabsDescription`,`Convert the spaces indentation to tabs.`)}})}run(e,t){let n=t.getModel();if(!n)return;let r=n.getOptions(),i=t.getSelection();if(!i)return;let a=new VT(i,r.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[a]),t.pushUndoStop(),n.updateOptions({insertSpaces:!1})}},kT=class extends e.EditorAction{constructor(e,t,n){super(n),this.insertSpaces=e,this.displaySizeOnly=t}run(t,n){let r=t.get(e.IQuickInputService),i=t.get(e.IModelService),a=n.getModel();if(!a)return;let o=i.getCreationOptions(a.getLanguageId(),a.uri,a.isForSimpleWidget),s=a.getOptions(),c=[1,2,3,4,5,6,7,8].map(t=>({id:t.toString(),label:t.toString(),description:t===o.tabSize&&t===s.tabSize?e.localize(`configuredTabSize`,`Configured Tab Size`):t===o.tabSize?e.localize(`defaultTabSize`,`Default Tab Size`):t===s.tabSize?e.localize(`currentTabSize`,`Current Tab Size`):void 0})),l=Math.min(a.getOptions().tabSize-1,7);setTimeout(()=>{r.pick(c,{placeHolder:e.localize({key:`selectTabWidth`,comment:[`Tab corresponds to the tab key`]},`Select Tab Size for Current File`),activeItem:c[l]}).then(e=>{if(e&&a&&!a.isDisposed()){let t=parseInt(e.label,10);this.displaySizeOnly?a.updateOptions({tabSize:t}):a.updateOptions({tabSize:t,indentSize:t,insertSpaces:this.insertSpaces})}})},50)}},AT=class t extends kT{static{this.ID=`editor.action.indentUsingTabs`}constructor(){super(!1,!1,{id:t.ID,label:e.localize(`indentUsingTabs`,`Indent Using Tabs`),alias:`Indent Using Tabs`,precondition:void 0,metadata:{description:e.localize2(`indentUsingTabsDescription`,`Use indentation with tabs.`)}})}},jT=class t extends kT{static{this.ID=`editor.action.indentUsingSpaces`}constructor(){super(!0,!1,{id:t.ID,label:e.localize(`indentUsingSpaces`,`Indent Using Spaces`),alias:`Indent Using Spaces`,precondition:void 0,metadata:{description:e.localize2(`indentUsingSpacesDescription`,`Use indentation with spaces.`)}})}},MT=class t extends kT{static{this.ID=`editor.action.changeTabDisplaySize`}constructor(){super(!0,!0,{id:t.ID,label:e.localize(`changeTabDisplaySize`,`Change Tab Display Size`),alias:`Change Tab Display Size`,precondition:void 0,metadata:{description:e.localize2(`changeTabDisplaySizeDescription`,`Change the space size equivalent of the tab.`)}})}},NT=class t extends e.EditorAction{static{this.ID=`editor.action.detectIndentation`}constructor(){super({id:t.ID,label:e.localize(`detectIndentation`,`Detect Indentation from Content`),alias:`Detect Indentation from Content`,precondition:void 0,metadata:{description:e.localize2(`detectIndentationDescription`,`Detect the indentation from content.`)}})}run(t,n){let r=t.get(e.IModelService),i=n.getModel();if(!i)return;let a=r.getCreationOptions(i.getLanguageId(),i.uri,i.isForSimpleWidget);i.detectIndentation(a.insertSpaces,a.tabSize)}},PT=class extends e.EditorAction{constructor(){super({id:`editor.action.reindentlines`,label:e.localize(`editor.reindentlines`,`Reindent Lines`),alias:`Reindent Lines`,precondition:e.EditorContextKeys.writable,metadata:{description:e.localize2(`editor.reindentlinesDescription`,`Reindent the lines of the editor.`)}})}run(t,n){let r=t.get(e.ILanguageConfigurationService),i=n.getModel();if(!i)return;let a=CT(i,r,1,i.getLineCount());a.length>0&&(n.pushUndoStop(),n.executeEdits(this.id,a),n.pushUndoStop())}},FT=class extends e.EditorAction{constructor(){super({id:`editor.action.reindentselectedlines`,label:e.localize(`editor.reindentselectedlines`,`Reindent Selected Lines`),alias:`Reindent Selected Lines`,precondition:e.EditorContextKeys.writable,metadata:{description:e.localize2(`editor.reindentselectedlinesDescription`,`Reindent the selected lines of the editor.`)}})}run(t,n){let r=t.get(e.ILanguageConfigurationService),i=n.getModel();if(!i)return;let a=n.getSelections();if(a===null)return;let o=[];for(let e of a){let t=e.startLineNumber,n=e.endLineNumber;if(t!==n&&e.endColumn===1&&n--,t===1){if(t===n)continue}else t--;let a=CT(i,r,t,n);o.push(...a)}o.length>0&&(n.pushUndoStop(),n.executeEdits(this.id,o),n.pushUndoStop())}},IT=class{constructor(e,t){this._initialSelection=t,this._edits=[],this._selectionId=null;for(let t of e)t.range&&typeof t.text==`string`&&this._edits.push(t)}getEditOperations(t,n){for(let t of this._edits)n.addEditOperation(e.Range$1.lift(t.range),t.text);let r=!1;Array.isArray(this._edits)&&this._edits.length===1&&this._initialSelection.isEmpty()&&(this._edits[0].range.startColumn===this._initialSelection.endColumn&&this._edits[0].range.startLineNumber===this._initialSelection.endLineNumber?(r=!0,this._selectionId=n.trackSelection(this._initialSelection,!0)):this._edits[0].range.endColumn===this._initialSelection.startColumn&&this._edits[0].range.endLineNumber===this._initialSelection.startLineNumber&&(r=!0,this._selectionId=n.trackSelection(this._initialSelection,!1))),r||(this._selectionId=n.trackSelection(this._initialSelection))}computeCursorState(e,t){return t.getTrackedSelection(this._selectionId)}},LT=class{static{this.ID=`editor.contrib.autoIndentOnPaste`}constructor(t,n){this.editor=t,this._languageConfigurationService=n,this.callOnDispose=new e.DisposableStore,this.callOnModel=new e.DisposableStore,this.callOnDispose.add(t.onDidChangeConfiguration(()=>this.update())),this.callOnDispose.add(t.onDidChangeModel(()=>this.update())),this.callOnDispose.add(t.onDidChangeModelLanguage(()=>this.update()))}update(){this.callOnModel.clear(),!(this.editor.getOption(12)<4||this.editor.getOption(55))&&this.editor.hasModel()&&this.callOnModel.add(this.editor.onDidPaste(({range:e})=>{this.trigger(e)}))}trigger(t){let n=this.editor.getSelections();if(n===null||n.length>1)return;let r=this.editor.getModel();if(!r||this.rangeContainsOnlyWhitespaceCharacters(r,t)||RT(r,t)||!r.tokenization.isCheapToTokenize(t.getStartPosition().lineNumber))return;let i=this.editor.getOption(12),{tabSize:a,indentSize:o,insertSpaces:s}=r.getOptions(),c=[],l={shiftIndent:t=>e.ShiftCommand.shiftIndent(t,t.length+1,a,o,s),unshiftIndent:t=>e.ShiftCommand.unshiftIndent(t,t.length+1,a,o,s)},u=t.startLineNumber;for(;u<=t.endLineNumber;){if(this.shouldIgnoreLine(r,u)){u++;continue}break}if(u>t.endLineNumber)return;let d=r.getLineContent(u);if(!/\S/.test(d.substring(0,t.startColumn-1))){let t=e.getGoodIndentForLine(i,r,r.getLanguageId(),u,l,this._languageConfigurationService);if(t!==null){let n=e.getLeadingWhitespace(d),i=xT(t,a),o=xT(n,a);if(i!==o){let t=ST(i,a,s);c.push({range:new e.Range$1(u,1,u,n.length+1),text:t}),d=t+d.substring(n.length)}else{let t=e.getIndentMetadata(r,u,this._languageConfigurationService);if(t===0||t===8)return}}}let f=u;for(;u<t.endLineNumber;){if(!/\S/.test(r.getLineContent(u+1))){u++;continue}break}if(u!==t.endLineNumber){let n=e.getGoodIndentForLine(i,{tokenization:{getLineTokens:e=>r.tokenization.getLineTokens(e),getLanguageId:()=>r.getLanguageId(),getLanguageIdAtPosition:(e,t)=>r.getLanguageIdAtPosition(e,t)},getLineContent:e=>e===f?d:r.getLineContent(e)},r.getLanguageId(),u+1,l,this._languageConfigurationService);if(n!==null){let i=xT(n,a),o=xT(e.getLeadingWhitespace(r.getLineContent(u+1)),a);if(i!==o){let n=i-o;for(let i=u+1;i<=t.endLineNumber;i++){let t=r.getLineContent(i),o=e.getLeadingWhitespace(t),l=xT(o,a)+n,u=ST(l,a,s);u!==o&&c.push({range:new e.Range$1(i,1,i,o.length+1),text:u})}}}}if(c.length>0){this.editor.pushUndoStop();let e=new IT(c,this.editor.getSelection());this.editor.executeCommand(`autoIndentOnPaste`,e),this.editor.pushUndoStop()}}rangeContainsOnlyWhitespaceCharacters(e,t){let n=e=>e.trim().length===0,r=!0;if(t.startLineNumber===t.endLineNumber){let i=e.getLineContent(t.startLineNumber).substring(t.startColumn-1,t.endColumn-1);r=n(i)}else for(let i=t.startLineNumber;i<=t.endLineNumber;i++){let a=e.getLineContent(i);if(i===t.startLineNumber){let e=a.substring(t.startColumn-1);r=n(e)}else if(i===t.endLineNumber){let e=a.substring(0,t.endColumn-1);r=n(e)}else r=e.getLineFirstNonWhitespaceColumn(i)===0;if(!r)break}return r}shouldIgnoreLine(e,t){e.tokenization.forceTokenization(t);let n=e.getLineFirstNonWhitespaceColumn(t);if(n===0)return!0;let r=e.tokenization.getLineTokens(t);if(r.getCount()>0){let e=r.findTokenIndexAtOffset(n);if(e>=0&&r.getStandardTokenType(e)===1)return!0}return!1}dispose(){this.callOnDispose.dispose(),this.callOnModel.dispose()}};LT=TT([ET(1,e.ILanguageConfigurationService)],LT);function RT(t,n){let r=n=>e.getStandardTokenTypeAtPosition(t,n)===2;return r(n.getStartPosition())||r(n.getEndPosition())}function zT(t,n,r,i){if(t.getLineCount()===1&&t.getLineMaxColumn(1)===1)return;let a=``;for(let e=0;e<r;e++)a+=` `;let o=new RegExp(a,`gi`);for(let r=1,s=t.getLineCount();r<=s;r++){let s=t.getLineFirstNonWhitespaceColumn(r);if(s===0&&(s=t.getLineMaxColumn(r)),s===1)continue;let c=new e.Range$1(r,1,r,s),l=t.getValueInRange(c),u=i?l.replace(/\t/gi,a):l.replace(o,` `);n.addEditOperation(c,u)}}var BT=class{constructor(e,t){this.selection=e,this.tabSize=t,this.selectionId=null}getEditOperations(e,t){this.selectionId=t.trackSelection(this.selection),zT(e,t,this.tabSize,!0)}computeCursorState(e,t){return t.getTrackedSelection(this.selectionId)}},VT=class{constructor(e,t){this.selection=e,this.tabSize=t,this.selectionId=null}getEditOperations(e,t){this.selectionId=t.trackSelection(this.selection),zT(e,t,this.tabSize,!1)}computeCursorState(e,t){return t.getTrackedSelection(this.selectionId)}};e.registerEditorContribution(LT.ID,LT,2),e.registerEditorAction(DT),e.registerEditorAction(OT),e.registerEditorAction(AT),e.registerEditorAction(jT),e.registerEditorAction(MT),e.registerEditorAction(NT),e.registerEditorAction(PT),e.registerEditorAction(FT),e.registerEditorContribution(xg.ID,xg,1),ip.register(Eg);var HT=class{constructor(e,t,n){this._editRange=e,this._originalSelection=t,this._text=n}getEditOperations(e,t){t.addTrackedEditOperation(this._editRange,this._text)}computeCursorState(t,n){let r=n.getInverseEditOperations()[0].range;return this._originalSelection.isEmpty()?new e.Selection$1(r.endLineNumber,Math.min(this._originalSelection.positionColumn,r.endColumn),r.endLineNumber,Math.min(this._originalSelection.positionColumn,r.endColumn)):new e.Selection$1(r.endLineNumber,r.endColumn-this._text.length,r.endLineNumber,r.endColumn)}},UT=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},WT=function(e,t){return function(n,r){t(n,r,e)}},GT,KT=class{static{GT=this}static{this.ID=`editor.contrib.inPlaceReplaceController`}static get(e){return e.getContribution(GT.ID)}static{this.DECORATION=e.ModelDecorationOptions.register({description:`in-place-replace`,className:`valueSetReplacement`})}constructor(e,t){this.editor=e,this.editorWorkerService=t,this.decorations=this.editor.createDecorationsCollection()}dispose(){}run(t,n){this.currentRequest?.cancel();let r=this.editor.getSelection(),i=this.editor.getModel();if(!i||!r)return;let a=r;if(a.startLineNumber!==a.endLineNumber)return;let o=new e.EditorState(this.editor,5),s=i.uri;return this.editorWorkerService.canNavigateValueSet(s)?(this.currentRequest=e.createCancelablePromise(e=>this.editorWorkerService.navigateValueSet(s,a,n)),this.currentRequest.then(n=>{if(!n||!n.range||!n.value||!o.validate(this.editor))return;let r=e.Range$1.lift(n.range),i=n.range,s=n.value.length-(a.endColumn-a.startColumn);i={startLineNumber:i.startLineNumber,startColumn:i.startColumn,endLineNumber:i.endLineNumber,endColumn:i.startColumn+n.value.length},s>1&&(a=new e.Selection$1(a.startLineNumber,a.startColumn,a.endLineNumber,a.endColumn+s-1));let c=new HT(r,a,n.value);this.editor.pushUndoStop(),this.editor.executeCommand(t,c),this.editor.pushUndoStop(),this.decorations.set([{range:i,options:GT.DECORATION}]),this.decorationRemover?.cancel(),this.decorationRemover=e.timeout(350),this.decorationRemover.then(()=>this.decorations.clear()).catch(e.onUnexpectedError)}).catch(e.onUnexpectedError)):Promise.resolve(void 0)}};KT=GT=UT([WT(1,e.IEditorWorkerService)],KT);var qT=class extends e.EditorAction{constructor(){super({id:`editor.action.inPlaceReplace.up`,label:e.localize(`InPlaceReplaceAction.previous.label`,`Replace with Previous Value`),alias:`Replace with Previous Value`,precondition:e.EditorContextKeys.writable,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:3159,weight:100}})}run(e,t){let n=KT.get(t);return n?n.run(this.id,!1):Promise.resolve(void 0)}},JT=class extends e.EditorAction{constructor(){super({id:`editor.action.inPlaceReplace.down`,label:e.localize(`InPlaceReplaceAction.next.label`,`Replace with Next Value`),alias:`Replace with Next Value`,precondition:e.EditorContextKeys.writable,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:3161,weight:100}})}run(e,t){let n=KT.get(t);return n?n.run(this.id,!0):Promise.resolve(void 0)}};e.registerEditorContribution(KT.ID,KT,4),e.registerEditorAction(qT),e.registerEditorAction(JT);var YT=class extends e.EditorAction{constructor(){super({id:`expandLineSelection`,label:e.localize(`expandLineSelection`,`Expand Line Selection`),alias:`Expand Line Selection`,precondition:void 0,kbOpts:{weight:0,kbExpr:e.EditorContextKeys.textInputFocus,primary:2090}})}run(t,n,r){if(r||={},!n.hasModel())return;let i=n._getViewModel();i.model.pushStackElement(),i.setCursorStates(r.source,3,e.CursorMoveCommands.expandLineSelection(i,i.getCursorStates())),i.revealAllCursors(r.source,!0)}};e.registerEditorAction(YT);var XT=class{constructor(e,t,n){this._selection=e,this._cursors=t,this._selectionId=null,this._trimInRegexesAndStrings=n}getEditOperations(e,t){let n=ZT(e,this._cursors,this._trimInRegexesAndStrings);for(let e=0,r=n.length;e<r;e++){let r=n[e];t.addEditOperation(r.range,r.text)}this._selectionId=t.trackSelection(this._selection)}computeCursorState(e,t){return t.getTrackedSelection(this._selectionId)}};function ZT(t,n,r){n.sort((e,t)=>e.lineNumber===t.lineNumber?e.column-t.column:e.lineNumber-t.lineNumber);for(let e=n.length-2;e>=0;e--)n[e].lineNumber===n[e+1].lineNumber&&n.splice(e,1);let i=[],a=0,o=0,s=n.length;for(let c=1,l=t.getLineCount();c<=l;c++){let l=t.getLineContent(c),u=l.length+1,d=0;if(o<s&&n[o].lineNumber===c&&(d=n[o].column,o++,d===u)||l.length===0)continue;let f=e.lastNonWhitespaceIndex(l),p=0;if(f===-1)p=1;else if(f!==l.length-1)p=f+2;else continue;if(!r){if(!t.tokenization.hasAccurateTokensForLine(c))continue;let e=t.tokenization.getLineTokens(c),n=e.getStandardTokenType(e.findTokenIndexAtOffset(p));if(n===2||n===3)continue}p=Math.max(d,p),i[a++]=e.EditOperation.delete(new e.Range$1(c,p,c,u))}return i}var QT=class{constructor(e,t,n){this._selection=e,this._isCopyingDown=t,this._noop=n||!1,this._selectionDirection=0,this._selectionId=null,this._startLineNumberDelta=0,this._endLineNumberDelta=0}getEditOperations(t,n){let r=this._selection;this._startLineNumberDelta=0,this._endLineNumberDelta=0,r.startLineNumber<r.endLineNumber&&r.endColumn===1&&(this._endLineNumberDelta=1,r=r.setEndPosition(r.endLineNumber-1,t.getLineMaxColumn(r.endLineNumber-1)));let i=[];for(let e=r.startLineNumber;e<=r.endLineNumber;e++)i.push(t.getLineContent(e));let a=i.join(`
`);a===``&&this._isCopyingDown&&(this._startLineNumberDelta++,this._endLineNumberDelta++),this._noop?n.addEditOperation(new e.Range$1(r.endLineNumber,t.getLineMaxColumn(r.endLineNumber),r.endLineNumber+1,1),r.endLineNumber===t.getLineCount()?``:`
`):this._isCopyingDown?n.addEditOperation(new e.Range$1(r.startLineNumber,1,r.startLineNumber,1),a+`
`):n.addEditOperation(new e.Range$1(r.endLineNumber,t.getLineMaxColumn(r.endLineNumber),r.endLineNumber,t.getLineMaxColumn(r.endLineNumber)),`
`+a),this._selectionId=n.trackSelection(r),this._selectionDirection=this._selection.getDirection()}computeCursorState(t,n){let r=n.getTrackedSelection(this._selectionId);if(this._startLineNumberDelta!==0||this._endLineNumberDelta!==0){let t=r.startLineNumber,n=r.startColumn,i=r.endLineNumber,a=r.endColumn;this._startLineNumberDelta!==0&&(t+=this._startLineNumberDelta,n=1),this._endLineNumberDelta!==0&&(i+=this._endLineNumberDelta,a=1),r=e.Selection$1.createWithDirection(t,n,i,a,this._selectionDirection)}return r}},$T=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},eE=function(e,t){return function(n,r){t(n,r,e)}},tE=class{constructor(e,t,n,r){this._languageConfigurationService=r,this._selection=e,this._isMovingDown=t,this._autoIndent=n,this._selectionId=null,this._moveEndLineSelectionShrink=!1}getEditOperations(t,n){let r=()=>t.getLanguageId(),i=(e,n)=>t.getLanguageIdAtPosition(e,n),a=t.getLineCount();if(this._isMovingDown&&this._selection.endLineNumber===a){this._selectionId=n.trackSelection(this._selection);return}if(!this._isMovingDown&&this._selection.startLineNumber===1){this._selectionId=n.trackSelection(this._selection);return}this._moveEndPositionDown=!1;let o=this._selection;o.startLineNumber<o.endLineNumber&&o.endColumn===1&&(this._moveEndPositionDown=!0,o=o.setEndPosition(o.endLineNumber-1,t.getLineMaxColumn(o.endLineNumber-1)));let{tabSize:s,indentSize:c,insertSpaces:l}=t.getOptions(),u=this.buildIndentConverter(s,c,l);if(o.startLineNumber===o.endLineNumber&&t.getLineMaxColumn(o.startLineNumber)===1){let r=o.startLineNumber,i=this._isMovingDown?r+1:r-1;t.getLineMaxColumn(i)===1?n.addEditOperation(new e.Range$1(1,1,1,1),null):(n.addEditOperation(new e.Range$1(r,1,r,1),t.getLineContent(i)),n.addEditOperation(new e.Range$1(i,1,i,t.getLineMaxColumn(i)),null)),o=new e.Selection$1(i,1,i,1)}else{let a,c;if(this._isMovingDown){a=o.endLineNumber+1,c=t.getLineContent(a),n.addEditOperation(new e.Range$1(a-1,t.getLineMaxColumn(a-1),a,t.getLineMaxColumn(a)),null);let d=c;if(this.shouldAutoIndent(t,o)){let f=this.matchEnterRule(t,u,s,a,o.startLineNumber-1);if(f!==null){let n=e.getLeadingWhitespace(t.getLineContent(a)),r=f+xT(n,s);d=ST(r,s,l)+this.trimStart(c)}else{let n={tokenization:{getLineTokens:e=>e===o.startLineNumber?t.tokenization.getLineTokens(a):t.tokenization.getLineTokens(e),getLanguageId:r,getLanguageIdAtPosition:i},getLineContent:e=>e===o.startLineNumber?t.getLineContent(a):t.getLineContent(e)},f=e.getGoodIndentForLine(this._autoIndent,n,t.getLanguageIdAtPosition(a,1),o.startLineNumber,u,this._languageConfigurationService);if(f!==null){let n=e.getLeadingWhitespace(t.getLineContent(a)),r=xT(f,s),i=xT(n,s);r!==i&&(d=ST(r,s,l)+this.trimStart(c))}}n.addEditOperation(new e.Range$1(o.startLineNumber,1,o.startLineNumber,1),d+`
`);let p=this.matchEnterRuleMovingDown(t,u,s,o.startLineNumber,a,d);if(p!==null)p!==0&&this.getIndentEditsOfMovingBlock(t,n,o,s,l,p);else{let c={tokenization:{getLineTokens:e=>e===o.startLineNumber?t.tokenization.getLineTokens(a):e>=o.startLineNumber+1&&e<=o.endLineNumber+1?t.tokenization.getLineTokens(e-1):t.tokenization.getLineTokens(e),getLanguageId:r,getLanguageIdAtPosition:i},getLineContent:e=>e===o.startLineNumber?d:e>=o.startLineNumber+1&&e<=o.endLineNumber+1?t.getLineContent(e-1):t.getLineContent(e)},f=e.getGoodIndentForLine(this._autoIndent,c,t.getLanguageIdAtPosition(a,1),o.startLineNumber+1,u,this._languageConfigurationService);if(f!==null){let r=e.getLeadingWhitespace(t.getLineContent(o.startLineNumber)),i=xT(f,s),a=xT(r,s);if(i!==a){let e=i-a;this.getIndentEditsOfMovingBlock(t,n,o,s,l,e)}}}}else n.addEditOperation(new e.Range$1(o.startLineNumber,1,o.startLineNumber,1),d+`
`)}else if(a=o.startLineNumber-1,c=t.getLineContent(a),n.addEditOperation(new e.Range$1(a,1,a+1,1),null),n.addEditOperation(new e.Range$1(o.endLineNumber,t.getLineMaxColumn(o.endLineNumber),o.endLineNumber,t.getLineMaxColumn(o.endLineNumber)),`
`+c),this.shouldAutoIndent(t,o)){let c={tokenization:{getLineTokens:e=>e===a?t.tokenization.getLineTokens(o.startLineNumber):t.tokenization.getLineTokens(e),getLanguageId:r,getLanguageIdAtPosition:i},getLineContent:e=>e===a?t.getLineContent(o.startLineNumber):t.getLineContent(e)},d=this.matchEnterRule(t,u,s,o.startLineNumber,o.startLineNumber-2);if(d!==null)d!==0&&this.getIndentEditsOfMovingBlock(t,n,o,s,l,d);else{let r=e.getGoodIndentForLine(this._autoIndent,c,t.getLanguageIdAtPosition(o.startLineNumber,1),a,u,this._languageConfigurationService);if(r!==null){let i=e.getLeadingWhitespace(t.getLineContent(o.startLineNumber)),a=xT(r,s),c=xT(i,s);if(a!==c){let e=a-c;this.getIndentEditsOfMovingBlock(t,n,o,s,l,e)}}}}}this._selectionId=n.trackSelection(o)}buildIndentConverter(t,n,r){return{shiftIndent:i=>e.ShiftCommand.shiftIndent(i,i.length+1,t,n,r),unshiftIndent:i=>e.ShiftCommand.unshiftIndent(i,i.length+1,t,n,r)}}parseEnterResult(t,n,r,i,a){if(a){let o=a.indentation;a.indentAction===e.IndentAction.None||a.indentAction===e.IndentAction.Indent?o=a.indentation+a.appendText:a.indentAction===e.IndentAction.IndentOutdent?o=a.indentation:a.indentAction===e.IndentAction.Outdent&&(o=n.unshiftIndent(a.indentation)+a.appendText);let s=t.getLineContent(i);if(this.trimStart(s).indexOf(this.trimStart(o))>=0){let a=e.getLeadingWhitespace(t.getLineContent(i)),s=e.getLeadingWhitespace(o),c=e.getIndentMetadata(t,i,this._languageConfigurationService);c!==null&&c&2&&(s=n.unshiftIndent(s));let l=xT(s,r),u=xT(a,r);return l-u}}return null}matchEnterRuleMovingDown(t,n,r,i,a,o){if(e.lastNonWhitespaceIndex(o)>=0){let o=t.getLineMaxColumn(a),s=e.getEnterAction(this._autoIndent,t,new e.Range$1(a,o,a,o),this._languageConfigurationService);return this.parseEnterResult(t,n,r,i,s)}else{let a=i-1;for(;a>=1;){let n=t.getLineContent(a);if(e.lastNonWhitespaceIndex(n)>=0)break;a--}if(a<1||i>t.getLineCount())return null;let o=t.getLineMaxColumn(a),s=e.getEnterAction(this._autoIndent,t,new e.Range$1(a,o,a,o),this._languageConfigurationService);return this.parseEnterResult(t,n,r,i,s)}}matchEnterRule(t,n,r,i,a,o){let s=a;for(;s>=1;){let n;if(n=s===a&&o!==void 0?o:t.getLineContent(s),e.lastNonWhitespaceIndex(n)>=0)break;s--}if(s<1||i>t.getLineCount())return null;let c=t.getLineMaxColumn(s),l=e.getEnterAction(this._autoIndent,t,new e.Range$1(s,c,s,c),this._languageConfigurationService);return this.parseEnterResult(t,n,r,i,l)}trimStart(e){return e.replace(/^\s+/,``)}shouldAutoIndent(e,t){if(this._autoIndent<4||!e.tokenization.isCheapToTokenize(t.startLineNumber))return!1;let n=e.getLanguageIdAtPosition(t.startLineNumber,1),r=e.getLanguageIdAtPosition(t.endLineNumber,1);return!(n!==r||this._languageConfigurationService.getLanguageConfiguration(n).indentRulesSupport===null)}getIndentEditsOfMovingBlock(t,n,r,i,a,o){for(let s=r.startLineNumber;s<=r.endLineNumber;s++){let c=t.getLineContent(s),l=e.getLeadingWhitespace(c),u=xT(l,i)+o,d=ST(u,i,a);d!==l&&(n.addEditOperation(new e.Range$1(s,1,s,l.length+1),d),s===r.endLineNumber&&r.endColumn<=l.length+1&&d===``&&(this._moveEndLineSelectionShrink=!0))}}computeCursorState(e,t){let n=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(n=n.setEndPosition(n.endLineNumber+1,1)),this._moveEndLineSelectionShrink&&n.startLineNumber<n.endLineNumber&&(n=n.setEndPosition(n.endLineNumber,2)),n}};tE=$T([eE(3,e.ILanguageConfigurationService)],tE);var nE=class e{static{this._COLLATOR=null}static getCollator(){return e._COLLATOR||=new Intl.Collator,e._COLLATOR}constructor(e,t){this.selection=e,this.descending=t,this.selectionId=null}getEditOperations(e,t){let n=iE(e,this.selection,this.descending);n&&t.addEditOperation(n.range,n.text),this.selectionId=t.trackSelection(this.selection)}computeCursorState(e,t){return t.getTrackedSelection(this.selectionId)}static canRun(e,t,n){if(e===null)return!1;let r=rE(e,t,n);if(!r)return!1;for(let e=0,t=r.before.length;e<t;e++)if(r.before[e]!==r.after[e])return!0;return!1}};function rE(e,t,n){let r=t.startLineNumber,i=t.endLineNumber;if(t.endColumn===1&&i--,r>=i)return null;let a=[];for(let t=r;t<=i;t++)a.push(e.getLineContent(t));let o=a.slice(0);return o.sort(nE.getCollator().compare),n===!0&&(o=o.reverse()),{startLineNumber:r,endLineNumber:i,before:a,after:o}}function iE(t,n,r){let i=rE(t,n,r);return i?e.EditOperation.replace(new e.Range$1(i.startLineNumber,1,i.endLineNumber,t.getLineMaxColumn(i.endLineNumber)),i.after.join(`
`)):null}var aE=class extends e.EditorAction{constructor(e,t){super(t),this.down=e}run(t,n){if(!n.hasModel())return;let r=n.getSelections().map((e,t)=>({selection:e,index:t,ignore:!1}));r.sort((t,n)=>e.Range$1.compareRangesUsingStarts(t.selection,n.selection));let i=r[0];for(let e=1;e<r.length;e++){let t=r[e];i.selection.endLineNumber===t.selection.startLineNumber&&(i.index<t.index?t.ignore=!0:(i.ignore=!0,i=t))}let a=[];for(let e of r)a.push(new QT(e.selection,this.down,e.ignore));n.pushUndoStop(),n.executeCommands(this.id,a),n.pushUndoStop()}},oE=class extends aE{constructor(){super(!1,{id:`editor.action.copyLinesUpAction`,label:e.localize(`lines.copyUp`,`Copy Line Up`),alias:`Copy Line Up`,precondition:e.EditorContextKeys.writable,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:1552,linux:{primary:3600},weight:100},menuOpts:{menuId:e.MenuId.MenubarSelectionMenu,group:`2_line`,title:e.localize({key:`miCopyLinesUp`,comment:[`&& denotes a mnemonic`]},`&&Copy Line Up`),order:1}})}},sE=class extends aE{constructor(){super(!0,{id:`editor.action.copyLinesDownAction`,label:e.localize(`lines.copyDown`,`Copy Line Down`),alias:`Copy Line Down`,precondition:e.EditorContextKeys.writable,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:1554,linux:{primary:3602},weight:100},menuOpts:{menuId:e.MenuId.MenubarSelectionMenu,group:`2_line`,title:e.localize({key:`miCopyLinesDown`,comment:[`&& denotes a mnemonic`]},`Co&&py Line Down`),order:2}})}},cE=class extends e.EditorAction{constructor(){super({id:`editor.action.duplicateSelection`,label:e.localize(`duplicateSelection`,`Duplicate Selection`),alias:`Duplicate Selection`,precondition:e.EditorContextKeys.writable,menuOpts:{menuId:e.MenuId.MenubarSelectionMenu,group:`2_line`,title:e.localize({key:`miDuplicateSelection`,comment:[`&& denotes a mnemonic`]},`&&Duplicate Selection`),order:5}})}run(t,n,r){if(!n.hasModel())return;let i=[],a=n.getSelections(),o=n.getModel();for(let t of a)if(t.isEmpty())i.push(new QT(t,!0));else{let n=new e.Selection$1(t.endLineNumber,t.endColumn,t.endLineNumber,t.endColumn);i.push(new e.ReplaceCommandThatSelectsText(n,o.getValueInRange(t)))}n.pushUndoStop(),n.executeCommands(this.id,i),n.pushUndoStop()}},lE=class extends e.EditorAction{constructor(e,t){super(t),this.down=e}run(t,n){let r=t.get(e.ILanguageConfigurationService),i=[],a=n.getSelections()||[],o=n.getOption(12);for(let e of a)i.push(new tE(e,this.down,o,r));n.pushUndoStop(),n.executeCommands(this.id,i),n.pushUndoStop()}},uE=class extends lE{constructor(){super(!1,{id:`editor.action.moveLinesUpAction`,label:e.localize(`lines.moveUp`,`Move Line Up`),alias:`Move Line Up`,precondition:e.EditorContextKeys.writable,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:528,linux:{primary:528},weight:100},menuOpts:{menuId:e.MenuId.MenubarSelectionMenu,group:`2_line`,title:e.localize({key:`miMoveLinesUp`,comment:[`&& denotes a mnemonic`]},`Mo&&ve Line Up`),order:3}})}},dE=class extends lE{constructor(){super(!0,{id:`editor.action.moveLinesDownAction`,label:e.localize(`lines.moveDown`,`Move Line Down`),alias:`Move Line Down`,precondition:e.EditorContextKeys.writable,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:530,linux:{primary:530},weight:100},menuOpts:{menuId:e.MenuId.MenubarSelectionMenu,group:`2_line`,title:e.localize({key:`miMoveLinesDown`,comment:[`&& denotes a mnemonic`]},`Move &&Line Down`),order:4}})}},fE=class extends e.EditorAction{constructor(e,t){super(t),this.descending=e}run(t,n){if(!n.hasModel())return;let r=n.getModel(),i=n.getSelections();i.length===1&&i[0].isEmpty()&&(i=[new e.Selection$1(1,1,r.getLineCount(),r.getLineMaxColumn(r.getLineCount()))]);for(let e of i)if(!nE.canRun(n.getModel(),e,this.descending))return;let a=[];for(let e=0,t=i.length;e<t;e++)a[e]=new nE(i[e],this.descending);n.pushUndoStop(),n.executeCommands(this.id,a),n.pushUndoStop()}},pE=class extends fE{constructor(){super(!1,{id:`editor.action.sortLinesAscending`,label:e.localize(`lines.sortAscending`,`Sort Lines Ascending`),alias:`Sort Lines Ascending`,precondition:e.EditorContextKeys.writable})}},mE=class extends fE{constructor(){super(!0,{id:`editor.action.sortLinesDescending`,label:e.localize(`lines.sortDescending`,`Sort Lines Descending`),alias:`Sort Lines Descending`,precondition:e.EditorContextKeys.writable})}},hE=class extends e.EditorAction{constructor(){super({id:`editor.action.removeDuplicateLines`,label:e.localize(`lines.deleteDuplicates`,`Delete Duplicate Lines`),alias:`Delete Duplicate Lines`,precondition:e.EditorContextKeys.writable})}run(t,n){if(!n.hasModel())return;let r=n.getModel();if(r.getLineCount()===1&&r.getLineMaxColumn(1)===1)return;let i=[],a=[],o=0,s=!0,c=n.getSelections();c.length===1&&c[0].isEmpty()&&(c=[new e.Selection$1(1,1,r.getLineCount(),r.getLineMaxColumn(r.getLineCount()))],s=!1);for(let t of c){let n=new Set,s=[];for(let e=t.startLineNumber;e<=t.endLineNumber;e++){let t=r.getLineContent(e);n.has(t)||(s.push(t),n.add(t))}let c=new e.Selection$1(t.startLineNumber,1,t.endLineNumber,r.getLineMaxColumn(t.endLineNumber)),l=t.startLineNumber-o,u=new e.Selection$1(l,1,l+s.length-1,s[s.length-1].length);i.push(e.EditOperation.replace(c,s.join(`
`))),a.push(u),o+=t.endLineNumber-t.startLineNumber+1-s.length}n.pushUndoStop(),n.executeEdits(this.id,i,s?a:void 0),n.pushUndoStop()}},gE=class t extends e.EditorAction{static{this.ID=`editor.action.trimTrailingWhitespace`}constructor(){super({id:t.ID,label:e.localize(`lines.trimTrailingWhitespace`,`Trim Trailing Whitespace`),alias:`Trim Trailing Whitespace`,precondition:e.EditorContextKeys.writable,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:e.KeyChord(2089,2102),weight:100}})}run(t,n,r){let i=[];r.reason===`auto-save`&&(i=(n.getSelections()||[]).map(t=>new e.Position$1(t.positionLineNumber,t.positionColumn)));let a=n.getSelection();if(a===null)return;let o=t.get(e.IConfigurationService),s=n.getModel(),c=o.getValue(`files.trimTrailingWhitespaceInRegexAndStrings`,{overrideIdentifier:s?.getLanguageId(),resource:s?.uri}),l=new XT(a,i,c);n.pushUndoStop(),n.executeCommands(this.id,[l]),n.pushUndoStop()}},_E=class extends e.EditorAction{constructor(){super({id:`editor.action.deleteLines`,label:e.localize(`lines.delete`,`Delete Line`),alias:`Delete Line`,precondition:e.EditorContextKeys.writable,kbOpts:{kbExpr:e.EditorContextKeys.textInputFocus,primary:3113,weight:100}})}run(t,n){if(!n.hasModel())return;let r=this._getLinesToRemove(n),i=n.getModel();if(i.getLineCount()===1&&i.getLineMaxColumn(1)===1)return;let a=0,o=[],s=[];for(let t=0,n=r.length;t<n;t++){let n=r[t],c=n.startLineNumber,l=n.endLineNumber,u=1,d=i.getLineMaxColumn(l);l<i.getLineCount()?(l+=1,d=1):c>1&&(--c,u=i.getLineMaxColumn(c)),o.push(e.EditOperation.replace(new e.Selection$1(c,u,l,d),``)),s.push(new e.Selection$1(c-a,n.positionColumn,c-a,n.positionColumn)),a+=n.endLineNumber-n.startLineNumber+1}n.pushUndoStop(),n.executeEdits(this.id,o,s),n.pushUndoStop()}_getLinesToRemove(e){let t=e.getSelections().map(e=>{let t=e.endLineNumber;return e.startLineNumber<e.endLineNumber&&e.endColumn===1&&--t,{startLineNumber:e.startLineNumber,selectionStartColumn:e.selectionStartColumn,endLineNumber:t,positionColumn:e.positionColumn}});t.sort((e,t)=>e.startLineNumber===t.startLineNumber?e.endLineNumber-t.endLineNumber:e.startLineNumber-t.startLineNumber);let n=[],r=t[0];for(let e=1;e<t.length;e++)r.endLineNumber+1>=t[e].startLineNumber?r.endLineNumber=t[e].endLineNumber:(n.push(r),r=t[e]);return n.push(r),n}},vE=class extends e.EditorAction{constructor(){super({id:`editor.action.indentLines`,label:e.localize(`lines.indent`,`Indent Line`),alias:`Indent Line`,precondition:e.EditorContextKeys.writable,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:2142,weight:100}})}run(t,n){let r=n._getViewModel();r&&(n.pushUndoStop(),n.executeCommands(this.id,e.TypeOperations.indent(r.cursorConfig,n.getModel(),n.getSelections())),n.pushUndoStop())}},yE=class extends e.EditorAction{constructor(){super({id:`editor.action.outdentLines`,label:e.localize(`lines.outdent`,`Outdent Line`),alias:`Outdent Line`,precondition:e.EditorContextKeys.writable,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:2140,weight:100}})}run(t,n){e.CoreEditingCommands.Outdent.runEditorCommand(t,n,null)}},bE=class extends e.EditorAction{constructor(){super({id:`editor.action.insertLineBefore`,label:e.localize(`lines.insertBefore`,`Insert Line Above`),alias:`Insert Line Above`,precondition:e.EditorContextKeys.writable,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:3075,weight:100}})}run(t,n){let r=n._getViewModel();r&&(n.pushUndoStop(),n.executeCommands(this.id,e.EnterOperation.lineInsertBefore(r.cursorConfig,n.getModel(),n.getSelections())))}},xE=class extends e.EditorAction{constructor(){super({id:`editor.action.insertLineAfter`,label:e.localize(`lines.insertAfter`,`Insert Line Below`),alias:`Insert Line Below`,precondition:e.EditorContextKeys.writable,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:2051,weight:100}})}run(t,n){let r=n._getViewModel();r&&(n.pushUndoStop(),n.executeCommands(this.id,e.EnterOperation.lineInsertAfter(r.cursorConfig,n.getModel(),n.getSelections())))}},SE=class extends e.EditorAction{run(t,n){if(!n.hasModel())return;let r=n.getSelection(),i=this._getRangesToDelete(n),a=[];for(let t=0,n=i.length-1;t<n;t++){let n=i[t],r=i[t+1];e.Range$1.intersectRanges(n,r)===null?a.push(n):i[t+1]=e.Range$1.plusRange(n,r)}a.push(i[i.length-1]);let o=this._getEndCursorState(r,a),s=a.map(t=>e.EditOperation.replace(t,``));n.pushUndoStop(),n.executeEdits(this.id,s,o),n.pushUndoStop()}},CE=class extends SE{constructor(){super({id:`deleteAllLeft`,label:e.localize(`lines.deleteAllLeft`,`Delete All Left`),alias:`Delete All Left`,precondition:e.EditorContextKeys.writable,kbOpts:{kbExpr:e.EditorContextKeys.textInputFocus,primary:0,mac:{primary:2049},weight:100}})}_getEndCursorState(t,n){let r=null,i=[],a=0;return n.forEach(n=>{let o;if(n.endColumn===1&&a>0){let t=n.startLineNumber-a;o=new e.Selection$1(t,n.startColumn,t,n.startColumn)}else o=new e.Selection$1(n.startLineNumber,n.startColumn,n.startLineNumber,n.startColumn);a+=n.endLineNumber-n.startLineNumber,n.intersectRanges(t)?r=o:i.push(o)}),r&&i.unshift(r),i}_getRangesToDelete(t){let n=t.getSelections();if(n===null)return[];let r=n,i=t.getModel();return i===null?[]:(r.sort(e.Range$1.compareRangesUsingStarts),r=r.map(t=>{if(t.isEmpty())if(t.startColumn===1){let n=Math.max(1,t.startLineNumber-1),r=t.startLineNumber===1?1:i.getLineLength(n)+1;return new e.Range$1(n,r,t.startLineNumber,1)}else return new e.Range$1(t.startLineNumber,1,t.startLineNumber,t.startColumn);else return new e.Range$1(t.startLineNumber,1,t.endLineNumber,t.endColumn)}),r)}},wE=class extends SE{constructor(){super({id:`deleteAllRight`,label:e.localize(`lines.deleteAllRight`,`Delete All Right`),alias:`Delete All Right`,precondition:e.EditorContextKeys.writable,kbOpts:{kbExpr:e.EditorContextKeys.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100}})}_getEndCursorState(t,n){let r=null,i=[];for(let a=0,o=n.length;a<o;a++){let o=n[a],s=new e.Selection$1(o.startLineNumber-0,o.startColumn,o.startLineNumber-0,o.startColumn);o.intersectRanges(t)?r=s:i.push(s)}return r&&i.unshift(r),i}_getRangesToDelete(t){let n=t.getModel();if(n===null)return[];let r=t.getSelections();if(r===null)return[];let i=r.map(t=>{if(t.isEmpty()){let r=n.getLineMaxColumn(t.startLineNumber);return t.startColumn===r?new e.Range$1(t.startLineNumber,t.startColumn,t.startLineNumber+1,1):new e.Range$1(t.startLineNumber,t.startColumn,t.startLineNumber,r)}return t});return i.sort(e.Range$1.compareRangesUsingStarts),i}},TE=class extends e.EditorAction{constructor(){super({id:`editor.action.joinLines`,label:e.localize(`lines.joinLines`,`Join Lines`),alias:`Join Lines`,precondition:e.EditorContextKeys.writable,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:0,mac:{primary:296},weight:100}})}run(t,n){let r=n.getSelections();if(r===null)return;let i=n.getSelection();if(i===null)return;r.sort(e.Range$1.compareRangesUsingStarts);let a=[],o=r.reduce((t,n)=>t.isEmpty()?t.endLineNumber===n.startLineNumber?(i.equalsSelection(t)&&(i=n),n):n.startLineNumber>t.endLineNumber+1?(a.push(t),n):new e.Selection$1(t.startLineNumber,t.startColumn,n.endLineNumber,n.endColumn):n.startLineNumber>t.endLineNumber?(a.push(t),n):new e.Selection$1(t.startLineNumber,t.startColumn,n.endLineNumber,n.endColumn));a.push(o);let s=n.getModel();if(s===null)return;let c=[],l=[],u=i,d=0;for(let t=0,n=a.length;t<n;t++){let n=a[t],r=n.startLineNumber,o=0,f,p,m=s.getLineLength(n.endLineNumber)-n.endColumn;if(n.isEmpty()||n.startLineNumber===n.endLineNumber){let e=n.getStartPosition();e.lineNumber<s.getLineCount()?(f=r+1,p=s.getLineMaxColumn(f)):(f=e.lineNumber,p=s.getLineMaxColumn(e.lineNumber))}else f=n.endLineNumber,p=s.getLineMaxColumn(f);let h=s.getLineContent(r);for(let e=r+1;e<=f;e++){let t=s.getLineContent(e),n=s.getLineFirstNonWhitespaceColumn(e);if(n>=1){let e=!0;h===``&&(e=!1),e&&(h.charAt(h.length-1)===` `||h.charAt(h.length-1)===` `)&&(e=!1,h=h.replace(/[\s\uFEFF\xA0]+$/g,` `));let r=t.substr(n-1);h+=(e?` `:``)+r,o=e?r.length+1:r.length}else o=0}let g=new e.Range$1(r,1,f,p);if(!g.isEmpty()){let t;n.isEmpty()?(c.push(e.EditOperation.replace(g,h)),t=new e.Selection$1(g.startLineNumber-d,h.length-o+1,r-d,h.length-o+1)):n.startLineNumber===n.endLineNumber?(c.push(e.EditOperation.replace(g,h)),t=new e.Selection$1(n.startLineNumber-d,n.startColumn,n.endLineNumber-d,n.endColumn)):(c.push(e.EditOperation.replace(g,h)),t=new e.Selection$1(n.startLineNumber-d,n.startColumn,n.startLineNumber-d,h.length-m)),e.Range$1.intersectRanges(g,i)===null?l.push(t):u=t}d+=g.endLineNumber-g.startLineNumber}l.unshift(u),n.pushUndoStop(),n.executeEdits(this.id,c,l),n.pushUndoStop()}},EE=class extends e.EditorAction{constructor(){super({id:`editor.action.transpose`,label:e.localize(`editor.transpose`,`Transpose Characters around the Cursor`),alias:`Transpose Characters around the Cursor`,precondition:e.EditorContextKeys.writable})}run(t,n){let r=n.getSelections();if(r===null)return;let i=n.getModel();if(i===null)return;let a=[];for(let t=0,n=r.length;t<n;t++){let n=r[t];if(!n.isEmpty())continue;let o=n.getStartPosition(),s=i.getLineMaxColumn(o.lineNumber);if(o.column>=s){if(o.lineNumber===i.getLineCount())continue;let t=new e.Range$1(o.lineNumber,Math.max(1,o.column-1),o.lineNumber+1,1),n=i.getValueInRange(t).split(``).reverse().join(``);a.push(new e.ReplaceCommand(new e.Selection$1(o.lineNumber,Math.max(1,o.column-1),o.lineNumber+1,1),n))}else{let t=new e.Range$1(o.lineNumber,Math.max(1,o.column-1),o.lineNumber,o.column+1),n=i.getValueInRange(t).split(``).reverse().join(``);a.push(new e.ReplaceCommandThatPreservesSelection(t,n,new e.Selection$1(o.lineNumber,o.column+1,o.lineNumber,o.column+1)))}}n.pushUndoStop(),n.executeCommands(this.id,a),n.pushUndoStop()}},DE=class extends e.EditorAction{run(t,n){let r=n.getSelections();if(r===null)return;let i=n.getModel();if(i===null)return;let a=n.getOption(132),o=[];for(let t of r)if(t.isEmpty()){let r=t.getStartPosition(),s=n.getConfiguredWordAtPosition(r);if(!s)continue;let c=new e.Range$1(r.lineNumber,s.startColumn,r.lineNumber,s.endColumn),l=i.getValueInRange(c);o.push(e.EditOperation.replace(c,this._modifyText(l,a)))}else{let n=i.getValueInRange(t);o.push(e.EditOperation.replace(t,this._modifyText(n,a)))}n.pushUndoStop(),n.executeEdits(this.id,o),n.pushUndoStop()}},OE=class extends DE{constructor(){super({id:`editor.action.transformToUppercase`,label:e.localize(`editor.transformToUppercase`,`Transform to Uppercase`),alias:`Transform to Uppercase`,precondition:e.EditorContextKeys.writable})}_modifyText(e,t){return e.toLocaleUpperCase()}},kE=class extends DE{constructor(){super({id:`editor.action.transformToLowercase`,label:e.localize(`editor.transformToLowercase`,`Transform to Lowercase`),alias:`Transform to Lowercase`,precondition:e.EditorContextKeys.writable})}_modifyText(e,t){return e.toLocaleLowerCase()}},AE=class{constructor(e,t){this._pattern=e,this._flags=t,this._actual=null,this._evaluated=!1}get(){if(!this._evaluated){this._evaluated=!0;try{this._actual=new RegExp(this._pattern,this._flags)}catch{}}return this._actual}isSupported(){return this.get()!==null}},jE=class t extends DE{static{this.titleBoundary=new AE(`(^|[^\\p{L}\\p{N}']|((^|\\P{L})'))\\p{L}`,`gmu`)}constructor(){super({id:`editor.action.transformToTitlecase`,label:e.localize(`editor.transformToTitlecase`,`Transform to Title Case`),alias:`Transform to Title Case`,precondition:e.EditorContextKeys.writable})}_modifyText(e,n){let r=t.titleBoundary.get();return r?e.toLocaleLowerCase().replace(r,e=>e.toLocaleUpperCase()):e}},ME=class t extends DE{static{this.caseBoundary=new AE(`(\\p{Ll})(\\p{Lu})`,`gmu`)}static{this.singleLetters=new AE(`(\\p{Lu}|\\p{N})(\\p{Lu})(\\p{Ll})`,`gmu`)}constructor(){super({id:`editor.action.transformToSnakecase`,label:e.localize(`editor.transformToSnakecase`,`Transform to Snake Case`),alias:`Transform to Snake Case`,precondition:e.EditorContextKeys.writable})}_modifyText(e,n){let r=t.caseBoundary.get(),i=t.singleLetters.get();return!r||!i?e:e.replace(r,`$1_$2`).replace(i,`$1_$2$3`).toLocaleLowerCase()}},NE=class t extends DE{static{this.wordBoundary=new AE(`[_\\s-]`,`gm`)}constructor(){super({id:`editor.action.transformToCamelcase`,label:e.localize(`editor.transformToCamelcase`,`Transform to Camel Case`),alias:`Transform to Camel Case`,precondition:e.EditorContextKeys.writable})}_modifyText(e,n){let r=t.wordBoundary.get();if(!r)return e;let i=e.split(r);return i.shift()+i.map(e=>e.substring(0,1).toLocaleUpperCase()+e.substring(1)).join(``)}},PE=class t extends DE{static{this.wordBoundary=new AE(`[_\\s-]`,`gm`)}static{this.wordBoundaryToMaintain=new AE(`(?<=\\.)`,`gm`)}constructor(){super({id:`editor.action.transformToPascalcase`,label:e.localize(`editor.transformToPascalcase`,`Transform to Pascal Case`),alias:`Transform to Pascal Case`,precondition:e.EditorContextKeys.writable})}_modifyText(e,n){let r=t.wordBoundary.get(),i=t.wordBoundaryToMaintain.get();return!r||!i?e:e.split(i).map(e=>e.split(r)).flat().map(e=>e.substring(0,1).toLocaleUpperCase()+e.substring(1)).join(``)}},FE=class t extends DE{static isSupported(){return[this.caseBoundary,this.singleLetters,this.underscoreBoundary].every(e=>e.isSupported())}static{this.caseBoundary=new AE(`(\\p{Ll})(\\p{Lu})`,`gmu`)}static{this.singleLetters=new AE(`(\\p{Lu}|\\p{N})(\\p{Lu}\\p{Ll})`,`gmu`)}static{this.underscoreBoundary=new AE(`(\\S)(_)(\\S)`,`gm`)}constructor(){super({id:`editor.action.transformToKebabcase`,label:e.localize(`editor.transformToKebabcase`,`Transform to Kebab Case`),alias:`Transform to Kebab Case`,precondition:e.EditorContextKeys.writable})}_modifyText(e,n){let r=t.caseBoundary.get(),i=t.singleLetters.get(),a=t.underscoreBoundary.get();return!r||!i||!a?e:e.replace(a,`$1-$3`).replace(r,`$1-$2`).replace(i,`$1-$2`).toLocaleLowerCase()}};e.registerEditorAction(oE),e.registerEditorAction(sE),e.registerEditorAction(cE),e.registerEditorAction(uE),e.registerEditorAction(dE),e.registerEditorAction(pE),e.registerEditorAction(mE),e.registerEditorAction(hE),e.registerEditorAction(gE),e.registerEditorAction(_E),e.registerEditorAction(vE),e.registerEditorAction(yE),e.registerEditorAction(bE),e.registerEditorAction(xE),e.registerEditorAction(CE),e.registerEditorAction(wE),e.registerEditorAction(TE),e.registerEditorAction(EE),e.registerEditorAction(OE),e.registerEditorAction(kE),ME.caseBoundary.isSupported()&&ME.singleLetters.isSupported()&&e.registerEditorAction(ME),NE.wordBoundary.isSupported()&&e.registerEditorAction(NE),PE.wordBoundary.isSupported()&&e.registerEditorAction(PE),jE.titleBoundary.isSupported()&&e.registerEditorAction(jE),FE.isSupported()&&e.registerEditorAction(FE);var IE=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},LE=function(e,t){return function(n,r){t(n,r,e)}},RE;const zE=new e.RawContextKey(`LinkedEditingInputVisible`,!1);var BE=`linked-editing-decoration`,VE=class extends e.Disposable{static{RE=this}static{this.ID=`editor.contrib.linkedEditing`}static{this.DECORATION=e.ModelDecorationOptions.register({description:`linked-editing`,stickiness:0,className:BE})}static get(e){return e.getContribution(RE.ID)}constructor(t,n,r,i,a){super(),this.languageConfigurationService=i,this._syncRangesToken=0,this._localToDispose=this._register(new e.DisposableStore),this._editor=t,this._providers=r.linkedEditingRangeProvider,this._enabled=!1,this._visibleContextKey=zE.bindTo(n),this._debounceInformation=a.for(this._providers,`Linked Editing`,{max:200}),this._currentDecorations=this._editor.createDecorationsCollection(),this._languageWordPattern=null,this._currentWordPattern=null,this._ignoreChangeEvent=!1,this._localToDispose=this._register(new e.DisposableStore),this._rangeUpdateTriggerPromise=null,this._rangeSyncTriggerPromise=null,this._currentRequestCts=null,this._currentRequestPosition=null,this._currentRequestModelVersion=null,this._register(this._editor.onDidChangeModel(()=>this.reinitialize(!0))),this._register(this._editor.onDidChangeConfiguration(e=>{(e.hasChanged(70)||e.hasChanged(94))&&this.reinitialize(!1)})),this._register(this._providers.onDidChange(()=>this.reinitialize(!1))),this._register(this._editor.onDidChangeModelLanguage(()=>this.reinitialize(!0))),this.reinitialize(!0)}reinitialize(t){let n=this._editor.getModel(),r=n!==null&&(this._editor.getOption(70)||this._editor.getOption(94))&&this._providers.has(n);if(r===this._enabled&&!t||(this._enabled=r,this.clearRanges(),this._localToDispose.clear(),!r||n===null))return;this._localToDispose.add(e.Event.runAndSubscribe(n.onDidChangeLanguageConfiguration,()=>{this._languageWordPattern=this.languageConfigurationService.getLanguageConfiguration(n.getLanguageId()).getWordDefinition()}));let i=new e.Delayer(this._debounceInformation.get(n)),a=()=>{this._rangeUpdateTriggerPromise=i.trigger(()=>this.updateRanges(),this._debounceDuration??this._debounceInformation.get(n))},o=new e.Delayer(0),s=e=>{this._rangeSyncTriggerPromise=o.trigger(()=>this._syncRanges(e))};this._localToDispose.add(this._editor.onDidChangeCursorPosition(()=>{a()})),this._localToDispose.add(this._editor.onDidChangeModelContent(e=>{if(!this._ignoreChangeEvent&&this._currentDecorations.length>0){let t=this._currentDecorations.getRange(0);if(t&&e.changes.every(e=>t.intersectRanges(e.range))){s(this._syncRangesToken);return}}a()})),this._localToDispose.add({dispose:()=>{i.dispose(),o.dispose()}}),this.updateRanges()}_syncRanges(t){if(!this._editor.hasModel()||t!==this._syncRangesToken||this._currentDecorations.length===0)return;let n=this._editor.getModel(),r=this._currentDecorations.getRange(0);if(!r||r.startLineNumber!==r.endLineNumber)return this.clearRanges();let i=n.getValueInRange(r);if(this._currentWordPattern){let e=i.match(this._currentWordPattern);if((e?e[0].length:0)!==i.length)return this.clearRanges()}let a=[];for(let t=1,r=this._currentDecorations.length;t<r;t++){let r=this._currentDecorations.getRange(t);if(r)if(r.startLineNumber!==r.endLineNumber)a.push({range:r,text:i});else{let t=n.getValueInRange(r),o=i,s=r.startColumn,c=r.endColumn,l=e.commonPrefixLength(t,o);s+=l,t=t.substr(l),o=o.substr(l);let u=e.commonSuffixLength(t,o);c-=u,t=t.substr(0,t.length-u),o=o.substr(0,o.length-u),(s!==c||o.length!==0)&&a.push({range:new e.Range$1(r.startLineNumber,s,r.endLineNumber,c),text:o})}}if(a.length!==0)try{this._editor.popUndoStop(),this._ignoreChangeEvent=!0;let e=this._editor._getViewModel().getPrevEditOperationType();this._editor.executeEdits(`linkedEditing`,a),this._editor._getViewModel().setPrevEditOperationType(e)}finally{this._ignoreChangeEvent=!1}}dispose(){this.clearRanges(),super.dispose()}clearRanges(){this._visibleContextKey.set(!1),this._currentDecorations.clear(),this._currentRequestCts&&(this._currentRequestCts.cancel(),this._currentRequestCts=null,this._currentRequestPosition=null)}async updateRanges(t=!1){if(!this._editor.hasModel()){this.clearRanges();return}let n=this._editor.getPosition();if(!this._enabled&&!t||this._editor.getSelections().length>1){this.clearRanges();return}let r=this._editor.getModel(),i=r.getVersionId();if(this._currentRequestPosition&&this._currentRequestModelVersion===i){if(n.equals(this._currentRequestPosition))return;if(this._currentDecorations.length>0){let e=this._currentDecorations.getRange(0);if(e&&e.containsPosition(n))return}}this.clearRanges(),this._currentRequestPosition=n,this._currentRequestModelVersion=i;let a=this._currentRequestCts=new e.CancellationTokenSource$1;try{let t=new e.StopWatch(!1),o=await WE(this._providers,r,n,a.token);if(this._debounceInformation.update(r,t.elapsed()),a!==this._currentRequestCts||(this._currentRequestCts=null,i!==r.getVersionId()))return;let s=[];o?.ranges&&(s=o.ranges),this._currentWordPattern=o?.wordPattern||this._languageWordPattern;let c=!1;for(let t=0,r=s.length;t<r;t++)if(e.Range$1.containsPosition(s[t],n)){if(c=!0,t!==0){let e=s[t];s.splice(t,1),s.unshift(e)}break}if(!c){this.clearRanges();return}let l=s.map(e=>({range:e,options:RE.DECORATION}));this._visibleContextKey.set(!0),this._currentDecorations.set(l),this._syncRangesToken++}catch(t){e.isCancellationError(t)||e.onUnexpectedError(t),(this._currentRequestCts===a||!this._currentRequestCts)&&this.clearRanges()}}};VE=RE=IE([LE(1,e.IContextKeyService),LE(2,e.ILanguageFeaturesService),LE(3,e.ILanguageConfigurationService),LE(4,e.ILanguageFeatureDebounceService)],VE);var HE=class extends e.EditorAction{constructor(){super({id:`editor.action.linkedEditing`,label:e.localize(`linkedEditing.label`,`Start Linked Editing`),alias:`Start Linked Editing`,precondition:e.ContextKeyExpr.and(e.EditorContextKeys.writable,e.EditorContextKeys.hasRenameProvider),kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:3132,weight:100}})}runCommand(t,n){let r=t.get(e.ICodeEditorService),[i,a]=Array.isArray(n)&&n||[void 0,void 0];return e.URI.isUri(i)&&e.Position$1.isIPosition(a)?r.openCodeEditor({resource:i},r.getActiveCodeEditor()).then(e=>{e&&(e.setPosition(a),e.invokeWithinContext(t=>(this.reportTelemetry(t,e),this.run(t,e))))},e.onUnexpectedError):super.runCommand(t,n)}run(e,t){let n=VE.get(t);return n?Promise.resolve(n.updateRanges(!0)):Promise.resolve()}},UE=e.EditorCommand.bindToContribution(VE.get);e.registerEditorCommand(new UE({id:`cancelLinkedEditingInput`,precondition:zE,handler:e=>e.clearRanges(),kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,weight:199,primary:9,secondary:[1033]}}));function WE(t,n,r,i){let a=t.ordered(n);return e.first(a.map(t=>async()=>{try{return await t.provideLinkedEditingRanges(n,r,i)}catch(t){e.onUnexpectedExternalError(t);return}}),t=>!!t&&e.isNonEmptyArray(t?.ranges))}const GE=e.registerColor(`editor.linkedEditingBackground`,{dark:e.Color.fromHex(`#f00`).transparent(.3),light:e.Color.fromHex(`#f00`).transparent(.3),hcDark:e.Color.fromHex(`#f00`).transparent(.3),hcLight:e.Color.white},e.localize(`editorLinkedEditingBackground`,`Background color when the editor auto renames on type.`));e.registerModelAndPositionCommand(`_executeLinkedEditingProvider`,(t,n,r)=>{let{linkedEditingRangeProvider:i}=t.get(e.ILanguageFeaturesService);return WE(i,n,r,e.CancellationToken.None)}),e.registerEditorContribution(VE.ID,VE,1),e.registerEditorAction(HE);var KE=class{constructor(e,t){this._link=e,this._provider=t}toJSON(){return{range:this.range,url:this.url,tooltip:this.tooltip}}get range(){return this._link.range}get url(){return this._link.url}get tooltip(){return this._link.tooltip}async resolve(e){return this._link.url?this._link.url:typeof this._provider.resolveLink==`function`?Promise.resolve(this._provider.resolveLink(this._link,e)).then(t=>(this._link=t||this._link,this._link.url?this.resolve(e):Promise.reject(Error(`missing`)))):Promise.reject(Error(`missing`))}},qE=class t{constructor(n){this._disposables=new e.DisposableStore;let r=[];for(let[i,a]of n){let n=i.links.map(e=>new KE(e,a));r=t._union(r,n),e.isDisposable(i)&&this._disposables.add(i)}this.links=r}dispose(){this._disposables.dispose(),this.links.length=0}static _union(t,n){let r=[],i,a,o,s;for(i=0,o=0,a=t.length,s=n.length;i<a&&o<s;){let a=t[i],s=n[o];if(e.Range$1.areIntersectingOrTouching(a.range,s.range)){i++;continue}e.Range$1.compareRangesUsingStarts(a.range,s.range)<0?(r.push(a),i++):(r.push(s),o++)}for(;i<a;i++)r.push(t[i]);for(;o<s;o++)r.push(n[o]);return r}};function JE(t,n,r){let i=[],a=t.ordered(n).reverse().map((t,a)=>Promise.resolve(t.provideLinks(n,r)).then(e=>{e&&(i[a]=[e,t])},e.onUnexpectedExternalError));return Promise.all(a).then(()=>{let t=new qE(e.coalesce(i));return r.isCancellationRequested?(t.dispose(),new qE([])):t})}e.CommandsRegistry.registerCommand(`_executeLinkProvider`,async(t,...n)=>{let[r,i]=n;e.assertType(r instanceof e.URI),typeof i!=`number`&&(i=0);let{linkProvider:a}=t.get(e.ILanguageFeaturesService),o=t.get(e.IModelService).getModel(r);if(!o)return[];let s=await JE(a,o,e.CancellationToken.None);if(!s)return[];for(let t=0;t<Math.min(i,s.links.length);t++)await s.links[t].resolve(e.CancellationToken.None);let c=s.links.slice(0);return s.dispose(),c});var YE=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},XE=function(e,t){return function(n,r){t(n,r,e)}},ZE,QE=class extends e.Disposable{static{ZE=this}static{this.ID=`editor.linkDetector`}static get(e){return e.getContribution(ZE.ID)}constructor(t,n,r,i,a){super(),this.editor=t,this.openerService=n,this.notificationService=r,this.languageFeaturesService=i,this.providers=this.languageFeaturesService.linkProvider,this.debounceInformation=a.for(this.providers,`Links`,{min:1e3,max:4e3}),this.computeLinks=this._register(new e.RunOnceScheduler(()=>this.computeLinksNow(),1e3)),this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null;let o=this._register(new Mm(t));this._register(o.onMouseMoveOrRelevantKeyDown(([e,t])=>{this._onEditorMouseMove(e,t)})),this._register(o.onExecute(e=>{this.onEditorMouseUp(e)})),this._register(o.onCancel(e=>{this.cleanUpActiveLinkDecoration()})),this._register(t.onDidChangeConfiguration(e=>{e.hasChanged(71)&&(this.updateDecorations([]),this.stop(),this.computeLinks.schedule(0))})),this._register(t.onDidChangeModelContent(e=>{this.editor.hasModel()&&this.computeLinks.schedule(this.debounceInformation.get(this.editor.getModel()))})),this._register(t.onDidChangeModel(e=>{this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.computeLinks.schedule(0)})),this._register(t.onDidChangeModelLanguage(e=>{this.stop(),this.computeLinks.schedule(0)})),this._register(this.providers.onDidChange(e=>{this.stop(),this.computeLinks.schedule(0)})),this.computeLinks.schedule(0)}async computeLinksNow(){if(!this.editor.hasModel()||!this.editor.getOption(71))return;let t=this.editor.getModel();if(!t.isTooLargeForSyncing()&&this.providers.has(t)){this.activeLinksList&&=(this.activeLinksList.dispose(),null),this.computePromise=e.createCancelablePromise(e=>JE(this.providers,t,e));try{let n=new e.StopWatch(!1);if(this.activeLinksList=await this.computePromise,this.debounceInformation.update(t,n.elapsed()),t.isDisposed())return;this.updateDecorations(this.activeLinksList.links)}catch(t){e.onUnexpectedError(t)}finally{this.computePromise=null}}}updateDecorations(e){let t=this.editor.getOption(78)===`altKey`,n=[],r=Object.keys(this.currentOccurrences);for(let e of r){let t=this.currentOccurrences[e];n.push(t.decorationId)}let i=[];if(e)for(let n of e)i.push(eD.decoration(n,t));this.editor.changeDecorations(t=>{let r=t.deltaDecorations(n,i);this.currentOccurrences={},this.activeLinkDecorationId=null;for(let t=0,n=r.length;t<n;t++){let n=new eD(e[t],r[t]);this.currentOccurrences[n.decorationId]=n}})}_onEditorMouseMove(e,t){let n=this.editor.getOption(78)===`altKey`;if(this.isEnabled(e,t)){this.cleanUpActiveLinkDecoration();let t=this.getLinkOccurrence(e.target.position);t&&this.editor.changeDecorations(e=>{t.activate(e,n),this.activeLinkDecorationId=t.decorationId})}else this.cleanUpActiveLinkDecoration()}cleanUpActiveLinkDecoration(){let e=this.editor.getOption(78)===`altKey`;if(this.activeLinkDecorationId){let t=this.currentOccurrences[this.activeLinkDecorationId];t&&this.editor.changeDecorations(n=>{t.deactivate(n,e)}),this.activeLinkDecorationId=null}}onEditorMouseUp(e){if(!this.isEnabled(e))return;let t=this.getLinkOccurrence(e.target.position);t&&this.openLinkOccurrence(t,e.hasSideBySideModifier,!0)}openLinkOccurrence(t,n,r=!1){if(!this.openerService)return;let{link:i}=t;i.resolve(e.CancellationToken.None).then(t=>{if(typeof t==`string`&&this.editor.hasModel()){let n=this.editor.getModel().uri;if(n.scheme===e.Schemas.file&&t.startsWith(`${e.Schemas.file}:`)){let r=e.URI.parse(t);if(r.scheme===e.Schemas.file){let i=e.originalFSPath(r),a=null;i.startsWith(`/./`)||i.startsWith(`\\.\\`)?a=`.${i.substr(1)}`:(i.startsWith(`//./`)||i.startsWith(`\\\\.\\`))&&(a=`.${i.substr(2)}`),a&&(t=e.joinPath(n,a))}}}return this.openerService.open(t,{openToSide:n,fromUserGesture:r,allowContributedOpeners:!0,allowCommands:!0,fromWorkspace:!0})},t=>{let n=t instanceof Error?t.message:t;n===`invalid`?this.notificationService.warn(e.localize(`invalid.url`,`Failed to open this link because it is not well-formed: {0}`,i.url.toString())):n===`missing`?this.notificationService.warn(e.localize(`missing.url`,`Failed to open this link because its target is missing.`)):e.onUnexpectedError(t)})}getLinkOccurrence(e){if(!this.editor.hasModel()||!e)return null;let t=this.editor.getModel().getDecorationsInRange({startLineNumber:e.lineNumber,startColumn:e.column,endLineNumber:e.lineNumber,endColumn:e.column},0,!0);for(let e of t){let t=this.currentOccurrences[e.id];if(t)return t}return null}isEnabled(e,t){return!!(e.target.type===6&&(e.hasTriggerModifier||t&&t.keyCodeIsTriggerKey))}stop(){this.computeLinks.cancel(),this.activeLinksList&&=(this.activeLinksList?.dispose(),null),this.computePromise&&=(this.computePromise.cancel(),null)}dispose(){super.dispose(),this.stop()}};QE=ZE=YE([XE(1,e.IOpenerService),XE(2,e.INotificationService),XE(3,e.ILanguageFeaturesService),XE(4,e.ILanguageFeatureDebounceService)],QE);var $E={general:e.ModelDecorationOptions.register({description:`detected-link`,stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:`detected-link`}),active:e.ModelDecorationOptions.register({description:`detected-link-active`,stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:`detected-link-active`})},eD=class e{static decoration(t,n){return{range:t.range,options:e._getOptions(t,n,!1)}}static _getOptions(e,t,n){let r={...n?$E.active:$E.general};return r.hoverMessage=tD(e,t),r}constructor(e,t){this.link=e,this.decorationId=t}activate(t,n){t.changeDecorationOptions(this.decorationId,e._getOptions(this.link,n,!0))}deactivate(t,n){t.changeDecorationOptions(this.decorationId,e._getOptions(this.link,n,!1))}};function tD(t,n){let r=t.url&&/^command:/i.test(t.url.toString()),i=t.tooltip?t.tooltip:r?e.localize(`links.navigate.executeCmd`,`Execute command`):e.localize(`links.navigate.follow`,`Follow link`),a=n?e.isMacintosh?e.localize(`links.navigate.kb.meta.mac`,`cmd + click`):e.localize(`links.navigate.kb.meta`,`ctrl + click`):e.isMacintosh?e.localize(`links.navigate.kb.alt.mac`,`option + click`):e.localize(`links.navigate.kb.alt`,`alt + click`);if(t.url){let n=``;if(/^command:/i.test(t.url.toString())){let r=t.url.toString().match(/^command:([^?#]+)/);if(r){let t=r[1];n=e.localize(`tooltip.explanation`,`Execute command {0}`,t)}}return new e.MarkdownString(``,!0).appendLink(t.url.toString(!0).replace(/ /g,`%20`),i,n).appendMarkdown(` (${a})`)}else return new e.MarkdownString().appendText(`${i} (${a})`)}var nD=class extends e.EditorAction{constructor(){super({id:`editor.action.openLink`,label:e.localize(`label`,`Open Link`),alias:`Open Link`,precondition:void 0})}run(e,t){let n=QE.get(t);if(!n||!t.hasModel())return;let r=t.getSelections();for(let e of r){let t=n.getLinkOccurrence(e.getEndPosition());t&&n.openLinkOccurrence(t,!1)}}};e.registerEditorContribution(QE.ID,QE,1),e.registerEditorAction(nD);var rD=class extends e.Disposable{static{this.ID=`editor.contrib.longLinesHelper`}constructor(e){super(),this._editor=e,this._register(this._editor.onMouseDown(e=>{let t=this._editor.getOption(118);t>=0&&e.target.type===6&&e.target.position.column>=t&&this._editor.updateOptions({stopRenderingLineAfter:-1})}))}};e.registerEditorContribution(rD.ID,rD,2);var iD=e.registerColor(`editor.wordHighlightBackground`,{dark:`#575757B8`,light:`#57575740`,hcDark:null,hcLight:null},e.localize(`wordHighlight`,`Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations.`),!0);e.registerColor(`editor.wordHighlightStrongBackground`,{dark:`#004972B8`,light:`#0e639c40`,hcDark:null,hcLight:null},e.localize(`wordHighlightStrong`,`Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations.`),!0),e.registerColor(`editor.wordHighlightTextBackground`,iD,e.localize(`wordHighlightText`,`Background color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations.`),!0);var aD=e.registerColor(`editor.wordHighlightBorder`,{light:null,dark:null,hcDark:e.activeContrastBorder,hcLight:e.activeContrastBorder},e.localize(`wordHighlightBorder`,`Border color of a symbol during read-access, like reading a variable.`));e.registerColor(`editor.wordHighlightStrongBorder`,{light:null,dark:null,hcDark:e.activeContrastBorder,hcLight:e.activeContrastBorder},e.localize(`wordHighlightStrongBorder`,`Border color of a symbol during write-access, like writing to a variable.`)),e.registerColor(`editor.wordHighlightTextBorder`,aD,e.localize(`wordHighlightTextBorder`,`Border color of a textual occurrence for a symbol.`));var oD=e.registerColor(`editorOverviewRuler.wordHighlightForeground`,`#A0A0A0CC`,e.localize(`overviewRulerWordHighlightForeground`,`Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations.`),!0),sD=e.registerColor(`editorOverviewRuler.wordHighlightStrongForeground`,`#C0A0C0CC`,e.localize(`overviewRulerWordHighlightStrongForeground`,`Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations.`),!0),cD=e.registerColor(`editorOverviewRuler.wordHighlightTextForeground`,e.overviewRulerSelectionHighlightForeground,e.localize(`overviewRulerWordHighlightTextForeground`,`Overview ruler marker color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations.`),!0),lD=e.ModelDecorationOptions.register({description:`word-highlight-strong`,stickiness:1,className:`wordHighlightStrong`,overviewRuler:{color:e.themeColorFromId(sD),position:e.OverviewRulerLane.Center},minimap:{color:e.themeColorFromId(e.minimapSelectionOccurrenceHighlight),position:1}}),uD=e.ModelDecorationOptions.register({description:`word-highlight-text`,stickiness:1,className:`wordHighlightText`,overviewRuler:{color:e.themeColorFromId(cD),position:e.OverviewRulerLane.Center},minimap:{color:e.themeColorFromId(e.minimapSelectionOccurrenceHighlight),position:1}}),dD=e.ModelDecorationOptions.register({description:`selection-highlight-overview`,stickiness:1,className:`selectionHighlight`,overviewRuler:{color:e.themeColorFromId(e.overviewRulerSelectionHighlightForeground),position:e.OverviewRulerLane.Center},minimap:{color:e.themeColorFromId(e.minimapSelectionOccurrenceHighlight),position:1}}),fD=e.ModelDecorationOptions.register({description:`selection-highlight`,stickiness:1,className:`selectionHighlight`}),pD=e.ModelDecorationOptions.register({description:`word-highlight`,stickiness:1,className:`wordHighlight`,overviewRuler:{color:e.themeColorFromId(oD),position:e.OverviewRulerLane.Center},minimap:{color:e.themeColorFromId(e.minimapSelectionOccurrenceHighlight),position:1}});function mD(t){return t===e.DocumentHighlightKind.Write?lD:t===e.DocumentHighlightKind.Text?uD:pD}function hD(e){return e?fD:dD}e.registerThemingParticipant((t,n)=>{let r=t.getColor(e.editorSelectionHighlight);r&&n.addRule(`.monaco-editor .selectionHighlight { background-color: ${r.transparent(.5)}; }`)});var gD=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},_D=function(e,t){return function(n,r){t(n,r,e)}},vD;function yD(t,n){let r=n.filter(e=>!t.find(t=>t.equals(e)));if(r.length>=1){let t=r.map(e=>`line ${e.viewState.position.lineNumber} column ${e.viewState.position.column}`).join(`, `),n=r.length===1?e.localize(`cursorAdded`,`Cursor added: {0}`,t):e.localize(`cursorsAdded`,`Cursors added: {0}`,t);e.status(n)}}var bD=class extends e.EditorAction{constructor(){super({id:`editor.action.insertCursorAbove`,label:e.localize(`mutlicursor.insertAbove`,`Add Cursor Above`),alias:`Add Cursor Above`,precondition:void 0,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:e.MenuId.MenubarSelectionMenu,group:`3_multi`,title:e.localize({key:`miInsertCursorAbove`,comment:[`&& denotes a mnemonic`]},`&&Add Cursor Above`),order:2}})}run(t,n,r){if(!n.hasModel())return;let i=!0;r&&r.logicalLine===!1&&(i=!1);let a=n._getViewModel();if(a.cursorConfig.readOnly)return;a.model.pushStackElement();let o=a.getCursorStates();a.setCursorStates(r.source,3,e.CursorMoveCommands.addCursorUp(a,o,i)),a.revealTopMostCursor(r.source),yD(o,a.getCursorStates())}},xD=class extends e.EditorAction{constructor(){super({id:`editor.action.insertCursorBelow`,label:e.localize(`mutlicursor.insertBelow`,`Add Cursor Below`),alias:`Add Cursor Below`,precondition:void 0,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:e.MenuId.MenubarSelectionMenu,group:`3_multi`,title:e.localize({key:`miInsertCursorBelow`,comment:[`&& denotes a mnemonic`]},`A&&dd Cursor Below`),order:3}})}run(t,n,r){if(!n.hasModel())return;let i=!0;r&&r.logicalLine===!1&&(i=!1);let a=n._getViewModel();if(a.cursorConfig.readOnly)return;a.model.pushStackElement();let o=a.getCursorStates();a.setCursorStates(r.source,3,e.CursorMoveCommands.addCursorDown(a,o,i)),a.revealBottomMostCursor(r.source),yD(o,a.getCursorStates())}},SD=class extends e.EditorAction{constructor(){super({id:`editor.action.insertCursorAtEndOfEachLineSelected`,label:e.localize(`mutlicursor.insertAtEndOfEachLineSelected`,`Add Cursors to Line Ends`),alias:`Add Cursors to Line Ends`,precondition:void 0,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:e.MenuId.MenubarSelectionMenu,group:`3_multi`,title:e.localize({key:`miInsertCursorAtEndOfEachLineSelected`,comment:[`&& denotes a mnemonic`]},`Add C&&ursors to Line Ends`),order:4}})}getCursorsForSelection(t,n,r){if(!t.isEmpty()){for(let i=t.startLineNumber;i<t.endLineNumber;i++){let t=n.getLineMaxColumn(i);r.push(new e.Selection$1(i,t,i,t))}t.endColumn>1&&r.push(new e.Selection$1(t.endLineNumber,t.endColumn,t.endLineNumber,t.endColumn))}}run(e,t){if(!t.hasModel())return;let n=t.getModel(),r=t.getSelections(),i=t._getViewModel(),a=i.getCursorStates(),o=[];r.forEach(e=>this.getCursorsForSelection(e,n,o)),o.length>0&&t.setSelections(o),yD(a,i.getCursorStates())}},CD=class extends e.EditorAction{constructor(){super({id:`editor.action.addCursorsToBottom`,label:e.localize(`mutlicursor.addCursorsToBottom`,`Add Cursors To Bottom`),alias:`Add Cursors To Bottom`,precondition:void 0})}run(t,n){if(!n.hasModel())return;let r=n.getSelections(),i=n.getModel().getLineCount(),a=[];for(let t=r[0].startLineNumber;t<=i;t++)a.push(new e.Selection$1(t,r[0].startColumn,t,r[0].endColumn));let o=n._getViewModel(),s=o.getCursorStates();a.length>0&&n.setSelections(a),yD(s,o.getCursorStates())}},wD=class extends e.EditorAction{constructor(){super({id:`editor.action.addCursorsToTop`,label:e.localize(`mutlicursor.addCursorsToTop`,`Add Cursors To Top`),alias:`Add Cursors To Top`,precondition:void 0})}run(t,n){if(!n.hasModel())return;let r=n.getSelections(),i=[];for(let t=r[0].startLineNumber;t>=1;t--)i.push(new e.Selection$1(t,r[0].startColumn,t,r[0].endColumn));let a=n._getViewModel(),o=a.getCursorStates();i.length>0&&n.setSelections(i),yD(o,a.getCursorStates())}},TD=class{constructor(e,t,n){this.selections=e,this.revealRange=t,this.revealScrollType=n}},ED=class t{static create(n,r){if(!n.hasModel())return null;let i=r.getState();if(!n.hasTextFocus()&&i.isRevealed&&i.searchString.length>0)return new t(n,r,!1,i.searchString,i.wholeWord,i.matchCase,null);let a=!1,o,s,c=n.getSelections();c.length===1&&c[0].isEmpty()?(a=!0,o=!0,s=!0):(o=i.wholeWord,s=i.matchCase);let l=n.getSelection(),u,d=null;if(l.isEmpty()){let t=n.getConfiguredWordAtPosition(l.getStartPosition());if(!t)return null;u=t.word,d=new e.Selection$1(l.startLineNumber,t.startColumn,l.startLineNumber,t.endColumn)}else u=n.getModel().getValueInRange(l).replace(/\r\n/g,`
`);return new t(n,r,a,u,o,s,d)}constructor(e,t,n,r,i,a,o){this._editor=e,this.findController=t,this.isDisconnectedFromFindController=n,this.searchText=r,this.wholeWord=i,this.matchCase=a,this.currentMatch=o}addSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;let e=this._getNextMatch();if(!e)return null;let t=this._editor.getSelections();return new TD(t.concat(e),e,0)}moveSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;let e=this._getNextMatch();if(!e)return null;let t=this._editor.getSelections();return new TD(t.slice(0,t.length-1).concat(e),e,0)}_getNextMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){let e=this.currentMatch;return this.currentMatch=null,e}this.findController.highlightFindOptions();let t=this._editor.getSelections(),n=t[t.length-1],r=this._editor.getModel().findNextMatch(this.searchText,n.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(132):null,!1);return r?new e.Selection$1(r.range.startLineNumber,r.range.startColumn,r.range.endLineNumber,r.range.endColumn):null}addSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;let e=this._getPreviousMatch();if(!e)return null;let t=this._editor.getSelections();return new TD(t.concat(e),e,0)}moveSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;let e=this._getPreviousMatch();if(!e)return null;let t=this._editor.getSelections();return new TD(t.slice(0,t.length-1).concat(e),e,0)}_getPreviousMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){let e=this.currentMatch;return this.currentMatch=null,e}this.findController.highlightFindOptions();let t=this._editor.getSelections(),n=t[t.length-1],r=this._editor.getModel().findPreviousMatch(this.searchText,n.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(132):null,!1);return r?new e.Selection$1(r.range.startLineNumber,r.range.startColumn,r.range.endLineNumber,r.range.endColumn):null}selectAll(e){if(!this._editor.hasModel())return[];this.findController.highlightFindOptions();let t=this._editor.getModel();return e?t.findMatches(this.searchText,e,!1,this.matchCase,this.wholeWord?this._editor.getOption(132):null,!1,1073741824):t.findMatches(this.searchText,!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(132):null,!1,1073741824)}},DD=class t extends e.Disposable{static{this.ID=`editor.contrib.multiCursorController`}static get(e){return e.getContribution(t.ID)}constructor(t){super(),this._sessionDispose=this._register(new e.DisposableStore),this._editor=t,this._ignoreSelectionChange=!1,this._session=null}dispose(){this._endSession(),super.dispose()}_beginSessionIfNeeded(e){if(!this._session){let t=ED.create(this._editor,e);if(!t)return;this._session=t;let n={searchString:this._session.searchText};this._session.isDisconnectedFromFindController&&(n.wholeWordOverride=1,n.matchCaseOverride=1,n.isRegexOverride=2),e.getState().change(n,!1),this._sessionDispose.add(this._editor.onDidChangeCursorSelection(e=>{this._ignoreSelectionChange||this._endSession()})),this._sessionDispose.add(this._editor.onDidBlurEditorText(()=>{this._endSession()})),this._sessionDispose.add(e.getState().onFindReplaceStateChange(e=>{(e.matchCase||e.wholeWord)&&this._endSession()}))}}_endSession(){this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController&&this._session.findController.getState().change({wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0},!1),this._session=null}_setSelections(e){this._ignoreSelectionChange=!0,this._editor.setSelections(e),this._ignoreSelectionChange=!1}_expandEmptyToWord(t,n){if(!n.isEmpty())return n;let r=this._editor.getConfiguredWordAtPosition(n.getStartPosition());return r?new e.Selection$1(n.startLineNumber,r.startColumn,n.startLineNumber,r.endColumn):n}_applySessionResult(e){e&&(this._setSelections(e.selections),e.revealRange&&this._editor.revealRangeInCenterIfOutsideViewport(e.revealRange,e.revealScrollType))}getSession(e){return this._session}addSelectionToNextFindMatch(e){if(this._editor.hasModel()){if(!this._session){let t=this._editor.getSelections();if(t.length>1){let n=e.getState().matchCase;if(!LD(this._editor.getModel(),t,n)){let e=this._editor.getModel(),n=[];for(let r=0,i=t.length;r<i;r++)n[r]=this._expandEmptyToWord(e,t[r]);this._editor.setSelections(n);return}}}this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.addSelectionToNextFindMatch())}}addSelectionToPreviousFindMatch(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.addSelectionToPreviousFindMatch())}moveSelectionToNextFindMatch(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.moveSelectionToNextFindMatch())}moveSelectionToPreviousFindMatch(e){this._beginSessionIfNeeded(e),this._session&&this._applySessionResult(this._session.moveSelectionToPreviousFindMatch())}selectAll(t){if(!this._editor.hasModel())return;let n=null,r=t.getState();if(r.isRevealed&&r.searchString.length>0&&r.isRegex){let e=this._editor.getModel();n=r.searchScope?e.findMatches(r.searchString,r.searchScope,r.isRegex,r.matchCase,r.wholeWord?this._editor.getOption(132):null,!1,1073741824):e.findMatches(r.searchString,!0,r.isRegex,r.matchCase,r.wholeWord?this._editor.getOption(132):null,!1,1073741824)}else{if(this._beginSessionIfNeeded(t),!this._session)return;n=this._session.selectAll(r.searchScope)}if(n.length>0){let t=this._editor.getSelection();for(let e=0,r=n.length;e<r;e++){let r=n[e];if(r.range.intersectRanges(t)){n[e]=n[0],n[0]=r;break}}this._setSelections(n.map(t=>new e.Selection$1(t.range.startLineNumber,t.range.startColumn,t.range.endLineNumber,t.range.endColumn)))}}},OD=class extends e.EditorAction{run(t,n){let r=DD.get(n);if(!r)return;let i=n._getViewModel();if(i){let a=i.getCursorStates(),o=Zv.get(n);if(o)this._run(r,o);else{let i=t.get(e.IInstantiationService).createInstance(Zv,n);this._run(r,i),i.dispose()}yD(a,i.getCursorStates())}}},kD=class extends OD{constructor(){super({id:`editor.action.addSelectionToNextFindMatch`,label:e.localize(`addSelectionToNextFindMatch`,`Add Selection To Next Find Match`),alias:`Add Selection To Next Find Match`,precondition:void 0,kbOpts:{kbExpr:e.EditorContextKeys.focus,primary:2082,weight:100},menuOpts:{menuId:e.MenuId.MenubarSelectionMenu,group:`3_multi`,title:e.localize({key:`miAddSelectionToNextFindMatch`,comment:[`&& denotes a mnemonic`]},`Add &&Next Occurrence`),order:5}})}_run(e,t){e.addSelectionToNextFindMatch(t)}},AD=class extends OD{constructor(){super({id:`editor.action.addSelectionToPreviousFindMatch`,label:e.localize(`addSelectionToPreviousFindMatch`,`Add Selection To Previous Find Match`),alias:`Add Selection To Previous Find Match`,precondition:void 0,menuOpts:{menuId:e.MenuId.MenubarSelectionMenu,group:`3_multi`,title:e.localize({key:`miAddSelectionToPreviousFindMatch`,comment:[`&& denotes a mnemonic`]},`Add P&&revious Occurrence`),order:6}})}_run(e,t){e.addSelectionToPreviousFindMatch(t)}},jD=class extends OD{constructor(){super({id:`editor.action.moveSelectionToNextFindMatch`,label:e.localize(`moveSelectionToNextFindMatch`,`Move Last Selection To Next Find Match`),alias:`Move Last Selection To Next Find Match`,precondition:void 0,kbOpts:{kbExpr:e.EditorContextKeys.focus,primary:e.KeyChord(2089,2082),weight:100}})}_run(e,t){e.moveSelectionToNextFindMatch(t)}},MD=class extends OD{constructor(){super({id:`editor.action.moveSelectionToPreviousFindMatch`,label:e.localize(`moveSelectionToPreviousFindMatch`,`Move Last Selection To Previous Find Match`),alias:`Move Last Selection To Previous Find Match`,precondition:void 0})}_run(e,t){e.moveSelectionToPreviousFindMatch(t)}},ND=class extends OD{constructor(){super({id:`editor.action.selectHighlights`,label:e.localize(`selectAllOccurrencesOfFindMatch`,`Select All Occurrences of Find Match`),alias:`Select All Occurrences of Find Match`,precondition:void 0,kbOpts:{kbExpr:e.EditorContextKeys.focus,primary:3114,weight:100},menuOpts:{menuId:e.MenuId.MenubarSelectionMenu,group:`3_multi`,title:e.localize({key:`miSelectHighlights`,comment:[`&& denotes a mnemonic`]},`Select All &&Occurrences`),order:7}})}_run(e,t){e.selectAll(t)}},PD=class extends OD{constructor(){super({id:`editor.action.changeAll`,label:e.localize(`changeAll.label`,`Change All Occurrences`),alias:`Change All Occurrences`,precondition:e.ContextKeyExpr.and(e.EditorContextKeys.writable,e.EditorContextKeys.editorTextFocus),kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:`1_modification`,order:1.2}})}_run(e,t){e.selectAll(t)}},FD=class{constructor(e,t,n,r,i){this._model=e,this._searchText=t,this._matchCase=n,this._wordSeparators=r,this._modelVersionId=this._model.getVersionId(),this._cachedFindMatches=null,i&&this._model===i._model&&this._searchText===i._searchText&&this._matchCase===i._matchCase&&this._wordSeparators===i._wordSeparators&&this._modelVersionId===i._modelVersionId&&(this._cachedFindMatches=i._cachedFindMatches)}findMatches(){return this._cachedFindMatches===null&&(this._cachedFindMatches=this._model.findMatches(this._searchText,!0,!1,this._matchCase,this._wordSeparators,!1).map(e=>e.range),this._cachedFindMatches.sort(e.Range$1.compareRangesUsingStarts)),this._cachedFindMatches}},ID=class extends e.Disposable{static{vD=this}static{this.ID=`editor.contrib.selectionHighlighter`}constructor(t,n){super(),this._languageFeaturesService=n,this.editor=t,this._isEnabled=t.getOption(109),this._decorations=t.createDecorationsCollection(),this.updateSoon=this._register(new e.RunOnceScheduler(()=>this._update(),300)),this.state=null,this._register(t.onDidChangeConfiguration(e=>{this._isEnabled=t.getOption(109)})),this._register(t.onDidChangeCursorSelection(e=>{this._isEnabled&&(e.selection.isEmpty()?e.reason===3?(this.state&&this._setState(null),this.updateSoon.schedule()):this._setState(null):this._update())})),this._register(t.onDidChangeModel(e=>{this._setState(null)})),this._register(t.onDidChangeModelContent(e=>{this._isEnabled&&this.updateSoon.schedule()}));let r=Zv.get(t);r&&this._register(r.getState().onFindReplaceStateChange(e=>{this._update()})),this.updateSoon.schedule()}_update(){this._setState(vD._createState(this.state,this._isEnabled,this.editor))}static _createState(e,t,n){if(!t||!n.hasModel())return null;let r=n.getSelection();if(r.startLineNumber!==r.endLineNumber)return null;let i=DD.get(n);if(!i)return null;let a=Zv.get(n);if(!a)return null;let o=i.getSession(a);if(!o){let e=n.getSelections();if(e.length>1){let t=a.getState().matchCase;if(!LD(n.getModel(),e,t))return null}o=ED.create(n,a)}if(!o||o.currentMatch||/^[ \t]+$/.test(o.searchText)||o.searchText.length>200)return null;let s=a.getState(),c=s.matchCase;if(s.isRevealed){let e=s.searchString;c||(e=e.toLowerCase());let t=o.searchText;if(c||(t=t.toLowerCase()),e===t&&o.matchCase===s.matchCase&&o.wholeWord===s.wholeWord&&!s.isRegex)return null}return new FD(n.getModel(),o.searchText,o.matchCase,o.wholeWord?n.getOption(132):null,e)}_setState(t){if(this.state=t,!this.state){this._decorations.clear();return}if(!this.editor.hasModel())return;let n=this.editor.getModel();if(n.isTooLargeForTokenization())return;let r=this.state.findMatches(),i=this.editor.getSelections();i.sort(e.Range$1.compareRangesUsingStarts);let a=[];for(let t=0,n=0,o=r.length,s=i.length;t<o;){let o=r[t];if(n>=s)a.push(o),t++;else{let r=e.Range$1.compareRangesUsingStarts(o,i[n]);r<0?((i[n].isEmpty()||!e.Range$1.areIntersecting(o,i[n]))&&a.push(o),t++):(r>0||t++,n++)}}let o=this.editor.getOption(81)!==`off`,s=this._languageFeaturesService.documentHighlightProvider.has(n)&&o,c=a.map(e=>({range:e,options:hD(s)}));this._decorations.set(c)}dispose(){this._setState(null),super.dispose()}};ID=vD=gD([_D(1,e.ILanguageFeaturesService)],ID);function LD(e,t,n){let r=RD(e,t[0],!n);for(let i=1,a=t.length;i<a;i++){let a=t[i];if(a.isEmpty())return!1;let o=RD(e,a,!n);if(r!==o)return!1}return!0}function RD(e,t,n){let r=e.getValueInRange(t);return n?r.toLowerCase():r}var zD=class extends e.EditorAction{constructor(){super({id:`editor.action.focusNextCursor`,label:e.localize(`mutlicursor.focusNextCursor`,`Focus Next Cursor`),metadata:{description:e.localize(`mutlicursor.focusNextCursor.description`,`Focuses the next cursor`),args:[]},alias:`Focus Next Cursor`,precondition:void 0})}run(e,t,n){if(!t.hasModel())return;let r=t._getViewModel();if(r.cursorConfig.readOnly)return;r.model.pushStackElement();let i=Array.from(r.getCursorStates()),a=i.shift();a&&(i.push(a),r.setCursorStates(n.source,3,i),r.revealPrimaryCursor(n.source,!0),yD(i,r.getCursorStates()))}},BD=class extends e.EditorAction{constructor(){super({id:`editor.action.focusPreviousCursor`,label:e.localize(`mutlicursor.focusPreviousCursor`,`Focus Previous Cursor`),metadata:{description:e.localize(`mutlicursor.focusPreviousCursor.description`,`Focuses the previous cursor`),args:[]},alias:`Focus Previous Cursor`,precondition:void 0})}run(e,t,n){if(!t.hasModel())return;let r=t._getViewModel();if(r.cursorConfig.readOnly)return;r.model.pushStackElement();let i=Array.from(r.getCursorStates()),a=i.pop();a&&(i.unshift(a),r.setCursorStates(n.source,3,i),r.revealPrimaryCursor(n.source,!0),yD(i,r.getCursorStates()))}};e.registerEditorContribution(DD.ID,DD,4),e.registerEditorContribution(ID.ID,ID,1),e.registerEditorAction(bD),e.registerEditorAction(xD),e.registerEditorAction(SD),e.registerEditorAction(kD),e.registerEditorAction(AD),e.registerEditorAction(jD),e.registerEditorAction(MD),e.registerEditorAction(ND),e.registerEditorAction(PD),e.registerEditorAction(CD),e.registerEditorAction(wD),e.registerEditorAction(zD),e.registerEditorAction(BD);const VD=`editor.action.inlineEdit.accept`,HD=`editor.action.inlineEdit.reject`,UD=`editor.action.inlineEdit.jumpTo`,WD=`editor.action.inlineEdit.jumpBack`;var GD=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},KD=function(e,t){return function(n,r){t(n,r,e)}};const qD=`inline-edit`;var JD=class extends e.Disposable{constructor(t,n,r){super(),this.editor=t,this.model=n,this.languageService=r,this.isDisposed=e.observableValue(this,!1),this.currentTextModel=e.observableFromEvent(this,this.editor.onDidChangeModel,()=>this.editor.getModel()),this.uiState=e.derived(this,t=>{if(this.isDisposed.read(t))return;let n=this.currentTextModel.read(t);if(n!==this.model.targetTextModel.read(t))return;let r=this.model.ghostText.read(t);if(!r)return;let i=this.model.range?.read(t);i&&i.startLineNumber===i.endLineNumber&&i.startColumn===i.endColumn&&(i=void 0);let a=(i?i.startLineNumber===i.endLineNumber:!0)&&r.parts.length===1&&r.parts[0].lines.length===1,o=r.parts.length===1&&r.parts[0].lines.every(e=>e.length===0),s=[],c=[];function l(t,n){if(c.length>0){let r=c[c.length-1];n&&r.decorations.push(new e.LineDecoration(r.content.length+1,r.content.length+1+t[0].length,n,0)),r.content+=t[0],t=t.slice(1)}for(let r of t)c.push({content:r,decorations:n?[new e.LineDecoration(1,r.length+1,n,0)]:[]})}let u=n.getLineContent(r.lineNumber),d,f=0;if(!o&&(a||!i)){for(let e of r.parts){let t=e.lines;i&&!a&&(l(t,qD),t=[]),d===void 0?(s.push({column:e.column,text:t[0],preview:e.preview}),t=t.slice(1)):l([u.substring(f,e.column-1)],void 0),t.length>0&&(l(t,qD),d===void 0&&e.column<=u.length&&(d=e.column)),f=e.column-1}d!==void 0&&l([u.substring(f)],void 0)}let p=d===void 0?void 0:new $b(d,u.length+1),m=a||!i?r.lineNumber:i.endLineNumber-1;return{inlineTexts:s,additionalLines:c,hiddenRange:p,lineNumber:m,additionalReservedLineCount:this.model.minReservedLineCount.read(t),targetTextModel:n,range:i,isSingleLine:a,isPureRemove:o}}),this.decorations=e.derived(this,t=>{let n=this.uiState.read(t);if(!n)return[];let r=[];if(n.hiddenRange&&r.push({range:n.hiddenRange.toRange(n.lineNumber),options:{inlineClassName:`inline-edit-hidden`,description:`inline-edit-hidden`}}),n.range){let t=[];if(n.isSingleLine)t.push(n.range);else if(!n.isPureRemove){let r=n.range.endLineNumber-n.range.startLineNumber;for(let i=0;i<r;i++){let r=n.range.startLineNumber+i,a=n.targetTextModel.getLineFirstNonWhitespaceColumn(r),o=n.targetTextModel.getLineLastNonWhitespaceColumn(r),s=new e.Range$1(r,a,r,o);t.push(s)}}for(let n of t)r.push({range:n,options:e.diffDeleteDecoration})}if(n.range&&!n.isSingleLine&&n.isPureRemove){let t=new e.Range$1(n.range.startLineNumber,1,n.range.endLineNumber-1,1);r.push({range:t,options:e.diffLineDeleteDecorationBackgroundWithIndicator})}for(let t of n.inlineTexts)r.push({range:e.Range$1.fromPositions(new e.Position$1(n.lineNumber,t.column)),options:{description:qD,after:{content:t.text,inlineClassName:t.preview?`inline-edit-decoration-preview`:`inline-edit-decoration`,cursorStops:e.InjectedTextCursorStops.Left},showIfCollapsed:!0}});return r}),this._register(e.toDisposable(()=>{this.isDisposed.set(!0,void 0)})),this._register(ex(this.editor,this.decorations))}};JD=GD([KD(2,e.ILanguageService)],JD);var YD=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},XD=function(e,t){return function(n,r){t(n,r,e)}},ZD,QD=class extends e.Disposable{constructor(t,n,r){super(),this.editor=t,this.model=n,this.instantiationService=r,this.alwaysShowToolbar=e.observableFromEvent(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(63).showToolbar===`always`),this.sessionPosition=void 0,this.position=e.derived(this,t=>{let n=this.model.read(t)?.model.ghostText.read(t);if(!this.alwaysShowToolbar.read(t)||!n||n.parts.length===0)return this.sessionPosition=void 0,null;let r=n.parts[0].column;this.sessionPosition&&this.sessionPosition.lineNumber!==n.lineNumber&&(this.sessionPosition=void 0);let i=new e.Position$1(n.lineNumber,Math.min(r,this.sessionPosition?.column??2**53-1));return this.sessionPosition=i,i}),this._register(e.autorunWithStore((n,r)=>{if(!this.model.read(n)||!this.alwaysShowToolbar.read(n))return;let i=r.add(this.instantiationService.createInstance($D,this.editor,!0,this.position));t.addContentWidget(i),r.add(e.toDisposable(()=>t.removeContentWidget(i)))}))}};QD=YD([XD(2,e.IInstantiationService)],QD);var $D=class extends e.Disposable{static{ZD=this}static{this._dropDownVisible=!1}static{this.id=0}constructor(t,n,r,i,a,o){super(),this.editor=t,this.withBorder=n,this._position=r,this._contextKeyService=a,this._menuService=o,this.id=`InlineEditHintsContentWidget${ZD.id++}`,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this.nodes=e.h(`div.inlineEditHints`,{className:this.withBorder?`.withBorder`:``},[e.h(`div@toolBar`)]),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu(e.MenuId.InlineEditActions,this._contextKeyService)),this.toolBar=this._register(i.createInstance(tO,this.nodes.toolBar,this.editor,e.MenuId.InlineEditToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:e=>e.startsWith(`primary`)},actionViewItemProvider:(t,n)=>{if(t instanceof e.MenuItemAction)return i.createInstance(eO,t,void 0)},telemetrySource:`InlineEditToolbar`})),this._register(this.toolBar.onDidChangeDropdownVisibility(e=>{ZD._dropDownVisible=e})),this._register(e.autorun(e=>{this._position.read(e),this.editor.layoutContentWidget(this)})),this._register(e.autorun(t=>{let n=[];for(let[t,r]of this.inlineCompletionsActionsMenus.getActions())for(let t of r)t instanceof e.MenuItemAction&&n.push(t);n.length>0&&n.unshift(new e.Separator),this.toolBar.setAdditionalSecondaryActions(n)}))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}};$D=ZD=YD([XD(3,e.IInstantiationService),XD(4,e.IContextKeyService),XD(5,e.IMenuService)],$D);var eO=class extends e.MenuEntryActionViewItem{updateLabel(){let t=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!t)return super.updateLabel();if(this.label){let n=e.h(`div.keybinding`).root;this._register(new e.KeybindingLabel(n,e.OS,{disableTitle:!0,...e.unthemedKeybindingLabelOptions})).set(t),this.label.textContent=this._action.label,this.label.appendChild(n),this.label.classList.add(`inlineEditStatusBarItemLabel`)}}updateTooltip(){}},tO=class extends e.WorkbenchToolBar{constructor(e,t,n,r,i,a,o,s,c,l){super(e,{resetMenu:n,...r},i,a,o,s,c,l),this.editor=t,this.menuId=n,this.options2=r,this.menuService=i,this.contextKeyService=a,this.menu=this._store.add(this.menuService.createMenu(this.menuId,this.contextKeyService,{emitEventsForSubmenuChanges:!0})),this.additionalActions=[],this.prependedPrimaryActions=[],this._store.add(this.menu.onDidChange(()=>this.updateToolbar())),this._store.add(this.editor.onDidChangeCursorPosition(()=>this.updateToolbar())),this.updateToolbar()}updateToolbar(){let t=[],n=[];e.createAndFillInActionBarActions(this.menu,this.options2?.menuOptions,{primary:t,secondary:n},this.options2?.toolbarOptions?.primaryGroup,this.options2?.toolbarOptions?.shouldInlineSubmenu,this.options2?.toolbarOptions?.useSeparatorsInPrimaryActions),n.push(...this.additionalActions),t.unshift(...this.prependedPrimaryActions),this.setActions(t,n)}setAdditionalSecondaryActions(t){e.equals(this.additionalActions,t,(e,t)=>e===t)||(this.additionalActions=t,this.updateToolbar())}};tO=YD([XD(4,e.IMenuService),XD(5,e.IContextKeyService),XD(6,e.IContextMenuService),XD(7,e.IKeybindingService),XD(8,e.ICommandService),XD(9,e.ITelemetryService)],tO);var nO=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},rO=function(e,t){return function(n,r){t(n,r,e)}},iO,aO;function*oO(e,t,n=1){t===void 0&&([t,e]=[e,0]);for(let r=e;r<t;r+=n)yield r}function sO(e){let t=e[0].match(/^\s*/)?.[0]??``,n=t.length;return{text:e.map(e=>e.replace(RegExp(`^`+t),``)),shift:n}}var cO=class extends e.Disposable{static{iO=this}static{this._modelId=0}static _createUniqueUri(){return e.URI.from({scheme:`inline-edit-widget`,path:new Date().toString()+String(iO._modelId++)})}constructor(t,n,r,i,a){super(),this._editor=t,this._model=n,this._instantiationService=r,this._diffProviderFactoryService=i,this._modelService=a,this._position=e.derived(this,t=>{let n=this._model.read(t);if(!n||n.text.length===0||n.range.startLineNumber===n.range.endLineNumber&&!(n.range.startColumn===n.range.endColumn&&n.range.startColumn===1))return null;let r=this._editor.getModel();if(!r)return null;let i=Array.from(oO(n.range.startLineNumber,n.range.endLineNumber+1)),a=i.map(e=>r.getLineLastNonWhitespaceColumn(e)),o=Math.max(...a),s=i[a.indexOf(o)],c=new e.Position$1(s,o);return{top:n.range.startLineNumber,left:c}}),this._text=e.derived(this,e=>{let t=this._model.read(e);if(!t)return{text:``,shift:0};let n=sO(t.text.split(`
`));return{text:n.text.join(`
`),shift:n.shift}}),this._originalModel=e.derivedDisposable(()=>this._modelService.createModel(``,null,iO._createUniqueUri())).keepObserved(this._store),this._modifiedModel=e.derivedDisposable(()=>this._modelService.createModel(``,null,iO._createUniqueUri())).keepObserved(this._store),this._diff=e.derived(this,e=>this._diffPromise.read(e)?.promiseResult.read(e)?.data),this._diffPromise=e.derived(this,t=>{let n=this._model.read(t);if(!n)return;let r=this._editor.getModel();if(!r)return;let i=sO(r.getValueInRange(n.range).split(`
`)).text.join(`
`),a=sO(n.text.split(`
`)).text.join(`
`);this._originalModel.get().setValue(i),this._modifiedModel.get().setValue(a);let o=this._diffProviderFactoryService.createDiffProvider({diffAlgorithm:`advanced`});return e.ObservablePromise.fromFn(async()=>{let t=await o.computeDiff(this._originalModel.get(),this._modifiedModel.get(),{computeMoves:!1,ignoreTrimWhitespace:!1,maxComputationTimeMs:1e3},e.CancellationToken.None);if(!t.identical)return t.changes})}),this._register(e.autorunWithStore((n,r)=>{if(!this._model.read(n)||this._position.get()===null)return;let i=r.add(this._instantiationService.createInstance(lO,this._editor,this._position,this._text.map(e=>e.text),this._text.map(e=>e.shift),this._diff));t.addOverlayWidget(i),r.add(e.toDisposable(()=>t.removeOverlayWidget(i)))}))}};cO=iO=nO([rO(2,e.IInstantiationService),rO(3,e.IDiffProviderFactoryService),rO(4,e.IModelService)],cO);var lO=class extends e.Disposable{static{aO=this}static{this.id=0}constructor(t,n,r,i,a,o){super(),this._editor=t,this._position=n,this._text=r,this._shift=i,this._diff=a,this._instantiationService=o,this.id=`InlineEditSideBySideContentWidget${aO.id++}`,this.allowEditorOverflow=!1,this._nodes=e.$(`div.inlineEditSideBySide`,void 0),this._scrollChanged=e.observableSignalFromEvent(`editor.onDidScrollChange`,this._editor.onDidScrollChange),this._previewEditor=this._register(this._instantiationService.createInstance(zm,this._nodes,{glyphMargin:!1,lineNumbers:`off`,minimap:{enabled:!1},guides:{indentation:!1,bracketPairs:!1,bracketPairsHorizontal:!1,highlightActiveIndentation:!1},folding:!1,selectOnLineNumbers:!1,selectionHighlight:!1,columnSelection:!1,overviewRulerBorder:!1,overviewRulerLanes:0,lineDecorationsWidth:0,lineNumbersMinChars:0,scrollbar:{vertical:`hidden`,horizontal:`hidden`,alwaysConsumeMouseWheel:!1,handleMouseWheel:!1},readOnly:!0,wordWrap:`off`,wordWrapOverride1:`off`,wordWrapOverride2:`off`,wrappingIndent:`none`,wrappingStrategy:void 0},{contributions:[],isSimpleWidget:!0},this._editor)),this._previewEditorObs=e.observableCodeEditor(this._previewEditor),this._editorObs=e.observableCodeEditor(this._editor),this._previewTextModel=this._register(this._instantiationService.createInstance(e.TextModel,``,this._editor.getModel()?.getLanguageId()??`plaintext`,e.TextModel.DEFAULT_CREATION_OPTIONS,null)),this._setText=e.derived(e=>{let t=this._text.read(e);t&&this._previewTextModel.setValue(t)}).recomputeInitiallyAndOnChange(this._store),this._decorations=e.derived(this,t=>{this._setText.read(t);let n=this._position.read(t);if(!n)return{org:[],mod:[]};let r=this._diff.read(t);if(!r)return{org:[],mod:[]};let i=[],a=[];if(r.length===1&&r[0].innerChanges[0].modifiedRange.equalsRange(this._previewTextModel.getFullModelRange()))return{org:[],mod:[]};let o=this._shift.get(),s=t=>new e.Range$1(t.startLineNumber+n.top-1,t.startColumn+o,t.endLineNumber+n.top-1,t.endColumn+o);for(let t of r)if(t.original.isEmpty||i.push({range:s(t.original.toInclusiveRange()),options:e.diffLineDeleteDecorationBackgroundWithIndicator}),t.modified.isEmpty||a.push({range:t.modified.toInclusiveRange(),options:e.diffLineAddDecorationBackgroundWithIndicator}),t.modified.isEmpty||t.original.isEmpty)t.original.isEmpty||i.push({range:s(t.original.toInclusiveRange()),options:e.diffWholeLineDeleteDecoration}),t.modified.isEmpty||a.push({range:t.modified.toInclusiveRange(),options:e.diffWholeLineAddDecoration});else for(let n of t.innerChanges||[])t.original.contains(n.originalRange.startLineNumber)&&i.push({range:s(n.originalRange),options:n.originalRange.isEmpty()?e.diffDeleteDecorationEmpty:e.diffDeleteDecoration}),t.modified.contains(n.modifiedRange.startLineNumber)&&a.push({range:n.modifiedRange,options:n.modifiedRange.isEmpty()?e.diffAddDecorationEmpty:e.diffAddDecoration});return{org:i,mod:a}}),this._originalDecorations=e.derived(this,e=>this._decorations.read(e).org),this._modifiedDecorations=e.derived(this,e=>this._decorations.read(e).mod),this._previewEditor.setModel(this._previewTextModel),this._register(this._editorObs.setDecorations(this._originalDecorations)),this._register(this._previewEditorObs.setDecorations(this._modifiedDecorations)),this._register(e.autorun(e=>{let t=this._previewEditorObs.contentWidth.read(e),n=this._text.read(e).split(`
`).length-1,r=this._editor.getOption(67)*n;t<=0||this._previewEditor.layout({height:r,width:t})})),this._register(e.autorun(e=>{this._position.read(e),this._editor.layoutOverlayWidget(this)})),this._register(e.autorun(e=>{this._scrollChanged.read(e),this._position.read(e)&&this._editor.layoutOverlayWidget(this)}))}getId(){return this.id}getDomNode(){return this._nodes}getPosition(){let t=this._position.get();if(!t)return null;let n=this._editor.getLayoutInfo(),r=this._editor.getScrolledVisiblePosition(new e.Position$1(t.top,1));if(!r)return null;let i=r.top-1,a=this._editor.getOffsetForColumn(t.left.lineNumber,t.left.column);return{preference:{left:n.contentLeft+a+10,top:i}}}};lO=aO=nO([rO(5,e.IInstantiationService)],lO);var uO=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},dO=function(e,t){return function(n,r){t(n,r,e)}},fO,pO=class extends e.Disposable{static{fO=this}static{this.ID=`editor.contrib.inlineEditController`}static{this.inlineEditVisibleKey=`inlineEditVisible`}static{this.inlineEditVisibleContext=new e.RawContextKey(this.inlineEditVisibleKey,!1)}static{this.cursorAtInlineEditKey=`cursorAtInlineEdit`}static{this.cursorAtInlineEditContext=new e.RawContextKey(this.cursorAtInlineEditKey,!1)}static get(e){return e.getContribution(fO.ID)}constructor(t,n,r,i,a,o,s,c){super(),this.editor=t,this.instantiationService=n,this.contextKeyService=r,this.languageFeaturesService=i,this._commandService=a,this._configurationService=o,this._diffProviderFactoryService=s,this._modelService=c,this._isVisibleContext=fO.inlineEditVisibleContext.bindTo(this.contextKeyService),this._isCursorAtInlineEditContext=fO.cursorAtInlineEditContext.bindTo(this.contextKeyService),this._currentEdit=e.observableValue(this,void 0),this._currentWidget=e.derivedDisposable(this._currentEdit,t=>{let n=this._currentEdit.read(t);if(!n)return;let r=n.range.endLineNumber,i=n.range.endColumn,a=n.text.endsWith(`
`)&&!(n.range.startLineNumber===n.range.endLineNumber&&n.range.startColumn===n.range.endColumn)?n.text.slice(0,-1):n.text,o=new Kb(r,[new qb(i,a,!1)]),s=n.range.startLineNumber===n.range.endLineNumber&&o.parts.length===1&&o.parts[0].lines.length===1,c=n.text===``;if(!(!s&&!c))return this.instantiationService.createInstance(JD,this.editor,{ghostText:e.constObservable(o),minReservedLineCount:e.constObservable(0),targetTextModel:e.constObservable(this.editor.getModel()??void 0),range:e.constObservable(n.range)})}),this._isAccepting=e.observableValue(this,!1),this._enabled=e.observableFromEvent(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(63).enabled),this._fontFamily=e.observableFromEvent(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(63).fontFamily);let l=e.observableSignalFromEvent(`InlineEditController.modelContentChangedSignal`,t.onDidChangeModelContent);this._register(e.autorun(e=>{this._enabled.read(e)&&(l.read(e),!this._isAccepting.read(e)&&this.getInlineEdit(t,!0))}));let u=e.observableFromEvent(this,t.onDidChangeCursorPosition,()=>t.getPosition());this._register(e.autorun(e=>{if(!this._enabled.read(e))return;let t=u.read(e);t&&this.checkCursorPosition(t)})),this._register(e.autorun(e=>{let n=this._currentEdit.read(e);if(this._isCursorAtInlineEditContext.set(!1),!n){this._isVisibleContext.set(!1);return}this._isVisibleContext.set(!0);let r=t.getPosition();r&&this.checkCursorPosition(r)}));let d=e.observableSignalFromEvent(`InlineEditController.editorBlurSignal`,t.onDidBlurEditorWidget);this._register(e.autorun(async e=>{this._enabled.read(e)&&(d.read(e),!(this._configurationService.getValue(`editor.experimentalInlineEdit.keepOnBlur`)||t.getOption(63).keepOnBlur)&&(this._currentRequestCts?.dispose(!0),this._currentRequestCts=void 0,await this.clear(!1)))}));let f=e.observableSignalFromEvent(`InlineEditController.editorFocusSignal`,t.onDidFocusEditorText);this._register(e.autorun(e=>{this._enabled.read(e)&&(f.read(e),this.getInlineEdit(t,!0))}));let p=this._register(e.createStyleSheet2());this._register(e.autorun(e=>{let t=this._fontFamily.read(e);p.setStyle(t===``||t===`default`?``:`
.monaco-editor .inline-edit-decoration,
.monaco-editor .inline-edit-decoration-preview,
.monaco-editor .inline-edit {
font-family: ${t};
}`)})),this._register(new QD(this.editor,this._currentWidget,this.instantiationService)),this._register(new cO(this.editor,this._currentEdit,this.instantiationService,this._diffProviderFactoryService,this._modelService))}checkCursorPosition(t){if(!this._currentEdit){this._isCursorAtInlineEditContext.set(!1);return}let n=this._currentEdit.get();if(!n){this._isCursorAtInlineEditContext.set(!1);return}this._isCursorAtInlineEditContext.set(e.Range$1.containsPosition(n.range,t))}validateInlineEdit(e,t){if(t.text.includes(`
`)&&t.range.startLineNumber!==t.range.endLineNumber&&t.range.startColumn!==t.range.endColumn){if(t.range.startColumn!==1)return!1;let n=t.range.endLineNumber,r=t.range.endColumn,i=e.getModel()?.getLineLength(n)??0;if(r!==i+1)return!1}return!0}async fetchInlineEdit(t,n){this._currentRequestCts&&this._currentRequestCts.dispose(!0);let r=t.getModel();if(!r)return;let i=r.getVersionId(),a=this.languageFeaturesService.inlineEditProvider.all(r);if(a.length===0)return;let o=a[0];this._currentRequestCts=new e.CancellationTokenSource$1;let s=this._currentRequestCts.token,c=n?e.InlineEditTriggerKind.Automatic:e.InlineEditTriggerKind.Invoke;if(n&&await mO(50,s),s.isCancellationRequested||r.isDisposed()||r.getVersionId()!==i)return;let l=await o.provideInlineEdit(r,{triggerKind:c},s);if(l&&!(s.isCancellationRequested||r.isDisposed()||r.getVersionId()!==i)&&this.validateInlineEdit(t,l))return l}async getInlineEdit(e,t){this._isCursorAtInlineEditContext.set(!1),await this.clear();let n=await this.fetchInlineEdit(e,t);n&&this._currentEdit.set(n,void 0)}async trigger(){await this.getInlineEdit(this.editor,!1)}async jumpBack(){this._jumpBackPosition&&(this.editor.setPosition(this._jumpBackPosition),this.editor.revealPositionInCenterIfOutsideViewport(this._jumpBackPosition))}async accept(){this._isAccepting.set(!0,void 0);let t=this._currentEdit.get();if(!t)return;let n=t.text;t.text.startsWith(`
`)&&(n=t.text.substring(1)),this.editor.pushUndoStop(),this.editor.executeEdits(`acceptCurrent`,[e.EditOperation.replace(e.Range$1.lift(t.range),n)]),t.accepted&&await this._commandService.executeCommand(t.accepted.id,...t.accepted.arguments||[]).then(void 0,e.onUnexpectedExternalError),this.freeEdit(t),e.transaction(e=>{this._currentEdit.set(void 0,e),this._isAccepting.set(!1,e)})}jumpToCurrent(){this._jumpBackPosition=this.editor.getSelection()?.getStartPosition();let t=this._currentEdit.get();if(!t)return;let n=e.Position$1.lift({lineNumber:t.range.startLineNumber,column:t.range.startColumn});this.editor.setPosition(n),this.editor.revealPositionInCenterIfOutsideViewport(n)}async clear(t=!0){let n=this._currentEdit.get();n&&n?.rejected&&t&&await this._commandService.executeCommand(n.rejected.id,...n.rejected.arguments||[]).then(void 0,e.onUnexpectedExternalError),n&&this.freeEdit(n),this._currentEdit.set(void 0,void 0)}freeEdit(e){let t=this.editor.getModel();if(!t)return;let n=this.languageFeaturesService.inlineEditProvider.all(t);n.length!==0&&n[0].freeInlineEdit(e)}};pO=fO=uO([dO(1,e.IInstantiationService),dO(2,e.IContextKeyService),dO(3,e.ILanguageFeaturesService),dO(4,e.ICommandService),dO(5,e.IConfigurationService),dO(6,e.IDiffProviderFactoryService),dO(7,e.IModelService)],pO);function mO(e,t){return new Promise(n=>{let r,i=setTimeout(()=>{r&&r.dispose(),n()},e);t&&(r=t.onCancellationRequested(()=>{clearTimeout(i),r&&r.dispose(),n()}))})}var hO=class extends e.EditorAction{constructor(){super({id:`editor.action.inlineEdit.accept`,label:`Accept Inline Edit`,alias:`Accept Inline Edit`,precondition:e.ContextKeyExpr.and(e.EditorContextKeys.writable,pO.inlineEditVisibleContext),kbOpts:[{weight:101,primary:2,kbExpr:e.ContextKeyExpr.and(e.EditorContextKeys.writable,pO.inlineEditVisibleContext,pO.cursorAtInlineEditContext)}],menuOpts:[{menuId:e.MenuId.InlineEditToolbar,title:`Accept`,group:`primary`,order:1}]})}async run(e,t){await pO.get(t)?.accept()}},gO=class extends e.EditorAction{constructor(){let t=e.ContextKeyExpr.and(e.EditorContextKeys.writable,e.ContextKeyExpr.not(pO.inlineEditVisibleKey));super({id:`editor.action.inlineEdit.trigger`,label:`Trigger Inline Edit`,alias:`Trigger Inline Edit`,precondition:t,kbOpts:{weight:101,primary:2646,kbExpr:t}})}async run(e,t){pO.get(t)?.trigger()}},_O=class extends e.EditorAction{constructor(){let t=e.ContextKeyExpr.and(e.EditorContextKeys.writable,pO.inlineEditVisibleContext,e.ContextKeyExpr.not(pO.cursorAtInlineEditKey));super({id:`editor.action.inlineEdit.jumpTo`,label:`Jump to Inline Edit`,alias:`Jump to Inline Edit`,precondition:t,kbOpts:{weight:101,primary:2646,kbExpr:t},menuOpts:[{menuId:e.MenuId.InlineEditToolbar,title:`Jump To Edit`,group:`primary`,order:3,when:t}]})}async run(e,t){pO.get(t)?.jumpToCurrent()}},vO=class extends e.EditorAction{constructor(){let t=e.ContextKeyExpr.and(e.EditorContextKeys.writable,pO.cursorAtInlineEditContext);super({id:`editor.action.inlineEdit.jumpBack`,label:`Jump Back from Inline Edit`,alias:`Jump Back from Inline Edit`,precondition:t,kbOpts:{weight:110,primary:2646,kbExpr:t},menuOpts:[{menuId:e.MenuId.InlineEditToolbar,title:`Jump Back`,group:`primary`,order:3,when:t}]})}async run(e,t){pO.get(t)?.jumpBack()}},yO=class extends e.EditorAction{constructor(){let t=e.ContextKeyExpr.and(e.EditorContextKeys.writable,pO.inlineEditVisibleContext);super({id:`editor.action.inlineEdit.reject`,label:`Reject Inline Edit`,alias:`Reject Inline Edit`,precondition:t,kbOpts:{weight:100,primary:9,kbExpr:t},menuOpts:[{menuId:e.MenuId.InlineEditToolbar,title:`Reject`,group:`secondary`,order:2}]})}async run(e,t){await pO.get(t)?.clear()}};e.registerEditorAction(hO),e.registerEditorAction(yO),e.registerEditorAction(_O),e.registerEditorAction(vO),e.registerEditorAction(gO),e.registerEditorContribution(pO.ID,pO,3);const bO=`editor.action.inlineEdits.accept`,xO=`editor.action.inlineEdits.showPrevious`,SO=`editor.action.inlineEdits.showNext`,CO=new e.RawContextKey(`inlineEditsVisible`,!1,e.localize(`inlineEditsVisible`,`Whether an inline edit is visible`)),wO=new e.RawContextKey(`inlineEditsIsPinned`,!1,e.localize(`isPinned`,`Whether an inline edit is visible`));var TO=class extends e.Disposable{static{this.ID=`editor.contrib.placeholderText`}constructor(t){super(),this._editor=t,this._editorObs=e.observableCodeEditor(this._editor),this._placeholderText=this._editorObs.getOption(88),this._state=e.derivedOpts({owner:this,equalsFn:e.structuralEquals},e=>{let t=this._placeholderText.read(e);if(t&&this._editorObs.valueIsEmpty.read(e))return{placeholder:t}}),this._shouldViewBeAlive=EO(this,e=>this._state.read(e)?.placeholder!==void 0),this._view=e.derivedWithStore((t,n)=>{if(!this._shouldViewBeAlive.read(t))return;let r=e.h(`div.editorPlaceholder`);n.add(e.autorun(e=>{let t=this._state.read(e),n=t?.placeholder!==void 0;r.root.style.display=n?`block`:`none`,r.root.innerText=t?.placeholder??``})),n.add(e.autorun(e=>{let t=this._editorObs.layoutInfo.read(e);r.root.style.left=`${t.contentLeft}px`,r.root.style.width=t.contentWidth-t.verticalScrollbarWidth+`px`,r.root.style.top=`${this._editor.getTopForLineNumber(0)}px`})),n.add(e.autorun(e=>{r.root.style.fontFamily=this._editorObs.getOption(49).read(e),r.root.style.fontSize=this._editorObs.getOption(52).read(e)+`px`,r.root.style.lineHeight=this._editorObs.getOption(67).read(e)+`px`})),n.add(this._editorObs.createOverlayWidget({allowEditorOverflow:!1,minContentWidthInPx:e.constObservable(0),position:e.constObservable(null),domNode:r.root}))}),this._view.recomputeInitiallyAndOnChange(this._store)}};function EO(t,n){return e.derivedObservableWithCache(t,(e,t)=>t===!0?!0:n(e))}var DO=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},OO=function(e,t){return function(n,r){t(n,r,e)}},kO=class{constructor(e,t,n){this.range=e,this.newLines=t,this.changes=n}},AO=class extends e.Disposable{constructor(t,n,r,i){super(),this._editor=t,this._edit=n,this._userPrompt=r,this._instantiationService=i,this._editorObs=e.observableCodeEditor(this._editor),this._elements=e.h(`div.inline-edits-widget`,{style:{position:`absolute`,overflow:`visible`,top:`0px`,left:`0px`}},[e.h(`div@editorContainer`,{style:{position:`absolute`,top:`0px`,left:`0px`,width:`500px`,height:`500px`}},[e.h(`div.toolbar@toolbar`,{style:{position:`absolute`,top:`-25px`,left:`0px`}}),e.h(`div.promptEditor@promptEditor`,{style:{position:`absolute`,top:`-25px`,left:`80px`,width:`300px`,height:`22px`}}),e.h(`div.preview@editor`,{style:{position:`absolute`,top:`0px`,left:`0px`}})]),e.svgElem(`svg`,{style:{overflow:`visible`,pointerEvents:`none`}},[e.svgElem(`defs`,[e.svgElem(`linearGradient`,{id:`Gradient2`,x1:`0`,y1:`0`,x2:`1`,y2:`0`},[e.svgElem(`stop`,{offset:`0%`,class:`gradient-stop`}),e.svgElem(`stop`,{offset:`100%`,class:`gradient-stop`})])]),e.svgElem(`path@path`,{d:``,fill:`url(#Gradient2)`})])]),this._previewTextModel=this._register(this._instantiationService.createInstance(e.TextModel,``,e.PLAINTEXT_LANGUAGE_ID,e.TextModel.DEFAULT_CREATION_OPTIONS,null)),this._setText=e.derived(e=>{let t=this._edit.read(e);t&&this._previewTextModel.setValue(t.newLines.join(`
`))}).recomputeInitiallyAndOnChange(this._store),this._promptTextModel=this._register(this._instantiationService.createInstance(e.TextModel,``,e.PLAINTEXT_LANGUAGE_ID,e.TextModel.DEFAULT_CREATION_OPTIONS,null)),this._promptEditor=this._register(this._instantiationService.createInstance(zm,this._elements.promptEditor,{glyphMargin:!1,lineNumbers:`off`,minimap:{enabled:!1},guides:{indentation:!1,bracketPairs:!1,bracketPairsHorizontal:!1,highlightActiveIndentation:!1},folding:!1,selectOnLineNumbers:!1,selectionHighlight:!1,columnSelection:!1,overviewRulerBorder:!1,overviewRulerLanes:0,lineDecorationsWidth:0,lineNumbersMinChars:0,placeholder:`Describe the change you want...`,fontFamily:e.DEFAULT_FONT_FAMILY},{contributions:e.EditorExtensionsRegistry.getSomeEditorContributions([PC.ID,TO.ID,a_.ID]),isSimpleWidget:!0},this._editor)),this._previewEditor=this._register(this._instantiationService.createInstance(zm,this._elements.editor,{glyphMargin:!1,lineNumbers:`off`,minimap:{enabled:!1},guides:{indentation:!1,bracketPairs:!1,bracketPairsHorizontal:!1,highlightActiveIndentation:!1},folding:!1,selectOnLineNumbers:!1,selectionHighlight:!1,columnSelection:!1,overviewRulerBorder:!1,overviewRulerLanes:0,lineDecorationsWidth:0,lineNumbersMinChars:0},{contributions:[]},this._editor)),this._previewEditorObs=e.observableCodeEditor(this._previewEditor),this._decorations=e.derived(this,t=>{this._setText.read(t);let n=this._edit.read(t)?.changes;if(!n)return[];let r=[],i=[];if(n.length===1&&n[0].innerChanges[0].modifiedRange.equalsRange(this._previewTextModel.getFullModelRange()))return[];for(let t of n)if(t.original.isEmpty||r.push({range:t.original.toInclusiveRange(),options:e.diffLineDeleteDecorationBackgroundWithIndicator}),t.modified.isEmpty||i.push({range:t.modified.toInclusiveRange(),options:e.diffLineAddDecorationBackgroundWithIndicator}),t.modified.isEmpty||t.original.isEmpty)t.original.isEmpty||r.push({range:t.original.toInclusiveRange(),options:e.diffWholeLineDeleteDecoration}),t.modified.isEmpty||i.push({range:t.modified.toInclusiveRange(),options:e.diffWholeLineAddDecoration});else for(let n of t.innerChanges||[])t.original.contains(n.originalRange.startLineNumber)&&r.push({range:n.originalRange,options:n.originalRange.isEmpty()?e.diffDeleteDecorationEmpty:e.diffDeleteDecoration}),t.modified.contains(n.modifiedRange.startLineNumber)&&i.push({range:n.modifiedRange,options:n.modifiedRange.isEmpty()?e.diffAddDecorationEmpty:e.diffAddDecoration});return i}),this._layout1=e.derived(this,e=>{let t=this._editor.getModel(),n=this._edit.read(e);if(!n)return null;let r=n.range,i=0;for(let e=r.startLineNumber;e<r.endLineNumberExclusive;e++){let n=t.getLineMaxColumn(e),r=this._editor.getOffsetForColumn(e,n);i=Math.max(i,r)}return{left:this._editor.getLayoutInfo().contentLeft+i}}),this._layout=e.derived(this,e=>{let t=this._edit.read(e);if(!t)return null;let n=t.range,r=this._editorObs.scrollLeft.read(e),i=this._layout1.read(e).left+20-r,a=this._editor.getTopForLineNumber(n.startLineNumber)-this._editorObs.scrollTop.read(e),o=this._editor.getTopForLineNumber(n.endLineNumberExclusive)-this._editorObs.scrollTop.read(e),s=new MO(i,a),c=new MO(i,o),l=o-a,u=this._editor.getOption(67)*t.newLines.length,d=l-u,f=new MO(i+50,a+d/2),p=new MO(i+50,o-d/2);return{topCode:s,bottomCode:c,codeHeight:l,topEdit:f,bottomEdit:p,editHeight:u}});let a=e.derived(this,e=>this._edit.read(e)!==void 0||this._userPrompt.read(e)!==void 0);this._register(e.applyStyle(this._elements.root,{display:e.derived(this,e=>a.read(e)?`block`:`none`)})),this._register(e.appendRemoveOnDispose(this._editor.getDomNode(),this._elements.root)),this._register(e.observableCodeEditor(t).createOverlayWidget({domNode:this._elements.root,position:e.constObservable(null),allowEditorOverflow:!1,minContentWidthInPx:e.derived(e=>{let t=this._layout1.read(e)?.left;if(t===void 0)return 0;let n=this._previewEditorObs.contentWidth.read(e);return t+n})})),this._previewEditor.setModel(this._previewTextModel),this._register(this._previewEditorObs.setDecorations(this._decorations)),this._register(e.autorun(e=>{let t=this._layout.read(e);if(!t)return;let{topCode:n,bottomCode:r,topEdit:i,bottomEdit:a,editHeight:o}=t,s=new NO().moveTo(n).lineTo(n.deltaX(10)).curveTo(n.deltaX(50),i.deltaX(-40),i.deltaX(-0)).lineTo(i).lineTo(a).lineTo(a.deltaX(-0)).curveTo(a.deltaX(-40),r.deltaX(50),r.deltaX(10)).lineTo(r).build();this._elements.path.setAttribute(`d`,s),this._elements.editorContainer.style.top=`${i.y}px`,this._elements.editorContainer.style.left=`${i.x}px`,this._elements.editorContainer.style.height=`${o}px`;let c=this._previewEditorObs.contentWidth.read(e);this._previewEditor.layout({height:o,width:c})})),this._promptEditor.setModel(this._promptTextModel),this._promptEditor.layout(),this._register(PO(jO(this._userPrompt,e=>e??``,e=>e),e.observableCodeEditor(this._promptEditor).value)),this._register(e.autorun(t=>{let n=e.observableCodeEditor(this._promptEditor).isFocused.read(t);this._elements.root.classList.toggle(`focused`,n)}))}};AO=DO([OO(3,e.IInstantiationService)],AO);function jO(t,n,r){return e.derivedWithSetter(void 0,e=>n(t.read(e)),(e,n)=>t.set(r(e),n))}var MO=class e{constructor(e,t){this.x=e,this.y=t}deltaX(t){return new e(this.x+t,this.y)}},NO=class{constructor(){this._data=``}moveTo(e){return this._data+=`M ${e.x} ${e.y} `,this}lineTo(e){return this._data+=`L ${e.x} ${e.y} `,this}curveTo(e,t,n){return this._data+=`C ${e.x} ${e.y} ${t.x} ${t.y} ${n.x} ${n.y} `,this}build(){return this._data}};function PO(t,n){let r=new e.DisposableStore;return r.add(e.autorun(e=>{let r=t.read(e);n.set(r,void 0)})),r.add(e.autorun(e=>{let r=n.read(e);t.set(r,void 0)})),r}var FO=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},IO=function(e,t){return function(n,r){t(n,r,e)}},LO,RO=class extends e.Disposable{static{LO=this}static{this._modelId=0}static _createUniqueUri(){return e.URI.from({scheme:`inline-edits`,path:new Date().toString()+String(LO._modelId++)})}constructor(t,n,r,i,a,o,s){super(),this.textModel=t,this._textModelVersionId=n,this._selection=r,this._debounceValue=i,this.languageFeaturesService=a,this._diffProviderFactoryService=o,this._modelService=s,this._forceUpdateExplicitlySignal=e.observableSignal(this),this._selectedInlineCompletionId=e.observableValue(this,void 0),this._isActive=e.observableValue(this,!1),this._originalModel=e.derivedDisposable(()=>this._modelService.createModel(``,null,LO._createUniqueUri())).keepObserved(this._store),this._modifiedModel=e.derivedDisposable(()=>this._modelService.createModel(``,null,LO._createUniqueUri())).keepObserved(this._store),this._pinnedRange=new BO(this.textModel,this._textModelVersionId),this.isPinned=this._pinnedRange.range.map(e=>!!e),this.userPrompt=e.observableValue(this,void 0),this.inlineEdit=e.derived(this,e=>this._inlineEdit.read(e)?.promiseResult.read(e)?.data),this._inlineEdit=e.derived(this,t=>{let n=this.selectedInlineEdit.read(t);if(!n)return;let r=n.inlineCompletion.range;if(n.inlineCompletion.insertText.trim()===``)return;let i=n.inlineCompletion.insertText.split(/\r\n|\r|\n/);function a(e){let t=e[0].match(/^\s*/)?.[0]??``;return e.map(e=>e.replace(RegExp(`^`+t),``))}i=a(i);let o=this.textModel.getValueInRange(r).split(/\r\n|\r|\n/);o=a(o),this._originalModel.get().setValue(o.join(`
`)),this._modifiedModel.get().setValue(i.join(`
`));let s=this._diffProviderFactoryService.createDiffProvider({diffAlgorithm:`advanced`});return e.ObservablePromise.fromFn(async()=>{let t=await s.computeDiff(this._originalModel.get(),this._modifiedModel.get(),{computeMoves:!1,ignoreTrimWhitespace:!1,maxComputationTimeMs:1e3},e.CancellationToken.None);if(!t.identical)return new kO(e.LineRange.fromRangeInclusive(r),a(i),t.changes)})}),this._fetchStore=this._register(new e.DisposableStore),this._inlineEditsFetchResult=e.disposableObservableValue(this,void 0),this._inlineEdits=e.derivedOpts({owner:this,equalsFn:e.structuralEquals},e=>this._inlineEditsFetchResult.read(e)?.completions.map(e=>new zO(e))??[]),this._fetchInlineEditsPromise=e.derivedHandleChanges({owner:this,createEmptyChangeSummary:()=>({inlineCompletionTriggerKind:e.InlineCompletionTriggerKind.Automatic}),handleChange:(t,n)=>(t.didChange(this._forceUpdateExplicitlySignal)&&(n.inlineCompletionTriggerKind=e.InlineCompletionTriggerKind.Explicit),!0)},async(t,n)=>{this._fetchStore.clear(),this._forceUpdateExplicitlySignal.read(t),this._textModelVersionId.read(t);function r(e,t){return t(e)}let i=this._pinnedRange.range.read(t)??r(this._selection.read(t),e=>e.isEmpty()?void 0:e);if(!i){this._inlineEditsFetchResult.set(void 0,void 0),this.userPrompt.set(void 0,void 0);return}let a={triggerKind:n.inlineCompletionTriggerKind,selectedSuggestionInfo:void 0,userPrompt:this.userPrompt.read(t)},o=e.cancelOnDispose(this._fetchStore);await e.timeout(200,o);let s=await fx(this.languageFeaturesService.inlineCompletionsProvider,i,this.textModel,a,o);o.isCancellationRequested||this._inlineEditsFetchResult.set(s,void 0)}),this._filteredInlineEditItems=e.derivedOpts({owner:this,equalsFn:e.itemsEquals()},e=>this._inlineEdits.read(e)),this.selectedInlineCompletionIndex=e.derived(this,e=>{let t=this._selectedInlineCompletionId.read(e),n=this._filteredInlineEditItems.read(e),r=this._selectedInlineCompletionId===void 0?-1:n.findIndex(e=>e.semanticId===t);return r===-1?(this._selectedInlineCompletionId.set(void 0,void 0),0):r}),this.selectedInlineEdit=e.derived(this,e=>{let t=this._filteredInlineEditItems.read(e),n=this.selectedInlineCompletionIndex.read(e);return t[n]}),this._register(e.recomputeInitiallyAndOnChange(this._fetchInlineEditsPromise))}async triggerExplicitly(t){e.subtransaction(t,e=>{this._isActive.set(!0,e),this._forceUpdateExplicitlySignal.trigger(e)}),await this._fetchInlineEditsPromise.get()}stop(t){e.subtransaction(t,e=>{this.userPrompt.set(void 0,e),this._isActive.set(!1,e),this._inlineEditsFetchResult.set(void 0,e),this._pinnedRange.setRange(void 0,e)})}async _deltaSelectedInlineCompletionIndex(e){await this.triggerExplicitly();let t=this._filteredInlineEditItems.get()||[];if(t.length>0){let n=(this.selectedInlineCompletionIndex.get()+e+t.length)%t.length;this._selectedInlineCompletionId.set(t[n].semanticId,void 0)}else this._selectedInlineCompletionId.set(void 0,void 0)}async next(){await this._deltaSelectedInlineCompletionIndex(1)}async previous(){await this._deltaSelectedInlineCompletionIndex(-1)}async accept(t){if(t.getModel()!==this.textModel)throw new e.BugIndicatingError;let n=this.selectedInlineEdit.get();n&&(t.pushUndoStop(),t.executeEdits(`inlineSuggestion.accept`,[n.inlineCompletion.toSingleTextEdit().toSingleEditOperation()]),this.stop())}};RO=LO=FO([IO(4,e.ILanguageFeaturesService),IO(5,e.IDiffProviderFactoryService),IO(6,e.IModelService)],RO);var zO=class{constructor(e){this.inlineCompletion=e,this.semanticId=this.inlineCompletion.hash()}},BO=class extends e.Disposable{constructor(t,n){super(),this._textModel=t,this._versionId=n,this._decorations=e.observableValue(this,[]),this.range=e.derived(this,e=>{this._versionId.read(e);let t=this._decorations.read(e)[0];return t?this._textModel.getDecorationRange(t)??null:null}),this._register(e.toDisposable(()=>{this._textModel.deltaDecorations(this._decorations.get(),[])}))}setRange(e,t){this._decorations.set(this._textModel.deltaDecorations(this._decorations.get(),e?[{range:e,options:{description:`trackedRange`}}]:[]),t)}},VO=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},HO=function(e,t){return function(n,r){t(n,r,e)}},UO,WO=class extends e.Disposable{static{UO=this}static{this.ID=`editor.contrib.inlineEditsController`}static get(e){return e.getContribution(UO.ID)}constructor(t,n,r,i,a,o){super(),this.editor=t,this._instantiationService=n,this._contextKeyService=r,this._debounceService=i,this._languageFeaturesService=a,this._configurationService=o,this._enabled=e.observableConfigValue(`editor.inlineEdits.enabled`,!1,this._configurationService),this._editorObs=e.observableCodeEditor(this.editor),this._selection=e.derived(this,t=>this._editorObs.cursorSelection.read(t)??new e.Selection$1(1,1,1,1)),this._debounceValue=this._debounceService.for(this._languageFeaturesService.inlineCompletionsProvider,`InlineEditsDebounce`,{min:50,max:50}),this.model=e.derivedDisposable(this,t=>{if(!this._enabled.read(t)||this._editorObs.isReadonly.read(t))return;let n=this._editorObs.model.read(t);if(n)return this._instantiationService.createInstance(e.readHotReloadableExport(RO,t),n,this._editorObs.versionId,this._selection,this._debounceValue)}),this._hadInlineEdit=e.derivedObservableWithCache(this,(e,t)=>t||this.model.read(e)?.inlineEdit.read(e)!==void 0),this._widget=e.derivedDisposable(this,t=>{if(this._hadInlineEdit.read(t))return this._instantiationService.createInstance(e.readHotReloadableExport(AO,t),this.editor,this.model.map((e,t)=>e?.inlineEdit.read(t)),GO(t=>this.model.read(t)?.userPrompt??e.observableValue(`empty`,``)))}),this._register(e.bindContextKey(CO,this._contextKeyService,e=>!!this.model.read(e)?.inlineEdit.read(e))),this._register(e.bindContextKey(wO,this._contextKeyService,e=>!!this.model.read(e)?.isPinned.read(e))),this.model.recomputeInitiallyAndOnChange(this._store),this._widget.recomputeInitiallyAndOnChange(this._store)}};WO=UO=VO([HO(1,e.IInstantiationService),HO(2,e.IContextKeyService),HO(3,e.ILanguageFeatureDebounceService),HO(4,e.ILanguageFeaturesService),HO(5,e.IConfigurationService)],WO);function GO(t){return e.derivedWithSetter(void 0,e=>t(e).read(e),(e,n)=>{t(void 0).set(e,n)})}function KO(e){return{label:e.value,alias:e.original}}var qO=class t extends e.EditorAction{static{this.ID=`editor.action.inlineEdits.showNext`}constructor(){super({id:t.ID,...KO(e.localize2(`action.inlineEdits.showNext`,`Show Next Inline Edit`)),precondition:e.ContextKeyExpr.and(e.EditorContextKeys.writable,CO),kbOpts:{weight:100,primary:606}})}async run(e,t){WO.get(t)?.model.get()?.next()}},JO=class t extends e.EditorAction{static{this.ID=`editor.action.inlineEdits.showPrevious`}constructor(){super({id:t.ID,...KO(e.localize2(`action.inlineEdits.showPrevious`,`Show Previous Inline Edit`)),precondition:e.ContextKeyExpr.and(e.EditorContextKeys.writable,CO),kbOpts:{weight:100,primary:604}})}async run(e,t){WO.get(t)?.model.get()?.previous()}},YO=class extends e.EditorAction{constructor(){super({id:`editor.action.inlineEdits.trigger`,...KO(e.localize2(`action.inlineEdits.trigger`,`Trigger Inline Edit`)),precondition:e.EditorContextKeys.writable})}async run(t,n){let r=WO.get(n);await e.asyncTransaction(async e=>{await r?.model.get()?.triggerExplicitly(e)})}},XO=class extends e.EditorAction{constructor(){super({id:`editor.action.inlineEdits.accept`,...KO(e.localize2(`action.inlineEdits.accept`,`Accept Inline Edit`)),precondition:CO,menuOpts:{menuId:e.MenuId.InlineEditsActions,title:e.localize(`inlineEditsActions`,`Accept Inline Edit`),group:`primary`,order:1,icon:e.Codicon.check},kbOpts:{primary:2058,weight:2e4,kbExpr:CO}})}async run(e,t){t instanceof zm&&(t=t.getParentEditor());let n=WO.get(t);n&&(n.model.get()?.accept(n.editor),n.editor.focus())}},ZO=class t extends e.EditorAction{static{this.ID=`editor.action.inlineEdits.hide`}constructor(){super({id:t.ID,...KO(e.localize2(`action.inlineEdits.hide`,`Hide Inline Edit`)),precondition:CO,kbOpts:{weight:100,primary:9}})}async run(t,n){let r=WO.get(n);e.transaction(e=>{r?.model.get()?.stop(e)})}};e.registerEditorContribution(WO.ID,WO,3),e.registerEditorAction(YO),e.registerEditorAction(qO),e.registerEditorAction(JO),e.registerEditorAction(XO),e.registerEditorAction(ZO);const QO={Visible:new e.RawContextKey(`parameterHintsVisible`,!1),MultipleSignatures:new e.RawContextKey(`parameterHintsMultipleSignatures`,!1)};async function $O(t,n,r,i,a){let o=t.ordered(n);for(let t of o)try{let e=await t.provideSignatureHelp(n,r,a,i);if(e)return e}catch(t){e.onUnexpectedExternalError(t)}}e.CommandsRegistry.registerCommand(`_executeSignatureHelpProvider`,async(t,...n)=>{let[r,i,a]=n;e.assertType(e.URI.isUri(r)),e.assertType(e.Position$1.isIPosition(i)),e.assertType(typeof a==`string`||!a);let o=t.get(e.ILanguageFeaturesService),s=await t.get(e.ITextModelService).createModelReference(r);try{let t=await $O(o.signatureHelpProvider,s.object.textEditorModel,e.Position$1.lift(i),{triggerKind:e.SignatureHelpTriggerKind.Invoke,isRetrigger:!1,triggerCharacter:a},e.CancellationToken.None);return t?(setTimeout(()=>t.dispose(),0),t.value):void 0}finally{s.dispose()}});var ek;(function(e){e.Default={type:0};class t{constructor(e,t){this.request=e,this.previouslyActiveHints=t,this.type=2}}e.Pending=t;class n{constructor(e){this.hints=e,this.type=1}}e.Active=n})(ek||={});var tk=class t extends e.Disposable{static{this.DEFAULT_DELAY=120}constructor(n,r,i=t.DEFAULT_DELAY){super(),this._onChangedHints=this._register(new e.Emitter$1),this.onChangedHints=this._onChangedHints.event,this.triggerOnType=!1,this._state=ek.Default,this._pendingTriggers=[],this._lastSignatureHelpResult=this._register(new e.MutableDisposable),this.triggerChars=new e.CharacterSet,this.retriggerChars=new e.CharacterSet,this.triggerId=0,this.editor=n,this.providers=r,this.throttledDelayer=new e.Delayer(i),this._register(this.editor.onDidBlurEditorWidget(()=>this.cancel())),this._register(this.editor.onDidChangeConfiguration(()=>this.onEditorConfigurationChange())),this._register(this.editor.onDidChangeModel(e=>this.onModelChanged())),this._register(this.editor.onDidChangeModelLanguage(e=>this.onModelChanged())),this._register(this.editor.onDidChangeCursorSelection(e=>this.onCursorChange(e))),this._register(this.editor.onDidChangeModelContent(e=>this.onModelContentChange())),this._register(this.providers.onDidChange(this.onModelChanged,this)),this._register(this.editor.onDidType(e=>this.onDidType(e))),this.onEditorConfigurationChange(),this.onModelChanged()}get state(){return this._state}set state(e){this._state.type===2&&this._state.request.cancel(),this._state=e}cancel(e=!1){this.state=ek.Default,this.throttledDelayer.cancel(),e||this._onChangedHints.fire(void 0)}trigger(t,n){let r=this.editor.getModel();if(!r||!this.providers.has(r))return;let i=++this.triggerId;this._pendingTriggers.push(t),this.throttledDelayer.trigger(()=>this.doTrigger(i),n).catch(e.onUnexpectedError)}next(){if(this.state.type!==1)return;let e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,n=t%e===e-1,r=this.editor.getOption(86).cycle;if((e<2||n)&&!r){this.cancel();return}this.updateActiveSignature(n&&r?0:t+1)}previous(){if(this.state.type!==1)return;let e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,n=t===0,r=this.editor.getOption(86).cycle;if((e<2||n)&&!r){this.cancel();return}this.updateActiveSignature(n&&r?e-1:t-1)}updateActiveSignature(e){this.state.type===1&&(this.state=new ek.Active({...this.state.hints,activeSignature:e}),this._onChangedHints.fire(this.state.hints))}async doTrigger(t){let n=this.state.type===1||this.state.type===2,r=this.getLastActiveHints();if(this.cancel(!0),this._pendingTriggers.length===0)return!1;let i=this._pendingTriggers.reduce(nk);this._pendingTriggers=[];let a={triggerKind:i.triggerKind,triggerCharacter:i.triggerCharacter,isRetrigger:n,activeSignatureHelp:r};if(!this.editor.hasModel())return!1;let o=this.editor.getModel(),s=this.editor.getPosition();this.state=new ek.Pending(e.createCancelablePromise(e=>$O(this.providers,o,s,a,e)),r);try{let e=await this.state.request;return t===this.triggerId?!e||!e.value.signatures||e.value.signatures.length===0?(e?.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),!1):(this.state=new ek.Active(e.value),this._lastSignatureHelpResult.value=e,this._onChangedHints.fire(this.state.hints),!0):(e?.dispose(),!1)}catch(n){return t===this.triggerId&&(this.state=ek.Default),e.onUnexpectedError(n),!1}}getLastActiveHints(){switch(this.state.type){case 1:return this.state.hints;case 2:return this.state.previouslyActiveHints;default:return}}get isTriggered(){return this.state.type===1||this.state.type===2||this.throttledDelayer.isTriggered()}onModelChanged(){this.cancel(),this.triggerChars.clear(),this.retriggerChars.clear();let e=this.editor.getModel();if(e)for(let t of this.providers.ordered(e)){for(let e of t.signatureHelpTriggerCharacters||[])if(e.length){let t=e.charCodeAt(0);this.triggerChars.add(t),this.retriggerChars.add(t)}for(let e of t.signatureHelpRetriggerCharacters||[])e.length&&this.retriggerChars.add(e.charCodeAt(0))}}onDidType(t){if(!this.triggerOnType)return;let n=t.length-1,r=t.charCodeAt(n);(this.triggerChars.has(r)||this.isTriggered&&this.retriggerChars.has(r))&&this.trigger({triggerKind:e.SignatureHelpTriggerKind.TriggerCharacter,triggerCharacter:t.charAt(n)})}onCursorChange(t){t.source===`mouse`?this.cancel():this.isTriggered&&this.trigger({triggerKind:e.SignatureHelpTriggerKind.ContentChange})}onModelContentChange(){this.isTriggered&&this.trigger({triggerKind:e.SignatureHelpTriggerKind.ContentChange})}onEditorConfigurationChange(){this.triggerOnType=this.editor.getOption(86).enabled,this.triggerOnType||this.cancel()}dispose(){this.cancel(!0),super.dispose()}};function nk(t,n){switch(n.triggerKind){case e.SignatureHelpTriggerKind.Invoke:return n;case e.SignatureHelpTriggerKind.ContentChange:return t;case e.SignatureHelpTriggerKind.TriggerCharacter:default:return n}}var rk=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},ik=function(e,t){return function(n,r){t(n,r,e)}},ak,ok=e.$,sk=e.registerIcon(`parameter-hints-next`,e.Codicon.chevronDown,e.localize(`parameterHintsNextIcon`,`Icon for show next parameter hint.`)),ck=e.registerIcon(`parameter-hints-previous`,e.Codicon.chevronUp,e.localize(`parameterHintsPreviousIcon`,`Icon for show previous parameter hint.`)),lk=class extends e.Disposable{static{ak=this}static{this.ID=`editor.widget.parameterHintsWidget`}constructor(t,n,r,i,a,o){super(),this.editor=t,this.model=n,this.telemetryService=o,this.renderDisposeables=this._register(new e.DisposableStore),this.visible=!1,this.announcedLabel=null,this.allowEditorOverflow=!0,this.markdownRenderer=this._register(new e.MarkdownRenderer({editor:t},a,i)),this.keyVisible=QO.Visible.bindTo(r),this.keyMultipleSignatures=QO.MultipleSignatures.bindTo(r)}createParameterHintDOMNodes(){let t=ok(`.editor-widget.parameter-hints-widget`),n=e.append(t,ok(`.phwrapper`));n.tabIndex=-1;let r=e.append(n,ok(`.controls`)),i=e.append(r,ok(`.button`+e.ThemeIcon.asCSSSelector(ck))),a=e.append(r,ok(`.overloads`)),o=e.append(r,ok(`.button`+e.ThemeIcon.asCSSSelector(sk)));this._register(e.addDisposableListener(i,`click`,t=>{e.EventHelper.stop(t),this.previous()})),this._register(e.addDisposableListener(o,`click`,t=>{e.EventHelper.stop(t),this.next()}));let s=ok(`.body`),c=new e.DomScrollableElement(s,{alwaysConsumeMouseWheel:!0});this._register(c),n.appendChild(c.getDomNode());let l=e.append(s,ok(`.signature`)),u=e.append(s,ok(`.docs`));t.style.userSelect=`text`,this.domNodes={element:t,signature:l,overloads:a,docs:u,scrollbar:c},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection(e=>{this.visible&&this.editor.layoutContentWidget(this)}));let d=()=>{if(!this.domNodes)return;let t=this.editor.getOption(50),n=this.domNodes.element;n.style.fontSize=`${t.fontSize}px`,n.style.lineHeight=`${t.lineHeight/t.fontSize}`,n.style.setProperty(`--vscode-parameterHintsWidget-editorFontFamily`,t.fontFamily),n.style.setProperty(`--vscode-parameterHintsWidget-editorFontFamilyDefault`,e.EDITOR_FONT_DEFAULTS.fontFamily)};d(),this._register(e.Event.chain(this.editor.onDidChangeConfiguration.bind(this.editor),e=>e.filter(e=>e.hasChanged(50)))(d)),this._register(this.editor.onDidLayoutChange(e=>this.updateMaxHeight())),this.updateMaxHeight()}show(){this.visible||(this.domNodes||this.createParameterHintDOMNodes(),this.keyVisible.set(!0),this.visible=!0,setTimeout(()=>{this.domNodes?.element.classList.add(`visible`)},100),this.editor.layoutContentWidget(this))}hide(){this.renderDisposeables.clear(),this.visible&&(this.keyVisible.reset(),this.visible=!1,this.announcedLabel=null,this.domNodes?.element.classList.remove(`visible`),this.editor.layoutContentWidget(this))}getPosition(){return this.visible?{position:this.editor.getPosition(),preference:[1,2]}:null}render(t){if(this.renderDisposeables.clear(),!this.domNodes)return;let n=t.signatures.length>1;this.domNodes.element.classList.toggle(`multiple`,n),this.keyMultipleSignatures.set(n),this.domNodes.signature.innerText=``,this.domNodes.docs.innerText=``;let r=t.signatures[t.activeSignature];if(!r)return;let i=e.append(this.domNodes.signature,ok(`.code`)),a=r.parameters.length>0,o=r.activeParameter??t.activeParameter;if(a)this.renderParameters(i,r,o);else{let t=e.append(i,ok(`span`));t.textContent=r.label}let s=r.parameters[o];if(s?.documentation){let t=ok(`span.documentation`);if(typeof s.documentation==`string`)t.textContent=s.documentation;else{let e=this.renderMarkdownDocs(s.documentation);t.appendChild(e.element)}e.append(this.domNodes.docs,ok(`p`,{},t))}if(r.documentation!==void 0)if(typeof r.documentation==`string`)e.append(this.domNodes.docs,ok(`p`,{},r.documentation));else{let t=this.renderMarkdownDocs(r.documentation);e.append(this.domNodes.docs,t.element)}let c=this.hasDocs(r,s);if(this.domNodes.signature.classList.toggle(`has-docs`,c),this.domNodes.docs.classList.toggle(`empty`,!c),this.domNodes.overloads.textContent=String(t.activeSignature+1).padStart(t.signatures.length.toString().length,`0`)+`/`+t.signatures.length,s){let t=``,n=r.parameters[o];t=Array.isArray(n.label)?r.label.substring(n.label[0],n.label[1]):n.label,n.documentation&&(t+=typeof n.documentation==`string`?`, ${n.documentation}`:`, ${n.documentation.value}`),r.documentation&&(t+=typeof r.documentation==`string`?`, ${r.documentation}`:`, ${r.documentation.value}`),this.announcedLabel!==t&&(e.alert(e.localize(`hint`,`{0}, hint`,t)),this.announcedLabel=t)}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}renderMarkdownDocs(t){let n=new e.StopWatch,r=this.renderDisposeables.add(this.markdownRenderer.render(t,{asyncRenderCallback:()=>{this.domNodes?.scrollbar.scanDomNode()}}));r.element.classList.add(`markdown-docs`);let i=n.elapsed();return i>300&&this.telemetryService.publicLog2(`parameterHints.parseMarkdown`,{renderDuration:i}),r}hasDocs(t,n){return!!(n&&typeof n.documentation==`string`&&e.assertIsDefined(n.documentation).length>0||n&&typeof n.documentation==`object`&&e.assertIsDefined(n.documentation).value.length>0||t.documentation&&typeof t.documentation==`string`&&e.assertIsDefined(t.documentation).length>0||t.documentation&&typeof t.documentation==`object`&&e.assertIsDefined(t.documentation.value).length>0)}renderParameters(t,n,r){let[i,a]=this.getParameterLabelOffsets(n,r),o=document.createElement(`span`);o.textContent=n.label.substring(0,i);let s=document.createElement(`span`);s.textContent=n.label.substring(i,a),s.className=`parameter active`;let c=document.createElement(`span`);c.textContent=n.label.substring(a),e.append(t,o,s,c)}getParameterLabelOffsets(t,n){let r=t.parameters[n];if(r){if(Array.isArray(r.label))return r.label;if(r.label.length){let n=RegExp(`(\\W|^)${e.escapeRegExpCharacters(r.label)}(?=\\W|$)`,`g`);n.test(t.label);let i=n.lastIndex-r.label.length;return i>=0?[i,n.lastIndex]:[0,0]}else return[0,0]}else return[0,0]}next(){this.editor.focus(),this.model.next()}previous(){this.editor.focus(),this.model.previous()}getDomNode(){return this.domNodes||this.createParameterHintDOMNodes(),this.domNodes.element}getId(){return ak.ID}updateMaxHeight(){if(!this.domNodes)return;let e=`${Math.max(this.editor.getLayoutInfo().height/4,250)}px`;this.domNodes.element.style.maxHeight=e;let t=this.domNodes.element.getElementsByClassName(`phwrapper`);t.length&&(t[0].style.maxHeight=e)}};lk=ak=rk([ik(2,e.IContextKeyService),ik(3,e.IOpenerService),ik(4,e.ILanguageService),ik(5,e.ITelemetryService)],lk),e.registerColor(`editorHoverWidget.highlightForeground`,e.listHighlightForeground,e.localize(`editorHoverWidgetHighlightForeground`,`Foreground color of the active item in the parameter hint.`));var uk=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},dk=function(e,t){return function(n,r){t(n,r,e)}},fk,pk=class extends e.Disposable{static{fk=this}static{this.ID=`editor.controller.parameterHints`}static get(e){return e.getContribution(fk.ID)}constructor(t,n,r){super(),this.editor=t,this.model=this._register(new tk(t,r.signatureHelpProvider)),this._register(this.model.onChangedHints(e=>{e?(this.widget.value.show(),this.widget.value.render(e)):this.widget.rawValue?.hide()})),this.widget=new e.Lazy(()=>this._register(n.createInstance(lk,this.editor,this.model)))}cancel(){this.model.cancel()}previous(){this.widget.rawValue?.previous()}next(){this.widget.rawValue?.next()}trigger(e){this.model.trigger(e,0)}};pk=fk=uk([dk(1,e.IInstantiationService),dk(2,e.ILanguageFeaturesService)],pk);var mk=class extends e.EditorAction{constructor(){super({id:`editor.action.triggerParameterHints`,label:e.localize(`parameterHints.trigger.label`,`Trigger Parameter Hints`),alias:`Trigger Parameter Hints`,precondition:e.EditorContextKeys.hasSignatureHelpProvider,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:3082,weight:100}})}run(t,n){pk.get(n)?.trigger({triggerKind:e.SignatureHelpTriggerKind.Invoke})}};e.registerEditorContribution(pk.ID,pk,2),e.registerEditorAction(mk);var hk=175,gk=e.EditorCommand.bindToContribution(pk.get);e.registerEditorCommand(new gk({id:`closeParameterHints`,precondition:QO.Visible,handler:e=>e.cancel(),kbOpts:{weight:hk,kbExpr:e.EditorContextKeys.focus,primary:9,secondary:[1033]}})),e.registerEditorCommand(new gk({id:`showPrevParameterHint`,precondition:e.ContextKeyExpr.and(QO.Visible,QO.MultipleSignatures),handler:e=>e.previous(),kbOpts:{weight:hk,kbExpr:e.EditorContextKeys.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}})),e.registerEditorCommand(new gk({id:`showNextParameterHint`,precondition:e.ContextKeyExpr.and(QO.Visible,QO.MultipleSignatures),handler:e=>e.next(),kbOpts:{weight:hk,kbExpr:e.EditorContextKeys.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}));var _k=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},vk=function(e,t){return function(n,r){t(n,r,e)}},yk=class{constructor(e){this.instantiationService=e}init(...e){}};function bk(t,n){return class extends n{constructor(){super(...arguments),this._autorun=void 0}init(...n){this._autorun=e.autorunWithStore((r,i)=>{let a=e.readHotReloadableExport(t(),r);i.add(this.instantiationService.createInstance(a,...n))})}dispose(){this._autorun?.dispose()}}}function xk(t){return e.isHotReloadEnabled()?bk(t,Sk):t()}var Sk=class extends yk{constructor(e,t){super(t),this.init(e)}};Sk=_k([vk(1,e.IInstantiationService)],Sk),e.registerEditorContribution(TO.ID,xk(()=>TO),0),e.registerColor(`editor.placeholder.foreground`,e.ghostTextForeground,e.localize(`placeholderForeground`,`Foreground color of the placeholder text in the editor.`));var Ck=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},wk=function(e,t){return function(n,r){t(n,r,e)}};const Tk=new e.RawContextKey(`renameInputVisible`,!1,e.localize(`renameInputVisible`,`Whether the rename input widget is visible`)),Ek=new e.RawContextKey(`renameInputFocused`,!1,e.localize(`renameInputFocused`,`Whether the rename input widget is focused`));var Dk=class{constructor(t,n,r,i,a,o){this._editor=t,this._acceptKeybindings=n,this._themeService=r,this._keybindingService=i,this._logService=o,this.allowEditorOverflow=!0,this._disposables=new e.DisposableStore,this._visibleContextKey=Tk.bindTo(a),this._isEditingRenameCandidate=!1,this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,this._candidates=new Set,this._beforeFirstInputFieldEditSW=new e.StopWatch,this._inputWithButton=new kk,this._disposables.add(this._inputWithButton),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration(e=>{e.hasChanged(50)&&this._updateFont()})),this._disposables.add(r.onDidColorThemeChange(this._updateStyles,this))}dispose(){this._disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return`__renameInputWidget`}getDomNode(){return this._domNode||(this._domNode=document.createElement(`div`),this._domNode.className=`monaco-editor rename-box`,this._domNode.appendChild(this._inputWithButton.domNode),this._renameCandidateListView=this._disposables.add(new Ok(this._domNode,{fontInfo:this._editor.getOption(50),onFocusChange:e=>{this._inputWithButton.input.value=e,this._isEditingRenameCandidate=!1},onSelectionChange:()=>{this._isEditingRenameCandidate=!1,this.acceptInput(!1)}})),this._disposables.add(this._inputWithButton.onDidInputChange(()=>{this._renameCandidateListView?.focusedCandidate!==void 0&&(this._isEditingRenameCandidate=!0),this._timeBeforeFirstInputFieldEdit??=this._beforeFirstInputFieldEditSW.elapsed(),this._renameCandidateProvidersCts?.token.isCancellationRequested===!1&&this._renameCandidateProvidersCts.cancel(),this._renameCandidateListView?.clearFocus()})),this._label=document.createElement(`div`),this._label.className=`rename-label`,this._domNode.appendChild(this._label),this._updateFont(),this._updateStyles(this._themeService.getColorTheme())),this._domNode}_updateStyles(t){if(!this._domNode)return;let n=t.getColor(e.widgetShadow),r=t.getColor(e.widgetBorder);this._domNode.style.backgroundColor=String(t.getColor(e.editorWidgetBackground)??``),this._domNode.style.boxShadow=n?` 0 0 8px 2px ${n}`:``,this._domNode.style.border=r?`1px solid ${r}`:``,this._domNode.style.color=String(t.getColor(e.inputForeground)??``);let i=t.getColor(e.inputBorder);this._inputWithButton.domNode.style.backgroundColor=String(t.getColor(e.inputBackground)??``),this._inputWithButton.input.style.backgroundColor=String(t.getColor(e.inputBackground)??``),this._inputWithButton.domNode.style.borderWidth=i?`1px`:`0px`,this._inputWithButton.domNode.style.borderStyle=i?`solid`:`none`,this._inputWithButton.domNode.style.borderColor=i?.toString()??`none`}_updateFont(){if(this._domNode===void 0)return;e.assertType(this._label!==void 0,`RenameWidget#_updateFont: _label must not be undefined given _domNode is defined`),this._editor.applyFontInfo(this._inputWithButton.input);let t=this._editor.getOption(50);this._label.style.fontSize=`${this._computeLabelFontSize(t.fontSize)}px`}_computeLabelFontSize(e){return e*.8}getPosition(){if(!this._visible||!this._editor.hasModel()||!this._editor.getDomNode())return null;let t=e.getClientArea(this.getDomNode().ownerDocument.body),n=e.getDomNodePagePosition(this._editor.getDomNode());this._nPxAvailableAbove=this._getTopForPosition()+n.top,this._nPxAvailableBelow=t.height-this._nPxAvailableAbove;let r=this._editor.getOption(67),{totalHeight:i}=Ak.getLayoutInfo({lineHeight:r}),a=this._nPxAvailableBelow>i*6?[2,1]:[1,2];return{position:this._position,preference:a}}beforeRender(){let[t,n]=this._acceptKeybindings;return this._label.innerText=e.localize({key:`label`,comment:[`placeholders are keybindings, e.g "F2 to Rename, Shift+F2 to Preview"`]},`{0} to Rename, {1} to Preview`,this._keybindingService.lookupKeybinding(t)?.getLabel(),this._keybindingService.lookupKeybinding(n)?.getLabel()),this._domNode.style.minWidth=`200px`,null}afterRender(t){if(t===null){this.cancelInput(!0,`afterRender (because position is null)`);return}if(!this._editor.hasModel()||!this._editor.getDomNode())return;e.assertType(this._renameCandidateListView),e.assertType(this._nPxAvailableAbove!==void 0),e.assertType(this._nPxAvailableBelow!==void 0);let n=e.getTotalHeight(this._inputWithButton.domNode),r=e.getTotalHeight(this._label),i;i=t===2?this._nPxAvailableBelow:this._nPxAvailableAbove,this._renameCandidateListView.layout({height:i-r-n,width:e.getTotalWidth(this._inputWithButton.domNode)})}acceptInput(e){this._trace(`invoking acceptInput`),this._currentAcceptInput?.(e)}cancelInput(e,t){this._currentCancelInput?.(e)}focusNextRenameSuggestion(){this._renameCandidateListView?.focusNext()||(this._inputWithButton.input.value=this._currentName)}focusPreviousRenameSuggestion(){this._renameCandidateListView?.focusPrevious()||(this._inputWithButton.input.value=this._currentName)}getInput(t,n,r,i,a){let{start:o,end:s}=this._getSelection(t,n);this._renameCts=a;let c=new e.DisposableStore;this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,i===void 0?this._inputWithButton.button.style.display=`none`:(this._inputWithButton.button.style.display=`flex`,this._requestRenameCandidatesOnce=i,this._requestRenameCandidates(n,!1),c.add(e.addDisposableListener(this._inputWithButton.button,`click`,()=>this._requestRenameCandidates(n,!0))),c.add(e.addDisposableListener(this._inputWithButton.button,e.EventType$1.KEY_DOWN,t=>{let r=new e.StandardKeyboardEvent(t);(r.equals(3)||r.equals(10))&&(r.stopPropagation(),r.preventDefault(),this._requestRenameCandidates(n,!0))}))),this._isEditingRenameCandidate=!1,this._domNode.classList.toggle(`preview`,r),this._position=new e.Position$1(t.startLineNumber,t.startColumn),this._currentName=n,this._inputWithButton.input.value=n,this._inputWithButton.input.setAttribute(`selectionStart`,o.toString()),this._inputWithButton.input.setAttribute(`selectionEnd`,s.toString()),this._inputWithButton.input.size=Math.max((t.endColumn-t.startColumn)*1.1,20),this._beforeFirstInputFieldEditSW.reset(),c.add(e.toDisposable(()=>{this._renameCts=void 0,a.dispose(!0)})),c.add(e.toDisposable(()=>{this._renameCandidateProvidersCts!==void 0&&(this._renameCandidateProvidersCts.dispose(!0),this._renameCandidateProvidersCts=void 0)})),c.add(e.toDisposable(()=>this._candidates.clear()));let l=new e.DeferredPromise;return l.p.finally(()=>{c.dispose(),this._hide()}),this._currentCancelInput=e=>(this._trace(`invoking _currentCancelInput`),this._currentAcceptInput=void 0,this._currentCancelInput=void 0,this._renameCandidateListView?.clearCandidates(),l.complete(e),!0),this._currentAcceptInput=t=>{this._trace(`invoking _currentAcceptInput`),e.assertType(this._renameCandidateListView!==void 0);let i=this._renameCandidateListView.nCandidates,a,o,s=this._renameCandidateListView.focusedCandidate;if(s===void 0?(this._trace(`using new name from inputField`),a=this._inputWithButton.input.value,o=this._isEditingRenameCandidate?{k:`userEditedRenameSuggestion`}:{k:`inputField`}):(this._trace(`using new name from renameSuggestion`),a=s,o={k:`renameSuggestion`}),a===n||a.trim().length===0){this.cancelInput(!0,`_currentAcceptInput (because newName === value || newName.trim().length === 0)`);return}this._currentAcceptInput=void 0,this._currentCancelInput=void 0,this._renameCandidateListView.clearCandidates(),l.complete({newName:a,wantsPreview:r&&t,stats:{source:o,nRenameSuggestions:i,timeBeforeFirstInputFieldEdit:this._timeBeforeFirstInputFieldEdit,nRenameSuggestionsInvocations:this._nRenameSuggestionsInvocations,hadAutomaticRenameSuggestionsInvocation:this._hadAutomaticRenameSuggestionsInvocation}})},c.add(a.token.onCancellationRequested(()=>this.cancelInput(!0,`cts.token.onCancellationRequested`))),c.add(this._editor.onDidBlurEditorWidget(()=>this.cancelInput(!this._domNode?.ownerDocument.hasFocus(),`editor.onDidBlurEditorWidget`))),this._show(),l.p}_requestRenameCandidates(t,n){if(this._requestRenameCandidatesOnce!==void 0&&(this._renameCandidateProvidersCts!==void 0&&this._renameCandidateProvidersCts.dispose(!0),e.assertType(this._renameCts),this._inputWithButton.buttonState!==`stop`)){this._renameCandidateProvidersCts=new e.CancellationTokenSource$1;let r=n?e.NewSymbolNameTriggerKind.Invoke:e.NewSymbolNameTriggerKind.Automatic,i=this._requestRenameCandidatesOnce(r,this._renameCandidateProvidersCts.token);if(i.length===0){this._inputWithButton.setSparkleButton();return}n||(this._hadAutomaticRenameSuggestionsInvocation=!0),this._nRenameSuggestionsInvocations+=1,this._inputWithButton.setStopButton(),this._updateRenameCandidates(i,t,this._renameCts.token)}}_getSelection(t,n){e.assertType(this._editor.hasModel());let r=this._editor.getSelection(),i=0,a=n.length;return!e.Range$1.isEmpty(r)&&!e.Range$1.spansMultipleLines(r)&&e.Range$1.containsRange(t,r)&&(i=Math.max(0,r.startColumn-t.startColumn),a=Math.min(t.endColumn,r.endColumn)-t.startColumn),{start:i,end:a}}_show(){this._trace(`invoking _show`),this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber,0),this._visible=!0,this._visibleContextKey.set(!0),this._editor.layoutContentWidget(this),setTimeout(()=>{this._inputWithButton.input.focus(),this._inputWithButton.input.setSelectionRange(parseInt(this._inputWithButton.input.getAttribute(`selectionStart`)),parseInt(this._inputWithButton.input.getAttribute(`selectionEnd`)))},100)}async _updateRenameCandidates(t,n,r){let i=(...e)=>this._trace(`_updateRenameCandidates`,...e);i(`start`);let a=await e.raceCancellation(Promise.allSettled(t),r);if(this._inputWithButton.setSparkleButton(),a===void 0){i(`returning early - received updateRenameCandidates results - undefined`);return}let o=a.flatMap(t=>t.status===`fulfilled`&&e.isDefined(t.value)?t.value:[]);i(`received updateRenameCandidates results - total (unfiltered) ${o.length} candidates.`);let s=e.distinct(o,e=>e.newSymbolName);i(`distinct candidates - ${s.length} candidates.`);let c=s.filter(({newSymbolName:e})=>e.trim().length>0&&e!==this._inputWithButton.input.value&&e!==n&&!this._candidates.has(e));if(i(`valid distinct candidates - ${o.length} candidates.`),c.forEach(e=>this._candidates.add(e.newSymbolName)),c.length<1){i(`returning early - no valid distinct candidates`);return}i(`setting candidates`),this._renameCandidateListView.setCandidates(c),i(`asking editor to re-layout`),this._editor.layoutContentWidget(this)}_hide(){this._trace(`invoked _hide`),this._visible=!1,this._visibleContextKey.reset(),this._editor.layoutContentWidget(this)}_getTopForPosition(){let e=this._editor.getVisibleRanges(),t;return e.length>0?t=e[0].startLineNumber:(this._logService.warn(`RenameWidget#_getTopForPosition: this should not happen - visibleRanges is empty`),t=Math.max(1,this._position.lineNumber-5)),this._editor.getTopForLineNumber(this._position.lineNumber)-this._editor.getTopForLineNumber(t)}_trace(...e){this._logService.trace(`RenameWidget`,...e)}};Dk=Ck([wk(2,e.IThemeService),wk(3,e.IKeybindingService),wk(4,e.IContextKeyService),wk(5,e.ILogService)],Dk);var Ok=class t{constructor(n,r){this._disposables=new e.DisposableStore,this._availableHeight=0,this._minimumWidth=0,this._lineHeight=r.fontInfo.lineHeight,this._typicalHalfwidthCharacterWidth=r.fontInfo.typicalHalfwidthCharacterWidth,this._listContainer=document.createElement(`div`),this._listContainer.className=`rename-box rename-candidate-list-container`,n.appendChild(this._listContainer),this._listWidget=t._createListWidget(this._listContainer,this._candidateViewHeight,r.fontInfo),this._listWidget.onDidChangeFocus(e=>{e.elements.length===1&&r.onFocusChange(e.elements[0].newSymbolName)},this._disposables),this._listWidget.onDidChangeSelection(e=>{e.elements.length===1&&r.onSelectionChange()},this._disposables),this._disposables.add(this._listWidget.onDidBlur(e=>{this._listWidget.setFocus([])})),this._listWidget.style(e.getListStyles({listInactiveFocusForeground:e.quickInputListFocusForeground,listInactiveFocusBackground:e.quickInputListFocusBackground}))}dispose(){this._listWidget.dispose(),this._disposables.dispose()}layout({height:e,width:t}){this._availableHeight=e,this._minimumWidth=t}setCandidates(t){this._listWidget.splice(0,0,t);let n=this._pickListHeight(this._listWidget.length),r=this._pickListWidth(t);this._listWidget.layout(n,r),this._listContainer.style.height=`${n}px`,this._listContainer.style.width=`${r}px`,e.status(e.localize(`renameSuggestionsReceivedAria`,`Received {0} rename suggestions`,t.length))}clearCandidates(){this._listContainer.style.height=`0px`,this._listContainer.style.width=`0px`,this._listWidget.splice(0,this._listWidget.length,[])}get nCandidates(){return this._listWidget.length}get focusedCandidate(){if(this._listWidget.length===0)return;let e=this._listWidget.getSelectedElements()[0];if(e!==void 0)return e.newSymbolName;let t=this._listWidget.getFocusedElements()[0];if(t!==void 0)return t.newSymbolName}focusNext(){if(this._listWidget.length===0)return!1;let e=this._listWidget.getFocus();if(e.length===0)return this._listWidget.focusFirst(),this._listWidget.reveal(0),!0;if(e[0]===this._listWidget.length-1)return this._listWidget.setFocus([]),this._listWidget.reveal(0),!1;{this._listWidget.focusNext();let e=this._listWidget.getFocus()[0];return this._listWidget.reveal(e),!0}}focusPrevious(){if(this._listWidget.length===0)return!1;let e=this._listWidget.getFocus();if(e.length===0){this._listWidget.focusLast();let e=this._listWidget.getFocus()[0];return this._listWidget.reveal(e),!0}else if(e[0]===0)return this._listWidget.setFocus([]),!1;else{this._listWidget.focusPrevious();let e=this._listWidget.getFocus()[0];return this._listWidget.reveal(e),!0}}clearFocus(){this._listWidget.setFocus([])}get _candidateViewHeight(){let{totalHeight:e}=Ak.getLayoutInfo({lineHeight:this._lineHeight});return e}_pickListHeight(e){let t=this._candidateViewHeight*e;return Math.min(t,this._availableHeight,this._candidateViewHeight*7)}_pickListWidth(e){let t=Math.ceil(Math.max(...e.map(e=>e.newSymbolName.length))*this._typicalHalfwidthCharacterWidth);return Math.max(this._minimumWidth,25+t+10)}static _createListWidget(t,n,r){let i=new class{getTemplateId(e){return`candidate`}getHeight(e){return n}},a=new class{constructor(){this.templateId=`candidate`}renderTemplate(e){return new Ak(e,r)}renderElement(e,t,n){n.populate(e)}disposeTemplate(e){e.dispose()}};return new e.List(`NewSymbolNameCandidates`,t,i,[a],{keyboardSupport:!1,mouseSupport:!0,multipleSelectionSupport:!1})}},kk=class{constructor(){this._onDidInputChange=new e.Emitter$1,this.onDidInputChange=this._onDidInputChange.event,this._disposables=new e.DisposableStore}get domNode(){return this._domNode||(this._domNode=document.createElement(`div`),this._domNode.className=`rename-input-with-button`,this._domNode.style.display=`flex`,this._domNode.style.flexDirection=`row`,this._domNode.style.alignItems=`center`,this._inputNode=document.createElement(`input`),this._inputNode.className=`rename-input`,this._inputNode.type=`text`,this._inputNode.style.border=`none`,this._inputNode.setAttribute(`aria-label`,e.localize(`renameAriaLabel`,`Rename input. Type new name and press Enter to commit.`)),this._domNode.appendChild(this._inputNode),this._buttonNode=document.createElement(`div`),this._buttonNode.className=`rename-suggestions-button`,this._buttonNode.setAttribute(`tabindex`,`0`),this._buttonGenHoverText=e.localize(`generateRenameSuggestionsButton`,`Generate new name suggestions`),this._buttonCancelHoverText=e.localize(`cancelRenameSuggestionsButton`,`Cancel`),this._buttonHover=e.getBaseLayerHoverDelegate().setupManagedHover(e.getDefaultHoverDelegate(`element`),this._buttonNode,this._buttonGenHoverText),this._disposables.add(this._buttonHover),this._domNode.appendChild(this._buttonNode),this._disposables.add(e.addDisposableListener(this.input,e.EventType$1.INPUT,()=>this._onDidInputChange.fire())),this._disposables.add(e.addDisposableListener(this.input,e.EventType$1.KEY_DOWN,t=>{let n=new e.StandardKeyboardEvent(t);(n.keyCode===15||n.keyCode===17)&&this._onDidInputChange.fire()})),this._disposables.add(e.addDisposableListener(this.input,e.EventType$1.CLICK,()=>this._onDidInputChange.fire())),this._disposables.add(e.addDisposableListener(this.input,e.EventType$1.FOCUS,()=>{this.domNode.style.outlineWidth=`1px`,this.domNode.style.outlineStyle=`solid`,this.domNode.style.outlineOffset=`-1px`,this.domNode.style.outlineColor=`var(--vscode-focusBorder)`})),this._disposables.add(e.addDisposableListener(this.input,e.EventType$1.BLUR,()=>{this.domNode.style.outline=`none`}))),this._domNode}get input(){return e.assertType(this._inputNode),this._inputNode}get button(){return e.assertType(this._buttonNode),this._buttonNode}get buttonState(){return this._buttonState}setSparkleButton(){this._buttonState=`sparkle`,this._sparkleIcon??=e.renderIcon(e.Codicon.sparkle),e.clearNode(this.button),this.button.appendChild(this._sparkleIcon),this.button.setAttribute(`aria-label`,`Generating new name suggestions`),this._buttonHover?.update(this._buttonGenHoverText),this.input.focus()}setStopButton(){this._buttonState=`stop`,this._stopIcon??=e.renderIcon(e.Codicon.primitiveSquare),e.clearNode(this.button),this.button.appendChild(this._stopIcon),this.button.setAttribute(`aria-label`,`Cancel generating new name suggestions`),this._buttonHover?.update(this._buttonCancelHoverText),this.input.focus()}dispose(){this._disposables.dispose()}},Ak=class t{static{this._PADDING=2}constructor(n,r){this._domNode=document.createElement(`div`),this._domNode.className=`rename-box rename-candidate`,this._domNode.style.display=`flex`,this._domNode.style.columnGap=`5px`,this._domNode.style.alignItems=`center`,this._domNode.style.height=`${r.lineHeight}px`,this._domNode.style.padding=`${t._PADDING}px`;let i=document.createElement(`div`);i.style.display=`flex`,i.style.alignItems=`center`,i.style.width=i.style.height=`${r.lineHeight*.8}px`,this._domNode.appendChild(i),this._icon=e.renderIcon(e.Codicon.sparkle),this._icon.style.display=`none`,i.appendChild(this._icon),this._label=document.createElement(`div`),e.applyFontInfo(this._label,r),this._domNode.appendChild(this._label),n.appendChild(this._domNode)}populate(e){this._updateIcon(e),this._updateLabel(e)}_updateIcon(t){let n=!!t.tags?.includes(e.NewSymbolNameTag.AIGenerated);this._icon.style.display=n?`inherit`:`none`}_updateLabel(e){this._label.innerText=e.newSymbolName}static getLayoutInfo({lineHeight:e}){return{totalHeight:e+t._PADDING*2}}dispose(){}},jk=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Mk=function(e,t){return function(n,r){t(n,r,e)}},Nk,Pk=class{constructor(e,t,n){this.model=e,this.position=t,this._providerRenameIdx=0,this._providers=n.ordered(e)}hasProvider(){return this._providers.length>0}async resolveRenameLocation(t){let n=[];for(this._providerRenameIdx=0;this._providerRenameIdx<this._providers.length;this._providerRenameIdx++){let e=this._providers[this._providerRenameIdx];if(!e.resolveRenameLocation)break;let r=await e.resolveRenameLocation(this.model,this.position,t);if(r){if(r.rejectReason){n.push(r.rejectReason);continue}return r}}this._providerRenameIdx=0;let r=this.model.getWordAtPosition(this.position);return r?{range:new e.Range$1(this.position.lineNumber,r.startColumn,this.position.lineNumber,r.endColumn),text:r.word,rejectReason:n.length>0?n.join(`
`):void 0}:{range:e.Range$1.fromPositions(this.position),text:``,rejectReason:n.length>0?n.join(`
`):void 0}}async provideRenameEdits(e,t){return this._provideRenameEdits(e,this._providerRenameIdx,[],t)}async _provideRenameEdits(t,n,r,i){let a=this._providers[n];if(!a)return{edits:[],rejectReason:r.join(`
`)};let o=await a.provideRenameEdits(this.model,this.position,t,i);if(o){if(o.rejectReason)return this._provideRenameEdits(t,n+1,r.concat(o.rejectReason),i)}else return this._provideRenameEdits(t,n+1,r.concat(e.localize(`no result`,`No result.`)),i);return o}};async function Fk(t,n,r,i){let a=new Pk(n,r,t),o=await a.resolveRenameLocation(e.CancellationToken.None);return o?.rejectReason?{edits:[],rejectReason:o.rejectReason}:a.provideRenameEdits(i,e.CancellationToken.None)}var Ik=class{static{Nk=this}static{this.ID=`editor.contrib.renameController`}static get(e){return e.getContribution(Nk.ID)}constructor(t,n,r,i,a,o,s,c,l){this.editor=t,this._instaService=n,this._notificationService=r,this._bulkEditService=i,this._progressService=a,this._logService=o,this._configService=s,this._languageFeaturesService=c,this._telemetryService=l,this._disposableStore=new e.DisposableStore,this._cts=new e.CancellationTokenSource$1,this._renameWidget=this._disposableStore.add(this._instaService.createInstance(Dk,this.editor,[`acceptRenameInput`,`acceptRenameInputWithPreview`]))}dispose(){this._disposableStore.dispose(),this._cts.dispose(!0)}async run(){let t=this._logService.trace.bind(this._logService,`[rename]`);if(this._cts.dispose(!0),this._cts=new e.CancellationTokenSource$1,!this.editor.hasModel()){t(`editor has no model`);return}let n=this.editor.getPosition(),r=new Pk(this.editor.getModel(),n,this._languageFeaturesService.renameProvider);if(!r.hasProvider()){t(`skeleton has no provider`);return}let i=new e.EditorStateCancellationTokenSource(this.editor,5,void 0,this._cts.token),a;try{t(`resolving rename location`);let e=r.resolveRenameLocation(i.token);this._progressService.showWhile(e,250),a=await e,t(`resolved rename location`)}catch(r){r instanceof e.CancellationError?t(`resolve rename location cancelled`,JSON.stringify(r,null,` `)):(t(`resolve rename location failed`,r instanceof Error?r:JSON.stringify(r,null,` `)),(typeof r==`string`||e.isMarkdownString(r))&&Nl.get(this.editor)?.showMessage(r||e.localize(`resolveRenameLocationFailed`,`An unknown error occurred while resolving rename location`),n));return}finally{i.dispose()}if(!a){t(`returning early - no loc`);return}if(a.rejectReason){t(`returning early - rejected with reason: ${a.rejectReason}`,a.rejectReason),Nl.get(this.editor)?.showMessage(a.rejectReason,n);return}if(i.token.isCancellationRequested){t(`returning early - cts1 cancelled`);return}let o=new e.EditorStateCancellationTokenSource(this.editor,5,a.range,this._cts.token),s=this.editor.getModel(),c=this._languageFeaturesService.newSymbolNamesProvider.all(s),l=await Promise.all(c.map(async e=>[e,await e.supportsAutomaticNewSymbolNamesTriggerKind??!1])),u=(t,n)=>{let r=l.slice();return t===e.NewSymbolNameTriggerKind.Automatic&&(r=r.filter(([e,t])=>t)),r.map(([e])=>e.provideNewSymbolNames(s,a.range,t,n))};t(`creating rename input field and awaiting its result`);let d=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,`editor.rename.enablePreview`),f=await this._renameWidget.getInput(a.range,a.text,d,c.length>0?u:void 0,o);if(t(`received response from rename input field`),c.length>0&&this._reportTelemetry(c.length,s.getLanguageId(),f),typeof f==`boolean`){t(`returning early - rename input field response - ${f}`),f&&this.editor.focus(),o.dispose();return}this.editor.focus(),t(`requesting rename edits`);let p=e.raceCancellation(r.provideRenameEdits(f.newName,o.token),o.token).then(async n=>{if(!n){t(`returning early - no rename edits result`);return}if(!this.editor.hasModel()){t(`returning early - no model after rename edits are provided`);return}if(n.rejectReason){t(`returning early - rejected with reason: ${n.rejectReason}`),this._notificationService.info(n.rejectReason);return}this.editor.setSelection(e.Range$1.fromPositions(this.editor.getSelection().getPosition())),t(`applying edits`),this._bulkEditService.apply(n,{editor:this.editor,showPreview:f.wantsPreview,label:e.localize(`label`,`Renaming '{0}' to '{1}'`,a?.text,f.newName),code:`undoredo.rename`,quotableLabel:e.localize(`quotableLabel`,`Renaming {0} to {1}`,a?.text,f.newName),respectAutoSaveConfig:!0}).then(n=>{t(`edits applied`),n.ariaSummary&&e.alert(e.localize(`aria`,`Successfully renamed '{0}' to '{1}'. Summary: {2}`,a.text,f.newName,n.ariaSummary))}).catch(n=>{t(`error when applying edits ${JSON.stringify(n,null,` `)}`),this._notificationService.error(e.localize(`rename.failedApply`,`Rename failed to apply edits`)),this._logService.error(n)})},n=>{t(`error when providing rename edits`,JSON.stringify(n,null,` `)),this._notificationService.error(e.localize(`rename.failed`,`Rename failed to compute edits`)),this._logService.error(n)}).finally(()=>{o.dispose()});return t(`returning rename operation`),this._progressService.showWhile(p,250),p}acceptRenameInput(e){this._renameWidget.acceptInput(e)}cancelRenameInput(){this._renameWidget.cancelInput(!0,`cancelRenameInput command`)}focusNextRenameSuggestion(){this._renameWidget.focusNextRenameSuggestion()}focusPreviousRenameSuggestion(){this._renameWidget.focusPreviousRenameSuggestion()}_reportTelemetry(e,t,n){let r=typeof n==`boolean`?{kind:`cancelled`,languageId:t,nRenameSuggestionProviders:e}:{kind:`accepted`,languageId:t,nRenameSuggestionProviders:e,source:n.stats.source.k,nRenameSuggestions:n.stats.nRenameSuggestions,timeBeforeFirstInputFieldEdit:n.stats.timeBeforeFirstInputFieldEdit,wantsPreview:n.wantsPreview,nRenameSuggestionsInvocations:n.stats.nRenameSuggestionsInvocations,hadAutomaticRenameSuggestionsInvocation:n.stats.hadAutomaticRenameSuggestionsInvocation};this._telemetryService.publicLog2(`renameInvokedEvent`,r)}};Ik=Nk=jk([Mk(1,e.IInstantiationService),Mk(2,e.INotificationService),Mk(3,e.IBulkEditService),Mk(4,e.IEditorProgressService),Mk(5,e.ILogService),Mk(6,e.ITextResourceConfigurationService),Mk(7,e.ILanguageFeaturesService),Mk(8,e.ITelemetryService)],Ik);var Lk=class extends e.EditorAction{constructor(){super({id:`editor.action.rename`,label:e.localize(`rename.label`,`Rename Symbol`),alias:`Rename Symbol`,precondition:e.ContextKeyExpr.and(e.EditorContextKeys.writable,e.EditorContextKeys.hasRenameProvider),kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:`1_modification`,order:1.1}})}runCommand(t,n){let r=t.get(e.ICodeEditorService),[i,a]=Array.isArray(n)&&n||[void 0,void 0];return e.URI.isUri(i)&&e.Position$1.isIPosition(a)?r.openCodeEditor({resource:i},r.getActiveCodeEditor()).then(e=>{e&&(e.setPosition(a),e.invokeWithinContext(t=>(this.reportTelemetry(t,e),this.run(t,e))))},e.onUnexpectedError):super.runCommand(t,n)}run(t,n){let r=t.get(e.ILogService),i=Ik.get(n);return i?(r.trace(`[RenameAction] got controller, running...`),i.run()):(r.trace(`[RenameAction] returning early - controller missing`),Promise.resolve())}};e.registerEditorContribution(Ik.ID,Ik,4),e.registerEditorAction(Lk);var Rk=e.EditorCommand.bindToContribution(Ik.get);e.registerEditorCommand(new Rk({id:`acceptRenameInput`,precondition:Tk,handler:e=>e.acceptRenameInput(!1),kbOpts:{weight:199,kbExpr:e.ContextKeyExpr.and(e.EditorContextKeys.focus,e.ContextKeyExpr.not(`isComposing`)),primary:3}})),e.registerEditorCommand(new Rk({id:`acceptRenameInputWithPreview`,precondition:e.ContextKeyExpr.and(Tk,e.ContextKeyExpr.has(`config.editor.rename.enablePreview`)),handler:e=>e.acceptRenameInput(!0),kbOpts:{weight:199,kbExpr:e.ContextKeyExpr.and(e.EditorContextKeys.focus,e.ContextKeyExpr.not(`isComposing`)),primary:2051}})),e.registerEditorCommand(new Rk({id:`cancelRenameInput`,precondition:Tk,handler:e=>e.cancelRenameInput(),kbOpts:{weight:199,kbExpr:e.EditorContextKeys.focus,primary:9,secondary:[1033]}})),e.registerAction2(class extends e.Action2{constructor(){super({id:`focusNextRenameSuggestion`,title:{...e.localize2(`focusNextRenameSuggestion`,`Focus Next Rename Suggestion`)},precondition:Tk,keybinding:[{primary:18,weight:199}]})}run(t){let n=t.get(e.ICodeEditorService).getFocusedCodeEditor();if(!n)return;let r=Ik.get(n);r&&r.focusNextRenameSuggestion()}}),e.registerAction2(class extends e.Action2{constructor(){super({id:`focusPreviousRenameSuggestion`,title:{...e.localize2(`focusPreviousRenameSuggestion`,`Focus Previous Rename Suggestion`)},precondition:Tk,keybinding:[{primary:16,weight:199}]})}run(t){let n=t.get(e.ICodeEditorService).getFocusedCodeEditor();if(!n)return;let r=Ik.get(n);r&&r.focusPreviousRenameSuggestion()}}),e.registerModelAndPositionCommand(`_executeDocumentRenameProvider`,function(t,n,r,...i){let[a]=i;e.assertType(typeof a==`string`);let{renameProvider:o}=t.get(e.ILanguageFeaturesService);return Fk(o,n,r,a)}),e.registerModelAndPositionCommand(`_executePrepareRename`,async function(t,n,r){let{renameProvider:i}=t.get(e.ILanguageFeaturesService),a=await new Pk(n,r,i).resolveRenameLocation(e.CancellationToken.None);if(a?.rejectReason)throw Error(a.rejectReason);return a}),e.Registry.as(e.Extensions$1.Configuration).registerConfiguration({id:`editor`,properties:{"editor.rename.enablePreview":{scope:5,description:e.localize(`enablePreview`,`Enable/disable the ability to preview changes before renaming`),default:!0,type:`boolean`}}});var zk=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Bk=function(e,t){return function(n,r){t(n,r,e)}},Vk=class extends e.Disposable{static{this.ID=`editor.sectionHeaderDetector`}constructor(t,n,r){super(),this.editor=t,this.languageConfigurationService=n,this.editorWorkerService=r,this.decorations=this.editor.createDecorationsCollection(),this.options=this.createOptions(t.getOption(73)),this.computePromise=null,this.currentOccurrences={},this._register(t.onDidChangeModel(e=>{this.currentOccurrences={},this.options=this.createOptions(t.getOption(73)),this.stop(),this.computeSectionHeaders.schedule(0)})),this._register(t.onDidChangeModelLanguage(e=>{this.currentOccurrences={},this.options=this.createOptions(t.getOption(73)),this.stop(),this.computeSectionHeaders.schedule(0)})),this._register(n.onDidChange(e=>{let n=this.editor.getModel()?.getLanguageId();n&&e.affects(n)&&(this.currentOccurrences={},this.options=this.createOptions(t.getOption(73)),this.stop(),this.computeSectionHeaders.schedule(0))})),this._register(t.onDidChangeConfiguration(e=>{this.options&&!e.hasChanged(73)||(this.options=this.createOptions(t.getOption(73)),this.updateDecorations([]),this.stop(),this.computeSectionHeaders.schedule(0))})),this._register(this.editor.onDidChangeModelContent(e=>{this.computeSectionHeaders.schedule()})),this._register(t.onDidChangeModelTokens(e=>{this.computeSectionHeaders.isScheduled()||this.computeSectionHeaders.schedule(1e3)})),this.computeSectionHeaders=this._register(new e.RunOnceScheduler(()=>{this.findSectionHeaders()},250)),this.computeSectionHeaders.schedule(0)}createOptions(e){if(!e||!this.editor.hasModel())return;let t=this.editor.getModel().getLanguageId();if(!t)return;let n=this.languageConfigurationService.getLanguageConfiguration(t).comments,r=this.languageConfigurationService.getLanguageConfiguration(t).foldingRules;if(!(!n&&!r?.markers))return{foldingRules:r,findMarkSectionHeaders:e.showMarkSectionHeaders,findRegionSectionHeaders:e.showRegionSectionHeaders}}findSectionHeaders(){if(!this.editor.hasModel()||!this.options?.findMarkSectionHeaders&&!this.options?.findRegionSectionHeaders)return;let e=this.editor.getModel();if(e.isDisposed()||e.isTooLargeForSyncing())return;let t=e.getVersionId();this.editorWorkerService.findSectionHeaders(e.uri,this.options).then(n=>{e.isDisposed()||e.getVersionId()!==t||this.updateDecorations(n)})}updateDecorations(e){let t=this.editor.getModel();t&&(e=e.filter(e=>{if(!e.shouldBeInComments)return!0;let n=t.validateRange(e.range),r=t.tokenization.getLineTokens(n.startLineNumber),i=r.findTokenIndexAtOffset(n.startColumn-1),a=r.getStandardTokenType(i);return r.getLanguageId(i)===t.getLanguageId()&&a===1}));let n=Object.values(this.currentOccurrences).map(e=>e.decorationId),r=e.map(e=>Hk(e));this.editor.changeDecorations(t=>{let i=t.deltaDecorations(n,r);this.currentOccurrences={};for(let t=0,n=i.length;t<n;t++){let n={sectionHeader:e[t],decorationId:i[t]};this.currentOccurrences[n.decorationId]=n}})}stop(){this.computeSectionHeaders.cancel(),this.computePromise&&=(this.computePromise.cancel(),null)}dispose(){super.dispose(),this.stop(),this.decorations.clear()}};Vk=zk([Bk(1,e.ILanguageConfigurationService),Bk(2,e.IEditorWorkerService)],Vk);function Hk(t){return{range:t.range,options:e.ModelDecorationOptions.createDynamic({description:`section-header`,stickiness:3,collapseOnReplaceEdit:!0,minimap:{color:void 0,position:1,sectionHeaderStyle:t.hasSeparatorLine?2:1,sectionHeaderText:t.text}})}}e.registerEditorContribution(Vk.ID,Vk,1);function Uk(e){for(let t=0,n=e.length;t<n;t+=4){let n=e[t+0],r=e[t+1],i=e[t+2],a=e[t+3];e[t+0]=a,e[t+1]=i,e[t+2]=r,e[t+3]=n}}function Wk(t){let n=new Uint8Array(t.buffer,t.byteOffset,t.length*4);return e.isLittleEndian()||Uk(n),e.VSBuffer.wrap(n)}function Gk(e){let t=new Uint32Array(Kk(e)),n=0;if(t[n++]=e.id,e.type===`full`)t[n++]=1,t[n++]=e.data.length,t.set(e.data,n),n+=e.data.length;else{t[n++]=2,t[n++]=e.deltas.length;for(let r of e.deltas)t[n++]=r.start,t[n++]=r.deleteCount,r.data?(t[n++]=r.data.length,t.set(r.data,n),n+=r.data.length):t[n++]=0}return Wk(t)}function Kk(e){let t=0;if(t+=2,e.type===`full`)t+=1+e.data.length;else{t+=1,t+=3*e.deltas.length;for(let n of e.deltas)n.data&&(t+=n.data.length)}return t}function qk(e){return e&&!!e.data}function Jk(e){return e&&Array.isArray(e.edits)}var Yk=class{constructor(e,t,n){this.provider=e,this.tokens=t,this.error=n}};function Xk(e,t){return e.has(t)}function Zk(e,t){let n=e.orderedGroups(t);return n.length>0?n[0]:[]}async function Qk(e,t,n,r,i){let a=Zk(e,t),o=await Promise.all(a.map(async e=>{let a,o=null;try{a=await e.provideDocumentSemanticTokens(t,e===n?r:null,i)}catch(e){o=e,a=null}return(!a||!qk(a)&&!Jk(a))&&(a=null),new Yk(e,a,o)}));for(let e of o){if(e.error)throw e.error;if(e.tokens)return e}return o.length>0?o[0]:null}function $k(e,t){let n=e.orderedGroups(t);return n.length>0?n[0]:null}var eA=class{constructor(e,t){this.provider=e,this.tokens=t}};function tA(e,t){return e.has(t)}function nA(e,t){let n=e.orderedGroups(t);return n.length>0?n[0]:[]}async function rA(t,n,r,i){let a=nA(t,n),o=await Promise.all(a.map(async t=>{let a;try{a=await t.provideDocumentRangeSemanticTokens(n,r,i)}catch(t){e.onUnexpectedExternalError(t),a=null}return(!a||!qk(a))&&(a=null),new eA(t,a)}));for(let e of o)if(e.tokens)return e;return o.length>0?o[0]:null}e.CommandsRegistry.registerCommand(`_provideDocumentSemanticTokensLegend`,async(t,...n)=>{let[r]=n;e.assertType(r instanceof e.URI);let i=t.get(e.IModelService).getModel(r);if(!i)return;let{documentSemanticTokensProvider:a}=t.get(e.ILanguageFeaturesService),o=$k(a,i);return o?o[0].getLegend():t.get(e.ICommandService).executeCommand(`_provideDocumentRangeSemanticTokensLegend`,r)}),e.CommandsRegistry.registerCommand(`_provideDocumentSemanticTokens`,async(t,...n)=>{let[r]=n;e.assertType(r instanceof e.URI);let i=t.get(e.IModelService).getModel(r);if(!i)return;let{documentSemanticTokensProvider:a}=t.get(e.ILanguageFeaturesService);if(!Xk(a,i))return t.get(e.ICommandService).executeCommand(`_provideDocumentRangeSemanticTokens`,r,i.getFullModelRange());let o=await Qk(a,i,null,null,e.CancellationToken.None);if(!o)return;let{provider:s,tokens:c}=o;if(!c||!qk(c))return;let l=Gk({id:0,type:`full`,data:c.data});return c.resultId&&s.releaseDocumentSemanticTokens(c.resultId),l}),e.CommandsRegistry.registerCommand(`_provideDocumentRangeSemanticTokensLegend`,async(t,...n)=>{let[r,i]=n;e.assertType(r instanceof e.URI);let a=t.get(e.IModelService).getModel(r);if(!a)return;let{documentRangeSemanticTokensProvider:o}=t.get(e.ILanguageFeaturesService),s=nA(o,a);if(s.length===0)return;if(s.length===1)return s[0].getLegend();if(!i||!e.Range$1.isIRange(i))return console.warn(`provideDocumentRangeSemanticTokensLegend might be out-of-sync with provideDocumentRangeSemanticTokens unless a range argument is passed in`),s[0].getLegend();let c=await rA(o,a,e.Range$1.lift(i),e.CancellationToken.None);if(c)return c.provider.getLegend()}),e.CommandsRegistry.registerCommand(`_provideDocumentRangeSemanticTokens`,async(t,...n)=>{let[r,i]=n;e.assertType(r instanceof e.URI),e.assertType(e.Range$1.isIRange(i));let a=t.get(e.IModelService).getModel(r);if(!a)return;let{documentRangeSemanticTokensProvider:o}=t.get(e.ILanguageFeaturesService),s=await rA(o,a,e.Range$1.lift(i),e.CancellationToken.None);if(!(!s||!s.tokens))return Gk({id:0,type:`full`,data:s.tokens.data})});const iA=`editor.semanticHighlighting`;function aA(e,t,n){let r=n.getValue(`editor.semanticHighlighting`,{overrideIdentifier:e.getLanguageId(),resource:e.uri})?.enabled;return typeof r==`boolean`?r:t.getColorTheme().semanticHighlighting}var oA=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},sA=function(e,t){return function(n,r){t(n,r,e)}},cA,lA=class extends e.Disposable{constructor(e,t,n,r,i,a){super(),this._watchers=Object.create(null);let o=t=>{this._watchers[t.uri.toString()]=new uA(t,e,n,i,a)},s=(e,t)=>{t.dispose(),delete this._watchers[e.uri.toString()]},c=()=>{for(let e of t.getModels()){let t=this._watchers[e.uri.toString()];aA(e,n,r)?t||o(e):t&&s(e,t)}};t.getModels().forEach(e=>{aA(e,n,r)&&o(e)}),this._register(t.onModelAdded(e=>{aA(e,n,r)&&o(e)})),this._register(t.onModelRemoved(e=>{let t=this._watchers[e.uri.toString()];t&&s(e,t)})),this._register(r.onDidChangeConfiguration(e=>{e.affectsConfiguration(`editor.semanticHighlighting`)&&c()})),this._register(n.onDidColorThemeChange(c))}dispose(){for(let e of Object.values(this._watchers))e.dispose();super.dispose()}};lA=oA([sA(0,e.ISemanticTokensStylingService),sA(1,e.IModelService),sA(2,e.IThemeService),sA(3,e.IConfigurationService),sA(4,e.ILanguageFeatureDebounceService),sA(5,e.ILanguageFeaturesService)],lA);var uA=class extends e.Disposable{static{cA=this}static{this.REQUEST_MIN_DELAY=300}static{this.REQUEST_MAX_DELAY=2e3}constructor(t,n,r,i,a){super(),this._semanticTokensStylingService=n,this._isDisposed=!1,this._model=t,this._provider=a.documentSemanticTokensProvider,this._debounceInformation=i.for(this._provider,`DocumentSemanticTokens`,{min:cA.REQUEST_MIN_DELAY,max:cA.REQUEST_MAX_DELAY}),this._fetchDocumentSemanticTokens=this._register(new e.RunOnceScheduler(()=>this._fetchDocumentSemanticTokensNow(),cA.REQUEST_MIN_DELAY)),this._currentDocumentResponse=null,this._currentDocumentRequestCancellationTokenSource=null,this._documentProvidersChangeListeners=[],this._providersChangedDuringRequest=!1,this._register(this._model.onDidChangeContent(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeAttached(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeLanguage(()=>{this._currentDocumentResponse&&=(this._currentDocumentResponse.dispose(),null),this._currentDocumentRequestCancellationTokenSource&&=(this._currentDocumentRequestCancellationTokenSource.cancel(),null),this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(0)}));let o=()=>{e.dispose(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[];for(let e of this._provider.all(t))typeof e.onDidChange==`function`&&this._documentProvidersChangeListeners.push(e.onDidChange(()=>{if(this._currentDocumentRequestCancellationTokenSource){this._providersChangedDuringRequest=!0;return}this._fetchDocumentSemanticTokens.schedule(0)}))};o(),this._register(this._provider.onDidChange(()=>{o(),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(r.onDidColorThemeChange(e=>{this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._fetchDocumentSemanticTokens.schedule(0)}dispose(){this._currentDocumentResponse&&=(this._currentDocumentResponse.dispose(),null),this._currentDocumentRequestCancellationTokenSource&&=(this._currentDocumentRequestCancellationTokenSource.cancel(),null),e.dispose(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[],this._setDocumentSemanticTokens(null,null,null,[]),this._isDisposed=!0,super.dispose()}_fetchDocumentSemanticTokensNow(){if(this._currentDocumentRequestCancellationTokenSource)return;if(!Xk(this._provider,this._model)){this._currentDocumentResponse&&this._model.tokenization.setSemanticTokens(null,!1);return}if(!this._model.isAttachedToEditor())return;let t=new e.CancellationTokenSource$1,n=this._currentDocumentResponse?this._currentDocumentResponse.provider:null,r=this._currentDocumentResponse&&this._currentDocumentResponse.resultId||null,i=Qk(this._provider,this._model,n,r,t.token);this._currentDocumentRequestCancellationTokenSource=t,this._providersChangedDuringRequest=!1;let a=[],o=this._model.onDidChangeContent(e=>{a.push(e)}),s=new e.StopWatch(!1);i.then(e=>{if(this._debounceInformation.update(this._model,s.elapsed()),this._currentDocumentRequestCancellationTokenSource=null,o.dispose(),!e)this._setDocumentSemanticTokens(null,null,null,a);else{let{provider:t,tokens:n}=e,r=this._semanticTokensStylingService.getStyling(t);this._setDocumentSemanticTokens(t,n||null,r,a)}},t=>{t&&(e.isCancellationError(t)||typeof t.message==`string`&&t.message.indexOf(`busy`)!==-1)||e.onUnexpectedError(t),this._currentDocumentRequestCancellationTokenSource=null,o.dispose(),(a.length>0||this._providersChangedDuringRequest)&&(this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model)))})}static _copy(e,t,n,r,i){i=Math.min(i,n.length-r,e.length-t);for(let a=0;a<i;a++)n[r+a]=e[t+a]}_setDocumentSemanticTokens(t,n,r,i){let a=this._currentDocumentResponse,o=()=>{(i.length>0||this._providersChangedDuringRequest)&&!this._fetchDocumentSemanticTokens.isScheduled()&&this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))};if(this._currentDocumentResponse&&=(this._currentDocumentResponse.dispose(),null),this._isDisposed){t&&n&&t.releaseDocumentSemanticTokens(n.resultId);return}if(!t||!r){this._model.tokenization.setSemanticTokens(null,!1);return}if(!n){this._model.tokenization.setSemanticTokens(null,!0),o();return}if(Jk(n)){if(!a){this._model.tokenization.setSemanticTokens(null,!0);return}if(n.edits.length===0)n={resultId:n.resultId,data:a.data};else{let e=0;for(let t of n.edits)e+=(t.data?t.data.length:0)-t.deleteCount;let t=a.data,i=new Uint32Array(t.length+e),o=t.length,s=i.length;for(let e=n.edits.length-1;e>=0;e--){let c=n.edits[e];if(c.start>t.length){r.warnInvalidEditStart(a.resultId,n.resultId,e,c.start,t.length),this._model.tokenization.setSemanticTokens(null,!0);return}let l=o-(c.start+c.deleteCount);l>0&&(cA._copy(t,o-l,i,s-l,l),s-=l),c.data&&(cA._copy(c.data,0,i,s-c.data.length,c.data.length),s-=c.data.length),o=c.start}o>0&&cA._copy(t,0,i,0,o),n={resultId:n.resultId,data:i}}}if(qk(n)){this._currentDocumentResponse=new dA(t,n.resultId,n.data);let a=e.toMultilineTokens2(n,r,this._model.getLanguageId());if(i.length>0)for(let e of i)for(let t of a)for(let n of e.changes)t.applyEdit(n.range,n.text);this._model.tokenization.setSemanticTokens(a,!0)}else this._model.tokenization.setSemanticTokens(null,!0);o()}};uA=cA=oA([sA(1,e.ISemanticTokensStylingService),sA(2,e.IThemeService),sA(3,e.ILanguageFeatureDebounceService),sA(4,e.ILanguageFeaturesService)],uA);var dA=class{constructor(e,t,n){this.provider=e,this.resultId=t,this.data=n}dispose(){this.provider.releaseDocumentSemanticTokens(this.resultId)}};e.registerEditorFeature(lA);var fA=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},pA=function(e,t){return function(n,r){t(n,r,e)}},mA=class extends e.Disposable{static{this.ID=`editor.contrib.viewportSemanticTokens`}constructor(t,n,r,i,a,o){super(),this._semanticTokensStylingService=n,this._themeService=r,this._configurationService=i,this._editor=t,this._provider=o.documentRangeSemanticTokensProvider,this._debounceInformation=a.for(this._provider,`DocumentRangeSemanticTokens`,{min:100,max:500}),this._tokenizeViewport=this._register(new e.RunOnceScheduler(()=>this._tokenizeViewportNow(),100)),this._outstandingRequests=[];let s=()=>{this._editor.hasModel()&&this._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()))};this._register(this._editor.onDidScrollChange(()=>{s()})),this._register(this._editor.onDidChangeModel(()=>{this._cancelAll(),s()})),this._register(this._editor.onDidChangeModelContent(e=>{this._cancelAll(),s()})),this._register(this._provider.onDidChange(()=>{this._cancelAll(),s()})),this._register(this._configurationService.onDidChangeConfiguration(e=>{e.affectsConfiguration(`editor.semanticHighlighting`)&&(this._cancelAll(),s())})),this._register(this._themeService.onDidColorThemeChange(()=>{this._cancelAll(),s()})),s()}_cancelAll(){for(let e of this._outstandingRequests)e.cancel();this._outstandingRequests=[]}_removeOutstandingRequest(e){for(let t=0,n=this._outstandingRequests.length;t<n;t++)if(this._outstandingRequests[t]===e){this._outstandingRequests.splice(t,1);return}}_tokenizeViewportNow(){if(!this._editor.hasModel())return;let e=this._editor.getModel();if(e.tokenization.hasCompleteSemanticTokens())return;if(!aA(e,this._themeService,this._configurationService)){e.tokenization.hasSomeSemanticTokens()&&e.tokenization.setSemanticTokens(null,!1);return}if(!tA(this._provider,e)){e.tokenization.hasSomeSemanticTokens()&&e.tokenization.setSemanticTokens(null,!1);return}let t=this._editor.getVisibleRangesPlusViewportAboveBelow();this._outstandingRequests=this._outstandingRequests.concat(t.map(t=>this._requestRange(e,t)))}_requestRange(t,n){let r=t.getVersionId(),i=e.createCancelablePromise(e=>Promise.resolve(rA(this._provider,t,n,e))),a=new e.StopWatch(!1);return i.then(i=>{if(this._debounceInformation.update(t,a.elapsed()),!i||!i.tokens||t.isDisposed()||t.getVersionId()!==r)return;let{provider:o,tokens:s}=i,c=this._semanticTokensStylingService.getStyling(o);t.tokenization.setPartialSemanticTokens(n,e.toMultilineTokens2(s,c,t.getLanguageId()))}).then(()=>this._removeOutstandingRequest(i),()=>this._removeOutstandingRequest(i)),i}};mA=fA([pA(1,e.ISemanticTokensStylingService),pA(2,e.IThemeService),pA(3,e.IConfigurationService),pA(4,e.ILanguageFeatureDebounceService),pA(5,e.ILanguageFeaturesService)],mA),e.registerEditorContribution(mA.ID,mA,1);var hA=class{constructor(e=!0){this.selectSubwords=e}provideSelectionRanges(e,t){let n=[];for(let r of t){let t=[];n.push(t),this.selectSubwords&&this._addInWordRanges(t,e,r),this._addWordRanges(t,e,r),this._addWhitespaceLine(t,e,r),t.push({range:e.getFullModelRange()})}return n}_addInWordRanges(t,n,r){let i=n.getWordAtPosition(r);if(!i)return;let{word:a,startColumn:o}=i,s=r.column-o,c=s,l=s,u=0;for(;c>=0;c--){let t=a.charCodeAt(c);if(c!==s&&(t===95||t===45)||e.isLowerAsciiLetter(t)&&e.isUpperAsciiLetter(u))break;u=t}for(c+=1;l<a.length;l++){let t=a.charCodeAt(l);if(e.isUpperAsciiLetter(t)&&e.isLowerAsciiLetter(u)||t===95||t===45)break;u=t}c<l&&t.push({range:new e.Range$1(r.lineNumber,o+c,r.lineNumber,o+l)})}_addWordRanges(t,n,r){let i=n.getWordAtPosition(r);i&&t.push({range:new e.Range$1(r.lineNumber,i.startColumn,r.lineNumber,i.endColumn)})}_addWhitespaceLine(t,n,r){n.getLineLength(r.lineNumber)>0&&n.getLineFirstNonWhitespaceColumn(r.lineNumber)===0&&n.getLineLastNonWhitespaceColumn(r.lineNumber)===0&&t.push({range:new e.Range$1(r.lineNumber,1,r.lineNumber,n.getLineMaxColumn(r.lineNumber))})}},gA=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},_A=function(e,t){return function(n,r){t(n,r,e)}},vA,yA=class e{constructor(e,t){this.index=e,this.ranges=t}mov(t){let n=this.index+(t?1:-1);if(n<0||n>=this.ranges.length)return this;let r=new e(n,this.ranges);return r.ranges[n].equalsRange(this.ranges[this.index])?r.mov(t):r}},bA=class{static{vA=this}static{this.ID=`editor.contrib.smartSelectController`}static get(e){return e.getContribution(vA.ID)}constructor(e,t){this._editor=e,this._languageFeaturesService=t,this._ignoreSelection=!1}dispose(){this._selectionListener?.dispose()}async run(t){if(!this._editor.hasModel())return;let n=this._editor.getSelections(),r=this._editor.getModel();if(this._state||await wA(this._languageFeaturesService.selectionRangeProvider,r,n.map(e=>e.getPosition()),this._editor.getOption(114),e.CancellationToken.None).then(t=>{if(!(!e.isNonEmptyArray(t)||t.length!==n.length)&&!(!this._editor.hasModel()||!e.equals(this._editor.getSelections(),n,(e,t)=>e.equalsSelection(t)))){for(let e=0;e<t.length;e++)t[e]=t[e].filter(t=>t.containsPosition(n[e].getStartPosition())&&t.containsPosition(n[e].getEndPosition())),t[e].unshift(n[e]);this._state=t.map(e=>new yA(0,e)),this._selectionListener?.dispose(),this._selectionListener=this._editor.onDidChangeCursorPosition(()=>{this._ignoreSelection||(this._selectionListener?.dispose(),this._state=void 0)})}}),!this._state)return;this._state=this._state.map(e=>e.mov(t));let i=this._state.map(t=>e.Selection$1.fromPositions(t.ranges[t.index].getStartPosition(),t.ranges[t.index].getEndPosition()));this._ignoreSelection=!0;try{this._editor.setSelections(i)}finally{this._ignoreSelection=!1}}};bA=vA=gA([_A(1,e.ILanguageFeaturesService)],bA);var xA=class extends e.EditorAction{constructor(e,t){super(t),this._forward=e}async run(e,t){let n=bA.get(t);n&&await n.run(this._forward)}},SA=class extends xA{constructor(){super(!0,{id:`editor.action.smartSelect.expand`,label:e.localize(`smartSelect.expand`,`Expand Selection`),alias:`Expand Selection`,precondition:void 0,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:1553,mac:{primary:3345,secondary:[1297]},weight:100},menuOpts:{menuId:e.MenuId.MenubarSelectionMenu,group:`1_basic`,title:e.localize({key:`miSmartSelectGrow`,comment:[`&& denotes a mnemonic`]},`&&Expand Selection`),order:2}})}};e.CommandsRegistry.registerCommandAlias(`editor.action.smartSelect.grow`,`editor.action.smartSelect.expand`);var CA=class extends xA{constructor(){super(!1,{id:`editor.action.smartSelect.shrink`,label:e.localize(`smartSelect.shrink`,`Shrink Selection`),alias:`Shrink Selection`,precondition:void 0,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:1551,mac:{primary:3343,secondary:[1295]},weight:100},menuOpts:{menuId:e.MenuId.MenubarSelectionMenu,group:`1_basic`,title:e.localize({key:`miSmartSelectShrink`,comment:[`&& denotes a mnemonic`]},`&&Shrink Selection`),order:3}})}};e.registerEditorContribution(bA.ID,bA,4),e.registerEditorAction(SA),e.registerEditorAction(CA);async function wA(t,n,r,i,a){let o=t.all(n).concat(new hA(i.selectSubwords));o.length===1&&o.unshift(new WS);let s=[],c=[];for(let t of o)s.push(Promise.resolve(t.provideSelectionRanges(n,r,a)).then(t=>{if(e.isNonEmptyArray(t)&&t.length===r.length)for(let n=0;n<r.length;n++){c[n]||(c[n]=[]);for(let i of t[n])e.Range$1.isIRange(i.range)&&e.Range$1.containsPosition(i.range,r[n])&&c[n].push(e.Range$1.lift(i.range))}},e.onUnexpectedExternalError));return await Promise.all(s),c.map(t=>{if(t.length===0)return[];t.sort((t,n)=>e.Position$1.isBefore(t.getStartPosition(),n.getStartPosition())?1:e.Position$1.isBefore(n.getStartPosition(),t.getStartPosition())||e.Position$1.isBefore(t.getEndPosition(),n.getEndPosition())?-1:e.Position$1.isBefore(n.getEndPosition(),t.getEndPosition())?1:0);let r=[],a;for(let n of t)(!a||e.Range$1.containsRange(n,a)&&!e.Range$1.equalsRange(n,a))&&(r.push(n),a=n);if(!i.selectLeadingAndTrailingWhitespace)return r;let o=[r[0]];for(let t=1;t<r.length;t++){let i=r[t-1],a=r[t];if(a.startLineNumber!==i.startLineNumber||a.endLineNumber!==i.endLineNumber){let t=new e.Range$1(i.startLineNumber,n.getLineFirstNonWhitespaceColumn(i.startLineNumber),i.endLineNumber,n.getLineLastNonWhitespaceColumn(i.endLineNumber));t.containsRange(i)&&!t.equalsRange(i)&&a.containsRange(t)&&!a.equalsRange(t)&&o.push(t);let r=new e.Range$1(i.startLineNumber,1,i.endLineNumber,n.getLineMaxColumn(i.endLineNumber));r.containsRange(i)&&!r.equalsRange(t)&&a.containsRange(r)&&!a.equalsRange(r)&&o.push(r)}o.push(a)}return o})}e.CommandsRegistry.registerCommand(`_executeSelectionRangeProvider`,async function(t,...n){let[r,i]=n;e.assertType(e.URI.isUri(r));let a=t.get(e.ILanguageFeaturesService).selectionRangeProvider,o=await t.get(e.ITextModelService).createModelReference(r);try{return wA(a,o.object.textEditorModel,i,{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},e.CancellationToken.None)}finally{o.dispose()}});const TA=Object.freeze({View:e.localize2(`view`,`View`),Help:e.localize2(`help`,`Help`),Test:e.localize2(`test`,`Test`),File:e.localize2(`file`,`File`),Preferences:e.localize2(`preferences`,`Preferences`),Developer:e.localize2({key:`developer`,comment:[`A developer on Code itself or someone diagnosing issues in Code`]},`Developer`)});var EA=class t{constructor(e,t,n,r=null){this.startLineNumbers=e,this.endLineNumbers=t,this.lastLineRelativePosition=n,this.showEndForLine=r}equals(t){return!!t&&this.lastLineRelativePosition===t.lastLineRelativePosition&&this.showEndForLine===t.showEndForLine&&e.equals(this.startLineNumbers,t.startLineNumbers)&&e.equals(this.endLineNumbers,t.endLineNumbers)}static get Empty(){return new t([],[],0)}},DA=e.createTrustedTypesPolicy(`stickyScrollViewLayer`,{createHTML:e=>e}),OA=`data-sticky-line-index`,kA=`data-sticky-is-line`,AA=`data-sticky-is-line-number`,jA=`data-sticky-is-folding-icon`,MA=class extends e.Disposable{constructor(t){super(),this._editor=t,this._foldingIconStore=new e.DisposableStore,this._rootDomNode=document.createElement(`div`),this._lineNumbersDomNode=document.createElement(`div`),this._linesDomNodeScrollable=document.createElement(`div`),this._linesDomNode=document.createElement(`div`),this._lineHeight=this._editor.getOption(67),this._renderedStickyLines=[],this._lineNumbers=[],this._lastLineRelativePosition=0,this._minContentWidthInPx=0,this._isOnGlyphMargin=!1,this._lineNumbersDomNode.className=`sticky-widget-line-numbers`,this._lineNumbersDomNode.setAttribute(`role`,`none`),this._linesDomNode.className=`sticky-widget-lines`,this._linesDomNode.setAttribute(`role`,`list`),this._linesDomNodeScrollable.className=`sticky-widget-lines-scrollable`,this._linesDomNodeScrollable.appendChild(this._linesDomNode),this._rootDomNode.className=`sticky-widget`,this._rootDomNode.classList.toggle(`peek`,t instanceof zm),this._rootDomNode.appendChild(this._lineNumbersDomNode),this._rootDomNode.appendChild(this._linesDomNodeScrollable);let n=()=>{this._linesDomNode.style.left=this._editor.getOption(116).scrollWithEditor?`-${this._editor.getScrollLeft()}px`:`0px`};this._register(this._editor.onDidChangeConfiguration(e=>{e.hasChanged(116)&&n(),e.hasChanged(67)&&(this._lineHeight=this._editor.getOption(67))})),this._register(this._editor.onDidScrollChange(e=>{e.scrollLeftChanged&&n(),e.scrollWidthChanged&&this._updateWidgetWidth()})),this._register(this._editor.onDidChangeModel(()=>{n(),this._updateWidgetWidth()})),this._register(this._foldingIconStore),n(),this._register(this._editor.onDidLayoutChange(e=>{this._updateWidgetWidth()})),this._updateWidgetWidth()}get lineNumbers(){return this._lineNumbers}get lineNumberCount(){return this._lineNumbers.length}getRenderedStickyLine(e){return this._renderedStickyLines.find(t=>t.lineNumber===e)}getCurrentLines(){return this._lineNumbers}setState(e,t,n){if(n===void 0&&(!this._previousState&&!e||this._previousState&&this._previousState.equals(e)))return;let r=this._isWidgetHeightZero(e),i=r?void 0:e,a=r?0:this._findLineToRebuildWidgetFrom(e,n);this._renderRootNode(i,t,a),this._previousState=e}_isWidgetHeightZero(e){if(!e)return!0;let t=e.startLineNumbers.length*this._lineHeight+e.lastLineRelativePosition;if(t>0){this._lastLineRelativePosition=e.lastLineRelativePosition;let t=[...e.startLineNumbers];e.showEndForLine!==null&&(t[e.showEndForLine]=e.endLineNumbers[e.showEndForLine]),this._lineNumbers=t}else this._lastLineRelativePosition=0,this._lineNumbers=[];return t===0}_findLineToRebuildWidgetFrom(e,t){if(!e||!this._previousState)return 0;if(t!==void 0)return t;let n=this._previousState,r=e.startLineNumbers.findIndex(e=>!n.startLineNumbers.includes(e));return r===-1?0:r}_updateWidgetWidth(){let e=this._editor.getLayoutInfo(),t=e.contentLeft;this._lineNumbersDomNode.style.width=`${t}px`,this._linesDomNodeScrollable.style.setProperty(`--vscode-editorStickyScroll-scrollableWidth`,`${this._editor.getScrollWidth()-e.verticalScrollbarWidth}px`),this._rootDomNode.style.width=`${e.width-e.verticalScrollbarWidth}px`}_clearStickyLinesFromLine(e){this._foldingIconStore.clear();for(let t=e;t<this._renderedStickyLines.length;t++){let e=this._renderedStickyLines[t];e.lineNumberDomNode.remove(),e.lineDomNode.remove()}this._renderedStickyLines=this._renderedStickyLines.slice(0,e),this._rootDomNode.style.display=`none`}_useFoldingOpacityTransition(e){this._lineNumbersDomNode.style.setProperty(`--vscode-editorStickyScroll-foldingOpacityTransition`,`opacity ${e?.5:0}s`)}_setFoldingIconsVisibility(e){for(let t of this._renderedStickyLines){let n=t.foldingIcon;n&&n.setVisible(e?!0:n.isCollapsed)}}async _renderRootNode(e,t,n){if(this._clearStickyLinesFromLine(n),!e)return;for(let e of this._renderedStickyLines)this._updateTopAndZIndexOfStickyLine(e);let r=this._editor.getLayoutInfo(),i=this._lineNumbers.slice(n);for(let[e,a]of i.entries()){let i=this._renderChildNode(e+n,a,t,r);i&&(this._linesDomNode.appendChild(i.lineDomNode),this._lineNumbersDomNode.appendChild(i.lineNumberDomNode),this._renderedStickyLines.push(i))}t&&(this._setFoldingHoverListeners(),this._useFoldingOpacityTransition(!this._isOnGlyphMargin));let a=this._lineNumbers.length*this._lineHeight+this._lastLineRelativePosition;this._rootDomNode.style.display=`block`,this._lineNumbersDomNode.style.height=`${a}px`,this._linesDomNodeScrollable.style.height=`${a}px`,this._rootDomNode.style.height=`${a}px`,this._rootDomNode.style.marginLeft=`0px`,this._minContentWidthInPx=Math.max(...this._renderedStickyLines.map(e=>e.scrollWidth))+r.verticalScrollbarWidth,this._editor.layoutOverlayWidget(this)}_setFoldingHoverListeners(){this._editor.getOption(111)===`mouseover`&&(this._foldingIconStore.add(e.addDisposableListener(this._lineNumbersDomNode,e.EventType$1.MOUSE_ENTER,()=>{this._isOnGlyphMargin=!0,this._setFoldingIconsVisibility(!0)})),this._foldingIconStore.add(e.addDisposableListener(this._lineNumbersDomNode,e.EventType$1.MOUSE_LEAVE,()=>{this._isOnGlyphMargin=!1,this._useFoldingOpacityTransition(!0),this._setFoldingIconsVisibility(!1)})))}_renderChildNode(t,n,r,i){let a=this._editor._getViewModel();if(!a)return;let o=a.coordinatesConverter.convertModelPositionToViewPosition(new e.Position$1(n,1)).lineNumber,s=a.getViewLineRenderingData(o),c=this._editor.getOption(68),l;try{l=e.LineDecoration.filter(s.inlineDecorations,o,s.minColumn,s.maxColumn)}catch{l=[]}let u=new e.RenderLineInput(!0,!0,s.content,s.continuesWithWrappedLine,s.isBasicASCII,s.containsRTL,0,s.tokens,l,s.tabSize,s.startVisibleColumn,1,1,1,500,`none`,!0,!0,null),d=new e.StringBuilder(2e3),f=e.renderViewLine(u,d),p;p=DA?DA.createHTML(d.build()):d.build();let m=document.createElement(`span`);m.setAttribute(OA,String(t)),m.setAttribute(kA,``),m.setAttribute(`role`,`listitem`),m.tabIndex=0,m.className=`sticky-line-content`,m.classList.add(`stickyLine${n}`),m.style.lineHeight=`${this._lineHeight}px`,m.innerHTML=p;let h=document.createElement(`span`);h.setAttribute(OA,String(t)),h.setAttribute(AA,``),h.className=`sticky-line-number`,h.style.lineHeight=`${this._lineHeight}px`;let g=i.contentLeft;h.style.width=`${g}px`;let _=document.createElement(`span`);c.renderType===1||c.renderType===3&&n%10==0?_.innerText=n.toString():c.renderType===2&&(_.innerText=Math.abs(n-this._editor.getPosition().lineNumber).toString()),_.className=`sticky-line-number-inner`,_.style.lineHeight=`${this._lineHeight}px`,_.style.width=`${i.lineNumbersWidth}px`,_.style.paddingLeft=`${i.lineNumbersLeft}px`,h.appendChild(_);let v=this._renderFoldingIconForLine(r,n);v&&h.appendChild(v.domNode),this._editor.applyFontInfo(m),this._editor.applyFontInfo(_),h.style.lineHeight=`${this._lineHeight}px`,m.style.lineHeight=`${this._lineHeight}px`,h.style.height=`${this._lineHeight}px`,m.style.height=`${this._lineHeight}px`;let y=new NA(t,n,m,h,v,f.characterMapping,m.scrollWidth);return this._updateTopAndZIndexOfStickyLine(y)}_updateTopAndZIndexOfStickyLine(e){let t=e.index,n=e.lineDomNode,r=e.lineNumberDomNode,i=t===this._lineNumbers.length-1;n.style.zIndex=i?`0`:`1`,r.style.zIndex=i?`0`:`1`;let a=`${t*this._lineHeight+this._lastLineRelativePosition+(e.foldingIcon?.isCollapsed?1:0)}px`,o=`${t*this._lineHeight}px`;return n.style.top=i?a:o,r.style.top=i?a:o,e}_renderFoldingIconForLine(e,t){let n=this._editor.getOption(111);if(!e||n===`never`)return;let r=e.regions,i=r.findRange(t),a=r.getStartLineNumber(i);if(t!==a)return;let o=r.isCollapsed(i),s=new PA(o,a,r.getEndLineNumber(i),this._lineHeight);return s.setVisible(this._isOnGlyphMargin?!0:o||n===`always`),s.domNode.setAttribute(jA,``),s}getId(){return`editor.contrib.stickyScrollWidget`}getDomNode(){return this._rootDomNode}getPosition(){return{preference:2,stackOridinal:10}}getMinContentWidthInPx(){return this._minContentWidthInPx}focusLineWithIndex(e){0<=e&&e<this._renderedStickyLines.length&&this._renderedStickyLines[e].lineDomNode.focus()}getEditorPositionFromNode(t){if(!t||t.children.length>0)return null;let n=this._getRenderedStickyLineFromChildDomNode(t);if(!n)return null;let r=e.getColumnOfNodeOffset(n.characterMapping,t,0);return new e.Position$1(n.lineNumber,r)}getLineNumberFromChildDomNode(e){return this._getRenderedStickyLineFromChildDomNode(e)?.lineNumber??null}_getRenderedStickyLineFromChildDomNode(e){let t=this.getLineIndexFromChildDomNode(e);return t===null||t<0||t>=this._renderedStickyLines.length?null:this._renderedStickyLines[t]}getLineIndexFromChildDomNode(e){let t=this._getAttributeValue(e,OA);return t?parseInt(t,10):null}isInStickyLine(e){return this._getAttributeValue(e,kA)!==void 0}isInFoldingIconDomNode(e){return this._getAttributeValue(e,jA)!==void 0}_getAttributeValue(e,t){for(;e&&e!==this._rootDomNode;){let n=e.getAttribute(t);if(n!==null)return n;e=e.parentElement}}},NA=class{constructor(e,t,n,r,i,a,o){this.index=e,this.lineNumber=t,this.lineDomNode=n,this.lineNumberDomNode=r,this.foldingIcon=i,this.characterMapping=a,this.scrollWidth=o}},PA=class{constructor(t,n,r,i){this.isCollapsed=t,this.foldingStartLine=n,this.foldingEndLine=r,this.dimension=i,this.domNode=document.createElement(`div`),this.domNode.style.width=`${i}px`,this.domNode.style.height=`${i}px`,this.domNode.className=e.ThemeIcon.asClassName(t?Hy:Vy)}setVisible(e){this.domNode.style.cursor=e?`pointer`:`default`,this.domNode.style.opacity=e?`1`:`0`}},FA=class{constructor(e,t){this.startLineNumber=e,this.endLineNumber=t}},IA=class{constructor(e,t,n){this.range=e,this.children=t,this.parent=n}},LA=class{constructor(e,t,n,r){this.uri=e,this.version=t,this.element=n,this.outlineProviderId=r}},RA=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},zA=function(e,t){return function(n,r){t(n,r,e)}},BA;(function(e){e.OUTLINE_MODEL=`outlineModel`,e.FOLDING_PROVIDER_MODEL=`foldingProviderModel`,e.INDENTATION_MODEL=`indentationModel`})(BA||={});var VA;(function(e){e[e.VALID=0]=`VALID`,e[e.INVALID=1]=`INVALID`,e[e.CANCELED=2]=`CANCELED`})(VA||={});var HA=class extends e.Disposable{constructor(t,n,r,i){switch(super(),this._editor=t,this._modelProviders=[],this._modelPromise=null,this._updateScheduler=this._register(new e.Delayer(300)),this._updateOperation=this._register(new e.DisposableStore),this._editor.getOption(116).defaultModel){case BA.OUTLINE_MODEL:this._modelProviders.push(new WA(this._editor,i));case BA.FOLDING_PROVIDER_MODEL:this._modelProviders.push(new qA(this._editor,n,i));case BA.INDENTATION_MODEL:this._modelProviders.push(new KA(this._editor,r));break}}dispose(){this._modelProviders.forEach(e=>e.dispose()),this._updateOperation.clear(),this._cancelModelPromise(),super.dispose()}_cancelModelPromise(){this._modelPromise&&=(this._modelPromise.cancel(),null)}async update(t){return this._updateOperation.clear(),this._updateOperation.add({dispose:()=>{this._cancelModelPromise(),this._updateScheduler.cancel()}}),this._cancelModelPromise(),await this._updateScheduler.trigger(async()=>{for(let e of this._modelProviders){let{statusPromise:n,modelPromise:r}=e.computeStickyModel(t);this._modelPromise=r;let i=await n;if(this._modelPromise!==r)return null;switch(i){case VA.CANCELED:return this._updateOperation.clear(),null;case VA.VALID:return e.stickyModel}}return null}).catch(t=>(e.onUnexpectedError(t),null))}};HA=RA([zA(2,e.IInstantiationService),zA(3,e.ILanguageFeaturesService)],HA);var UA=class extends e.Disposable{constructor(e){super(),this._editor=e,this._stickyModel=null}get stickyModel(){return this._stickyModel}_invalid(){return this._stickyModel=null,VA.INVALID}computeStickyModel(t){if(t.isCancellationRequested||!this.isProviderValid())return{statusPromise:this._invalid(),modelPromise:null};let n=e.createCancelablePromise(e=>this.createModelFromProvider(e));return{statusPromise:n.then(e=>this.isModelValid(e)?t.isCancellationRequested?VA.CANCELED:(this._stickyModel=this.createStickyModel(t,e),VA.VALID):this._invalid()).then(void 0,t=>(e.onUnexpectedError(t),VA.CANCELED)),modelPromise:n}}isModelValid(e){return!0}isProviderValid(){return!0}},WA=class extends UA{constructor(e,t){super(e),this._languageFeaturesService=t}createModelFromProvider(e){return Vb.create(this._languageFeaturesService.documentSymbolProvider,this._editor.getModel(),e)}createStickyModel(e,t){let{stickyOutlineElement:n,providerID:r}=this._stickyModelFromOutlineModel(t,this._stickyModel?.outlineProviderId),i=this._editor.getModel();return new LA(i.uri,i.getVersionId(),n,r)}isModelValid(e){return e&&e.children.size>0}_stickyModelFromOutlineModel(t,n){let r;if(e.Iterable.first(t.children.values())instanceof Bb){let i=e.Iterable.find(t.children.values(),e=>e.id===n);if(i)r=i.children;else{let e=``,i=-1,a;for(let[n,r]of t.children.entries()){let t=this._findSumOfRangesOfGroup(r);t>i&&(a=r,i=t,e=r.id)}n=e,r=a.children}}else r=t.children;let i=[],a=Array.from(r.values()).sort((e,t)=>{let n=new FA(e.symbol.range.startLineNumber,e.symbol.range.endLineNumber),r=new FA(t.symbol.range.startLineNumber,t.symbol.range.endLineNumber);return this._comparator(n,r)});for(let e of a)i.push(this._stickyModelFromOutlineElement(e,e.symbol.selectionRange.startLineNumber));return{stickyOutlineElement:new IA(void 0,i,void 0),providerID:n}}_stickyModelFromOutlineElement(e,t){let n=[];for(let r of e.children.values())if(r.symbol.selectionRange.startLineNumber!==r.symbol.range.endLineNumber)if(r.symbol.selectionRange.startLineNumber!==t)n.push(this._stickyModelFromOutlineElement(r,r.symbol.selectionRange.startLineNumber));else for(let e of r.children.values())n.push(this._stickyModelFromOutlineElement(e,r.symbol.selectionRange.startLineNumber));n.sort((e,t)=>this._comparator(e.range,t.range));let r=new FA(e.symbol.selectionRange.startLineNumber,e.symbol.range.endLineNumber);return new IA(r,n,void 0)}_comparator(e,t){return e.startLineNumber===t.startLineNumber?t.endLineNumber-e.endLineNumber:e.startLineNumber-t.startLineNumber}_findSumOfRangesOfGroup(e){let t=0;for(let n of e.children.values())t+=this._findSumOfRangesOfGroup(n);return e instanceof zb?t+e.symbol.range.endLineNumber-e.symbol.selectionRange.startLineNumber:t}};WA=RA([zA(1,e.ILanguageFeaturesService)],WA);var GA=class extends UA{constructor(e){super(e),this._foldingLimitReporter=new ab(e)}createStickyModel(e,t){let n=this._fromFoldingRegions(t),r=this._editor.getModel();return new LA(r.uri,r.getVersionId(),n,void 0)}isModelValid(e){return e!==null}_fromFoldingRegions(e){let t=e.length,n=[],r=new IA(void 0,[],void 0);for(let i=0;i<t;i++){let t=e.getParentIndex(i),a;a=t===-1?r:n[t];let o=new IA(new FA(e.getStartLineNumber(i),e.getEndLineNumber(i)+1),[],a);a.children.push(o),n.push(o)}return r}},KA=class extends GA{constructor(e,t){super(e),this._languageConfigurationService=t,this.provider=this._register(new Iy(e.getModel(),this._languageConfigurationService,this._foldingLimitReporter))}async createModelFromProvider(e){return this.provider.compute(e)}};KA=RA([zA(1,e.ILanguageConfigurationService)],KA);var qA=class extends GA{constructor(e,t,n){super(e),this._languageFeaturesService=n;let r=ib.getFoldingRangeProviders(this._languageFeaturesService,e.getModel());r.length>0&&(this.provider=this._register(new Zy(e.getModel(),r,t,this._foldingLimitReporter,void 0)))}isProviderValid(){return this.provider!==void 0}async createModelFromProvider(e){return this.provider?.compute(e)??null}};qA=RA([zA(2,e.ILanguageFeaturesService)],qA);var JA=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},YA=function(e,t){return function(n,r){t(n,r,e)}},XA=class{constructor(e,t,n){this.startLineNumber=e,this.endLineNumber=t,this.nestingDepth=n}},ZA=class extends e.Disposable{constructor(t,n,r){super(),this._languageFeaturesService=n,this._languageConfigurationService=r,this._onDidChangeStickyScroll=this._register(new e.Emitter$1),this.onDidChangeStickyScroll=this._onDidChangeStickyScroll.event,this._model=null,this._cts=null,this._stickyModelProvider=null,this._editor=t,this._sessionStore=this._register(new e.DisposableStore),this._updateSoon=this._register(new e.RunOnceScheduler(()=>this.update(),50)),this._register(this._editor.onDidChangeConfiguration(e=>{e.hasChanged(116)&&this.readConfiguration()})),this.readConfiguration()}readConfiguration(){this._sessionStore.clear(),this._editor.getOption(116).enabled&&(this._sessionStore.add(this._editor.onDidChangeModel(()=>{this._model=null,this.updateStickyModelProvider(),this._onDidChangeStickyScroll.fire(),this.update()})),this._sessionStore.add(this._editor.onDidChangeHiddenAreas(()=>this.update())),this._sessionStore.add(this._editor.onDidChangeModelContent(()=>this._updateSoon.schedule())),this._sessionStore.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>this.update())),this._sessionStore.add(e.toDisposable(()=>{this._stickyModelProvider?.dispose(),this._stickyModelProvider=null})),this.updateStickyModelProvider(),this.update())}getVersionId(){return this._model?.version}updateStickyModelProvider(){this._stickyModelProvider?.dispose(),this._stickyModelProvider=null;let e=this._editor;e.hasModel()&&(this._stickyModelProvider=new HA(e,()=>this._updateSoon.schedule(),this._languageConfigurationService,this._languageFeaturesService))}async update(){this._cts?.dispose(!0),this._cts=new e.CancellationTokenSource$1,await this.updateStickyModel(this._cts.token),this._onDidChangeStickyScroll.fire()}async updateStickyModel(e){if(!this._editor.hasModel()||!this._stickyModelProvider||this._editor.getModel().isTooLargeForTokenization()){this._model=null;return}let t=await this._stickyModelProvider.update(e);e.isCancellationRequested||(this._model=t)}updateIndex(e){return e===-1?e=0:e<0&&(e=-e-2),e}getCandidateStickyLinesIntersectingFromStickyModel(t,n,r,i,a){if(n.children.length===0)return;let o=a,s=[];for(let e=0;e<n.children.length;e++){let t=n.children[e];t.range&&s.push(t.range.startLineNumber)}let c=this.updateIndex(e.binarySearch(s,t.startLineNumber,(e,t)=>e-t)),l=this.updateIndex(e.binarySearch(s,t.startLineNumber+i,(e,t)=>e-t));for(let e=c;e<=l;e++){let s=n.children[e];if(!s)return;if(s.range){let e=s.range.startLineNumber,n=s.range.endLineNumber;t.startLineNumber<=n+1&&e-1<=t.endLineNumber&&e!==o&&(o=e,r.push(new XA(e,n-1,i+1)),this.getCandidateStickyLinesIntersectingFromStickyModel(t,s,r,i+1,e))}else this.getCandidateStickyLinesIntersectingFromStickyModel(t,s,r,i,a)}}getCandidateStickyLinesIntersecting(e){if(!this._model?.element)return[];let t=[];this.getCandidateStickyLinesIntersectingFromStickyModel(e,this._model.element,t,0,-1);let n=this._editor._getViewModel()?.getHiddenAreas();if(n)for(let e of n)t=t.filter(t=>!(t.startLineNumber>=e.startLineNumber&&t.endLineNumber<=e.endLineNumber+1));return t}};ZA=JA([YA(1,e.ILanguageFeaturesService),YA(2,e.ILanguageConfigurationService)],ZA);var QA=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},$A=function(e,t){return function(n,r){t(n,r,e)}},ej,tj=class extends e.Disposable{static{ej=this}static{this.ID=`store.contrib.stickyScrollController`}constructor(t,n,r,i,a,o,s){super(),this._editor=t,this._contextMenuService=n,this._languageFeaturesService=r,this._instaService=i,this._contextKeyService=s,this._sessionStore=new e.DisposableStore,this._maxStickyLines=2**53-1,this._candidateDefinitionsLength=-1,this._focusedStickyElementIndex=-1,this._enabled=!1,this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1,this._endLineNumbers=[],this._stickyScrollWidget=new MA(this._editor),this._stickyLineCandidateProvider=new ZA(this._editor,r,a),this._register(this._stickyScrollWidget),this._register(this._stickyLineCandidateProvider),this._widgetState=EA.Empty,this._onDidResize(),this._readConfiguration();let c=this._stickyScrollWidget.getDomNode();this._register(this._editor.onDidChangeConfiguration(e=>{this._readConfigurationChange(e)})),this._register(e.addDisposableListener(c,e.EventType$1.CONTEXT_MENU,async t=>{this._onContextMenu(e.getWindow(c),t)})),this._stickyScrollFocusedContextKey=e.EditorContextKeys.stickyScrollFocused.bindTo(this._contextKeyService),this._stickyScrollVisibleContextKey=e.EditorContextKeys.stickyScrollVisible.bindTo(this._contextKeyService);let l=this._register(e.trackFocus(c));this._register(l.onDidBlur(e=>{this._positionRevealed===!1&&c.clientHeight===0?(this._focusedStickyElementIndex=-1,this.focus()):this._disposeFocusStickyScrollStore()})),this._register(l.onDidFocus(e=>{this.focus()})),this._registerMouseListeners(),this._register(e.addDisposableListener(c,e.EventType$1.MOUSE_DOWN,e=>{this._onMouseDown=!0}))}static get(e){return e.getContribution(ej.ID)}_disposeFocusStickyScrollStore(){this._stickyScrollFocusedContextKey.set(!1),this._focusDisposableStore?.dispose(),this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1}focus(){if(this._onMouseDown){this._onMouseDown=!1,this._editor.focus();return}this._stickyScrollFocusedContextKey.get()!==!0&&(this._focused=!0,this._focusDisposableStore=new e.DisposableStore,this._stickyScrollFocusedContextKey.set(!0),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumbers.length-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}focusNext(){this._focusedStickyElementIndex<this._stickyScrollWidget.lineNumberCount-1&&this._focusNav(!0)}focusPrevious(){this._focusedStickyElementIndex>0&&this._focusNav(!1)}selectEditor(){this._editor.focus()}_focusNav(e){this._focusedStickyElementIndex=e?this._focusedStickyElementIndex+1:this._focusedStickyElementIndex-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}goToFocused(){let e=this._stickyScrollWidget.lineNumbers;this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:e[this._focusedStickyElementIndex],column:1})}_revealPosition(e){this._reveaInEditor(e,()=>this._editor.revealPosition(e))}_revealLineInCenterIfOutsideViewport(e){this._reveaInEditor(e,()=>this._editor.revealLineInCenterIfOutsideViewport(e.lineNumber,0))}_reveaInEditor(t,n){this._focused&&this._disposeFocusStickyScrollStore(),this._positionRevealed=!0,n(),this._editor.setSelection(e.Range$1.fromPositions(t)),this._editor.focus()}_registerMouseListeners(){let t=this._register(new e.DisposableStore),n=this._register(new Mm(this._editor,{extractLineNumberFromMouseEvent:e=>{let t=this._stickyScrollWidget.getEditorPositionFromNode(e.target.element);return t?t.lineNumber:0}})),r=t=>{if(!this._editor.hasModel()||t.target.type!==12||t.target.detail!==this._stickyScrollWidget.getId())return null;let n=t.target.element;if(!n||n.innerText!==n.innerHTML)return null;let r=this._stickyScrollWidget.getEditorPositionFromNode(n);return r?{range:new e.Range$1(r.lineNumber,r.column,r.lineNumber,r.column+n.innerText.length),textElement:n}:null},i=this._stickyScrollWidget.getDomNode();this._register(e.addStandardDisposableListener(i,e.EventType$1.CLICK,t=>{if(t.ctrlKey||t.altKey||t.metaKey||!t.leftButton)return;if(t.shiftKey){let n=this._stickyScrollWidget.getLineIndexFromChildDomNode(t.target);if(n===null)return;let r=new e.Position$1(this._endLineNumbers[n],1);this._revealLineInCenterIfOutsideViewport(r);return}if(this._stickyScrollWidget.isInFoldingIconDomNode(t.target)){let e=this._stickyScrollWidget.getLineNumberFromChildDomNode(t.target);this._toggleFoldingRegionForLine(e);return}if(!this._stickyScrollWidget.isInStickyLine(t.target))return;let n=this._stickyScrollWidget.getEditorPositionFromNode(t.target);if(!n){let r=this._stickyScrollWidget.getLineNumberFromChildDomNode(t.target);if(r===null)return;n=new e.Position$1(r,1)}this._revealPosition(n)})),this._register(e.addStandardDisposableListener(i,e.EventType$1.MOUSE_MOVE,e=>{if(e.shiftKey){let t=this._stickyScrollWidget.getLineIndexFromChildDomNode(e.target);if(t===null||this._showEndForLine!==null&&this._showEndForLine===t)return;this._showEndForLine=t,this._renderStickyScroll();return}this._showEndForLine!==void 0&&(this._showEndForLine=void 0,this._renderStickyScroll())})),this._register(e.addDisposableListener(i,e.EventType$1.MOUSE_LEAVE,e=>{this._showEndForLine!==void 0&&(this._showEndForLine=void 0,this._renderStickyScroll())})),this._register(n.onMouseMoveOrRelevantKeyDown(([n,i])=>{let a=r(n);if(!a||!n.hasTriggerModifier||!this._editor.hasModel()){t.clear();return}let{range:o,textElement:s}=a;if(!o.equalsRange(this._stickyRangeProjectedOnEditor))this._stickyRangeProjectedOnEditor=o,t.clear();else if(s.style.textDecoration===`underline`)return;let c=new e.CancellationTokenSource$1;t.add(e.toDisposable(()=>c.dispose(!0)));let l;Qh(this._languageFeaturesService.definitionProvider,this._editor.getModel(),new e.Position$1(o.startLineNumber,o.startColumn+1),!1,c.token).then((n=>{if(!c.token.isCancellationRequested)if(n.length!==0){this._candidateDefinitionsLength=n.length;let r=s;l===r?l||(l=r,l.style.textDecoration=`underline`,t.add(e.toDisposable(()=>{l.style.textDecoration=`none`}))):(t.clear(),l=r,l.style.textDecoration=`underline`,t.add(e.toDisposable(()=>{l.style.textDecoration=`none`})))}else t.clear()}))})),this._register(n.onCancel(()=>{t.clear()})),this._register(n.onExecute(async e=>{if(e.target.type!==12||e.target.detail!==this._stickyScrollWidget.getId())return;let t=this._stickyScrollWidget.getEditorPositionFromNode(e.target.element);t&&(!this._editor.hasModel()||!this._stickyRangeProjectedOnEditor||(this._candidateDefinitionsLength>1&&(this._focused&&this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:t.lineNumber,column:1})),this._instaService.invokeFunction(pg,e,this._editor,{uri:this._editor.getModel().uri,range:this._stickyRangeProjectedOnEditor})))}))}_onContextMenu(t,n){let r=new e.StandardMouseEvent(t,n);this._contextMenuService.showContextMenu({menuId:e.MenuId.StickyScrollContext,getAnchor:()=>r})}_toggleFoldingRegionForLine(e){if(!this._foldingModel||e===null)return;let t=this._stickyScrollWidget.getRenderedStickyLine(e),n=t?.foldingIcon;if(!n)return;by(this._foldingModel,Number.MAX_VALUE,[e]),n.isCollapsed=!n.isCollapsed;let r=(n.isCollapsed?this._editor.getTopForLineNumber(n.foldingEndLine):this._editor.getTopForLineNumber(n.foldingStartLine))-this._editor.getOption(67)*t.index+1;this._editor.setScrollTop(r),this._renderStickyScroll(e)}_readConfiguration(){let e=this._editor.getOption(116);if(e.enabled===!1){this._editor.removeOverlayWidget(this._stickyScrollWidget),this._sessionStore.clear(),this._enabled=!1;return}else e.enabled&&!this._enabled&&(this._editor.addOverlayWidget(this._stickyScrollWidget),this._sessionStore.add(this._editor.onDidScrollChange(e=>{e.scrollTopChanged&&(this._showEndForLine=void 0,this._renderStickyScroll())})),this._sessionStore.add(this._editor.onDidLayoutChange(()=>this._onDidResize())),this._sessionStore.add(this._editor.onDidChangeModelTokens(e=>this._onTokensChange(e))),this._sessionStore.add(this._stickyLineCandidateProvider.onDidChangeStickyScroll(()=>{this._showEndForLine=void 0,this._renderStickyScroll()})),this._enabled=!0);this._editor.getOption(68).renderType===2&&this._sessionStore.add(this._editor.onDidChangeCursorPosition(()=>{this._showEndForLine=void 0,this._renderStickyScroll(0)}))}_readConfigurationChange(e){(e.hasChanged(116)||e.hasChanged(73)||e.hasChanged(67)||e.hasChanged(111)||e.hasChanged(68))&&this._readConfiguration(),e.hasChanged(68)&&this._renderStickyScroll(0)}_needsUpdate(e){let t=this._stickyScrollWidget.getCurrentLines();for(let n of t)for(let t of e.ranges)if(n>=t.fromLineNumber&&n<=t.toLineNumber)return!0;return!1}_onTokensChange(e){this._needsUpdate(e)&&this._renderStickyScroll(0)}_onDidResize(){let e=this._editor.getLayoutInfo().height/this._editor.getOption(67);this._maxStickyLines=Math.round(e*.25)}async _renderStickyScroll(e){let t=this._editor.getModel();if(!t||t.isTooLargeForTokenization()){this._resetState();return}let n=this._updateAndGetMinRebuildFromLine(e),r=this._stickyLineCandidateProvider.getVersionId();if(r===void 0||r===t.getVersionId())if(!this._focused)await this._updateState(n);else if(this._focusedStickyElementIndex===-1)await this._updateState(n),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1,this._focusedStickyElementIndex!==-1&&this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex);else{let e=this._stickyScrollWidget.lineNumbers[this._focusedStickyElementIndex];await this._updateState(n),this._stickyScrollWidget.lineNumberCount===0?this._focusedStickyElementIndex=-1:(this._stickyScrollWidget.lineNumbers.includes(e)||(this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1),this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}}_updateAndGetMinRebuildFromLine(e){if(e!==void 0){let t=this._minRebuildFromLine===void 0?1/0:this._minRebuildFromLine;this._minRebuildFromLine=Math.min(e,t)}return this._minRebuildFromLine}async _updateState(e){this._minRebuildFromLine=void 0,this._foldingModel=await ib.get(this._editor)?.getFoldingModel()??void 0,this._widgetState=this.findScrollWidgetState();let t=this._widgetState.startLineNumbers.length>0;this._stickyScrollVisibleContextKey.set(t),this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,e)}async _resetState(){this._minRebuildFromLine=void 0,this._foldingModel=void 0,this._widgetState=EA.Empty,this._stickyScrollVisibleContextKey.set(!1),this._stickyScrollWidget.setState(void 0,void 0)}findScrollWidgetState(){let e=this._editor.getOption(67),t=Math.min(this._maxStickyLines,this._editor.getOption(116).maxLineCount),n=this._editor.getScrollTop(),r=0,i=[],a=[],o=this._editor.getVisibleRanges();if(o.length!==0){let s=new FA(o[0].startLineNumber,o[o.length-1].endLineNumber),c=this._stickyLineCandidateProvider.getCandidateStickyLinesIntersecting(s);for(let o of c){let s=o.startLineNumber,c=o.endLineNumber,l=o.nestingDepth;if(c-s>0){let o=(l-1)*e,u=l*e,d=this._editor.getBottomForLineNumber(s)-n,f=this._editor.getTopForLineNumber(c)-n,p=this._editor.getBottomForLineNumber(c)-n;if(o>f&&o<=p){i.push(s),a.push(c+1),r=p-u;break}else u>d&&u<=p&&(i.push(s),a.push(c+1));if(i.length===t)break}}}return this._endLineNumbers=a,new EA(i,a,r,this._showEndForLine)}dispose(){super.dispose(),this._sessionStore.dispose()}};tj=ej=QA([$A(1,e.IContextMenuService),$A(2,e.ILanguageFeaturesService),$A(3,e.IInstantiationService),$A(4,e.ILanguageConfigurationService),$A(5,e.ILanguageFeatureDebounceService),$A(6,e.IContextKeyService)],tj);var nj=class extends e.Action2{constructor(){super({id:`editor.action.toggleStickyScroll`,title:{...e.localize2(`toggleEditorStickyScroll`,`Toggle Editor Sticky Scroll`),mnemonicTitle:e.localize({key:`mitoggleStickyScroll`,comment:[`&& denotes a mnemonic`]},`&&Toggle Editor Sticky Scroll`)},metadata:{description:e.localize2(`toggleEditorStickyScroll.description`,`Toggle/enable the editor sticky scroll which shows the nested scopes at the top of the viewport`)},category:TA.View,toggled:{condition:e.ContextKeyExpr.equals(`config.editor.stickyScroll.enabled`,!0),title:e.localize(`stickyScroll`,`Sticky Scroll`),mnemonicTitle:e.localize({key:`miStickyScroll`,comment:[`&& denotes a mnemonic`]},`&&Sticky Scroll`)},menu:[{id:e.MenuId.CommandPalette},{id:e.MenuId.MenubarAppearanceMenu,group:`4_editor`,order:3},{id:e.MenuId.StickyScrollContext}]})}async run(t){let n=t.get(e.IConfigurationService),r=!n.getValue(`editor.stickyScroll.enabled`);return n.updateValue(`editor.stickyScroll.enabled`,r)}},rj=100,ij=class extends e.EditorAction2{constructor(){super({id:`editor.action.focusStickyScroll`,title:{...e.localize2(`focusStickyScroll`,`Focus on the editor sticky scroll`),mnemonicTitle:e.localize({key:`mifocusStickyScroll`,comment:[`&& denotes a mnemonic`]},`&&Focus Sticky Scroll`)},precondition:e.ContextKeyExpr.and(e.ContextKeyExpr.has(`config.editor.stickyScroll.enabled`),e.EditorContextKeys.stickyScrollVisible),menu:[{id:e.MenuId.CommandPalette}]})}runEditorCommand(e,t){tj.get(t)?.focus()}},aj=class extends e.EditorAction2{constructor(){super({id:`editor.action.selectNextStickyScrollLine`,title:e.localize2(`selectNextStickyScrollLine.title`,`Select the next editor sticky scroll line`),precondition:e.EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:rj,primary:18}})}runEditorCommand(e,t){tj.get(t)?.focusNext()}},oj=class extends e.EditorAction2{constructor(){super({id:`editor.action.selectPreviousStickyScrollLine`,title:e.localize2(`selectPreviousStickyScrollLine.title`,`Select the previous sticky scroll line`),precondition:e.EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:rj,primary:16}})}runEditorCommand(e,t){tj.get(t)?.focusPrevious()}},sj=class extends e.EditorAction2{constructor(){super({id:`editor.action.goToFocusedStickyScrollLine`,title:e.localize2(`goToFocusedStickyScrollLine.title`,`Go to the focused sticky scroll line`),precondition:e.EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:rj,primary:3}})}runEditorCommand(e,t){tj.get(t)?.goToFocused()}},cj=class extends e.EditorAction2{constructor(){super({id:`editor.action.selectEditor`,title:e.localize2(`selectEditor.title`,`Select Editor`),precondition:e.EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:rj,primary:9}})}runEditorCommand(e,t){tj.get(t)?.selectEditor()}};e.registerEditorContribution(tj.ID,tj,1),e.registerAction2(nj),e.registerAction2(ij),e.registerAction2(oj),e.registerAction2(aj),e.registerAction2(sj),e.registerAction2(cj);var lj=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},uj=function(e,t){return function(n,r){t(n,r,e)}},dj=class{constructor(e,t,n,r,i,a){this.range=e,this.insertText=t,this.filterText=n,this.additionalTextEdits=r,this.command=i,this.completion=a}},fj=class extends e.RefCountedDisposable{constructor(e,t,n,r,i,a){super(i.disposable),this.model=e,this.line=t,this.word=n,this.completionModel=r,this._suggestMemoryService=a}canBeReused(e,t,n){return this.model===e&&this.line===t&&this.word.word.length>0&&this.word.startColumn===n.startColumn&&this.word.endColumn<n.endColumn&&this.completionModel.getIncompleteProvider().size===0}get items(){let t=[],{items:n}=this.completionModel,r=this._suggestMemoryService.select(this.model,{lineNumber:this.line,column:this.word.endColumn+this.completionModel.lineContext.characterCountDelta},n),i=e.Iterable.slice(n,r),a=e.Iterable.slice(n,0,r),o=5;for(let n of e.Iterable.concat(i,a)){if(n.score===e.FuzzyScore.Default)continue;let r=new e.Range$1(n.editStart.lineNumber,n.editStart.column,n.editInsertEnd.lineNumber,n.editInsertEnd.column+this.completionModel.lineContext.characterCountDelta),i=n.completion.insertTextRules&&n.completion.insertTextRules&4?{snippet:n.completion.insertText}:n.completion.insertText;t.push(new dj(r,i,n.filterTextLow??n.labelLow,n.completion.additionalTextEdits,n.completion.command,n)),o-->=0&&n.resolve(e.CancellationToken.None)}return t}};fj=lj([uj(5,PS)],fj);var pj=class extends e.Disposable{constructor(e,t,n,r){super(),this._languageFeatureService=e,this._clipboardService=t,this._suggestMemoryService=n,this._editorService=r,this._store.add(e.inlineCompletionsProvider.register(`*`,this))}async provideInlineCompletions(t,n,r,i){if(r.selectedSuggestionInfo)return;let a;for(let e of this._editorService.listCodeEditors())if(e.getModel()===t){a=e;break}if(!a)return;let o=a.getOption(90);if(Jx.isAllOff(o))return;t.tokenization.tokenizeIfCheap(n.lineNumber);let s=t.tokenization.getLineTokens(n.lineNumber),c=s.getStandardTokenType(s.findTokenIndexAtOffset(Math.max(n.column-1-1,0)));if(Jx.valueFor(o,c)!==`inline`)return;let l=t.getWordAtPosition(n),u;if(l?.word||(u=this._getTriggerCharacterInfo(t,n)),!l?.word&&!u||(l||=t.getWordUntilPosition(n),l.endColumn!==n.column))return;let d,f=t.getValueInRange(new e.Range$1(n.lineNumber,1,n.lineNumber,n.column));if(!u&&this._lastResult?.canBeReused(t,n.lineNumber,l)){let e=new KS(f,n.column-this._lastResult.word.endColumn);this._lastResult.completionModel.lineContext=e,this._lastResult.acquire(),d=this._lastResult}else{let e=await Vx(this._languageFeatureService.completionProvider,t,n,new Lx(void 0,eC.createSuggestFilter(a).itemKind,u?.providers),u&&{triggerKind:1,triggerCharacter:u.ch},i),r;e.needsClipboard&&(r=await this._clipboardService.readText());let o=new qS(e.items,n.column,new KS(f,0),GS.None,a.getOption(119),a.getOption(113),{boostFullMatch:!1,firstMatchCanBeWeak:!1},r);d=new fj(t,n.lineNumber,l,o,e,this._suggestMemoryService)}return this._lastResult=d,d}handleItemDidShow(t,n){n.completion.resolve(e.CancellationToken.None)}freeInlineCompletions(e){e.release()}_getTriggerCharacterInfo(t,n){let r=t.getValueInRange(e.Range$1.fromPositions({lineNumber:n.lineNumber,column:n.column-1},n)),i=new Set;for(let e of this._languageFeatureService.completionProvider.all(t))e.triggerCharacters?.includes(r)&&i.add(e);if(i.size!==0)return{providers:i,ch:r}}};pj=lj([uj(0,e.ILanguageFeaturesService),uj(1,e.IClipboardService),uj(2,PS),uj(3,e.ICodeEditorService)],pj),e.registerEditorFeature(pj);var mj=class extends e.EditorAction{constructor(){super({id:`editor.action.forceRetokenize`,label:e.localize(`forceRetokenize`,`Developer: Force Retokenize`),alias:`Developer: Force Retokenize`,precondition:void 0})}run(t,n){if(!n.hasModel())return;let r=n.getModel();r.tokenization.resetTokenization();let i=new e.StopWatch;r.tokenization.forceTokenization(r.getLineCount()),i.stop(),console.log(`tokenization took ${i.elapsed()}`)}};e.registerEditorAction(mj);var hj=class t extends e.Action2{static{this.ID=`editor.action.toggleTabFocusMode`}constructor(){super({id:t.ID,title:e.localize2({key:`toggle.tabMovesFocus`,comment:[`Turn on/off use of tab key for moving focus around VS Code`]},`Toggle Tab Key Moves Focus`),precondition:void 0,keybinding:{primary:2091,mac:{primary:1323},weight:100},metadata:{description:e.localize2(`tabMovesFocusDescriptions`,`Determines whether the tab key moves focus around the workbench or inserts the tab character in the current editor. This is also called tab trapping, tab navigation, or tab focus mode.`)},f1:!0})}run(){let t=!e.TabFocus.getTabFocusMode();e.TabFocus.setTabFocusMode(t),t?e.alert(e.localize(`toggle.tabMovesFocus.on`,`Pressing Tab will now move focus to the next focusable element`)):e.alert(e.localize(`toggle.tabMovesFocus.off`,`Pressing Tab will now insert the tab character`))}};e.registerAction2(hj);var gj=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},_j=function(e,t){return function(n,r){t(n,r,e)}},vj=class extends e.Disposable{get enabled(){return this._enabled}set enabled(e){e?(this.el.setAttribute(`aria-disabled`,`false`),this.el.tabIndex=0,this.el.style.pointerEvents=`auto`,this.el.style.opacity=`1`,this.el.style.cursor=`pointer`,this._enabled=!1):(this.el.setAttribute(`aria-disabled`,`true`),this.el.tabIndex=-1,this.el.style.pointerEvents=`none`,this.el.style.opacity=`0.4`,this.el.style.cursor=`default`,this._enabled=!0),this._enabled=e}constructor(t,n,r={},i,a){super(),this._link=n,this._hoverService=i,this._enabled=!0,this.el=e.append(t,e.$(`a.monaco-link`,{tabIndex:n.tabIndex??0,href:n.href},n.label)),this.hoverDelegate=r.hoverDelegate??e.getDefaultHoverDelegate(`mouse`),this.setTooltip(n.title),this.el.setAttribute(`role`,`button`);let o=this._register(new e.DomEmitter(this.el,`click`)),s=this._register(new e.DomEmitter(this.el,`keypress`)),c=e.Event.chain(s.event,t=>t.map(t=>new e.StandardKeyboardEvent(t)).filter(e=>e.keyCode===3)),l=this._register(new e.DomEmitter(this.el,e.EventType.Tap)).event;this._register(e.Gesture.addTarget(this.el));let u=e.Event.any(o.event,c,l);this._register(u(t=>{this.enabled&&(e.EventHelper.stop(t,!0),r?.opener?r.opener(this._link.href):a.open(this._link.href,{allowCommands:!0}))})),this.enabled=!0}setTooltip(e){this.hoverDelegate.showNativeHover?this.el.title=e??``:!this.hover&&e?this.hover=this._register(this._hoverService.setupManagedHover(this.hoverDelegate,this.el,e)):this.hover&&this.hover.update(e)}};vj=gj([_j(3,e.IHoverService),_j(4,e.IOpenerService)],vj);var yj=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},bj=function(e,t){return function(n,r){t(n,r,e)}},xj=26,Sj=class extends e.Disposable{constructor(e,t){super(),this._editor=e,this.instantiationService=t,this.banner=this._register(this.instantiationService.createInstance(Cj))}hide(){this._editor.setBanner(null,0),this.banner.clear()}show(e){this.banner.show({...e,onClose:()=>{this.hide(),e.onClose?.()}}),this._editor.setBanner(this.banner.element,xj)}};Sj=yj([bj(1,e.IInstantiationService)],Sj);var Cj=class extends e.Disposable{constructor(t){super(),this.instantiationService=t,this.markdownRenderer=this.instantiationService.createInstance(e.MarkdownRenderer,{}),this.element=e.$(`div.editor-banner`),this.element.tabIndex=0}getAriaLabel(e){if(e.ariaLabel)return e.ariaLabel;if(typeof e.message==`string`)return e.message}getBannerMessage(t){if(typeof t==`string`){let n=e.$(`span`);return n.innerText=t,n}return this.markdownRenderer.render(t).element}clear(){e.clearNode(this.element)}show(t){e.clearNode(this.element);let n=this.getAriaLabel(t);n&&this.element.setAttribute(`aria-label`,n);let r=e.append(this.element,e.$(`div.icon-container`));r.setAttribute(`aria-hidden`,`true`),t.icon&&r.appendChild(e.$(`div${e.ThemeIcon.asCSSSelector(t.icon)}`));let i=e.append(this.element,e.$(`div.message-container`));if(i.setAttribute(`aria-hidden`,`true`),i.appendChild(this.getBannerMessage(t.message)),this.messageActionsContainer=e.append(this.element,e.$(`div.message-actions-container`)),t.actions)for(let e of t.actions)this._register(this.instantiationService.createInstance(vj,this.messageActionsContainer,{...e,tabIndex:-1},{}));let a=e.append(this.element,e.$(`div.action-container`));this.actionBar=this._register(new e.ActionBar(a)),this.actionBar.push(this._register(new e.Action(`banner.close`,`Close Banner`,e.ThemeIcon.asClassName(e.widgetClose),!0,()=>{typeof t.onClose==`function`&&t.onClose()})),{icon:!0,label:!1}),this.actionBar.setFocusable(!1)}};Cj=yj([bj(0,e.IInstantiationService)],Cj);var wj=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Tj=function(e,t){return function(n,r){t(n,r,e)}};const Ej=e.registerIcon(`extensions-warning-message`,e.Codicon.warning,e.localize(`warningIcon`,`Icon shown with a warning message in the extensions editor.`));var Dj=class extends e.Disposable{static{this.ID=`editor.contrib.unicodeHighlighter`}constructor(t,n,r,i){super(),this._editor=t,this._editorWorkerService=n,this._workspaceTrustService=r,this._highlighter=null,this._bannerClosed=!1,this._updateState=t=>{if(t&&t.hasMore){if(this._bannerClosed)return;let n=Math.max(t.ambiguousCharacterCount,t.nonBasicAsciiCharacterCount,t.invisibleCharacterCount),r;if(t.nonBasicAsciiCharacterCount>=n)r={message:e.localize(`unicodeHighlighting.thisDocumentHasManyNonBasicAsciiUnicodeCharacters`,`This document contains many non-basic ASCII unicode characters`),command:new Hj};else if(t.ambiguousCharacterCount>=n)r={message:e.localize(`unicodeHighlighting.thisDocumentHasManyAmbiguousUnicodeCharacters`,`This document contains many ambiguous unicode characters`),command:new Bj};else if(t.invisibleCharacterCount>=n)r={message:e.localize(`unicodeHighlighting.thisDocumentHasManyInvisibleUnicodeCharacters`,`This document contains many invisible unicode characters`),command:new Vj};else throw Error(`Unreachable`);this._bannerController.show({id:`unicodeHighlightBanner`,message:r.message,icon:Ej,actions:[{label:r.command.shortLabel,href:`command:${r.command.id}`}],onClose:()=>{this._bannerClosed=!0}})}else this._bannerController.hide()},this._bannerController=this._register(i.createInstance(Sj,t)),this._register(this._editor.onDidChangeModel(()=>{this._bannerClosed=!1,this._updateHighlighter()})),this._options=t.getOption(126),this._register(r.onDidChangeTrust(e=>{this._updateHighlighter()})),this._register(t.onDidChangeConfiguration(e=>{e.hasChanged(126)&&(this._options=t.getOption(126),this._updateHighlighter())})),this._updateHighlighter()}dispose(){this._highlighter&&=(this._highlighter.dispose(),null),super.dispose()}_updateHighlighter(){if(this._updateState(null),this._highlighter&&=(this._highlighter.dispose(),null),!this._editor.hasModel())return;let t=Oj(this._workspaceTrustService.isWorkspaceTrusted(),this._options);if([t.nonBasicASCII,t.ambiguousCharacters,t.invisibleCharacters].every(e=>e===!1))return;let n={nonBasicASCII:t.nonBasicASCII,ambiguousCharacters:t.ambiguousCharacters,invisibleCharacters:t.invisibleCharacters,includeComments:t.includeComments,includeStrings:t.includeStrings,allowedCodePoints:Object.keys(t.allowedCharacters).map(e=>e.codePointAt(0)),allowedLocales:Object.keys(t.allowedLocales).map(t=>t===`_os`?new Intl.NumberFormat().resolvedOptions().locale:t===`_vscode`?e.language:t)};this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri)?this._highlighter=new kj(this._editor,n,this._updateState,this._editorWorkerService):this._highlighter=new Aj(this._editor,n,this._updateState)}getDecorationInfo(e){return this._highlighter?this._highlighter.getDecorationInfo(e):null}};Dj=wj([Tj(1,e.IEditorWorkerService),Tj(2,e.IWorkspaceTrustManagementService),Tj(3,e.IInstantiationService)],Dj);function Oj(e,t){return{nonBasicASCII:t.nonBasicASCII===`inUntrustedWorkspace`?!e:t.nonBasicASCII,ambiguousCharacters:t.ambiguousCharacters,invisibleCharacters:t.invisibleCharacters,includeComments:t.includeComments===`inUntrustedWorkspace`?!e:t.includeComments,includeStrings:t.includeStrings===`inUntrustedWorkspace`?!e:t.includeStrings,allowedCharacters:t.allowedCharacters,allowedLocales:t.allowedLocales}}var kj=class extends e.Disposable{constructor(t,n,r,i){super(),this._editor=t,this._options=n,this._updateState=r,this._editorWorkerService=i,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new e.RunOnceScheduler(()=>this._update(),250)),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}let e=this._model.getVersionId();this._editorWorkerService.computedUnicodeHighlights(this._model.uri,this._options).then(t=>{if(this._model.isDisposed()||this._model.getVersionId()!==e)return;this._updateState(t);let n=[];if(!t.hasMore)for(let e of t.ranges)n.push({range:e,options:Lj.instance.getDecorationFromOptions(this._options)});this._decorations.set(n)})}getDecorationInfo(t){if(!this._decorations.has(t))return null;let n=this._editor.getModel();if(!e.isModelDecorationVisible(n,t))return null;let r=n.getValueInRange(t.range);return{reason:Ij(r,this._options),inComment:e.isModelDecorationInComment(n,t),inString:e.isModelDecorationInString(n,t)}}};kj=wj([Tj(3,e.IEditorWorkerService)],kj);var Aj=class extends e.Disposable{constructor(t,n,r){super(),this._editor=t,this._options=n,this._updateState=r,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new e.RunOnceScheduler(()=>this._update(),250)),this._register(this._editor.onDidLayoutChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidScrollChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeHiddenAreas(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}let t=this._editor.getVisibleRanges(),n=[],r={ranges:[],ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0,hasMore:!1};for(let n of t){let t=e.UnicodeTextModelHighlighter.computeUnicodeHighlights(this._model,this._options,n);for(let e of t.ranges)r.ranges.push(e);r.ambiguousCharacterCount+=r.ambiguousCharacterCount,r.invisibleCharacterCount+=r.invisibleCharacterCount,r.nonBasicAsciiCharacterCount+=r.nonBasicAsciiCharacterCount,r.hasMore=r.hasMore||t.hasMore}if(!r.hasMore)for(let e of r.ranges)n.push({range:e,options:Lj.instance.getDecorationFromOptions(this._options)});this._updateState(r),this._decorations.set(n)}getDecorationInfo(t){if(!this._decorations.has(t))return null;let n=this._editor.getModel(),r=n.getValueInRange(t.range);return e.isModelDecorationVisible(n,t)?{reason:Ij(r,this._options),inComment:e.isModelDecorationInComment(n,t),inString:e.isModelDecorationInString(n,t)}:null}},jj=e.localize(`unicodeHighlight.configureUnicodeHighlightOptions`,`Configure Unicode Highlight Options`),Mj=class{constructor(e,t,n){this._editor=e,this._languageService=t,this._openerService=n,this.hoverOrdinal=5}computeSync(t,n){if(!this._editor.hasModel()||t.type!==1)return[];let r=this._editor.getModel(),i=this._editor.getContribution(Dj.ID);if(!i)return[];let a=[],o=new Set,s=300;for(let t of n){let n=i.getDecorationInfo(t);if(!n)continue;let c=r.getValueInRange(t.range).codePointAt(0),l=Pj(c),u;switch(n.reason.kind){case 0:u=e.isBasicASCII(n.reason.confusableWith)?e.localize(`unicodeHighlight.characterIsAmbiguousASCII`,`The character {0} could be confused with the ASCII character {1}, which is more common in source code.`,l,Pj(n.reason.confusableWith.codePointAt(0))):e.localize(`unicodeHighlight.characterIsAmbiguous`,`The character {0} could be confused with the character {1}, which is more common in source code.`,l,Pj(n.reason.confusableWith.codePointAt(0)));break;case 1:u=e.localize(`unicodeHighlight.characterIsInvisible`,`The character {0} is invisible.`,l);break;case 2:u=e.localize(`unicodeHighlight.characterIsNonBasicAscii`,`The character {0} is not a basic ASCII character.`,l);break}if(o.has(u))continue;o.add(u);let d={codePoint:c,reason:n.reason,inComment:n.inComment,inString:n.inString},f=e.localize(`unicodeHighlight.adjustSettings`,`Adjust settings`),p=`command:${Uj.ID}?${encodeURIComponent(JSON.stringify(d))}`,m=new e.MarkdownString(``,!0).appendMarkdown(u).appendText(` `).appendLink(p,f,jj);a.push(new ym(this,t.range,[m],!1,s++))}return a}renderHoverParts(e,t){return wm(e,t,this._editor,this._languageService,this._openerService)}};Mj=wj([Tj(1,e.ILanguageService),Tj(2,e.IOpenerService)],Mj);function Nj(e){return`U+${e.toString(16).padStart(4,`0`)}`}function Pj(t){let n=`\`${Nj(t)}\``;return e.InvisibleCharacters.isInvisibleCharacter(t)||(n+=` "${`${Fj(t)}`}"`),n}function Fj(e){return e===96?"`` ` ``":"`"+String.fromCodePoint(e)+"`"}function Ij(t,n){return e.UnicodeTextModelHighlighter.computeUnicodeHighlightReason(t,n)}var Lj=class t{constructor(){this.map=new Map}static{this.instance=new t}getDecorationFromOptions(e){return this.getDecoration(!e.includeComments,!e.includeStrings)}getDecoration(t,n){let r=`${t}${n}`,i=this.map.get(r);return i||(i=e.ModelDecorationOptions.createDynamic({description:`unicode-highlight`,stickiness:1,className:`unicode-highlight`,showIfCollapsed:!0,overviewRuler:null,minimap:null,hideInCommentTokens:t,hideInStringTokens:n}),this.map.set(r,i)),i}},Rj=class extends e.EditorAction{constructor(){super({id:Bj.ID,label:e.localize(`action.unicodeHighlight.disableHighlightingInComments`,`Disable highlighting of characters in comments`),alias:`Disable highlighting of characters in comments`,precondition:void 0}),this.shortLabel=e.localize(`unicodeHighlight.disableHighlightingInComments.shortLabel`,`Disable Highlight In Comments`)}async run(t,n,r){let i=t?.get(e.IConfigurationService);i&&this.runAction(i)}async runAction(t){await t.updateValue(e.unicodeHighlightConfigKeys.includeComments,!1,2)}},zj=class extends e.EditorAction{constructor(){super({id:Bj.ID,label:e.localize(`action.unicodeHighlight.disableHighlightingInStrings`,`Disable highlighting of characters in strings`),alias:`Disable highlighting of characters in strings`,precondition:void 0}),this.shortLabel=e.localize(`unicodeHighlight.disableHighlightingInStrings.shortLabel`,`Disable Highlight In Strings`)}async run(t,n,r){let i=t?.get(e.IConfigurationService);i&&this.runAction(i)}async runAction(t){await t.updateValue(e.unicodeHighlightConfigKeys.includeStrings,!1,2)}},Bj=class t extends e.EditorAction{static{this.ID=`editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters`}constructor(){super({id:t.ID,label:e.localize(`action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters`,`Disable highlighting of ambiguous characters`),alias:`Disable highlighting of ambiguous characters`,precondition:void 0}),this.shortLabel=e.localize(`unicodeHighlight.disableHighlightingOfAmbiguousCharacters.shortLabel`,`Disable Ambiguous Highlight`)}async run(t,n,r){let i=t?.get(e.IConfigurationService);i&&this.runAction(i)}async runAction(t){await t.updateValue(e.unicodeHighlightConfigKeys.ambiguousCharacters,!1,2)}},Vj=class t extends e.EditorAction{static{this.ID=`editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters`}constructor(){super({id:t.ID,label:e.localize(`action.unicodeHighlight.disableHighlightingOfInvisibleCharacters`,`Disable highlighting of invisible characters`),alias:`Disable highlighting of invisible characters`,precondition:void 0}),this.shortLabel=e.localize(`unicodeHighlight.disableHighlightingOfInvisibleCharacters.shortLabel`,`Disable Invisible Highlight`)}async run(t,n,r){let i=t?.get(e.IConfigurationService);i&&this.runAction(i)}async runAction(t){await t.updateValue(e.unicodeHighlightConfigKeys.invisibleCharacters,!1,2)}},Hj=class t extends e.EditorAction{static{this.ID=`editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters`}constructor(){super({id:t.ID,label:e.localize(`action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters`,`Disable highlighting of non basic ASCII characters`),alias:`Disable highlighting of non basic ASCII characters`,precondition:void 0}),this.shortLabel=e.localize(`unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters.shortLabel`,`Disable Non ASCII Highlight`)}async run(t,n,r){let i=t?.get(e.IConfigurationService);i&&this.runAction(i)}async runAction(t){await t.updateValue(e.unicodeHighlightConfigKeys.nonBasicASCII,!1,2)}},Uj=class t extends e.EditorAction{static{this.ID=`editor.action.unicodeHighlight.showExcludeOptions`}constructor(){super({id:t.ID,label:e.localize(`action.unicodeHighlight.showExcludeOptions`,`Show Exclude Options`),alias:`Show Exclude Options`,precondition:void 0})}async run(t,n,r){let{codePoint:i,reason:a,inString:o,inComment:s}=r,c=String.fromCodePoint(i),l=t.get(e.IQuickInputService),u=t.get(e.IConfigurationService);function d(t){return e.InvisibleCharacters.isInvisibleCharacter(t)?e.localize(`unicodeHighlight.excludeInvisibleCharFromBeingHighlighted`,`Exclude {0} (invisible character) from being highlighted`,Nj(t)):e.localize(`unicodeHighlight.excludeCharFromBeingHighlighted`,`Exclude {0} from being highlighted`,`${Nj(t)} "${c}"`)}let f=[];if(a.kind===0)for(let t of a.notAmbiguousInLocales)f.push({label:e.localize(`unicodeHighlight.allowCommonCharactersInLanguage`,`Allow unicode characters that are more common in the language "{0}".`,t),run:async()=>{Gj(u,[t])}});if(f.push({label:d(i),run:()=>Wj(u,[i])}),s){let e=new Rj;f.push({label:e.label,run:async()=>e.runAction(u)})}else if(o){let e=new zj;f.push({label:e.label,run:async()=>e.runAction(u)})}if(a.kind===0){let e=new Bj;f.push({label:e.label,run:async()=>e.runAction(u)})}else if(a.kind===1){let e=new Vj;f.push({label:e.label,run:async()=>e.runAction(u)})}else if(a.kind===2){let e=new Hj;f.push({label:e.label,run:async()=>e.runAction(u)})}else Kj(a);let p=await l.pick(f,{title:jj});p&&await p.run()}};async function Wj(t,n){let r=t.getValue(e.unicodeHighlightConfigKeys.allowedCharacters),i;i=typeof r==`object`&&r?r:{};for(let e of n)i[String.fromCodePoint(e)]=!0;await t.updateValue(e.unicodeHighlightConfigKeys.allowedCharacters,i,2)}async function Gj(t,n){let r=t.inspect(e.unicodeHighlightConfigKeys.allowedLocales).user?.value,i;i=typeof r==`object`&&r?Object.assign({},r):{};for(let e of n)i[e]=!0;await t.updateValue(e.unicodeHighlightConfigKeys.allowedLocales,i,2)}function Kj(e){throw Error(`Unexpected value: ${e}`)}e.registerEditorAction(Bj),e.registerEditorAction(Vj),e.registerEditorAction(Hj),e.registerEditorAction(Uj),e.registerEditorContribution(Dj.ID,Dj,1),ip.register(Mj);var qj=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},Jj=function(e,t){return function(n,r){t(n,r,e)}},Yj=`ignoreUnusualLineTerminators`;function Xj(e,t,n){e.setModelProperty(t.uri,Yj,n)}function Zj(e,t){return e.getModelProperty(t.uri,Yj)}var Qj=class extends e.Disposable{static{this.ID=`editor.contrib.unusualLineTerminatorsDetector`}constructor(e,t,n){super(),this._editor=e,this._dialogService=t,this._codeEditorService=n,this._isPresentingDialog=!1,this._config=this._editor.getOption(127),this._register(this._editor.onDidChangeConfiguration(e=>{e.hasChanged(127)&&(this._config=this._editor.getOption(127),this._checkForUnusualLineTerminators())})),this._register(this._editor.onDidChangeModel(()=>{this._checkForUnusualLineTerminators()})),this._register(this._editor.onDidChangeModelContent(e=>{e.isUndoing||this._checkForUnusualLineTerminators()})),this._checkForUnusualLineTerminators()}async _checkForUnusualLineTerminators(){if(this._config===`off`||!this._editor.hasModel())return;let t=this._editor.getModel();if(!t.mightContainUnusualLineTerminators()||Zj(this._codeEditorService,t)===!0||this._editor.getOption(92))return;if(this._config===`auto`){t.removeUnusualLineTerminators(this._editor.getSelections());return}if(this._isPresentingDialog)return;let n;try{this._isPresentingDialog=!0,n=await this._dialogService.confirm({title:e.localize(`unusualLineTerminators.title`,`Unusual Line Terminators`),message:e.localize(`unusualLineTerminators.message`,`Detected unusual line terminators`),detail:e.localize(`unusualLineTerminators.detail`,`The file '{0}' contains one or more unusual line terminator characters, like Line Separator (LS) or Paragraph Separator (PS).
It is recommended to remove them from the file. This can be configured via \`editor.unusualLineTerminators\`.`,e.basename(t.uri)),primaryButton:e.localize({key:`unusualLineTerminators.fix`,comment:[`&& denotes a mnemonic`]},`&&Remove Unusual Line Terminators`),cancelButton:e.localize(`unusualLineTerminators.ignore`,`Ignore`)})}finally{this._isPresentingDialog=!1}if(!n.confirmed){Xj(this._codeEditorService,t,!0);return}t.removeUnusualLineTerminators(this._editor.getSelections())}};Qj=qj([Jj(1,e.IDialogService),Jj(2,e.ICodeEditorService)],Qj),e.registerEditorContribution(Qj.ID,Qj,1);var $j=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},eM=function(e,t){return function(n,r){t(n,r,e)}},tM=class{constructor(){this.selector={language:`*`}}provideDocumentHighlights(t,n,r){let i=[],a=t.getWordAtPosition({lineNumber:n.lineNumber,column:n.column});if(!a)return Promise.resolve(i);if(!t.isDisposed())return t.findMatches(a.word,!0,!1,!0,e.USUAL_WORD_SEPARATORS,!1).map(t=>({range:t.range,kind:e.DocumentHighlightKind.Text}))}provideMultiDocumentHighlights(t,n,r,i){let a=new e.ResourceMap,o=t.getWordAtPosition({lineNumber:n.lineNumber,column:n.column});if(!o)return Promise.resolve(a);for(let n of[t,...r]){if(n.isDisposed())continue;let t=n.findMatches(o.word,!0,!1,!0,e.USUAL_WORD_SEPARATORS,!1).map(t=>({range:t.range,kind:e.DocumentHighlightKind.Text}));t&&a.set(n.uri,t)}return a}},nM=class extends e.Disposable{constructor(e){super(),this._register(e.documentHighlightProvider.register(`*`,new tM)),this._register(e.multiDocumentHighlightProvider.register(`*`,new tM))}};nM=$j([eM(0,e.ILanguageFeaturesService)],nM);var rM=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},iM=function(e,t){return function(n,r){t(n,r,e)}},Q,aM,oM=new e.RawContextKey(`hasWordHighlights`,!1);function sM(t,n,r,i){let a=t.ordered(n);return e.first(a.map(t=>()=>Promise.resolve(t.provideDocumentHighlights(n,r,i)).then(void 0,e.onUnexpectedExternalError)),e=>e!=null).then(t=>{if(t){let r=new e.ResourceMap;return r.set(n.uri,t),r}return new e.ResourceMap})}function cM(t,n,r,i,a,o){let s=t.ordered(n);return e.first(s.map(t=>()=>{let i=o.filter(t=>e.shouldSynchronizeModel(t)).filter(n=>e.score(t.selector,n.uri,n.getLanguageId(),!0,void 0,void 0)>0);return Promise.resolve(t.provideMultiDocumentHighlights(n,r,i,a)).then(void 0,e.onUnexpectedExternalError)}),e=>e!=null)}var lM=class{constructor(e,t,n){this._model=e,this._selection=t,this._wordSeparators=n,this._wordRange=this._getCurrentWordRange(e,t),this._result=null}get result(){return this._result||=e.createCancelablePromise(e=>this._compute(this._model,this._selection,this._wordSeparators,e)),this._result}_getCurrentWordRange(t,n){let r=t.getWordAtPosition(n.getPosition());return r?new e.Range$1(n.startLineNumber,r.startColumn,n.startLineNumber,r.endColumn):null}isValid(e,t,n){let r=t.startLineNumber,i=t.startColumn,a=t.endColumn,o=this._getCurrentWordRange(e,t),s=!!(this._wordRange&&this._wordRange.equalsRange(o));for(let e=0,t=n.length;!s&&e<t;e++){let t=n.getRange(e);t&&t.startLineNumber===r&&t.startColumn<=i&&t.endColumn>=a&&(s=!0)}return s}cancel(){this.result.cancel()}},uM=class extends lM{constructor(e,t,n,r){super(e,t,n),this._providers=r}_compute(t,n,r,i){return sM(this._providers,t,n.getPosition(),i).then(t=>t||new e.ResourceMap)}},dM=class extends lM{constructor(e,t,n,r,i){super(e,t,n),this._providers=r,this._otherModels=i}_compute(t,n,r,i){return cM(this._providers,t,n.getPosition(),r,i,this._otherModels).then(t=>t||new e.ResourceMap)}};function fM(e,t,n,r,i){return new uM(t,n,i,e)}function pM(e,t,n,r,i,a){return new dM(t,n,i,e,a)}e.registerModelAndPositionCommand(`_executeDocumentHighlights`,async(t,n,r)=>{let i=t.get(e.ILanguageFeaturesService);return(await sM(i.documentHighlightProvider,n,r,e.CancellationToken.None))?.get(n.uri)});var mM=class{static{Q=this}static{this.storedDecorationIDs=new e.ResourceMap}static{this.query=null}constructor(t,n,r,i,a){this.toUnhook=new e.DisposableStore,this.workerRequestTokenId=0,this.workerRequestCompleted=!1,this.workerRequestValue=new e.ResourceMap,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,this.runDelayer=this.toUnhook.add(new e.Delayer(50)),this.editor=t,this.providers=n,this.multiDocumentProviders=r,this.codeEditorService=a,this._hasWordHighlights=oM.bindTo(i),this._ignorePositionChangeEvent=!1,this.occurrencesHighlight=this.editor.getOption(81),this.model=this.editor.getModel(),this.toUnhook.add(t.onDidChangeCursorPosition(e=>{this._ignorePositionChangeEvent||this.occurrencesHighlight!==`off`&&this.runDelayer.trigger(()=>{this._onPositionChanged(e)})})),this.toUnhook.add(t.onDidFocusEditorText(e=>{this.occurrencesHighlight!==`off`&&(this.workerRequest||this.runDelayer.trigger(()=>{this._run()}))})),this.toUnhook.add(t.onDidChangeModelContent(t=>{e.matchesScheme(this.model.uri,`output`)||this._stopAll()})),this.toUnhook.add(t.onDidChangeModel(e=>{!e.newModelUrl&&e.oldModelUrl?this._stopSingular():Q.query&&this._run()})),this.toUnhook.add(t.onDidChangeConfiguration(e=>{let t=this.editor.getOption(81);if(this.occurrencesHighlight!==t)switch(this.occurrencesHighlight=t,t){case`off`:this._stopAll();break;case`singleFile`:this._stopAll(Q.query?.modelInfo?.model);break;case`multiFile`:Q.query&&this._run(!0);break;default:console.warn(`Unknown occurrencesHighlight setting value:`,t);break}})),this.decorations=this.editor.createDecorationsCollection(),this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,Q.query&&this._run()}hasDecorations(){return this.decorations.length>0}restore(){this.occurrencesHighlight!==`off`&&(this.runDelayer.cancel(),this._run())}_getSortedHighlights(){return this.decorations.getRanges().sort(e.Range$1.compareRangesUsingStarts)}moveNext(){let t=this._getSortedHighlights(),n=(t.findIndex(e=>e.containsPosition(this.editor.getPosition()))+1)%t.length,r=t[n];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(r.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(r);let i=this._getWord();if(i){let a=this.editor.getModel().getLineContent(r.startLineNumber);e.alert(`${a}, ${n+1} of ${t.length} for '${i.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}moveBack(){let t=this._getSortedHighlights(),n=(t.findIndex(e=>e.containsPosition(this.editor.getPosition()))-1+t.length)%t.length,r=t[n];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(r.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(r);let i=this._getWord();if(i){let a=this.editor.getModel().getLineContent(r.startLineNumber);e.alert(`${a}, ${n+1} of ${t.length} for '${i.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}_removeSingleDecorations(){if(!this.editor.hasModel())return;let e=Q.storedDecorationIDs.get(this.editor.getModel().uri);e&&(this.editor.removeDecorations(e),Q.storedDecorationIDs.delete(this.editor.getModel().uri),this.decorations.length>0&&(this.decorations.clear(),this._hasWordHighlights.set(!1)))}_removeAllDecorations(t){let n=this.codeEditorService.listCodeEditors(),r=[];for(let i of n){if(!i.hasModel()||e.isEqual(i.getModel().uri,t?.uri))continue;let n=Q.storedDecorationIDs.get(i.getModel().uri);if(!n)continue;i.removeDecorations(n),r.push(i.getModel().uri);let a=hM.get(i);a?.wordHighlighter&&a.wordHighlighter.decorations.length>0&&(a.wordHighlighter.decorations.clear(),a.wordHighlighter.workerRequest=null,a.wordHighlighter._hasWordHighlights.set(!1))}for(let e of r)Q.storedDecorationIDs.delete(e)}_stopSingular(){this._removeSingleDecorations(),this.editor.hasTextFocus()&&(this.editor.getModel()?.uri.scheme!==e.Schemas.vscodeNotebookCell&&Q.query?.modelInfo?.model.uri.scheme!==e.Schemas.vscodeNotebookCell?(Q.query=null,this._run()):Q.query?.modelInfo&&(Q.query.modelInfo=null)),this.renderDecorationsTimer!==-1&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||=(this.workerRequestTokenId++,!0)}_stopAll(e){this._removeAllDecorations(e),this.renderDecorationsTimer!==-1&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||=(this.workerRequestTokenId++,!0)}_onPositionChanged(t){if(this.occurrencesHighlight===`off`){this._stopAll();return}if(t.reason!==3&&this.editor.getModel()?.uri.scheme!==e.Schemas.vscodeNotebookCell){this._stopAll();return}this._run()}_getWord(){let e=this.editor.getSelection(),t=e.startLineNumber,n=e.startColumn;return this.model.isDisposed()?null:this.model.getWordAtPosition({lineNumber:t,column:n})}getOtherModelsToHighlight(t){if(!t)return[];if(t.uri.scheme===e.Schemas.vscodeNotebookCell){let n=[],r=this.codeEditorService.listCodeEditors();for(let i of r){let r=i.getModel();r&&r!==t&&r.uri.scheme===e.Schemas.vscodeNotebookCell&&n.push(r)}return n}let n=[],r=this.codeEditorService.listCodeEditors();for(let i of r){if(!e.isDiffEditor(i))continue;let r=i.getModel();r&&t===r.modified&&n.push(r.modified)}if(n.length)return n;if(this.occurrencesHighlight===`singleFile`)return[];for(let e of r){let r=e.getModel();r&&r!==t&&n.push(r)}return n}_run(t){let n;if(this.editor.hasTextFocus()){let e=this.editor.getSelection();if(!e||e.startLineNumber!==e.endLineNumber){Q.query=null,this._stopAll();return}let t=e.startColumn,r=e.endColumn,i=this._getWord();if(!i||i.startColumn>t||i.endColumn<r){Q.query=null,this._stopAll();return}n=this.workerRequest&&this.workerRequest.isValid(this.model,e,this.decorations),Q.query={modelInfo:{model:this.model,selection:e},word:i}}else if(!Q.query){this._stopAll();return}if(this.lastCursorPositionChangeTime=new Date().getTime(),n)this.workerRequestCompleted&&this.renderDecorationsTimer!==-1&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1,this._beginRenderDecorations());else if(e.isEqual(this.editor.getModel().uri,Q.query.modelInfo?.model.uri)){if(!t){let e=this.decorations.getRanges();for(let t of e)if(t.containsPosition(this.editor.getPosition()))return}this._stopAll(t?this.model:void 0);let n=++this.workerRequestTokenId;this.workerRequestCompleted=!1;let r=this.getOtherModelsToHighlight(this.editor.getModel());if(!Q.query||!Q.query.modelInfo||Q.query.modelInfo.model.isDisposed())return;this.workerRequest=this.computeWithModel(Q.query.modelInfo.model,Q.query.modelInfo.selection,Q.query.word,r),this.workerRequest?.result.then(e=>{n===this.workerRequestTokenId&&(this.workerRequestCompleted=!0,this.workerRequestValue=e||[],this._beginRenderDecorations())},e.onUnexpectedError)}}computeWithModel(e,t,n,r){return r.length?pM(this.multiDocumentProviders,e,t,n,this.editor.getOption(132),r):fM(this.providers,e,t,n,this.editor.getOption(132))}_beginRenderDecorations(){let e=new Date().getTime(),t=this.lastCursorPositionChangeTime+250;e>=t?(this.renderDecorationsTimer=-1,this.renderDecorations()):this.renderDecorationsTimer=setTimeout(()=>{this.renderDecorations()},t-e)}renderDecorations(){this.renderDecorationsTimer=-1;let e=this.codeEditorService.listCodeEditors();for(let t of e){let e=hM.get(t);if(!e)continue;let n=[],r=t.getModel()?.uri;if(r&&this.workerRequestValue.has(r)){let i=Q.storedDecorationIDs.get(r),a=this.workerRequestValue.get(r);if(a)for(let e of a)e.range&&n.push({range:e.range,options:mD(e.kind)});let o=[];t.changeDecorations(e=>{o=e.deltaDecorations(i??[],n)}),Q.storedDecorationIDs=Q.storedDecorationIDs.set(r,o),n.length>0&&(e.wordHighlighter?.decorations.set(n),e.wordHighlighter?._hasWordHighlights.set(!0))}}}dispose(){this._stopSingular(),this.toUnhook.dispose()}};mM=Q=rM([iM(4,e.ICodeEditorService)],mM);var hM=class extends e.Disposable{static{aM=this}static{this.ID=`editor.contrib.wordHighlighter`}static get(e){return e.getContribution(aM.ID)}constructor(e,t,n,r){super(),this._wordHighlighter=null;let i=()=>{e.hasModel()&&!e.getModel().isTooLargeForTokenization()&&(this._wordHighlighter=new mM(e,n.documentHighlightProvider,n.multiDocumentHighlightProvider,t,r))};this._register(e.onDidChangeModel(e=>{this._wordHighlighter&&=(this._wordHighlighter.dispose(),null),i()})),i()}get wordHighlighter(){return this._wordHighlighter}saveViewState(){return!!(this._wordHighlighter&&this._wordHighlighter.hasDecorations())}moveNext(){this._wordHighlighter?.moveNext()}moveBack(){this._wordHighlighter?.moveBack()}restoreViewState(e){this._wordHighlighter&&e&&this._wordHighlighter.restore()}dispose(){this._wordHighlighter&&=(this._wordHighlighter.dispose(),null),super.dispose()}};hM=aM=rM([iM(1,e.IContextKeyService),iM(2,e.ILanguageFeaturesService),iM(3,e.ICodeEditorService)],hM);var gM=class extends e.EditorAction{constructor(e,t){super(t),this._isNext=e}run(e,t){let n=hM.get(t);n&&(this._isNext?n.moveNext():n.moveBack())}},_M=class extends gM{constructor(){super(!0,{id:`editor.action.wordHighlight.next`,label:e.localize(`wordHighlight.next.label`,`Go to Next Symbol Highlight`),alias:`Go to Next Symbol Highlight`,precondition:oM,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:65,weight:100}})}},vM=class extends gM{constructor(){super(!1,{id:`editor.action.wordHighlight.prev`,label:e.localize(`wordHighlight.previous.label`,`Go to Previous Symbol Highlight`),alias:`Go to Previous Symbol Highlight`,precondition:oM,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:1089,weight:100}})}},yM=class extends e.EditorAction{constructor(){super({id:`editor.action.wordHighlight.trigger`,label:e.localize(`wordHighlight.trigger.label`,`Trigger Symbol Highlight`),alias:`Trigger Symbol Highlight`,precondition:void 0,kbOpts:{kbExpr:e.EditorContextKeys.editorTextFocus,primary:0,weight:100}})}run(e,t,n){let r=hM.get(t);r&&r.restoreViewState(!0)}};e.registerEditorContribution(hM.ID,hM,0),e.registerEditorAction(_M),e.registerEditorAction(vM),e.registerEditorAction(yM),e.registerEditorFeature(nM);var bM=class extends e.EditorCommand{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode,this._wordNavigationType=e.wordNavigationType}runEditorCommand(t,n,r){if(!n.hasModel())return;let i=e.getMapForWordSeparators(n.getOption(132),n.getOption(131)),a=n.getModel(),o=n.getSelections(),s=o.length>1,c=o.map(t=>{let n=new e.Position$1(t.positionLineNumber,t.positionColumn),r=this._move(i,a,n,this._wordNavigationType,s);return this._moveTo(t,r,this._inSelectionMode)});if(a.pushStackElement(),n._getViewModel().setCursorStates(`moveWordCommand`,3,c.map(t=>e.CursorState.fromModelSelection(t))),c.length===1){let t=new e.Position$1(c[0].positionLineNumber,c[0].positionColumn);n.revealPosition(t,0)}}_moveTo(t,n,r){return r?new e.Selection$1(t.selectionStartLineNumber,t.selectionStartColumn,n.lineNumber,n.column):new e.Selection$1(n.lineNumber,n.column,n.lineNumber,n.column)}},xM=class extends bM{_move(t,n,r,i,a){return e.WordOperations.moveWordLeft(t,n,r,i,a)}},SM=class extends bM{_move(t,n,r,i,a){return e.WordOperations.moveWordRight(t,n,r,i)}},CM=class extends xM{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:`cursorWordStartLeft`,precondition:void 0})}},wM=class extends xM{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:`cursorWordEndLeft`,precondition:void 0})}},TM=class extends xM{constructor(){super({inSelectionMode:!1,wordNavigationType:1,id:`cursorWordLeft`,precondition:void 0,kbOpts:{kbExpr:e.ContextKeyExpr.and(e.EditorContextKeys.textInputFocus,e.ContextKeyExpr.and(e.CONTEXT_ACCESSIBILITY_MODE_ENABLED,e.IsWindowsContext)?.negate()),primary:2063,mac:{primary:527},weight:100}})}},EM=class extends xM{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:`cursorWordStartLeftSelect`,precondition:void 0})}},DM=class extends xM{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:`cursorWordEndLeftSelect`,precondition:void 0})}},OM=class extends xM{constructor(){super({inSelectionMode:!0,wordNavigationType:1,id:`cursorWordLeftSelect`,precondition:void 0,kbOpts:{kbExpr:e.ContextKeyExpr.and(e.EditorContextKeys.textInputFocus,e.ContextKeyExpr.and(e.CONTEXT_ACCESSIBILITY_MODE_ENABLED,e.IsWindowsContext)?.negate()),primary:3087,mac:{primary:1551},weight:100}})}},kM=class extends xM{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:`cursorWordAccessibilityLeft`,precondition:void 0})}_move(t,n,r,i,a){return super._move(e.getMapForWordSeparators(e.EditorOptions.wordSeparators.defaultValue,t.intlSegmenterLocales),n,r,i,a)}},AM=class extends xM{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:`cursorWordAccessibilityLeftSelect`,precondition:void 0})}_move(t,n,r,i,a){return super._move(e.getMapForWordSeparators(e.EditorOptions.wordSeparators.defaultValue,t.intlSegmenterLocales),n,r,i,a)}},jM=class extends SM{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:`cursorWordStartRight`,precondition:void 0})}},MM=class extends SM{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:`cursorWordEndRight`,precondition:void 0,kbOpts:{kbExpr:e.ContextKeyExpr.and(e.EditorContextKeys.textInputFocus,e.ContextKeyExpr.and(e.CONTEXT_ACCESSIBILITY_MODE_ENABLED,e.IsWindowsContext)?.negate()),primary:2065,mac:{primary:529},weight:100}})}},NM=class extends SM{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:`cursorWordRight`,precondition:void 0})}},PM=class extends SM{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:`cursorWordStartRightSelect`,precondition:void 0})}},FM=class extends SM{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:`cursorWordEndRightSelect`,precondition:void 0,kbOpts:{kbExpr:e.ContextKeyExpr.and(e.EditorContextKeys.textInputFocus,e.ContextKeyExpr.and(e.CONTEXT_ACCESSIBILITY_MODE_ENABLED,e.IsWindowsContext)?.negate()),primary:3089,mac:{primary:1553},weight:100}})}},IM=class extends SM{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:`cursorWordRightSelect`,precondition:void 0})}},LM=class extends SM{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:`cursorWordAccessibilityRight`,precondition:void 0})}_move(t,n,r,i,a){return super._move(e.getMapForWordSeparators(e.EditorOptions.wordSeparators.defaultValue,t.intlSegmenterLocales),n,r,i,a)}},RM=class extends SM{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:`cursorWordAccessibilityRightSelect`,precondition:void 0})}_move(t,n,r,i,a){return super._move(e.getMapForWordSeparators(e.EditorOptions.wordSeparators.defaultValue,t.intlSegmenterLocales),n,r,i,a)}},zM=class extends e.EditorCommand{constructor(e){super(e),this._whitespaceHeuristics=e.whitespaceHeuristics,this._wordNavigationType=e.wordNavigationType}runEditorCommand(t,n,r){let i=t.get(e.ILanguageConfigurationService);if(!n.hasModel())return;let a=e.getMapForWordSeparators(n.getOption(132),n.getOption(131)),o=n.getModel(),s=n.getSelections(),c=n.getOption(6),l=n.getOption(11),u=i.getLanguageConfiguration(o.getLanguageId()).getAutoClosingPairs(),d=n._getViewModel(),f=s.map(t=>{let r=this._delete({wordSeparators:a,model:o,selection:t,whitespaceHeuristics:this._whitespaceHeuristics,autoClosingDelete:n.getOption(9),autoClosingBrackets:c,autoClosingQuotes:l,autoClosingPairs:u,autoClosedCharacters:d.getCursorAutoClosedCharacters()},this._wordNavigationType);return new e.ReplaceCommand(r,``)});n.pushUndoStop(),n.executeCommands(this.id,f),n.pushUndoStop()}},BM=class extends zM{_delete(t,n){return e.WordOperations.deleteWordLeft(t,n)||new e.Range$1(1,1,1,1)}},VM=class extends zM{_delete(t,n){let r=e.WordOperations.deleteWordRight(t,n);if(r)return r;let i=t.model.getLineCount(),a=t.model.getLineMaxColumn(i);return new e.Range$1(i,a,i,a)}},HM=class extends BM{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:`deleteWordStartLeft`,precondition:e.EditorContextKeys.writable})}},UM=class extends BM{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:`deleteWordEndLeft`,precondition:e.EditorContextKeys.writable})}},WM=class extends BM{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:`deleteWordLeft`,precondition:e.EditorContextKeys.writable,kbOpts:{kbExpr:e.EditorContextKeys.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}},GM=class extends VM{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:`deleteWordStartRight`,precondition:e.EditorContextKeys.writable})}},KM=class extends VM{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:`deleteWordEndRight`,precondition:e.EditorContextKeys.writable})}},qM=class extends VM{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:`deleteWordRight`,precondition:e.EditorContextKeys.writable,kbOpts:{kbExpr:e.EditorContextKeys.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}},JM=class extends e.EditorAction{constructor(){super({id:`deleteInsideWord`,precondition:e.EditorContextKeys.writable,label:e.localize(`deleteInsideWord`,`Delete Word`),alias:`Delete Word`})}run(t,n,r){if(!n.hasModel())return;let i=e.getMapForWordSeparators(n.getOption(132),n.getOption(131)),a=n.getModel(),o=n.getSelections().map(t=>{let n=e.WordOperations.deleteInsideWord(i,a,t);return new e.ReplaceCommand(n,``)});n.pushUndoStop(),n.executeCommands(this.id,o),n.pushUndoStop()}};e.registerEditorCommand(new CM),e.registerEditorCommand(new wM),e.registerEditorCommand(new TM),e.registerEditorCommand(new EM),e.registerEditorCommand(new DM),e.registerEditorCommand(new OM),e.registerEditorCommand(new jM),e.registerEditorCommand(new MM),e.registerEditorCommand(new NM),e.registerEditorCommand(new PM),e.registerEditorCommand(new FM),e.registerEditorCommand(new IM),e.registerEditorCommand(new kM),e.registerEditorCommand(new AM),e.registerEditorCommand(new LM),e.registerEditorCommand(new RM),e.registerEditorCommand(new HM),e.registerEditorCommand(new UM),e.registerEditorCommand(new WM),e.registerEditorCommand(new GM),e.registerEditorCommand(new KM),e.registerEditorCommand(new qM),e.registerEditorAction(JM);var YM=class extends zM{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:`deleteWordPartLeft`,precondition:e.EditorContextKeys.writable,kbOpts:{kbExpr:e.EditorContextKeys.textInputFocus,primary:0,mac:{primary:769},weight:100}})}_delete(t,n){return e.WordPartOperations.deleteWordPartLeft(t)||new e.Range$1(1,1,1,1)}},XM=class extends zM{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:`deleteWordPartRight`,precondition:e.EditorContextKeys.writable,kbOpts:{kbExpr:e.EditorContextKeys.textInputFocus,primary:0,mac:{primary:788},weight:100}})}_delete(t,n){let r=e.WordPartOperations.deleteWordPartRight(t);if(r)return r;let i=t.model.getLineCount(),a=t.model.getLineMaxColumn(i);return new e.Range$1(i,a,i,a)}},ZM=class extends bM{_move(t,n,r,i,a){return e.WordPartOperations.moveWordPartLeft(t,n,r,a)}},QM=class extends ZM{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:`cursorWordPartLeft`,precondition:void 0,kbOpts:{kbExpr:e.EditorContextKeys.textInputFocus,primary:0,mac:{primary:783},weight:100}})}};e.CommandsRegistry.registerCommandAlias(`cursorWordPartStartLeft`,`cursorWordPartLeft`);var $M=class extends ZM{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:`cursorWordPartLeftSelect`,precondition:void 0,kbOpts:{kbExpr:e.EditorContextKeys.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}};e.CommandsRegistry.registerCommandAlias(`cursorWordPartStartLeftSelect`,`cursorWordPartLeftSelect`);var eN=class extends bM{_move(t,n,r,i,a){return e.WordPartOperations.moveWordPartRight(t,n,r)}},tN=class extends eN{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:`cursorWordPartRight`,precondition:void 0,kbOpts:{kbExpr:e.EditorContextKeys.textInputFocus,primary:0,mac:{primary:785},weight:100}})}},nN=class extends eN{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:`cursorWordPartRightSelect`,precondition:void 0,kbOpts:{kbExpr:e.EditorContextKeys.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}};e.registerEditorCommand(new YM),e.registerEditorCommand(new XM),e.registerEditorCommand(new QM),e.registerEditorCommand(new $M),e.registerEditorCommand(new tN),e.registerEditorCommand(new nN);var rN=class extends e.Disposable{static{this.ID=`editor.contrib.readOnlyMessageController`}constructor(e){super(),this.editor=e,this._register(this.editor.onDidAttemptReadOnlyEdit(()=>this._onDidAttemptReadOnlyEdit()))}_onDidAttemptReadOnlyEdit(){let t=Nl.get(this.editor);if(t&&this.editor.hasModel()){let n=this.editor.getOptions().get(93);n||=this.editor.isSimpleWidget?new e.MarkdownString(e.localize(`editor.simple.readonly`,`Cannot edit in read-only input`)):new e.MarkdownString(e.localize(`editor.readonly`,`Cannot edit in read-only editor`)),t.showMessage(n,this.editor.getPosition())}}};e.registerEditorContribution(rN.ID,rN,2);var iN=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},aN=function(e,t){return function(n,r){t(n,r,e)}},oN=class extends e.Disposable{constructor(t,n,r){super(),this._textModel=t,this._languageFeaturesService=n,this._outlineModelService=r,this._currentModel=e.observableValue(this,void 0);let i=e.observableSignalFromEvent(`documentSymbolProvider.onDidChange`,this._languageFeaturesService.documentSymbolProvider.onDidChange),a=e.observableSignalFromEvent(`_textModel.onDidChangeContent`,e.Event.debounce(e=>this._textModel.onDidChangeContent(e),()=>void 0,100));this._register(e.autorunWithStore(async(t,n)=>{i.read(t),a.read(t);let r=n.add(new e.DisposableCancellationTokenSource),o=await this._outlineModelService.getOrCreate(this._textModel,r.token);n.isDisposed||this._currentModel.set(o,void 0)}))}getBreadcrumbItems(t,n){let r=this._currentModel.read(n);if(!r)return[];let i=r.asListOfDocumentSymbols().filter(e=>t.contains(e.range.startLineNumber)&&!t.contains(e.range.endLineNumber));return i.sort(e.reverseOrder(e.compareBy(e=>e.range.endLineNumber-e.range.startLineNumber,e.numberComparator))),i.map(e=>({name:e.name,kind:e.kind,startLineNumber:e.range.startLineNumber}))}};oN=iN([aN(1,e.ILanguageFeaturesService),aN(2,Hb)],oN),e.HideUnchangedRegionsFeature.setBreadcrumbsSourceFactory((e,t)=>t.createInstance(oN,e));var sN=class extends e.Disposable{static{this.ID=`editor.contrib.iPadShowKeyboard`}constructor(t){super(),this.editor=t,this.widget=null,e.isIOS&&(this._register(t.onDidChangeConfiguration(()=>this.update())),this.update())}update(){let e=!this.editor.getOption(92);!this.widget&&e?this.widget=new cN(this.editor):this.widget&&!e&&(this.widget.dispose(),this.widget=null)}dispose(){super.dispose(),this.widget&&=(this.widget.dispose(),null)}},cN=class t extends e.Disposable{static{this.ID=`editor.contrib.ShowKeyboardWidget`}constructor(t){super(),this.editor=t,this._domNode=document.createElement(`textarea`),this._domNode.className=`iPadShowKeyboard`,this._register(e.addDisposableListener(this._domNode,`touchstart`,e=>{this.editor.focus()})),this._register(e.addDisposableListener(this._domNode,`focus`,e=>{this.editor.focus()})),this.editor.addOverlayWidget(this)}dispose(){this.editor.removeOverlayWidget(this),super.dispose()}getId(){return t.ID}getDomNode(){return this._domNode}getPosition(){return{preference:1}}};e.registerEditorContribution(sN.ID,sN,3);var lN=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},uN=function(e,t){return function(n,r){t(n,r,e)}},dN,fN=class extends e.Disposable{static{dN=this}static{this.ID=`editor.contrib.inspectTokens`}static get(e){return e.getContribution(dN.ID)}constructor(t,n,r){super(),this._editor=t,this._languageService=r,this._widget=null,this._register(this._editor.onDidChangeModel(e=>this.stop())),this._register(this._editor.onDidChangeModelLanguage(e=>this.stop())),this._register(e.TokenizationRegistry.onDidChange(e=>this.stop())),this._register(this._editor.onKeyUp(e=>e.keyCode===9&&this.stop()))}dispose(){this.stop(),super.dispose()}launch(){this._widget||this._editor.hasModel()&&(this._widget=new gN(this._editor,this._languageService))}stop(){this._widget&&=(this._widget.dispose(),null)}};fN=dN=lN([uN(1,e.IStandaloneThemeService),uN(2,e.ILanguageService)],fN);var pN=class extends e.EditorAction{constructor(){super({id:`editor.action.inspectTokens`,label:e.InspectTokensNLS.inspectTokensAction,alias:`Developer: Inspect Tokens`,precondition:void 0})}run(e,t){fN.get(t)?.launch()}};function mN(e){let t=``;for(let n=0,r=e.length;n<r;n++){let r=e.charCodeAt(n);switch(r){case 9:t+=`→`;break;case 32:t+=`·`;break;default:t+=String.fromCharCode(r)}}return t}function hN(t,n){let r=e.TokenizationRegistry.get(n);if(r)return r;let i=t.encodeLanguageId(n);return{getInitialState:()=>e.NullState,tokenize:(t,r,i)=>e.nullTokenize(n,i),tokenizeEncoded:(t,n,r)=>e.nullTokenizeEncoded(i,r)}}var gN=class t extends e.Disposable{static{this._ID=`editor.contrib.inspectTokensWidget`}constructor(e,t){super(),this.allowEditorOverflow=!0,this._editor=e,this._languageService=t,this._model=this._editor.getModel(),this._domNode=document.createElement(`div`),this._domNode.className=`tokens-inspect-widget`,this._tokenizationSupport=hN(this._languageService.languageIdCodec,this._model.getLanguageId()),this._compute(this._editor.getPosition()),this._register(this._editor.onDidChangeCursorPosition(e=>this._compute(this._editor.getPosition()))),this._editor.addContentWidget(this)}dispose(){this._editor.removeContentWidget(this),super.dispose()}getId(){return t._ID}_compute(t){let n=this._getTokensAtLine(t.lineNumber),r=0;for(let e=n.tokens1.length-1;e>=0;e--){let i=n.tokens1[e];if(t.column-1>=i.offset){r=e;break}}let i=0;for(let e=n.tokens2.length>>>1;e>=0;e--)if(t.column-1>=n.tokens2[e<<1]){i=e;break}let a=this._model.getLineContent(t.lineNumber),o=``;if(r<n.tokens1.length){let e=n.tokens1[r].offset,t=r+1<n.tokens1.length?n.tokens1[r+1].offset:a.length;o=a.substring(e,t)}e.reset(this._domNode,e.$(`h2.tm-token`,void 0,mN(o),e.$(`span.tm-token-length`,void 0,`${o.length} ${o.length===1?`char`:`chars`}`))),e.append(this._domNode,e.$(`hr.tokens-inspect-separator`,{style:`clear:both`}));let s=(i<<1)+1<n.tokens2.length?this._decodeMetadata(n.tokens2[(i<<1)+1]):null;e.append(this._domNode,e.$(`table.tm-metadata-table`,void 0,e.$(`tbody`,void 0,e.$(`tr`,void 0,e.$(`td.tm-metadata-key`,void 0,`language`),e.$(`td.tm-metadata-value`,void 0,`${s?s.languageId:`-?-`}`)),e.$(`tr`,void 0,e.$(`td.tm-metadata-key`,void 0,`token type`),e.$(`td.tm-metadata-value`,void 0,`${s?this._tokenTypeToString(s.tokenType):`-?-`}`)),e.$(`tr`,void 0,e.$(`td.tm-metadata-key`,void 0,`font style`),e.$(`td.tm-metadata-value`,void 0,`${s?this._fontStyleToString(s.fontStyle):`-?-`}`)),e.$(`tr`,void 0,e.$(`td.tm-metadata-key`,void 0,`foreground`),e.$(`td.tm-metadata-value`,void 0,`${s?e.Color.Format.CSS.formatHex(s.foreground):`-?-`}`)),e.$(`tr`,void 0,e.$(`td.tm-metadata-key`,void 0,`background`),e.$(`td.tm-metadata-value`,void 0,`${s?e.Color.Format.CSS.formatHex(s.background):`-?-`}`))))),e.append(this._domNode,e.$(`hr.tokens-inspect-separator`)),r<n.tokens1.length&&e.append(this._domNode,e.$(`span.tm-token-type`,void 0,n.tokens1[r].type)),this._editor.layoutContentWidget(this)}_decodeMetadata(t){let n=e.TokenizationRegistry.getColorMap(),r=e.TokenMetadata.getLanguageId(t),i=e.TokenMetadata.getTokenType(t),a=e.TokenMetadata.getFontStyle(t),o=e.TokenMetadata.getForeground(t),s=e.TokenMetadata.getBackground(t);return{languageId:this._languageService.languageIdCodec.decodeLanguageId(r),tokenType:i,fontStyle:a,foreground:n[o],background:n[s]}}_tokenTypeToString(e){switch(e){case 0:return`Other`;case 1:return`Comment`;case 2:return`String`;case 3:return`RegEx`;default:return`??`}}_fontStyleToString(e){let t=``;return e&1&&(t+=`italic `),e&2&&(t+=`bold `),e&4&&(t+=`underline `),e&8&&(t+=`strikethrough `),t.length===0&&(t=`---`),t}_getTokensAtLine(e){let t=this._getStateBeforeLine(e),n=this._tokenizationSupport.tokenize(this._model.getLineContent(e),!0,t),r=this._tokenizationSupport.tokenizeEncoded(this._model.getLineContent(e),!0,t);return{startState:t,tokens1:n.tokens,tokens2:r.tokens,endState:n.endState}}_getStateBeforeLine(e){let t=this._tokenizationSupport.getInitialState();for(let n=1;n<e;n++)t=this._tokenizationSupport.tokenize(this._model.getLineContent(n),!0,t).endState;return t}getDomNode(){return this._domNode}getPosition(){return{position:this._editor.getPosition(),preference:[2,1]}}};e.registerEditorContribution(fN.ID,fN,4),e.registerEditorAction(pN);var _N=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},vN=function(e,t){return function(n,r){t(n,r,e)}},yN,bN=class{static{yN=this}static{this.PREFIX=`?`}constructor(t,n){this.quickInputService=t,this.keybindingService=n,this.registry=e.Registry.as(e.Extensions.Quickaccess)}provide(t){let n=new e.DisposableStore;return n.add(t.onDidAccept(()=>{let[e]=t.selectedItems;e&&this.quickInputService.quickAccess.show(e.prefix,{preserveValue:!0})})),n.add(t.onDidChangeValue(e=>{let t=this.registry.getQuickAccessProvider(e.substr(yN.PREFIX.length));t&&t.prefix&&t.prefix!==yN.PREFIX&&this.quickInputService.quickAccess.show(t.prefix,{preserveValue:!0})})),t.items=this.getQuickAccessProviders().filter(e=>e.prefix!==yN.PREFIX),n}getQuickAccessProviders(){return this.registry.getQuickAccessProviders().sort((e,t)=>e.prefix.localeCompare(t.prefix)).flatMap(e=>this.createPicks(e))}createPicks(t){return t.helpEntries.map(n=>{let r=n.prefix||t.prefix,i=r||`…`;return{prefix:r,label:i,keybinding:n.commandId?this.keybindingService.lookupKeybinding(n.commandId):void 0,ariaLabel:e.localize(`helpPickAriaLabel`,`{0}, {1}`,i,n.description),description:n.description}})}};bN=yN=_N([vN(0,e.IQuickInputService),vN(1,e.IKeybindingService)],bN),e.Registry.as(e.Extensions.Quickaccess).registerQuickAccessProvider({ctor:bN,prefix:``,helpEntries:[{description:e.QuickHelpNLS.helpQuickAccessActionLabel}]});var xN=class{constructor(e){this.options=e,this.rangeHighlightDecorationId=void 0}provide(t,n,r){let i=new e.DisposableStore;t.canAcceptInBackground=!!this.options?.canAcceptInBackground,t.matchOnLabel=t.matchOnDescription=t.matchOnDetail=t.sortByLabel=!1;let a=i.add(new e.MutableDisposable);return a.value=this.doProvide(t,n,r),i.add(this.onDidActiveTextEditorControlChange(()=>{a.value=void 0,a.value=this.doProvide(t,n)})),i}doProvide(t,n,r){let i=new e.DisposableStore,a=this.activeTextEditorControl;if(a&&this.canProvideWithTextEditor(a)){let o={editor:a},s=e.getCodeEditor(a);if(s){let t=a.saveViewState()??void 0;i.add(s.onDidChangeCursorPosition(()=>{t=a.saveViewState()??void 0})),o.restoreViewState=()=>{t&&a===this.activeTextEditorControl&&a.restoreViewState(t)},i.add(e.createSingleCallFunction(n.onCancellationRequested)(()=>o.restoreViewState?.()))}i.add(e.toDisposable(()=>this.clearDecorations(a))),i.add(this.provideWithTextEditor(o,t,n,r))}else i.add(this.provideWithoutTextEditor(t,n));return i}canProvideWithTextEditor(e){return!0}gotoLocation({editor:t},n){t.setSelection(n.range,`code.jump`),t.revealRangeInCenter(n.range,0),n.preserveFocus||t.focus();let r=t.getModel();r&&`getLineContent`in r&&e.status(`${r.getLineContent(n.range.startLineNumber)}`)}getModel(t){return e.isDiffEditor(t)?t.getModel()?.modified:t.getModel()}addDecorations(t,n){t.changeDecorations(t=>{let r=[];this.rangeHighlightDecorationId&&=(r.push(this.rangeHighlightDecorationId.overviewRulerDecorationId),r.push(this.rangeHighlightDecorationId.rangeHighlightId),void 0);let i=[{range:n,options:{description:`quick-access-range-highlight`,className:`rangeHighlight`,isWholeLine:!0}},{range:n,options:{description:`quick-access-range-highlight-overview`,overviewRuler:{color:e.themeColorFromId(e.overviewRulerRangeHighlight),position:e.OverviewRulerLane.Full}}}],[a,o]=t.deltaDecorations(r,i);this.rangeHighlightDecorationId={rangeHighlightId:a,overviewRulerDecorationId:o}})}clearDecorations(e){let t=this.rangeHighlightDecorationId;t&&(e.changeDecorations(e=>{e.deltaDecorations([t.overviewRulerDecorationId,t.rangeHighlightId],[])}),this.rangeHighlightDecorationId=void 0)}},SN=class t extends xN{static{this.PREFIX=`:`}constructor(){super({canAcceptInBackground:!0})}provideWithoutTextEditor(t){let n=e.localize(`cannotRunGotoLine`,`Open a text editor first to go to a line.`);return t.items=[{label:n}],t.ariaLabel=n,e.Disposable.None}provideWithTextEditor(n,r,i){let a=n.editor,o=new e.DisposableStore;o.add(r.onDidAccept(e=>{let[t]=r.selectedItems;if(t){if(!this.isValidLineNumber(a,t.lineNumber))return;this.gotoLocation(n,{range:this.toRange(t.lineNumber,t.column),keyMods:r.keyMods,preserveFocus:e.inBackground}),e.inBackground||r.hide()}}));let s=()=>{let e=this.parsePosition(a,r.value.trim().substr(t.PREFIX.length)),n=this.getPickLabel(a,e.lineNumber,e.column);if(r.items=[{lineNumber:e.lineNumber,column:e.column,label:n}],r.ariaLabel=n,!this.isValidLineNumber(a,e.lineNumber)){this.clearDecorations(a);return}let i=this.toRange(e.lineNumber,e.column);a.revealRangeInCenter(i,0),this.addDecorations(a,i)};s(),o.add(r.onDidChangeValue(()=>s()));let c=e.getCodeEditor(a);return c&&c.getOptions().get(68).renderType===2&&(c.updateOptions({lineNumbers:`on`}),o.add(e.toDisposable(()=>c.updateOptions({lineNumbers:`relative`})))),o}toRange(e=1,t=1){return{startLineNumber:e,startColumn:t,endLineNumber:e,endColumn:t}}parsePosition(e,t){let n=t.split(/,|:|#/).map(e=>parseInt(e,10)).filter(e=>!isNaN(e)),r=this.lineCount(e)+1;return{lineNumber:n[0]>0?n[0]:r+n[0],column:n[1]}}getPickLabel(t,n,r){if(this.isValidLineNumber(t,n))return this.isValidColumn(t,n,r)?e.localize(`gotoLineColumnLabel`,`Go to line {0} and character {1}.`,n,r):e.localize(`gotoLineLabel`,`Go to line {0}.`,n);let i=t.getPosition()||{lineNumber:1,column:1},a=this.lineCount(t);return a>1?e.localize(`gotoLineLabelEmptyWithLimit`,`Current Line: {0}, Character: {1}. Type a line number between 1 and {2} to navigate to.`,i.lineNumber,i.column,a):e.localize(`gotoLineLabelEmpty`,`Current Line: {0}, Character: {1}. Type a line number to navigate to.`,i.lineNumber,i.column)}isValidLineNumber(e,t){return!t||typeof t!=`number`?!1:t>0&&t<=this.lineCount(e)}isValidColumn(e,t,n){if(!n||typeof n!=`number`)return!1;let r=this.getModel(e);if(!r)return!1;let i={lineNumber:t,column:n};return r.validatePosition(i).equals(i)}lineCount(e){return this.getModel(e)?.getLineCount()??0}},CN=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},wN=function(e,t){return function(n,r){t(n,r,e)}},TN=class extends SN{constructor(t){super(),this.editorService=t,this.onDidActiveTextEditorControlChange=e.Event.None}get activeTextEditorControl(){return this.editorService.getFocusedCodeEditor()??void 0}};TN=CN([wN(0,e.ICodeEditorService)],TN);var EN=class t extends e.EditorAction{static{this.ID=`editor.action.gotoLine`}constructor(){super({id:t.ID,label:e.GoToLineNLS.gotoLineActionLabel,alias:`Go to Line/Column...`,precondition:void 0,kbOpts:{kbExpr:e.EditorContextKeys.focus,primary:2085,mac:{primary:293},weight:100}})}run(t){t.get(e.IQuickInputService).quickAccess.show(TN.PREFIX)}};e.registerEditorAction(EN),e.Registry.as(e.Extensions.Quickaccess).registerQuickAccessProvider({ctor:TN,prefix:TN.PREFIX,helpEntries:[{description:e.GoToLineNLS.gotoLineActionLabel,commandId:EN.ID}]});var DN=[void 0,[]];function ON(e,t,n=0,r=0){let i=t;return i.values&&i.values.length>1?kN(e,i.values,n,r):AN(e,t,n,r)}function kN(e,t,n,r){let i=0,a=[];for(let o of t){let[t,s]=AN(e,o,n,r);if(typeof t!=`number`)return DN;i+=t,a.push(...s)}return[i,jN(a)]}function AN(t,n,r,i){let a=e.fuzzyScore(n.original,n.originalLowercase,r,t,t.toLowerCase(),i,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return a?[a[0],e.createMatches(a)]:DN}Object.freeze({score:0});function jN(e){let t=e.sort((e,t)=>e.start-t.start),n=[],r;for(let e of t)!r||!MN(r,e)?(r=e,n.push(e)):(r.start=Math.min(r.start,e.start),r.end=Math.max(r.end,e.end));return n}function MN(e,t){return!(e.end<t.start||t.end<e.start)}function NN(e){return e.startsWith(`"`)&&e.endsWith(`"`)}var PN=` `;function FN(t){typeof t!=`string`&&(t=``);let n=t.toLowerCase(),{pathNormalized:r,normalized:i,normalizedLowercase:a}=IN(t),o=r.indexOf(e.sep)>=0,s=NN(t),c,l=t.split(PN);if(l.length>1)for(let e of l){let t=NN(e),{pathNormalized:n,normalized:r,normalizedLowercase:i}=IN(e);r&&(c||=[],c.push({original:e,originalLowercase:e.toLowerCase(),pathNormalized:n,normalized:r,normalizedLowercase:i,expectContiguousMatch:t}))}return{original:t,originalLowercase:n,pathNormalized:r,normalized:i,normalizedLowercase:a,values:c,containsPathSeparator:o,expectContiguousMatch:s}}function IN(t){let n;n=e.isWindows?t.replace(/\//g,e.sep):t.replace(/\\/g,e.sep);let r=e.stripWildcards(n).replace(/\s|"/g,``);return{pathNormalized:n,normalized:r,normalizedLowercase:r.toLowerCase()}}function LN(e){return FN(Array.isArray(e)?e.map(e=>e.original).join(PN):e.original)}var RN=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},zN=function(e,t){return function(n,r){t(n,r,e)}},BN,VN=class extends xN{static{BN=this}static{this.PREFIX=`@`}static{this.SCOPE_PREFIX=`:`}static{this.PREFIX_BY_CATEGORY=`${this.PREFIX}${this.SCOPE_PREFIX}`}constructor(e,t,n=Object.create(null)){super(n),this._languageFeaturesService=e,this._outlineModelService=t,this.options=n,this.options.canAcceptInBackground=!0}provideWithoutTextEditor(t){return this.provideLabelPick(t,e.localize(`cannotRunGotoSymbolWithoutEditor`,`To go to a symbol, first open a text editor with symbol information.`)),e.Disposable.None}provideWithTextEditor(t,n,r,i){let a=t.editor,o=this.getModel(a);return o?this._languageFeaturesService.documentSymbolProvider.has(o)?this.doProvideWithEditorSymbols(t,o,n,r,i):this.doProvideWithoutEditorSymbols(t,o,n,r):e.Disposable.None}doProvideWithoutEditorSymbols(t,n,r,i){let a=new e.DisposableStore;return this.provideLabelPick(r,e.localize(`cannotRunGotoSymbolWithoutSymbolProvider`,`The active text editor does not provide symbol information.`)),(async()=>{!await this.waitForLanguageSymbolRegistry(n,a)||i.isCancellationRequested||a.add(this.doProvideWithEditorSymbols(t,n,r,i))})(),a}provideLabelPick(e,t){e.items=[{label:t,index:0,kind:14}],e.ariaLabel=t}async waitForLanguageSymbolRegistry(t,n){if(this._languageFeaturesService.documentSymbolProvider.has(t))return!0;let r=new e.DeferredPromise,i=n.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>{this._languageFeaturesService.documentSymbolProvider.has(t)&&(i.dispose(),r.complete(!0))}));return n.add(e.toDisposable(()=>r.complete(!1))),r.p}doProvideWithEditorSymbols(t,n,r,i,a){let o=t.editor,s=new e.DisposableStore;s.add(r.onDidAccept(e=>{let[n]=r.selectedItems;n&&n.range&&(this.gotoLocation(t,{range:n.range.selection,keyMods:r.keyMods,preserveFocus:e.inBackground}),a?.handleAccept?.(n),e.inBackground||r.hide())})),s.add(r.onDidTriggerItemButton(({item:e})=>{e&&e.range&&(this.gotoLocation(t,{range:e.range.selection,keyMods:r.keyMods,forceSideBySide:!0}),r.hide())}));let c=this.getDocumentSymbols(n,i),l,u=async t=>{l?.dispose(!0),r.busy=!1,l=new e.CancellationTokenSource$1(i),r.busy=!0;try{let a=FN(r.value.substr(BN.PREFIX.length).trim()),o=await this.doGetSymbolPicks(c,a,void 0,l.token,n);if(i.isCancellationRequested)return;if(o.length>0){if(r.items=o,t&&a.original.length===0){let n=e.findLast(o,n=>!!(n.type!==`separator`&&n.range&&e.Range$1.containsPosition(n.range.decoration,t)));n&&(r.activeItems=[n])}}else a.original.length>0?this.provideLabelPick(r,e.localize(`noMatchingSymbolResults`,`No matching editor symbols`)):this.provideLabelPick(r,e.localize(`noSymbolResults`,`No editor symbols`))}finally{i.isCancellationRequested||(r.busy=!1)}};return s.add(r.onDidChangeValue(()=>u(void 0))),u(o.getSelection()?.getPosition()),s.add(r.onDidChangeActive(()=>{let[e]=r.activeItems;e&&e.range&&(o.revealRangeInCenter(e.range.selection,0),this.addDecorations(o,e.range.decoration))})),s}async doGetSymbolPicks(t,n,r,i,a){let o=await t;if(i.isCancellationRequested)return[];let s=n.original.indexOf(BN.SCOPE_PREFIX)===0,c=s?1:0,l,u;n.values&&n.values.length>1?(l=LN(n.values[0]),u=LN(n.values.slice(1))):l=n;let d,f=this.options?.openSideBySideDirection?.();f&&(d=[{iconClass:f===`right`?e.ThemeIcon.asClassName(e.Codicon.splitHorizontal):e.ThemeIcon.asClassName(e.Codicon.splitVertical),tooltip:f===`right`?e.localize(`openToSide`,`Open to the Side`):e.localize(`openToBottom`,`Open to the Bottom`)}]);let p=[];for(let t=0;t<o.length;t++){let i=o[t],s=e.trim(i.name),f=`$(${e.SymbolKinds.toIcon(i.kind).id}) ${s}`,m=f.length-s.length,h=i.containerName;r?.extraContainerLabel&&(h=h?`${r.extraContainerLabel} • ${h}`:r.extraContainerLabel);let g,_,v,y;if(n.original.length>c){let e=!1;if(l!==n&&([g,_]=ON(f,{...n,values:void 0},c,m),typeof g==`number`&&(e=!0)),typeof g!=`number`&&([g,_]=ON(f,l,c,m),typeof g!=`number`))continue;if(!e&&u){if(h&&u.original.length>0&&([v,y]=ON(h,u)),typeof v!=`number`)continue;typeof g==`number`&&(g+=v)}}let b=i.tags&&i.tags.indexOf(1)>=0;p.push({index:t,kind:i.kind,score:g,label:f,ariaLabel:e.getAriaLabelForSymbol(i.name,i.kind),description:h,highlights:b?void 0:{label:_,description:y},range:{selection:e.Range$1.collapseToStart(i.selectionRange),decoration:i.range},uri:a.uri,symbolName:s,strikethrough:b,buttons:d})}let m=p.sort((e,t)=>s?this.compareByKindAndScore(e,t):this.compareByScore(e,t)),h=[];if(s){let t,n,r=0;function i(){n&&typeof t==`number`&&r>0&&(n.label=e.format(UN[t]||HN,r))}for(let e of m)t===e.kind?r++:(i(),t=e.kind,r=1,n={type:`separator`},h.push(n)),h.push(e);i()}else m.length>0&&(h=[{label:e.localize(`symbols`,`symbols ({0})`,p.length),type:`separator`},...m]);return h}compareByScore(e,t){if(typeof e.score!=`number`&&typeof t.score==`number`)return 1;if(typeof e.score==`number`&&typeof t.score!=`number`)return-1;if(typeof e.score==`number`&&typeof t.score==`number`){if(e.score>t.score)return-1;if(e.score<t.score)return 1}return e.index<t.index?-1:e.index>t.index?1:0}compareByKindAndScore(e,t){let n=UN[e.kind]||HN,r=UN[t.kind]||HN,i=n.localeCompare(r);return i===0?this.compareByScore(e,t):i}async getDocumentSymbols(e,t){let n=await this._outlineModelService.getOrCreate(e,t);return t.isCancellationRequested?[]:n.asListOfDocumentSymbols()}};VN=BN=RN([zN(0,e.ILanguageFeaturesService),zN(1,Hb)],VN);var HN=e.localize(`property`,`properties ({0})`),UN={5:e.localize(`method`,`methods ({0})`),11:e.localize(`function`,`functions ({0})`),8:e.localize(`_constructor`,`constructors ({0})`),12:e.localize(`variable`,`variables ({0})`),4:e.localize(`class`,`classes ({0})`),22:e.localize(`struct`,`structs ({0})`),23:e.localize(`event`,`events ({0})`),24:e.localize(`operator`,`operators ({0})`),10:e.localize(`interface`,`interfaces ({0})`),2:e.localize(`namespace`,`namespaces ({0})`),3:e.localize(`package`,`packages ({0})`),25:e.localize(`typeParameter`,`type parameters ({0})`),1:e.localize(`modules`,`modules ({0})`),6:e.localize(`property`,`properties ({0})`),9:e.localize(`enum`,`enumerations ({0})`),21:e.localize(`enumMember`,`enumeration members ({0})`),14:e.localize(`string`,`strings ({0})`),0:e.localize(`file`,`files ({0})`),17:e.localize(`array`,`arrays ({0})`),15:e.localize(`number`,`numbers ({0})`),16:e.localize(`boolean`,`booleans ({0})`),18:e.localize(`object`,`objects ({0})`),19:e.localize(`key`,`keys ({0})`),7:e.localize(`field`,`fields ({0})`),13:e.localize(`constant`,`constants ({0})`)},WN=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},GN=function(e,t){return function(n,r){t(n,r,e)}},KN=class extends VN{constructor(t,n,r){super(n,r),this.editorService=t,this.onDidActiveTextEditorControlChange=e.Event.None}get activeTextEditorControl(){return this.editorService.getFocusedCodeEditor()??void 0}};KN=WN([GN(0,e.ICodeEditorService),GN(1,e.ILanguageFeaturesService),GN(2,Hb)],KN);var qN=class t extends e.EditorAction{static{this.ID=`editor.action.quickOutline`}constructor(){super({id:t.ID,label:e.QuickOutlineNLS.quickOutlineActionLabel,alias:`Go to Symbol...`,precondition:e.EditorContextKeys.hasDocumentSymbolProvider,kbOpts:{kbExpr:e.EditorContextKeys.focus,primary:3117,weight:100},contextMenuOpts:{group:`navigation`,order:3}})}run(t){t.get(e.IQuickInputService).quickAccess.show(VN.PREFIX,{itemActivation:e.ItemActivation.NONE})}};e.registerEditorAction(qN),e.Registry.as(e.Extensions.Quickaccess).registerQuickAccessProvider({ctor:KN,prefix:VN.PREFIX,helpEntries:[{description:e.QuickOutlineNLS.quickOutlineActionLabel,prefix:VN.PREFIX,commandId:qN.ID},{description:e.QuickOutlineNLS.quickOutlineByCategoryActionLabel,prefix:VN.PREFIX_BY_CATEGORY}]});function JN(e){let t=new Map;for(let n of e)t.set(n,(t.get(n)??0)+1);return t}var YN=class e{constructor(){this.chunkCount=0,this.chunkOccurrences=new Map,this.documents=new Map}calculateScores(e,t){let n=this.computeEmbedding(e),r=new Map,i=[];for(let[e,a]of this.documents){if(t.isCancellationRequested)return[];for(let t of a.chunks){let a=this.computeSimilarityScore(t,n,r);a>0&&i.push({key:e,score:a})}}return i}static termFrequencies(t){return JN(e.splitTerms(t))}static*splitTerms(e){let t=e=>e.toLowerCase();for(let[n]of e.matchAll(/\b\p{Letter}[\p{Letter}\d]{2,}\b/gu)){yield t(n);let e=n.replace(/([a-z])([A-Z])/g,`$1 $2`).split(/\s+/g);if(e.length>1)for(let n of e)n.length>2&&/\p{Letter}{3,}/gu.test(n)&&(yield t(n))}}updateDocuments(t){for(let{key:e}of t)this.deleteDocument(e);for(let n of t){let t=[];for(let r of n.textChunks){let n=e.termFrequencies(r);for(let e of n.keys())this.chunkOccurrences.set(e,(this.chunkOccurrences.get(e)??0)+1);t.push({text:r,tf:n})}this.chunkCount+=t.length,this.documents.set(n.key,{chunks:t})}return this}deleteDocument(e){let t=this.documents.get(e);if(t){this.documents.delete(e),this.chunkCount-=t.chunks.length;for(let e of t.chunks)for(let t of e.tf.keys()){let e=this.chunkOccurrences.get(t);if(typeof e==`number`){let n=e-1;n<=0?this.chunkOccurrences.delete(t):this.chunkOccurrences.set(t,n)}}}}computeSimilarityScore(e,t,n){let r=0;for(let[i,a]of Object.entries(t)){let t=e.tf.get(i);if(!t)continue;let o=n.get(i);typeof o!=`number`&&(o=this.computeIdf(i),n.set(i,o));let s=t*o;r+=s*a}return r}computeEmbedding(t){let n=e.termFrequencies(t);return this.computeTfidf(n)}computeIdf(e){let t=this.chunkOccurrences.get(e)??0;return t>0?Math.log((this.chunkCount+1)/t):0}computeTfidf(e){let t=Object.create(null);for(let[n,r]of e){let e=this.computeIdf(n);e>0&&(t[n]=r*e)}return t}};function XN(e){let t=e.slice(0);t.sort((e,t)=>t.score-e.score);let n=t[0]?.score??0;if(n>0)for(let e of t)e.score/=n;return t}var ZN;(function(e){e[e.NO_ACTION=0]=`NO_ACTION`,e[e.CLOSE_PICKER=1]=`CLOSE_PICKER`,e[e.REFRESH_PICKER=2]=`REFRESH_PICKER`,e[e.REMOVE_ITEM=3]=`REMOVE_ITEM`})(ZN||={});function QN(e){let t=e;return Array.isArray(t.items)}function $N(e){let t=e;return!!t.picks&&t.additionalPicks instanceof Promise}var eP=class extends e.Disposable{constructor(e,t){super(),this.prefix=e,this.options=t}provide(t,n,r){let i=new e.DisposableStore;t.canAcceptInBackground=!!this.options?.canAcceptInBackground,t.matchOnLabel=t.matchOnDescription=t.matchOnDetail=t.sortByLabel=!1;let a,o=i.add(new e.MutableDisposable),s=async()=>{let i=o.value=new e.DisposableStore;a?.dispose(!0),t.busy=!1,a=new e.CancellationTokenSource$1(n);let s=a.token,c=t.value.substring(this.prefix.length);this.options?.shouldSkipTrimPickFilter||(c=c.trim());let l=this._getPicks(c,i,s,r),u=(n,r)=>{let i,a;if(QN(n)?(i=n.items,a=n.active):i=n,i.length===0){if(r)return!1;(c.length>0||t.hideInput)&&this.options?.noResultsPick&&(i=e.isFunction(this.options.noResultsPick)?[this.options.noResultsPick(c)]:[this.options.noResultsPick])}return t.items=i,a&&(t.activeItems=[a]),!0},d=async n=>{let r=!1,i=!1;await Promise.all([(async()=>{typeof n.mergeDelay==`number`&&(await e.timeout(n.mergeDelay),s.isCancellationRequested)||i||(r=u(n.picks,!0))})(),(async()=>{t.busy=!0;try{let e=await n.additionalPicks;if(s.isCancellationRequested)return;let i,a;QN(n.picks)?(i=n.picks.items,a=n.picks.active):i=n.picks;let o,c;if(QN(e)?(o=e.items,c=e.active):o=e,o.length>0||!r){let e;if(!a&&!c){let n=t.activeItems[0];n&&i.indexOf(n)!==-1&&(e=n)}u({items:[...i,...o],active:a||c||e})}}finally{s.isCancellationRequested||(t.busy=!1),i=!0}})()])};if(l!==null)if($N(l))await d(l);else if(!(l instanceof Promise))u(l);else{t.busy=!0;try{let e=await l;if(s.isCancellationRequested)return;$N(e)?await d(e):u(e)}finally{s.isCancellationRequested||(t.busy=!1)}}};i.add(t.onDidChangeValue(()=>s())),s(),i.add(t.onDidAccept(e=>{if(r?.handleAccept){e.inBackground||t.hide(),r.handleAccept?.(t.activeItems[0]);return}let[n]=t.selectedItems;typeof n?.accept==`function`&&(e.inBackground||t.hide(),n.accept(t.keyMods,e))}));let c=async(e,r)=>{if(typeof r.trigger!=`function`)return;let i=r.buttons?.indexOf(e)??-1;if(i>=0){let e=r.trigger(i,t.keyMods),a=typeof e==`number`?e:await e;if(n.isCancellationRequested)return;switch(a){case ZN.NO_ACTION:break;case ZN.CLOSE_PICKER:t.hide();break;case ZN.REFRESH_PICKER:s();break;case ZN.REMOVE_ITEM:{let e=t.items.indexOf(r);if(e!==-1){let n=t.items.slice(),r=n.splice(e,1),i=t.activeItems.filter(e=>e!==r[0]),a=t.keepScrollPosition;t.keepScrollPosition=!0,t.items=n,i&&(t.activeItems=i),t.keepScrollPosition=a}break}}}};return i.add(t.onDidTriggerItemButton(({button:e,item:t})=>c(e,t))),i.add(t.onDidTriggerSeparatorButton(({button:e,separator:t})=>c(e,t))),i}},tP=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},nP=function(e,t){return function(n,r){t(n,r,e)}},rP,$,iP=class extends eP{static{rP=this}static{this.PREFIX=`>`}static{this.TFIDF_THRESHOLD=.5}static{this.TFIDF_MAX_RESULTS=5}static{this.WORD_FILTER=e.or(e.matchesPrefix,e.matchesWords,e.matchesContiguousSubString)}constructor(e,t,n,r,i,a){super(rP.PREFIX,e),this.instantiationService=t,this.keybindingService=n,this.commandService=r,this.telemetryService=i,this.dialogService=a,this.commandsHistory=this._register(this.instantiationService.createInstance(aP)),this.options=e}async _getPicks(t,n,r,i){let a=await this.getCommandPicks(r);if(r.isCancellationRequested)return[];let o=e.createSingleCallFunction(()=>{let e=new YN;e.updateDocuments(a.map(e=>({key:e.commandId,textChunks:[this.getTfIdfChunk(e)]})));let n=e.calculateScores(t,r);return XN(n).filter(e=>e.score>rP.TFIDF_THRESHOLD).slice(0,rP.TFIDF_MAX_RESULTS)}),s=[];for(let e of a){let n=rP.WORD_FILTER(t,e.label)??void 0,i=e.commandAlias?rP.WORD_FILTER(t,e.commandAlias)??void 0:void 0;if(n||i)e.highlights={label:n,detail:this.options.showAlias?i:void 0},s.push(e);else if(t===e.commandId)s.push(e);else if(t.length>=3){let t=o();if(r.isCancellationRequested)return[];let n=t.find(t=>t.key===e.commandId);n&&(e.tfIdfScore=n.score,s.push(e))}}let c=new Map;for(let e of s){let t=c.get(e.label);t?(e.description=e.commandId,t.description=t.commandId):c.set(e.label,e)}s.sort((e,t)=>{if(e.tfIdfScore&&t.tfIdfScore)return e.tfIdfScore===t.tfIdfScore?e.label.localeCompare(t.label):t.tfIdfScore-e.tfIdfScore;if(e.tfIdfScore)return 1;if(t.tfIdfScore)return-1;let n=this.commandsHistory.peek(e.commandId),r=this.commandsHistory.peek(t.commandId);if(n&&r)return n>r?-1:1;if(n)return-1;if(r)return 1;if(this.options.suggestedCommandIds){let n=this.options.suggestedCommandIds.has(e.commandId),r=this.options.suggestedCommandIds.has(t.commandId);if(n&&r)return 0;if(n)return-1;if(r)return 1}return e.label.localeCompare(t.label)});let l=[],u=!1,d=!0,f=!!this.options.suggestedCommandIds;for(let t=0;t<s.length;t++){let n=s[t];t===0&&this.commandsHistory.peek(n.commandId)&&(l.push({type:`separator`,label:e.localize(`recentlyUsed`,`recently used`)}),u=!0),d&&n.tfIdfScore!==void 0&&(l.push({type:`separator`,label:e.localize(`suggested`,`similar commands`)}),d=!1),f&&n.tfIdfScore===void 0&&!this.commandsHistory.peek(n.commandId)&&this.options.suggestedCommandIds?.has(n.commandId)&&(l.push({type:`separator`,label:e.localize(`commonlyUsed`,`commonly used`)}),u=!0,f=!1),u&&n.tfIdfScore===void 0&&!this.commandsHistory.peek(n.commandId)&&!this.options.suggestedCommandIds?.has(n.commandId)&&(l.push({type:`separator`,label:e.localize(`morecCommands`,`other commands`)}),u=!1),l.push(this.toCommandPick(n,i))}return this.hasAdditionalCommandPicks(t,r)?{picks:l,additionalPicks:(async()=>{let n=await this.getAdditionalCommandPicks(a,s,t,r);if(r.isCancellationRequested)return[];let o=n.map(e=>this.toCommandPick(e,i));return d&&o[0]?.type!==`separator`&&o.unshift({type:`separator`,label:e.localize(`suggested`,`similar commands`)}),o})()}:l}toCommandPick(t,n){if(t.type===`separator`)return t;let r=this.keybindingService.lookupKeybinding(t.commandId),i=r?e.localize(`commandPickAriaLabelWithKeybinding`,`{0}, {1}`,t.label,r.getAriaLabel()):t.label;return{...t,ariaLabel:i,detail:this.options.showAlias&&t.commandAlias!==t.label?t.commandAlias:void 0,keybinding:r,accept:async()=>{this.commandsHistory.push(t.commandId),this.telemetryService.publicLog2(`workbenchActionExecuted`,{id:t.commandId,from:n?.from??`quick open`});try{t.args?.length?await this.commandService.executeCommand(t.commandId,...t.args):await this.commandService.executeCommand(t.commandId)}catch(n){e.isCancellationError(n)||this.dialogService.error(e.localize(`canNotRun`,`Command '{0}' resulted in an error`,t.label),zl(n))}}}}getTfIdfChunk({label:e,commandAlias:t,commandDescription:n}){let r=e;return t&&t!==e&&(r+=` - ${t}`),n&&n.value!==e&&(r+=` - ${n.value===n.original?n.value:`${n.value} (${n.original})`}`),r}};iP=rP=tP([nP(1,e.IInstantiationService),nP(2,e.IKeybindingService),nP(3,e.ICommandService),nP(4,e.ITelemetryService),nP(5,e.IDialogService)],iP);var aP=class extends e.Disposable{static{$=this}static{this.DEFAULT_COMMANDS_HISTORY_LENGTH=50}static{this.PREF_KEY_CACHE=`commandPalette.mru.cache`}static{this.PREF_KEY_COUNTER=`commandPalette.mru.counter`}static{this.counter=1}static{this.hasChanges=!1}constructor(e,t,n){super(),this.storageService=e,this.configurationService=t,this.logService=n,this.configuredCommandsHistoryLength=0,this.updateConfiguration(),this.load(),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(e=>this.updateConfiguration(e))),this._register(this.storageService.onWillSaveState(t=>{t.reason===e.WillSaveStateReason.SHUTDOWN&&this.saveState()}))}updateConfiguration(e){e&&!e.affectsConfiguration(`workbench.commandPalette.history`)||(this.configuredCommandsHistoryLength=$.getConfiguredCommandHistoryLength(this.configurationService),$.cache&&$.cache.limit!==this.configuredCommandsHistoryLength&&($.cache.limit=this.configuredCommandsHistoryLength,$.hasChanges=!0))}load(){let t=this.storageService.get($.PREF_KEY_CACHE,0),n;if(t)try{n=JSON.parse(t)}catch(e){this.logService.error(`[CommandsHistory] invalid data: ${e}`)}let r=$.cache=new e.LRUCache(this.configuredCommandsHistoryLength,1);if(n){let e;e=n.usesLRU?n.entries:n.entries.sort((e,t)=>e.value-t.value),e.forEach(e=>r.set(e.key,e.value))}$.counter=this.storageService.getNumber($.PREF_KEY_COUNTER,0,$.counter)}push(e){$.cache&&($.cache.set(e,$.counter++),$.hasChanges=!0)}peek(e){return $.cache?.peek(e)}saveState(){if(!$.cache||!$.hasChanges)return;let e={usesLRU:!0,entries:[]};$.cache.forEach((t,n)=>e.entries.push({key:n,value:t})),this.storageService.store($.PREF_KEY_CACHE,JSON.stringify(e),0,0),this.storageService.store($.PREF_KEY_COUNTER,$.counter,0,0),$.hasChanges=!1}static getConfiguredCommandHistoryLength(e){let t=e.getValue().workbench?.commandPalette?.history;return typeof t==`number`?t:$.DEFAULT_COMMANDS_HISTORY_LENGTH}};aP=$=tP([nP(0,e.IStorageService),nP(1,e.IConfigurationService),nP(2,e.ILogService)],aP);var oP=class extends iP{constructor(e,t,n,r,i,a){super(e,t,n,r,i,a)}getCodeEditorCommandPicks(){let t=this.activeTextEditorControl;if(!t)return[];let n=[];for(let r of t.getSupportedActions()){let t;r.metadata?.description&&(t=e.isLocalizedString(r.metadata.description)?r.metadata.description:{original:r.metadata.description,value:r.metadata.description}),n.push({commandId:r.id,commandAlias:r.alias,commandDescription:t,label:e.stripIcons(r.label)||r.id})}return n}},sP=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},cP=function(e,t){return function(n,r){t(n,r,e)}},lP=class extends oP{get activeTextEditorControl(){return this.codeEditorService.getFocusedCodeEditor()??void 0}constructor(e,t,n,r,i,a){super({showAlias:!1},e,n,r,i,a),this.codeEditorService=t}async getCommandPicks(){return this.getCodeEditorCommandPicks()}hasAdditionalCommandPicks(){return!1}async getAdditionalCommandPicks(){return[]}};lP=sP([cP(0,e.IInstantiationService),cP(1,e.ICodeEditorService),cP(2,e.IKeybindingService),cP(3,e.ICommandService),cP(4,e.ITelemetryService),cP(5,e.IDialogService)],lP);var uP=class t extends e.EditorAction{static{this.ID=`editor.action.quickCommand`}constructor(){super({id:t.ID,label:e.QuickCommandNLS.quickCommandActionLabel,alias:`Command Palette`,precondition:void 0,kbOpts:{kbExpr:e.EditorContextKeys.focus,primary:59,weight:100},contextMenuOpts:{group:`z_commands`,order:1}})}run(t){t.get(e.IQuickInputService).quickAccess.show(lP.PREFIX)}};e.registerEditorAction(uP),e.Registry.as(e.Extensions.Quickaccess).registerQuickAccessProvider({ctor:lP,prefix:lP.PREFIX,helpEntries:[{description:e.QuickCommandNLS.quickCommandHelp,commandId:uP.ID}]});var dP=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},fP=function(e,t){return function(n,r){t(n,r,e)}},pP=class extends Hh{constructor(e,t,n,r,i,a,o){super(!0,e,t,n,r,i,a,o)}};pP=dP([fP(1,e.IContextKeyService),fP(2,e.ICodeEditorService),fP(3,e.INotificationService),fP(4,e.IInstantiationService),fP(5,e.IStorageService),fP(6,e.IConfigurationService)],pP),e.registerEditorContribution(Hh.ID,pP,4);var mP=class extends e.EditorAction{constructor(){super({id:`editor.action.toggleHighContrast`,label:e.ToggleHighContrastNLS.toggleHighContrast,alias:`Toggle High Contrast Theme`,precondition:void 0}),this._originalThemeName=null}run(t,n){let r=t.get(e.IStandaloneThemeService),i=r.getColorTheme();e.isHighContrast(i.type)?(r.setTheme(this._originalThemeName||(e.isDark(i.type)?`vs-dark`:`vs`)),this._originalThemeName=null):(r.setTheme(e.isDark(i.type)?e.HC_BLACK_THEME_NAME:e.HC_LIGHT_THEME_NAME),this._originalThemeName=i.themeName)}};e.registerEditorAction(mP),Object.defineProperty(exports,`CompletionItemKind`,{enumerable:!0,get:function(){return Es}}),Object.defineProperty(exports,`DEFAULT_DEPRECATION_REASON`,{enumerable:!0,get:function(){return xn}}),Object.defineProperty(exports,`DirectiveLocation`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`GraphQLBoolean`,{enumerable:!0,get:function(){return fn}}),Object.defineProperty(exports,`GraphQLDeprecatedDirective`,{enumerable:!0,get:function(){return Sn}}),Object.defineProperty(exports,`GraphQLDirective`,{enumerable:!0,get:function(){return vn}}),Object.defineProperty(exports,`GraphQLEnumType`,{enumerable:!0,get:function(){return Qt}}),Object.defineProperty(exports,`GraphQLError`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`GraphQLFloat`,{enumerable:!0,get:function(){return dn}}),Object.defineProperty(exports,`GraphQLID`,{enumerable:!0,get:function(){return pn}}),Object.defineProperty(exports,`GraphQLIncludeDirective`,{enumerable:!0,get:function(){return yn}}),Object.defineProperty(exports,`GraphQLInputObjectType`,{enumerable:!0,get:function(){return tn}}),Object.defineProperty(exports,`GraphQLInt`,{enumerable:!0,get:function(){return un}}),Object.defineProperty(exports,`GraphQLInterfaceType`,{enumerable:!0,get:function(){return Yt}}),Object.defineProperty(exports,`GraphQLList`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`GraphQLNonNull`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`GraphQLObjectType`,{enumerable:!0,get:function(){return Vt}}),Object.defineProperty(exports,`GraphQLScalarType`,{enumerable:!0,get:function(){return Bt}}),Object.defineProperty(exports,`GraphQLSchema`,{enumerable:!0,get:function(){return Gn}}),Object.defineProperty(exports,`GraphQLSkipDirective`,{enumerable:!0,get:function(){return bn}}),Object.defineProperty(exports,`GraphQLString`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`GraphQLUnionType`,{enumerable:!0,get:function(){return Xt}}),Object.defineProperty(exports,`Kind`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`Lexer`,{enumerable:!0,get:function(){return le}}),Object.defineProperty(exports,`OperationTypeNode`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`Position`,{enumerable:!0,get:function(){return js}}),Object.defineProperty(exports,`SchemaMetaFieldDef`,{enumerable:!0,get:function(){return Rn}}),Object.defineProperty(exports,`Source`,{enumerable:!0,get:function(){return Re}}),Object.defineProperty(exports,`TokenKind`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`TypeInfo`,{enumerable:!0,get:function(){return mr}}),Object.defineProperty(exports,`TypeKind`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`TypeMetaFieldDef`,{enumerable:!0,get:function(){return zn}}),Object.defineProperty(exports,`TypeNameMetaFieldDef`,{enumerable:!0,get:function(){return Bn}}),Object.defineProperty(exports,`addPath`,{enumerable:!0,get:function(){return xi}}),Object.defineProperty(exports,`assertInterfaceType`,{enumerable:!0,get:function(){return wt}}),Object.defineProperty(exports,`assertNullableType`,{enumerable:!0,get:function(){return Pt}}),Object.defineProperty(exports,`assertObjectType`,{enumerable:!0,get:function(){return Ct}}),Object.defineProperty(exports,`assertValidSchema`,{enumerable:!0,get:function(){return Jn}}),Object.defineProperty(exports,`astFromValue`,{enumerable:!0,get:function(){return On}}),Object.defineProperty(exports,`buildASTSchema`,{enumerable:!0,get:function(){return Sa}}),Object.defineProperty(exports,`buildSchema`,{enumerable:!0,get:function(){return Ca}}),Object.defineProperty(exports,`coerceInputValue`,{enumerable:!0,get:function(){return Ci}}),Object.defineProperty(exports,`collectFields`,{enumerable:!0,get:function(){return Pi}}),Object.defineProperty(exports,`collectSubfields`,{enumerable:!0,get:function(){return Fi}}),Object.defineProperty(exports,`devAssert`,{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,`doTypesOverlap`,{enumerable:!0,get:function(){return sn}}),Object.defineProperty(exports,`getArgumentValues`,{enumerable:!0,get:function(){return ji}}),Object.defineProperty(exports,`getContextAtPosition`,{enumerable:!0,get:function(){return xs}}),Object.defineProperty(exports,`getDirectiveValues`,{enumerable:!0,get:function(){return Mi}}),Object.defineProperty(exports,`getHoverInformation`,{enumerable:!0,get:function(){return Fs}}),Object.defineProperty(exports,`getNamedType`,{enumerable:!0,get:function(){return Lt}}),Object.defineProperty(exports,`getNullableType`,{enumerable:!0,get:function(){return Ft}}),Object.defineProperty(exports,`getVariableValues`,{enumerable:!0,get:function(){return ki}}),Object.defineProperty(exports,`inspect`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`introspectionTypes`,{enumerable:!0,get:function(){return Vn}}),Object.defineProperty(exports,`invariant`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`isAbstractType`,{enumerable:!0,get:function(){return jt}}),Object.defineProperty(exports,`isCompositeType`,{enumerable:!0,get:function(){return At}}),Object.defineProperty(exports,`isEnumType`,{enumerable:!0,get:function(){return Et}}),Object.defineProperty(exports,`isInputObjectType`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`isInputType`,{enumerable:!0,get:function(){return Dt}}),Object.defineProperty(exports,`isInterfaceType`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`isIntrospectionType`,{enumerable:!0,get:function(){return Hn}}),Object.defineProperty(exports,`isIterableObject`,{enumerable:!0,get:function(){return Dn}}),Object.defineProperty(exports,`isLeafType`,{enumerable:!0,get:function(){return kt}}),Object.defineProperty(exports,`isListType`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`isNamedType`,{enumerable:!0,get:function(){return It}}),Object.defineProperty(exports,`isNonNullType`,{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,`isNullableType`,{enumerable:!0,get:function(){return Nt}}),Object.defineProperty(exports,`isObjectLike`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`isObjectType`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`isOutputType`,{enumerable:!0,get:function(){return Ot}}),Object.defineProperty(exports,`isPrintableAsBlockString`,{enumerable:!0,get:function(){return se}}),Object.defineProperty(exports,`isPunctuatorTokenKind`,{enumerable:!0,get:function(){return ue}}),Object.defineProperty(exports,`isScalarType`,{enumerable:!0,get:function(){return St}}),Object.defineProperty(exports,`isSchema`,{enumerable:!0,get:function(){return Un}}),Object.defineProperty(exports,`isSource`,{enumerable:!0,get:function(){return ze}}),Object.defineProperty(exports,`isSpecifiedDirective`,{enumerable:!0,get:function(){return En}}),Object.defineProperty(exports,`isSpecifiedScalarType`,{enumerable:!0,get:function(){return hn}}),Object.defineProperty(exports,`isTypeSystemDefinitionNode`,{enumerable:!0,get:function(){return vr}}),Object.defineProperty(exports,`isUnionType`,{enumerable:!0,get:function(){return Tt}}),Object.defineProperty(exports,`keyValMap`,{enumerable:!0,get:function(){return Ye}}),Object.defineProperty(exports,`parse`,{enumerable:!0,get:function(){return Be}}),Object.defineProperty(exports,`parseValue`,{enumerable:!0,get:function(){return Ve}}),Object.defineProperty(exports,`pathToArray`,{enumerable:!0,get:function(){return Si}}),Object.defineProperty(exports,`print`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`printBlockString`,{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,`registerLanguage`,{enumerable:!0,get:function(){return rc}}),Object.defineProperty(exports,`specifiedDirectives`,{enumerable:!0,get:function(){return Tn}}),Object.defineProperty(exports,`specifiedScalarTypes`,{enumerable:!0,get:function(){return mn}}),Object.defineProperty(exports,`typeFromAST`,{enumerable:!0,get:function(){return pr}}),Object.defineProperty(exports,`validate`,{enumerable:!0,get:function(){return ma}}),Object.defineProperty(exports,`valueFromAST`,{enumerable:!0,get:function(){return Ei}}),Object.defineProperty(exports,`valueFromASTUntyped`,{enumerable:!0,get:function(){return vt}}),Object.defineProperty(exports,`visit`,{enumerable:!0,get:function(){return ut}}),Object.defineProperty(exports,`visitWithTypeInfo`,{enumerable:!0,get:function(){return gr}});