annotate .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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
1 import { getMode } from "../modes.js"
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
2
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
3 import { startWorker } from "./highlight_worker.js"
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
4 import { regChange } from "./view_tracking.js"
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
5
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
6 // Used to get the editor into a consistent state again when options change.
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
7
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
8 export function loadMode(cm) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
9 cm.doc.mode = getMode(cm.options, cm.doc.modeOption)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
10 resetModeState(cm)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
11 }
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
12
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
13 export function resetModeState(cm) {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
14 cm.doc.iter(line => {
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
15 if (line.stateAfter) line.stateAfter = null
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
16 if (line.styles) line.styles = null
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
17 })
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
18 cm.doc.modeFrontier = cm.doc.highlightFrontier = cm.doc.first
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
19 startWorker(cm, 100)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
20 cm.state.modeGen++
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
21 if (cm.curOp) regChange(cm)
Coffee CMS <info@coffee-cms.ru>
parents:
diff changeset
22 }