brace-fold.js
11 years ago
brace-fold.min.js
11 years ago
comment-fold.js
11 years ago
comment-fold.min.js
11 years ago
foldcode.js
11 years ago
foldcode.min.js
11 years ago
foldgutter.css
11 years ago
foldgutter.js
11 years ago
foldgutter.min.js
11 years ago
indent-fold.js
11 years ago
indent-fold.min.js
11 years ago
markdown-fold.js
11 years ago
markdown-fold.min.js
11 years ago
xml-fold.js
11 years ago
xml-fold.min.js
11 years ago
markdown-fold.min.js
8 lines
| 1 | |
| 2 | (function(mod){if(typeof exports=="object"&&typeof module=="object") |
| 3 | mod(require("../../lib/codemirror"));else if(typeof define=="function"&&define.amd) |
| 4 | define(["../../lib/codemirror"],mod);else |
| 5 | mod(CodeMirror);})(function(CodeMirror){"use strict";CodeMirror.registerHelper("fold","markdown",function(cm,start){var maxDepth=100;function isHeader(lineNo){var tokentype=cm.getTokenTypeAt(CodeMirror.Pos(lineNo,0));return tokentype&&/\bheader\b/.test(tokentype);} |
| 6 | function headerLevel(lineNo,line,nextLine){var match=line&&line.match(/^#+/);if(match&&isHeader(lineNo))return match[0].length;match=nextLine&&nextLine.match(/^[=\-]+\s*$/);if(match&&isHeader(lineNo+1))return nextLine[0]=="="?1:2;return maxDepth;} |
| 7 | var firstLine=cm.getLine(start.line),nextLine=cm.getLine(start.line+1);var level=headerLevel(start.line,firstLine,nextLine);if(level===maxDepth)return undefined;var lastLineNo=cm.lastLine();var end=start.line,nextNextLine=cm.getLine(end+2);while(end<lastLineNo){if(headerLevel(end+1,nextLine,nextNextLine)<=level)break;++end;nextLine=nextNextLine;nextNextLine=cm.getLine(end+2);} |
| 8 | return{from:CodeMirror.Pos(start.line,firstLine.length),to:CodeMirror.Pos(end,cm.getLine(end).length)};});}); |