Ace: Opção para desativar o editor

Criado em 23 mai. 2011  ·  18Comentários  ·  Fonte: ajaxorg/ace

Semelhante ao atributo 'disabled' de uma área de texto.

será semelhante ao modo readOnly, apenas não será permitida a interação do usuário com o editor. Portanto, o cursor e quaisquer marcadores de linha ficarão ocultos.
@gissues :{"order":73.29192546583863,"status":"backlog"}

Comentários muito úteis

Ah, eu vejo agora.
Mas quanto da funcionalidade do editor deve ser desativada depende do caso de uso exato.
Acho que a seleção e a capacidade de focar o editor não devem ser desativadas em nenhum desses casos. A janela de visualização virtual será útil para exibir a saída, mas a seleção do navegador não funcionará com ela. E para exemplos de código geralmente é bom poder fazer ctrl+a ctrl+c .

Para ocultar destaques de cursor e linha

editor.setOptions({
    readOnly: true,
    highlightActiveLine: false,
    highlightGutterLine: false
})
editor.renderer.$cursorLayer.element.style.opacity=0

para tornar o editor não tabulado

editor.textInput.getElement().tabIndex=-1
 or
editor.textInput.getElement().disabled=true

para desabilitar todos os atalhos

editor.commands.commmandKeyBinding={}

também posso adicionar métodos destroy para $mouseHandler e textInput para desativá-los completamente

Todos 18 comentários

Isso foi implementado em algum lugar? Eu também acharia esse recurso muito útil.

Qual é o caso de uso para isso? Não quero adicionar isso ao núcleo, pois raramente é usado e fácil de implementar

Algo como

editor.container.style.pointerEvents="none"
editor.container.style.opacity=0.5 // or use svg filter to make it gray
editor.renderer.setStyle("disabled", true)
editor.blur()

ou isto

var cover = document.createElement("div")
editor.container.appendChild(cover)
cover.style.cssText = "position:absolute;\
top:0;bottom:0;right:0;left:0;\
background:rgba(150,150,150,0.5);\
z-index:100"
cover.addEventListener("mousedown", function(e){e.stopPropagation()}, true)

trabalharia.

O objetivo não é torná-lo visualmente desabilitado, o objetivo é remover a capacidade de o usuário interagir com ele. Ou seja, eles não podem controlar o cursor (melhor ainda, o cursor não existe).
Este é apenas um tipo mais estrito de somente leitura em vez de "desativado". Isso seria útil ao usar o editor para exibir amostras de código ou saída de programas em execução na página da Web. Embora isso possa não ser o uso ideal para o editor, seus recursos, como realce de sintaxe e aparência geral, o tornam uma opção atraente para uso em coisas como essas.

Ambos os exemplos de código realmente não realizam isso. Nenhum deles remove o cursor e, embora façam um bom trabalho ao não permitir que o usuário controle o cursor, o foco pode ser colocado no editor.

Ah, eu vejo agora.
Mas quanto da funcionalidade do editor deve ser desativada depende do caso de uso exato.
Acho que a seleção e a capacidade de focar o editor não devem ser desativadas em nenhum desses casos. A janela de visualização virtual será útil para exibir a saída, mas a seleção do navegador não funcionará com ela. E para exemplos de código geralmente é bom poder fazer ctrl+a ctrl+c .

Para ocultar destaques de cursor e linha

editor.setOptions({
    readOnly: true,
    highlightActiveLine: false,
    highlightGutterLine: false
})
editor.renderer.$cursorLayer.element.style.opacity=0

para tornar o editor não tabulado

editor.textInput.getElement().tabIndex=-1
 or
editor.textInput.getElement().disabled=true

para desabilitar todos os atalhos

editor.commands.commmandKeyBinding={}

também posso adicionar métodos destroy para $mouseHandler e textInput para desativá-los completamente

Excelente, isso tem o efeito que eu estava procurando. Concordo que os requisitos diferem com base no caso de uso exato, mas pode ser útil ter várias opções para desativar coisas como os cursores ou os atalhos etc.

Além disso, a última linha de código acima parece impedir o editor de exibir qualquer coisa. :/

Além disso, a última linha de código acima parece impedir o editor de exibir qualquer coisa. :/

você quer dizer editor.commands.commmandKeyBinding={} ? isso seria muito estranho

Obrigado por isso!

Obrigado, definitivamente preciso de uma opção para desativar o editor!

Oi, você implementou o destruidor $mouseHandler? Estou um pouco perdido (novato aqui). Ou existe alguma maneira de desativá-lo? Obrigado por desabilitar o editor btw :-)

@nightwing
editor.renderer.$cursorLayer.element.style.opacity=0
Parece que $cursorLayer não é um atributo do VirtualRenderer agora.
Eu quero esconder o cursor quando meu editor está no estado 'readOnly', e eu tento o método que você deu, mas não funciona porque $ cursorLayer não é um atributo de VirtualRenderer; Existe alguma outra maneira de ocultar o cursor?

Descobri que existem dois métodos no VirtualRenderer, hideCursor() e setCursorStyle(), e tento usá-los da maneira abaixo. Mas não funciona tão bem.
this._editor.renderer.hideCursor();
this._editor.renderer.setCursorStyle("opacity: 0;");
Estou errado em usar?

É um trabalho em andamento? Eu gostaria de desabilitar o editor quando o foco fora dele.

Mesmo aqui! Eu gostaria de usar o método renderer.hideCursor() mas não parece funcionar. Eu tentei chamá-lo no meu bloco de inicialização do editor e no evento changeCursor , mas não consigo fazê-lo funcionar.

para as pessoas que ainda querem desabilitar o cursor, use a propriedade css3 pointer-events: none; no elemento do editor.

Como desativo o editor, ainda apenas um novo desenvolvedor de reação? Por favor agradeceria qualquer ajuda

para as pessoas que ainda querem desabilitar o cursor, use a propriedade css3 pointer-events: none; no elemento do editor.

Como você desativa o editor?

para as pessoas que ainda querem desabilitar o cursor, use a propriedade css3 pointer-events: none; no elemento do editor.

Como você desativa o editor?

editor.setOptions({
    readOnly: true,
})

Funcionou como um encanto

Quarta-feira, 23 de setembro de 2020, 22h27 Nehal Hasnayeen [email protected]
escrevi:

para as pessoas ainda querem desabilitar o cursor, use css3 property pointer-events:
Nenhum; no elemento editor.

Como você desativa o editor?

editor.setOptions({
readOnly: verdadeiro,
})


Você está recebendo isso porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/ajaxorg/ace/issues/266#issuecomment-698073286 ou
Cancelar subscrição
https://github.com/notifications/unsubscribe-auth/ALIR2LMEV5BHDXPXO7RT5BTSHKVAPANCNFSM4AESJK3A
.

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

Questões relacionadas

gsf picture gsf  ·  6Comentários

featurecat picture featurecat  ·  4Comentários

dimroc picture dimroc  ·  6Comentários

BoasE picture BoasE  ·  4Comentários

velara3 picture velara3  ·  5Comentários