• Zen Coding v0.3

    Большое обновление Zen Coding.

    Общее

    • Парсер аббревиатур теперь учитывает тэги: <div>p>span разворачивается в <div><p><span></span></p>.
    • Внесены в настройки все сокращения, описанные в Wiki (спасибо Николаю за детальный багрепорт).
    • Добавлен полноценный плагин для TextMate.
    • Добавлен полноценный плагин для Coda.

    Aptana

    • Добавлены команды «Перейти к следующей/предыдущей точке редактирования» (Next/Previous Edit Point: Alt+[ и Alt+] соответственно). Пока что точками редактирования является позиция между "" и ><. Таким образом очень удобно перемещаться между пустыми атрибутами и тэгами.
    • Добавлена команда «Обрамить тэгом» (Wrap In Tag: Alt+W). Обрамляется либо выделение, если оно есть, либо вся строка. Не забудьте включить в аптане опцию Modify pair tag (Aptana → Editors → HTML → Typing).
    • Добавлена команда «Форматировать выделение с помощью Showdown» (Format Selection With Showdown: Alt+F). Преобразует обычный текст в HTML-разметку. Сам скрипт Showdown подвергся небольшим изменениям: абзацы разделяются не двумя переносами строк, а одним, менее жесткие правила для обрамления ссылкой электронных адресов, добавлены отступы для элементов списка. То есть формат входящего текста больше похож на то, что копируется и вставляется из ворда.
    • Добавлена поддержка редактора XSL из проекта Eclipse WTP (с XML редактором почему-то не хочет работать). В settings.js для него появились отдельные правила.
    • Добавлена возможность разворачивать аббревиатуры по клавише Tab. Для этого в файле Expand Abbreviation.js в самом первом комментарии значение ключа Key нужно заменить на Tab и переменной use_tab поставить значение true. Нужно помнить, что в этом случае все нажания клавиши Tab будут обрабатываться скриптом, поэтому некоторые вещи (типа перемещение между плэйсхолдерами) перестанут работать.

    TextMate

    Бандл для TextMate теперь больше похож на полноценный Zen Coding плагин. Работает в HTML, CSS, XML и XSL режимах. Пока в работе добавление собственных сниппетов через интерфейс Bundle Editor. Тоже есть возможность раскрывать аббревиатуры по клавише Tab (сейчас по ⌘+E), однако в этом случае перестанут работать сниипеты из других бандлов.

    Coda

    Наконец-то разработчики этого редактора мне ответили. В общем, заявленная «полная поддержка бандлов из TextMate» даже близко не похожа на правду. Мой коллега Дима «Хобот» Яковлев (за что ему огромное спасибо) написал прослойку между Coda и PyZenCoding на Objective-C. Аббревиатуры разворачиваются по ⌃+E, пока нельзя менять это сочетание. Большая просьба ко всем пользователям этого редактора хорошенько протестировать плагин и написать мне о всех выявленных багах.

    Вроде ничего не забыл :) Скачать плагины можно с сайта проекта на Google Code. Следите за обновлениями.

    UPD: Zen Coding теперь входит в состав сахара TEA для редактора Espresso (разворачивается по ⌃+. [точка]).

  • 24 комментария

    1. 7 мая 2009

      Пользуюсь IDEA и notepad++ :]

    2. 7 мая 2009

      Сергей, а планируется ли плагин для NetBeans?

      P.S.: не хочу на вас наговаривать, но убранный копирайт WP — это моветон…

    3. Алекс
      7 мая 2009

      Восхитительная фиговина!

      Мне не хватает лишь одной штуки — чтобы это работало и в других файлах (php, js). Не подскажете куда смотреть?

    4. Сергей Чикуенок
      7 мая 2009

      Сергей, а планируется ли плагин для NetBeans?

      Мне хочется охватить как можно больше редакторов :) Пока единственный известный мне способ сделать это — написать плагин на Java. Но я не знаю ее и плагины делать не умею. Можно было бы поступить так же, как и с Coda: написать прослойку, которая будет брать необходимые данные с текущего редактора, отдавать их в JavaScript и вставлять результат. То же самое касается и IDEA.

      Мне не хватает лишь одной штуки — чтобы это работало и в других файлах (php, js).

      Я намеренно отключил работу Zen Coding в этих редакторах. Единственное применение плагина в этих редакторах, которое я вижу — разворачивание сниппетов. Но для этих целей есть уже встроенный механизм Code Templates (по крайней мере в PDT и Spket), который работает гораздо лучше Zen Coding.

      Если расскажете о том, как представляете себе работу Zen Coding в этих редакторах, то, возможно, я внедрю эти фичи в новой версии.

    5. Алекс
      7 мая 2009

      Рассказываю :)
      Большую часть своего рабочего времени я поддерживаю и дополняю чужие проекты. Все они в основном на PHP. В 99% процентах случаев написаны они не по феншую, мягко говоря — код(php) в перемешку с оформлением (html, css).
      Вот я и подумал, что мне было бы удобно использовать разворачивалку html команд.

      ЗЫ Пользуюсь Аптаной недавно и вполне возможно мои вопросы ламерские :)

    6. Сергей Чикуенок
      7 мая 2009
      1. Откройте файл Expand Abbreviation.js
      2. В строке 24 замените:
        var editor_type = zen_coding.getEditorType();
        

        на

        var editor_type = zen_coding.getEditorType() || 'html';
        
      3. Сохраните файл.
      4. На всякий случай сделайте Refresh у проекта со скриптом и в Scripts View

      Должно помочь.

    7. Алекс
      7 мая 2009

      Сергей!
      Все заработало!
      Мегаспасибо!

    8. Алекс
      7 мая 2009

      Нашел небольшой баг:
      если в файле всего одно слово, то обрамление тегом работает не верно

      Получается:
      test

      То есть два тега ставятся в начале этого одиночного слова

    9. Алекс
      7 мая 2009

      Не получилось :)
      Что получается при врапе одного слова в файле
      [спан][/спан]text

    10. 7 мая 2009

      btw, после удаления папок .svn и файлов .DS_Store архив похудел на 20 кило…

    11. Сергей Чикуенок
      7 мая 2009

      Упс, забыл про это. Допилю билдер, чтобы в следующий раз игнорировал эти файлы

    12. Денис
      7 мая 2009

      Спасибо за Coda!
      Буду тестить.

    13. 10 мая 2009

      Mike TUMS
      Для NetBeans пока можно воспользоваться моими шаблонами кода.

      Они в немного неактуальном (по сравнению с Wiki) состоянии. Приведу в нормальный вид немного попозже.

      Ну и Сергей прав насчёт написать плагин на Java. Без этого всего функционала не получить.

    14. Дима
      11 мая 2009

      Продублирую вопрос: как установить этот ИИ в стендэлон Аптану? Мне пока что ни один шаманский бубен не помог.

    15. Сергей Чикуенок
      11 мая 2009

      В аптану ставится очень просто: создаете новый проект (или используете уже готовый), в нем создаете папку scripts и копируете в нее содержимое архива. На всякий случай сделайте Refresh проекта и скриптов в Scripts View

      http://www.aptana.com/docs/index.php/Creating_a_new_Eclipse_Monkey_script

    16. Сергей
      12 мая 2009

      Сергей, думаю что попрошу не только за себя, но и других пользователей e-texteditor, может быть получится для него подправить то, что вы написали для textmate? У меня не получилось даже подключить как следует его к списку бандлов. Наверное руки не оттуда растут :)
      А если реально и немного бы заняло времени, то и интегрировать вместе с бандлами пепелсбея. Уж больно они мне нравятся и легко редактируются и настраиваются.

      Неважно какой будет ответ, спасибо вам за то, что разрабатываете и советуете, и делитесь опытом!

    17. Сергей
      12 мая 2009

      Упс, прочитал только что у Вадима, что если будет возможность, то будет и бандл. Спасибо.

    18. Дима
      12 мая 2009

      Блин, это каждый раз так делать при новом проекте? Минус, конечно, для меня.

    19. Сергей Чикуенок
      12 мая 2009

      Это нужно сделать только один раз: завести проект и в папку scripts скопировать содержимое архива

    20. dmitriy
      14 мая 2009

      Моему счастью нет границ. Я поставил сабж на голый эклипс без аптаны.
      Если кому интересно:
      1) Ставим eclipse-monkey (http://download.eclipse.org/technology/dash/update/)
      2) правим 24ю строку Expand Abbreviation.js (var editor_type = zen_coding.getEditorType() || ‘html';)

      Далее можно юзать в любом редакторе.
      Автору большое спасибо :)

    21. Аркатов Дмитрий
      20 мая 2009

      Не подскажите Сергей, как сделать так, чтобы по одному сочетанию клавиш обрабатывал как HTML, а по другим сочетаниям клавиш как CSS.

      Например, когда мне нужно преобразовать ul+ я буду нажимать ALT+E
      А когда мне нужно будет преобразовать pos:a, я буду нажимать ALT+W
      И все это в одном файле, скажем с расширением *.php.

      Вот, было бы вообще круто!

    22. Сергей Чикуенок
      20 мая 2009

      Самый простой и быстрый способ «в лоб»:

      • Делаете дубликат файла Expand Abbreviation.js (назовите его, например, Expand CSS Abbreviation.js).
      • В нем правите ключи Menu и Key (самый первый комментарий)
      • В строке 24 напишите
        var editor_type = ‘css’;
    23. Аркатов Дмитрий
      20 мая 2009

      Спасибо! Работает :)

    24. Alex Breems
      19 ноября 2009

      Планируется ли поддержка Zen Coding в AkelPad (http://akelpad.sourceforge.net) и в Notepad++?