Sha256: bd713fab359763be7475599bd44f05cd0abd28eec59dac576759364b2d174e03

Contents?: true

Size: 1.42 KB

Versions: 9

Compression:

Stored size: 1.42 KB

Contents

CodeMirror.registerHelper("fold", "comment", function(cm, start) {
  var mode = cm.getModeAt(start), startToken = mode.blockCommentStart, endToken = mode.blockCommentEnd;
  if (!startToken || !endToken) return;
  var line = start.line, lineText = cm.getLine(line);

  var startCh;
  for (var at = start.ch, pass = 0;;) {
    var found = at <= 0 ? -1 : lineText.lastIndexOf(startToken, at - 1);
    if (found == -1) {
      if (pass == 1) return;
      pass = 1;
      at = lineText.length;
      continue;
    }
    if (pass == 1 && found < start.ch) return;
    if (/comment/.test(cm.getTokenTypeAt(CodeMirror.Pos(line, found + 1)))) {
      startCh = found + startToken.length;
      break;
    }
    at = found - 1;
  }

  var depth = 1, lastLine = cm.lastLine(), end, endCh;
  outer: for (var i = line; i <= lastLine; ++i) {
    var text = cm.getLine(i), pos = i == line ? startCh : 0;
    for (;;) {
      var nextOpen = text.indexOf(startToken, pos), nextClose = text.indexOf(endToken, pos);
      if (nextOpen < 0) nextOpen = text.length;
      if (nextClose < 0) nextClose = text.length;
      pos = Math.min(nextOpen, nextClose);
      if (pos == text.length) break;
      if (pos == nextOpen) ++depth;
      else if (!--depth) { end = i; endCh = pos; break outer; }
      ++pos;
    }
  }
  if (end == null || line == end && endCh == startCh) return;
  return {from: CodeMirror.Pos(line, startCh),
          to: CodeMirror.Pos(end, endCh)};
});

Version data entries

9 entries across 9 versions & 3 rubygems

Version Path
gump-0.1.6 server/assets/js/jquery.codemirror/addon/fold/comment-fold.js
codemirror-rails-3.20 vendor/assets/javascripts/codemirror/addons/fold/comment-fold.js
codemirror-rails-3.19 vendor/assets/javascripts/codemirror/addons/fold/comment-fold.js
codemirror-rails-3.18 vendor/assets/javascripts/codemirror/addons/fold/comment-fold.js
codemirror-rails-3.17 vendor/assets/javascripts/codemirror/addons/fold/comment-fold.js
poly-cms-0.1.2 core/admin/assets/js/vendor/codemirror/addon/fold/comment-fold.js
poly-cms-0.1.1 core/admin/assets/js/vendor/codemirror/addon/fold/comment-fold.js
poly-cms-0.1.0 core/admin/assets/js/vendor/codemirror/addon/fold/comment-fold.js
codemirror-rails-3.16 vendor/assets/javascripts/codemirror/addons/fold/comment-fold.js