Renderizar etiqueta span dentro de Ace Editor
-
21-12-2019 - |
Pregunta
Estoy usando Ace para mostrar código JavaScript y lo estoy cargando según la guía de inserción:
editor = ace.edit("jsField");
editor.getSession().setMode("ace/mode/javascript");
editor.getSession().setUseWrapMode(true);
El div y su contenido son los siguientes:
<div id="jsField">
<span class="hl">var x = 0;</span>
var y = 10;
</div>
Actualmente, el editor Ace mostrará HTML y JavaScript juntos como texto sin formato.¿Existe una forma sencilla de representar el HTML de modo que solo se muestre el texto de JavaScript y el intervalo tenga el estilo de CSS?Por ejemplo:
Debo tener en cuenta que el intervalo generalmente se agrega dinámicamente llamando editor.setValue()
.
He estado investigando la posibilidad de crear modos personalizados/resaltadores de sintaxis para Ace, pero parece excesivo para una tarea tan simple.Tengo curiosidad por saber si hay otra manera.
Solución
No hay soporte integrado para esto.Puedes hacer algo similar a https://github.com/ajaxorg/ace/blob/v1.1.5/lib/ace/ext/static_highlight.js#L53 para detectar rangos y agregar marcadores al editor.