是否存在支持搜索时过滤注释内容的Atom编辑器插件?
现有插件情况
- 目前Atom公开插件生态中没有专门实现该功能的成熟工具,你没有检索到相关插件属于正常情况,自行开发不存在做重复工作的问题。
临时替代方案
如果暂时不想开发插件,可以直接用正则匹配在现有搜索功能上实现筛选效果,开启Atom搜索的正则模式即可:
- 仅匹配注释内的关键词:使用正则
/(\/\/.*搜索关键词.*)|(\/\*[\s\S]*?搜索关键词[\s\S]*?\*\/)/,可覆盖ES6的单行//注释、多行/* */注释两种场景 - 仅匹配非注释的代码内容:使用反向排除逻辑的正则,先过滤所有注释块再匹配关键词,可直接规避注释内的命中结果
自定义插件开发思路
Atom内置的tree-sitter语法解析器已经天然支持区分ES6的代码节点和注释节点,开发时不需要自行实现语法解析,只需要做少量二次开发即可:
- 调用
tree-sitter的API拉取当前搜索范围内所有文件的语法节点,筛选出所有类型为comment的节点的行/列范围 - 对官方默认搜索插件
find-and-replace返回的所有命中结果,和上述注释节点范围做位置比对 - 在搜索面板新增三个筛选选项:全部匹配、仅匹配代码、仅匹配注释,根据用户选择过滤展示命中结果即可
整体开发量很小,和你预估的实现难度一致。
内容的提问来源于stack exchange,提问作者The Software Barbarian
相关产品推荐
相关产品推荐

