-
Aptana Zen Coding v0.2
Обновил плагин Aptana Zen Coding до версии 0.2:
- Добавлена поддержка CSS.
- В настройки внесены все HTML и CSS аббревиатуры и сниппеты.
zen_settings.html.short_namesпереименован вzen_settings.html.aliasesдля более точного соответствия смыслу.- Добавлен новый синтаксис для секции
default_attributes:[{name1: 'value1'}, {name1: 'value2'}]из-за бажной версии движка Rhino, который всегда хранит ключи объекта в алфавитном порядке (из-за этого нельзя было задать точный порядок следования атрибутов). Старый синтаксис продолжает действовать. - Новый синтаксис для секции
aliases(бывшаяshort_names):'name:*': 'name'. Это значит, что для всех аббревиатур, начинающихся с ‘name:’ (например, input:radio, script:src), будет использоваться имя тэга ‘name’. Таким образом удобно создавать заготовки тэгов с необходимыми атрибутами. - Свои собственные настройки теперь можно хранить в файле my-settings.js и добавлять в глобальную коллекцию. Поэтому можно спокойно обновлять библиотеку не опасаясь потерять свои заготовки. Например, для того, чтобы добавить свои собственные HTML-сниппеты в файле my-settings.js нужно написать вот такой код:
zenExtend(zen_settings.html.snippets, { foo: 'bar', snip2: 'Hello world!' });
Комментарии и пожелания приветствуются
35 комментариев

