我正在尝试为折叠装订器显示的某些XML内容创建CodeMirror编辑器。我正在加载一堆codemirror库代码(版本3.18):
<script src="js/lib/codemirror.js"></script>
<script src="js/lib/foldcode.js"></script>
<script src="js/lib/xml-fold.js"></script>
<script src="js/lib/foldgutter.js"></script>
<script src="js/lib/xml.js"></script>
<script src="js/lib/sparql.js"></script>
然后我创建了编辑器对象:
var showCodeMirrorResult = function( code, count, mode ) {
var editor = CodeMirror( $("#results").get(0), {
value: code,
mode: mode,
lineNumbers: true,
extraKeys: {"Ctrl-Q": function(cm){ cm.foldCode(cm.getCursor()); }},
foldGutter: true,
gutters: ["CodeMirror-linenumbers", "CodeMirror-foldgutter"]
} );
};
其中code
是编码XML文档的字符串,mode
是application/xml
。这一切都有效 - 我得到了一个突出显示语法的CodeMirror编辑器,我可以使用ctl-Q折叠和展开XML节点,一切都很好。但是,我无法获得展示的装订线,向用户表明折叠是他们可以在此编辑器中执行的操作。我期待something like this - 注意LH排水沟中的三角形表示折叠点。无论我尝试什么,我都无法让它们出现。
答案 0 :(得分:8)
你添加了CSS吗?
.CodeMirror-foldmarker {
font-family: arial;
}
.CodeMirror-foldgutter {
width: .7em;
}
.CodeMirror-foldgutter-open,
.CodeMirror-foldgutter-folded {
color: #555;
cursor: pointer;
}
.CodeMirror-foldgutter-open:after {
content: "\25BE";
}
.CodeMirror-foldgutter-folded:after {
content: "\25B8";
}