Js-beautify: Las líneas no se anulan correctamente cuando se ajustan los atributos

Creado en 5 ene. 2017  ·  23Comentarios  ·  Fuente: beautify-web/js-beautify

Descripción

La sangría se interrumpe siempre que ocurre el ajuste de atributos.

Usando js-beautify v1.6.8 .

Entrada

El código se veía así antes del embellecimiento:

<div first second>content</div>
<div>content</div>

Rendimiento esperado

El código debería haberse visto así después del embellecimiento:

<div first 
     second>content</div>
<div>content</div>

Salida real

El código en realidad se veía así después del embellecimiento:

<div first
     second>content</div>
    <div>content</div>

Pasos para reproducir

Embellece el código

Medio ambiente

SO: MacOS

Configuraciones

Ejemplo:

{
    "wrap_attributes": "force-aligned"
}

Nota: wrap_attributes no tiene que configurarse como alineado forzado. Cualquier envoltura (excluyendo "force-expand-multiline") introducida, incluso si "auto" causó la envoltura demostrará este problema.

html bug

Comentario más útil

Encontré el problema. Arreglando ahora.

Todos 23 comentarios

Estoy experimentando el mismo problema (a través de atom-beautify # 735 )

<p attr1 attr2 attr3>
  text
</p>

se convierte en

<p attr1
    attr2
    attr3>
  text
  </p>

mi envoltura de fuerza está encendida

Lo mismo aquí, el código se va sangrando cada vez más hasta el último momento. Es imposible seguir usando este embellecedor así, tengo que formatear manualmente el código: /

<nav id="header"
  class="navbar navbar-default">
  <div class="header-container container-fluid">
    <div class="logo-container navbar-header">
      <a ui-sref="stats"
        class="navbar-brand pws-icon pws-pws"></a>
    </div>
    <div class="header-contents collapse navbar-collapse">
      <ul class="tab-list nav navbar-nav">
        <li class="tab tab-prospects"
          ui-sref-active="active">
          <a ui-sref="stats">
            Stats
          </a>
          </li>
          <li class="tab tab-prospects"
            ui-sref-active="active">
            <a ui-sref="upload">
              Importer
            </a>
            </li>
            <li class="tab tab-prospects"
              ui-sref-active="active">
              <a ui-sref="territories">
                Territory Assignment
              </a>
              </li>

      </ul>
    </div>
  </div>
  </nav>

Puedo confirmar este error, comenzó a ocurrir aleatoriamente.
Siempre que los atributos de una etiqueta se ajustan, el contenido interno comienza a sangrar incorrectamente.

[editar]
Tuve que deshabilitar este complemento para reanudar mi trabajo hasta que se entregue una solución = /

¡igual que aquí! = /

@bitwiseman ¿Alguien está trabajando en esto? Este es un paquete bastante popular y este es un problema bastante grande ... Me encantaría que se solucionara :( desafortunadamente no estoy seguro de saber qué cambiar para contribuir con el código. ¿Quizás algunos consejos?

parece que eliminar "wrap_attributes": "force" en html del archivo .jsbeautifyrc resuelve el problema

@chenasraf - Me encantaría ver esto arreglado. Consulte Contributing.md para obtener instrucciones sobre cómo compilar localmente.
La solicitud de extracción # 1104 muestra cómo se ve un buen cambio: agregue entradas a test/data/html/tests.js , actualice el código del producto y compile (los cambios en los archivos generated se realizan automáticamente).

@matheusdavidson : es bueno saberlo. @chenasraf : querrá agregar una prueba a la matriz que ya prueba la opción wrap_attributes .

¿Alguien está trabajando en esto? Demasiadas bifurcaciones para comprobarlas todas. Quizás pueda ayudar.

@ kf-ireneuszpatalas No he tenido tiempo de trabajar en ello, y @chenasraf es la única otra persona que ha expresado interés.

@bitwiseman Parece que agregar multi_parser.unindent() después de js / lib / beautify-html.js: 980 soluciona este problema, aunque no estoy seguro de si esto se ajusta a la lógica, qué condiciones agregar, etc. Si todavía quieres que me ocupe de él, me tomará unos días hasta que tenga suficiente tiempo libre para repasar los conceptos básicos de lo que pasa en el paquete. O eso o tal vez alguien más quiera tomar las riendas

@chenasraf : eso hace que varias pruebas fallen antes de que yo haga cualquier otra cosa. Sí, todavía quiero que se ocupe de esto si puede.

@chenasraf , @bitwiseman. Tengo algo de tiempo para echar un vistazo mañana.

Encontré el problema. Arreglando ahora.

PR enviado

@HookyQR - ¡Muchas gracias! Fusionada y publicada.

¿Sería posible ampliar las opciones de ajuste con "auto-alinear"?

"force-align" forzará el envolver + alinearlos ...

pero digamos que no quiero envolver TODOS LOS ELEMENTOS HTML ÚNICOS, sino solo los largos, y luego hacerlo manualmente.

entonces, "auto-alinear" solo alinearía aquellos que ya están ajustados.

@Montago : abra un nuevo número que describa lo que desea, incluidas las entradas, las salidas, etc.

@bitwiseman

ya hay uno abierto con la funcionalidad que busco: https://github.com/beautify-web/js-beautify/issues/1125

Acabo de instalar esto y tengo el problema de sangría con gruñido y la siguiente opción: wrapAttributes: 'force-expand-multiline'
Estoy ejecutando v1.7.5
Gracias

¿También tiene este problema con 'force-expand-multiline' alguna actualización?

También obteniendo este problema con 'force-expand-multiline'

@affanshahid @veDev
¿Has probado esto con 1.8.0-rc2?

¿Fue útil esta página
0 / 5 - 0 calificaciones