Existe algum recurso de auto-indentação HTML ou plugin para Sublime Text (também conhecido como prettify / beautify / format)?

23

Por exemplo, algo para mudar:

<section><article><h1></h1><p></p></article></section>

para:

<section>
  <article>
    <h1></h1>
    <p></p>
  </article>
</section>

... que funciona em páginas inteiras e snippets.

  • A configuração Edit > Line > Reindent incorporada não faz isso
  • O plug-in HTMLTidy adiciona head e body tags, por isso não funciona para parciais, mas também tem vários outros problemas
  • O plug-in Tag tem vários problemas , o suficiente para que, essencialmente, não funcione
  • O plug-in HTMLPrettify tem vários problemas , requer node.js e não foi atualizado nos meses
  • gist.github.com/mcdonc/3898894 afirma fazê-lo, mas requer o Emacs

(o Notepad ++ tinha recuo automático, o Dreamweaver tinha a formatação de origem, o formato do Aptana, etc.)

O plug-in de tags lida com tags in-line incorretamente , por exemplo, usando-o neste snippet:

<p>foo<a>bar<span>baz<span>qux</span></span></a></p>

resulta em:

<p>
    foo
    <a>
        bar
        <span>
            baz
            <span>qux</span>
        </span>
    </a>
</p>
    
por mehas 11.03.2013 / 15:52

3 respostas

18

O reindent nem sempre funciona para snippets. Você pode usar o plug-in Tag (instale a partir do controle de pacote). Em seguida, pressione ctrl + shift + p e digite tag . Você verá a opção Auto-Format tags on document . Selecione e pressione Enter . Isso vai fazer isso.

    
por 15.03.2013 / 20:01
6

Selecione Tudo - > Menu Editar - > Linha - > Reindend serve. Você poderia definir uma combinação de atalhos para o mesmo uso.

{"keys": ["ctrl + shift + r"], "comando": "reindent", "args": {"single_line": false}}

    
por 09.06.2014 / 12:20
0

Para que o recurso Reindent funcione, você precisa desmarcar a opção "Recuo usando espaços":

Ver > > Recuo > > Recuo usando espaços

Quando essa opção estiver desmarcada, você poderá selecionar seu texto e Reindent:

Edite > > Linha > > Reindent

Isso funcionará para sintaxe HTML e XML. Não foi testado em nenhum outro.

    
por 18.06.2016 / 14:25