Я устал пользоваться дубинкой и каждый раз копипастить повторяющиеся куски кода из проекта в проект. В работе я использую Sublime Text для html,php и Webstorm для js, css.
Речь пойдет о Sublime. Суть проблемы: при разработке тем Drupal часто приходится вставлять такие куски как вывод меню, переопределение вывода View. Для этого код брался из закромов и вставлялся. Теперь же достаточно ввести drmenu или drview и редактор вставляет в файл заготовку, которую при желании можно поправить.
В меню программы Tools — New Snippet. Откроется заготовка.
<snippet> <content><![CDATA[ Hello, ${1:this} is a ${2:snippet}. ]]></content> <!-- Optional: Set a tabTrigger to define how to trigger the snippet --> <!-- <tabTrigger>hello</tabTrigger> --> <!-- Optional: Set a scope to limit where the snippet will trigger --> <!-- <scope>source.python</scope> --> </snippet>
Нам нужны два параметра: content и tabtrigger.
Content. Кусок «Hello, ${1:this} is a ${2:snippet}.» является сниппетом.
Tabtrigger. Любое сокращение вашего сниппета.
Рассмотрим пример создания вывода View.
<snippet> <content><![CDATA[ <?php \$i=1; foreach (\$rows as \$count => \$row): ?> <section class="item <?=\$i==2 ? "item-center": '';?> <?php print implode(' ', \$row_classes[$count]); ?>"> <header class="title"> <h1><?php print \$row['title'];?></h1> </header> <article> <?php print \$row['${1:field_image}'];?> <?php print \$row['${2:body}'];?> </article> </section> <?php \$i++; if (\$i>3) { \$i=1; echo "<div class='clr'></div>"; } endforeach; ?> ]]></content> <tabTrigger>drview</tabTrigger> <description>Drupal View template</description> </snippet>
Теперь когда я набираю drview и жму Tab, остается ввести пару названий для полей и все.
После сохранения сниппета ему надо задать разрешение sublime-snippet. И еще один важный момент: символ $ надо экранировать как \$
Использование сниппетов в Sublime Text: 0 комментариев