modern-monaco 0.1.9 → 0.2.0
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.
- package/README.md +2 -4
- package/dist/{cache.js → cache.mjs} +1 -1
- package/dist/{core.js → core.mjs} +15 -38
- package/dist/{editor-core.js → editor-core.mjs} +108795 -88348
- package/dist/editor-worker-main.mjs +5 -0
- package/dist/{editor-worker.js → editor-worker.mjs} +5854 -4779
- package/dist/{index.js → index.mjs} +6 -6
- package/dist/lsp/css/{setup.js → setup.mjs} +19 -12
- package/dist/lsp/css/{worker.js → worker.mjs} +18 -23
- package/dist/lsp/html/{setup.js → setup.mjs} +19 -12
- package/dist/lsp/html/{worker.js → worker.mjs} +18 -23
- package/dist/lsp/json/{setup.js → setup.mjs} +19 -12
- package/dist/lsp/json/{worker.js → worker.mjs} +19 -24
- package/dist/lsp/{language-service.js → language-service.mjs} +7 -7
- package/dist/lsp/typescript/{setup.js → setup.mjs} +22 -15
- package/dist/lsp/typescript/{worker.js → worker.mjs} +22 -26
- package/dist/{shiki.js → shiki.mjs} +5 -2
- package/dist/ssr/{index.js → index.mjs} +4 -4
- package/dist/ssr/{workerd.js → workerd.mjs} +3 -3
- package/dist/{workspace.js → workspace.mjs} +16 -12
- package/package.json +15 -15
- package/types/index.d.ts +1 -1
- package/types/lsp.d.ts +2 -5
- package/types/monaco.d.ts +652 -278
- package/types/workspace.d.ts +5 -1
- /package/dist/lsp/typescript/{libs.js → libs.mjs} +0 -0
- /package/dist/{shiki-wasm.js → shiki-wasm.mjs} +0 -0
- /package/dist/{util.js → util.mjs} +0 -0
package/README.md
CHANGED
|
@@ -93,7 +93,7 @@ export default {
|
|
|
93
93
|
},
|
|
94
94
|
);
|
|
95
95
|
return new Response(
|
|
96
|
-
/* html
|
|
96
|
+
/* html */ `
|
|
97
97
|
${editorHTML}
|
|
98
98
|
<script type="module">
|
|
99
99
|
import { hydrate } from "https://esm.sh/modern-monaco";
|
|
@@ -337,8 +337,6 @@ export interface LSPLanguageConfig {
|
|
|
337
337
|
compilerOptions?: ts.CompilerOptions;
|
|
338
338
|
/** The global import map. */
|
|
339
339
|
importMap?: ImportMap;
|
|
340
|
-
/** The version of TypeScript from the CDN. Default: ">= 5.0.0" */
|
|
341
|
-
tsVersion?: string;
|
|
342
340
|
};
|
|
343
341
|
}
|
|
344
342
|
```
|
|
@@ -348,7 +346,7 @@ export interface LSPLanguageConfig {
|
|
|
348
346
|
modern-monaco uses [import maps](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script/type/importmap) to resolve **bare specifier** imports in JavaScript/TypeScript. By default, modern-monaco detects the `importmap` from the root `index.html` in the workspace.
|
|
349
347
|
|
|
350
348
|
```js
|
|
351
|
-
const indexHtml = /* html
|
|
349
|
+
const indexHtml = /* html */ `<!DOCTYPE html>
|
|
352
350
|
<html>
|
|
353
351
|
<head>
|
|
354
352
|
<script type="importmap">
|
|
@@ -1,21 +1,9 @@
|
|
|
1
|
-
// src/lsp/index.ts
|
|
2
|
-
function createWebWorker(url, name) {
|
|
3
|
-
let workerUrl = url;
|
|
4
|
-
if (url.origin !== location.origin) {
|
|
5
|
-
workerUrl = URL.createObjectURL(new Blob([`import "${url.href}"`], { type: "application/javascript" }));
|
|
6
|
-
}
|
|
7
|
-
return new Worker(workerUrl, {
|
|
8
|
-
type: "module",
|
|
9
|
-
name: name ?? url.pathname.slice(1).split("/").slice(-2).join("/")
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
|
|
13
1
|
// src/core.ts
|
|
14
|
-
import { getExtnameFromLanguageId, getLanguageIdFromPath, grammars, initShiki, setDefaultWasmLoader, themes } from "./shiki.
|
|
15
|
-
import { initShikiMonacoTokenizer, registerShikiMonacoTokenizer } from "./shiki.
|
|
16
|
-
import { render } from "./shiki.
|
|
17
|
-
import { getWasmInstance } from "./shiki-wasm.
|
|
18
|
-
import { ErrorNotFound, Workspace } from "./workspace.
|
|
2
|
+
import { getExtnameFromLanguageId, getLanguageIdFromPath, grammars, initShiki, setDefaultWasmLoader, themes } from "./shiki.mjs";
|
|
3
|
+
import { initShikiMonacoTokenizer, registerShikiMonacoTokenizer } from "./shiki.mjs";
|
|
4
|
+
import { render } from "./shiki.mjs";
|
|
5
|
+
import { getWasmInstance } from "./shiki-wasm.mjs";
|
|
6
|
+
import { ErrorNotFound, Workspace } from "./workspace.mjs";
|
|
19
7
|
|
|
20
8
|
// src/util.ts
|
|
21
9
|
var dec = /* @__PURE__ */ new TextDecoder();
|
|
@@ -48,7 +36,7 @@ function promiseWithResolvers() {
|
|
|
48
36
|
}
|
|
49
37
|
|
|
50
38
|
// src/core.ts
|
|
51
|
-
import { init as initLS } from "./lsp/language-service.
|
|
39
|
+
import { init as initLS } from "./lsp/language-service.mjs";
|
|
52
40
|
var editorProps = [
|
|
53
41
|
"autoDetectHighContrast",
|
|
54
42
|
"automaticLayout",
|
|
@@ -256,7 +244,7 @@ async function lazy(options) {
|
|
|
256
244
|
}
|
|
257
245
|
}
|
|
258
246
|
async function createEditor() {
|
|
259
|
-
const monaco = await (monacoPromise ?? (monacoPromise = loadMonaco(highlighter, workspace, options?.lsp
|
|
247
|
+
const monaco = await (monacoPromise ?? (monacoPromise = loadMonaco(highlighter, workspace, options?.lsp)));
|
|
260
248
|
const editor = monaco.editor.create(containerEl, renderOptions);
|
|
261
249
|
if (workspace) {
|
|
262
250
|
const storeViewState = () => {
|
|
@@ -334,8 +322,8 @@ async function lazy(options) {
|
|
|
334
322
|
function hydrate(options) {
|
|
335
323
|
return lazy(options);
|
|
336
324
|
}
|
|
337
|
-
async function loadMonaco(highlighter, workspace, lsp
|
|
338
|
-
const monaco = await import("./editor-core.
|
|
325
|
+
async function loadMonaco(highlighter, workspace, lsp) {
|
|
326
|
+
const monaco = await import("./editor-core.mjs");
|
|
339
327
|
const lspProviderMap = { ...lspProviders, ...lsp?.providers };
|
|
340
328
|
workspace?.setupMonaco(monaco);
|
|
341
329
|
if (Object.keys(lspProviderMap).length > 0) {
|
|
@@ -345,31 +333,20 @@ async function loadMonaco(highlighter, workspace, lsp, onDidEditorWorkerResolve2
|
|
|
345
333
|
const styleEl = document.createElement("style");
|
|
346
334
|
styleEl.id = "monaco-editor-core-css";
|
|
347
335
|
styleEl.media = "screen";
|
|
348
|
-
styleEl.textContent = monaco.
|
|
336
|
+
styleEl.textContent = monaco.cssBundle;
|
|
349
337
|
document.head.appendChild(styleEl);
|
|
350
338
|
}
|
|
351
339
|
Reflect.set(globalThis, "MonacoEnvironment", {
|
|
352
340
|
getWorker: async (_workerId, label) => {
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
provider = Object.values(lspProviderMap).find((p) => p.aliases?.includes(label));
|
|
356
|
-
}
|
|
357
|
-
const url = provider ? (await provider.import()).getWorkerUrl() : monaco.getWorkerUrl();
|
|
358
|
-
if (label === "typescript") {
|
|
359
|
-
const tsVersion = lsp?.typescript?.tsVersion;
|
|
360
|
-
if (tsVersion && (url.hostname === "esm.sh" || url.hostname.endsWith(".esm.sh"))) {
|
|
361
|
-
url.searchParams.set("deps", `typescript@${tsVersion}`);
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
const worker = createWebWorker(url, void 0);
|
|
365
|
-
if (!provider) {
|
|
341
|
+
if (label === "editorWorkerService") {
|
|
342
|
+
const worker = monaco.createEditorWorkerMain();
|
|
366
343
|
const onMessage = (e) => {
|
|
367
|
-
onDidEditorWorkerResolve2?.();
|
|
368
344
|
worker.removeEventListener("message", onMessage);
|
|
345
|
+
onDidEditorWorkerResolve();
|
|
369
346
|
};
|
|
370
347
|
worker.addEventListener("message", onMessage);
|
|
348
|
+
return worker;
|
|
371
349
|
}
|
|
372
|
-
return worker;
|
|
373
350
|
},
|
|
374
351
|
getLanguageIdFromUri: (uri) => getLanguageIdFromPath(uri.path),
|
|
375
352
|
getExtnameFromLanguageId
|
|
@@ -452,7 +429,7 @@ async function loadMonaco(highlighter, workspace, lsp, onDidEditorWorkerResolve2
|
|
|
452
429
|
}
|
|
453
430
|
}
|
|
454
431
|
if (lspProvider) {
|
|
455
|
-
lspProvider.import().then(({ setup }) => setup(monaco, id,
|
|
432
|
+
lspProvider.import().then(({ setup }) => setup(monaco, id, lsp?.[lspLabel], lsp?.formatting, workspace));
|
|
456
433
|
}
|
|
457
434
|
});
|
|
458
435
|
});
|