Token导航 LogoToken导航TokenDH.com
Claude Index Search Android Studio logo
开发工具未说明官方级别未说明来源级核验

Claude Index Search Android Studio

MCP Server

ast-index 是一个快速的多语言代码搜索工具,支持34种编程语言,提供高效的代码索引和搜索功能,适用于大型项目和代码库。

工具数

20

提示词数

0

GitHub Stars

352

资源数

0
代码导航代码搜索开发工具Claude命令行工具ClaudeCursorWindsurfCline

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

defendend

提供方

defendend

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

ast索引v3.41.0

34种编程语言的快速代码搜索CLI。原生Rust实现。

支持的项目

平台语言文件扩展名
安卓系统Kotlin,Java.kt, .java
iOSSwift、Objective-C.swift, .m, .h
Web/前端TypeScript、JavaScript.ts, .tsx, .mts, .js, .jsx, .mjs, .cjs, .vue, .svelte
Web/前端CSS、SCSS、Less.css, .pcss, .postcss, .scss, .less
系统生锈.rs
系统Zig.zig, .zon
后端C#、Python、Go、C++、Scala.cs, .py, .go, .cpp, .cc, .c, .hpp, .scala, .sc
后端PHP.php, .phtml
脚本Ruby、Perl.rb, .pm, .pl, .t
移动飞镖/颤振.dart
架构协议缓冲区,WSDL/XSD.proto, .wsdl, .xsd
企业BSL(1C:企业).bsl, .os
脚本Lua、Bash.lua, .sh, .bash, .zsh
功能性Elixir.ex, .exs
数据SQL,R.sql, .r, .R
科学Matlab.m
JVMGroovy.groovy, .gradle
函数式通用Lisp.lisp, .lsp, .cl, .asd
游戏GDScript(Godot).gd

自动检测项目类型。

项目设置指南 --安装、命令和使用示例。

安装

自制(macOS/Linux)

brew tap defendend/ast-index
brew install ast-index

Winget(Windows)

winget install --id defendend.ast-index

从科特林指数迁移

如果你有旧的 kotlin-index 安装:

brew uninstall kotlin-index
brew untap defendend/kotlin-index
brew tap defendend/ast-index
brew install ast-index

来源

git clone https://github.com/defendend/Claude-ast-index-search.git
cd Claude-ast-index-search
cargo build --release
# Binary: target/release/ast-index (~44 MB)

故障排除:安装时出现语法错误

