{"version":3,"sources":["webpack:///./node_modules/monaco-editor/esm/vs/language/typescript/languageFeatures.js","webpack:///./node_modules/monaco-editor/esm/vs/language/typescript/workerManager.js","webpack:///./node_modules/monaco-editor/esm/vs/language/typescript/lib/lib.index.js","webpack:///./node_modules/monaco-editor/esm/vs/language/typescript/tsMode.js"],"names":["IndentStyle","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","Symbol","iterator","this","n","v","op","TypeError","call","pop","length","push","WorkerManager","modeId","defaults","_this","_modeId","_defaults","_worker","_client","_configChangeListener","onDidChange","_stopWorker","_updateExtraLibsToken","_extraLibsChangeListener","onDidExtraLibsChange","_updateExtraLibs","prototype","dispose","myToken","proxy","_a","getProxy","updateExtraLibs","getExtraLibs","_getClient","createWebWorker","moduleId","keepIdleModels","createData","compilerOptions","getCompilerOptions","extraLibs","customWorkerPath","workerOptions","inlayHintsOptions","p","getEagerModelSync","worker","withSyncedResources","getModels","filter","model","getLanguageId","map","uri","getLanguageServiceWorker","resources","_i","arguments","client","libFileSet","__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","hasOwnProperty","String","__","constructor","create","__assign","assign","s","i","flattenDiagnosticMessageText","diag","newLine","indent","undefined","messageText","kid","displayPartsToString","displayParts","displayPart","text","join","DiagnosticCategory","Adapter","_textSpanToRange","span","p1","getPositionAt","start","p2","startLineNumber","lineNumber","startColumn","column","endLineNumber","endColumn","LibFiles","_libFiles","_hasFetchedLibFiles","_fetchLibFilesPromise","isLibFile","path","indexOf","slice","getOrCreateModel","fileName","parse","getModel","createModel","matchedLibFile","content","_containsLibFile","uris","uris_1","fetchLibFilesIfNecessary","_fetchLibFiles","w","getLibFiles","libFiles","_super","DiagnosticsAdapter","_selector","_disposables","_listener","onModelAdd","handle","maybeValidate","onlyVisible","getDiagnosticsOptions","isAttachedToEditor","_doValidate","changeSubscription","onDidChangeContent","clearTimeout","window","setTimeout","visibleSubscription","onDidChangeAttached","setModelMarkers","toString","onModelRemoved","key","onDidCreateModel","onWillDisposeModel","onDidChangeModelLanguage","event","recomputeDiagostics","forEach","promises","noSyntaxValidation","noSemanticValidation","noSuggestionDiagnostics","allDiagnostics","diagnostics","relatedUris","_b","isDisposed","getSyntacticDiagnostics","getSemanticDiagnostics","getSuggestionDiagnostics","all","reduce","c","concat","diagnosticCodesToIgnore","code","relatedInformation","file","_convertDiagnostics","diagStart","diagLength","tags","reportsUnnecessary","Unnecessary","reportsDeprecated","Deprecated","severity","_tsDiagnosticCategoryToMarkerSeverity","category","message","_convertRelatedInformation","info","relatedResource","infoStart","infoLength","resource","Error","Message","Info","Warning","Suggestion","Hint","SuggestAdapter","defineProperty","get","enumerable","configurable","provideCompletionItems","position","_context","token","wordInfo","wordRange","offset","suggestions","getWordUntilPosition","getOffsetAt","getCompletionsAtPosition","entries","entry","range","replacementSpan","kindModifiers","CompletionItemTag","name","insertText","sortText","kind","convertKind","resolveCompletionItem","item","myItem","details","getCompletionEntryDetails","detail","documentation","createDocumentationString","Kind","primitiveType","keyword","CompletionItemKind","Keyword","variable","localVariable","Variable","memberVariable","memberGetAccessor","memberSetAccessor","Field","function","memberFunction","constructSignature","callSignature","indexSignature","Function","enum","Enum","module","Module","class","Class","interface","Interface","warning","File","Property","documentationString","tag","tagToString","tagLabel","paramName","rest","r","isArray","SignatureHelpAdapter","signatureHelpTriggerCharacters","_toSignatureHelpTriggerReason","context","triggerKind","SignatureHelpTriggerKind","TriggerCharacter","triggerCharacter","isRetrigger","ContentChange","Invoke","provideSignatureHelp","ret","getSignatureHelpItems","triggerReason","activeSignature","selectedItemIndex","activeParameter","argumentIndex","signatures","items","signature","parameters","prefixDisplayParts","a","parameter","separatorDisplayParts","suffixDisplayParts","QuickInfoAdapter","provideHover","contents","getQuickInfoAtPosition","textSpan","OccurrencesAdapter","provideDocumentHighlights","getOccurrencesAtPosition","isWriteAccess","DocumentHighlightKind","Write","Text","DefinitionAdapter","provideDefinition","entries_1","refModel","getDefinitionAtPosition","ReferenceAdapter","provideReferences","entries_2","getReferencesAtPosition","OutlineAdapter","provideDocumentSymbols","convert","getNavigationBarItems","bucket","containerLabel","outlineTypeTable","SymbolKind","spans","selectionRange","containerName","childItems","child","unknown","script","type","localFunction","constructorImplementation","typeParameter","alias","const","let","Method","javaScriptWorker","typeScriptWorker","FormatHelper","_convertOptions","options","ConvertTabsToSpaces","insertSpaces","TabSize","tabSize","IndentSize","Smart","NewLineCharacter","InsertSpaceAfterCommaDelimiter","InsertSpaceAfterSemicolonInForStatements","InsertSpaceBeforeAndAfterBinaryOperators","InsertSpaceAfterKeywordsInControlFlowStatements","InsertSpaceAfterFunctionKeywordForAnonymousFunctions","InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis","InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets","InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces","PlaceOpenBraceOnNewLineForControlBlocks","PlaceOpenBraceOnNewLineForFunctions","_convertTextChanges","change","newText","FormatAdapter","provideDocumentRangeFormattingEdits","startOffset","endOffset","edits","getFormattingEditsForRange","edit","FormatOnTypeAdapter","provideOnTypeFormattingEdits","ch","getFormattingEditsAfterKeystroke","CodeActionAdaptor","provideCodeActions","end","formatOptions","errorCodes","codeFixes","actions","getOptions","markers","m","Number","getCodeFixesAtPosition","fix","changes","isNewFile","_tsCodeFixActionToMonacoCodeAction","codeFix","_c","textChanges","textChange","action","title","description","RenameAdapter","provideRenameEdits","newName","renameInfo","renameLocations","renameLocations_1","renameLocation","model_1","getRenameInfo","allowRenameOfImportPath","canRename","rejectReason","localizedErrorMessage","fileToRename","findRenameLocations","InlayHintsAdapter","provideInlayHints","hints","hint","_convertHintKind","InlayHintKind","Parameter","Type","Other","setupTypeScript","setupMode","setupJavaScript","getJavaScriptWorker","getTypeScriptWorker","registerCompletionItemProvider","registerSignatureHelpProvider","registerHoverProvider","registerDocumentHighlightProvider","registerDefinitionProvider","registerReferenceProvider","registerDocumentSymbolProvider","registerDocumentRangeFormattingEditProvider","registerOnTypeFormattingEditProvider","registerCodeActionProvider","registerRenameProvider","registerInlayHintsProvider"],"mappings":"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","file":"js/chunk-2d22502a.8f7c7879.js","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n'use strict';\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { typescriptDefaults } from './monaco.contribution.js';\nimport { libFileSet } from './lib/lib.index.js';\nimport { editor, languages, Uri, Range, MarkerTag, MarkerSeverity } from './fillers/monaco-editor-core.js';\n//#region utils copied from typescript to prevent loading the entire typescriptServices ---\nvar IndentStyle;\n(function (IndentStyle) {\n IndentStyle[IndentStyle[\"None\"] = 0] = \"None\";\n IndentStyle[IndentStyle[\"Block\"] = 1] = \"Block\";\n IndentStyle[IndentStyle[\"Smart\"] = 2] = \"Smart\";\n})(IndentStyle || (IndentStyle = {}));\nexport function flattenDiagnosticMessageText(diag, newLine, indent) {\n if (indent === void 0) { indent = 0; }\n if (typeof diag === 'string') {\n return diag;\n }\n else if (diag === undefined) {\n return '';\n }\n var result = '';\n if (indent) {\n result += newLine;\n for (var i = 0; i < indent; i++) {\n result += ' ';\n }\n }\n result += diag.messageText;\n indent++;\n if (diag.next) {\n for (var _i = 0, _a = diag.next; _i < _a.length; _i++) {\n var kid = _a[_i];\n result += flattenDiagnosticMessageText(kid, newLine, indent);\n }\n }\n return result;\n}\nfunction displayPartsToString(displayParts) {\n if (displayParts) {\n return displayParts.map(function (displayPart) { return displayPart.text; }).join('');\n }\n return '';\n}\n//#endregion\nvar Adapter = /** @class */ (function () {\n function Adapter(_worker) {\n this._worker = _worker;\n }\n // protected _positionToOffset(model: editor.ITextModel, position: monaco.IPosition): number {\n // \treturn model.getOffsetAt(position);\n // }\n // protected _offsetToPosition(model: editor.ITextModel, offset: number): monaco.IPosition {\n // \treturn model.getPositionAt(offset);\n // }\n Adapter.prototype._textSpanToRange = function (model, span) {\n var p1 = model.getPositionAt(span.start);\n var p2 = model.getPositionAt(span.start + span.length);\n var startLineNumber = p1.lineNumber, startColumn = p1.column;\n var endLineNumber = p2.lineNumber, endColumn = p2.column;\n return { startLineNumber: startLineNumber, startColumn: startColumn, endLineNumber: endLineNumber, endColumn: endColumn };\n };\n return Adapter;\n}());\nexport { Adapter };\n// --- lib files\nvar LibFiles = /** @class */ (function () {\n function LibFiles(_worker) {\n this._worker = _worker;\n this._libFiles = {};\n this._hasFetchedLibFiles = false;\n this._fetchLibFilesPromise = null;\n }\n LibFiles.prototype.isLibFile = function (uri) {\n if (!uri) {\n return false;\n }\n if (uri.path.indexOf('/lib.') === 0) {\n return !!libFileSet[uri.path.slice(1)];\n }\n return false;\n };\n LibFiles.prototype.getOrCreateModel = function (fileName) {\n var uri = Uri.parse(fileName);\n var model = editor.getModel(uri);\n if (model) {\n return model;\n }\n if (this.isLibFile(uri) && this._hasFetchedLibFiles) {\n return editor.createModel(this._libFiles[uri.path.slice(1)], 'typescript', uri);\n }\n var matchedLibFile = typescriptDefaults.getExtraLibs()[fileName];\n if (matchedLibFile) {\n return editor.createModel(matchedLibFile.content, 'typescript', uri);\n }\n return null;\n };\n LibFiles.prototype._containsLibFile = function (uris) {\n for (var _i = 0, uris_1 = uris; _i < uris_1.length; _i++) {\n var uri = uris_1[_i];\n if (this.isLibFile(uri)) {\n return true;\n }\n }\n return false;\n };\n LibFiles.prototype.fetchLibFilesIfNecessary = function (uris) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this._containsLibFile(uris)) {\n // no lib files necessary\n return [2 /*return*/];\n }\n return [4 /*yield*/, this._fetchLibFiles()];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n LibFiles.prototype._fetchLibFiles = function () {\n var _this = this;\n if (!this._fetchLibFilesPromise) {\n this._fetchLibFilesPromise = this._worker()\n .then(function (w) { return w.getLibFiles(); })\n .then(function (libFiles) {\n _this._hasFetchedLibFiles = true;\n _this._libFiles = libFiles;\n });\n }\n return this._fetchLibFilesPromise;\n };\n return LibFiles;\n}());\nexport { LibFiles };\n// --- diagnostics --- ---\nvar DiagnosticCategory;\n(function (DiagnosticCategory) {\n DiagnosticCategory[DiagnosticCategory[\"Warning\"] = 0] = \"Warning\";\n DiagnosticCategory[DiagnosticCategory[\"Error\"] = 1] = \"Error\";\n DiagnosticCategory[DiagnosticCategory[\"Suggestion\"] = 2] = \"Suggestion\";\n DiagnosticCategory[DiagnosticCategory[\"Message\"] = 3] = \"Message\";\n})(DiagnosticCategory || (DiagnosticCategory = {}));\nvar DiagnosticsAdapter = /** @class */ (function (_super) {\n __extends(DiagnosticsAdapter, _super);\n function DiagnosticsAdapter(_libFiles, _defaults, _selector, worker) {\n var _this = _super.call(this, worker) || this;\n _this._libFiles = _libFiles;\n _this._defaults = _defaults;\n _this._selector = _selector;\n _this._disposables = [];\n _this._listener = Object.create(null);\n var onModelAdd = function (model) {\n if (model.getLanguageId() !== _selector) {\n return;\n }\n var maybeValidate = function () {\n var onlyVisible = _this._defaults.getDiagnosticsOptions().onlyVisible;\n if (onlyVisible) {\n if (model.isAttachedToEditor()) {\n _this._doValidate(model);\n }\n }\n else {\n _this._doValidate(model);\n }\n };\n var handle;\n var changeSubscription = model.onDidChangeContent(function () {\n clearTimeout(handle);\n handle = window.setTimeout(maybeValidate, 500);\n });\n var visibleSubscription = model.onDidChangeAttached(function () {\n var onlyVisible = _this._defaults.getDiagnosticsOptions().onlyVisible;\n if (onlyVisible) {\n if (model.isAttachedToEditor()) {\n // this model is now attached to an editor\n // => compute diagnostics\n maybeValidate();\n }\n else {\n // this model is no longer attached to an editor\n // => clear existing diagnostics\n editor.setModelMarkers(model, _this._selector, []);\n }\n }\n });\n _this._listener[model.uri.toString()] = {\n dispose: function () {\n changeSubscription.dispose();\n visibleSubscription.dispose();\n clearTimeout(handle);\n }\n };\n maybeValidate();\n };\n var onModelRemoved = function (model) {\n editor.setModelMarkers(model, _this._selector, []);\n var key = model.uri.toString();\n if (_this._listener[key]) {\n _this._listener[key].dispose();\n delete _this._listener[key];\n }\n };\n _this._disposables.push(editor.onDidCreateModel(function (model) { return onModelAdd(model); }));\n _this._disposables.push(editor.onWillDisposeModel(onModelRemoved));\n _this._disposables.push(editor.onDidChangeModelLanguage(function (event) {\n onModelRemoved(event.model);\n onModelAdd(event.model);\n }));\n _this._disposables.push({\n dispose: function () {\n for (var _i = 0, _a = editor.getModels(); _i < _a.length; _i++) {\n var model = _a[_i];\n onModelRemoved(model);\n }\n }\n });\n var recomputeDiagostics = function () {\n // redo diagnostics when options change\n for (var _i = 0, _a = editor.getModels(); _i < _a.length; _i++) {\n var model = _a[_i];\n onModelRemoved(model);\n onModelAdd(model);\n }\n };\n _this._disposables.push(_this._defaults.onDidChange(recomputeDiagostics));\n _this._disposables.push(_this._defaults.onDidExtraLibsChange(recomputeDiagostics));\n editor.getModels().forEach(function (model) { return onModelAdd(model); });\n return _this;\n }\n DiagnosticsAdapter.prototype.dispose = function () {\n this._disposables.forEach(function (d) { return d && d.dispose(); });\n this._disposables = [];\n };\n DiagnosticsAdapter.prototype._doValidate = function (model) {\n return __awaiter(this, void 0, void 0, function () {\n var worker, promises, _a, noSyntaxValidation, noSemanticValidation, noSuggestionDiagnostics, allDiagnostics, diagnostics, relatedUris;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this._worker(model.uri)];\n case 1:\n worker = _b.sent();\n if (model.isDisposed()) {\n // model was disposed in the meantime\n return [2 /*return*/];\n }\n promises = [];\n _a = this._defaults.getDiagnosticsOptions(), noSyntaxValidation = _a.noSyntaxValidation, noSemanticValidation = _a.noSemanticValidation, noSuggestionDiagnostics = _a.noSuggestionDiagnostics;\n if (!noSyntaxValidation) {\n promises.push(worker.getSyntacticDiagnostics(model.uri.toString()));\n }\n if (!noSemanticValidation) {\n promises.push(worker.getSemanticDiagnostics(model.uri.toString()));\n }\n if (!noSuggestionDiagnostics) {\n promises.push(worker.getSuggestionDiagnostics(model.uri.toString()));\n }\n return [4 /*yield*/, Promise.all(promises)];\n case 2:\n allDiagnostics = _b.sent();\n if (!allDiagnostics || model.isDisposed()) {\n // model was disposed in the meantime\n return [2 /*return*/];\n }\n diagnostics = allDiagnostics\n .reduce(function (p, c) { return c.concat(p); }, [])\n .filter(function (d) {\n return (_this._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore || []).indexOf(d.code) ===\n -1;\n });\n relatedUris = diagnostics\n .map(function (d) { return d.relatedInformation || []; })\n .reduce(function (p, c) { return c.concat(p); }, [])\n .map(function (relatedInformation) {\n return relatedInformation.file ? Uri.parse(relatedInformation.file.fileName) : null;\n });\n return [4 /*yield*/, this._libFiles.fetchLibFilesIfNecessary(relatedUris)];\n case 3:\n _b.sent();\n if (model.isDisposed()) {\n // model was disposed in the meantime\n return [2 /*return*/];\n }\n editor.setModelMarkers(model, this._selector, diagnostics.map(function (d) { return _this._convertDiagnostics(model, d); }));\n return [2 /*return*/];\n }\n });\n });\n };\n DiagnosticsAdapter.prototype._convertDiagnostics = function (model, diag) {\n var diagStart = diag.start || 0;\n var diagLength = diag.length || 1;\n var _a = model.getPositionAt(diagStart), startLineNumber = _a.lineNumber, startColumn = _a.column;\n var _b = model.getPositionAt(diagStart + diagLength), endLineNumber = _b.lineNumber, endColumn = _b.column;\n var tags = [];\n if (diag.reportsUnnecessary) {\n tags.push(MarkerTag.Unnecessary);\n }\n if (diag.reportsDeprecated) {\n tags.push(MarkerTag.Deprecated);\n }\n return {\n severity: this._tsDiagnosticCategoryToMarkerSeverity(diag.category),\n startLineNumber: startLineNumber,\n startColumn: startColumn,\n endLineNumber: endLineNumber,\n endColumn: endColumn,\n message: flattenDiagnosticMessageText(diag.messageText, '\\n'),\n code: diag.code.toString(),\n tags: tags,\n relatedInformation: this._convertRelatedInformation(model, diag.relatedInformation)\n };\n };\n DiagnosticsAdapter.prototype._convertRelatedInformation = function (model, relatedInformation) {\n var _this = this;\n if (!relatedInformation) {\n return [];\n }\n var result = [];\n relatedInformation.forEach(function (info) {\n var relatedResource = model;\n if (info.file) {\n relatedResource = _this._libFiles.getOrCreateModel(info.file.fileName);\n }\n if (!relatedResource) {\n return;\n }\n var infoStart = info.start || 0;\n var infoLength = info.length || 1;\n var _a = relatedResource.getPositionAt(infoStart), startLineNumber = _a.lineNumber, startColumn = _a.column;\n var _b = relatedResource.getPositionAt(infoStart + infoLength), endLineNumber = _b.lineNumber, endColumn = _b.column;\n result.push({\n resource: relatedResource.uri,\n startLineNumber: startLineNumber,\n startColumn: startColumn,\n endLineNumber: endLineNumber,\n endColumn: endColumn,\n message: flattenDiagnosticMessageText(info.messageText, '\\n')\n });\n });\n return result;\n };\n DiagnosticsAdapter.prototype._tsDiagnosticCategoryToMarkerSeverity = function (category) {\n switch (category) {\n case DiagnosticCategory.Error:\n return MarkerSeverity.Error;\n case DiagnosticCategory.Message:\n return MarkerSeverity.Info;\n case DiagnosticCategory.Warning:\n return MarkerSeverity.Warning;\n case DiagnosticCategory.Suggestion:\n return MarkerSeverity.Hint;\n }\n return MarkerSeverity.Info;\n };\n return DiagnosticsAdapter;\n}(Adapter));\nexport { DiagnosticsAdapter };\nvar SuggestAdapter = /** @class */ (function (_super) {\n __extends(SuggestAdapter, _super);\n function SuggestAdapter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(SuggestAdapter.prototype, \"triggerCharacters\", {\n get: function () {\n return ['.'];\n },\n enumerable: false,\n configurable: true\n });\n SuggestAdapter.prototype.provideCompletionItems = function (model, position, _context, token) {\n return __awaiter(this, void 0, void 0, function () {\n var wordInfo, wordRange, resource, offset, worker, info, suggestions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n wordInfo = model.getWordUntilPosition(position);\n wordRange = new Range(position.lineNumber, wordInfo.startColumn, position.lineNumber, wordInfo.endColumn);\n resource = model.uri;\n offset = model.getOffsetAt(position);\n return [4 /*yield*/, this._worker(resource)];\n case 1:\n worker = _a.sent();\n if (model.isDisposed()) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, worker.getCompletionsAtPosition(resource.toString(), offset)];\n case 2:\n info = _a.sent();\n if (!info || model.isDisposed()) {\n return [2 /*return*/];\n }\n suggestions = info.entries.map(function (entry) {\n var _a;\n var range = wordRange;\n if (entry.replacementSpan) {\n var p1 = model.getPositionAt(entry.replacementSpan.start);\n var p2 = model.getPositionAt(entry.replacementSpan.start + entry.replacementSpan.length);\n range = new Range(p1.lineNumber, p1.column, p2.lineNumber, p2.column);\n }\n var tags = [];\n if (((_a = entry.kindModifiers) === null || _a === void 0 ? void 0 : _a.indexOf('deprecated')) !== -1) {\n tags.push(languages.CompletionItemTag.Deprecated);\n }\n return {\n uri: resource,\n position: position,\n offset: offset,\n range: range,\n label: entry.name,\n insertText: entry.name,\n sortText: entry.sortText,\n kind: SuggestAdapter.convertKind(entry.kind),\n tags: tags\n };\n });\n return [2 /*return*/, {\n suggestions: suggestions\n }];\n }\n });\n });\n };\n SuggestAdapter.prototype.resolveCompletionItem = function (item, token) {\n return __awaiter(this, void 0, void 0, function () {\n var myItem, resource, position, offset, worker, details;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n myItem = item;\n resource = myItem.uri;\n position = myItem.position;\n offset = myItem.offset;\n return [4 /*yield*/, this._worker(resource)];\n case 1:\n worker = _a.sent();\n return [4 /*yield*/, worker.getCompletionEntryDetails(resource.toString(), offset, myItem.label)];\n case 2:\n details = _a.sent();\n if (!details) {\n return [2 /*return*/, myItem];\n }\n return [2 /*return*/, {\n uri: resource,\n position: position,\n label: details.name,\n kind: SuggestAdapter.convertKind(details.kind),\n detail: displayPartsToString(details.displayParts),\n documentation: {\n value: SuggestAdapter.createDocumentationString(details)\n }\n }];\n }\n });\n });\n };\n SuggestAdapter.convertKind = function (kind) {\n switch (kind) {\n case Kind.primitiveType:\n case Kind.keyword:\n return languages.CompletionItemKind.Keyword;\n case Kind.variable:\n case Kind.localVariable:\n return languages.CompletionItemKind.Variable;\n case Kind.memberVariable:\n case Kind.memberGetAccessor:\n case Kind.memberSetAccessor:\n return languages.CompletionItemKind.Field;\n case Kind.function:\n case Kind.memberFunction:\n case Kind.constructSignature:\n case Kind.callSignature:\n case Kind.indexSignature:\n return languages.CompletionItemKind.Function;\n case Kind.enum:\n return languages.CompletionItemKind.Enum;\n case Kind.module:\n return languages.CompletionItemKind.Module;\n case Kind.class:\n return languages.CompletionItemKind.Class;\n case Kind.interface:\n return languages.CompletionItemKind.Interface;\n case Kind.warning:\n return languages.CompletionItemKind.File;\n }\n return languages.CompletionItemKind.Property;\n };\n SuggestAdapter.createDocumentationString = function (details) {\n var documentationString = displayPartsToString(details.documentation);\n if (details.tags) {\n for (var _i = 0, _a = details.tags; _i < _a.length; _i++) {\n var tag = _a[_i];\n documentationString += \"\\n\\n\" + tagToString(tag);\n }\n }\n return documentationString;\n };\n return SuggestAdapter;\n}(Adapter));\nexport { SuggestAdapter };\nfunction tagToString(tag) {\n var tagLabel = \"*@\" + tag.name + \"*\";\n if (tag.name === 'param' && tag.text) {\n var _a = tag.text, paramName = _a[0], rest = _a.slice(1);\n tagLabel += \"`\" + paramName.text + \"`\";\n if (rest.length > 0)\n tagLabel += \" \\u2014 \" + rest.map(function (r) { return r.text; }).join(' ');\n }\n else if (Array.isArray(tag.text)) {\n tagLabel += \" \\u2014 \" + tag.text.map(function (r) { return r.text; }).join(' ');\n }\n else if (tag.text) {\n tagLabel += \" \\u2014 \" + tag.text;\n }\n return tagLabel;\n}\nvar SignatureHelpAdapter = /** @class */ (function (_super) {\n __extends(SignatureHelpAdapter, _super);\n function SignatureHelpAdapter() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.signatureHelpTriggerCharacters = ['(', ','];\n return _this;\n }\n SignatureHelpAdapter._toSignatureHelpTriggerReason = function (context) {\n switch (context.triggerKind) {\n case languages.SignatureHelpTriggerKind.TriggerCharacter:\n if (context.triggerCharacter) {\n if (context.isRetrigger) {\n return { kind: 'retrigger', triggerCharacter: context.triggerCharacter };\n }\n else {\n return { kind: 'characterTyped', triggerCharacter: context.triggerCharacter };\n }\n }\n else {\n return { kind: 'invoked' };\n }\n case languages.SignatureHelpTriggerKind.ContentChange:\n return context.isRetrigger ? { kind: 'retrigger' } : { kind: 'invoked' };\n case languages.SignatureHelpTriggerKind.Invoke:\n default:\n return { kind: 'invoked' };\n }\n };\n SignatureHelpAdapter.prototype.provideSignatureHelp = function (model, position, token, context) {\n return __awaiter(this, void 0, void 0, function () {\n var resource, offset, worker, info, ret;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n resource = model.uri;\n offset = model.getOffsetAt(position);\n return [4 /*yield*/, this._worker(resource)];\n case 1:\n worker = _a.sent();\n if (model.isDisposed()) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, worker.getSignatureHelpItems(resource.toString(), offset, {\n triggerReason: SignatureHelpAdapter._toSignatureHelpTriggerReason(context)\n })];\n case 2:\n info = _a.sent();\n if (!info || model.isDisposed()) {\n return [2 /*return*/];\n }\n ret = {\n activeSignature: info.selectedItemIndex,\n activeParameter: info.argumentIndex,\n signatures: []\n };\n info.items.forEach(function (item) {\n var signature = {\n label: '',\n parameters: []\n };\n signature.documentation = {\n value: displayPartsToString(item.documentation)\n };\n signature.label += displayPartsToString(item.prefixDisplayParts);\n item.parameters.forEach(function (p, i, a) {\n var label = displayPartsToString(p.displayParts);\n var parameter = {\n label: label,\n documentation: {\n value: displayPartsToString(p.documentation)\n }\n };\n signature.label += label;\n signature.parameters.push(parameter);\n if (i < a.length - 1) {\n signature.label += displayPartsToString(item.separatorDisplayParts);\n }\n });\n signature.label += displayPartsToString(item.suffixDisplayParts);\n ret.signatures.push(signature);\n });\n return [2 /*return*/, {\n value: ret,\n dispose: function () { }\n }];\n }\n });\n });\n };\n return SignatureHelpAdapter;\n}(Adapter));\nexport { SignatureHelpAdapter };\n// --- hover ------\nvar QuickInfoAdapter = /** @class */ (function (_super) {\n __extends(QuickInfoAdapter, _super);\n function QuickInfoAdapter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n QuickInfoAdapter.prototype.provideHover = function (model, position, token) {\n return __awaiter(this, void 0, void 0, function () {\n var resource, offset, worker, info, documentation, tags, contents;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n resource = model.uri;\n offset = model.getOffsetAt(position);\n return [4 /*yield*/, this._worker(resource)];\n case 1:\n worker = _a.sent();\n if (model.isDisposed()) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, worker.getQuickInfoAtPosition(resource.toString(), offset)];\n case 2:\n info = _a.sent();\n if (!info || model.isDisposed()) {\n return [2 /*return*/];\n }\n documentation = displayPartsToString(info.documentation);\n tags = info.tags ? info.tags.map(function (tag) { return tagToString(tag); }).join(' \\n\\n') : '';\n contents = displayPartsToString(info.displayParts);\n return [2 /*return*/, {\n range: this._textSpanToRange(model, info.textSpan),\n contents: [\n {\n value: '```typescript\\n' + contents + '\\n```\\n'\n },\n {\n value: documentation + (tags ? '\\n\\n' + tags : '')\n }\n ]\n }];\n }\n });\n });\n };\n return QuickInfoAdapter;\n}(Adapter));\nexport { QuickInfoAdapter };\n// --- occurrences ------\nvar OccurrencesAdapter = /** @class */ (function (_super) {\n __extends(OccurrencesAdapter, _super);\n function OccurrencesAdapter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n OccurrencesAdapter.prototype.provideDocumentHighlights = function (model, position, token) {\n return __awaiter(this, void 0, void 0, function () {\n var resource, offset, worker, entries;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n resource = model.uri;\n offset = model.getOffsetAt(position);\n return [4 /*yield*/, this._worker(resource)];\n case 1:\n worker = _a.sent();\n if (model.isDisposed()) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, worker.getOccurrencesAtPosition(resource.toString(), offset)];\n case 2:\n entries = _a.sent();\n if (!entries || model.isDisposed()) {\n return [2 /*return*/];\n }\n return [2 /*return*/, entries.map(function (entry) {\n return {\n range: _this._textSpanToRange(model, entry.textSpan),\n kind: entry.isWriteAccess\n ? languages.DocumentHighlightKind.Write\n : languages.DocumentHighlightKind.Text\n };\n })];\n }\n });\n });\n };\n return OccurrencesAdapter;\n}(Adapter));\nexport { OccurrencesAdapter };\n// --- definition ------\nvar DefinitionAdapter = /** @class */ (function (_super) {\n __extends(DefinitionAdapter, _super);\n function DefinitionAdapter(_libFiles, worker) {\n var _this = _super.call(this, worker) || this;\n _this._libFiles = _libFiles;\n return _this;\n }\n DefinitionAdapter.prototype.provideDefinition = function (model, position, token) {\n return __awaiter(this, void 0, void 0, function () {\n var resource, offset, worker, entries, result, _i, entries_1, entry, refModel;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n resource = model.uri;\n offset = model.getOffsetAt(position);\n return [4 /*yield*/, this._worker(resource)];\n case 1:\n worker = _a.sent();\n if (model.isDisposed()) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, worker.getDefinitionAtPosition(resource.toString(), offset)];\n case 2:\n entries = _a.sent();\n if (!entries || model.isDisposed()) {\n return [2 /*return*/];\n }\n // Fetch lib files if necessary\n return [4 /*yield*/, this._libFiles.fetchLibFilesIfNecessary(entries.map(function (entry) { return Uri.parse(entry.fileName); }))];\n case 3:\n // Fetch lib files if necessary\n _a.sent();\n if (model.isDisposed()) {\n return [2 /*return*/];\n }\n result = [];\n for (_i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n entry = entries_1[_i];\n refModel = this._libFiles.getOrCreateModel(entry.fileName);\n if (refModel) {\n result.push({\n uri: refModel.uri,\n range: this._textSpanToRange(refModel, entry.textSpan)\n });\n }\n }\n return [2 /*return*/, result];\n }\n });\n });\n };\n return DefinitionAdapter;\n}(Adapter));\nexport { DefinitionAdapter };\n// --- references ------\nvar ReferenceAdapter = /** @class */ (function (_super) {\n __extends(ReferenceAdapter, _super);\n function ReferenceAdapter(_libFiles, worker) {\n var _this = _super.call(this, worker) || this;\n _this._libFiles = _libFiles;\n return _this;\n }\n ReferenceAdapter.prototype.provideReferences = function (model, position, context, token) {\n return __awaiter(this, void 0, void 0, function () {\n var resource, offset, worker, entries, result, _i, entries_2, entry, refModel;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n resource = model.uri;\n offset = model.getOffsetAt(position);\n return [4 /*yield*/, this._worker(resource)];\n case 1:\n worker = _a.sent();\n if (model.isDisposed()) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, worker.getReferencesAtPosition(resource.toString(), offset)];\n case 2:\n entries = _a.sent();\n if (!entries || model.isDisposed()) {\n return [2 /*return*/];\n }\n // Fetch lib files if necessary\n return [4 /*yield*/, this._libFiles.fetchLibFilesIfNecessary(entries.map(function (entry) { return Uri.parse(entry.fileName); }))];\n case 3:\n // Fetch lib files if necessary\n _a.sent();\n if (model.isDisposed()) {\n return [2 /*return*/];\n }\n result = [];\n for (_i = 0, entries_2 = entries; _i < entries_2.length; _i++) {\n entry = entries_2[_i];\n refModel = this._libFiles.getOrCreateModel(entry.fileName);\n if (refModel) {\n result.push({\n uri: refModel.uri,\n range: this._textSpanToRange(refModel, entry.textSpan)\n });\n }\n }\n return [2 /*return*/, result];\n }\n });\n });\n };\n return ReferenceAdapter;\n}(Adapter));\nexport { ReferenceAdapter };\n// --- outline ------\nvar OutlineAdapter = /** @class */ (function (_super) {\n __extends(OutlineAdapter, _super);\n function OutlineAdapter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n OutlineAdapter.prototype.provideDocumentSymbols = function (model, token) {\n return __awaiter(this, void 0, void 0, function () {\n var resource, worker, items, convert, result;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n resource = model.uri;\n return [4 /*yield*/, this._worker(resource)];\n case 1:\n worker = _a.sent();\n if (model.isDisposed()) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, worker.getNavigationBarItems(resource.toString())];\n case 2:\n items = _a.sent();\n if (!items || model.isDisposed()) {\n return [2 /*return*/];\n }\n convert = function (bucket, item, containerLabel) {\n var result = {\n name: item.text,\n detail: '',\n kind: (outlineTypeTable[item.kind] || languages.SymbolKind.Variable),\n range: _this._textSpanToRange(model, item.spans[0]),\n selectionRange: _this._textSpanToRange(model, item.spans[0]),\n tags: []\n };\n if (containerLabel)\n result.containerName = containerLabel;\n if (item.childItems && item.childItems.length > 0) {\n for (var _i = 0, _a = item.childItems; _i < _a.length; _i++) {\n var child = _a[_i];\n convert(bucket, child, result.name);\n }\n }\n bucket.push(result);\n };\n result = [];\n items.forEach(function (item) { return convert(result, item); });\n return [2 /*return*/, result];\n }\n });\n });\n };\n return OutlineAdapter;\n}(Adapter));\nexport { OutlineAdapter };\nvar Kind = /** @class */ (function () {\n function Kind() {\n }\n Kind.unknown = '';\n Kind.keyword = 'keyword';\n Kind.script = 'script';\n Kind.module = 'module';\n Kind.class = 'class';\n Kind.interface = 'interface';\n Kind.type = 'type';\n Kind.enum = 'enum';\n Kind.variable = 'var';\n Kind.localVariable = 'local var';\n Kind.function = 'function';\n Kind.localFunction = 'local function';\n Kind.memberFunction = 'method';\n Kind.memberGetAccessor = 'getter';\n Kind.memberSetAccessor = 'setter';\n Kind.memberVariable = 'property';\n Kind.constructorImplementation = 'constructor';\n Kind.callSignature = 'call';\n Kind.indexSignature = 'index';\n Kind.constructSignature = 'construct';\n Kind.parameter = 'parameter';\n Kind.typeParameter = 'type parameter';\n Kind.primitiveType = 'primitive type';\n Kind.label = 'label';\n Kind.alias = 'alias';\n Kind.const = 'const';\n Kind.let = 'let';\n Kind.warning = 'warning';\n return Kind;\n}());\nexport { Kind };\nvar outlineTypeTable = Object.create(null);\noutlineTypeTable[Kind.module] = languages.SymbolKind.Module;\noutlineTypeTable[Kind.class] = languages.SymbolKind.Class;\noutlineTypeTable[Kind.enum] = languages.SymbolKind.Enum;\noutlineTypeTable[Kind.interface] = languages.SymbolKind.Interface;\noutlineTypeTable[Kind.memberFunction] = languages.SymbolKind.Method;\noutlineTypeTable[Kind.memberVariable] = languages.SymbolKind.Property;\noutlineTypeTable[Kind.memberGetAccessor] = languages.SymbolKind.Property;\noutlineTypeTable[Kind.memberSetAccessor] = languages.SymbolKind.Property;\noutlineTypeTable[Kind.variable] = languages.SymbolKind.Variable;\noutlineTypeTable[Kind.const] = languages.SymbolKind.Variable;\noutlineTypeTable[Kind.localVariable] = languages.SymbolKind.Variable;\noutlineTypeTable[Kind.variable] = languages.SymbolKind.Variable;\noutlineTypeTable[Kind.function] = languages.SymbolKind.Function;\noutlineTypeTable[Kind.localFunction] = languages.SymbolKind.Function;\n// --- formatting ----\nvar FormatHelper = /** @class */ (function (_super) {\n __extends(FormatHelper, _super);\n function FormatHelper() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FormatHelper._convertOptions = function (options) {\n return {\n ConvertTabsToSpaces: options.insertSpaces,\n TabSize: options.tabSize,\n IndentSize: options.tabSize,\n IndentStyle: IndentStyle.Smart,\n NewLineCharacter: '\\n',\n InsertSpaceAfterCommaDelimiter: true,\n InsertSpaceAfterSemicolonInForStatements: true,\n InsertSpaceBeforeAndAfterBinaryOperators: true,\n InsertSpaceAfterKeywordsInControlFlowStatements: true,\n InsertSpaceAfterFunctionKeywordForAnonymousFunctions: true,\n InsertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: false,\n InsertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets: false,\n InsertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: false,\n PlaceOpenBraceOnNewLineForControlBlocks: false,\n PlaceOpenBraceOnNewLineForFunctions: false\n };\n };\n FormatHelper.prototype._convertTextChanges = function (model, change) {\n return {\n text: change.newText,\n range: this._textSpanToRange(model, change.span)\n };\n };\n return FormatHelper;\n}(Adapter));\nexport { FormatHelper };\nvar FormatAdapter = /** @class */ (function (_super) {\n __extends(FormatAdapter, _super);\n function FormatAdapter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FormatAdapter.prototype.provideDocumentRangeFormattingEdits = function (model, range, options, token) {\n return __awaiter(this, void 0, void 0, function () {\n var resource, startOffset, endOffset, worker, edits;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n resource = model.uri;\n startOffset = model.getOffsetAt({\n lineNumber: range.startLineNumber,\n column: range.startColumn\n });\n endOffset = model.getOffsetAt({\n lineNumber: range.endLineNumber,\n column: range.endColumn\n });\n return [4 /*yield*/, this._worker(resource)];\n case 1:\n worker = _a.sent();\n if (model.isDisposed()) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, worker.getFormattingEditsForRange(resource.toString(), startOffset, endOffset, FormatHelper._convertOptions(options))];\n case 2:\n edits = _a.sent();\n if (!edits || model.isDisposed()) {\n return [2 /*return*/];\n }\n return [2 /*return*/, edits.map(function (edit) { return _this._convertTextChanges(model, edit); })];\n }\n });\n });\n };\n return FormatAdapter;\n}(FormatHelper));\nexport { FormatAdapter };\nvar FormatOnTypeAdapter = /** @class */ (function (_super) {\n __extends(FormatOnTypeAdapter, _super);\n function FormatOnTypeAdapter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(FormatOnTypeAdapter.prototype, \"autoFormatTriggerCharacters\", {\n get: function () {\n return [';', '}', '\\n'];\n },\n enumerable: false,\n configurable: true\n });\n FormatOnTypeAdapter.prototype.provideOnTypeFormattingEdits = function (model, position, ch, options, token) {\n return __awaiter(this, void 0, void 0, function () {\n var resource, offset, worker, edits;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n resource = model.uri;\n offset = model.getOffsetAt(position);\n return [4 /*yield*/, this._worker(resource)];\n case 1:\n worker = _a.sent();\n if (model.isDisposed()) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, worker.getFormattingEditsAfterKeystroke(resource.toString(), offset, ch, FormatHelper._convertOptions(options))];\n case 2:\n edits = _a.sent();\n if (!edits || model.isDisposed()) {\n return [2 /*return*/];\n }\n return [2 /*return*/, edits.map(function (edit) { return _this._convertTextChanges(model, edit); })];\n }\n });\n });\n };\n return FormatOnTypeAdapter;\n}(FormatHelper));\nexport { FormatOnTypeAdapter };\n// --- code actions ------\nvar CodeActionAdaptor = /** @class */ (function (_super) {\n __extends(CodeActionAdaptor, _super);\n function CodeActionAdaptor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CodeActionAdaptor.prototype.provideCodeActions = function (model, range, context, token) {\n return __awaiter(this, void 0, void 0, function () {\n var resource, start, end, formatOptions, errorCodes, worker, codeFixes, actions;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n resource = model.uri;\n start = model.getOffsetAt({\n lineNumber: range.startLineNumber,\n column: range.startColumn\n });\n end = model.getOffsetAt({\n lineNumber: range.endLineNumber,\n column: range.endColumn\n });\n formatOptions = FormatHelper._convertOptions(model.getOptions());\n errorCodes = context.markers\n .filter(function (m) { return m.code; })\n .map(function (m) { return m.code; })\n .map(Number);\n return [4 /*yield*/, this._worker(resource)];\n case 1:\n worker = _a.sent();\n if (model.isDisposed()) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, worker.getCodeFixesAtPosition(resource.toString(), start, end, errorCodes, formatOptions)];\n case 2:\n codeFixes = _a.sent();\n if (!codeFixes || model.isDisposed()) {\n return [2 /*return*/, { actions: [], dispose: function () { } }];\n }\n actions = codeFixes\n .filter(function (fix) {\n // Removes any 'make a new file'-type code fix\n return fix.changes.filter(function (change) { return change.isNewFile; }).length === 0;\n })\n .map(function (fix) {\n return _this._tsCodeFixActionToMonacoCodeAction(model, context, fix);\n });\n return [2 /*return*/, {\n actions: actions,\n dispose: function () { }\n }];\n }\n });\n });\n };\n CodeActionAdaptor.prototype._tsCodeFixActionToMonacoCodeAction = function (model, context, codeFix) {\n var edits = [];\n for (var _i = 0, _a = codeFix.changes; _i < _a.length; _i++) {\n var change = _a[_i];\n for (var _b = 0, _c = change.textChanges; _b < _c.length; _b++) {\n var textChange = _c[_b];\n edits.push({\n resource: model.uri,\n edit: {\n range: this._textSpanToRange(model, textChange.span),\n text: textChange.newText\n }\n });\n }\n }\n var action = {\n title: codeFix.description,\n edit: { edits: edits },\n diagnostics: context.markers,\n kind: 'quickfix'\n };\n return action;\n };\n return CodeActionAdaptor;\n}(FormatHelper));\nexport { CodeActionAdaptor };\n// --- rename ----\nvar RenameAdapter = /** @class */ (function (_super) {\n __extends(RenameAdapter, _super);\n function RenameAdapter(_libFiles, worker) {\n var _this = _super.call(this, worker) || this;\n _this._libFiles = _libFiles;\n return _this;\n }\n RenameAdapter.prototype.provideRenameEdits = function (model, position, newName, token) {\n return __awaiter(this, void 0, void 0, function () {\n var resource, fileName, offset, worker, renameInfo, renameLocations, edits, _i, renameLocations_1, renameLocation, model_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n resource = model.uri;\n fileName = resource.toString();\n offset = model.getOffsetAt(position);\n return [4 /*yield*/, this._worker(resource)];\n case 1:\n worker = _a.sent();\n if (model.isDisposed()) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, worker.getRenameInfo(fileName, offset, {\n allowRenameOfImportPath: false\n })];\n case 2:\n renameInfo = _a.sent();\n if (renameInfo.canRename === false) {\n // use explicit comparison so that the discriminated union gets resolved properly\n return [2 /*return*/, {\n edits: [],\n rejectReason: renameInfo.localizedErrorMessage\n }];\n }\n if (renameInfo.fileToRename !== undefined) {\n throw new Error('Renaming files is not supported.');\n }\n return [4 /*yield*/, worker.findRenameLocations(fileName, offset, \n /*strings*/ false, \n /*comments*/ false, \n /*prefixAndSuffix*/ false)];\n case 3:\n renameLocations = _a.sent();\n if (!renameLocations || model.isDisposed()) {\n return [2 /*return*/];\n }\n edits = [];\n for (_i = 0, renameLocations_1 = renameLocations; _i < renameLocations_1.length; _i++) {\n renameLocation = renameLocations_1[_i];\n model_1 = this._libFiles.getOrCreateModel(renameLocation.fileName);\n if (model_1) {\n edits.push({\n resource: model_1.uri,\n edit: {\n range: this._textSpanToRange(model_1, renameLocation.textSpan),\n text: newName\n }\n });\n }\n else {\n throw new Error(\"Unknown file \" + renameLocation.fileName + \".\");\n }\n }\n return [2 /*return*/, { edits: edits }];\n }\n });\n });\n };\n return RenameAdapter;\n}(Adapter));\nexport { RenameAdapter };\n// --- inlay hints ----\nvar InlayHintsAdapter = /** @class */ (function (_super) {\n __extends(InlayHintsAdapter, _super);\n function InlayHintsAdapter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InlayHintsAdapter.prototype.provideInlayHints = function (model, range, token) {\n return __awaiter(this, void 0, void 0, function () {\n var resource, fileName, start, end, worker, hints;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n resource = model.uri;\n fileName = resource.toString();\n start = model.getOffsetAt({\n lineNumber: range.startLineNumber,\n column: range.startColumn\n });\n end = model.getOffsetAt({\n lineNumber: range.endLineNumber,\n column: range.endColumn\n });\n return [4 /*yield*/, this._worker(resource)];\n case 1:\n worker = _a.sent();\n if (model.isDisposed()) {\n return [2 /*return*/, []];\n }\n return [4 /*yield*/, worker.provideInlayHints(fileName, start, end)];\n case 2:\n hints = _a.sent();\n return [2 /*return*/, hints.map(function (hint) {\n return __assign(__assign({}, hint), { position: model.getPositionAt(hint.position), kind: _this._convertHintKind(hint.kind) });\n })];\n }\n });\n });\n };\n InlayHintsAdapter.prototype._convertHintKind = function (kind) {\n switch (kind) {\n case 'Parameter':\n return languages.InlayHintKind.Parameter;\n case 'Type':\n return languages.InlayHintKind.Type;\n default:\n return languages.InlayHintKind.Other;\n }\n };\n return InlayHintsAdapter;\n}(Adapter));\nexport { InlayHintsAdapter };\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n'use strict';\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { editor } from './fillers/monaco-editor-core.js';\nvar WorkerManager = /** @class */ (function () {\n function WorkerManager(modeId, defaults) {\n var _this = this;\n this._modeId = modeId;\n this._defaults = defaults;\n this._worker = null;\n this._client = null;\n this._configChangeListener = this._defaults.onDidChange(function () { return _this._stopWorker(); });\n this._updateExtraLibsToken = 0;\n this._extraLibsChangeListener = this._defaults.onDidExtraLibsChange(function () {\n return _this._updateExtraLibs();\n });\n }\n WorkerManager.prototype._stopWorker = function () {\n if (this._worker) {\n this._worker.dispose();\n this._worker = null;\n }\n this._client = null;\n };\n WorkerManager.prototype.dispose = function () {\n this._configChangeListener.dispose();\n this._extraLibsChangeListener.dispose();\n this._stopWorker();\n };\n WorkerManager.prototype._updateExtraLibs = function () {\n return __awaiter(this, void 0, void 0, function () {\n var myToken, proxy;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this._worker) {\n return [2 /*return*/];\n }\n myToken = ++this._updateExtraLibsToken;\n return [4 /*yield*/, this._worker.getProxy()];\n case 1:\n proxy = _a.sent();\n if (this._updateExtraLibsToken !== myToken) {\n // avoid multiple calls\n return [2 /*return*/];\n }\n proxy.updateExtraLibs(this._defaults.getExtraLibs());\n return [2 /*return*/];\n }\n });\n });\n };\n WorkerManager.prototype._getClient = function () {\n var _this = this;\n if (!this._client) {\n this._worker = editor.createWebWorker({\n // module that exports the create() method and returns a `TypeScriptWorker` instance\n moduleId: 'vs/language/typescript/tsWorker',\n label: this._modeId,\n keepIdleModels: true,\n // passed in to the create() method\n createData: {\n compilerOptions: this._defaults.getCompilerOptions(),\n extraLibs: this._defaults.getExtraLibs(),\n customWorkerPath: this._defaults.workerOptions.customWorkerPath,\n inlayHintsOptions: this._defaults.inlayHintsOptions\n }\n });\n var p = this._worker.getProxy();\n if (this._defaults.getEagerModelSync()) {\n p = p.then(function (worker) {\n if (_this._worker) {\n return _this._worker.withSyncedResources(editor\n .getModels()\n .filter(function (model) { return model.getLanguageId() === _this._modeId; })\n .map(function (model) { return model.uri; }));\n }\n return worker;\n });\n }\n this._client = p;\n }\n return this._client;\n };\n WorkerManager.prototype.getLanguageServiceWorker = function () {\n var _this = this;\n var resources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n resources[_i] = arguments[_i];\n }\n var _client;\n return this._getClient()\n .then(function (client) {\n _client = client;\n })\n .then(function (_) {\n if (_this._worker) {\n return _this._worker.withSyncedResources(resources);\n }\n })\n .then(function (_) { return _client; });\n };\n return WorkerManager;\n}());\nexport { WorkerManager };\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n//\n// **NOTE**: Do not edit directly! This file is generated using `npm run import-typescript`\n//\n/** Contains all the lib files */\nexport var libFileSet = {};\nlibFileSet['lib.d.ts'] = true;\nlibFileSet['lib.dom.d.ts'] = true;\nlibFileSet['lib.dom.iterable.d.ts'] = true;\nlibFileSet['lib.es2015.collection.d.ts'] = true;\nlibFileSet['lib.es2015.core.d.ts'] = true;\nlibFileSet['lib.es2015.d.ts'] = true;\nlibFileSet['lib.es2015.generator.d.ts'] = true;\nlibFileSet['lib.es2015.iterable.d.ts'] = true;\nlibFileSet['lib.es2015.promise.d.ts'] = true;\nlibFileSet['lib.es2015.proxy.d.ts'] = true;\nlibFileSet['lib.es2015.reflect.d.ts'] = true;\nlibFileSet['lib.es2015.symbol.d.ts'] = true;\nlibFileSet['lib.es2015.symbol.wellknown.d.ts'] = true;\nlibFileSet['lib.es2016.array.include.d.ts'] = true;\nlibFileSet['lib.es2016.d.ts'] = true;\nlibFileSet['lib.es2016.full.d.ts'] = true;\nlibFileSet['lib.es2017.d.ts'] = true;\nlibFileSet['lib.es2017.full.d.ts'] = true;\nlibFileSet['lib.es2017.intl.d.ts'] = true;\nlibFileSet['lib.es2017.object.d.ts'] = true;\nlibFileSet['lib.es2017.sharedmemory.d.ts'] = true;\nlibFileSet['lib.es2017.string.d.ts'] = true;\nlibFileSet['lib.es2017.typedarrays.d.ts'] = true;\nlibFileSet['lib.es2018.asyncgenerator.d.ts'] = true;\nlibFileSet['lib.es2018.asynciterable.d.ts'] = true;\nlibFileSet['lib.es2018.d.ts'] = true;\nlibFileSet['lib.es2018.full.d.ts'] = true;\nlibFileSet['lib.es2018.intl.d.ts'] = true;\nlibFileSet['lib.es2018.promise.d.ts'] = true;\nlibFileSet['lib.es2018.regexp.d.ts'] = true;\nlibFileSet['lib.es2019.array.d.ts'] = true;\nlibFileSet['lib.es2019.d.ts'] = true;\nlibFileSet['lib.es2019.full.d.ts'] = true;\nlibFileSet['lib.es2019.object.d.ts'] = true;\nlibFileSet['lib.es2019.string.d.ts'] = true;\nlibFileSet['lib.es2019.symbol.d.ts'] = true;\nlibFileSet['lib.es2020.bigint.d.ts'] = true;\nlibFileSet['lib.es2020.d.ts'] = true;\nlibFileSet['lib.es2020.full.d.ts'] = true;\nlibFileSet['lib.es2020.intl.d.ts'] = true;\nlibFileSet['lib.es2020.promise.d.ts'] = true;\nlibFileSet['lib.es2020.sharedmemory.d.ts'] = true;\nlibFileSet['lib.es2020.string.d.ts'] = true;\nlibFileSet['lib.es2020.symbol.wellknown.d.ts'] = true;\nlibFileSet['lib.es2021.d.ts'] = true;\nlibFileSet['lib.es2021.full.d.ts'] = true;\nlibFileSet['lib.es2021.promise.d.ts'] = true;\nlibFileSet['lib.es2021.string.d.ts'] = true;\nlibFileSet['lib.es2021.weakref.d.ts'] = true;\nlibFileSet['lib.es5.d.ts'] = true;\nlibFileSet['lib.es6.d.ts'] = true;\nlibFileSet['lib.esnext.d.ts'] = true;\nlibFileSet['lib.esnext.full.d.ts'] = true;\nlibFileSet['lib.esnext.intl.d.ts'] = true;\nlibFileSet['lib.esnext.promise.d.ts'] = true;\nlibFileSet['lib.esnext.string.d.ts'] = true;\nlibFileSet['lib.esnext.weakref.d.ts'] = true;\nlibFileSet['lib.scripthost.d.ts'] = true;\nlibFileSet['lib.webworker.d.ts'] = true;\nlibFileSet['lib.webworker.importscripts.d.ts'] = true;\nlibFileSet['lib.webworker.iterable.d.ts'] = true;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n'use strict';\nimport { WorkerManager } from './workerManager.js';\nimport * as languageFeatures from './languageFeatures.js';\nimport { languages } from './fillers/monaco-editor-core.js';\nvar javaScriptWorker;\nvar typeScriptWorker;\nexport function setupTypeScript(defaults) {\n typeScriptWorker = setupMode(defaults, 'typescript');\n}\nexport function setupJavaScript(defaults) {\n javaScriptWorker = setupMode(defaults, 'javascript');\n}\nexport function getJavaScriptWorker() {\n return new Promise(function (resolve, reject) {\n if (!javaScriptWorker) {\n return reject('JavaScript not registered!');\n }\n resolve(javaScriptWorker);\n });\n}\nexport function getTypeScriptWorker() {\n return new Promise(function (resolve, reject) {\n if (!typeScriptWorker) {\n return reject('TypeScript not registered!');\n }\n resolve(typeScriptWorker);\n });\n}\nfunction setupMode(defaults, modeId) {\n var client = new WorkerManager(modeId, defaults);\n var worker = function () {\n var uris = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n uris[_i] = arguments[_i];\n }\n return client.getLanguageServiceWorker.apply(client, uris);\n };\n var libFiles = new languageFeatures.LibFiles(worker);\n languages.registerCompletionItemProvider(modeId, new languageFeatures.SuggestAdapter(worker));\n languages.registerSignatureHelpProvider(modeId, new languageFeatures.SignatureHelpAdapter(worker));\n languages.registerHoverProvider(modeId, new languageFeatures.QuickInfoAdapter(worker));\n languages.registerDocumentHighlightProvider(modeId, new languageFeatures.OccurrencesAdapter(worker));\n languages.registerDefinitionProvider(modeId, new languageFeatures.DefinitionAdapter(libFiles, worker));\n languages.registerReferenceProvider(modeId, new languageFeatures.ReferenceAdapter(libFiles, worker));\n languages.registerDocumentSymbolProvider(modeId, new languageFeatures.OutlineAdapter(worker));\n languages.registerDocumentRangeFormattingEditProvider(modeId, new languageFeatures.FormatAdapter(worker));\n languages.registerOnTypeFormattingEditProvider(modeId, new languageFeatures.FormatOnTypeAdapter(worker));\n languages.registerCodeActionProvider(modeId, new languageFeatures.CodeActionAdaptor(worker));\n languages.registerRenameProvider(modeId, new languageFeatures.RenameAdapter(libFiles, worker));\n languages.registerInlayHintsProvider(modeId, new languageFeatures.InlayHintsAdapter(worker));\n new languageFeatures.DiagnosticsAdapter(libFiles, defaults, modeId, worker);\n return worker;\n}\n"],"sourceRoot":""}