MCPcopy
hub / github.com/hokein/electron-sample-apps / scan

Function scan

mini-code-editor/cm/lib/codemirror.js:1740–1755  ·  view source on GitHub ↗
(line, from, to)

Source from the content-addressed store, hash-verified

1738
1739 var stack = [line.text.charAt(pos)], re = /[(){}[\]]/;
1740 function scan(line, from, to) {
1741 if (!line.text) return;
1742 var st = line.styles, pos = forward ? 0 : line.text.length - 1, cur;
1743 for (var i = forward ? 0 : st.length - 2, e = forward ? st.length : -2; i != e; i += 2*d) {
1744 var text = st[i];
1745 if (st[i+1] != null && st[i+1] != style) {pos += d * text.length; continue;}
1746 for (var j = forward ? 0 : text.length - 1, te = forward ? text.length : -1; j != te; j += d, pos+=d) {
1747 if (pos >= from && pos < to && re.test(cur = text.charAt(j))) {
1748 var match = matching[cur];
1749 if (match.charAt(1) == ">" == forward) stack.push(cur);
1750 else if (stack.pop() != match.charAt(0)) return {pos: pos, match: false};
1751 else if (!stack.length) return {pos: pos, match: true};
1752 }
1753 }
1754 }
1755 }
1756 for (var i = head.line, e = forward ? Math.min(i + 100, doc.size) : Math.max(-1, i - 100); i != e; i+=d) {
1757 var line = getLine(i), first = i == head.line;
1758 var found = scan(line, first && forward ? pos + 1 : 0, first && !forward ? pos : line.text.length);

Callers 1

matchBracketsFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected