首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在条件下加载yasnippet

如何在条件下加载yasnippet
EN

Stack Overflow用户
提问于 2012-09-21 14:26:34
回答 1查看 447关注 0票数 3

我正在做一些Drupal编程,并为常见函数创建了yasnippet: db_select、db_delete等。

我只想在处理Drupal文件时加载它们,而不是普通的php文件。任务是这样的:

给定yasnippet文件的列表和当前打开的文件的路径

代码语言:javascript
复制
if(path contains '/sites/all/modules')
{
    load all the snippets from the list
}

该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-28 01:30:51

您有两个选择:

  1. 创建一个名为drupal-mode的新模式,该模式继承了php-mode的所有内容,然后为该模式定义代码片段,请参阅Emacs手册中的Derived Modes,了解如何执行该操作
  2. 向查找文件挂钩添加一个函数,该函数用于检查当前缓冲区是否在特定目录中,然后加载所需的代码片段

无论哪种方式,您都将基于当前目录或文件名执行操作。

find-file-hook示例

我还没有测试过这段代码,但是概念已经存在了。您可能必须将yas/load-directory-1函数检查为其他函数,或者摆弄参数。

代码语言:javascript
复制
(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)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12525293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档