我正在使用带有sass-mode和yasnippet的Emacs来编辑.sass文件。这一切都很有效,并且片段正在扩展。但是由于sass-mode需要haml-mode,因此在编辑sass文件时也会加载haml片段。这很麻烦,因为haml片段在sass中没用。
我已经检查了我的snippets目录中的.yas-parents文件并没有找到。我搜索了文档和elisp代码,但设置或功能没有跳出来。当我在sass缓冲区中运行M-x yas-describe-table时,我会显示sass和haml的扩展表。
理想情况下,我想在打开sass缓冲区时阻止haml片段在打开时加载。但是如果我可以设置某种钩子来在加载sass缓冲区时移除片段的haml表,那也很好。
谢谢!
答案 0 :(得分:0)
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
作为要加载的模式返回。