Запретить загрузку сниппетов HAML при использовании sass-mode и yasnippet

Я использую Emacs с sass-mode и yasnippet для редактирования файлов .sass. Все это отлично работает, и фрагменты расширяются. Но поскольку sass-mode требует haml-mode, сниппеты haml также загружаются при редактировании файлов sass. Это довольно раздражает, так как фрагменты haml бесполезны в sass.

Я проверил каталог фрагментов на наличие файла .yas-parents и не нашел его. И я просмотрел документацию и код elisp, но ни одна настройка или функция не бросились мне в глаза. Когда я запускаю M-x yas-describe-table в буфере sass, мне показывают таблицы расширения как для sass, так и для haml.

В идеале я хотел бы предотвратить загрузку фрагментов haml при открытии при работе с буфером sass. Но если бы я мог настроить какой-то хук для удаления таблицы фрагментов haml при загрузке буферов sass, это тоже было бы хорошо.

Спасибо!


person aaron.cimolini    schedule 01.03.2014    source источник
comment
У вас есть идеи, почему sass-mode основной режим производный от haml-mode. Именно эта концепция, которая, на мой взгляд, неверна, нарушает yasnippet. См. мой комментарий на github.com/capitaomorte/yasnippet/issues/465.   -  person Joao Tavora    schedule 05.03.2014


Ответы (1)


Кажется, в yasnippets нет способа делать то, что вы хотите. Поэтому вам следует открыть проблему в yasnippet репозитории github с запросом на эту функцию.

В качестве временного решения вы можете отключить загрузку фрагментов haml-mode в sass-mode, посоветовав yas--modes-to-activate следующим образом. Помните, что это НЕ рекомендуется

(eval-after-load "yasnippet"
  '(progn (defadvice yas--modes-to-activate (after my-simple-advise)
           (when (eq major-mode 'sass-mode)
             (setq ad-return-value (remove 'haml-mode ad-return-value))))

         (ad-activate 'yas--modes-to-activate)))

Вышеупомянутое советует yas--modes-to-activate, чтобы haml-mode не возвращался в качестве режима для загрузки в sass-mode.

person Community    schedule 01.03.2014
comment
Ты гений! Спасибо. Я только что открыл проблему с yasnippet github.com/capitaomorte/yasnippet/issues/465 так что, возможно, мы получим вариант для этого. - person aaron.cimolini; 01.03.2014
comment
Также ваше исправление отлично работает с моей версией yasnippet. Версия: 20140227.703 - person aaron.cimolini; 01.03.2014