11import fsOperation from "fileSystem" ;
22import sidebarApps from "sidebarApps" ;
33import { HighlightStyle , syntaxHighlighting } from "@codemirror/language" ;
4+ import { Compartment , EditorState , Prec , StateEffect } from "@codemirror/state" ;
45import { EditorView } from "@codemirror/view" ;
56import ajax from "@deadlyjack/ajax" ;
67import { tags } from "@lezer/highlight" ;
@@ -14,7 +15,13 @@ import {
1415import lspClientManager from "cm/lsp/clientManager" ;
1516import { registerLspFormatter } from "cm/lsp/formatter" ;
1617import 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" ;
1825import cmThemeRegistry from "cm/themes" ;
1926import Contextmenu from "components/contextmenu" ;
2027import 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