@typespec/playground 0.3.0-dev.5 → 0.3.0-dev.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -47,7 +47,7 @@ async function createBrowserHost(libsToLoad, importOptions = {}) {
47
47
  const { _TypeSpecLibrary_, $lib, $linter } = (await importLibrary(libName, importOptions));
48
48
  libraries[libName] = {
49
49
  name: libName,
50
- isEmitter: $lib === null || $lib === void 0 ? void 0 : $lib.emitter,
50
+ isEmitter: $lib?.emitter,
51
51
  definition: $lib,
52
52
  packageJson: JSON.parse(_TypeSpecLibrary_.typespecSourceFiles["package.json"]),
53
53
  linter: $linter,
@@ -197,17 +197,13 @@ function textEdit(edit) {
197
197
  };
198
198
  }
199
199
  function signatureHelp(help) {
200
- var _a, _b, _c;
201
200
  return {
202
- signatures: (_a = help === null || help === void 0 ? void 0 : help.signatures.map((x) => {
203
- var _a;
204
- return ({
205
- ...x,
206
- parameters: (_a = x.parameters) !== null && _a !== void 0 ? _a : [],
207
- });
208
- })) !== null && _a !== void 0 ? _a : [],
209
- activeSignature: (_b = help === null || help === void 0 ? void 0 : help.activeSignature) !== null && _b !== void 0 ? _b : 0,
210
- activeParameter: (_c = help === null || help === void 0 ? void 0 : help.activeParameter) !== null && _c !== void 0 ? _c : 0,
201
+ signatures: help?.signatures.map((x) => ({
202
+ ...x,
203
+ parameters: x.parameters ?? [],
204
+ })) ?? [],
205
+ activeSignature: help?.activeSignature ?? 0,
206
+ activeParameter: help?.activeParameter ?? 0,
211
207
  };
212
208
  }
213
209
  function command(command) {
@@ -230,11 +226,10 @@ function severity(severity) {
230
226
  }
231
227
  }
232
228
  function diagnostic(diagnostic) {
233
- var _a;
234
229
  return {
235
230
  severity: diagnostic.severity ? severity(diagnostic.severity) : monaco.MarkerSeverity.Error,
236
231
  message: diagnostic.message,
237
- code: (_a = diagnostic.code) === null || _a === void 0 ? void 0 : _a.toString(),
232
+ code: diagnostic.code?.toString(),
238
233
  source: diagnostic.source,
239
234
  startLineNumber: diagnostic.range.start.line + 1,
240
235
  startColumn: diagnostic.range.start.character + 1,
@@ -243,11 +238,10 @@ function diagnostic(diagnostic) {
243
238
  };
244
239
  }
245
240
  function codeAction(action) {
246
- var _a;
247
241
  return {
248
242
  title: action.title,
249
243
  kind: action.kind,
250
- diagnostics: (_a = action.diagnostics) === null || _a === void 0 ? void 0 : _a.map(diagnostic),
244
+ diagnostics: action.diagnostics?.map(diagnostic),
251
245
  command: action.command && command(action.command),
252
246
  };
253
247
  }
@@ -375,9 +369,8 @@ async function registerMonacoLanguage(host) {
375
369
  };
376
370
  }
377
371
  function monacoWorkspaceEdit(edit) {
378
- var _a;
379
372
  const edits = [];
380
- for (const [uri, changes] of Object.entries((_a = edit.changes) !== null && _a !== void 0 ? _a : {})) {
373
+ for (const [uri, changes] of Object.entries(edit.changes ?? {})) {
381
374
  const resource = monaco.Uri.parse(uri);
382
375
  for (const change of changes) {
383
376
  edits.push({ resource, textEdit: LspToMonaco.textEdit(change), versionId: undefined });
@@ -399,12 +392,11 @@ async function registerMonacoLanguage(host) {
399
392
  });
400
393
  monaco.languages.registerRenameProvider("typespec", {
401
394
  async resolveRenameLocation(model, position) {
402
- var _a;
403
395
  const result = await serverLib.prepareRename(lspArgs(model, position));
404
396
  if (!result) {
405
397
  throw new Error("This element can't be renamed.");
406
398
  }
407
- const text = (_a = model.getWordAtPosition(position)) === null || _a === void 0 ? void 0 : _a.word;
399
+ const text = model.getWordAtPosition(position)?.word;
408
400
  if (!text) {
409
401
  throw new Error("Failed to obtain word at position.");
410
402
  }
@@ -454,7 +446,6 @@ async function registerMonacoLanguage(host) {
454
446
  monaco.languages.registerCompletionItemProvider("typespec", {
455
447
  triggerCharacters: lsConfig.capabilities.completionProvider.triggerCharacters,
456
448
  async provideCompletionItems(model, position) {
457
- var _a;
458
449
  const result = await serverLib.complete(lspArgs(model, position));
459
450
  const word = model.getWordUntilPosition(position);
460
451
  const range = {
@@ -466,7 +457,7 @@ async function registerMonacoLanguage(host) {
466
457
  const suggestions = [];
467
458
  for (const item of result.items) {
468
459
  let itemRange = range;
469
- let insertText = item.insertText;
460
+ let insertText = item.insertText ?? item.label;
470
461
  if (item.textEdit && "range" in item.textEdit) {
471
462
  itemRange = LspToMonaco.range(item.textEdit.range);
472
463
  insertText = item.textEdit.newText;
@@ -477,7 +468,7 @@ async function registerMonacoLanguage(host) {
477
468
  documentation: item.documentation,
478
469
  insertText,
479
470
  range: itemRange,
480
- commitCharacters: (_a = item.commitCharacters) !== null && _a !== void 0 ? _a : lsConfig.capabilities.completionProvider.allCommitCharacters,
471
+ commitCharacters: item.commitCharacters ?? lsConfig.capabilities.completionProvider.allCommitCharacters,
481
472
  tags: item.tags,
482
473
  });
483
474
  }
@@ -657,4 +648,4 @@ function createUrlStateStorage(schema) {
657
648
  }
658
649
 
659
650
  export { createUrlStateStorage as a, createBrowserHost as c, getMonacoRange as g, registerMonacoLanguage as r };
660
- //# sourceMappingURL=state-storage-BtJ3x1w_.js.map
651
+ //# sourceMappingURL=state-storage-CShFsmVH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-storage-CShFsmVH.js","sources":["../../src/core.ts","../../src/browser-host.ts","../../src/lsp/lsp-to-monaco.ts","../../src/services.ts","../../src/state-storage.ts"],"sourcesContent":["/**\n * Options for importing libraries.\n */\nexport interface LibraryImportOptions {\n /**\n * Should use es-module-shim importmap-shim instead of built-in import and importmap system.\n * @see https://github.com/guybedford/es-module-shims\n */\n useShim?: boolean;\n}\n\nexport async function importTypeSpecCompiler(\n config: any\n): Promise<typeof import(\"@typespec/compiler\")> {\n return (await importLibrary(\"@typespec/compiler\", config)) as any;\n}\n\n/**\n * @param name Import name.\n * @returns Promise with the loaded module.\n */\nexport async function importLibrary(name: string, config: LibraryImportOptions): Promise<unknown> {\n return config.useShim\n ? importShim(name)\n : import(/* @vite-ignore */ /* webpackIgnore: true */ name);\n}\n\n/**\n * Loading external import map doesn't work yet\n *\n * https://github.com/WICG/import-maps/issues/235\n *\n * A polyfill for importmap is loaded but required calling importShim instead of the native import https://github.com/guybedford/es-module-shims\n * @param name Import name.\n * @returns Promise with the loaded module.\n */\nasync function importShim(name: string): Promise<unknown> {\n return (window as any).importShim(name);\n}\n","import { createSourceFile, getSourceFileKindFromExt, resolvePath } from \"@typespec/compiler\";\nimport { LibraryImportOptions, importLibrary, importTypeSpecCompiler } from \"./core.js\";\nimport { BrowserHost, PlaygroundTspLibrary } from \"./types.js\";\n\nexport function resolveVirtualPath(path: string, ...paths: string[]) {\n return resolvePath(\"/test\", path, ...paths);\n}\n\n/**\n * Create the browser host from the list of libraries.\n * @param libsToLoad List of libraries to load. Those must be set in the webpage importmap.\n * @param importOptions Import configuration.\n * @returns\n */\nexport async function createBrowserHost(\n libsToLoad: readonly string[],\n importOptions: LibraryImportOptions = {}\n): Promise<BrowserHost> {\n const virtualFs = new Map<string, string>();\n const jsImports = new Map<string, Promise<any>>();\n\n const libraries: Record<string, PlaygroundTspLibrary> = {};\n for (const libName of libsToLoad) {\n const { _TypeSpecLibrary_, $lib, $linter } = (await importLibrary(\n libName,\n importOptions\n )) as any;\n libraries[libName] = {\n name: libName,\n isEmitter: $lib?.emitter,\n definition: $lib,\n packageJson: JSON.parse(_TypeSpecLibrary_.typespecSourceFiles[\"package.json\"]),\n linter: $linter,\n };\n for (const [key, value] of Object.entries<any>(_TypeSpecLibrary_.typespecSourceFiles)) {\n virtualFs.set(`/test/node_modules/${libName}/${key}`, value);\n }\n for (const [key, value] of Object.entries<any>(_TypeSpecLibrary_.jsSourceFiles)) {\n addJsImport(`/test/node_modules/${libName}/${key}`, value);\n }\n virtualFs.set(\n `/test/package.json`,\n JSON.stringify({\n name: \"playground-pkg\",\n dependencies: Object.fromEntries(\n Object.values(libraries).map((x) => [x.name, x.packageJson.version])\n ),\n })\n );\n }\n\n function addJsImport(path: string, value: any) {\n virtualFs.set(path, \"\");\n jsImports.set(path, value);\n }\n return {\n compiler: await importTypeSpecCompiler(importOptions),\n libraries,\n async readUrl(url: string) {\n const contents = virtualFs.get(url);\n if (contents === undefined) {\n const e = new Error(`File ${url} not found.`);\n (e as any).code = \"ENOENT\";\n throw e;\n }\n return createSourceFile(contents, url);\n },\n async readFile(path: string) {\n path = resolveVirtualPath(path);\n const contents = virtualFs.get(path);\n if (contents === undefined) {\n const e = new Error(`File ${path} not found.`);\n (e as any).code = \"ENOENT\";\n throw e;\n }\n return createSourceFile(contents, path);\n },\n\n async writeFile(path: string, content: string) {\n path = resolveVirtualPath(path);\n virtualFs.set(path, content);\n },\n\n async readDir(path: string) {\n path = resolveVirtualPath(path);\n const fileFolder = [...virtualFs.keys()]\n .filter((x) => x.startsWith(`${path}/`))\n .map((x) => x.replace(`${path}/`, \"\"))\n .map((x) => {\n const index = x.indexOf(\"/\");\n return index !== -1 ? x.substring(0, index) : x;\n });\n return [...new Set(fileFolder)];\n },\n\n async rm(path: string) {\n path = resolveVirtualPath(path);\n\n for (const key of virtualFs.keys()) {\n if (key === path || key.startsWith(`${path}/`)) {\n virtualFs.delete(key);\n }\n }\n },\n\n getLibDirs() {\n return [resolveVirtualPath(\"/test/node_modules/@typespec/compiler/lib\")];\n },\n\n getExecutionRoot() {\n return resolveVirtualPath(\".tsp\");\n },\n\n async getJsImport(path) {\n path = resolveVirtualPath(path);\n const module = await jsImports.get(path);\n if (module === undefined) {\n const e = new Error(`Module ${path} not found`);\n (e as any).code = \"MODULE_NOT_FOUND\";\n throw e;\n }\n return module;\n },\n\n async stat(path: string) {\n path = resolveVirtualPath(path);\n\n if (virtualFs.has(path)) {\n return {\n isDirectory() {\n return false;\n },\n isFile() {\n return true;\n },\n };\n }\n\n for (const fsPath of virtualFs.keys()) {\n if (fsPath.startsWith(path) && fsPath !== path) {\n return {\n isDirectory() {\n return true;\n },\n isFile() {\n return false;\n },\n };\n }\n }\n const e = new Error(`File ${path} not found.`);\n (e as any).code = \"ENOENT\";\n throw e;\n },\n\n // symlinks not supported in test-host\n async realpath(path) {\n return path;\n },\n\n getSourceFileKind: getSourceFileKindFromExt,\n\n logSink: console,\n mkdirp: async (path: string) => path,\n fileURLToPath(path) {\n return path.replace(\"inmemory:/\", \"\");\n },\n pathToFileURL(path) {\n return \"inmemory:/\" + resolveVirtualPath(path);\n },\n };\n}\n","import * as monaco from \"monaco-editor\";\nimport type * as lsp from \"vscode-languageserver\";\nimport { DiagnosticSeverity } from \"vscode-languageserver\";\n\nfunction range(range: lsp.Range): monaco.IRange {\n return {\n startColumn: range.start.character + 1,\n startLineNumber: range.start.line + 1,\n endColumn: range.end.character + 1,\n endLineNumber: range.end.line + 1,\n };\n}\n\nfunction foldingRange(range: lsp.FoldingRange): monaco.languages.FoldingRange {\n return {\n start: range.startLine + 1,\n end: range.endLine + 1,\n kind: range.kind ? new monaco.languages.FoldingRangeKind(range.kind) : undefined,\n };\n}\n\nfunction textEdits(edit: lsp.TextEdit[]): monaco.languages.TextEdit[] {\n return edit.map(textEdit);\n}\n\nfunction textEdit(edit: lsp.TextEdit): monaco.languages.TextEdit {\n return {\n range: range(edit.range),\n text: edit.newText,\n };\n}\n\nfunction signatureHelp(help: lsp.SignatureHelp | undefined): monaco.languages.SignatureHelp {\n return {\n signatures:\n help?.signatures.map((x) => ({\n ...x,\n parameters: x.parameters ?? [],\n })) ?? [],\n activeSignature: help?.activeSignature ?? 0,\n activeParameter: help?.activeParameter ?? 0,\n };\n}\n\nfunction command(command: lsp.Command): monaco.languages.Command {\n return {\n id: command.command,\n title: command.title,\n arguments: command.arguments,\n };\n}\n\nfunction severity(severity: lsp.DiagnosticSeverity): monaco.MarkerSeverity {\n switch (severity) {\n case DiagnosticSeverity.Error:\n return monaco.MarkerSeverity.Error;\n case DiagnosticSeverity.Warning:\n return monaco.MarkerSeverity.Warning;\n case DiagnosticSeverity.Hint:\n return monaco.MarkerSeverity.Hint;\n case DiagnosticSeverity.Information:\n return monaco.MarkerSeverity.Info;\n }\n}\n\nfunction diagnostic(diagnostic: lsp.Diagnostic): monaco.editor.IMarkerData {\n return {\n severity: diagnostic.severity ? severity(diagnostic.severity) : monaco.MarkerSeverity.Error,\n message: diagnostic.message,\n code: diagnostic.code?.toString(),\n source: diagnostic.source,\n startLineNumber: diagnostic.range.start.line + 1,\n startColumn: diagnostic.range.start.character + 1,\n endLineNumber: diagnostic.range.end.line + 1,\n endColumn: diagnostic.range.end.character + 1,\n };\n}\n\nfunction codeAction(action: lsp.CodeAction): monaco.languages.CodeAction {\n return {\n title: action.title,\n kind: action.kind,\n diagnostics: action.diagnostics?.map(diagnostic),\n command: action.command && command(action.command),\n };\n}\n\nexport const LspToMonaco = {\n range,\n foldingRange,\n textEdits,\n textEdit,\n signatureHelp,\n codeAction,\n command,\n} as const;\n","import {\n DiagnosticTarget,\n NoTarget,\n ServerHost,\n TypeSpecLanguageConfiguration,\n} from \"@typespec/compiler\";\nimport * as monaco from \"monaco-editor\";\nimport * as lsp from \"vscode-languageserver\";\nimport { DocumentHighlightKind, FormattingOptions } from \"vscode-languageserver\";\nimport { TextDocument } from \"vscode-languageserver-textdocument\";\nimport { LspToMonaco } from \"./lsp/lsp-to-monaco.js\";\nimport { BrowserHost } from \"./types.js\";\n\nfunction getIndentAction(\n value: \"none\" | \"indent\" | \"indentOutdent\" | \"outdent\"\n): monaco.languages.IndentAction {\n switch (value) {\n case \"none\":\n return monaco.languages.IndentAction.None;\n case \"indent\":\n return monaco.languages.IndentAction.Indent;\n case \"indentOutdent\":\n return monaco.languages.IndentAction.IndentOutdent;\n case \"outdent\":\n return monaco.languages.IndentAction.Outdent;\n }\n}\n\nfunction getTypeSpecLanguageConfiguration(): monaco.languages.LanguageConfiguration {\n return {\n ...(TypeSpecLanguageConfiguration as any),\n onEnterRules: TypeSpecLanguageConfiguration.onEnterRules.map((rule) => {\n return {\n beforeText: new RegExp(rule.beforeText.pattern),\n previousLineText:\n \"previousLineText\" in rule ? new RegExp(rule.previousLineText.pattern) : undefined,\n action: {\n indentAction: getIndentAction(rule.action.indent),\n appendText: \"appendText\" in rule.action ? rule.action.appendText : undefined,\n removeText: \"removeText\" in rule.action ? rule.action.removeText : undefined,\n },\n };\n }),\n };\n}\n\nexport async function registerMonacoLanguage(host: BrowserHost) {\n monaco.languages.register({ id: \"typespec\", extensions: [\".tsp\"] });\n monaco.languages.setLanguageConfiguration(\"typespec\", getTypeSpecLanguageConfiguration());\n\n const serverHost: ServerHost = {\n compilerHost: host,\n getOpenDocumentByURL(url: string) {\n const model = monaco.editor.getModel(monaco.Uri.parse(url));\n return model ? textDocumentForModel(model) : undefined;\n },\n sendDiagnostics() {},\n // eslint-disable-next-line no-console\n log: console.log,\n applyEdit(param) {\n return Promise.resolve({ applied: false });\n },\n };\n\n const { createServer } = host.compiler;\n const serverLib = createServer(serverHost);\n const lsConfig = await serverLib.initialize({\n capabilities: {},\n processId: 1,\n workspaceFolders: [],\n rootUri: \"inmemory://\",\n });\n serverLib.initialized({});\n\n function textDocumentForModel(model: monaco.editor.IModel) {\n return TextDocument.create(\n model.uri.toString(),\n \"typespec\",\n model.getVersionId(),\n model.getValue()\n );\n }\n\n function lspDocumentArgs(model: monaco.editor.ITextModel) {\n return {\n textDocument: textDocumentForModel(model),\n };\n }\n\n function lspArgs(model: monaco.editor.ITextModel, pos: monaco.Position) {\n return {\n ...lspDocumentArgs(model),\n position: lspPosition(pos),\n };\n }\n\n function lspPosition(pos: monaco.Position): lsp.Position {\n return {\n line: pos.lineNumber - 1,\n character: pos.column - 1,\n };\n }\n\n function lspFormattingOptions(options: monaco.languages.FormattingOptions) {\n return FormattingOptions.create(options.tabSize, options.insertSpaces);\n }\n\n function monacoLocation(loc: lsp.Location): monaco.languages.Location {\n return {\n uri: monaco.Uri.parse(loc.uri),\n range: LspToMonaco.range(loc.range),\n };\n }\n\n function monacoDocumentHighlight(\n highlight: lsp.DocumentHighlight\n ): monaco.languages.DocumentHighlight {\n return {\n range: LspToMonaco.range(highlight.range),\n kind: monacoDocumentHighlightKind(highlight.kind),\n };\n }\n\n function monacoDocumentHighlightKind(kind: DocumentHighlightKind | undefined) {\n switch (kind) {\n case DocumentHighlightKind.Text:\n return monaco.languages.DocumentHighlightKind.Text;\n case DocumentHighlightKind.Read:\n return monaco.languages.DocumentHighlightKind.Read;\n case DocumentHighlightKind.Write:\n return monaco.languages.DocumentHighlightKind.Write;\n default:\n return undefined;\n }\n }\n\n function monacoHoverContents(contents: lsp.MarkupContent): monaco.IMarkdownString[] {\n return [{ value: contents.value }];\n }\n\n function monacoHover(hover: lsp.Hover): monaco.languages.Hover {\n // eslint-disable-next-line deprecation/deprecation\n if (Array.isArray(hover.contents) || lsp.MarkedString.is(hover.contents)) {\n throw new Error(\"MarkedString (deprecated) not supported.\");\n }\n\n return {\n contents: monacoHoverContents(hover.contents),\n range: hover.range ? LspToMonaco.range(hover.range) : undefined,\n };\n }\n\n function monacoWorkspaceEdit(edit: lsp.WorkspaceEdit): monaco.languages.WorkspaceEdit {\n const edits: monaco.languages.IWorkspaceTextEdit[] = [];\n for (const [uri, changes] of Object.entries(edit.changes ?? {})) {\n const resource = monaco.Uri.parse(uri);\n for (const change of changes) {\n edits.push({ resource, textEdit: LspToMonaco.textEdit(change), versionId: undefined });\n }\n }\n return { edits };\n }\n\n monaco.languages.registerDefinitionProvider(\"typespec\", {\n async provideDefinition(model, position) {\n const results = await serverLib.gotoDefinition(lspArgs(model, position));\n return results.map(monacoLocation);\n },\n });\n\n monaco.languages.registerReferenceProvider(\"typespec\", {\n async provideReferences(model, position, context) {\n const results = await serverLib.findReferences({ ...lspArgs(model, position), context });\n return results.map(monacoLocation);\n },\n });\n\n monaco.languages.registerRenameProvider(\"typespec\", {\n async resolveRenameLocation(model, position): Promise<monaco.languages.RenameLocation> {\n const result = await serverLib.prepareRename(lspArgs(model, position));\n if (!result) {\n throw new Error(\"This element can't be renamed.\");\n }\n const text = model.getWordAtPosition(position)?.word;\n if (!text) {\n throw new Error(\"Failed to obtain word at position.\");\n }\n return { text, range: LspToMonaco.range(result) };\n },\n\n async provideRenameEdits(model, position, newName) {\n const result = await serverLib.rename({ ...lspArgs(model, position), newName });\n return monacoWorkspaceEdit(result);\n },\n });\n\n monaco.languages.registerFoldingRangeProvider(\"typespec\", {\n async provideFoldingRanges(model) {\n const ranges = await serverLib.getFoldingRanges(lspDocumentArgs(model));\n const output = ranges.map(LspToMonaco.foldingRange);\n return output;\n },\n });\n\n monaco.languages.registerHoverProvider(\"typespec\", {\n async provideHover(model, position) {\n const hover = await serverLib.getHover(lspArgs(model, position));\n return monacoHover(hover);\n },\n });\n\n monaco.languages.registerSignatureHelpProvider(\"typespec\", {\n signatureHelpTriggerCharacters: [\"(\", \",\", \"<\"],\n signatureHelpRetriggerCharacters: [\")\"],\n async provideSignatureHelp(model, position) {\n const help = await serverLib.getSignatureHelp(lspArgs(model, position));\n return { value: LspToMonaco.signatureHelp(help), dispose: () => {} };\n },\n });\n\n monaco.languages.registerDocumentFormattingEditProvider(\"typespec\", {\n async provideDocumentFormattingEdits(model, options, token) {\n const edits = await serverLib.formatDocument({\n ...lspDocumentArgs(model),\n options: lspFormattingOptions(options),\n });\n return LspToMonaco.textEdits(edits);\n },\n });\n\n monaco.languages.registerDocumentHighlightProvider(\"typespec\", {\n async provideDocumentHighlights(model, position) {\n const highlights = await serverLib.findDocumentHighlight(lspArgs(model, position));\n return highlights.map(monacoDocumentHighlight);\n },\n });\n\n monaco.languages.registerCompletionItemProvider(\"typespec\", {\n triggerCharacters: lsConfig.capabilities.completionProvider!.triggerCharacters,\n async provideCompletionItems(model, position) {\n const result = await serverLib.complete(lspArgs(model, position));\n const word = model.getWordUntilPosition(position);\n const range = {\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: word.startColumn,\n endColumn: word.endColumn,\n };\n\n const suggestions: monaco.languages.CompletionItem[] = [];\n for (const item of result.items) {\n let itemRange = range;\n let insertText = item.insertText ?? item.label;\n if (item.textEdit && \"range\" in item.textEdit) {\n itemRange = LspToMonaco.range(item.textEdit.range);\n insertText = item.textEdit.newText;\n }\n suggestions.push({\n label: item.label,\n kind: item.kind as any,\n documentation: item.documentation,\n insertText,\n range: itemRange,\n commitCharacters:\n item.commitCharacters ?? lsConfig.capabilities.completionProvider!.allCommitCharacters,\n tags: item.tags,\n });\n }\n\n return { suggestions };\n },\n });\n\n // This doesn't actually work because the lsp is not aware of the diagnostics here as we make our own compilation in the playground.\n // monaco.languages.registerCodeActionProvider(\"typespec\", {\n // async provideCodeActions(model, range, context, token) {\n // const result = await serverLib.getCodeActions({\n // range: MonacoToLsp.range(range),\n // context: MonacoToLsp.codeActionContext(context),\n // textDocument: textDocumentForModel(model),\n // });\n // return { actions: result.map(LspToMonaco.codeAction), dispose: () => {} };\n // },\n // });\n\n monaco.editor.defineTheme(\"typespec\", {\n base: \"vs\",\n inherit: true,\n colors: {},\n rules: [\n { token: \"macro\", foreground: \"#800000\" },\n { token: \"function\", foreground: \"#795E26\" },\n ],\n });\n monaco.editor.defineTheme(\"typespec-dark\", {\n base: \"vs-dark\",\n inherit: true,\n colors: {},\n rules: [\n { token: \"macro\", foreground: \"#E06C75\" },\n { token: \"function\", foreground: \"#E06C75\" },\n ],\n });\n monaco.editor.setTheme(\"typespec\");\n\n monaco.languages.registerDocumentSemanticTokensProvider(\"typespec\", {\n getLegend() {\n const legend = lsConfig.capabilities.semanticTokensProvider!.legend;\n return {\n tokenModifiers: legend.tokenModifiers,\n tokenTypes: legend.tokenTypes.map((entry) => {\n switch (entry) {\n case \"namespace\":\n case \"class\":\n case \"enum\":\n case \"typeParameter\":\n case \"struct\":\n case \"interface\":\n return \"type\";\n case \"property\":\n case \"enumMember\":\n return \"variable\";\n case \"docCommentTag\":\n return \"keyword\";\n default:\n return entry;\n }\n }),\n };\n },\n async provideDocumentSemanticTokens(model) {\n const result = await serverLib.buildSemanticTokens(lspDocumentArgs(model));\n return {\n resultId: result.resultId,\n data: new Uint32Array(result.data),\n };\n },\n releaseDocumentSemanticTokens() {},\n });\n}\n\nexport function getMonacoRange(\n typespecCompiler: typeof import(\"@typespec/compiler\"),\n target: DiagnosticTarget | typeof NoTarget\n): monaco.IRange {\n const loc = typespecCompiler.getSourceLocation(target);\n if (loc === undefined || loc.file.path !== \"/test/main.tsp\") {\n return {\n startLineNumber: 1,\n startColumn: 1,\n endLineNumber: 1,\n endColumn: 1,\n };\n }\n const start = loc.file.getLineAndCharacterOfPosition(loc.pos);\n const end = loc.file.getLineAndCharacterOfPosition(loc.end);\n return {\n startLineNumber: start.line + 1,\n startColumn: start.character + 1,\n endLineNumber: end.line + 1,\n endColumn: end.character + 1,\n };\n}\n","import lzutf8 from \"lzutf8\";\n\nexport interface StateStorage<T extends object> {\n load(): Partial<T>;\n save(t: Partial<T>): void;\n}\n\nexport interface UrlStateStorage<T extends object> extends StateStorage<T> {\n resolveSearchParams(t: Partial<T>): URLSearchParams;\n}\n\nexport type UrlStorageSchema<T> = {\n [key in keyof T]: UrlStorageItem;\n};\n\nexport interface UrlStorageItem {\n /** Name of the query parameter where the data will be serialized. */\n queryParam: string;\n\n type?: \"string\" | \"object\";\n\n /** Encoding the data should be compressed with. If undefined param will not be compressed. */\n compress?: \"lz-base64\";\n}\n\n/**\n * Generic storage mechanism for data in the playground.\n * @param schema Schema of the data to be serialized in the query\n * @returns\n */\nexport function createUrlStateStorage<const T extends object>(\n schema: UrlStorageSchema<T>\n): UrlStateStorage<T> {\n return { load, save, resolveSearchParams };\n\n function load(): Partial<T> {\n const result: Record<string, string> = {};\n const parsed = new URLSearchParams(window.location.search);\n for (const [key, item] of Object.entries<UrlStorageItem>(schema)) {\n const value = parsed.get(item.queryParam);\n const decompressed = value && decompress(item, value);\n const deserialized = decompressed && deserialize(item, decompressed);\n if (deserialized) {\n result[key] = deserialized;\n }\n }\n return result as Partial<T>;\n }\n\n function decompress(item: UrlStorageItem, value: string): string | undefined {\n if (item.compress) {\n try {\n return lzutf8.decompress(value, { inputEncoding: \"Base64\" });\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(\n `Error decompressing query parameter ${item.queryParam} with content:`,\n value\n );\n return undefined;\n }\n } else {\n return value;\n }\n }\n\n function deserialize(item: UrlStorageItem, value: string): any {\n if (item.type === \"object\") {\n try {\n return JSON.parse(value);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(\n `Error decompressing query parameter ${item.queryParam} with content:`,\n value\n );\n return undefined;\n }\n } else {\n return value;\n }\n }\n\n function save(data: T) {\n const params = resolveSearchParams(data, true);\n history.pushState(null, \"\", window.location.pathname + \"?\" + params.toString());\n }\n\n function resolveSearchParams(data: T, mergeWithExisting = false): URLSearchParams {\n const params = new URLSearchParams(mergeWithExisting ? location.search : undefined);\n for (const [key, item] of Object.entries<UrlStorageItem>(schema)) {\n const value = (data as any)[key];\n\n if (value) {\n const serialized = serialize(item, value);\n const compressed = compress(item, serialized);\n params.set(item.queryParam, compressed);\n } else {\n params.delete(item.queryParam);\n }\n }\n return params;\n }\n\n function compress(item: UrlStorageItem, value: string): string {\n if (item.compress) {\n return lzutf8.compress(value, { outputEncoding: \"Base64\" });\n } else {\n return value;\n }\n }\n\n function serialize(item: UrlStorageItem, value: any): string {\n if (item.type === \"object\") {\n return JSON.stringify(value);\n } else {\n return value;\n }\n }\n}\n"],"names":[],"mappings":"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"}
@@ -59,12 +59,12 @@ function playgroundManifestPlugin(config) {
59
59
  },
60
60
  load(id) {
61
61
  if (id === `@typespec/playground/manifest`) {
62
- const sampleImport = Object.values(samples !== null && samples !== void 0 ? samples : {})
62
+ const sampleImport = Object.values(samples ?? {})
63
63
  .map((sampleValue, index) => `import s${index} from "${viteConfig.root}/${sampleValue.filename}?raw"`)
64
64
  .join("\n");
65
65
  const sampleObj = [
66
66
  "{",
67
- ...Object.entries(samples !== null && samples !== void 0 ? samples : {}).map(([label, config], index) => `${JSON.stringify(label)}: {
67
+ ...Object.entries(samples ?? {}).map(([label, config], index) => `${JSON.stringify(label)}: {
68
68
  fileName: ${JSON.stringify(config.filename)},
69
69
  preferredEmitter: ${config.preferredEmitter ? JSON.stringify(config.preferredEmitter) : "undefined"},
70
70
  content: s${index},
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/vite/index.ts"],"sourcesContent":["import { typespecBundlePlugin } from \"@typespec/bundler/vite\";\nimport react from \"@vitejs/plugin-react\";\nimport { Plugin, ResolvedConfig, UserConfig } from \"vite\";\nimport { PlaygroundUserConfig } from \"./types.js\";\n\nexport function definePlaygroundViteConfig(config: PlaygroundUserConfig): UserConfig {\n return {\n base: \"./\",\n build: {\n target: \"esnext\",\n chunkSizeWarningLimit: 5000,\n rollupOptions: {\n output: {\n manualChunks(id) {\n if (id.includes(\"/node_modules/monaco-editor/esm/vs/editor\")) {\n return \"monaco\";\n }\n return undefined;\n },\n },\n },\n },\n esbuild: {\n logOverride: { \"this-is-undefined-in-esm\": \"silent\" },\n },\n assetsInclude: [/\\.tsp$/],\n optimizeDeps: {\n exclude: [\"swagger-ui\"],\n },\n plugins: [\n react({}),\n playgroundManifestPlugin(config),\n !config.skipBundleLibraries\n ? typespecBundlePlugin({\n folderName: \"libs\",\n libraries: config.libraries,\n })\n : undefined,\n ],\n server: {\n fs: {\n strict: false,\n },\n },\n };\n}\n\nfunction playgroundManifestPlugin(config: PlaygroundUserConfig): Plugin {\n const { samples, ...manifest } = config;\n let viteConfig: ResolvedConfig;\n\n return {\n name: \"playground-manifest\",\n enforce: \"pre\", // Need to run before resolving library imports to stub `@typespec/playground/manifest`\n async configResolved(c) {\n viteConfig = c;\n },\n resolveId(id: string) {\n if (id === \"@typespec/playground/manifest\") {\n return id;\n }\n return null;\n },\n load(id: string) {\n if (id === `@typespec/playground/manifest`) {\n const sampleImport = Object.values(samples ?? {})\n .map(\n (sampleValue, index) =>\n `import s${index} from \"${viteConfig.root}/${sampleValue.filename}?raw\"`\n )\n .join(\"\\n\");\n const sampleObj = [\n \"{\",\n ...Object.entries(samples ?? {}).map(\n ([label, config], index) =>\n `${JSON.stringify(label)}: {\n fileName: ${JSON.stringify(config.filename)},\n preferredEmitter: ${\n config.preferredEmitter ? JSON.stringify(config.preferredEmitter) : \"undefined\"\n },\n content: s${index},\n ${\n config.compilerOptions\n ? `compilerOptions: ${JSON.stringify(config.compilerOptions)},`\n : \"\"\n }\n\n }, `\n ),\n \"}\",\n ].join(\"\\n\");\n\n const file = `\n ${sampleImport};\n \n export default {\n ...${JSON.stringify(manifest)},\n samples: ${sampleObj}\n };`;\n\n return file;\n }\n return undefined;\n },\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/vite/index.ts"],"sourcesContent":["import { typespecBundlePlugin } from \"@typespec/bundler/vite\";\nimport react from \"@vitejs/plugin-react\";\nimport { Plugin, ResolvedConfig, UserConfig } from \"vite\";\nimport { PlaygroundUserConfig } from \"./types.js\";\n\nexport function definePlaygroundViteConfig(config: PlaygroundUserConfig): UserConfig {\n return {\n base: \"./\",\n build: {\n target: \"esnext\",\n chunkSizeWarningLimit: 5000,\n rollupOptions: {\n output: {\n manualChunks(id) {\n if (id.includes(\"/node_modules/monaco-editor/esm/vs/editor\")) {\n return \"monaco\";\n }\n return undefined;\n },\n },\n },\n },\n esbuild: {\n logOverride: { \"this-is-undefined-in-esm\": \"silent\" },\n },\n assetsInclude: [/\\.tsp$/],\n optimizeDeps: {\n exclude: [\"swagger-ui\"],\n },\n plugins: [\n react({}),\n playgroundManifestPlugin(config),\n !config.skipBundleLibraries\n ? typespecBundlePlugin({\n folderName: \"libs\",\n libraries: config.libraries,\n })\n : undefined,\n ],\n server: {\n fs: {\n strict: false,\n },\n },\n };\n}\n\nfunction playgroundManifestPlugin(config: PlaygroundUserConfig): Plugin {\n const { samples, ...manifest } = config;\n let viteConfig: ResolvedConfig;\n\n return {\n name: \"playground-manifest\",\n enforce: \"pre\", // Need to run before resolving library imports to stub `@typespec/playground/manifest`\n async configResolved(c) {\n viteConfig = c;\n },\n resolveId(id: string) {\n if (id === \"@typespec/playground/manifest\") {\n return id;\n }\n return null;\n },\n load(id: string) {\n if (id === `@typespec/playground/manifest`) {\n const sampleImport = Object.values(samples ?? {})\n .map(\n (sampleValue, index) =>\n `import s${index} from \"${viteConfig.root}/${sampleValue.filename}?raw\"`\n )\n .join(\"\\n\");\n const sampleObj = [\n \"{\",\n ...Object.entries(samples ?? {}).map(\n ([label, config], index) =>\n `${JSON.stringify(label)}: {\n fileName: ${JSON.stringify(config.filename)},\n preferredEmitter: ${\n config.preferredEmitter ? JSON.stringify(config.preferredEmitter) : \"undefined\"\n },\n content: s${index},\n ${\n config.compilerOptions\n ? `compilerOptions: ${JSON.stringify(config.compilerOptions)},`\n : \"\"\n }\n\n }, `\n ),\n \"}\",\n ].join(\"\\n\");\n\n const file = `\n ${sampleImport};\n \n export default {\n ...${JSON.stringify(manifest)},\n samples: ${sampleObj}\n };`;\n\n return file;\n }\n return undefined;\n },\n };\n}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typespec/playground",
3
- "version": "0.3.0-dev.5",
3
+ "version": "0.3.0-dev.6",
4
4
  "author": "Microsoft Corporation",
5
5
  "description": "TypeSpec playground UI components.",
6
6
  "homepage": "https://typespec.io",
@@ -1 +0,0 @@
1
- {"version":3,"file":"state-storage-BtJ3x1w_.js","sources":["../../src/core.ts","../../src/browser-host.ts","../../src/lsp/lsp-to-monaco.ts","../../src/services.ts","../../src/state-storage.ts"],"sourcesContent":["/**\n * Options for importing libraries.\n */\nexport interface LibraryImportOptions {\n /**\n * Should use es-module-shim importmap-shim instead of built-in import and importmap system.\n * @see https://github.com/guybedford/es-module-shims\n */\n useShim?: boolean;\n}\n\nexport async function importTypeSpecCompiler(\n config: any\n): Promise<typeof import(\"@typespec/compiler\")> {\n return (await importLibrary(\"@typespec/compiler\", config)) as any;\n}\n\n/**\n * @param name Import name.\n * @returns Promise with the loaded module.\n */\nexport async function importLibrary(name: string, config: LibraryImportOptions): Promise<unknown> {\n return config.useShim\n ? importShim(name)\n : import(/* @vite-ignore */ /* webpackIgnore: true */ name);\n}\n\n/**\n * Loading external import map doesn't work yet\n *\n * https://github.com/WICG/import-maps/issues/235\n *\n * A polyfill for importmap is loaded but required calling importShim instead of the native import https://github.com/guybedford/es-module-shims\n * @param name Import name.\n * @returns Promise with the loaded module.\n */\nasync function importShim(name: string): Promise<unknown> {\n return (window as any).importShim(name);\n}\n","import { createSourceFile, getSourceFileKindFromExt, resolvePath } from \"@typespec/compiler\";\nimport { LibraryImportOptions, importLibrary, importTypeSpecCompiler } from \"./core.js\";\nimport { BrowserHost, PlaygroundTspLibrary } from \"./types.js\";\n\nexport function resolveVirtualPath(path: string, ...paths: string[]) {\n return resolvePath(\"/test\", path, ...paths);\n}\n\n/**\n * Create the browser host from the list of libraries.\n * @param libsToLoad List of libraries to load. Those must be set in the webpage importmap.\n * @param importOptions Import configuration.\n * @returns\n */\nexport async function createBrowserHost(\n libsToLoad: readonly string[],\n importOptions: LibraryImportOptions = {}\n): Promise<BrowserHost> {\n const virtualFs = new Map<string, string>();\n const jsImports = new Map<string, Promise<any>>();\n\n const libraries: Record<string, PlaygroundTspLibrary> = {};\n for (const libName of libsToLoad) {\n const { _TypeSpecLibrary_, $lib, $linter } = (await importLibrary(\n libName,\n importOptions\n )) as any;\n libraries[libName] = {\n name: libName,\n isEmitter: $lib?.emitter,\n definition: $lib,\n packageJson: JSON.parse(_TypeSpecLibrary_.typespecSourceFiles[\"package.json\"]),\n linter: $linter,\n };\n for (const [key, value] of Object.entries<any>(_TypeSpecLibrary_.typespecSourceFiles)) {\n virtualFs.set(`/test/node_modules/${libName}/${key}`, value);\n }\n for (const [key, value] of Object.entries<any>(_TypeSpecLibrary_.jsSourceFiles)) {\n addJsImport(`/test/node_modules/${libName}/${key}`, value);\n }\n virtualFs.set(\n `/test/package.json`,\n JSON.stringify({\n name: \"playground-pkg\",\n dependencies: Object.fromEntries(\n Object.values(libraries).map((x) => [x.name, x.packageJson.version])\n ),\n })\n );\n }\n\n function addJsImport(path: string, value: any) {\n virtualFs.set(path, \"\");\n jsImports.set(path, value);\n }\n return {\n compiler: await importTypeSpecCompiler(importOptions),\n libraries,\n async readUrl(url: string) {\n const contents = virtualFs.get(url);\n if (contents === undefined) {\n const e = new Error(`File ${url} not found.`);\n (e as any).code = \"ENOENT\";\n throw e;\n }\n return createSourceFile(contents, url);\n },\n async readFile(path: string) {\n path = resolveVirtualPath(path);\n const contents = virtualFs.get(path);\n if (contents === undefined) {\n const e = new Error(`File ${path} not found.`);\n (e as any).code = \"ENOENT\";\n throw e;\n }\n return createSourceFile(contents, path);\n },\n\n async writeFile(path: string, content: string) {\n path = resolveVirtualPath(path);\n virtualFs.set(path, content);\n },\n\n async readDir(path: string) {\n path = resolveVirtualPath(path);\n const fileFolder = [...virtualFs.keys()]\n .filter((x) => x.startsWith(`${path}/`))\n .map((x) => x.replace(`${path}/`, \"\"))\n .map((x) => {\n const index = x.indexOf(\"/\");\n return index !== -1 ? x.substring(0, index) : x;\n });\n return [...new Set(fileFolder)];\n },\n\n async rm(path: string) {\n path = resolveVirtualPath(path);\n\n for (const key of virtualFs.keys()) {\n if (key === path || key.startsWith(`${path}/`)) {\n virtualFs.delete(key);\n }\n }\n },\n\n getLibDirs() {\n return [resolveVirtualPath(\"/test/node_modules/@typespec/compiler/lib\")];\n },\n\n getExecutionRoot() {\n return resolveVirtualPath(\".tsp\");\n },\n\n async getJsImport(path) {\n path = resolveVirtualPath(path);\n const module = await jsImports.get(path);\n if (module === undefined) {\n const e = new Error(`Module ${path} not found`);\n (e as any).code = \"MODULE_NOT_FOUND\";\n throw e;\n }\n return module;\n },\n\n async stat(path: string) {\n path = resolveVirtualPath(path);\n\n if (virtualFs.has(path)) {\n return {\n isDirectory() {\n return false;\n },\n isFile() {\n return true;\n },\n };\n }\n\n for (const fsPath of virtualFs.keys()) {\n if (fsPath.startsWith(path) && fsPath !== path) {\n return {\n isDirectory() {\n return true;\n },\n isFile() {\n return false;\n },\n };\n }\n }\n const e = new Error(`File ${path} not found.`);\n (e as any).code = \"ENOENT\";\n throw e;\n },\n\n // symlinks not supported in test-host\n async realpath(path) {\n return path;\n },\n\n getSourceFileKind: getSourceFileKindFromExt,\n\n logSink: console,\n mkdirp: async (path: string) => path,\n fileURLToPath(path) {\n return path.replace(\"inmemory:/\", \"\");\n },\n pathToFileURL(path) {\n return \"inmemory:/\" + resolveVirtualPath(path);\n },\n };\n}\n","import * as monaco from \"monaco-editor\";\nimport type * as lsp from \"vscode-languageserver\";\nimport { DiagnosticSeverity } from \"vscode-languageserver\";\n\nfunction range(range: lsp.Range): monaco.IRange {\n return {\n startColumn: range.start.character + 1,\n startLineNumber: range.start.line + 1,\n endColumn: range.end.character + 1,\n endLineNumber: range.end.line + 1,\n };\n}\n\nfunction foldingRange(range: lsp.FoldingRange): monaco.languages.FoldingRange {\n return {\n start: range.startLine + 1,\n end: range.endLine + 1,\n kind: range.kind ? new monaco.languages.FoldingRangeKind(range.kind) : undefined,\n };\n}\n\nfunction textEdits(edit: lsp.TextEdit[]): monaco.languages.TextEdit[] {\n return edit.map(textEdit);\n}\n\nfunction textEdit(edit: lsp.TextEdit): monaco.languages.TextEdit {\n return {\n range: range(edit.range),\n text: edit.newText,\n };\n}\n\nfunction signatureHelp(help: lsp.SignatureHelp | undefined): monaco.languages.SignatureHelp {\n return {\n signatures:\n help?.signatures.map((x) => ({\n ...x,\n parameters: x.parameters ?? [],\n })) ?? [],\n activeSignature: help?.activeSignature ?? 0,\n activeParameter: help?.activeParameter ?? 0,\n };\n}\n\nfunction command(command: lsp.Command): monaco.languages.Command {\n return {\n id: command.command,\n title: command.title,\n arguments: command.arguments,\n };\n}\n\nfunction severity(severity: lsp.DiagnosticSeverity): monaco.MarkerSeverity {\n switch (severity) {\n case DiagnosticSeverity.Error:\n return monaco.MarkerSeverity.Error;\n case DiagnosticSeverity.Warning:\n return monaco.MarkerSeverity.Warning;\n case DiagnosticSeverity.Hint:\n return monaco.MarkerSeverity.Hint;\n case DiagnosticSeverity.Information:\n return monaco.MarkerSeverity.Info;\n }\n}\n\nfunction diagnostic(diagnostic: lsp.Diagnostic): monaco.editor.IMarkerData {\n return {\n severity: diagnostic.severity ? severity(diagnostic.severity) : monaco.MarkerSeverity.Error,\n message: diagnostic.message,\n code: diagnostic.code?.toString(),\n source: diagnostic.source,\n startLineNumber: diagnostic.range.start.line + 1,\n startColumn: diagnostic.range.start.character + 1,\n endLineNumber: diagnostic.range.end.line + 1,\n endColumn: diagnostic.range.end.character + 1,\n };\n}\n\nfunction codeAction(action: lsp.CodeAction): monaco.languages.CodeAction {\n return {\n title: action.title,\n kind: action.kind,\n diagnostics: action.diagnostics?.map(diagnostic),\n command: action.command && command(action.command),\n };\n}\n\nexport const LspToMonaco = {\n range,\n foldingRange,\n textEdits,\n textEdit,\n signatureHelp,\n codeAction,\n command,\n} as const;\n","import {\n DiagnosticTarget,\n NoTarget,\n ServerHost,\n TypeSpecLanguageConfiguration,\n} from \"@typespec/compiler\";\nimport * as monaco from \"monaco-editor\";\nimport * as lsp from \"vscode-languageserver\";\nimport { DocumentHighlightKind, FormattingOptions } from \"vscode-languageserver\";\nimport { TextDocument } from \"vscode-languageserver-textdocument\";\nimport { LspToMonaco } from \"./lsp/lsp-to-monaco.js\";\nimport { BrowserHost } from \"./types.js\";\n\nfunction getIndentAction(\n value: \"none\" | \"indent\" | \"indentOutdent\" | \"outdent\"\n): monaco.languages.IndentAction {\n switch (value) {\n case \"none\":\n return monaco.languages.IndentAction.None;\n case \"indent\":\n return monaco.languages.IndentAction.Indent;\n case \"indentOutdent\":\n return monaco.languages.IndentAction.IndentOutdent;\n case \"outdent\":\n return monaco.languages.IndentAction.Outdent;\n }\n}\n\nfunction getTypeSpecLanguageConfiguration(): monaco.languages.LanguageConfiguration {\n return {\n ...(TypeSpecLanguageConfiguration as any),\n onEnterRules: TypeSpecLanguageConfiguration.onEnterRules.map((rule) => {\n return {\n beforeText: new RegExp(rule.beforeText.pattern),\n previousLineText:\n \"previousLineText\" in rule ? new RegExp(rule.previousLineText.pattern) : undefined,\n action: {\n indentAction: getIndentAction(rule.action.indent),\n appendText: \"appendText\" in rule.action ? rule.action.appendText : undefined,\n removeText: \"removeText\" in rule.action ? rule.action.removeText : undefined,\n },\n };\n }),\n };\n}\n\nexport async function registerMonacoLanguage(host: BrowserHost) {\n monaco.languages.register({ id: \"typespec\", extensions: [\".tsp\"] });\n monaco.languages.setLanguageConfiguration(\"typespec\", getTypeSpecLanguageConfiguration());\n\n const serverHost: ServerHost = {\n compilerHost: host,\n getOpenDocumentByURL(url: string) {\n const model = monaco.editor.getModel(monaco.Uri.parse(url));\n return model ? textDocumentForModel(model) : undefined;\n },\n sendDiagnostics() {},\n // eslint-disable-next-line no-console\n log: console.log,\n applyEdit(param) {\n return Promise.resolve({ applied: false });\n },\n };\n\n const { createServer } = host.compiler;\n const serverLib = createServer(serverHost);\n const lsConfig = await serverLib.initialize({\n capabilities: {},\n processId: 1,\n workspaceFolders: [],\n rootUri: \"inmemory://\",\n });\n serverLib.initialized({});\n\n function textDocumentForModel(model: monaco.editor.IModel) {\n return TextDocument.create(\n model.uri.toString(),\n \"typespec\",\n model.getVersionId(),\n model.getValue()\n );\n }\n\n function lspDocumentArgs(model: monaco.editor.ITextModel) {\n return {\n textDocument: textDocumentForModel(model),\n };\n }\n\n function lspArgs(model: monaco.editor.ITextModel, pos: monaco.Position) {\n return {\n ...lspDocumentArgs(model),\n position: lspPosition(pos),\n };\n }\n\n function lspPosition(pos: monaco.Position): lsp.Position {\n return {\n line: pos.lineNumber - 1,\n character: pos.column - 1,\n };\n }\n\n function lspFormattingOptions(options: monaco.languages.FormattingOptions) {\n return FormattingOptions.create(options.tabSize, options.insertSpaces);\n }\n\n function monacoLocation(loc: lsp.Location): monaco.languages.Location {\n return {\n uri: monaco.Uri.parse(loc.uri),\n range: LspToMonaco.range(loc.range),\n };\n }\n\n function monacoDocumentHighlight(\n highlight: lsp.DocumentHighlight\n ): monaco.languages.DocumentHighlight {\n return {\n range: LspToMonaco.range(highlight.range),\n kind: monacoDocumentHighlightKind(highlight.kind),\n };\n }\n\n function monacoDocumentHighlightKind(kind: DocumentHighlightKind | undefined) {\n switch (kind) {\n case DocumentHighlightKind.Text:\n return monaco.languages.DocumentHighlightKind.Text;\n case DocumentHighlightKind.Read:\n return monaco.languages.DocumentHighlightKind.Read;\n case DocumentHighlightKind.Write:\n return monaco.languages.DocumentHighlightKind.Write;\n default:\n return undefined;\n }\n }\n\n function monacoHoverContents(contents: lsp.MarkupContent): monaco.IMarkdownString[] {\n return [{ value: contents.value }];\n }\n\n function monacoHover(hover: lsp.Hover): monaco.languages.Hover {\n // eslint-disable-next-line deprecation/deprecation\n if (Array.isArray(hover.contents) || lsp.MarkedString.is(hover.contents)) {\n throw new Error(\"MarkedString (deprecated) not supported.\");\n }\n\n return {\n contents: monacoHoverContents(hover.contents),\n range: hover.range ? LspToMonaco.range(hover.range) : undefined,\n };\n }\n\n function monacoWorkspaceEdit(edit: lsp.WorkspaceEdit): monaco.languages.WorkspaceEdit {\n const edits: monaco.languages.IWorkspaceTextEdit[] = [];\n for (const [uri, changes] of Object.entries(edit.changes ?? {})) {\n const resource = monaco.Uri.parse(uri);\n for (const change of changes) {\n edits.push({ resource, textEdit: LspToMonaco.textEdit(change), versionId: undefined });\n }\n }\n return { edits };\n }\n\n monaco.languages.registerDefinitionProvider(\"typespec\", {\n async provideDefinition(model, position) {\n const results = await serverLib.gotoDefinition(lspArgs(model, position));\n return results.map(monacoLocation);\n },\n });\n\n monaco.languages.registerReferenceProvider(\"typespec\", {\n async provideReferences(model, position, context) {\n const results = await serverLib.findReferences({ ...lspArgs(model, position), context });\n return results.map(monacoLocation);\n },\n });\n\n monaco.languages.registerRenameProvider(\"typespec\", {\n async resolveRenameLocation(model, position): Promise<monaco.languages.RenameLocation> {\n const result = await serverLib.prepareRename(lspArgs(model, position));\n if (!result) {\n throw new Error(\"This element can't be renamed.\");\n }\n const text = model.getWordAtPosition(position)?.word;\n if (!text) {\n throw new Error(\"Failed to obtain word at position.\");\n }\n return { text, range: LspToMonaco.range(result) };\n },\n\n async provideRenameEdits(model, position, newName) {\n const result = await serverLib.rename({ ...lspArgs(model, position), newName });\n return monacoWorkspaceEdit(result);\n },\n });\n\n monaco.languages.registerFoldingRangeProvider(\"typespec\", {\n async provideFoldingRanges(model) {\n const ranges = await serverLib.getFoldingRanges(lspDocumentArgs(model));\n const output = ranges.map(LspToMonaco.foldingRange);\n return output;\n },\n });\n\n monaco.languages.registerHoverProvider(\"typespec\", {\n async provideHover(model, position) {\n const hover = await serverLib.getHover(lspArgs(model, position));\n return monacoHover(hover);\n },\n });\n\n monaco.languages.registerSignatureHelpProvider(\"typespec\", {\n signatureHelpTriggerCharacters: [\"(\", \",\", \"<\"],\n signatureHelpRetriggerCharacters: [\")\"],\n async provideSignatureHelp(model, position) {\n const help = await serverLib.getSignatureHelp(lspArgs(model, position));\n return { value: LspToMonaco.signatureHelp(help), dispose: () => {} };\n },\n });\n\n monaco.languages.registerDocumentFormattingEditProvider(\"typespec\", {\n async provideDocumentFormattingEdits(model, options, token) {\n const edits = await serverLib.formatDocument({\n ...lspDocumentArgs(model),\n options: lspFormattingOptions(options),\n });\n return LspToMonaco.textEdits(edits);\n },\n });\n\n monaco.languages.registerDocumentHighlightProvider(\"typespec\", {\n async provideDocumentHighlights(model, position) {\n const highlights = await serverLib.findDocumentHighlight(lspArgs(model, position));\n return highlights.map(monacoDocumentHighlight);\n },\n });\n\n monaco.languages.registerCompletionItemProvider(\"typespec\", {\n triggerCharacters: lsConfig.capabilities.completionProvider!.triggerCharacters,\n async provideCompletionItems(model, position) {\n const result = await serverLib.complete(lspArgs(model, position));\n const word = model.getWordUntilPosition(position);\n const range = {\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: word.startColumn,\n endColumn: word.endColumn,\n };\n\n const suggestions: monaco.languages.CompletionItem[] = [];\n for (const item of result.items) {\n let itemRange = range;\n let insertText = item.insertText!;\n if (item.textEdit && \"range\" in item.textEdit) {\n itemRange = LspToMonaco.range(item.textEdit.range);\n insertText = item.textEdit.newText;\n }\n suggestions.push({\n label: item.label,\n kind: item.kind as any,\n documentation: item.documentation,\n insertText,\n range: itemRange,\n commitCharacters:\n item.commitCharacters ?? lsConfig.capabilities.completionProvider!.allCommitCharacters,\n tags: item.tags,\n });\n }\n\n return { suggestions };\n },\n });\n\n // This doesn't actually work because the lsp is not aware of the diagnostics here as we make our own compilation in the playground.\n // monaco.languages.registerCodeActionProvider(\"typespec\", {\n // async provideCodeActions(model, range, context, token) {\n // const result = await serverLib.getCodeActions({\n // range: MonacoToLsp.range(range),\n // context: MonacoToLsp.codeActionContext(context),\n // textDocument: textDocumentForModel(model),\n // });\n // return { actions: result.map(LspToMonaco.codeAction), dispose: () => {} };\n // },\n // });\n\n monaco.editor.defineTheme(\"typespec\", {\n base: \"vs\",\n inherit: true,\n colors: {},\n rules: [\n { token: \"macro\", foreground: \"#800000\" },\n { token: \"function\", foreground: \"#795E26\" },\n ],\n });\n monaco.editor.defineTheme(\"typespec-dark\", {\n base: \"vs-dark\",\n inherit: true,\n colors: {},\n rules: [\n { token: \"macro\", foreground: \"#E06C75\" },\n { token: \"function\", foreground: \"#E06C75\" },\n ],\n });\n monaco.editor.setTheme(\"typespec\");\n\n monaco.languages.registerDocumentSemanticTokensProvider(\"typespec\", {\n getLegend() {\n const legend = lsConfig.capabilities.semanticTokensProvider!.legend;\n return {\n tokenModifiers: legend.tokenModifiers,\n tokenTypes: legend.tokenTypes.map((entry) => {\n switch (entry) {\n case \"namespace\":\n case \"class\":\n case \"enum\":\n case \"typeParameter\":\n case \"struct\":\n case \"interface\":\n return \"type\";\n case \"property\":\n case \"enumMember\":\n return \"variable\";\n case \"docCommentTag\":\n return \"keyword\";\n default:\n return entry;\n }\n }),\n };\n },\n async provideDocumentSemanticTokens(model) {\n const result = await serverLib.buildSemanticTokens(lspDocumentArgs(model));\n return {\n resultId: result.resultId,\n data: new Uint32Array(result.data),\n };\n },\n releaseDocumentSemanticTokens() {},\n });\n}\n\nexport function getMonacoRange(\n typespecCompiler: typeof import(\"@typespec/compiler\"),\n target: DiagnosticTarget | typeof NoTarget\n): monaco.IRange {\n const loc = typespecCompiler.getSourceLocation(target);\n if (loc === undefined || loc.file.path !== \"/test/main.tsp\") {\n return {\n startLineNumber: 1,\n startColumn: 1,\n endLineNumber: 1,\n endColumn: 1,\n };\n }\n const start = loc.file.getLineAndCharacterOfPosition(loc.pos);\n const end = loc.file.getLineAndCharacterOfPosition(loc.end);\n return {\n startLineNumber: start.line + 1,\n startColumn: start.character + 1,\n endLineNumber: end.line + 1,\n endColumn: end.character + 1,\n };\n}\n","import lzutf8 from \"lzutf8\";\n\nexport interface StateStorage<T extends object> {\n load(): Partial<T>;\n save(t: Partial<T>): void;\n}\n\nexport interface UrlStateStorage<T extends object> extends StateStorage<T> {\n resolveSearchParams(t: Partial<T>): URLSearchParams;\n}\n\nexport type UrlStorageSchema<T> = {\n [key in keyof T]: UrlStorageItem;\n};\n\nexport interface UrlStorageItem {\n /** Name of the query parameter where the data will be serialized. */\n queryParam: string;\n\n type?: \"string\" | \"object\";\n\n /** Encoding the data should be compressed with. If undefined param will not be compressed. */\n compress?: \"lz-base64\";\n}\n\n/**\n * Generic storage mechanism for data in the playground.\n * @param schema Schema of the data to be serialized in the query\n * @returns\n */\nexport function createUrlStateStorage<const T extends object>(\n schema: UrlStorageSchema<T>\n): UrlStateStorage<T> {\n return { load, save, resolveSearchParams };\n\n function load(): Partial<T> {\n const result: Record<string, string> = {};\n const parsed = new URLSearchParams(window.location.search);\n for (const [key, item] of Object.entries<UrlStorageItem>(schema)) {\n const value = parsed.get(item.queryParam);\n const decompressed = value && decompress(item, value);\n const deserialized = decompressed && deserialize(item, decompressed);\n if (deserialized) {\n result[key] = deserialized;\n }\n }\n return result as Partial<T>;\n }\n\n function decompress(item: UrlStorageItem, value: string): string | undefined {\n if (item.compress) {\n try {\n return lzutf8.decompress(value, { inputEncoding: \"Base64\" });\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(\n `Error decompressing query parameter ${item.queryParam} with content:`,\n value\n );\n return undefined;\n }\n } else {\n return value;\n }\n }\n\n function deserialize(item: UrlStorageItem, value: string): any {\n if (item.type === \"object\") {\n try {\n return JSON.parse(value);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(\n `Error decompressing query parameter ${item.queryParam} with content:`,\n value\n );\n return undefined;\n }\n } else {\n return value;\n }\n }\n\n function save(data: T) {\n const params = resolveSearchParams(data, true);\n history.pushState(null, \"\", window.location.pathname + \"?\" + params.toString());\n }\n\n function resolveSearchParams(data: T, mergeWithExisting = false): URLSearchParams {\n const params = new URLSearchParams(mergeWithExisting ? location.search : undefined);\n for (const [key, item] of Object.entries<UrlStorageItem>(schema)) {\n const value = (data as any)[key];\n\n if (value) {\n const serialized = serialize(item, value);\n const compressed = compress(item, serialized);\n params.set(item.queryParam, compressed);\n } else {\n params.delete(item.queryParam);\n }\n }\n return params;\n }\n\n function compress(item: UrlStorageItem, value: string): string {\n if (item.compress) {\n return lzutf8.compress(value, { outputEncoding: \"Base64\" });\n } else {\n return value;\n }\n }\n\n function serialize(item: UrlStorageItem, value: any): string {\n if (item.type === \"object\") {\n return JSON.stringify(value);\n } else {\n return value;\n }\n }\n}\n"],"names":[],"mappings":"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"}