3
A
回答
11
可以使用addDynamicMarker
显示多个游标
var marker = {}
marker.cursors = [{row: 0, column: 10}]
marker.update = function(html, markerLayer, session, config) {
var start = config.firstRow, end = config.lastRow;
var cursors = this.cursors
for (var i = 0; i < cursors.length; i++) {
var pos = this.cursors[i];
if (pos.row < start) {
continue
} else if (pos.row > end) {
break
} else {
// compute cursor position on screen
// this code is based on ace/layer/marker.js
var screenPos = session.documentToScreenPosition(pos)
var height = config.lineHeight;
var width = config.characterWidth;
var top = markerLayer.$getTop(screenPos.row, config);
var left = markerLayer.$padding + screenPos.column * width;
// can add any html here
html.push(
"<div class='MyCursorClass' style='",
"height:", height, "px;",
"top:", top, "px;",
"left:", left, "px; width:", width, "px'></div>"
);
}
}
}
marker.redraw = function() {
this.session._signal("changeFrontMarker");
}
marker.addCursor = function() {
// add to this cursors
....
// trigger redraw
marker.redraw()
}
marker.session = editor.session;
marker.session.addDynamicMarker(marker, true)
// call marker.session.removeMarker(marker.id) to remove it
// call marker.redraw after changing one of cursors
,并添加一些CSS这样
.MyCursorClass {
position: absolute;
border-left: 2px solid gold;
}
例如使用的addDynamicMarker看到https://github.com/ajaxorg/ace/blob/master/lib/ace/search_highlight.js
主要这里的代码是更新方法,每次ACE都会被调用。它获取名为html
的字符串数组,并可以添加任何html。标记层渲染做.innerHTML = html.join("")
生成的HTML看到https://github.com/ajaxorg/ace/blob/master/lib/ace/layer/marker.js更多的细节要添加一个选择光标,或假的光标显示其他用户的位置
相关问题
- 1. 防止ace编辑器居中滚动光标?
- 2. ace编辑器光标行为不正确
- 3. ACE编辑器的HTML标签?
- 4. Ace编辑器标记更新
- 5. ACE编辑器:动态创建一个新的编辑器
- 6. ace-like编辑器setLine()?
- 7. applyDeltas在ACE编辑器
- 8. 重构Ace编辑器
- 9. ACE编辑器,使用socket.io添加和更新文档中的多个游标
- 10. SVG异物中的Ace编辑器
- 11. Ace编辑器中的递归块
- 12. 寻找Ace编辑器中的变化
- 13. ACE编辑器中的文本替换
- 14. 使用多个ui-ace代码编辑器的滚动问题
- 15. 对不同完成者使用多个ace编辑器实例
- 16. Ace文本编辑器的TypeScript声明
- 17. 修改Ace编辑器的线槽div
- 18. Ace编辑器可以在一个页面中支持多个代码编辑器吗?
- 19. 使用QScintilla进行多光标编辑
- 20. 如何在javascript ace编辑器中标记行号?
- 21. 在Ace编辑器中隐藏选项卡标记
- 22. 在vi编辑器中从光标位置删除多行
- 23. CONTENTEDITABLE文本编辑器,光标位置
- 24. html编辑器光标焦点问题
- 25. 角ACE编辑器删除usused
- 26. Ace代码编辑器消失onclick
- 27. Ace编辑器自动完成
- 28. Turbolinks外部javascript(这里:ACE编辑器)
- 29. 如何更改ace编辑器主题
- 30. 动态ACE编辑器模式
做什么? –
第二个 - 我想显示另一个用户 – Doron