Сохранить позицию курсора после setValue в редакторе Ace - PullRequest
0 голосов
/ 19 января 2020

Я занимаюсь разработкой редактора в реальном времени с помощью туза и вызываю editor.setValue (), когда в редакторе происходят изменения, и курсор позиционирует себя в произвольных положениях под текстом. То, что я хочу, довольно очевидно, курсор находится точно в том месте, где заканчивается текст после того, как заданное значение загружает новые тексты. Есть идеи ??

1 Ответ

1 голос
/ 19 января 2020

это совсем не просто, потому что если текст изменился, same position больше не будет прежним.

Если вы хотите восстановить тот же самый выбор, вы можете использовать JSON метод

before = editor.selection.toJSON();
editor.setValue(editor.getValue() + "xxx")
editor.selection.fromJSON(before)

, но он, помимо потери производительности, не будет работать правильно в случае, когда линии сдвинуты, например, editor.setValue("xxx\n" + editor.getValue())

В общем случае лучше использовать методы session.insert / session.remove

editor.session.insert({row: 0, column: 0}, "xxx\n")
editor.session.remove({start: {row: 0, column: 1}, end: {row: 1, column: 1}})
...