Автор Тема: Не работают сниппеты  (Прочитано 14278 раз)

Levin249

  • Newbie
  • *
  • Сообщений: 3
Не работают сниппеты
« : Мая 13, 2014, 03:48:41 »
Ребят, день добрый!
Проблема такая: во второй версии сниппеты работают ок. Поставил 3. Даже простейший сниппет на вставку текста не срабатывает. Если выбрать через Tools-Snippets и жмакнуть то все ок - вставляет, а через Tab нет. В чем может быть проблема? :o

P.S. Установлены следующие плагины:
AdvancedNewFile
BracketHighlighter
Emmet
Package Control
PyV8
SublimeLinter

Loac

  • Administrator
  • Hero Member
  • *
  • Сообщений: 612
Re: Не работают сниппеты
« Ответ #1 : Мая 13, 2014, 11:10:44 »
Скинь пример снипета, пожалуйста.

Через меню снипеты вызываются по имени файла, в котором они находятся (например: Snippet: hello для hello.sublime-snippet), а в коде через параметр <tabTrigger>.

<snippet>
  <content><![CDATA[
Hello, ${1:this} is a ${2:snippet}.
]]></content>
  <tabTrigger>hello</tabTrigger>
</snippet>
« Последнее редактирование: Мая 13, 2014, 11:12:37 от Loac »

Levin249

  • Newbie
  • *
  • Сообщений: 3
Re: Не работают сниппеты
« Ответ #2 : Мая 14, 2014, 01:51:34 »
Пример сниппета... Ну например код на сброс стилей CSS.
<snippet>
<content><![CDATA[
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote,
pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd,
q, s, samp,small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt,
dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot,
thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption,
footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark,
audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
vertical-align: baseline;
}
article, aside, details, figcaption, figure, footer, header, hgroup, menu,
nav, section {
display: block;
}
body {
line-height: 1.2;
}
ol {
padding-left: 1.4em;
list-style: decimal;
}
ul {
padding-left: 1.4em
list-style: square;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
]]></content>
<tabTrigger>resetcss</tabTrigger>
<scope>source.css</scope>
</snippet>

Loac

  • Administrator
  • Hero Member
  • *
  • Сообщений: 612
Re: Не работают сниппеты
« Ответ #3 : Мая 14, 2014, 11:31:34 »
Работу снипетов блокирует Emmet. Нашел несколько вариантов решения.

1. Отключить Emmet в CSS.

Preferences > Package Settings > Emmet > Settings - User
{
  "disable_tab_abbreviations_for_scopes": "source.css"
}

2. Использовать Ctrl+Space (Edit > Show Completions) вместо Tab. Кстати, у меня еще снипет раскрывается по Tab'y, если аббривеатуру выделить.

3. Отключить использование табуляции в Emmet и пользоваться Ctrl+E.

Preferences > Settings - User.
{
"disable_tab_abbreviations": true,
}

4. Добавить снипеты в Emmet.

У последнего варианта очень странное поведение.

Preferences > Package Settings > Emmet > Settings - User

{
  "snippets": {
    "css": {
      "abbreviations": {
        "resetcss": "<div>"
      }
    }
  }
}

Например, так resetcss сработает как прописано в resetcss.sublime-snippet, но если "<div>" изменить на "div", то он отработает как снипет Emmet.
« Последнее редактирование: Мая 14, 2014, 12:07:31 от Loac »

Levin249

  • Newbie
  • *
  • Сообщений: 3
Re: Не работают сниппеты
« Ответ #4 : Мая 20, 2014, 02:19:05 »
Огромное спасибо за развернутый ответ. Буду пробовать.
Попробовал вставку через Ctrl+Space - очень удобно на этом и остановлюсь :)
« Последнее редактирование: Мая 20, 2014, 02:22:32 от Levin249 »