editor: File extension-based language detection.
All checks were successful
Build Tilde Friends / Build-All (push) Successful in 9m42s

This commit is contained in:
2025-12-02 19:26:13 -05:00
parent 19b346cc6d
commit 1381696f9b
5 changed files with 114 additions and 8 deletions

View File

@@ -1601,6 +1601,25 @@ function connectSocket(path) {
}
}
/**
* Determine a CodeMirror language mode from filename.
* @param name Filename.
* @return The mode name.
*/
function modeFromName(name) {
switch (name.split('.').pop()) {
case 'md':
return 'markdown';
case 'css':
return 'css';
case 'js':
return 'javascript';
case 'xml':
case 'svg':
return 'xml';
}
}
/**
* Open a file by name.
* @param name The file to open.
@@ -1612,6 +1631,7 @@ function openFile(name) {
: cm6.EditorState.create({doc: '', extensions: cm6.extensions});
let oldDoc = g_editor.state;
g_editor.setState(newDoc);
cm6.setEditorMode(g_editor, modeFromName(name));
if (g_files[g_current_file]) {
g_files[g_current_file].doc = oldDoc;