diff .cms/lib/codemirror/src/display/mode_state.js @ 0:78edf6b517a0 draft

24.10
author Coffee CMS <info@coffee-cms.ru>
date Fri, 11 Oct 2024 22:40:23 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/.cms/lib/codemirror/src/display/mode_state.js	Fri Oct 11 22:40:23 2024 +0000
@@ -0,0 +1,22 @@
+import { getMode } from "../modes.js"
+
+import { startWorker } from "./highlight_worker.js"
+import { regChange } from "./view_tracking.js"
+
+// Used to get the editor into a consistent state again when options change.
+
+export function loadMode(cm) {
+  cm.doc.mode = getMode(cm.options, cm.doc.modeOption)
+  resetModeState(cm)
+}
+
+export function resetModeState(cm) {
+  cm.doc.iter(line => {
+    if (line.stateAfter) line.stateAfter = null
+    if (line.styles) line.styles = null
+  })
+  cm.doc.modeFrontier = cm.doc.highlightFrontier = cm.doc.first
+  startWorker(cm, 100)
+  cm.state.modeGen++
+  if (cm.curOp) regChange(cm)
+}