From d121a7148a6deb96a0cf28313d8a2eab271af1df Mon Sep 17 00:00:00 2001 From: undefined Date: Fri, 15 Dec 2023 00:32:17 +0800 Subject: [PATCH] ui: upgrade monaco-editor --- packages/ui-default/components/editor/index.ts | 1 + .../ui-default/components/monaco/languages/markdown.ts | 4 ++-- packages/ui-default/components/monaco/languages/yaml.ts | 5 +++-- packages/ui-default/components/monaco/nls.js | 8 ++++++++ .../components/scratchpad/ScratchpadEditorContainer.tsx | 1 + packages/ui-default/package.json | 4 ++-- 6 files changed, 17 insertions(+), 6 deletions(-) diff --git a/packages/ui-default/components/editor/index.ts b/packages/ui-default/components/editor/index.ts index 8d8d1bd77..8c026d452 100644 --- a/packages/ui-default/components/editor/index.ts +++ b/packages/ui-default/components/editor/index.ts @@ -97,6 +97,7 @@ export default class Editor extends DOMAttachedObject { overviewRulerLanes: 0, overviewRulerBorder: false, fontFamily: UserContext.codeFontFamily, + fontLigatures: '', unicodeHighlight: { ambiguousCharacters: language !== 'markdown', }, diff --git a/packages/ui-default/components/monaco/languages/markdown.ts b/packages/ui-default/components/monaco/languages/markdown.ts index ec3ec72ea..f3a57f61a 100644 --- a/packages/ui-default/components/monaco/languages/markdown.ts +++ b/packages/ui-default/components/monaco/languages/markdown.ts @@ -17,11 +17,11 @@ function emoji(range) { function qqEmoji(range) { return qface.data.flatMap((i) => { const url = qface.getUrl(i.QSid, 'https://qq-face.vercel.app'); - return i.Input.map((input) => ({ + return [i.QDes.substring(1), ...(i.Input || [])].map((input) => ({ label: `/${input}`, kind: monaco.languages.CompletionItemKind.Keyword, documentation: { value: `![${i.QDes}](${url})`, isTrusted: true }, - insertText: `![${i.Input[0]}](${url} =32x32) `, + insertText: `![${i.Input ? i.Input[0] : i.QDes.substring(1)}](${url} =32x32) `, range, })); }); diff --git a/packages/ui-default/components/monaco/languages/yaml.ts b/packages/ui-default/components/monaco/languages/yaml.ts index b73bc9fbd..55ae952ee 100644 --- a/packages/ui-default/components/monaco/languages/yaml.ts +++ b/packages/ui-default/components/monaco/languages/yaml.ts @@ -1,7 +1,8 @@ -import { setDiagnosticsOptions } from 'monaco-yaml'; +import * as monaco from 'monaco-editor/esm/vs/editor/editor.api'; +import { configureMonacoYaml } from 'monaco-yaml'; import problemConfigSchema from '../schema/problemconfig'; -setDiagnosticsOptions({ +configureMonacoYaml(monaco, { validate: true, enableSchemaRequest: true, hover: true, diff --git a/packages/ui-default/components/monaco/nls.js b/packages/ui-default/components/monaco/nls.js index 765778a0f..f9f3aab8a 100644 --- a/packages/ui-default/components/monaco/nls.js +++ b/packages/ui-default/components/monaco/nls.js @@ -18,6 +18,14 @@ export function localize(path, message, ...args) { return format(CURRENT_LOCALE_DATA[path.key || path] || message, args); } +export function localize2(data, message, ...args) { + const original = localize(message, args); + return { + value: original, + original, + }; +} + export function setLocaleData(data) { CURRENT_LOCALE_DATA = Object.assign(...Object.values(data)); } diff --git a/packages/ui-default/components/scratchpad/ScratchpadEditorContainer.tsx b/packages/ui-default/components/scratchpad/ScratchpadEditorContainer.tsx index 52c8e3a05..cb25dfbb5 100644 --- a/packages/ui-default/components/scratchpad/ScratchpadEditorContainer.tsx +++ b/packages/ui-default/components/scratchpad/ScratchpadEditorContainer.tsx @@ -53,6 +53,7 @@ export default connect((state: any) => ({ glyphMargin: true, lightbulb: { enabled: true }, model: this.model, + fontLigatures: '', }; this.editor = monaco.editor.create(this.containerElement, config); registerAction(this.editor, this.model); diff --git a/packages/ui-default/package.json b/packages/ui-default/package.json index f915fd060..f5de8170a 100644 --- a/packages/ui-default/package.json +++ b/packages/ui-default/package.json @@ -73,11 +73,11 @@ "matchmedia-polyfill": "^0.3.2", "mini-css-extract-plugin": "^2.7.6", "moment": "^2.29.4", - "monaco-editor": "0.38.0", + "monaco-editor": "0.45.0", "monaco-editor-nls": "^3.1.0", "monaco-editor-webpack-plugin": "^7.1.0", "monaco-themes": "^0.4.4", - "monaco-yaml": "^4.0.4", + "monaco-yaml": "^5.1.0", "nanoid": "^5.0.4", "normalize.css": "^8.0.1", "nprogress": "^0.2.0",