读:为 project.el 写一个自定义后端
内容提要
本文介绍了如何为 Emacs 的 project.el 编写自定义后端,特别是针对没有版本控制的项目。核心在于定义项目实例格式和实现项目发现函数,通过向上查找 Makefile 来确定项目根目录。实现了四个泛型方法以支持项目管理,并注册到 hook 中,以便识别 Makefile 项目。配置后,用户可以方便地在项目中切换和搜索文件。
关键要点
-
为 Emacs 的 project.el 编写自定义后端,特别是针对没有版本控制的项目。
-
项目实例格式由四个元素组成:类型符号、根目录字符串、忽略的文件模式列表和外部根目录列表。
-
项目发现函数通过向上查找 Makefile 来确定项目根目录,并处理递归 Makefile 的情况。
-
实现了四个泛型方法:project-root、project-files、project-ignores 和 project-external-roots。
-
将自定义后端注册到 project-find-functions hook 中,以便识别 Makefile 项目。
-
配置完成后,用户可以方便地在项目中切换和搜索文件。
延伸问答
如何为没有版本控制的项目编写 Emacs 的 project.el 自定义后端?
可以通过定义项目实例格式和实现项目发现函数来编写自定义后端,特别是通过向上查找 Makefile 来确定项目根目录。
项目实例格式包含哪些元素?
项目实例格式由四个元素组成:类型符号、根目录字符串、忽略的文件模式列表和外部根目录列表。
如何实现项目发现函数?
项目发现函数通过向上查找 Makefile 来确定项目根目录,并处理递归 Makefile 的情况。
有哪些泛型方法需要实现?
需要实现四个泛型方法:project-root、project-files、project-ignores 和 project-external-roots。
如何将自定义后端注册到 project-find-functions hook 中?
可以使用 (add-hook 'project-find-functions #'project-makefile-try t) 将自定义后端注册到 hook 中。
配置完成后,如何在项目中切换和搜索文件?
配置完成后,用户可以使用 C-x p p 切换项目,C-x p f 跳转文件,C-x p g 搜索文本。