MCPcopy Create free account
hub / github.com/breck7/scroll / triggerElectric

Function triggerElectric

external/.scrollLibs.js:11213–11243  ·  view source on GitHub ↗
(cm, inserted)

Source from the content-addressed store, hash-verified

11211 }
11212
11213 function triggerElectric(cm, inserted) {
11214 // When an 'electric' character is inserted, immediately trigger a reindent
11215 if (!cm.options.electricChars || !cm.options.smartIndent) {
11216 return
11217 }
11218 var sel = cm.doc.sel
11219
11220 for (var i = sel.ranges.length - 1; i >= 0; i--) {
11221 var range$$1 = sel.ranges[i]
11222 if (range$$1.head.ch > 100 || (i && sel.ranges[i - 1].head.line == range$$1.head.line)) {
11223 continue
11224 }
11225 var mode = cm.getModeAt(range$$1.head)
11226 var indented = false
11227 if (mode.electricChars) {
11228 for (var j = 0; j < mode.electricChars.length; j++) {
11229 if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) {
11230 indented = indentLine(cm, range$$1.head.line, "smart")
11231 break
11232 }
11233 }
11234 } else if (mode.electricInput) {
11235 if (mode.electricInput.test(getLine(cm.doc, range$$1.head.line).text.slice(0, range$$1.head.ch))) {
11236 indented = indentLine(cm, range$$1.head.line, "smart")
11237 }
11238 }
11239 if (indented) {
11240 signalLater(cm, "electricInput", cm, range$$1.head.line)
11241 }
11242 }
11243 }
11244
11245 function copyableRanges(cm) {
11246 var text = [],

Callers 2

applyTextInputFunction · 0.85
addEditorMethodsFunction · 0.85

Calls 5

indentLineFunction · 0.85
getLineFunction · 0.85
signalLaterFunction · 0.85
indexOfMethod · 0.80
sliceMethod · 0.80

Tested by

no test coverage detected