Skip to content

Commit 0307916

Browse files
authored
Update acode.js
1 parent 3d80ce5 commit 0307916

File tree

1 file changed

+30
-1
lines changed

1 file changed

+30
-1
lines changed

src/lib/acode.js

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import fsOperation from "fileSystem";
22
import sidebarApps from "sidebarApps";
33
import { HighlightStyle, syntaxHighlighting } from "@codemirror/language";
4+
import { Compartment, EditorState, Prec, StateEffect } from "@codemirror/state";
45
import { EditorView } from "@codemirror/view";
56
import ajax from "@deadlyjack/ajax";
67
import { tags } from "@lezer/highlight";
@@ -14,7 +15,13 @@ import {
1415
import lspClientManager from "cm/lsp/clientManager";
1516
import { registerLspFormatter } from "cm/lsp/formatter";
1617
import serverRegistry from "cm/lsp/serverRegistry";
17-
import { addMode, getModeForPath, removeMode } from "cm/modelist";
18+
import {
19+
addMode,
20+
getModeForPath,
21+
getModes,
22+
getModesByName,
23+
removeMode,
24+
} from "cm/modelist";
1825
import cmThemeRegistry from "cm/themes";
1926
import Contextmenu from "components/contextmenu";
2027
import inputhints from "components/inputhints";
@@ -234,9 +241,24 @@ export default class Acode {
234241
},
235242
};
236243

244+
const getModeByName = (name) => {
245+
const normalized = String(name || "")
246+
.trim()
247+
.toLowerCase();
248+
if (!normalized) return null;
249+
return getModesByName()[normalized] || null;
250+
};
251+
252+
const listModes = () => [...getModes()];
253+
const listModesByName = () => ({ ...getModesByName() });
254+
237255
const aceModes = {
238256
addMode,
239257
removeMode,
258+
getModeForPath: (path) => getModeForPath(String(path || "")),
259+
getModes: () => listModes(),
260+
getModesByName: () => listModesByName(),
261+
getMode: (name) => getModeByName(name),
240262
};
241263

242264
// Preferred CodeMirror language registration API for plugins
@@ -246,6 +268,13 @@ export default class Acode {
246268
register: (name, extensions, caption, loader) =>
247269
addMode(name, extensions, caption, loader),
248270
unregister: (name) => removeMode(name),
271+
add: (name, extensions, caption, loader) =>
272+
addMode(name, extensions, caption, loader),
273+
remove: (name) => removeMode(name),
274+
list: () => listModes(),
275+
listByName: () => listModesByName(),
276+
get: (name) => getModeByName(name),
277+
getForPath: (path) => getModeForPath(String(path || "")),
249278
};
250279

251280
const intent = {

0 commit comments

Comments
 (0)