Ace: Como faço para rolar o editor para uma posição, não apenas uma linha?

Criado em 30 out. 2015  ·  4Comentários  ·  Fonte: ajaxorg/ace

Estou usando o Ace para uma experiência de edição colaborativa e quero poder rolar para a posição do cursor de outro usuário.

Vejo que existem editor.scrollToRow() e editor.scrollToLine() métodos, mas não consigo encontrar nenhum método que funcione com um objeto cursor que tenha position e selectionEnd propriedades.

O que eu gostaria é poder rolar para uma posição, não apenas uma linha. Ou se houver uma maneira de converter uma posição em uma linha, isso também seria útil.

Obrigado!

Comentários muito úteis

Posição é um objeto como {linha, coluna}, portanto, obter uma linha dele é fácil usando position.row.
Você também pode usar
editor.renderer.scrollCursorIntoView({row: 50, column: 1}, 0.5) (0,5 centraliza a linha na tela, use 1 para parte inferior 0 para parte superior)

Todos 4 comentários

Posição é um objeto como {linha, coluna}, portanto, obter uma linha dele é fácil usando position.row.
Você também pode usar
editor.renderer.scrollCursorIntoView({row: 50, column: 1}, 0.5) (0,5 centraliza a linha na tela, use 1 para parte inferior 0 para parte superior)

Eu acho que estou em uma versão mais antiga, onde a posição é apenas a posição do personagem, mas isso será bom quando eu puder atualizar.

Deve ser outra coisa, esse código não mudou muito desde o início.
Se você tem índice de caracteres na string de valor editor.session.doc.indexToPosition(index) pode ajudá-lo a obter {row, column} mas essa é uma função relativamente lenta.

Obrigado pela resposta! Você está certo sobre a API do cursor Ace. Agora acho que tem a ver com o meu plugin Firepad fazendo algo estranho com ele, então não há nada de errado no lado do Ace.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

mkosieradzki picture mkosieradzki  ·  4Comentários

ketysek picture ketysek  ·  3Comentários

BoasE picture BoasE  ·  4Comentários

hojas picture hojas  ·  7Comentários

christianbs picture christianbs  ·  3Comentários