CodeMirror: Code Folding Demo in CSS Editor 7
Demonstration of code folding using the code
in foldcode.js
.
Press ctrl-q or click on the gutter to fold a block, again
to unfold.
File
lib/codemirror-3.11/demo/folding.htmlView source
<!doctype html> <html> <head> <meta charset="utf-8"> <title>CodeMirror: Code Folding Demo</title> <link rel="stylesheet" href="../lib/codemirror.css"> <script src="../lib/codemirror.js"></script> <script src="../addon/fold/foldcode.js"></script> <script src="../addon/fold/brace-fold.js"></script> <script src="../addon/fold/xml-fold.js"></script> <script src="../mode/javascript/javascript.js"></script> <script src="../mode/xml/xml.js"></script> <link rel="stylesheet" href="../doc/docs.css"> <style type="text/css"> .CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;} .CodeMirror-foldmarker { color: blue; text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px; font-family: arial; line-height: .3; cursor: pointer; } </style> </head> <body> <h1>CodeMirror: Code Folding Demo</h1> <p>Demonstration of code folding using the code in <a href="../addon/fold/foldcode.js"><code>foldcode.js</code></a>. Press ctrl-q or click on the gutter to fold a block, again to unfold.</p> <form> <div style="max-width: 50em; margin-bottom: 1em">JavaScript:<br><textarea id="code" name="code"></textarea></div> <div style="max-width: 50em">HTML:<br><textarea id="code-html" name="code-html"></textarea></div> </form> <script id="script"> window.onload = function() { var te = document.getElementById("code"); var sc = document.getElementById("script"); te.value = (sc.textContent || sc.innerText || sc.innerHTML).replace(/^\s*/, ""); sc.innerHTML = ""; var te_html = document.getElementById("code-html"); te_html.value = "<html>\n " + document.documentElement.innerHTML + "\n</html>"; var foldFunc = CodeMirror.newFoldFunction(CodeMirror.braceRangeFinder); window.editor = CodeMirror.fromTextArea(te, { mode: "javascript", lineNumbers: true, lineWrapping: true, extraKeys: {"Ctrl-Q": function(cm){foldFunc(cm, cm.getCursor().line);}} }); editor.on("gutterClick", foldFunc); foldFunc(editor, 9); var foldFunc_html = CodeMirror.newFoldFunction(CodeMirror.tagRangeFinder); window.editor_html = CodeMirror.fromTextArea(te_html, { mode: "text/html", lineNumbers: true, lineWrapping: true, extraKeys: {"Ctrl-Q": function(cm){foldFunc_html(cm, cm.getCursor().line);}} }); editor_html.on("gutterClick", foldFunc_html); foldFunc_html(editor_html, 11); foldFunc_html(editor_html, 1); }; </script> </body> </html>