Предотвратете зареждането на 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 repo, като поискате тази функция.

Като временно решение можете да деактивирате зареждането на 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