mirror of
https://github.com/whyour/qinglong.git
synced 2026-10-16 22:35:32 +08:00
fix: handle mobile INI editing and silence timeout cleanup
Map INI to the CodeMirror properties language and fall back to plain text for unsupported modes. Reap the timeout watchdog immediately under stderr redirection to prevent Bash job notifications during cleanup. Refs #3095, #3096
This commit is contained in:
@@ -4,6 +4,7 @@ import { SharedContext } from '@/layouts';
|
||||
import { depthFirstSearch, findNode, getEditorMode } from '@/utils';
|
||||
import config from '@/utils/config';
|
||||
import { request } from '@/utils/http';
|
||||
import { getCodeMirrorExtensions } from '@/utils/codemirror/language';
|
||||
import { canPreviewInMonaco } from '@/utils/monaco';
|
||||
import {
|
||||
CloudDownloadOutlined,
|
||||
@@ -15,7 +16,6 @@ import {
|
||||
} from '@ant-design/icons';
|
||||
import { PageContainer } from '@ant-design/pro-layout';
|
||||
import Editor from '@monaco-editor/react';
|
||||
import { langs } from '@uiw/codemirror-extensions-langs';
|
||||
import CodeMirror from '@uiw/react-codemirror';
|
||||
import { history, useOutletContext } from '@umijs/max';
|
||||
import {
|
||||
@@ -747,9 +747,7 @@ const Script = () => {
|
||||
{isPhone && (
|
||||
<CodeMirror
|
||||
value={value}
|
||||
extensions={
|
||||
mode ? [langs[mode as keyof typeof langs]()] : undefined
|
||||
}
|
||||
extensions={getCodeMirrorExtensions(mode)}
|
||||
theme={theme.includes('dark') ? 'dark' : 'light'}
|
||||
readOnly={!isEditing || saving}
|
||||
onChange={(value) => {
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
import { langs } from '@uiw/codemirror-extensions-langs';
|
||||
|
||||
export function getCodeMirrorExtensions(mode: string) {
|
||||
// Monaco calls this language "ini"; CodeMirror exposes it as "properties".
|
||||
const language = mode === 'ini' ? 'properties' : mode;
|
||||
if (!Object.prototype.hasOwnProperty.call(langs, language)) {
|
||||
return [];
|
||||
}
|
||||
const factory = langs[language as keyof typeof langs];
|
||||
return typeof factory === 'function' ? [factory()] : [];
|
||||
}
|
||||
Reference in New Issue
Block a user