tmagic-editor/playground/assets/tsMode-DI9SRrRQ.js
2026-09-09 03:36:54 +00:00

12 lines
22 KiB
JavaScript

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