MCPcopy Index your code
hub / github.com/TruthHun/BookStack / triggerElectric

Function triggerElectric

static/mergely/lib/codemirror.js:1157–1179  ·  view source on GitHub ↗
(cm, inserted)

Source from the content-addressed store, hash-verified

1155 }
1156
1157 function triggerElectric(cm, inserted) {
1158 // When an 'electric' character is inserted, immediately trigger a reindent
1159 if (!cm.options.electricChars || !cm.options.smartIndent) return;
1160 var sel = cm.doc.sel;
1161
1162 for (var i = sel.ranges.length - 1; i >= 0; i--) {
1163 var range = sel.ranges[i];
1164 if (range.head.ch > 100 || (i && sel.ranges[i - 1].head.line == range.head.line)) continue;
1165 var mode = cm.getModeAt(range.head);
1166 var indented = false;
1167 if (mode.electricChars) {
1168 for (var j = 0; j < mode.electricChars.length; j++)
1169 if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) {
1170 indented = indentLine(cm, range.head.line, "smart");
1171 break;
1172 }
1173 } else if (mode.electricInput) {
1174 if (mode.electricInput.test(getLine(cm.doc, range.head.line).text.slice(0, range.head.ch)))
1175 indented = indentLine(cm, range.head.line, "smart");
1176 }
1177 if (indented) signalLater(cm, "electricInput", cm, range.head.line);
1178 }
1179 }
1180
1181 function copyableRanges(cm) {
1182 var text = [], ranges = [];

Callers 2

applyTextInputFunction · 0.85
codemirror.jsFile · 0.85

Calls 3

indentLineFunction · 0.70
getLineFunction · 0.70
signalLaterFunction · 0.70

Tested by

no test coverage detected