MCPcopy Create free account
hub / github.com/OpenEndedGroup/Field2 / triggerElectric

Function triggerElectric

lib/web/CodeMirror/src/input/input.js:81–103  ·  view source on GitHub ↗
(cm, inserted)

Source from the content-addressed store, hash-verified

79}
80
81export function triggerElectric(cm, inserted) {
82 // When an 'electric' character is inserted, immediately trigger a reindent
83 if (!cm.options.electricChars || !cm.options.smartIndent) return
84 let sel = cm.doc.sel
85
86 for (let i = sel.ranges.length - 1; i >= 0; i--) {
87 let range = sel.ranges[i]
88 if (range.head.ch > 100 || (i && sel.ranges[i - 1].head.line == range.head.line)) continue
89 let mode = cm.getModeAt(range.head)
90 let indented = false
91 if (mode.electricChars) {
92 for (let j = 0; j < mode.electricChars.length; j++)
93 if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) {
94 indented = indentLine(cm, range.head.line, "smart")
95 break
96 }
97 } else if (mode.electricInput) {
98 if (mode.electricInput.test(getLine(cm.doc, range.head.line).text.slice(0, range.head.ch)))
99 indented = indentLine(cm, range.head.line, "smart")
100 }
101 if (indented) signalLater(cm, "electricInput", cm, range.head.line)
102 }
103}
104
105export function copyableRanges(cm) {
106 let text = [], ranges = []

Callers 2

methods.jsFile · 0.90
applyTextInputFunction · 0.70

Calls 5

indentLineFunction · 0.90
getLineFunction · 0.90
signalLaterFunction · 0.90
indexOfMethod · 0.80
testMethod · 0.45

Tested by

no test coverage detected