如果 brew install ast-index 合并冲突错误失败(`,解析输出,并返回 紧凑的受TOON启发的文本blob(≈比漂亮的JSON少2-3倍的令牌)。代理 可以通过以下方式选择每次调用使用原始JSON format: "json"` 当他们需要结构化时 解析。

构建:

cargo build --release -p ast-index-mcp
# Binary: target/release/ast-index-mcp

外露工具(20):

工具目的
search跨文件、符号、导入和内容的通用搜索
symbol按精确名称/glob/kind过滤器查找符号(精确替代 search)
class按名称或模式查找类、接口、协议、枚举、结构
outline文件的结构大纲(读取>500行文件前调用)
usages符号的每次使用(文件:行+上下文)
callers函数的直接调用者
call_tree递归调用树,深度可配置
implementations实现/扩展接口或父级的类型
hierarchy全继承树——一次调用中的超类+子类
refs一次性定义+导入+使用
imports导入/包含源文件
api模块的公共API(重构和变更日志准备)
changed自基分支以来发生更改的符号(代码审查)
module查找与模式匹配的模块
deps模块依赖关系
dependents反向deps——谁依赖此模块
find_file按名称模式查找文件
stats项目类型、计数、数据库大小、额外根
rebuild完全重新索引(慢速--首选 update)
update增量重新索引(快速)

每个代理的设置说明: docs/mcp-setup.md.

Gemini CLI

gemini skills install https://github.com/defendend/Claude-ast-index-search.git --path plugin/skills/ast-index

基于规则的通用代理

添加 .cursor/rules 或项目特定的代理规则:

Use `ast-index` CLI for fast code search. Run `ast-index rebuild` before first use.
Available commands: search, class, implementations, usages, callers, call-tree, deps, outline, deprecated.

______________________________________________________________________

💝 支持发展

![Support on Boosty](https://boosty.to/ast_index/donate)

______________________________________________________________________

命令(46+)

基于Grep(无需索引)

ast-index todo [PATTERN]           # TODO/FIXME/HACK comments
ast-index callers        # Function call sites
ast-index provides           # @Provides/@Binds for type
ast-index suspend [QUERY]          # Suspend functions
ast-index composables [QUERY]      # @Composable functions
ast-index deprecated [QUERY]       # @Deprecated items
ast-index suppress [QUERY]         # @Suppress annotations
ast-index inject             # @Inject points
ast-index annotations         # Classes with annotation
ast-index deeplinks [QUERY]        # Deeplinks
ast-index extensions         # Extension functions
ast-index flows [QUERY]            # Flow/StateFlow/SharedFlow
ast-index previews [QUERY]         # @Preview functions
ast-index usages           # Symbol usages (falls back to grep)

基于索引(需要重建)

ast-index search            # Universal search
ast-index file 
           # Find files
ast-index symbol             # Find symbols
ast-index class              # Find classes/interfaces
ast-index symbol             # Find any symbol by name
ast-index implementations 
 # Find implementations
ast-index hierarchy         # Class hierarchy tree
ast-index usages           # Symbol usages (indexed, ~8ms)

模块分析

ast-index module 
         # Find modules
ast-index deps             # Module dependencies
ast-index dependents       # Dependent modules
ast-index unused-deps      # Find unused dependencies (v3.2: +transitive, XML, resources)
ast-index api              # Public API of module

模块路由——两个模块之间的依赖路径

显示模块A如何通过依赖关系图到达模块B:

# Shortest path (default)
ast-index module-route --from core.utils --to features.payments.api

# All simple paths, filtered to api edges only
ast-index module-route --from app --to core.db --all --via-kind api

# JSON output — machine-readable, no ANSI
ast-index module-route --from app --to core.db --format json

# Mermaid diagram (paste into any markdown renderer)
ast-index module-route --from app --to core.db --format mermaid

# Graphviz DOT
ast-index module-route --from app --to core.db --format dot

# Gradle-style module names work too
ast-index module-route --from :app --to :core:utils

选项:

  • --all --返回所有简单路径,而不是单个最短路径
  • --via-kind --过滤器遍历到一种边类型(默认值: all)
  • --max-paths --在以下情况下限制返回路径 --all 已设置(默认值:50)
  • --max-depth --以跳数为单位的路径长度上限(默认值:20)
  • --timeout-ms --挂钟保护(毫秒)(默认值:5000)

XML和资源分析

ast-index xml-usages        # Find class usages in XML layouts
ast-index resource-usages     # Find resource usages (@drawable/ic_name, R.string.x)
ast-index resource-usages --unused --module   # Find unused resources

文件分析

ast-index outline            # Symbols in file
ast-index imports            # Imports in file
ast-index changed [--base BRANCH]  # Changed symbols (git diff)

iOS特定命令

ast-index storyboard-usages   # Class usages in storyboards/xibs
ast-index asset-usages [ASSET]       # iOS asset usages (xcassets)
ast-index asset-usages --unused --module   # Find unused assets
ast-index swiftui [QUERY]            # @State/@Binding/@Published props
ast-index async-funcs [QUERY]        # Swift async functions
ast-index publishers [QUERY]         # Combine publishers
ast-index main-actor [QUERY]         # @MainActor usages

Perl特定命令

ast-index perl-exports [QUERY]       # Find @EXPORT/@EXPORT_OK
ast-index perl-subs [QUERY]          # Find subroutines
ast-index perl-pod [QUERY]           # Find POD documentation (=head1, =item, etc.)
ast-index perl-tests [QUERY]         # Find Test::More assertions (ok, is, like, etc.)
ast-index perl-imports [QUERY]       # Find use/require statements

指标管理

ast-index init                     # Initialize DB
ast-index rebuild [--type TYPE]    # Full reindex
ast-index update                   # Incremental update
ast-index stats                    # Index statistics
ast-index version                  # Version info

语言特定功能

Types/JavaScript(v3.9中的新功能)

支持的元素:

  • 类、接口、类型别名、枚举
  • 类方法(构造函数、getter/setter、静态、异步)
  • 类字段/属性,私有 #members,抽象方法
  • 函数(常规、箭头、异步)
  • React组件和钩子(useXxx)
  • SFC视图(`` 提取)
  • Svelte组件
  • 装饰器(@控制器、@可注射等)
  • 命名空间、常量、导入/导出
ast-index class "Component"        # Find React/Vue components
ast-index search "use"             # Find React hooks
ast-index search "@Controller"     # Find NestJS controllers
ast-index class "Props"            # Find prop interfaces

Rust(v3.9中的新功能)

支持的元素:

  • 结构、枚举、特征
  • Impl块(impl Trait for Type)
  • 函数、宏(macro_rules!)
  • 类型别名、常量、静态值
  • 模块、使用语句
  • 派生属性
ast-index class "Service"          # Find structs
ast-index class "Repository"       # Find traits
ast-index search "impl"            # Find impl blocks
ast-index search "macro_rules"     # Find macros

Ruby(v3.9中的新功能)

支持的元素:

  • 类、模块
  • 方法(def,def self)
  • RSpec DSL(描述、它、让)
  • Rails模式(has_many、验证、作用域、回调)
  • 要求声明,包括/扩展
ast-index class "Controller"       # Find controllers
ast-index search "has_many"        # Find associations
ast-index search "describe"        # Find RSpec tests
ast-index search "scope"           # Find scopes

C#(v3.9中的新功能)

支持的元素:

  • 类、接口、结构、记录
  • 枚举、代表、事件
  • 方法、属性、字段
  • ASP。NET属性(@ApiController、@HttpGet等)
  • Unity属性(@SerializeField)
  • 命名空间,使用语句
ast-index class "Controller"       # Find ASP.NET controllers
ast-index class "IRepository"      # Find interfaces
ast-index search "[HttpGet]"       # Find API endpoints
ast-index search "MonoBehaviour"   # Find Unity scripts

Dart/Flutter(v3.10中的新功能)

支持的元素:

  • 带有Dart 3修饰符的类(抽象类、密封类、最终类、基类、接口类、混合类)
  • 混合、扩展、扩展类型
  • 使用机具/工具增强枚举
  • 函数、构造函数、工厂构造函数
  • 取/放、类型定义、属性
  • 进口/出口
ast-index class "Widget"           # Find widget classes
ast-index class "Provider"         # Find providers
ast-index search "mixin"           # Find mixins
ast-index implementations "State"  # Find State implementations
ast-index outline "main.dart"      # Show file structure
ast-index imports "app.dart"       # Show imports

python

ast-index class "ClassName"        # Find Python classes
ast-index symbol "function"        # Find functions
ast-index outline "file.py"        # Show file structure
ast-index imports "file.py"        # Show imports

ast-index class "StructName"       # Find structs/interfaces
ast-index symbol "FuncName"        # Find functions
ast-index outline "file.go"        # Show file structure
ast-index imports "file.go"        # Show imports

演出

大型Android项目的基准测试(约29k个文件,约300k个符号):

命令Rustgrep加速
导入0.3毫秒90毫秒260x
家属2ms100ms100倍
deps3ms90ms90倍
1ms90ms90倍
搜索11毫秒280毫秒14倍
使用时间8ms90ms12倍

尺寸比较

度量RustPython
二进制~44 MB~273 MB(venv)
数据库大小180 MB~100 MB
符号299393264023
参考文献900079438208

建筑

  • grep搜索器 --用于快速搜索的ripgrep内部
  • SQLite+FTS5 --全文搜索索引
  • 人造丝 --并行文件解析
  • 忽略 --gitignore感知目录遍历

数据库模式

files (id, path, mtime, size)
symbols (id, file_id, name, kind, line, signature)
symbols_fts (name, signature)  -- FTS5
inheritance (child_id, parent_name, kind)
modules (id, name, path)
module_deps (module_id, dep_module_id, dep_kind)
refs (id, file_id, name, line, context)
xml_usages (id, module_id, file_path, line, class_name, usage_type, element_id)
resources (id, module_id, type, name, file_path, line)
resource_usages (id, resource_id, usage_file, usage_line, usage_type)
transitive_deps (id, module_id, dependency_id, depth, path)
storyboard_usages (id, module_id, file_path, line, class_name, usage_type, storyboard_id)
ios_assets (id, module_id, type, name, file_path)
ios_asset_usages (id, asset_id, usage_file, usage_line, usage_type)

配置文件

创建 .ast-index.yaml 在项目根目录中配置ast索引:

# Force project type (useful when auto-detection fails)
project_type: bsl

# Additional directories to index
roots:
  - "../shared-lib"
  - "../common-modules"

# Directories to exclude from indexing
exclude:
  - "vendor"
  - "build"
  - "node_modules"

# Include files ignored by .gitignore
no_ignore: false

所有字段都是可选的。CLI标志覆盖配置文件值。

例子

1C:企业(BSL)项目:

project_type: bsl

带有共享库的Monorepo:

project_type: android
roots:
  - "../core"
  - "../network"

包含要跳过的生成代码的项目:

exclude:
  - "generated"
  - "proto/gen"

更新日志

3.41.0

  • Codex和Cursor插件打包 --添加了一流的Codex和Cursor清单、回购本地市场、特定于Cursor的项目规则/初始化器命令和验证脚本,使代理打包与发布版本同步。现有的Claude插件负载保持不变。
  • 添加 module-route 命令 --找到两个模块之间的传递依赖路径。支持最短(BFS)和所有路径(迭代DFS)模式,四种输出格式(text, json, mermaid, dot),边缘类型过滤(--via-kind api|implementation|all),可配置的深度和路径上限,以及挂钟超时保护。接受Gradle样式的模块名称(:core:utils, core/utils, core.utils 全部解析到同一模块)
  • 修复 module-route --all 当存在直边时,在大型图上返回“无路径” --DFS按字母顺序迭代每个帧的边,依此类推 :app 对于许多兄弟姐妹,它可能会在达到按字母顺序排列的较晚目标之前,超过2000毫秒的超时时间来探索诱饵子树。现在,每一帧的边缘都被重新排序,因此任何直接指向的边缘 to 首先进行处理;在任何深度递归之前记录1步直接路径。由于超时或 max_paths,呈现的消息是这样说的(truncated_timeout / truncated_max_paths)而不是误导性的“无依赖路径”
  • 表面 module-route --all 搜索进度和建议 --timeout-ms --DFS现在跟踪 nodes_visited, edges_explored, max_depth_reached,以及 elapsed_ms truncated text/JSON输出包括这些,以及一个加倍和夹紧的 suggested_timeout_ms 因此,用户可以判断搜索是否已用尽时间,并知道下一个要尝试的值。默认 --timeout-ms 从2000提高到5000,为真正的Android单仓库图提供更多开箱即用的空间
  • 双向修剪 module-route --all 在大型图形上 --在DFS之前,从以下位置运行反向BFS to 计算 dist_to[node] (从每个节点到 to).DFS跳过不在中的任何子项 dist_to (无法达到目标)和任何孩子 current_depth + dist_to[child] > max_depth (无法在预算范围内完成)。在一个包含1000个模块的Gradle项目中 :app 展开到约150个直接deps,这将“DFS达到5s超时,不返回任何内容”变为“在\dependencies = wrapper(...) [+ wrapper(...)]* 分配块(并行平衡扫描+行注释条),因此从 project("...") 在注释、字符串文字或无关代码中不能泄漏。每个文件 (module_id, dep_id) HashSet保持包装器锚定正则表达式的真实性 dep_kind (api/compileOnly/…)当两者在同一边缘发射时。回归测试包括(1) deps(externals) + deps(project, project, project) 链条和(2)诱饵 project(...)` 注释中的文本和Kotlin字符串文字

3.40.2

  • 修复Windows版本构建被树保姆scss 1.0.0破坏的问题 --已发布的crate硬编码 -Wno-unused-parameterbuild.rs,哪个MSVC cl.exe 拒绝与 error D8021: invalid numeric argument,杀死了整个Windows+矩阵构建(从未发布过v3.40.0和v3.40.1版本工件)。Upstream master从2024年4月26日开始进行平台条件修复,但从未剪切1.0.1;固定通孔 [patch.crates-io] 对该承诺
  • 将GitHub操作升级到非弃用版本actions/checkout@v4 → v6, actions/setup-node@v4 → v6, actions/upload-artifact@v4 → v7, actions/download-artifact@v4 → v7.消除Node.js 20弃用警告(Node.js 20将于2026年9月16日从运行程序中删除)

3.40.1

  • 解析自定义Gradle DSL (project(":path")) 依赖关系(#33) --以前索引器只识别 api/implementation/compileOnly/testImplementation 作为依赖配置。可包裹的自定义DSL project(...) 在不同的标识符下(例如Forma deps(project(":foo")), kapt(project(...)), classpath(project(":buildSrc")))被默默地忽略了。Gradle解析器现在接受任何 (project(":path")) 形式,所以 ast-index deps / dependents / module 正确覆盖自定义DSL上的Android项目。感谢@AndVl1的修复

3.40.0

  • CSS/SCSS/PCSS/语言支持较少 --基于树的解析器 .css, .pcss, .postcss (通过CSS语法), .scss,以及 .less已索引:类选择器(.foo),id选择器(#bar),CSS自定义属性(--var),SCSS变量($primary),变量更少(@brand), @mixin/@function/%placeholder (SCSS), .mixin() 定义(更少), @keyframes,以及 @import/@use/@forward 路径。 ast-index file 自动遍历新的扩展名。FTS5代币化处理 $, @, --, % 作为分隔符,所以 search primary 发现 $primarysearch brand 发现 @brand
  • 修复#32: hierarchy 在50时自动截断ast-index hierarchy "BaseQueryService" 仅按字母顺序返回前50个孩子(例如A→ E) 在125个层次结构中,60%的真实子类在没有警告的情况下丢失。命令现在接受 --limit (默认值为200),在显示的切片旁边报告总计数(Children (50 of 125 shown)),并打印黄色 Truncated. 确切地暗示 --limit 查看所有结果所需的值

3.39.0

  • Zig语言支持 --基于树形图的解析器 .zig.zon 扩展, ProjectType::Zig 自动检测通过 build.zig / build.zig.zon,集成测试涵盖fn/struct/field/测试块符号提取
  • MCP服务器扩展到20个工具 --添加 symbol, class, hierarchy, imports, api, changed, module, deps, dependents, call_tree 在原来的10号之上。涵盖了精确的符号查找、文件上下文、模块级导航和代码审查工作流,而不需要多个 ast-index 命令shell。看 docs/mcp-setup.md
  • --walk-up / AST_INDEX_WALK_UP 选择加入monorepos --启用后,读取命令更喜欢任何现有的父目录索引,而不是嵌套的项目/VCS标记。当子项目有自己的时很有用 .git / Cargo.toml / settings.gradle 但共享根级别索引。默认关闭——避免意外扩大父索引(#30)
  • 修复#25:SQL项目检测 --包含以下内容的文件夹 .sql 文件现在报告 ProjectType::Sql 而不是 Unknown,与README所宣传的SQL支持相匹配
  • 门控 Time: / Total time: 输出落后 --verboserebuildupdate 默认情况下不再打印时间线,保持代理输出干净。通过 --verbose 查看每个阶段的计时
  • 数据库模式现已记录在案 --看 docs/db-schema.md 对于完整的ER图,设计决策(邻接表与物化路径,为什么 refs.name TEXT不是FK),以及常见的查询模式
  • 烟雾测试+基准测试工具scripts/smoke.sh 针对发布二进制文件运行六个端到端CLI场景(包括性能预算场景); scripts/check-pr.sh 链构建→ 测试→ 烟→ PR前验证的台架编译检查。看 docs/smoke-testing.mddocs/benchmarks.md
  • 基于属性的解析器测试tests/parser_proptest.rs 练习5种语言×3个属性(无恐慌/确定性/行边界),每个属性有64个随机案例,使用 proptest = "1"
  • 60+新的集成测试 --横跨 tests/files_command_tests.rs, tests/indexer_detection_tests.rs, tests/management_query_tests.rs, tests/zig_tests.rs,加上涵盖MCP argv调度(20)、格式整形器(15)和根查找逻辑(15)的内联单元测试
  • 贡献者指南CLAUDE.md 回购根和七条重点规则 .claude/rules/ (架构、命令、解析器、提交、测试、发布、验证)为AI编码代理的代码库提供了一致的规范。三个代理配置文件 .claude/agents/ (bug修复、研究、审查)对可重用的工作流进行编码

3.38.1

  • 修复额外根下搜索输出中的模糊路径 --何时 add-root 指向主要项目之外, search/symbol/class/implementations/refs/hierarchy/usages 仅打印存储的相对路径(例如。 src/main/java/.../BClass.java)没有指示哪个根拥有它。代理默认使用主项目,无法打开该文件。现在,当配置了任何额外的根时,通过探测磁盘上的每个根(先是主根,然后是额外根),将索引支持的结果解析为绝对路径。单根输出不变

3.38.0

  • 修复 update 清除额外根目录下的文件update_directory_incremental 只遍历主根,每次运行时将所有额外的根文件标记为已删除。现在行走初级+每 extra_root 根据元数据,计算每个根的相对路径以进行匹配 rebuild的存储方案。在一个111k文件的项目中,每删除一个85k文件 update

3.37.1

  • 子项目模式现在对模块、deps、XML布局、资源、故事板和资产进行索引 --以前 cmd_rebuild_sub_projects 仅索引源文件,默默跳过模块检测、依赖关系图、Android XML/资源和iOS故事板/资产。现在,所有从子项目漫游中收集的构建文件、布局文件和资产目录都在主循环后进行处理,与单个项目重建的行为相匹配
  • ya.make 在项目类型检测中得到认可 --目录与 ya.make (并且没有其他构建系统标记)现在被检测为C++项目,而不是Unknown,从而改善了monorepo子项目中特定类型的行为

3.37.0

  • outline 现在所有语言都使用树形图 --Perl、Python、Go、C++、Kotlin以前使用过正则表达式回退,但结果不准确。现在,通过用于索引的相同树型解析器进行路由,并通过以下方式进行通用回退 FileType::from_extension 涵盖约30种语言。 outline 仍然可以在没有数据库的情况下工作,动态解析文件(每个文件约5-50ms,例如1806行Kotlin文件,包含1298个符号→ 47ms)
  • python import X as Y 现已编入索引refs 以前错过 import sqlalchemy as sa 同时发现 from sqlalchemy import orm.Tree sitter查询扩展为同时发出原始模块名称和别名 Import 符号
  • ya.make 构建系统支持:

- ya.make 在单目录遍历过程中被识别为模块标记的文件 - 模块键使用相对于外部存储库根的路径,以便 PEERDIR(...) 条目(与回购根相关)可以通过文字查找进行匹配 - PEERDIR(...) 解析器处理具有空格分隔路径的单行和多行块,发出具有 dep_kind=peerdir

  • Python依赖关系解析 pyproject.toml / setup.py:

- [project] dependencies = [...] (第621页) - [tool.poetry.dependencies] (跳过 python 外部封装,仅匹配内部模块) - install_requires=[...]setup.py/setup.cfg - 剥离PEP 508版本说明符、附加项和标记,仅获取包名称 - 在真实的Python项目上验证:检测到126个模块/267个deps

  • Dep索引在Android上不再受限制 --the Indexing module dependencies... 该步骤仅在检测到项目为Android时运行,默默跳过Java/Python/ya.make monorepos。现在,无论构建系统如何,只要索引中有任何模块,都会运行
  • include config现在总是通过作用域路径路由 --以前a include 仅当触发自动切换到子项目模式时(≥2个子项目和≥65k文件),才允许列表生效。小型项目 include set掉到了主干上,主干穿过了整个根,默默地忽略了过滤器。现在 include 始终强制只对列出的目录进行范围行走,并使用清晰的 Honoring include config (N paths) 消息
  • 嵌套 include 路径现在确实有效 --以前 include: [smart_devices/tools/burn_data] 将扩展到最高级别 smart_devices/ 目录(因为 find_sub_projects 仅按名称匹配直接子目录)。一个300路径的配置最终对整个树进行了索引,因为每个条目都与外部目录匹配。现在,每个包含条目都按原样获取,并成为其自己的作用域根-- cmd_rebuild_sub_projects 完全按照列出的路径行走,没有更宽的路径。子项目显示对嵌套条目使用相对路径
  • .h 文件路由detect_h_file_objc 晋升为 pub 所以 outline 可以使用与索引相同的ObjC/C++自动检测

3.36.2

  • 发布版本检查

3.36.1

  • watch 命令:按项目分组以防止重复的观察者

3.36.0

  • Monorepo排除/包括支持:

- exclude config现在在子项目模式下工作——以前在自动切换到子项目时被默默忽略 - exclude 现在使用完整的gitignore语法(*, **, ?,基于路径的模式,如 proto/gen) - 额外的根现在用索引 exclude 筛选器(丢失) - 新 include 允许列表 .ast-index.yaml --只索引匹配的目录,跳过其他所有内容。非常适合需要少量dirs的大型monorepos - 新CLI标志: --include, --exclude, --path 为了 rebuild 命令

3.35.0

  • BSL修复 (第19期,作者@colegero):

- 模块索引 --1C模块现在已从目录路径中提取(CommonModules/X/X, Documents/Y/Документ.Y等),修复 Modules: 0 在1C配置上。支持35+1C元数据集合。 - outline 对于BSL文件 --路线 .bsl/.os 到树型解析器(又回到了Kotlin正则表达式→ 未找到符号) - 查询计划优化 --附加综合指数 idx_refs_name_file_line +早期物化 find_references 通过子查询。大型BSL数据库(1200多万参考文献) usages/callers 从30s超时到\> 正确,而不是从内部断裂 >`

  • inject 支持@Autowiredinject 命令搜索两者 @Inject@Autowired 注释(Spring DI)
  • 部分匹配 implementationsimplementations "Service" 现在找到以下实现 UserService, PaymentService等。通过包含与相关性排名的匹配
  • 重叠验证 add-root --在项目根目录或其父目录中添加根目录时发出警告;使用 --force 覆盖

3.18.0

  • 专用Java解析器 --Java文件现在使用 tree-sitter-java 而不是通过Kotlin解析器路由;索引类、接口、枚举、方法、构造函数、字段和Spring注释(@RestController, @Service, @GetMapping等等)
  • Maven模块支持pom.xml 文件被识别为模块描述符; ` 提取为模块名称, ` 与本地模块匹配的条目
  • 改进了Java的调用树 --正则表达式模式现在可以检测Java风格的方法定义(void methodName(, String methodName(), this.method()super.method() 呼叫模式
  • 更新技能文档 --添加了Java/Spring示例,Maven支持说明,删除了不正确的通配符语法

3.17.5

  • 无标记文件 --已删除 .ast-index-root 标记;通过缓存中的现有索引数据库检测到项目根目录(项目目录中没有文件)

3.17.4

  • 目录范围搜索 --从子目录运行时,结果会自动限制在该子树中

3.17.3

  • --threads / -j 重建标志 --控制并行线程(例如。 -j 32 对于I/O成为瓶颈的网络文件系统)

3.17.2

  • 修复FUSE挂起自动检测quick_file_count 不再统计 .gitignore/.arcignore 每个目录,这会导致FUSE挂载的存储库挂起

3.17.1

  • --verbose 重建标志 --每个步骤(遍历、解析、数据库写入、锁定、模块、deps)的详细计时日志,用于诊断性能问题
  • 移除 init 命令rebuild 从头开始创建DB, init 是多余的
  • SQLite并发安全busy_timeout = 5000ms 防止“数据库锁定”错误;文件锁可防止在同一项目上进行并发重建

3.17.0

  • 自动子项目模式rebuild 当目录有65K+个源文件和2+个子项目目录时,自动切换到子项目索引
  • --sub-projects 旗帜 --大型monorepos的显式子项目模式,将每个子目录分别索引到一个共享数据库中
  • 扩展的VCS支持 --尊重 .gitignore.arcignore 在monorepos没有 .git 目录

3.16.3

  • FTS5前缀搜索修复search 不再在以下查询中崩溃 SlowUpstream;前缀 * 操作员现在正确地放置在FTS5报价之外
  • 扩展的VCS支持rebuild/search/grep 现在尊重 .gitignore.arcignore 在非git monorepos中,防止大型代码库挂起
  • 模糊搜索修复--fuzzy flag现在返回所有匹配结果(精确+前缀+包含),而不是仅在精确匹配时提前返回

3.16.0

  • restore 命令 --从a还原索引 .db 文件: ast-index restore /path/to/index.db

3.15.0

  • TypeScript类成员 --索引类方法(构造函数、getter/setter、静态、异步)、字段/属性、私有 #members和抽象方法;正确排除对象文字方法

3.14.0

  • map 命令 --紧凑型项目概述:按大小和符号种类计数的顶级目录; --module 用于深入了解类和继承
  • conventions 命令 --从索引代码库中自动检测架构模式、框架和命名约定
  • refs 命令 技能记录

3.13.4

  • Android索引性能 --消除4个冗余的文件系统遍历 rebuild;XML布局文件、在main walk中收集的资源文件、从DB查询的代码文件使用情况

3.13.3

  • iOS索引性能 --消除3次冗余的文件系统遍历 rebuild;故事板/xib文件和.xccassets目录现在收集在主行走中,swift文件资产使用情况从DB查询,而不是第四次行走

3.13.2

  • 修复 rebuild 失去多余的根add-root 路径现在被保留下来 rebuild (之前已与DB一起删除)

3.13.1

  • 修复插件技能发现 --添加 "skills" 字段到 plugin.json,修复调用时出现的“未知技能:ast-index”错误 /ast-index

3.13.0

  • Scala语言支持 --类、case类、对象、trait、enum(Scala 3)、def、val/var、类型别名的树型解析器,给定
  • 巴泽尔项目检测WORKSPACE, WORKSPACE.bazel, MODULE.bazel 作为项目根标记
  • 在非Android/iOS项目上重建速度提高4倍 --当没有平台标记时跳过XML布局、故事板、iOS资产、CocoaPods阶段(309秒→ 83有83k个文件)
  • Git默认分支检测 --正确解析 origin/trunk, origin/develop 来自符号ref,而不仅仅是main/master

3.12.0

  • 12种语言的树型AST解析 --将基于正则表达式的解析器替换为Kotlin、Java、Swift、ObjC、Python、Go、Rust、Ruby、C#、C++、Dart、Proto和TypeScript的树型解析器。解析现在基于真实的AST而不是正则表达式启发式算法——更准确的符号提取、对嵌套结构的正确处理和更少的误报
  • 分组 --help 输出 --命令分为8个逻辑类别(索引管理、搜索和导航、模块命令、代码模式、Android、iOS、Perl、项目配置),而不是简单的字母列表
  • 更新项目说明 --“多语言项目的快速代码搜索”

3.11.2

  • 修复 watch 大型项目指挥 --从kqueue切换到FSEvents(macOS)/inotify(Linux),修复了“打开的文件太多”错误

3.11.1

  • 修复 changed 命令 --自动检测默认git分支(origin/mainorigin/master)
  • 修复 api 命令 --接受带圆点的模块名称(例如。 module.namemodule/name)
  • 更新技能文档 --添加 --format json, unused-symbols, watch,多根命令

3.11.0

  • 快10倍 unused-deps --用基于索引的SQL查询替换文件系统扫描(WalkDir+read_to_string) refs 桌子。 core 模块(225个deps)现在可以在大约6秒内完成,而不是60秒+超时
  • 固定传递依赖逻辑 --正确检查 transitive_deps 表(api链可达性)而不是重新扫描符号
  • 多VCS支持 changed --自动检测VCS,自动选择基本分支(trunk 对于电弧, origin/main 对于git),规范化 origin/ 前缀
  • 从初始化命令中删除技能复制/initialize-* 不再将技能文件复制到项目目录

3.10.4

  • 大型项目索引速度提高2.6倍 --修复Dart解析器为每个类声明分配行向量的问题

3.10.2

  • 修复 changed 命令 --使用 merge-base 而不是直接显示差异,仅显示当前分支的变化
  • 多VCS支持 --自动检测电弧与git,使用正确的VCS命令

3.10.1

  • 修复索引挂在大型monorepos上的问题 --禁用符号链接跟踪,添加最大深度限制
  • 扩展排除目录 --添加 bazel-out, bazel-bin, buck-out, out, .metals, .dart_tool 以及更多
  • 更好的进度报告 --在每个块后输出,而不是每4个块后输出
  • GitHub操作发布工作流 --darwin-arm64、darwin-x8664、linux-x8664和windows-x8664的自动构建

3.10.0

  • 飞镖/颤振支撑 --索引和搜索Dart/Flutter代码库

- 带有Dart 3修饰符的类: abstract, sealed, final, base, interface, mixin class - 混合物: mixin Foo on Bar - 扩展和扩展类型(Dart 3.3) - 增强型枚举 with/implements - 函数、构造函数、工厂构造函数 - 取/放、类型定义、属性 - 进口/出口 - 多行类声明 - 文件类型: .dart

  • 20项新测试 --Dart解析器的全面测试覆盖率

3.9.3

  • 简化插件安装install-claude-plugin 现在呼叫 claude plugin marketplace addclaude plugin install 而不是手动复制文件
  • 更新README --插件安装说明现在使用官方 claude plugin CLI命令

3.9.2

  • 修复大型项目上的OOM崩溃 (70K+个文件)

- 批处理索引:以500个文件为单位解析并写入数据库,而不是将所有内容加载到内存中 - 限制人造丝线池,最多8条线,以限制峰值内存 - 跳过大于1 MB的文件(压缩/生成的代码) - 跳过ref解析器中超过2000个字符的行 - 将ref上下文截断为500个字符(不受限制——压缩的JS行导致12GB以上的数据库) - 将SQLite缓存从64 MB减少到8 MB

  • 硬编码目录排除 --始终跳过 node_modules, __pycache__, build, dist, target, vendor, .gradle, Pods, DerivedData, .next, .nuxt, .venv, .cache 等等,不管 .gitignore
  • 新项目类型检测 --前端(package.jsonpythonpyproject.toml)去吧(go.mod),生锈(Cargo.toml)
  • LazyLock正则表达式 --通过缓存的所有146个正则表达式编译 std::sync::LazyLock (正在按文件重新编译)

3.9.1

  • 性能修复 --基于grep的命令现在使用提前终止

- 命令如下 deeplinks, todo, callers 等发现后停止扫描 limit 结果 - 在大型代码库(29k文件:4-35s)上,速度提高了100-1000倍→ 10-50ms)

3.9.0

  • Types/JavaScript支持 --索引和搜索网络项目

- React:组件、钩子(useXxx)、JSX/TSX - Vue:SFC脚本提取,定义组件 - Svelte:组件道具提取 - NestJS/Angular:装饰器(@Controller,@Injectable,@Component) - Node.js:ES模块,CommonJS - 文件类型: .ts, .tsx, .mts, .js, .jsx, .mjs, .cjs, .vue, .svelte

  • Rust支持 --索引和搜索Rust代码库

- 结构、枚举、特征、impl块 - 函数、宏、类型别名 - 导出属性跟踪 - 文件类型: .rs

  • Ruby支持 --索引和搜索Ruby/Rails代码库

- 类、模块、方法 - RSpec DSL(描述、it、let、上下文) - Rails:关联、验证、作用域、回调 - 文件类型: .rb

  • C#支持 --索引和搜索。NET项目

- 类、接口、结构、记录 - ASP。NET:控制器、HTTP属性 - Unity:单一行为,序列化字段 - 文件类型: .cs

  • 探索代理 --深度代码调查与确认
  • 审核代理 --变更分析与影响评估
  • 63测试 --所有解析器的全面测试覆盖率

3.8.5

  • 文档 --为brew安装合并冲突错误添加了故障排除部分

3.8.2

  • 插件改进

- 添加了C++、协议缓冲区和WSDL/XSD参考文档 - 在SKILL.md中添加了“关键规则”部分,以更好地集成Claude - 立即初始化命令,将技能文档复制到项目中 .claude/ 目录 - 更新了插件描述,以包括所有支持的语言

3.8.1

  • 搜索命令修复-l/--limit 参数现在正确地限制了文件结果
  • 内容搜索search 命令现在还可以搜索文件内容(而不仅仅是文件名和符号)

3.8.0

  • Python支持 --索引和搜索Python代码库

- 指标: class, def, async def,装饰师 - 进口: import module, from module import name - 文件类型: .py - outlineimports 命令用于Python文件

  • Go支持 --索引和搜索Go代码库

- 指标: package, type struct, type interface, func,接收器的方法 - 导入:单个导入和导入块 - 文件类型: .go - outlineimports 命令适用于Go文件

  • 演出deeplinks 命令速度提高200倍(优化模式)

3.7.0

  • 调用树命令 --显示向上的完整呼叫层次结构(谁呼叫呼叫者)

- ast-index call-tree "functionName" --depth 3 --limit 10 - 适用于Kotlin、Java、Swift、Objective-C和Perl

  • --无忽略标志 --索引gignored目录,如 build/

- ast-index rebuild --no-ignore - 可用于查找生成的代码,如 BuildConfig.java

3.6.0

  • Perl支持 --索引和搜索Perl代码库

- 指标: package, sub, use constant, our 变量 - 继承: use base, use parent, @ISA - 文件类型: .pm, .pl, .t, .pod - 新命令: perl-exports, perl-subs, perl-pod, perl-tests, perl-imports - Grep命令现在搜索Perl文件: todo, callers, deprecated, annotations - imports 命令现在解析Perl use/require 陈述 - 作为模块索引的Perl包 module 命令 - 项目检测: Makefile.PL, Build.PL, cpanfile

3.5.0

  • 重命名为ast索引 --项目重命名自 kotlin-index

- 新CLI命令: ast-index (是 kotlin-index) - 新的自制水龙头: defendend/ast-index (是 defendend/kotlin-index) - 新回购: Claude-ast-index-search (是 Claude-index-search-android-studio)

3.4.1

  • 修复iOS中基于grep的命令 --6个命令现在可以在Swift/ObjC中使用:

- todo --在.swift/.m/.h文件中搜索 - callers --支持Swift函数调用模式 - deprecated --支持 @available(*, deprecated) 语法 - annotations --在Swift/ObjC文件中搜索(@ObjC、@IBAction等) - deeplinks --添加iOS模式(openURL、CFBundleURLSchemes、NSUserActivity) - extensions --支持Swift extension Type 语法

3.4.0

  • iOS故事板/xib分析storyboard-usages 在故事板和xibs中查找类用法的命令
  • iOS资产支持 --索引和搜索xcassets(图像、颜色), asset-usages 命令与 --unused 旗帜
  • SwiftUI命令swiftui 用于查找@State、@Binding、@Published、@ObservedObject属性的命令
  • 快速并发async-funcs 对于异步函数, main-actor @MainActor用法
  • 结合支持publishers 查找PassthroughSubject、CurrentValueSubject、AnyPublisher的命令
  • 可可豆/迦太基 --检测并索引Podfile和Cartfile中的依赖关系

3.3.0

  • iOS/Swift/ObjC支持 --自动检测项目类型并索引Swift/ObjC文件
  • Swift:类、结构、枚举、协议、actor、扩展、func、init、var/let、typealias
  • ObjC:@接口、@协议、@实现、方法、@属性、typedef、类别
  • 从Package.swift(.target、.testTarget、.binaryTarget)检测SPM模块
  • Swift/ObjC的继承和协议一致性跟踪

3.2.0

  • 添加 xml-usages 命令--查找XML布局中的类用法
  • 添加 resource-usages command--查找资源使用情况(可绘制、字符串、颜色等)
  • 添加 resource-usages --unused --在模块中查找未使用的资源
  • 更新 unused-deps 具有传递依赖性检查(通过api-deps)
  • 更新 unused-deps 带有XML布局使用检查
  • 更新 unused-deps 具有资源使用检查功能
  • 新标志: --no-transitive, --no-xml, --no-resources, --strict
  • 索引XML布局(在大型Android项目中使用5K+)
  • 索引资源(63K+资源,15K+使用量)
  • 构建可传递依赖缓存(11K+个条目)

3.1.0

  • 添加 unused-deps 命令--查找未使用的模块依赖项
  • 模块依赖关系现在默认索引(使用 --no-deps 跳过)

3.0.0(生锈)

  • 重大发布 --完成Rust重写,替换Python版本
  • 33个命令中有26个比Python快
  • 最高加速:进口(260倍),家属(100倍),deps/class(90倍)
  • 完整索引,参考文献超过90万
  • 固定的 hierarchy 多行类声明
  • 固定的 provides Java支持和后缀匹配

Python版本(1.0.0-2.5.2)

旧Python代码存档于 legacy-python-mcp/ 文件夹

2.5.2

  • 项目特定数据库:每个项目现在都有自己的索引数据库

2.5.1

  • 使用ripgrep进行基于grep的搜索,速度提高10-15倍

2.5.0

  • 添加 composables, previews, suspend, flows 命令

2.4.1

  • 修复 callers, outline, api 命令

2.4.0

  • 添加 todo, deprecated, suppress, extensions, api, deeplinks 命令

2.3.0

  • 添加 callers, imports, provides, inject 命令

2.2.0

  • 添加 hierarchy, annotations, changed 命令

2.1.0

  • 修复 class 命令,添加 update 命令

2.0.0

  • pip包、带typer+丰富的CLI、克劳德代码技能、MCP服务器

1.2.0

  • Java支持(树型Java),查找用法,查找实现

1.1.0

  • 增量索引,更好的模块检测

1.0.0

  • 初始版本:文件/符号/模块搜索,MCP服务器

许可证

麻省理工学院

目录标签

目录标签

代码导航代码搜索开发工具Claude命令行工具C本地部署多语言支持CLI工具

支持客户端

ClaudeCursorWindsurfCline

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

20

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP