Komodo Edit - переформатирование HTML / Tidy

Есть ли простой способ переформатировать мой HTML из Komodo Edit или автоматизировать процесс против Tidy?

Что-то вроде Ctrl+K, Ctrl+D в Visual Studio было бы блестящим решением. В настоящее время я использую Ubuntu с установленным Tidy.


person Dave    schedule 14.01.2011    source источник


Ответы (5)


Если вам нужно решение, которое просто работает, сделайте следующее:

  • Откройте панель инструментов справа.
  • Нажмите на шестеренку и выберите «Новый макрос». Назовите это, как вам нравится.

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

Макрос редактирования Komodo (404)

Он включает в себя код с http://jsbeautifier.org/ и прекрасно работает...

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

  • Выберите новый макрос на панели инструментов.

  • Теперь перейдите к привязкам клавиш

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

person Chris Fletcher    schedule 06.04.2012
comment
Кстати, если вы хотите, чтобы вывод jsbeautifier выглядел как форматирование Ctrl-k, Ctrl-d Visual Studio, отредактируйте макрос и перейдите к случаю «JavaScript». Теперь измените indent_size на 4, измените brace_style на end-expand и добавьте в конце good_stuff: true. - person Mark Brittingham; 29.05.2014

Я нашел этот скрипт форматирования (макрос) и адаптировал его для личного использования с последняя версия 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 and 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 we may corrupt edit buffer
    komodo.editor.endUndoAction();
}
person TAOcode    schedule 21.02.2011

Вы можете настроить команду для замены выбранного HTML на чистую версию. Нажмите Ctrl + R, чтобы вызвать окно команд, и введите tidy -utf8 -asxhtml -i для команды, которая форматирует XHTML с отступом, используя кодировку UTF-8.

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

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

person justquick    schedule 27.01.2011

ответ, сделанный 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 the 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 the entire buffer and pipe it into the formatter.
    komodo.doCommand('cmd_selectAll');
    ko.run.runEncodedCommand(window, formatter + " {'insertOutput': True, 'operateOnSelection': True}");

     // Restore the 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

person J_D    schedule 07.03.2016

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

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

     tidy -config tidy_config_html.txt
    
  3. Установите все флажки

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

  5. Перейдите на вкладку Привязка клавиш.

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

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

person Paul Sweatte    schedule 05.01.2012