Saya menggunakan Ace untuk pengalaman pengeditan kolaboratif dan saya ingin dapat menggulir ke posisi kursor pengguna lain.
Saya melihat bahwa ada editor.scrollToRow()
, dan editor.scrollToLine()
metode, tetapi sepertinya saya tidak dapat menemukan metode apa pun yang berfungsi dengan objek cursor
yang memiliki position
dan properti selectionEnd
.
Yang saya inginkan adalah dapat menggulir ke suatu posisi, bukan hanya garis. Atau jika ada cara untuk mengubah posisi menjadi garis, itu juga akan sangat membantu.
Terima kasih!
Posisi adalah objek seperti {row, column} sehingga mendapatkan garis darinya mudah dengan menggunakan position.row.
Anda juga bisa menggunakan
editor.renderer.scrollCursorIntoView({row: 50, column: 1}, 0.5)
(0,5 memusatkan garis di layar menggunakan 1 untuk 0 terbawah untuk atas)
Saya kira saya menggunakan versi yang lebih lama di mana posisinya hanya posisi karakter, tetapi itu akan menyenangkan ketika saya dapat meningkatkan.
Pasti sesuatu yang lain, kode itu tidak banyak berubah sejak awal.
Jika Anda memiliki indeks karakter dalam string nilai editor.session.doc.indexToPosition(index)
dapat membantu Anda mendapatkan {row, column}
tetapi itu adalah fungsi yang relatif lambat.
Terima kasih atas tanggapannya! Anda benar tentang API kursor Ace. Saya sekarang berpikir itu ada hubungannya dengan plugin Firepad saya melakukan sesuatu yang aneh dengannya, jadi tidak ada yang salah di sisi Ace.
Komentar yang paling membantu
Posisi adalah objek seperti {row, column} sehingga mendapatkan garis darinya mudah dengan menggunakan position.row.
Anda juga bisa menggunakan
editor.renderer.scrollCursorIntoView({row: 50, column: 1}, 0.5)
(0,5 memusatkan garis di layar menggunakan 1 untuk 0 terbawah untuk atas)