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