我正在做一些 Drupal 编程,并为常用功能创建了 yasnippets:db_select、db_delete 等。
我只想在处理 Drupal 文件而不是普通 php 文件时加载它们。任务是这样的:
给定 yasnippet 文件列表和当前打开文件的路径
if(path contains '/sites/all/modules')
{
load all the snippets from the list
}
怎么做?
你有两个选择:
无论哪种方式,您都将根据当前目录或文件名做事。
find-file-hook
例子我还没有测试过这段代码,但这个概念就在那里。您可能必须检查该yas/load-directory-1
函数是否有其他内容或弄乱参数。
(defun load-drupal-snippets ()
(when (string-match-p "/sites/all/modules" (file-name-directory (buffer-file-name)))
(yas--load-directory-1 "/path/to/drupal/snippets/" 'php-mode 'text-mode)))
(add-hook 'find-file-hook 'load-drupal-snippets)