Mr_J21
Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Con tu cuenta gratis puedes responder, escribirle al autor por mensaje privado y comprar con Saldo retenido: el pago se libera cuando recibes lo acordado.
¿Quieres identar el JavaScript y el css usando un código propio en js? Si¿Quieres identar el javascript y el css usando un codigo propio en js? solo por curiosidad ¿Cual es el motivo? Lo normal es que el propio IDE ya te vaya identando lo que necesites
Este código hace algo similar a lo que quiero hacer.Pues no puedo ayudarte, losiento. La verdad que nunca he tenido la necesidad de hacer algo asÃ.
Suerte!
<div contenteditable="true" onkeyup="addIndent(event)">
<!-- contenido editable aquà -->
</div>
<script>
function addIndent(event) {
if (event.keyCode === 13) { // si la tecla presionada es enter
document.execCommand('indent', false, null); // indentar el texto
document.execCommand('insertText', false, ' '); // insertar un espacio en blanco
}
}
</script>
Entiendo tu punto, no quiero una estructura, quiero algo simple como crear un espacio entre las dos llaves "{}" en cada nueva lÃnea.tienes que identificar los saltos de lÃneas y los espacios en blanco, todo por expresiones regulares.
Pero lo complicado supongo o no tanto, la jerarquia de la estructura del código. si hay 1 "if" identarx1 si hay 1 if dentro de otro if identarx2, cosas por estilo.
O podrÃas usar alguna librerÃa o paquete de los muchos que ya hacen eso.
Es más difÃcil de lo que piensas por ejemplo: cuando actualizo la caja "<div contenteditable="true"></div>" pierdo la posición del cursor.antes de nada estas trabajando con algún estándar? por que de acuerdo al estándar, son X espacios en blanco para identar o 1 tab.
caso de HTML, siempre habrá un jerarquÃa div tiene mas jerarquÃa de ul > li > a >span etc me entiendes, Vas a tener que recorrer todo el archivo y mover como sea necesario
CSS, mas fácil, solo busca "{" e ingresa un salto de linea, luego busca ";" otro salto de linea.... m,e entiendes...
creo que en el caso de CSS q es mas fácil toma todo el input área, quita los espacios en blanco todos que te quede el texto minificado luego buscas la "{", ":", ";", "}". con un split luego insertas los espacios con replace
esto es básico tienes q mejorarlo pero. textoAFormatear.replace("{","{\n\r ") e igual con los demás, creo que no es optimo seria mejor con expresiones regulares pero para salir del apuro irÃa bien
algo asi es super basico pero para darte la idea, respecto al "pierdo la posición del cursor." pues tendras que almacenarla en una variable entonces
![]()
How to set the caret (cursor) position in a contenteditable element (div)?
I have this simple HTML as an example: <div id="editable" contenteditable="true"> text text text<br> text text text<br> text text text<br> </div...stackoverflow.com
mira la parte de "addEventListener keypress", mira en la consola de desarrollador los valores de esas variables, tienes la posición, el contenido todo para que lo termines.
podrÃas verificar la posición, ya depende como lo hagas hay varias maneras. PodrÃas jugar con ":" si haces enter en una posición y antes de esa posición hay un ";" que inserte un "\t" o jugar con los "{}", termÃnalo tu si yo te ayudo en todo no vas a aprender.