|
DreamweaverExtension
Zen Coding extension for Adobe Dreamweaver
Phase-Deploy IntroductionZen Coding is an editor plugin for high-speed HTML, XML, XSL (or any other structured code format) coding and editing. The core of this plugin is a powerful abbreviation engine which allows you to expand expressions—similar to CSS selectors—into HTML code. You can find more information on project main page. How to installTo install it you need to download zip-package of the extension, unpack “Zen Coding v.0.7.5.mxp”. Run Adobe Extension Manager under Commands menu in Dreamweaver and install this file with it. Note: if you just double click on file, there could be bugs if you have different languages of OS and editor. They can be fixed by running Adobe Extension Manager under commands menu and enabling/installing extension with it. Source code is also included to package. You can make changes if you want and install mxi or package and install new extension then. After installing you need to restart Adobe Dreamweaver (or reload extensions) if it running. Whats new in version 0.7.5
Whats new in version 0.7.2
Whats new in version 0.7.1
About Adobe Dreamweaver extensionThis extension contains all Zen Coding features which can be done using editor extension engine. The bad news is that Dreamweaver doesn't have multiple tab stops and can't read image (binary) files. So, related features like “encode to base64” aren't realized. Maybe someone will do it with C-level extensibility. But the good news is that since version 0.7 you can expand abbreviations with Tab button! Also some new actions were added and almost all actions now have shortcuts. Actions and shortcutsExcept Tab key you can expand abbreviations with “Ctrl+,” as before. Unfortunately it conflicts with hotkeys in some Dreamweaver localizations. If you faced with this issue you should manage hotkeys manually via Edit → Keyboard Shortcuts menu. As for other shortcuts I tried to assign non-used ones. The two of them with Ctrl key: “Ctrl+H” and “Ctrl+K” were assigned to “Wrap with Abbreviation” and “Select Line”. With some others “Alt” key became very helpful because Dreamweaver doesn't allow to assign it via user interaction. (I think in order to avoid collisions with menu bar.) You can still assign your own shortcuts via Keyboard Shortcuts editor. The only action without shortcut is “Balance Tag”. There are two reasons: outward (same by default) and inward versions of the action and similar function of Dreamweaver “Select Parent Tag” (“Ctrl+[”). Shortcuts tableNote: This table matches to the latest extension version: 0.7.5. Expand Abbreviation Tab or Ctrl+, (on selection only Ctrl+,) Wrap with Abbreviation Ctrl+H Re_flect CSS Value Ctrl+R Balance Tag Outward Alt+[ Balance Tag Inward Alt+] Next Edit Point Ctrl+Alt+Right Previous Edit Point Ctrl+Alt+Left Go to Matching Pair Alt+/ Select Next Item Alt+Right Select Previous Item Alt+Left Insert Formatted Newline Ctrl+Enter Select Line Ctrl+K Merge Lines Ctrl+\ Toggle Comment Ctrl+/ Split/Join Tag Ctrl+Shift+\ Rename Tag Ctrl+Shift+B Remove Tag Alt+- Evaluate Math Expression Alt+= Increment number by 1 Ctrl+Up Decrement number by 1 Ctrl+Down Increment number by 10 Ctrl+Alt+Up Decrement number by 10 Ctrl+Alt+Down Increment number by 0.1 Alt+Up Decrement number by 0.1 Alt+Down New CSS shortcutsWith standard CSS-properties and its aliases there also were added some new shortcuts: color:transparent; c:t
color:rgb(); c:r
color:rgba(); c:ra
color:hsl(); c:h
color:hsla(); c:ha
text-overflow:; tov
text-overflow:""; tov+
text-overflow:clip; tov:c
text-overflow:ellipsis; tov:e
box-decoration-break:clone; bxdb (the only non-default option)
box-decoration-break:slice; bxdb:s
transition: ts
transition-property:; tsp
transition-duration:; tsd
transition-delay:; tsdl
transition-timing-function:; tst
transition-timing-function:ease; tst:e
transition-timing-function:linear; tst:l
transition-timing-function:ease-in; tst:i
transition-timing-function:ease-out; tst:o
transition-timing-function:ease-in-out; tst:io
transition-timing-function:step-start; tst:ss
transition-timing-function:step-end; tst:se
transition-timing-function:steps(); tst:s
transition-timing-function:cubic-bezier(); tst:cb
direction dir
direction:ltr dir:l
direction:rtl dir:r
@page {} @p
@top-left-corner {} @tlc
@top-left {} @tl
@top-center {} @tc
@top-right {} @tr
@top-right-corner {} @trc
@bottom-left-corner {} @blc
@bottom-left {} @bl
@bottom-center {} @bc
@bottom-right {} @br
@bottom-right-corner {} @brc
@footnote {} @fn
@counter-style "" @csExtensibilityAlso my_zen_settings.js was added to package to help you adding of new snippets. It can be located in source files (and then deployed with extension reinstall) or in “Commands\ZenCoding” folder under your configuration folder. You should reload extensions or restart Dreamweaver to make changes work. Note, that your changes will be lost with extension update and uninstall. So backup if it is worth for you. For example to my_zen_settings.js were included next snippets: HTML:
jq <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
cc:ie8 <!--[if gte IE 8]><![endif]-->
cc:ie9 <!--[if gte IE 9]><![endif]-->
CSS:
@md @-moz-document url-prefix() {}
|
Thanks for your great work ;)
Отличная идея с auto-increment и калькулятором. Еще с пол года назад хотел добраться до написания .js для DW и внедрить эту же самую идею, но так и не дошли руки. Да и в API разбирался бы долго.
У меня сейчас стоит CS4 и CS5, но из-за некоторых глюков CS5 предпочитаю оставаться пока на CS4. Хотел спросить почему набор команд для CS4 отличается от CS5? И нельзя ли их подогнать под CS4 в таком же виде, а так же с expandAbbreviation по кнопке "tab"?
Не пойму, куда делся в CS5: "Insert Formatted line break". Отличная вещь, которой не хватает в DW на уровне движка. Удобно назначать команду на CTRL + Enter (я бы добавил это как note для пользователей, а то по дефолту в dw всё равно ерунда какая-то стоит на ctrl+enter :)
Так же хочу поделиться своими идеями. Думаю их можно было бы внедрить в ваш zen-coding для DW.
Insert auto-indented block statement braces: { ... }
(Просто вставляет фигурные кавычки. Первая ставится непосредственно после селектора (или согласно опциям выставленным в DW, если возможно прочитать), а вторая кавычка доставляется через одну строку с учетом табуляции (кол-во табов у селектора) ну и вставлять курсор на следующую строку, чтоб сразу приступать к вводу CSS свойств.
Merge\Unmerge CSS Selector
Не знаю возможно ли это реализовать. Лично я Merge Lines в 95% случаев использую для сжатия CSS селектора после того, как закончу стилизацию блока. До этого держу свойства на отдельных строках, чтоб было наглядней. Хотелось бы "сжимать" CSS селектор без предварительного выделения и вызова команды MergeLines??, а просто находясь внутри селектора { ....|...} после вызова команды он бы сжимался, оставляя отступ после себя. Думаю, если вы используете merge lines тоже для этих целей, эта идея должна понравится.
Rename\Refactor tag pair
Если это реально. Тоже удобная штука. (<div>Some text</div> -> div->refactor(span) == <span>Some text</span>)
Это странно, что набор команд отличается, я у себя такого не наблюдал. Может возникли глюки при установке расширения? У меня такие бывали, помогала переустановка расширения.
Возможно, осталось с какой-то старой глючной версии, тогда надо вручную чистить menus.xml (рекомендуют не в Дримвивере).
Разве Дримвивер не сохраняет весь документ в соответствии с настройками окончания строки (Preferences → Code Format)? Потому команда «Insert Formatted line break» мне кажется бесполезной.
Вообще всё должно быть одинаково чуть ли не с 6 (MX) версии: использовался только основной API.
По предложениям:
1. Набор команд "заглючил" из-за menus.xml. Он обновился частично (или вообще не обновился).
2. В версии 0.6 я не замечал команды "Insert Formatted Line Break", а заметил только в версии 0.7. Точнее ее как раз и нету в 0.7, но из-за моего глюка в menus.xml я заметил ее :) Похоже мое применение команде отличается от первоначально задуманного. Я использую ее для отбивки закрывающего тэга сразу на +1 строку. У нас есть: <div>{cursor}</div>
После нажатия ctrl + enter (insert formatted lb) получается: <div>
</div>Думал это и была изначальная задумка. В aptana, jetbrains такое поведение по-умолчанию, удобно.
--- На счет кавычек могу предложить пока временный вариант: Использовать code snippets + hotkey (хотя можно и text-expander какой-нибудь настроить). В code snippets режим "Insert Text" и для before cursor "{/n", а для after cursor "/n}". Этого почти достаточно, но не работает нормально в случае когда смещен базовый отступ. Например в следующем примере, при таком сниппете вложенные кавычки будут без отступа. .user {
} } "а должна быть на уровне .user или color"---
За "Balance Braces" + "Merge lines" - спасибо :) Хотя одной кнопкой было бы удобней. И иногда бывает нужно "разжать" селектор, если вдруг начинаются глюки и нужно "отлаживать" правила :)
--- Последние про "rename tag" увидел в aptana/jetbrains/netbeans. Может и не имеет отношения к высокоскоростному кодингу, но упрощяет жизнь. Да и проще это, нежели удалять и обворачивать заново. Это почти как +1, -1, +10, -10 команды - они же тоже не совсем относятся к высокоскоростному кодингу :)
Если бы это работало примерно как wrap with abbreviation с выпадающим окном. Курсор на тег - {hotkey} - выпадает окно с выделенным тэгом и можно сразу ввести другой тег - enter При этом все классы и id остаются.
Но вообще это действительно довольно редко необходимая команда.
1. Да, и у меня такое есть. Думал, от экспериментов, но может в какую-то версию закрался глюк.
2. О таком применении не думал. Тогда это действительно полезная команда, надо будет добавить.
По поводу сниппетов: добавление своих в my_zen_settings.js вполне работает. См. DreamweaverExtension#Extensibility.
Надо будет доработать Merge Lines для работы в CSS-профиле.
Странно, я не могу найти «Rename Tag». Может эта команда не имеет отношение к Дзен Кодингу? Посмотрю что можно сделать, возможно, сработает такой же алгоритм.
Rename Tag нет в ZC, но, в принципе, я планировал её добавить в версию 0.7, это не сложно
Вот и вышла новая версия: исправления ошибок и новые возможности по просьбам посетителей. Фигурные скобки в CSS автоматически не вставляются, но между ними работает „Insert Formatted Newline“ как и с тегами. „Merge Lines“ теперь работает умнее „Balance Braces“ :-). На моём компьютере работает с приемлемой скоростью: примерно до 50 мс на 200 КБ css-файле — бо́льшие файлы нет смысла поддерживать из-за ограничений IE.
Отличная работа! Большое спасибо за правки и нововведения ;)
А сложно ли добавить функцию обертывания нескольких строк выделенного текста, так, чтобы он попали не в сам тэг, в атрибут? Пример: сейчас есть такой функционал у нас есть, нарпимер, выделенные qwe asd zxc обертываем правилом li и получаем <li>qwe</li> <li>asd</li> <li>zxc</li>
так вот, можно ли сделать следующее? У нас есть выделенные строки: 001.jpg 002.jpg 003.jpg обернуть их каким нибудь правилом типа img[src=] или еше каким нибудь удобным выражением и получить: <img src="001.jpg" /> <img src="002.jpg" /> <img src="003.jpg" />
В Zen Coding версии 0.7 такое можно сделать: надо обернуть аббревиатурой img[src=${output}]*
Спасибо, за подсказку! А можно как-нибудь изменить/упростить/модифицировать эту конструкцию? Например, хотя бы чтобы каждый элемент был на новой строке?
Можно обернуть в блочный тэг: например, div*>img[src=${output}] тогда будет на новой строке. Точно не помню, есть ли другой вариант, но когда искал, не нашёл.
Насчет конструкций типа img[src=${output}], пробовал такую обертку (с использованием ${output}) в других редакторах с zencoding, таких как Notepad++ 5x и Komodo Edit 6x, но почему-то ничего не вышло( Это штука специфична только для реализации под дрим? Есть ли аналоги для других редакторов? И можно ли в других реализациях также как и в my_zen_settings.js добавлять свои снипеты?
Заранее спасибо.
В Zen Coding 0.7 используется написание $#, и в обновлении расширения я перевёл используемый формат на него. Также это зависит от версии плагинов и их поддержки. Старые могут просто не поддерживать такое.
Не получается использовать zen-coding для расширения .less Добавляю расширение в файле zen-setting.js не помогает. 'css': {
Что мне нужно добавить или прописать что бы zen-coding в дримвивере заработал и для файлов c расширением lessНадо связать расширение .less с Дримививером в ОС. Например попробовать открыть, указав Dw при задействованной галочке «Использовать программу для всех файлов такого типа».
Подскажите пожалуйста, есть ли возможность использовать zen-coding для less работая в DW?
can't make it work on dreamweaver cs6, any hint on that??
doesn't work in cs6. please help ?
It works fine, just create new bindings for it @ the following:
Edit > Keyboard Shortcuts > Commands: Menu Commands > Commands > Zen Coding