Citar
LV1Code1:
1
LV1Code2:
if {
}
LV1Code3:
do {
} while
LV1Code4:
while {
}
CodeBase:
1
LineaDondeAgregar: 0
LV2Code1:
1
1
LV2Code2:
2
1
LV2Code3:
if {
}
1
LV2Code4:
do {
} while
1
LV2Code5:
while {
}
1
LineaDondeAgregar: 1
LV2Code6:
1
1
LV2Code7:
1
2
LV2Code8:
1
if {
}
LV2Code9:
1
do {
} while
LV2Code10:
1
while {
}
CodeBase:
if {
}
LineaDondeAgregar: 0
LV2Code11:
1
if {
}
LV2Code12:
if {
}
if {
}
LV2Code13:
do {
} while
if {
}
LV2Code14:
while {
}
if {
}
LineaDondeAgregar: 1
LV2Code15:
if {
1
}
1
LV1Code2:
if {
}
LV1Code3:
do {
} while
LV1Code4:
while {
}
CodeBase:
1
LineaDondeAgregar: 0
LV2Code1:
1
1
LV2Code2:
2
1
LV2Code3:
if {
}
1
LV2Code4:
do {
} while
1
LV2Code5:
while {
}
1
LineaDondeAgregar: 1
LV2Code6:
1
1
LV2Code7:
1
2
LV2Code8:
1
if {
}
LV2Code9:
1
do {
} while
LV2Code10:
1
while {
}
CodeBase:
if {
}
LineaDondeAgregar: 0
LV2Code11:
1
if {
}
LV2Code12:
if {
}
if {
}
LV2Code13:
do {
} while
if {
}
LV2Code14:
while {
}
if {
}
LineaDondeAgregar: 1
LV2Code15:
if {
1
}
etc, etc
Citar
LV2Code46:
while {
}
while {
}
while {
}
while {
}
Quiero que así como se agrega if { y }, do { y } while, etc, se agregue } else {, claro sólo si en el código anteriormente hay un if { pero no su }
La parte relevante del código supongo que es:
Código
// Para agregar if, do, while... AgregablesLinea1 = ["if {", "do {", "while {"]; AgregablesLinea2 = ["}", "} while", "}"]; NroDeCosaaAgregar = 0; // Repetir mientras no se haya agregado algo de eso: // Se cambiará qué se agrega: while (NroDeCosaaAgregar < 3) { CodesLV2++; NombredeNewCode = "LV2Code"+CodesLV2; // Se copia la base: set (NombredeNewCode, eval("LV1Code"+CodeBase).slice()); // Insertar en la posición LineaDondeAgregar // Parámetros: (índice, elementos_a_eliminar, nuevo_elemento) eval(NombredeNewCode).splice(LineaDondeAgregar, 0, EspaciosRequeridos+AgregablesLinea1[NroDeCosaaAgregar]); eval(NombredeNewCode).splice(LineaDondeAgregar+1, 0, EspaciosRequeridos+AgregablesLinea2[NroDeCosaaAgregar]); trace (NombredeNewCode+":"); TextoLineaPorLinea = eval(NombredeNewCode).join("\n"); trace (TextoLineaPorLinea+"\n"); NroDeCosaaAgregar++; } // Para agregar else sólo cuando hay if no terminado:
Si necesitan algo más avisen.
Lo complicado es describir la condición que debe cumplirse, justamente ahí lo dejé. Puede que tenga que ver con revisar el array que se está formando (eval(NombredeNewCode)) pero no sé exacto cómo, por ejemplo supongamos que fuese
Citar
if {
while {
}
if {
}
ACÁ ESTÁ EL CURSOR
}
if {
2
}
while {
}
if {
}
ACÁ ESTÁ EL CURSOR
}
if {
2
}
Si pongo:
"Si hay un "if {" antes del cursor"
...entonces no se tiene en cuenta si el if terminó antes del cursor o no
Si pongo:
"Si hay un "if {" antes del cursor y si no hay un } antes del cursor"
...entonces podría ocurrir que el } no sea el final del if sino del while o de otro if.
Quizá tiene que ver con contar la cantidad de ifs pero no alcanza, necesito restar los que terminaron, pero no sé detectarlos porque el } podría ser de ellos o del while.
https://share.google/aimode/zaftDPTTQsG8TNCSI
En otro momento seguiré viendo eso.





Autor



En línea
