2011-01-14 5 views
7

Existe-t-il un moyen simple de reformater mon HTML à partir de Komodo Edit ou d'automatiser le processus contre Tidy? Quelque chose comme le Ctrl +K, Ctrl +D dans Visual Studio serait génial. En cours d'exécution Ubuntu avec Tidy installé.Komodo Edit - Reformatage HTML/Tidy

Répondre

8

Si vous voulez une solution qui fonctionne tout simplement tout droit, procédez comme suit: Ouvrez le panneau de la boîte à outils sur la droite Cliquez sur l'engrenage et sélectionnez Nouvelle macro, nommez-le comme vous voulez.

Obtenir le code macro ici:

komodo edit macro

Il comprend le code de http://jsbeautifier.org/ et fonctionne comme un charme ...

suivante consiste à mettre en place une combinaison de touches:

Sélectionnez votre nouvelle macro dans la boîte à outils Maintenant, allez dans les raccourcis clavier

une séquence type et il vous dira si la séquence que vous avez saisi est disponible. J'utilise ctrl +/car ils sont proches les uns des autres.

À la votre!

+1

Par ailleurs, si vous voulez que la sortie de jsbeautifier ressemble à la mise en forme Ctrl-k, Ctrl-d de Visual Studio, modifiez la macro et allez dans le cas 'JavaScript'. Maintenant, changez l'indent_size à 4, changez le brace_style en "end-expand" et ajoutez "good_stuff: true" à la fin. –

1

Vous pouvez configurer une commande à exécuter pour remplacer une sélection de html par la version bien rangée. Appuyez sur Ctl + R pour afficher la fenêtre de commande et entrez tidy -utf8 -asxhtml -i pour la commande qui met en forme xhtml en retrait à l'aide de l'encodage utf8. Cochez les deux cases «Passer la sélection en entrée» et «Insérer la sortie». Vous pouvez également spécifier des raccourcis clavier personnalisés.

Exemple capture d'écran http://grab.by/8C3t

7

Je found this formatting script (macro) et adapté pour mon usage personnel avec la dernière Komodo Edit (6.1.0). Cela fonctionne bien et j'ai inclus le formatage JavaScript fourni par un commentateur mais je pense que cela ne fonctionnera qu'avec Komodo IDE. Ce n'est pas important pour mes objectifs. Peut-être quelqu'un peut-il trouver une amélioration universelle (en utilisant quelque chose comme html bien rangé).

komodo.assertMacroVersion(3); 
if (komodo.view) { komodo.view.setFocus(); } 

var formatter; 
var language = komodo.document.language; 
switch (language) { 
    case 'Perl': 
     formatter = 'perltidy -i=2 -pt=2 -l=0'; 
     break; 
    case 'XML': 
    case 'XUL': 
    case 'XLST': 
     formatter = 'tidy -q -xml -i -w 80'; 
     break; 
    case 'HTML': 
     formatter = 'tidy -q -asxhtml -i -w 120'; 
     break; 
    //case 'JavaScript': 
    // ko.views.manager.currentView.scimoz.selectAll(); 
    // ko.views.manager.currentView.scimoz.replaceSel(js_beautify(ko.views.manager.currentView.scimoz.text, {indent_size: 2})); 
    // return null; 
    default: 
     alert("I don't know how to tidy " + language); 
     return null; 
} 

//save current cursor position 
var currentPos = komodo.editor.currentPos; 

try { 
    // Save the file. After the operation you can check what changes where made by 
    // File -> Show Unsaved Changes 
    komodo.doCommand('cmd_save'); 

    // Group operations into a single undo 
    komodo.editor.beginUndoAction(); 

    // Select entire buffer & pipe it into formatter. 
    komodo.doCommand('cmd_selectAll'); 
    Run_RunEncodedCommand(window, formatter + " {'insertOutput': True, 'operateOnSelection': True}"); 

    // Restore cursor. It will be close to the where it started depending on how the text was modified. 
    komodo.editor.gotoPos(currentPos); 

    // On windows, when the output of a command is inserted into an edit buffer it has unix line ends. 
    komodo.doCommand('cmd_cleanLineEndings'); 
} 
catch (e) { 
    alert(e); 
} 
finally { 
    // Must end undo action or may corrupt edit buffer 
    komodo.editor.endUndoAction(); 
} 
0

Voulez-vous un onglet au lieu d'espaces?

En plus de ce que dit @justquick, faites une recherche/remplacement (Ctrl + h). Remplacement d'un double espace () avec un onglet (\t, assurez-vous que l'expression regex est cochée) pour avoir le tabulation html au lieu d'être espacées. Tidy utilise deux espaces par défaut, vous devrez changer votre recherche si vous avez configuré Tidy différemment.

0

1 Aller Boîte à outils => Ajouter => Nouvelle commande

2 Entrez les arguments de ligne de commande bien rangé dans le champ Exécuter:

tidy -config tidy_config_html.txt 

3 Cochez toutes les cases

4 Entrez le chemin à ranger dans le domaine Start In

5 Cliquez sur l'onglet Key Binding

6 Utilisez Ctrl + 1 comme la nouvelle séquence clé

7 Appuyez sur Ctrl + A, Ctrl + 1

1

La réponse que TAOcode fait est grande, mais dans les versions les plus récentes de Komodo quelques choses ont changé, alors voici ma mise à jour du code pour le rendre à nouveau travail:

komodo.assertMacroVersion(3); 
if (komodo.view) { komodo.view.setFocus(); } 

var formatter; 
var language = komodo.view.language; 
switch (language) { 
    case 'Perl': 
     formatter = 'perltidy -i=2 -pt=2 -l=0'; 
     break; 
    case 'XML': 
    case 'XUL': 
    case 'XLST': 
     formatter = 'tidy -q -xml -i -w 500'; 
     break; 
    case 'HTML': 
     formatter = 'tidy -q -asxhtml -i -w 120'; 
     break; 
    //case 'JavaScript': 
    // ko.views.manager.currentView.scimoz.selectAll(); 
    // ko.views.manager.currentView.scimoz.replaceSel(js_beautify(ko.views.manager.currentView.scimoz.text, {indent_size: 2})); 
    // return null; 
    default: 
     alert("I don't know how to tidy " + language); 
     return null; 
} 

//save current cursor position 
var currentPos = komodo.editor.currentPos; 

try { 
    // Save the file. After the operation you can check what changes where made by 
    // File -> Show Unsaved Changes 
    komodo.doCommand('cmd_save'); 

    // Group operations into a single undo 
    komodo.editor.beginUndoAction(); 

    // Select entire buffer & pipe it into formatter. 
    komodo.doCommand('cmd_selectAll'); 
    ko.run.runEncodedCommand(window, formatter + " {'insertOutput': True, 'operateOnSelection': True}"); 

    // Restore cursor. It will be close to the where it started depending on how the text was modified. 
    komodo.editor.gotoPos(currentPos); 

    // On windows, when the output of a command is inserted into an edit buffer it has unix line ends. 
    komodo.doCommand('cmd_cleanLineEndings'); 
} 
catch (e) { 
    alert(e); 
} 
finally { 
    // Must end undo action or may corrupt edit buffer 
    komodo.editor.endUndoAction(); 
} 

Les grandes différences sont en ligne 5: komodo.document.language devient komodo.view.language et la ligne 40: Run_RunEncodedCommand devient ko.run.runEncodedCommand

Questions connexes