UNPKG

monaco-editor

Version:
12 lines (8 loc) • 22.8 kB
var ee=Object.defineProperty;var te=(m,r,C)=>r in m?ee(m,r,{enumerable:!0,configurable:!0,writable:!0,value:C}):m[r]=C;var b=(m,r,C)=>(te(m,typeof r!="symbol"?r+"":r,C),C);define("vs/tsMode.0cda7d07",["exports","./editor.api.001a2486","./workers.8ff654dc","./language/typescript/monaco.contribution"],function(m,r,C,J){"use strict";class P{constructor(e,t){b(this,"_configChangeListener");b(this,"_updateExtraLibsToken");b(this,"_extraLibsChangeListener");b(this,"_worker");b(this,"_client");this._modeId=e,this._defaults=t,this._worker=null,this._client=null,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker()),this._updateExtraLibsToken=0,this._extraLibsChangeListener=this._defaults.onDidExtraLibsChange(()=>this._updateExtraLibs())}dispose(){this._configChangeListener.dispose(),this._extraLibsChangeListener.dispose(),this._stopWorker()}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}async _updateExtraLibs(){if(!this._worker)return;const e=++this._updateExtraLibsToken,t=await this._worker.getProxy();this._updateExtraLibsToken===e&&t.updateExtraLibs(this._defaults.getExtraLibs())}_getClient(){return this._client||(this._client=(async()=>(this._worker=C.createWebWorker({moduleId:"vs/language/typescript/tsWorker",label:this._modeId,keepIdleModels:!0,createData:{compilerOptions:this._defaults.getCompilerOptions(),extraLibs:this._defaults.getExtraLibs(),customWorkerPath:this._defaults.workerOptions.customWorkerPath,inlayHintsOptions:this._defaults.inlayHintsOptions}}),this._defaults.getEagerModelSync()?await this._worker.withSyncedResources(r.editor.getModels().filter(e=>e.getLanguageId()===this._modeId).map(e=>e.uri)):await this._worker.getProxy()))()),this._client}async getLanguageServiceWorker(...e){const t=await this._getClient();return this._worker&&await this._worker.withSyncedResources(e),t}}const s={};s["lib.d.ts"]=!0,s["lib.decorators.d.ts"]=!0,s["lib.decorators.legacy.d.ts"]=!0,s["lib.dom.asynciterable.d.ts"]=!0,s["lib.dom.d.ts"]=!0,s["lib.dom.iterable.d.ts"]=!0,s["lib.es2015.collection.d.ts"]=!0,s["lib.es2015.core.d.ts"]=!0,s["lib.es2015.d.ts"]=!0,s["lib.es2015.generator.d.ts"]=!0,s["lib.es2015.iterable.d.ts"]=!0,s["lib.es2015.promise.d.ts"]=!0,s["lib.es2015.proxy.d.ts"]=!0,s["lib.es2015.reflect.d.ts"]=!0,s["lib.es2015.symbol.d.ts"]=!0,s["lib.es2015.symbol.wellknown.d.ts"]=!0,s["lib.es2016.array.include.d.ts"]=!0,s["lib.es2016.d.ts"]=!0,s["lib.es2016.full.d.ts"]=!0,s["lib.es2016.intl.d.ts"]=!0,s["lib.es2017.d.ts"]=!0,s["lib.es2017.date.d.ts"]=!0,s["lib.es2017.full.d.ts"]=!0,s["lib.es2017.intl.d.ts"]=!0,s["lib.es2017.object.d.ts"]=!0,s["lib.es2017.sharedmemory.d.ts"]=!0,s["lib.es2017.string.d.ts"]=!0,s["lib.es2017.typedarrays.d.ts"]=!0,s["lib.es2018.asyncgenerator.d.ts"]=!0,s["lib.es2018.asynciterable.d.ts"]=!0,s["lib.es2018.d.ts"]=!0,s["lib.es2018.full.d.ts"]=!0,s["lib.es2018.intl.d.ts"]=!0,s["lib.es2018.promise.d.ts"]=!0,s["lib.es2018.regexp.d.ts"]=!0,s["lib.es2019.array.d.ts"]=!0,s["lib.es2019.d.ts"]=!0,s["lib.es2019.full.d.ts"]=!0,s["lib.es2019.intl.d.ts"]=!0,s["lib.es2019.object.d.ts"]=!0,s["lib.es2019.string.d.ts"]=!0,s["lib.es2019.symbol.d.ts"]=!0,s["lib.es2020.bigint.d.ts"]=!0,s["lib.es2020.d.ts"]=!0,s["lib.es2020.date.d.ts"]=!0,s["lib.es2020.full.d.ts"]=!0,s["lib.es2020.intl.d.ts"]=!0,s["lib.es2020.number.d.ts"]=!0,s["lib.es2020.promise.d.ts"]=!0,s["lib.es2020.sharedmemory.d.ts"]=!0,s["lib.es2020.string.d.ts"]=!0,s["lib.es2020.symbol.wellknown.d.ts"]=!0,s["lib.es2021.d.ts"]=!0,s["lib.es2021.full.d.ts"]=!0,s["lib.es2021.intl.d.ts"]=!0,s["lib.es2021.promise.d.ts"]=!0,s["lib.es2021.string.d.ts"]=!0,s["lib.es2021.weakref.d.ts"]=!0,s["lib.es2022.array.d.ts"]=!0,s["lib.es2022.d.ts"]=!0,s["lib.es2022.error.d.ts"]=!0,s["lib.es2022.full.d.ts"]=!0,s["lib.es2022.intl.d.ts"]=!0,s["lib.es2022.object.d.ts"]=!0,s["lib.es2022.regexp.d.ts"]=!0,s["lib.es2022.sharedmemory.d.ts"]=!0,s["lib.es2022.string.d.ts"]=!0,s["lib.es2023.array.d.ts"]=!0,s["lib.es2023.collection.d.ts"]=!0,s["lib.es2023.d.ts"]=!0,s["lib.es2023.full.d.ts"]=!0,s["lib.es5.d.ts"]=!0,s["lib.es6.d.ts"]=!0,s["lib.esnext.collection.d.ts"]=!0,s["lib.esnext.d.ts"]=!0,s["lib.esnext.decorators.d.ts"]=!0,s["lib.esnext.disposable.d.ts"]=!0,s["lib.esnext.full.d.ts"]=!0,s["lib.esnext.intl.d.ts"]=!0,s["lib.esnext.object.d.ts"]=!0,s["lib.esnext.promise.d.ts"]=!0,s["lib.scripthost.d.ts"]=!0,s["lib.webworker.asynciterable.d.ts"]=!0,s["lib.webworker.d.ts"]=!0,s["lib.webworker.importscripts.d.ts"]=!0,s["lib.webworker.iterable.d.ts"]=!0;function D(g,e,t=0){if(typeof g=="string")return g;if(g===void 0)return"";let n="";if(t){n+=e;for(let i=0;i<t;i++)n+=" "}if(n+=g.messageText,t++,g.next)for(const i of g.next)n+=D(i,e,t);return n}function S(g){return g?g.map(e=>e.text).join(""):""}class k{constructor(e){this._worker=e}_textSpanToRange(e,t){let n=e.getPositionAt(t.start),i=e.getPositionAt(t.start+t.length),{lineNumber:f,column:u}=n,{lineNumber:a,column:c}=i;return{startLineNumber:f,startColumn:u,endLineNumber:a,endColumn:c}}}class O{constructor(e){b(this,"_libFiles");b(this,"_hasFetchedLibFiles");b(this,"_fetchLibFilesPromise");this._worker=e,this._libFiles={},this._hasFetchedLibFiles=!1,this._fetchLibFilesPromise=null}isLibFile(e){return e&&e.path.indexOf("/lib.")===0?!!s[e.path.slice(1)]:!1}getOrCreateModel(e){const t=r.Uri.parse(e),n=r.editor.getModel(t);if(n)return n;if(this.isLibFile(t)&&this._hasFetchedLibFiles)return r.editor.createModel(this._libFiles[t.path.slice(1)],"typescript",t);const i=J.typescriptDefaults.getExtraLibs()[e];return i?r.editor.createModel(i.content,"typescript",t):null}_containsLibFile(e){for(let t of e)if(this.isLibFile(t))return!0;return!1}async fetchLibFilesIfNecessary(e){!this._containsLibFile(e)||await this._fetchLibFiles()}_fetchLibFiles(){return this._fetchLibFilesPromise||(this._fetchLibFilesPromise=this._worker().then(e=>e.getLibFiles()).then(e=>{this._hasFetchedLibFiles=!0,this._libFiles=e})),this._fetchLibFilesPromise}}class M extends k{constructor(t,n,i,f){super(f);b(this,"_disposables",[]);b(this,"_listener",Object.create(null));this._libFiles=t,this._defaults=n,this._selector=i;const u=o=>{if(o.getLanguageId()!==i)return;const p=()=>{const{onlyVisible:v}=this._defaults.getDiagnosticsOptions();v?o.isAttachedToEditor()&&this._doValidate(o):this._doValidate(o)};let d;const h=o.onDidChangeContent(()=>{clearTimeout(d),d=window.setTimeout(p,500)}),w=o.onDidChangeAttached(()=>{const{onlyVisible:v}=this._defaults.getDiagnosticsOptions();v&&(o.isAttachedToEditor()?p():r.editor.setModelMarkers(o,this._selector,[]))});this._listener[o.uri.toString()]={dispose(){h.dispose(),w.dispose(),clearTimeout(d)}},p()},a=o=>{r.editor.setModelMarkers(o,this._selector,[]);const p=o.uri.toString();this._listener[p]&&(this._listener[p].dispose(),delete this._listener[p])};this._disposables.push(r.editor.onDidCreateModel(o=>u(o))),this._disposables.push(r.editor.onWillDisposeModel(a)),this._disposables.push(r.editor.onDidChangeModelLanguage(o=>{a(o.model),u(o.model)})),this._disposables.push({dispose(){for(const o of r.editor.getModels())a(o)}});const c=()=>{for(const o of r.editor.getModels())a(o),u(o)};this._disposables.push(this._defaults.onDidChange(c)),this._disposables.push(this._defaults.onDidExtraLibsChange(c)),r.editor.getModels().forEach(o=>u(o))}dispose(){this._disposables.forEach(t=>t&&t.dispose()),this._disposables=[]}async _doValidate(t){const n=await this._worker(t.uri);if(t.isDisposed())return;const i=[],{noSyntaxValidation:f,noSemanticValidation:u,noSuggestionDiagnostics:a}=this._defaults.getDiagnosticsOptions();f||i.push(n.getSyntacticDiagnostics(t.uri.toString())),u||i.push(n.getSemanticDiagnostics(t.uri.toString())),a||i.push(n.getSuggestionDiagnostics(t.uri.toString()));const c=await Promise.all(i);if(!c||t.isDisposed())return;const o=c.reduce((d,h)=>h.concat(d),[]).filter(d=>(this._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore||[]).indexOf(d.code)===-1),p=o.map(d=>d.relatedInformation||[]).reduce((d,h)=>h.concat(d),[]).map(d=>d.file?r.Uri.parse(d.file.fileName):null);await this._libFiles.fetchLibFilesIfNecessary(p),!t.isDisposed()&&r.editor.setModelMarkers(t,this._selector,o.map(d=>this._convertDiagnostics(t,d)))}_convertDiagnostics(t,n){const i=n.start||0,f=n.length||1,{lineNumber:u,column:a}=t.getPositionAt(i),{lineNumber:c,column:o}=t.getPositionAt(i+f),p=[];return n.reportsUnnecessary&&p.push(r.MarkerTag.Unnecessary),n.reportsDeprecated&&p.push(r.MarkerTag.Deprecated),{severity:this._tsDiagnosticCategoryToMarkerSeverity(n.category),startLineNumber:u,startColumn:a,endLineNumber:c,endColumn:o,message:D(n.messageText,` `),code:n.code.toString(),tags:p,relatedInformation:this._convertRelatedInformation(t,n.relatedInformation)}}_convertRelatedInformation(t,n){if(!n)return[];const i=[];return n.forEach(f=>{let u=t;if(f.file&&(u=this._libFiles.getOrCreateModel(f.file.fileName)),!u)return;const a=f.start||0,c=f.length||1,{lineNumber:o,column:p}=u.getPositionAt(a),{lineNumber:d,column:h}=u.getPositionAt(a+c);i.push({resource:u.uri,startLineNumber:o,startColumn:p,endLineNumber:d,endColumn:h,message:D(f.messageText,` `)})}),i}_tsDiagnosticCategoryToMarkerSeverity(t){switch(t){case 1:return r.MarkerSeverity.Error;case 3:return r.MarkerSeverity.Info;case 0:return r.MarkerSeverity.Warning;case 2:return r.MarkerSeverity.Hint}return r.MarkerSeverity.Info}}class x extends k{get triggerCharacters(){return["."]}async provideCompletionItems(e,t,n,i){const f=e.getWordUntilPosition(t),u=new r.Range(t.lineNumber,f.startColumn,t.lineNumber,f.endColumn),a=e.uri,c=e.getOffsetAt(t),o=await this._worker(a);if(e.isDisposed())return;const p=await o.getCompletionsAtPosition(a.toString(),c);return!p||e.isDisposed()?void 0:{suggestions:p.entries.map(h=>{let w=u;if(h.replacementSpan){const _=e.getPositionAt(h.replacementSpan.start),F=e.getPositionAt(h.replacementSpan.start+h.replacementSpan.length);w=new r.Range(_.lineNumber,_.column,F.lineNumber,F.column)}const v=[];return h.kindModifiers!==void 0&&h.kindModifiers.indexOf("deprecated")!==-1&&v.push(r.languages.CompletionItemTag.Deprecated),{uri:a,position:t,offset:c,range:w,label:h.name,insertText:h.name,sortText:h.sortText,kind:x.convertKind(h.kind),tags:v}})}}async resolveCompletionItem(e,t){const n=e,i=n.uri,f=n.position,u=n.offset,c=await(await this._worker(i)).getCompletionEntryDetails(i.toString(),u,n.label);return c?{uri:i,position:f,label:c.name,kind:x.convertKind(c.kind),detail:S(c.displayParts),documentation:{value:x.createDocumentationString(c)}}:n}static convertKind(e){switch(e){case l.primitiveType:case l.keyword:return r.languages.CompletionItemKind.Keyword;case l.variable:case l.localVariable:return r.languages.CompletionItemKind.Variable;case l.memberVariable:case l.memberGetAccessor:case l.memberSetAccessor:return r.languages.CompletionItemKind.Field;case l.function:case l.memberFunction:case l.constructSignature:case l.callSignature:case l.indexSignature:return r.languages.CompletionItemKind.Function;case l.enum:return r.languages.CompletionItemKind.Enum;case l.module:return r.languages.CompletionItemKind.Module;case l.class:return r.languages.CompletionItemKind.Class;case l.interface:return r.languages.CompletionItemKind.Interface;case l.warning:return r.languages.CompletionItemKind.File}return r.languages.CompletionItemKind.Property}static createDocumentationString(e){let t=S(e.documentation);if(e.tags)for(const n of e.tags)t+=` ${N(n)}`;return t}}function N(g){let e=`*@${g.name}*`;if(g.name==="param"&&g.text){const[t,...n]=g.text;e+=`\`${t.text}\``,n.length>0&&(e+=` \u2014 ${n.map(i=>i.text).join(" ")}`)}else Array.isArray(g.text)?e+=` \u2014 ${g.text.map(t=>t.text).join(" ")}`:g.text&&(e+=` \u2014 ${g.text}`);return e}class T extends k{constructor(){super(...arguments);b(this,"signatureHelpTriggerCharacters",["(",","])}static _toSignatureHelpTriggerReason(t){switch(t.triggerKind){case r.languages.SignatureHelpTriggerKind.TriggerCharacter:return t.triggerCharacter?t.isRetrigger?{kind:"retrigger",triggerCharacter:t.triggerCharacter}:{kind:"characterTyped",triggerCharacter:t.triggerCharacter}:{kind:"invoked"};case r.languages.SignatureHelpTriggerKind.ContentChange:return t.isRetrigger?{kind:"retrigger"}:{kind:"invoked"};case r.languages.SignatureHelpTriggerKind.Invoke:default:return{kind:"invoked"}}}async provideSignatureHelp(t,n,i,f){const u=t.uri,a=t.getOffsetAt(n),c=await this._worker(u);if(t.isDisposed())return;const o=await c.getSignatureHelpItems(u.toString(),a,{triggerReason:T._toSignatureHelpTriggerReason(f)});if(!o||t.isDisposed())return;const p={activeSignature:o.selectedItemIndex,activeParameter:o.argumentIndex,signatures:[]};return o.items.forEach(d=>{const h={label:"",parameters:[]};h.documentation={value:S(d.documentation)},h.label+=S(d.prefixDisplayParts),d.parameters.forEach((w,v,_)=>{const F=S(w.displayParts),Z={label:F,documentation:{value:S(w.documentation)}};h.label+=F,h.parameters.push(Z),v<_.length-1&&(h.label+=S(d.separatorDisplayParts))}),h.label+=S(d.suffixDisplayParts),p.signatures.push(h)}),{value:p,dispose(){}}}}class R extends k{async provideHover(e,t,n){const i=e.uri,f=e.getOffsetAt(t),u=await this._worker(i);if(e.isDisposed())return;const a=await u.getQuickInfoAtPosition(i.toString(),f);if(!a||e.isDisposed())return;const c=S(a.documentation),o=a.tags?a.tags.map(d=>N(d)).join(` `):"",p=S(a.displayParts);return{range:this._textSpanToRange(e,a.textSpan),contents:[{value:"```typescript\n"+p+"\n```\n"},{value:c+(o?` `+o:"")}]}}}class H extends k{async provideDocumentHighlights(e,t,n){const i=e.uri,f=e.getOffsetAt(t),u=await this._worker(i);if(e.isDisposed())return;const a=await u.getDocumentHighlights(i.toString(),f,[i.toString()]);if(!(!a||e.isDisposed()))return a.flatMap(c=>c.highlightSpans.map(o=>({range:this._textSpanToRange(e,o.textSpan),kind:o.kind==="writtenReference"?r.languages.DocumentHighlightKind.Write:r.languages.DocumentHighlightKind.Text})))}}class E extends k{constructor(e,t){super(t),this._libFiles=e}async provideDefinition(e,t,n){const i=e.uri,f=e.getOffsetAt(t),u=await this._worker(i);if(e.isDisposed())return;const a=await u.getDefinitionAtPosition(i.toString(),f);if(!a||e.isDisposed()||(await this._libFiles.fetchLibFilesIfNecessary(a.map(o=>r.Uri.parse(o.fileName))),e.isDisposed()))return;const c=[];for(let o of a){const p=this._libFiles.getOrCreateModel(o.fileName);p&&c.push({uri:p.uri,range:this._textSpanToRange(p,o.textSpan)})}return c}}class W extends k{constructor(e,t){super(t),this._libFiles=e}async provideReferences(e,t,n,i){const f=e.uri,u=e.getOffsetAt(t),a=await this._worker(f);if(e.isDisposed())return;const c=await a.getReferencesAtPosition(f.toString(),u);if(!c||e.isDisposed()||(await this._libFiles.fetchLibFilesIfNecessary(c.map(p=>r.Uri.parse(p.fileName))),e.isDisposed()))return;const o=[];for(let p of c){const d=this._libFiles.getOrCreateModel(p.fileName);d&&o.push({uri:d.uri,range:this._textSpanToRange(d,p.textSpan)})}return o}}class V extends k{async provideDocumentSymbols(e,t){const n=e.uri,i=await this._worker(n);if(e.isDisposed())return;const f=await i.getNavigationTree(n.toString());if(!f||e.isDisposed())return;const u=(c,o)=>{var d;return{name:c.text,detail:"",kind:y[c.kind]||r.languages.SymbolKind.Variable,range:this._textSpanToRange(e,c.spans[0]),selectionRange:this._textSpanToRange(e,c.spans[0]),tags:[],children:(d=c.childItems)==null?void 0:d.map(h=>u(h,c.text)),containerName:o}};return f.childItems?f.childItems.map(c=>u(c)):[]}}class l{}b(l,"unknown",""),b(l,"keyword","keyword"),b(l,"script","script"),b(l,"module","module"),b(l,"class","class"),b(l,"interface","interface"),b(l,"type","type"),b(l,"enum","enum"),b(l,"variable","var"),b(l,"localVariable","local var"),b(l,"function","function"),b(l,"localFunction","local function"),b(l,"memberFunction","method"),b(l,"memberGetAccessor","getter"),b(l,"memberSetAccessor","setter"),b(l,"memberVariable","property"),b(l,"constructorImplementation","constructor"),b(l,"callSignature","call"),b(l,"indexSignature","index"),b(l,"constructSignature","construct"),b(l,"parameter","parameter"),b(l,"typeParameter","type parameter"),b(l,"primitiveType","primitive type"),b(l,"label","label"),b(l,"alias","alias"),b(l,"const","const"),b(l,"let","let"),b(l,"warning","warning");let y=Object.create(null);y[l.module]=r.languages.SymbolKind.Module,y[l.class]=r.languages.SymbolKind.Class,y[l.enum]=r.languages.SymbolKind.Enum,y[l.interface]=r.languages.SymbolKind.Interface,y[l.memberFunction]=r.languages.SymbolKind.Method,y[l.memberVariable]=r.languages.SymbolKind.Property,y[l.memberGetAccessor]=r.languages.SymbolKind.Property,y[l.memberSetAccessor]=r.languages.SymbolKind.Property,y[l.variable]=r.languages.SymbolKind.Variable,y[l.const]=r.languages.SymbolKind.Variable,y[l.localVariable]=r.languages.SymbolKind.Variable,y[l.variable]=r.languages.SymbolKind.Variable,y[l.function]=r.languages.SymbolKind.Function,y[l.localFunction]=r.languages.SymbolKind.Function;class A extends k{static _convertOptions(e){return{ConvertTabsToSpaces:e.insertSpaces,TabSize:e.tabSize,IndentSize:e.tabSize,IndentStyle:2,NewLineCharacter:` `,InsertSpaceAfterCommaDelimiter:!0,InsertSpaceAfterSemicolonInForStatements:!0,InsertSpaceBeforeAndAfterBinaryOperators:!0,InsertSpaceAfterKeywordsInControlFlowStatements:!0,InsertSpaceAfterFunctionKeywordForAnonymousFunctions:!0,InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis:!1,InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets:!1,InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces:!1,PlaceOpenBraceOnNewLineForControlBlocks:!1,PlaceOpenBraceOnNewLineForFunctions:!1}}_convertTextChanges(e,t){return{text:t.newText,range:this._textSpanToRange(e,t.span)}}}class K extends A{constructor(){super(...arguments);b(this,"canFormatMultipleRanges",!1)}async provideDocumentRangeFormattingEdits(t,n,i,f){const u=t.uri,a=t.getOffsetAt({lineNumber:n.startLineNumber,column:n.startColumn}),c=t.getOffsetAt({lineNumber:n.endLineNumber,column:n.endColumn}),o=await this._worker(u);if(t.isDisposed())return;const p=await o.getFormattingEditsForRange(u.toString(),a,c,A._convertOptions(i));if(!(!p||t.isDisposed()))return p.map(d=>this._convertTextChanges(t,d))}}class j extends A{get autoFormatTriggerCharacters(){return[";","}",` `]}async provideOnTypeFormattingEdits(e,t,n,i,f){const u=e.uri,a=e.getOffsetAt(t),c=await this._worker(u);if(e.isDisposed())return;const o=await c.getFormattingEditsAfterKeystroke(u.toString(),a,n,A._convertOptions(i));if(!(!o||e.isDisposed()))return o.map(p=>this._convertTextChanges(e,p))}}class B extends A{async provideCodeActions(e,t,n,i){const f=e.uri,u=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),a=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),c=A._convertOptions(e.getOptions()),o=n.markers.filter(w=>w.code).map(w=>w.code).map(Number),p=await this._worker(f);if(e.isDisposed())return;const d=await p.getCodeFixesAtPosition(f.toString(),u,a,o,c);return!d||e.isDisposed()?{actions:[],dispose:()=>{}}:{actions:d.filter(w=>w.changes.filter(v=>v.isNewFile).length===0).map(w=>this._tsCodeFixActionToMonacoCodeAction(e,n,w)),dispose:()=>{}}}_tsCodeFixActionToMonacoCodeAction(e,t,n){const i=[];for(const u of n.changes)for(const a of u.textChanges)i.push({resource:e.uri,versionId:void 0,textEdit:{range:this._textSpanToRange(e,a.span),text:a.newText}});return{title:n.description,edit:{edits:i},diagnostics:t.markers,kind:"quickfix"}}}class U extends k{constructor(e,t){super(t),this._libFiles=e}async provideRenameEdits(e,t,n,i){const f=e.uri,u=f.toString(),a=e.getOffsetAt(t),c=await this._worker(f);if(e.isDisposed())return;const o=await c.getRenameInfo(u,a,{allowRenameOfImportPath:!1});if(o.canRename===!1)return{edits:[],rejectReason:o.localizedErrorMessage};if(o.fileToRename!==void 0)throw new Error("Renaming files is not supported.");const p=await c.findRenameLocations(u,a,!1,!1,!1);if(!p||e.isDisposed())return;const d=[];for(const h of p){const w=this._libFiles.getOrCreateModel(h.fileName);if(w)d.push({resource:w.uri,versionId:void 0,textEdit:{range:this._textSpanToRange(w,h.textSpan),text:n}});else throw new Error(`Unknown file ${h.fileName}.`)}return{edits:d}}}class $ extends k{async provideInlayHints(e,t,n){const i=e.uri,f=i.toString(),u=e.getOffsetAt({lineNumber:t.startLineNumber,column:t.startColumn}),a=e.getOffsetAt({lineNumber:t.endLineNumber,column:t.endColumn}),c=await this._worker(i);return e.isDisposed()?null:{hints:(await c.provideInlayHints(f,u,a)).map(d=>({...d,label:d.text,position:e.getPositionAt(d.position),kind:this._convertHintKind(d.kind)})),dispose:()=>{}}}_convertHintKind(e){switch(e){case"Parameter":return r.languages.InlayHintKind.Parameter;case"Type":return r.languages.InlayHintKind.Type;default:return r.languages.InlayHintKind.Type}}}let L,I;function G(g){I=z(g,"typescript")}function Q(g){L=z(g,"javascript")}function q(){return new Promise((g,e)=>{if(!L)return e("JavaScript not registered!");g(L)})}function X(){return new Promise((g,e)=>{if(!I)return e("TypeScript not registered!");g(I)})}function z(g,e){const t=[],n=new P(e,g),i=(...a)=>n.getLanguageServiceWorker(...a),f=new O(i);function u(){const{modeConfiguration:a}=g;Y(t),a.completionItems&&t.push(r.languages.registerCompletionItemProvider(e,new x(i))),a.signatureHelp&&t.push(r.languages.registerSignatureHelpProvider(e,new T(i))),a.hovers&&t.push(r.languages.registerHoverProvider(e,new R(i))),a.documentHighlights&&t.push(r.languages.registerDocumentHighlightProvider(e,new H(i))),a.definitions&&t.push(r.languages.registerDefinitionProvider(e,new E(f,i))),a.references&&t.push(r.languages.registerReferenceProvider(e,new W(f,i))),a.documentSymbols&&t.push(r.languages.registerDocumentSymbolProvider(e,new V(i))),a.rename&&t.push(r.languages.registerRenameProvider(e,new U(f,i))),a.documentRangeFormattingEdits&&t.push(r.languages.registerDocumentRangeFormattingEditProvider(e,new K(i))),a.onTypeFormattingEdits&&t.push(r.languages.registerOnTypeFormattingEditProvider(e,new j(i))),a.codeActions&&t.push(r.languages.registerCodeActionProvider(e,new B(i))),a.inlayHints&&t.push(r.languages.registerInlayHintsProvider(e,new $(i))),a.diagnostics&&t.push(new M(f,g,e,i))}return u(),i}function Y(g){for(;g.length;)g.pop().dispose()}m.Adapter=k,m.CodeActionAdaptor=B,m.DefinitionAdapter=E,m.DiagnosticsAdapter=M,m.DocumentHighlightAdapter=H,m.FormatAdapter=K,m.FormatHelper=A,m.FormatOnTypeAdapter=j,m.InlayHintsAdapter=$,m.Kind=l,m.LibFiles=O,m.OutlineAdapter=V,m.QuickInfoAdapter=R,m.ReferenceAdapter=W,m.RenameAdapter=U,m.SignatureHelpAdapter=T,m.SuggestAdapter=x,m.WorkerManager=P,m.flattenDiagnosticMessageText=D,m.getJavaScriptWorker=q,m.getTypeScriptWorker=X,m.setupJavaScript=Q,m.setupTypeScript=G,Object.defineProperty(m,Symbol.toStringTag,{value:"Module"})});