src/LiveDevelopment/MultiBrowserImpl/language/HTMLInstrumentation.js
function _markTags(cm, node) {
        node.children.forEach(function (childNode) {
            if (childNode.isElement()) {
                _markTags(cm, childNode);
            }
        });
        var mark = cm.markText(node.startPos, node.endPos);
        mark.tagID = node.tagID;
    }
function _markTags(cm, node) {
        node.children.forEach(function (childNode) {
            if (childNode.isElement()) {
                _markTags(cm, childNode);
            }
        });
        var mark = cm.markText(node.startPos, node.endPos);
        mark.tagID = node.tagID;
    }
function _markTags ( cm , node ) { node . children . forEach ( function ( childNode ) { if ( childNode . isElement ( ) ) { _markTags ( cm , childNode ) ; } } ) ; var mark = cm . markText ( node . startPos , node . endPos ) ; mark . tagID = node . tagID ; }
Recursively walks the SimpleDOM starting at node and marking
all tags in the CodeMirror instance. The more useful interface
is the _markTextFromDOM function which clears existing marks
before calling this function to create new ones.

@param {CodeMirror} cm CodeMirror instance in which to mark tags
@param {Object} node SimpleDOM node to use as the root for marking
Recursively walks the SimpleDOM starting at node and marking all tags in the CodeMirror instance . The more useful interface is the _markTextFromDOM function which clears existing marks before calling this function to create new ones .