Js-beautify: As linhas não são removidas corretamente quando os atributos são quebrados

Criado em 5 jan. 2017  ·  23Comentários  ·  Fonte: beautify-web/js-beautify

Descrição

O recuo é interrompido sempre que ocorre o agrupamento de atributos.

Usando js-beautify v1.6.8 .

Entrada

O código parecia assim antes do embelezamento:

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

Saída Esperada

O código deveria ter a seguinte aparência após o embelezamento:

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

Saída real

O código realmente ficou assim após o embelezamento:

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

Passos para reproduzir

Embeleze o código

Meio Ambiente

SO: MacOS

Configurações

Exemplo:

{
    "wrap_attributes": "force-aligned"
}

Nota: wrap_attributes não precisa ser definido como alinhado à força. Qualquer encapsulamento (excluindo "force-expand-multiline") apresentar, incluindo se "auto" causou o encapsulamento demonstrará esse problema.

html bug

Comentários muito úteis

Encontrei o problema. Consertando agora.

Todos 23 comentários

Estou tendo o mesmo problema (via atom-beautify # 735 )

<p attr1 attr2 attr3>
  text
</p>

torna-se em

<p attr1
    attr2
    attr3>
  text
  </p>

meu envoltório de força está ligado

O mesmo aqui, o código fica cada vez mais recuado até o último momento. É impossível usar este embelezador mais assim, tenho que formatar manualmente o 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>

Posso confirmar esse bug, começou a acontecer aleatoriamente.
Sempre que os atributos de uma tag são quebrados, o conteúdo interno começa a recuar incorretamente.

[editar]
Tive que desabilitar este plugin para retomar meu trabalho até que uma correção seja entregue = /

o mesmo aqui! = /

@bitwiseman Alguém está trabalhando nisso? Este é um pacote muito popular e este é um grande problema ... Eu adoraria ver corrigido :( infelizmente, não tenho certeza se sei o que alterar para contribuir com o código sozinho. Talvez algumas dicas?

parece que remover "wrap_attributes": "force" em html do arquivo .jsbeautifyrc resolve o problema

@chenasraf - Contributing.md para obter instruções sobre a construção local.
A solicitação de pull # 1104 mostra como é uma boa mudança: adicione entradas a test/data/html/tests.js , atualize o código do produto e crie (as mudanças nos arquivos generated são feitas automaticamente).

@matheusdavidson - é bom saber. @chenasraf - você desejará adicionar teste à matriz que já testa a opção wrap_attributes .

Alguém realmente está trabalhando nisso? Muitos garfos para verificar todos eles. Talvez eu possa ajudar.

@ kf-ireneuszpatalas Não tive tempo de trabalhar nisso e @chenasraf foi a única pessoa que manifestou interesse.

@bitwiseman Parece que adicionar multi_parser.unindent() depois de js / lib / beautify-html.js: 980 corrige este problema, embora eu não tenha certeza se isso se encaixa lá em termos lógicos, quais condições adicionar, etc ... Se você ainda quiser que eu cuide dele, levará alguns dias até que eu tenha tempo livre o suficiente para repassar o básico do que está incluído no pacote. Ou isso ou talvez outra pessoa queira assumir as rédeas

@chenasraf - faz com que vários testes falhem antes mesmo de eu fazer qualquer outra coisa. Sim, ainda quero que você resolva isso, se puder.

@chenasraf , @bitwiseman. Tenho algum tempo para dar uma olhada amanhã.

Encontrei o problema. Consertando agora.

RP enviado

@HookyQR - Muito obrigado! Fundido e publicado.

Seria possível estender as opções de empacotamento com o "auto-alinhamento" ??

"forçar alinhar" forçará o empacotamento + alinhamento deles ...

mas digamos que eu não queira embrulhar CADA ÚNICO ELEMENTO HTML, mas apenas os longos - e depois fazê-los manualmente.

então, o "auto-alinhamento" alinharia apenas aqueles que já estão agrupados.

@Montago - abra um novo problema descrevendo o que você deseja, incluindo entradas, saídas, etc.

@bitwiseman

já existe um aberto com a funcionalidade que procuro: https://github.com/beautify-web/js-beautify/issues/1125

Acabei de instalar isso e estou tendo o problema de indentação com grunt e a seguinte opção: wrapAttributes: 'force-expand-multiline'
Estou executando a v1.7.5
obrigado

Também está tendo esse problema com 'force-expand-multiline' atualizações?

Também obtendo este problema com 'force-expand-multiline'

@affanshahid @veDev
Você já tentou fazer isso com 1.8.0-rc2?

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