Czy istnieje prosty sposób na sformatowanie mojego kodu HTML z poziomu edytora Komodo lub zautomatyzowanie procesu w Tidy? Coś jak Ctrl + K, Ctrl + D w Visual Studio byłoby genialne. Obecnie działa system Ubuntu z zainstalowanym Tidy.Edycja Komodo - Reformatowanie/czyszczenie w języku HTML
Odpowiedz
Jeśli chcesz rozwiązanie, które po prostu prosto działa, wykonaj następujące czynności:
Otwórz panel narzędzi po prawej stronie Kliknij na koło zębate i wybierz Nowe makro, nadaj mu nazwę.
Pobierz kod makra tutaj:
Zawiera kod z http://jsbeautifier.org/ i działa jak czar ...
Dalej jest utworzenie klawiszy:
Wybierz swoje nowe makro w przyborniku Teraz przejdź do kluczowych powiązań
rodzaj sekwencji i powie to, czy sekwencja wpisany jest dostępna. Używam ctrl + /, ponieważ są one blisko siebie.
Pozdrawiam!
Możesz ustawić polecenie, aby uruchomić, aby zastąpić wybór html wersją schludną. Naciśnij Ctrl + R, aby wywołać okno poleceń i wprowadź tidy -utf8 -asxhtml -i
dla polecenia, które formatuje wcięty xhtml przy użyciu kodowania UTF8. Zaznacz dwa pola wyboru "Przekaż wybór jako dane wejściowe" i "Wstaw dane wyjściowe". Możesz także określić niestandardowe powiązania klawiszy.
Przykład ekranu http://grab.by/8C3t
I found this formatting script (macro) i dostosować go do mojego osobistego użytku z najnowszej Komodo Edit (wersja 6.1.0). Działa to dobrze i uwzględniłem formatowanie JavaScript dostarczone przez komentatora, ale myślę, że może działać tylko z IDE Komodo. Nie ma to znaczenia dla moich celów. Być może ktoś tam może znaleźć uniwersalne ulepszenie (używając czegoś w stylu 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();
}
Chcesz zamiast kart zamiast spacji?
Oprócz tego, co powiedział @justquick, wykonaj szukanie/zamiany (Ctrl + H). Zastępując podwójną spację () za pomocą tabulatora (
\t
, upewnij się, że zaznaczono regex), aby umieścić zakładkę html zamiast odstępów. Tidy domyślnie używa dwóch spacji, musisz zmienić swoje znalezisko, jeśli inaczej skonfigurowałeś Tidy.
1 Goto Toolbox => Add => Nowe polecenie
2 Wprowadź schludne argumenty wiersza polecenia w polu Run:
tidy -config tidy_config_html.txt
3 Sprawdzić wszystkie pola
4 Wprowadź ścieżkę uporządkować w dziedzinie Start In
5 Kliknij Key Binding
zakładka
6 Użyj Ctrl + 1 jako nowy klucz Sekwencja
7 Naciśnij Ctrl + A, Ctrl + 1
Odpowiedzią że TAOcode wykonana jest wielki, ale w nowszych wersjach Komodo kilka rzeczy się zmieniło, więc tutaj jest moja zmiana w kodzie, aby pracować jeszcze:
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();
}
Duże różnice linia 5: komodo.document.language staje się komodo.view.language, a wiersz 40: Run_RunEncodedCommand zmienia się w ko.run.runEncodedCommand
Przy okazji, jeśli chcesz, aby wyjście jsbeautifier wyglądało jak formatowanie Ctrl-k, Ctrl-d programu Visual Studio, edytuj makro i przejdź do przypadku "JavaScript". Teraz zmień indent_size na 4, zmień brace_style na "end-expand" i dodaj "good_stuff: true" na końcu. –