web-dev-qa-db-fra.com

Existe-t-il une fonctionnalité d'indentation automatique HTML ou un plug-in pour Sublime Text (alias prettify / beautify / format)?

Par exemple, quelque chose à changer:

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

à:

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

... qui fonctionne sur les pages complètes et les extraits.

  • Le paramètre Edit > Line > Reindent intégré ne le fait pas
  • Le plugin HTMLTidy ajoute les balises head et body, de sorte qu'il ne fonctionne pas pour les partiels, il présente également d'autres problèmes.
  • Le plugin Tag a plusieurs problèmes , assez pour que ça ne marche pas.
  • Le plugin HTMLPrettify a plusieurs problèmes , requiert node.js et n'a pas été mis à jour depuis des mois.
  • Gist.github.com/mcdonc/3898894 prétend le faire, mais nécessite Emacs

(Notepad ++ avec mise en retrait automatique, Dreamweaver avec Apply Formatage source, Aptana avec Format, etc.)

Le plugin Tag gère les balises inline de manière incorrecte , par exemple en l'utilisant sur cet extrait:

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

résulte en:

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

reindent ne fonctionne pas toujours pour les extraits. Vous pouvez utiliser le plugin Tag (installer à partir du contrôle du paquet). Puis appuyez simplement sur ctrl+shift+pet tapez tag. Vous verrez l'option Auto-Format tags on document. Sélectionnez et appuyez sur Enter. Ça va le faire.

18
Bibhas

Sélectionner tout -> Menu Édition -> Ligne -> Réindendre fera . Vous pouvez définir une combinaison de raccourcis pour le même usage.

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

6
Jasim Mahmood

Pour que la fonction Reindent fonctionne, vous devez décocher l'option "Indentation à l'aide d'espaces":

Vue >> Indentation >> Indentation à l'aide d'espaces

Une fois cette option décochée, vous pouvez sélectionner votre texte et réindiquer:

Édition >> Ligne >> Reindent

Cela fonctionnera pour la syntaxe HTML ainsi que XML. Pas testé sur d'autres.

0
Sidz