Komodo Edit - переформатирование HTML / Tidy - PullRequest
7 голосов
/ 14 января 2011

Есть ли простой способ переформатировать мой HTML из Komodo Edit или автоматизировать процесс с Tidy?Что-то вроде Ctrl + K , Ctrl + D в Visual Studio было бы замечательно.В настоящее время работает Ubuntu с установленным Tidy.

Ответы [ 6 ]

8 голосов
/ 07 апреля 2012

Если вы хотите, чтобы решение, которое просто работает, сделало следующее:

Откройте всплывающую панель инструментов справа. Нажмите на шестерню и выберите New Macro, назовите то, что вам нравится.

Получите код макроса здесь:

макрос редактирования komodo

Включает в себя код http://jsbeautifier.org/ и работает как шарм ...

Далее необходимо настроить нажатие клавиши:

Выберите новый макрос в наборе инструментов. Теперь перейдите к привязкам клавиш

Введите последовательность, и она сообщит вам, набрала ли она последовательностьдоступен.Я использую Ctrl + /, потому что они рядом друг с другом.

Ура!

7 голосов
/ 21 февраля 2011

I нашел этот скрипт форматирования (макрос) и адаптировал его для личного использования с последней версией Komodo Edit (v6.1.0). Это работает хорошо, и я включил форматирование JavaScript, предоставленное комментатором, но я думаю, что оно может работать только с Komodo IDE. Это неважно для моих целей. Возможно, кто-то найдет универсальное улучшение (используя что-то вроде 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();
}
1 голос
/ 08 марта 2016

Ответ, который дал TAOcode, великолепен, но в более новых версиях Komodo кое-что изменилось, поэтому вот мое обновление кода, чтобы он снова заработал:

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

Большие различиястрока 5: komodo.document.language становится komodo.view.language, а строка 40: Run_RunEncodedCommand становится ko.run.runEncodedCommand

1 голос
/ 27 января 2011

Вы можете настроить команду для запуска, чтобы заменить выбор HTML с версией Tidy. Нажмите Ctl + R, чтобы открыть окно командной строки, и введите tidy -utf8 -asxhtml -i для команды, которая форматирует отступ xhtml с использованием кодировки utf8. Установите флажки «Пропустить выбор как ввод» и «Вставить вывод». Там же можно указать пользовательские привязки клавиш.

Пример скриншота http://grab.by/8C3t

0 голосов
/ 06 января 2012

1 Перейти к панели инструментов => Добавить => Новая команда

2 Введите аргументы командной строки tidy в поле «Выполнить»:

tidy -config tidy_config_html.txt

3 Установите все флажки

4 Введите путь к приборке в поле Start In

5 Перейдите на вкладку Key Binding

6 Используйте Ctrl + 1 в качестве новой последовательности клавиш

7 Нажмите Ctrl + A , Ctrl + 1

0 голосов
/ 22 июня 2011

Хотите табуляции вместо пробелов?

В дополнение к сказанному @justquick, выполните поиск / замену (Ctrl + h). Замена двойного пробела () на вкладку (\t, убедитесь, что регулярное выражение отмечено), чтобы html-табуляция была вместо пробела. По умолчанию Tidy использует два пробела, вам придется изменить поиск, если вы настроили Tidy по-другому.

...