读:为 project.el 写一个自定义后端

💡 原文中文,约3200字,阅读约需8分钟。
📝

内容提要

本文介绍了如何为 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 搜索文本。

➡️

继续阅读