Skip to content

Commit 12dc8aa

Browse files
feat: Optimize Monaco editor loading (#12401)
1 parent 37e2b93 commit 12dc8aa

File tree

4 files changed

+37
-25
lines changed

4 files changed

+37
-25
lines changed

agent/app/service/agents_channels.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -511,8 +511,6 @@ func setFeishuPluginEnabled(conf map[string]interface{}, enabled bool) {
511511
entries := ensureChildMap(plugins, "entries")
512512
lark := ensureChildMap(entries, "openclaw-lark")
513513
lark["enabled"] = enabled
514-
legacy := ensureChildMap(entries, "feishu")
515-
legacy["enabled"] = false
516514
}
517515

518516
func extractTelegramConfig(conf map[string]interface{}) dto.AgentTelegramConfig {

frontend/src/utils/monaco.ts

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker';
2+
import cssWorker from 'monaco-editor/esm/vs/language/css/css.worker?worker';
3+
import htmlWorker from 'monaco-editor/esm/vs/language/html/html.worker?worker';
4+
import tsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker';
5+
import EditorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker';
6+
7+
let initialized = false;
8+
9+
export function setupMonacoEnvironment() {
10+
if (initialized) {
11+
return;
12+
}
13+
initialized = true;
14+
15+
self.MonacoEnvironment = {
16+
getWorker(_: string, label: string) {
17+
if (label === 'json') {
18+
return new jsonWorker();
19+
}
20+
if (label === 'css' || label === 'scss' || label === 'less') {
21+
return new cssWorker();
22+
}
23+
if (label === 'html' || label === 'handlebars' || label === 'razor') {
24+
return new htmlWorker();
25+
}
26+
if (['typescript', 'javascript'].includes(label)) {
27+
return new tsWorker();
28+
}
29+
return new EditorWorker();
30+
},
31+
};
32+
}

frontend/src/views/app-store/installed/upgrade/diff/index.vue

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,11 @@
2020

2121
<script setup lang="ts">
2222
import { nextTick, ref } from 'vue';
23+
import { setupMonacoEnvironment } from '@/utils/monaco';
2324
import * as monaco from 'monaco-editor';
2425
26+
setupMonacoEnvironment();
27+
2528
const open = ref(false);
2629
const newContent = ref('');
2730
const oldContent = ref('');

frontend/src/views/host/file-management/code-editor/index.vue

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -389,14 +389,10 @@
389389
import { batchCheckFiles, createFile, getFileContent, getFilesTree, saveFileContent } from '@/api/modules/files';
390390
import i18n from '@/lang';
391391
import { MsgError, MsgSuccess, MsgWarning } from '@/utils/message';
392+
import { setupMonacoEnvironment } from '@/utils/monaco';
392393
import * as monaco from 'monaco-editor';
393394
import { computed, nextTick, onBeforeUnmount, onMounted, reactive, ref } from 'vue';
394395
import { Languages } from '@/global/mimetype';
395-
import jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker';
396-
import cssWorker from 'monaco-editor/esm/vs/language/css/css.worker?worker';
397-
import htmlWorker from 'monaco-editor/esm/vs/language/html/html.worker?worker';
398-
import tsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker';
399-
import EditorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker';
400396
401397
import type { TabPaneName } from 'element-plus';
402398
import { ElMessageBox, ElTreeV2 } from 'element-plus';
@@ -412,24 +408,7 @@ import noUpdateImage from '@/assets/images/no_update_app.svg';
412408
413409
let editor: monaco.editor.IStandaloneCodeEditor | undefined;
414410
415-
self.MonacoEnvironment = {
416-
getWorker(workerId, label) {
417-
if (label === 'json') {
418-
return new jsonWorker();
419-
}
420-
if (label === 'css' || label === 'scss' || label === 'less') {
421-
return new cssWorker();
422-
}
423-
if (label === 'html' || label === 'handlebars' || label === 'razor') {
424-
return new htmlWorker();
425-
}
426-
if (['typescript', 'javascript'].includes(label)) {
427-
return new tsWorker();
428-
}
429-
return new EditorWorker();
430-
},
431-
};
432-
411+
setupMonacoEnvironment();
433412
interface EditProps {
434413
language: string;
435414
content: string;

0 commit comments

Comments
 (0)