Поправь, если ошибаюсь, но JS интерпритатор не должен гарантировать порядок свойств объектов при перечислении. Для этого есть массивы…
Не знаю, в Ecma-262 сказано: An Object is an unordered collection of properties. Но вообще во всех браузерах учитывается порядок свойств. А про бажность Rhino я написал потому, что там используется версия 1.6.7, с которой я намучился при написании JS-скриптов для Ant. К слову, последняя версия — 1.7, там никаких проблем замечено не было.
Отлично, только откуда скачать 0.2 ?
На гугл.код висит Aptana Zen HTML 0.1 beta Featured
Позанудствую по поводу свойств объекта - в той же ECMA-262 сказано что: The mechanics of enumerating the properties is implementation dependent. Т.е. рассчитывать на какой-то определенный порядок нельзя.
Туплю
Выложил файл.
Можно для дурных пошаговую инструкцию установки Aptana Zen Coding в чистую Aptana. Что-то ну никак не получается установить
Создайте проект, сделайте там папку scripts и в нее положите содержимое архива.
UPD: не забывайте сделать Refresh у проекта, куда распаковали файлы. Либо включите опцию General → Workspace → Refresh automatically
Да вот сделал. Но что-то не видит Aptana этого…
Можете мне на почту скинуть скриншот эклипса? С раскрытыми папками проекта, куда скопировали скрипты.
Обновился до 0.2, буду тестировать.
Когда первый раз устанавливал, аптана тоже не видела файлы пока я во View «Scripts» (Window -> Show Aptana View -> Scripts) не нажал Refresh
<th>strong</th>
Курсор стоит на конце слова strong, жму Alt + E, получаю
<<th><strong></strong></th></th>
Здравствуйте!
Как я понял, данный скрипт/плагин предназначен для Aptana, так как в нём встроен Eclipse Monkey. А возможно ли его использовать на чистом Eclipse? Что необходимо доставить, чтобы всё завелось?
P.S. Попытки поставить Eclipse Monkey в Eclipse результатов не дали, так как этот проект закрыт и его нет в репозитариях Эклипса, а ставить всю Аптану в Эклипсе как-то громоздко
2Samborsky: да, есть такое. Просто символ > является допустимым, поэтому парсер получил аббревиатуру th>strong. Я попробую в следующей версии обойти это, пока можно просто выделить нужные слова и нажать Alt+E
Посмотрите комментарий Артура Бурцева.
Огромное спасибо за ссылку!
Сейчас происходит преобразование fdsdsfdf в <fdsdsfdf>, но вопрос в другом, было бы неплохо сделать возможным преобразование по TAB, сейчас можно в метаданных изменить шоткат, но перестаёт работать TAB по прямому назначению, и если TAB для одной строки достаточно просто сделать скриптами, то TAB для нескольких строк уже сложнее, в связи с этим вопрос, можно ли сделать, чтобы преобразовывались только аббревиатуры из wiki докуентации, а разные fdsdsfdf не преобразовывались и если аббревиатуры не найдено, то совершать действие TAB по умолчанию ( т.е. какбы не делать preventDefault() )
Такие мысли были. Попробую сделать.
Предполагалось, что этот плагин можно будет использовать и в других редакторах, в частности, в XML. И там это будет проблемой. С другой стороны, я могу определять текущий content type и для text/html блокировать такие аббревиатуры. В конце концов, можно сделать опцию, включающую/отключающую такую блокировку
Здравствуйте. Заметил небольшие нестыковочки. Пока что в Zen HTML: (сокращение -> что есть -> что написано в wiki)
1) meta:compat -> -> ;
a:link -> -> ;
2) sect -> -> ;
3) art -> -> ;
4) hdr -> -> ;
5) ftr -> -> ;
6) adr -> -> ;
7) dlg -> -> ;
9) a:mail -> -> ;
10) str -> -> ;
11) prog -> -> ;
12) area:d -> -> ;
13) fset -> -> ;
14) input:datetime-local -> ничего не происходит -> ;
15) input:date -> -> ;
16) input:range -> -> ;
17) input:r -> присутствует как для radio, так и для reset. заточен под reset ;
18) datag -> -> ;
19) datal -> -> ;
20) keygen -> -> ;
21) kg -> -> ;
22) out -> -> ;
23) det -> -> ;
24) command -> -> ;
25) cmd -> -> ;
26) menu:context -> -> ;
27) menu:c -> -> ;
28) menu:toolbar -> -> ;
29) menu:t -> -> ;
P.S. в wiki не описано cc:ie6 , а оно есть
ч000рд … ссылка: http://gruzzilkin.110mb.com/aptana-zen/html/Aptana%20Zen%20Coding%20bugreport.txt
Подскажите, как можно сделать, чтобы в конце блока с div’aми добалялся коммент вида <!– /класс_дива –>,
то есть div.footer раскрывался в <div class="footer"></div><!– /footer –>
И (набравшись наглости) еще спрошу по Aptana, как сделать так, чтобы при команде format (форматировать код) комментарий не переносился после дива –
есть:
</div>
<!– /footer –>
очень хочется:
</div><!– /footer –>
Искал в настройках, но именно "не трогать комменты" не увидел
Заранее огромное спасибо!
Такой возможности нет.
Тоже не заметил такой настройки. Возможно, вам поможет http://eclipsetidy.sourceforge.net/
Ну и немного глупый вопрос: а зачем вам этот комментарий в конце дива?
> а зачем вам этот комментарий в конце дива?
Я путаюсь во множестве вложенных дивов. Вначале понятно, что куда, по class=”что-то-там”, а вот в конце страницы сложно бывает понять, какой закрывающий див к какому блоку отностится.
</div>
</div>
</div> тут я уже перестаю понимать
</div> <!– /footer –> — так мне понятнее.
Если есть какое-то другое решение не путаться, буду рад услышать.
ПС:
Я думал и гордился, что изобрел закрывающий коммент у дива, но потом увидел код сайта apple
http://www.apple.com/mac/
Аптана умеет подсвечивать парные тэги, то есть ставите курсор, например, в закрывающий тэг, а в редакторе подсвечивается открывающий. Это не всегда удобно, особенно если в коде каша. Я планировал в рамках Zen Coding написать несколько скриптов для навигации по коду: перейти к открывающему/закрывающему тэгу, выделить содержимое тэга, перейти к следующему/предыдущему пустому тэгу/атрибуту.
PS: в IntelliJ IDEA очень круто решена эта проблема, там когда ставишь курсор в закрывающий тэг в отдельной области сверху высвечивается открывающий тэг. Возможно, я смогу сделать что-то подобное для аптаны.
Можно к вам в посудную лавку? Прикрутил вот под [Tab]. Не судите сторого.
Unix diff - unified:
— Expand Abbreviation.js 15.04.2009 1:22:58
+++ Expand Abbreviation-tab.js 24.04.2009 20:16:12
@@ -2,8 +2,8 @@
* Menu: Zen Coding > Expand Abbreviation
* Kudos: Sergey Chikuyonok (http://chikuyonok.ru), Vadim Makeev (http://pepelsbey.net)
* License: EPL 1.0
- * Key: M3+E
+ * Key: tab
* Listener: commandService().addExecutionListener(this);
* DOM: http://download.eclipse.org/technology/dash/update/org.eclipse.eclipsemonkey.lang.javascript
*
@@ -39,44 +39,45 @@
replaceAbbreviationWithContent(abbr, content);
}
+ else replaceAbbreviationWithContent(”", “\t|”);
}
/**
@@ -51,58 +52,58 @@
function replaceAbbreviationWithContent(abbr, content) {
var editor = editors.activeEditor;
- if (!content)
+ if (!content) content=abbr+”\t|”;
- return;
// content = content.replace(/\n/g, zen_coding.getNewline());
Все не так просто
Tab отвечает за изменение, а не добавление отступов. То есть я могу выделить фрагмент кода (несколько строк) и изменить ему отступ. Если вам не лень, то вот что нужно сделать: если аббревиатура не была раскрыта, нужно выделить полностью символы во всех строках (выделение не обязательно будет начинаться с начала строки и заканчиваться в конце), применить метод
zen_coding.padString()и вывести в редактор.Подскажите пожалуйста удалось ли кому-либо поставить это на чистый эклипс?
Пробовал делать по комментарию Артура Бурцева, но не получилось пишет:
org.mozila.javascript.EcmaError
ReferenceError: “editor” is not defined.
/var/www/site/scripts/Expand Abbreviation.js line 94
Если кто сталкивался с такой проблемой или же решил её иным способом напишите пожалуйста.
Похоже на то, что EclipseMonkey до конца не сработал или не установился.
editor— это основной объект, через который идет вся работа.Сейчас попробовал на голый эклипс поставить EclipseMonkey отсюда http://download.eclipse.org/technology/dash/update/ но результат почему-то такой же… “editor” is not defined.
Дэш сейчас в каком-то непонятном состоянии находится. Обратите внимание, что Артур пишет про то, что нужно достать из аптаны некоторые плагины, которые и обеспечивают нормальную работу скриптов.
Здравствуйте Сергей. Возможно вы мне подскажите решение такой проблемы: в редакторе CSS при вводе url() для background не выпадает “code assist” с выбором файла. Аналогичная штука реализована в редакторе HTML для свойства src=”" (при нажатии ctrl+space). Я понимаю, что Zen Coding тут не причем, но данная возможность невероятно ускорила бы процесс верстки
Это «глюк» аптаны, так было с самого начала и разработчики до сих пор не внедрили эту фичу (я давно слежу за разработкой этого проекта). Равно как и для атрибута href=”" в HTML.
Спасибо. Будем надеятся на скорое решение данной проблемы.
Сергей, я попытался распаковать TextMate.Zen.HTML.1.3.zip под виндой, но она не
разрешает символ “*” в именах файлов. Если я переименую эти файлы, это как-то скажется на
функциональности?
Этой веткой (1.х) занимается Вадим Макеев, лучше ему задать этот вопрос. Думаю, что отвалятся некоторые аббревиатуры.