From 97588a263c1b1375df04258f89cdcbf8e593feab Mon Sep 17 00:00:00 2001 From: undefined Date: Tue, 16 Jul 2024 23:44:38 +0800 Subject: [PATCH] fix loadExternalFeatures --- build/prepare.js | 2 +- packages/ui-default/components/monaco/loader.ts | 3 ++- packages/ui-default/components/monaco/monaco.ts | 8 +++++--- .../scratchpad/ScratchpadEditorContainer.tsx | 4 ++-- packages/ui-default/package.json | 10 +++++----- 5 files changed, 15 insertions(+), 12 deletions(-) diff --git a/build/prepare.js b/build/prepare.js index 52cd75024..f2268bbb9 100644 --- a/build/prepare.js +++ b/build/prepare.js @@ -67,7 +67,7 @@ for (const name of ['plugins', 'modules']) { fs.mkdirSync(path.resolve(process.cwd(), name)); } // Write an empty file to make eslint happy - fs.writeFileSync(path.resolve(process.cwd(), name, 'nop.ts'), 'export default {};\n'); + fs.writeFileSync(path.resolve(process.cwd(), name, 'nop.ts'), 'export default {}; export const whenReady = () => {};\n'); } const modules = [ diff --git a/packages/ui-default/components/monaco/loader.ts b/packages/ui-default/components/monaco/loader.ts index 11c0d2e6c..794ad6d1e 100644 --- a/packages/ui-default/components/monaco/loader.ts +++ b/packages/ui-default/components/monaco/loader.ts @@ -91,6 +91,7 @@ export async function load(features = ['markdown']) { console.log('Loaded monaco editor in', Date.now() - s, 'ms'); loaded = []; } + Object.assign((window as any).HydroExports, { vscode: res.vscode, monaco: res.default }); for (const feat of features) { if (loaded.includes(feat)) continue; if (!loaders[feat]) { @@ -104,7 +105,7 @@ export async function load(features = ['markdown']) { console.log('Loading monaco feature:', feat); try { if (loaders[feat]) await loaders[feat](); - else await loaders.external(res.default, feat); + await loaders.external(res.default, feat); console.log('Loaded monaco feature:', feat, 'in', Date.now() - s, 'ms'); loaded.push(feat); } catch (e) { diff --git a/packages/ui-default/components/monaco/monaco.ts b/packages/ui-default/components/monaco/monaco.ts index d00041dee..50883f0c1 100644 --- a/packages/ui-default/components/monaco/monaco.ts +++ b/packages/ui-default/components/monaco/monaco.ts @@ -8,10 +8,12 @@ import { } from '@codingame/monaco-editor-wrapper'; import { RegisteredMemoryFile } from '@codingame/monaco-vscode-files-service-override'; import * as monaco from 'monaco-editor'; -import { Uri } from 'vscode'; +import * as vscode from 'vscode'; export default monaco; -export { createEditor, registerFile, RegisteredMemoryFile }; +export { + createEditor, registerFile, RegisteredMemoryFile, vscode, +}; export { getUserConfiguration, getConfiguration, onUserConfigurationChange, onConfigurationChanged, @@ -46,7 +48,7 @@ export const init = async (workbench = false) => { workspaceProvider: { trusted: true, workspace: { - workspaceUri: Uri.file('/'), + workspaceUri: vscode.Uri.file('/'), }, async open() { return false; diff --git a/packages/ui-default/components/scratchpad/ScratchpadEditorContainer.tsx b/packages/ui-default/components/scratchpad/ScratchpadEditorContainer.tsx index c01ea44b7..355dac9cf 100644 --- a/packages/ui-default/components/scratchpad/ScratchpadEditorContainer.tsx +++ b/packages/ui-default/components/scratchpad/ScratchpadEditorContainer.tsx @@ -42,7 +42,7 @@ export default connect((state: any) => ({ const value = this.props.value || ''; const { language } = this.props; const { monaco, createEditor } = await load([language]); - const uri = monaco.Uri.parse(`/${UiContext.pdoc.pid || UiContext.pdoc.docId}.${language}`); + const uri = monaco.Uri.parse(`hydro:${UiContext.pdoc.pid || UiContext.pdoc.docId}.${language}`); this.model = monaco.editor.getModel(uri) || monaco.editor.createModel(value, language, uri); if (this.containerElement) { const config: monaco.editor.IStandaloneEditorConstructionOptions = { @@ -95,7 +95,7 @@ export default connect((state: any) => ({ if (model && editor && prevProps.language !== language) { const val = model.getValue(LF, false); model.dispose(); - const uri = monaco.Uri.parse(`file:///${UiContext.pdoc.pid || UiContext.pdoc.docId}.${language}`); + const uri = monaco.Uri.parse(`hydro:${UiContext.pdoc.pid || UiContext.pdoc.docId}.${language}`); this.model = monaco.editor.getModel(uri) || monaco.editor.createModel(val, language, uri); editor.setModel(this.model); } diff --git a/packages/ui-default/package.json b/packages/ui-default/package.json index 2a374d212..a9899cc13 100644 --- a/packages/ui-default/package.json +++ b/packages/ui-default/package.json @@ -16,10 +16,10 @@ "devDependencies": { "@blueprintjs/core": "^5.10.5", "@codingame/monaco-editor-wrapper": "^8.1.0", - "@codingame/monaco-vscode-language-pack-ko": "7.0.5", - "@codingame/monaco-vscode-language-pack-zh-hans": "7.0.5", - "@codingame/monaco-vscode-language-pack-zh-hant": "7.0.5", - "@codingame/monaco-vscode-typescript-language-features-default-extension": "7.0.5", + "@codingame/monaco-vscode-language-pack-ko": "7.0.7", + "@codingame/monaco-vscode-language-pack-zh-hans": "7.0.7", + "@codingame/monaco-vscode-language-pack-zh-hant": "7.0.7", + "@codingame/monaco-vscode-typescript-language-features-default-extension": "7.0.7", "@cordisjs/core": "3.17.3", "@fontsource/dm-mono": "^5.0.20", "@fontsource/fira-code": "^5.0.18", @@ -86,7 +86,7 @@ "mini-css-extract-plugin": "^2.9.0", "moment": "^2.30.1", "monaco-editor": "npm:@codingame/monaco-vscode-editor-api@7.0.5", - "monaco-languageclient": "^8.4.0", + "monaco-languageclient": "^8.6.0", "monaco-themes": "^0.4.4", "monaco-yaml": "5.1.1", "nanoid": "^5.0.7",