UNPKG

@arcgis/coding-components

Version:

Contains components for editing code in different languages. The currently supported languages are html, css, json, TypeScript, JavaScript, and Arcade.

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