jia*_*uah 5 javascript code-editor codemirror ace-editor
我在我的网站上嵌入了一个Ace编辑器,我允许用户输入它.目前,内置函数会自动显示每行插入的行号,如下所示:

有没有办法让我手动设置装订线中的内容并稍后读取其中的值?
例如:而不是将其设置为1,2,3 ......我希望它看起来像
A abc
B def
Run Code Online (Sandbox Code Playgroud)
然后当我访问包含"abc"的行时,我想要读取该行"G"的阴沟中的值.
要为Ace Editor自定义装订线,您必须覆盖"更新"功能:
ace.require("ace/layer/my_gutter")
//...
define('ace/layer/my_gutter', ['require', 'exports', 'ace/lib/dom'], function(require, exports, module) {
var dom = require("ace/lib/dom");
require("ace/layer/gutter").Gutter.prototype.update = update =
function(config) {
//...
};
});
Run Code Online (Sandbox Code Playgroud)
对于我需要的这个小改动,这个功能很长很复杂.所以,我没有坚持下去.
我找到了另一个编辑器CodeMirror,它提供了一种更简单的方法来完成此操作并切换到CodeMirror.
您可以为装订线设置自定义渲染器
editor.session.gutterRenderer = {
getWidth: function(session, lastLineNumber, config) {
return lastLineNumber.toString().length * config.characterWidth;
},
getText: function(session, row) {
return String.fromCharCode(row + 65);
}
};
Run Code Online (Sandbox Code Playgroud)