emmetio / sublime-text-plugin

The essential toolkit for web-developers
https://emmet.io
MIT License
255 stars 29 forks source link

Invalid snippets #100

Open sergeche opened 4 years ago

sergeche commented 4 years ago

Hi @sergeche ! Please help me to deal with my CSS/HTML snippets.

Before Emmet update:

After Emmet update:

... and a lot of such examples I've got. Also I can't find how to manage css.valueSeparator option. Previously it was "css.valueSeparator": ":" (without spaces after ":"), but now it doesn't work as well. Another question is how to create HTML snippet with caret position after abbreviation expanding? Sequence of caret position or highlight some code after expanding? For example: "js": "<script src=\"js/${1:main.js}\">${2}</script>${3}"

My old snippets and preferences: emmet-st3.zip

Thank you in advance :)

Originally posted by @gladisihor in https://github.com/emmetio/sublime-text-plugin/issues/50#issuecomment-684024126

sergeche commented 4 years ago

@gladisihor Emmet config format has been changed: https://github.com/emmetio/sublime-text-plugin#adding-custom-emmet-snippets

Also, I see you use Emmet in a bit strange way. The main goal of Emmet is to provide a basis for CSS properties, which you can extend in real-time by adding values right into abbreviation. Instead, you’ve created lots of snippets with predefined values like fz11 which is actually resolves to font-size: 11px; without any additional snippets.

So, if you use Emmet that way, your best option is to not use Emmet at all and use default ST snippets/completions instead

gladisihor commented 4 years ago

Спасибо за Ваш ответ! Здесь уже скорее вопрос привычки. Подобные сниппеты очень сильно экономят моё время и нарабатывались не один год. Очень хотелось бы пользоваться ими и в дальнейшем. К тому же дефолтные сниппеты ST вряд ли откроются без ST хинтов и по нажатию на привычную для меня комбинацию клавишь (у меня за это отвечает сочетание ALT+SPACE). Может всё-таки есть какой-то способ вернуть их к жизни? Или возможно, есть способ сделать downgrade для Emmet?

sergeche commented 4 years ago

Да, можно: я чуть позже доработаю Emmet, чтобы он в том числе резолвил сниппеты типа fz11, то есть чтобы принудительно не отделял значения. Выше указал, как добавлять Emmet-сниппеты в ST, там же есть ссылка на параметр для разделителя (сейчас это "stylesheet.between").

А по поводу финального таб-стопа — да, про это забыл, уже есть такой баг: #97

Eugene-I commented 4 years ago

Да, можно: я чуть позже доработаю Emmet, чтобы он в том числе резолвил сниппеты типа fz11, то есть чтобы принудительно не отделял значения. Выше указал, как добавлять Emmet-сниппеты в ST, там же есть ссылка на параметр для разделителя (сейчас это "stylesheet.between").

А по поводу финального таб-стопа — да, про это забыл, уже есть такой баг: #97

я уже попробовал добавить свой снипет в настройки, но по умолчанию все равно срабатывает дефолтный. Например при m3 у меня разворачивается margin:3px;, хотя для себя я задавал margin:0 0 10px; если задать абревиатуру, которая не конфликтует с дефолтной, например marg3, то тогда все работает как надо. У всех просто кастомные снипеты забиты в джейсоне. Может все-таки лучше откатить пока новый функционал хотя бы для саблайма? Реально как без рук сидишь. К тому же это затронуло и остальные синтаксисы. В том же ПАГе не работает теперь нормально автокомплит, когда после А нажимаешь таб и в результате получаешь a(href="#")

sergeche commented 4 years ago

А для чего вы в PUG после a нажимаете Tab? Подсказка: Esc сбросит захваченную аббревиатуру и дальше Tab можно использовать как раньше, вставлять таб или разворачивать нативный сниппет

Eugene-I commented 4 years ago

А для чего вы в PUG после a нажимаете Tab? Подсказка: Esc сбросит захваченную аббревиатуру и дальше Tab можно использовать как раньше, вставлять таб или разворачивать нативный сниппет

что бы добавились атрибуты по умолчанию. С img это тоже не работает - там атрибутов побольше. Не разворачивает вообще)

sergeche commented 4 years ago

Я не понимаю, в чём именно проблема? Можете подробнее написать, что делаете, что получаете и что ожидаете?

Eugene-I commented 4 years ago

{ "config": { "scss": { "snippets": { "m3": "margin:0 0 10px;" } } } }

Это попытка настроить эммет так как мне надо. Перезапускаю саблайм. Но при попытке воспользоваться этим снипетом мне предлагает дефолтный вариант https://take.ms/eoHdn

sergeche commented 4 years ago

Я имел в виду проблему с PUG

Eugene-I commented 4 years ago

lorem не генерирует https://take.ms/D1TBr при попытке использовать img снипет ничего не подставляет. Хотя в версии 1 после нажатия на таб было развертывание до img(src="images/", alt="Image description", width="", height="")

https://take.ms/vdbCo

sergeche commented 4 years ago

В настройках Emmet в секцию abbreviation_scopes добавьте "text.pug - entity - meta". Он там просто не работает сейчас

Eugene-I commented 4 years ago

без изменений вот скрин настроек https://take.ms/3s00E будто либо не видит этих настроек, либо у них нет приоритета

sergeche commented 4 years ago

Что именно не работает? Сниппет img или Emmet вообще (даже a не разворачивает)? Какой синтаксис для PUG используете? И в abbreviation_scopes надо добавлять к имеющимся новое значение, вы перетёрли скоупы и теперь нигде кроме PUG работать не будет

Eugene-I commented 4 years ago

PUG можно пока опустить. Он там вообще не работает. Насчет синтаксиса не понял :) можно просто новый файл index.pug создать и попробовать создать любой тег - ничего не выйдет. Только стандартный автокомплит. В scss не работают те сниппеты, которые я добавляю в настройки. Мне кажется что если Вам установить саблайм, установить эммет и попробовать его кастомизировать - то тоже ничего не получится

sergeche commented 4 years ago

Про сниппеты типа fz11 и m3, где числовое значение зашито в сам спиппет я уже написал — нужно доработать Emmet, чтобы такое поддерживалось (грубо говоря, это не совсем корректное использование Emmet и для таких целей лучше использовать нативные сниппеты, но хрен с ним, сделаю). Мы сейчас решаем проблему с PUG.

Насчет синтаксиса не понял :)

В Sublime Text документы красятся через специальные синтаксисы, которые распространяются в виде пакетов. Интересует, какой пакет используется для синтаксиса Pug. Я проверил только что предложенное мной решение, всё работает. Хочу понять, что не работает у вас

Eugene-I commented 4 years ago

https://packagecontrol.io/packages/Pug Этот. А Вы?)

sergeche commented 4 years ago

Этот же. С ним и указанной опцией всё работает как надо