CodeMirror,如何折叠所有代码

时间:2017-03-09 13:07:45

标签: codemirror fold

使用代码镜像,我们可以折叠代码。 我想用括号折叠所有代码。我找到了这个方法

我如何折叠整个代码,这是我的HTML脚本:

window.onload = function() {
  var te = document.getElementById("code");
  var sc = document.getElementById("script");

  var te_clike = document.getElementById("code-clike");

  window.editor_clike = CodeMirror.fromTextArea(te_clike, {
    mode: "text/x-csharp",
    lineNumbers: true,
    extraKeys: {"Ctrl-Q": function(cm){ cm.foldCode(cm.getCursor()); }},
    foldGutter: true,
    readOnly: true,
    gutters: ["CodeMirror-linenumbers", "CodeMirror-foldgutter"]
  });

};

感谢您的帮助......

2 个答案:

答案 0 :(得分:6)

CodeMirror有一个foldCode插件,可以启用foldCode()方法。可以在此处找到参考:https://codemirror.net/doc/manual.html#addon_foldcode

然后,您可以遍历所有行并调用该函数来折叠该特定行的代码,如此处的解决方案:https://groups.google.com/forum/#!msg/CodeMirror/u3IYL-5g0t4/lmK8XuTxbdQJ

cm.operation(function() { 
   for (var l = cm.firstLine(); l <= cm.lastLine(); ++l) 
     cm.foldCode({line: l, ch: 0}, null, "fold"); 
}); 

其中cm是CodeMirror实例。

答案 1 :(得分:4)

还有一个专门为您设计的功能,例如:

editor.setOption("extraKeys", {
  "Ctrl-Y": cm => CodeMirror.commands.foldAll(cm),
  "Ctrl-I": cm => CodeMirror.commands.unfoldAll(cm),
})