Ich verwende Ace für eine gemeinsame Bearbeitungserfahrung und möchte in der Lage sein, zur Cursorposition eines anderen Benutzers zu scrollen.
Ich sehe, dass es die Methoden editor.scrollToRow()
und editor.scrollToLine()
gibt, aber ich kann keine Methode finden, die mit einem cursor
Objekt funktioniert, das position
und selectionEnd
Eigenschaften.
Ich möchte zu einer Position scrollen können, nicht nur zu einer Zeile. Oder wenn es eine Möglichkeit gibt, eine Position in eine Linie umzuwandeln, wäre dies ebenfalls hilfreich.
Danke!
Position ist ein Objekt wie {row, column}, daher ist es einfach, eine Zeile daraus zu erhalten, indem Sie position.row verwenden.
Sie können auch verwenden
editor.renderer.scrollCursorIntoView({row: 50, column: 1}, 0.5)
(0,5 zentriert die Linie auf dem Bildschirm, 1 für unten 0 für oben verwenden)
Ich schätze, ich habe eine ältere Version, bei der die Position nur die Charakterposition ist, aber das wird schön, wenn ich ein Upgrade durchführen kann.
Muss etwas anderes sein, dieser Code hat sich von Anfang an nicht viel geändert.
Wenn Sie einen Zeichenindex in der Wertzeichenfolge haben, kann editor.session.doc.indexToPosition(index)
Ihnen helfen, {row, column}
aber das ist eine relativ langsame Funktion.
Danke für die Antwort! Sie haben Recht mit der Ace Cursor API. Ich denke jetzt, dass es damit zu tun hat, dass mein Firepad-Plugin etwas anderes Seltsames damit macht, also ist auf der Ace-Seite nichts auszusetzen.
Hilfreichster Kommentar
Position ist ein Objekt wie {row, column}, daher ist es einfach, eine Zeile daraus zu erhalten, indem Sie position.row verwenden.
Sie können auch verwenden
editor.renderer.scrollCursorIntoView({row: 50, column: 1}, 0.5)
(0,5 zentriert die Linie auf dem Bildschirm, 1 für unten 0 für oben verwenden)