2011-01-14 16 views
7

¿Hay una manera simple de reformatear mi HTML desde Komodo Edit o automatizar el proceso contra Tidy? Algo así como el Ctrl +K,Ctrl + D en Visual Studio sería brillante. Actualmente ejecuta Ubuntu con Tidy instalado.Komodo Edit - Reformateo de HTML/Tidy

Respuesta

8

Si desea una solución que simplemente rectas hasta Works, haga lo siguiente:

Pop abra el panel de la caja de herramientas a la derecha Haga clic en el engranaje y seleccione Nueva macro, asígnele el nombre que desee.

obtener el código de macro aquí:

komodo edit macro

Incluye el código de http://jsbeautifier.org/ y funciona como un encanto ...

siguiente es la creación de una pulsación de tecla:

Seleccione su nueva macro en la caja de herramientas Ahora ve a las asociaciones de teclas

Tipo de una secuencia y se le indicará si la secuencia que ha escrito está disponible. Uso ctrl +/porque están cerca uno del otro.

¡Salud!

+1

Por cierto, si desea que el resultado de jsbeautifier se parezca al formato Ctrl-k, Ctrl-d de Visual Studio, edite la macro y vaya al caso 'JavaScript'. Ahora cambie indent_size a 4, cambie brace_style a "end-expand" y agregue "good_stuff: true" al final. –

1

Puede configurar un comando para ejecutar para reemplazar una selección de html con la versión ordenada. Presione Ctl + R para abrir la ventana de comandos e ingrese tidy -utf8 -asxhtml -i para el comando que formatea xhtml sangrado usando la codificación utf8. Verifique las dos casillas para "Pasar selección como entrada" e "Insertar salida". También puede especificar enlaces de teclas personalizadas allí.

Ejemplo pantalla http://grab.by/8C3t

7

I found this formatting script (macro) y adaptado para mi uso personal con la última Komodo Edit (v6.1.0). Funciona bien e incluí el formato de JavaScript proporcionado por un comentarista, pero creo que solo puede funcionar con Komodo IDE. No es importante para mis propósitos. Tal vez alguien por ahí puede encontrar una mejora universal (usando algo como html tidy).

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

¿Quieres una tabla en lugar de espacios?

Además de lo que dijo @justquick, haga un buscar/reemplazar (Ctrl + h). Reemplazando un espacio doble () con una pestaña (\t, asegúrese de que la expresión regular esté marcada) para tener el html tabulado en lugar de estar espaciado. Tidy usa dos espacios de manera predeterminada, tendrás que cambiar tu búsqueda si has configurado Tidy de manera diferente.

0

1 Ir a la caja de herramientas => Add => Nuevo comando

2 Entre los argumentos de línea de comandos ordenados en el campo Ejecutar:

tidy -config tidy_config_html.txt 

3 Marque todas las casillas

4 Introduzca la ruta para poner en orden en el campo Start In

5 Haga clic en la pestaña Key Binding

6 Uso Ctrl + 1 como la nueva clave de secuencia

7 Pulse Ctrl + A, Ctrl + 1

1

La respuesta que TAOcode hecho es grande, pero en las últimas versiones de Komodo algunas cosas han cambiado, por lo que aquí está mi actualización del código para que funcione de nuevo:

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(); 
} 

Las grandes diferencias son la línea 5: komodo.document.language se convierte en komodo.view.language y en la línea 40: Run_RunEncodedCommand se convierte en ko.run.runEncodedCommand