使用 recursive-search-references 来快速清理未使用的插件

什么是 recursive-search-references.el ?

有时候我们想知道某个Emacs插件是否依然在被使用?如果插件没有再被使用,我就想从Emacs配置文件中删除这个插件

通常我们会打开插件文件,找到插件的每个函数定义,然后传递给ripgrep去搜索,当所有函数都没有使用时我们才能放心删除这个插件,但是如果这个插件定义了很多函数,这个重复的过程就会非常痛苦。

recursive-search-references帮助你自动完成这个动作:

  1. 基于TreeSitter的AST扫描所有Emacs函数定义
  2. 通过ripgrep在Emacs配置目录下递归搜索,同时会排除插件目录自身的扫描
  3. 如果所有函数都没有被引用就提示你可以安全删除这个插件

recursive-search-references帮我快速清理那些很久之前添加但现在又很少使用的插件。

安装

  1. 安装tree-sitter
  2. 安装ripgrep
  3. 下载recursive-search-references.el并加载到load-path

把下面的代码添加到 ~/.emacs 中, 替换 <path-to-recursive-search-references>为 recursive-search-references.el 所在目录

(add-to-list 'load-path "<path-to-recursive-search-references>")
(require 'recursive-search-references)

使用

  • recursive-search-references : 在Emacs配置文件目录中搜索插件引用
12 个赞

话说 基于 tree-sitter 的语法高亮,可以用了吗?

我一直在用

1 个赞

感觉有点复杂,每种语言都要手动编译 ,emacs 怎么还没有 流行起来?我看 nvim 都是 主流配置了。 好像我们论坛 还没有系统性的配置文档

就我配置哪几种需要手动编译,其他语言都直接支持了呀。

很赞!treesitter一个很好的应用案例,勇哥真喜欢探索新东西👍🏻 nvim treesitter相关插件已经比较多了,treesitter和snippet结合起来之后有造出来的snippet可以更好的获取上下文信息,也是一个treesitter开发的方向

没太明白这个要怎么用呀,我应该调用 recursive-search-references 后,应该选择哪个文件夹呢?我试了几种,如 .emacs.d, .emacs.d/elpa/ivy, 返回的结果都是 no references in directory,但 ivy 我是一直用着的。

打开一个 .el 文件,启动命令 recursive-search-references , 然后选择最顶级的配置文件,比如 .emacs.d

recursive-search-references.el 会扫描 .el 文件的函数,并在 .emacs.d 中扫描是否有其他文件引用这些函数。

1 个赞

epkgs 这个包中有一个函数,可以查到各插件的 reverse dependencies: (epkg-reverse-dependencies "dash")

1 个赞

这个不是一个概念,这个包是所有上传的包查询依赖。

我的这个插件是暴力搜索emacs配置目录,查找引用的地方。