我正在使用 Ace 进行协作编辑体验,并且我希望能够滚动到另一个用户的光标位置。
我看到有editor.scrollToRow()
和editor.scrollToLine()
方法,但我似乎无法找到任何方法与工程cursor
有对象position
和selectionEnd
属性。
我想要的是能够滚动到一个位置,而不仅仅是一行。 或者,如果有一种方法可以将位置转换为一条线也很有帮助。
谢谢!
位置是一个像 {row, column} 这样的对象,所以使用 position.row 可以很容易地从中获取一条线。
你也可以使用
editor.renderer.scrollCursorIntoView({row: 50, column: 1}, 0.5)
(0.5 使屏幕上的线居中使用 1 表示底部 0 表示顶部)
我想我使用的是旧版本,其中位置只是角色位置,但是当我可以升级时会很好。
一定是别的东西,那个代码从一开始就没有太大变化。
如果您在值字符串中有字符索引editor.session.doc.indexToPosition(index)
可以帮助您获得{row, column}
但这是一个相对较慢的函数。
感谢您的回复! 你是对的 Ace 游标 API。 我现在认为这与我的 Firepad 插件做了一些奇怪的事情有关,所以 Ace 方面没有任何问题。
最有用的评论
位置是一个像 {row, column} 这样的对象,所以使用 position.row 可以很容易地从中获取一条线。
你也可以使用
editor.renderer.scrollCursorIntoView({row: 50, column: 1}, 0.5)
(0.5 使屏幕上的线居中使用 1 表示底部 0 表示顶部)