MCPcopy
hub / github.com/tilemill-project/tilemill / triggerElectric

Function triggerElectric

assets/js/codemirror.js:1158–1180  ·  view source on GitHub ↗
(cm, inserted)

Source from the content-addressed store, hash-verified

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

Callers 2

applyTextInputFunction · 0.85
codemirror.jsFile · 0.85

Calls 3

indentLineFunction · 0.85
getLineFunction · 0.85
signalLaterFunction · 0.85

Tested by

no test coverage detected