Skip to content

Commit 4d9dce1

Browse files
authored
feat: integrate Monaco Editor workers for enhanced code editing support (#7249)
fixes: #5587
1 parent 788d103 commit 4d9dce1

1 file changed

Lines changed: 25 additions & 5 deletions

File tree

dashboard/src/main.ts

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,33 @@ import VueApexCharts from 'vue3-apexcharts';
1010

1111
import print from 'vue3-print-nb';
1212
import { loader } from '@guolao/vue-monaco-editor'
13+
import * as monaco from 'monaco-editor';
14+
import editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker';
15+
import jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker';
16+
import cssWorker from 'monaco-editor/esm/vs/language/css/css.worker?worker';
17+
import htmlWorker from 'monaco-editor/esm/vs/language/html/html.worker?worker';
18+
import tsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker';
1319
import axios from 'axios';
1420
import { waitForRouterReadyInBackground } from './utils/routerReadiness.mjs';
1521

22+
(self as any).MonacoEnvironment = {
23+
getWorker(_: string, label: string) {
24+
if (label === 'json') {
25+
return new jsonWorker();
26+
}
27+
if (label === 'css' || label === 'scss' || label === 'less') {
28+
return new cssWorker();
29+
}
30+
if (label === 'html' || label === 'handlebars' || label === 'razor') {
31+
return new htmlWorker();
32+
}
33+
if (label === 'typescript' || label === 'javascript') {
34+
return new tsWorker();
35+
}
36+
return new editorWorker();
37+
},
38+
};
39+
1640
// 初始化新的i18n系统,等待完成后再挂载应用
1741
setupI18n().then(async () => {
1842
console.log('🌍 新i18n系统初始化完成');
@@ -112,8 +136,4 @@ window.fetch = (input: RequestInfo | URL, init?: RequestInit) => {
112136
return _origFetch(input, { ...init, headers });
113137
};
114138

115-
loader.config({
116-
paths: {
117-
vs: 'https://cdn.jsdelivr.net/npm/monaco-editor@0.54.0/min/vs',
118-
},
119-
})
139+
loader.config({ monaco })

0 commit comments

Comments
 (0)