| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | 
							- // CodeMirror, copyright (c) by Marijn Haverbeke and others
 
- // Distributed under an MIT license: https://codemirror.net/LICENSE
 
- (function(mod) {
 
-   if (typeof exports == "object" && typeof module == "object") // CommonJS
 
-     mod(require("../../lib/codemirror"));
 
-   else if (typeof define == "function" && define.amd) // AMD
 
-     define(["../../lib/codemirror"], mod);
 
-   else // Plain browser env
 
-     mod(CodeMirror);
 
- })(function(CodeMirror) {
 
- "use strict";
 
- function lineIndent(cm, lineNo) {
 
-   var text = cm.getLine(lineNo)
 
-   var spaceTo = text.search(/\S/)
 
-   if (spaceTo == -1 || /\bcomment\b/.test(cm.getTokenTypeAt(CodeMirror.Pos(lineNo, spaceTo + 1))))
 
-     return -1
 
-   return CodeMirror.countColumn(text, null, cm.getOption("tabSize"))
 
- }
 
- CodeMirror.registerHelper("fold", "indent", function(cm, start) {
 
-   var myIndent = lineIndent(cm, start.line)
 
-   if (myIndent < 0) return
 
-   var lastLineInFold = null
 
-   // Go through lines until we find a line that definitely doesn't belong in
 
-   // the block we're folding, or to the end.
 
-   for (var i = start.line + 1, end = cm.lastLine(); i <= end; ++i) {
 
-     var indent = lineIndent(cm, i)
 
-     if (indent == -1) {
 
-     } else if (indent > myIndent) {
 
-       // Lines with a greater indent are considered part of the block.
 
-       lastLineInFold = i;
 
-     } else {
 
-       // If this line has non-space, non-comment content, and is
 
-       // indented less or equal to the start line, it is the start of
 
-       // another block.
 
-       break;
 
-     }
 
-   }
 
-   if (lastLineInFold) return {
 
-     from: CodeMirror.Pos(start.line, cm.getLine(start.line).length),
 
-     to: CodeMirror.Pos(lastLineInFold, cm.getLine(lastLineInFold).length)
 
-   };
 
- });
 
- });
 
 
  |