SuperAPI AI 工具集

code-indexer

编程与开发

查看项目

更新于 10-16 05:25

技能介绍

Code Indexer 是一个本地代码索引与语义搜索工具,面向代码库提供快速代码搜索、定义查找和代码库导航能力,其实现基于简单的模式匹配与类 AST 分析。

【用途】 用于在代码库中查找函数或类定义、搜索代码内容、定位符号引用,以及分析单个文件的导入导出结构,帮助理解项目组织方式。

【主要能力】

  • 索引代码库
  • 搜索符号或函数
  • 查找定义
  • 查找引用/使用位置
  • 分析文件的 import/export
  • 获取项目结构

【支持的语言】

  • JavaScript/TypeScript:完整支持(ES6+ 导入导出、类、函数)
  • Python:完整支持(导入、类、函数)
  • Java:完整支持(导入、类、方法)
  • Go:完整支持(导入、函数、方法)
  • Rust:完整支持(use、fn、struct、impl)
  • C/C++:基础支持(#include、函数声明)
  • 其他:对任意文本文件进行基础模式匹配

【使用方式】 无需额外安装,使用内置 Node.js 模块与 shell 命令(grep、find、sed)。可选安装 ripgrep 以加快搜索:

  • macOS:brew install ripgrep
  • Linux:apt install ripgrep 或 dnf install ripgrep

常用命令:

  • 索引代码库:node /job/.pi/skills/code-indexer/index.js "/path/to/project"
  • 搜索符号/函数:node /job/.pi/skills/code-indexer/search.js "functionName"
  • 查找定义:node /job/.pi/skills/code-indexer/find-def.js "ClassName" "/path/to/project"
  • 查找引用/使用:node /job/.pi/skills/code-indexer/find-refs.js "functionName" "/path/to/project"
  • 分析文件导入/导出:node /job/.pi/skills/code-indexer/analyze.js "/path/to/file.js"
  • 获取项目结构:node /job/.pi/skills/code-indexer/structure.js "/path/to/project"

搜索、定义、导入分析等结果以 JSON 格式输出,包含文件路径、行号、类型、上下文、匹配内容,以及总数和耗时等字段。

【配置】

  • 默认遵循 .gitignore;设置环境变量 CODE_INDEXER_IGNORE_GIT=0 可禁用该行为。
  • 索引缓存位于 /tmp/code-indexer-cache/,用于加速重复搜索;可用 node /job/.pi/skills/code-indexer/clear-cache.js 清除缓存。

【典型工作流】

  • 理解代码库结构:查找与认证等主题相关的文件、类与函数。
  • 查找函数定义位置,例如 calculateTotal。
  • 查找某个配置变量的全部使用位置。
  • 分析新文件的作用,获取其导入导出与结构。

【与其他技能的集成】

  • 与 memory-agent 配合:存储关于项目架构的发现。
  • 与 git-ops 配合:在切换分支后理解变更。
  • 与 browser-tools 配合:为基于网页的代码查看器中的代码编写文档。

【限制】

  • 无语义理解,仅模式匹配。
  • 不解析动态导入或复杂类型推断。
  • 大型代码库初次索引可能较慢。
  • 部分语言特性可能无法识别。

【提示】

  • 安装 ripgrep 可提升搜索速度,工具在可用时会自动使用。
  • 类型定义方面,可先用 find-def.js 再用 find-refs.js 获得完整视图。
  • 大型项目可使用 --limit 限制结果数量:search.js "query" --limit 20