Textmate può indentare bene l'HTML?


17

Textmate ha una funzione per indentare bene l'HTML?

HTML Tidy lo indentifica, ma sembra eliminare anche i tag. (Questo non è completamente corretto HTML, ma comunque!)

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns:metal="http://xml.zope.org/namespaces/metal">
    <head>
        <title></title>
    <script type="text/javascript" src="http://www.speechapi.com/static/lib/swfobject.js"></script>
    <script type="text/javascript" src="http://www.speechapi.com/static/lib/speechapi-1.1.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<body>
    <!-- All above disappears -->       
    <p>Test</p>
    <!-- All below disappears-->
</body>
</html>

Puoi fare un esempio di html in cui i tag vengono eliminati perché questo è sorprendente
user151019

@Mark: aggiornato con codice
Casebash

@Casebash Ho provato Tidy con il tuo codice e per me ha aggiunto solo tag. copypastecode.com/46216
Robert S Ciaccio,

@calvera: assicurati che il tipo di documento sia impostato su HTML, non su testo semplice
Casebash,

3
@Casebash: era impostato su html ... FYI, da quello che ricordo del plugin Tidy per Notepad ++, è configurato tramite un file di testo. Quindi forse c'è qualcosa che non va nella configurazione di Tidy.
Robert S Ciaccio,

Risposte:


20

Puoi premere + Aper selezionare tutto quindi Text->Indent Selection.


Anni di TextMate e non ho mai visto o usato questa funzione ... \ o /
brasofilo,

Purtroppo questa non è una formattazione XML completa: mantiene le righe con rientro errato e non suddivide i tag sulla stessa riga su righe separate. Utilizzo di Textmate 2.0-rc.4.
Alexander Klimetschek,

13

È possibile utilizzare Bundles > HTML > Tidyo il collegamento ctrl+ + H.


3
Tidy non si limita a indentarlo, ma ne elimina anche parti!
Casebash,

1
La domanda riguardava il rientro e non il riordino
tig

Il riordino fallisce anche quando ci sono alcuni problemi come nomi di elementi sconosciuti.
Alexander Klimetschek,

1

Vorrei sottolineare qualcosa che incrocia un po 'le altre risposte:

Se si seleziona il testo che si desidera formattare (o riutilizzare), TextMate applicherà solo azioni specifiche. Quindi, se fai CMD+ il Atuo documento e poi applichi Tidy (dal menu Bundles> HTML o con il collegamento CTRL+ SHIFT+ H), per lo più farà solo rientri, saltando gli avvisi sulle convalide (che a volte non sono necessari poiché potremmo lavorare su frammenti di pagina ).


0

È possibile utilizzare Xcode o Dashcode invece se si installano gli Strumenti di sviluppo. Vengono forniti gratuitamente sui dischi di installazione forniti con il computer. Credo che sia Xcode che Dashcode abbiano l'evidenziazione della sintassi.

Se vuoi un software davvero buono, scarica Coda. È un po 'caro a $ 100, ma direi che ne vale la pena. Ha l'evidenziazione della sintassi e (la parte più importante per me) il completamento automatico.


0

Sì. La chiamata Tidy nel bundle HTML incorporato di TextMate può gestire il tuo HTML.

Bundle di TextMate -> HTML -> Tidy produce:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:tal="http://xml.zope.org/namespaces/tal" xmlns:metal="http://xml.zope.org/namespaces/metal">
    <head>
        <title></title>
        <script type="text/javascript" src="http://www.speechapi.com/static/lib/swfobject.js">
</script>
        <script type="text/javascript" src="http://www.speechapi.com/static/lib/speechapi-1.1.js">
</script>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js">
</script>
    </head>
    <body>
        <!-- All above disappears -->
        <p>
            Test
        </p><!-- All below disappears-->
    </body>
</html>

Sul tuo codice di esempio. Niente è scomparso. Ricevi anche i seguenti avvisi:

line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 2 column 5 - Warning: <body> isn't allowed in <head> elements
line 1 column 1 - Warning: <html> proprietary attribute "xmlns:tal"
line 1 column 1 - Warning: <html> proprietary attribute "xmlns:metal"

0

Il problema che ho riscontrato con la soluzione integrata Text -> Indent Selectiono Tidy è che non funziona bene con il codice HTML parziale. Questo è ad esempio importante quando si modifica in WordPress o si lavora con i parziali in Ruby on Rails.

La soluzione che ha funzionato per me è stata quella di aggiungere un comando al pacchetto con uno script Perl personalizzato di John Watson che ho trovato qui: http://snipplr.com/view.php?codeview&id=28256

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.