Defina o valor para o editor ace sem selecionar o editor inteiro


90

Assim, você pode definir o valor de um editor ace com, setValuemas depois de definir o valor, o editor selecionará todo o valor do editor. Como você desativa isso? Isso significa que quando eu definir o valor do editor ace como Hello world, ele não destacaráHello world

Respostas:


164

Você pode usar o segundo parâmetro para controlar a posição do cursor após setValue

editor.setValue(str, -1) // moves cursor to the start
editor.setValue(str, 1) // moves cursor to the end

15

Você pode até usar clearSelection () depois de fazer um setValue ();

editor.setValue("Hello World");
editor.clearSelection(); // This will remove the highlight over the text

10

Isso funciona para mim!

editor.setValue(editor.getValue(), 1);

0

Tenho tido o mesmo problema.

Mesmo que você possa definir o segundo parâmetro como 1 ou -1 , acho que você também deve verificar isso: https://ace.c9.io/api/editor.html#Editor.setValue

Editor.setWrapBehavioursEnabled(Boolean enabled)

Use isso logo após criar o editor.

Isso funciona muito bem para mim. A diferença entre este método e aquele compartilhado por um usuário é que a posição do cursor não é alterada, você pode movê-lo você mesmo usando Editor.selection.moveTo(row, column), desta forma o usuário não experimentará mudanças estranhas de posição ao usar, digamos, CTRL + Z para desfazer uma ação :)


1
Esta resposta não é clara. Quer dizer que chamar Editor.setWrapBehavioursEnabled(Boolean enabled)com algum valor logo após o editor ser inicializado impedirá que todo o texto seja selecionado ao chamar editor.setValue?
Macario

0
 var prevtext = $("#editor").val();
 prevtext = prevtext + "<br/>";
 $("#editor").val(prevtext).blur();
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.