DEMETR Создание сайтов в Казани

Опубликовано

Использование сниппетов в Sublime Text

Я устал пользоваться дубинкой и каждый раз копипастить повторяющиеся куски кода из проекта в проект. В работе я использую 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 комментариев