高通 ADK 开发专属私有插件市场
npx claudepluginhub hyfhot/qualcomm-adk-plugins自动解析高通.x2p工程文件,并跨平台为Serena/clangd生成compile_commands.json的智能插件
高通 ADK 开发专属 Claude Code 插件市场,为 Qualcomm ADK (Audio Development Kit) 项目提供智能代码分析与重构能力。
自动解析高通 .x2p 工程文件,具备项目扫描、交互式配置提取,并为 Serena/clangd 生成极简配置的智能跨平台插件。
核心功能:
scan_adk_projects) - 自动扫描 ADK 根目录,列出所有可用 .x2p 项目get_x2p_configs) - 解析 .x2p 文件,获取所有可用配置名称(如 TRAN03H)uv 包管理器本插件支持两种安装方式:
如果您的 Claude Code 已配置插件市场,可以直接从市场安装:
# 克隆仓库
git clone https://github.com/hyfhot/qualcomm-adk-plugins.git
cd qualcomm-adk-plugins
./qualcomm-adk-plugins/plugins/x2p-parsergit clone https://github.com/hyfhot/qualcomm-adk-plugins.git
cd qualcomm-adk-plugins
# 方式A:将整个仓库作为插件源
# 在 Claude Code 设置中添加: ./qualcomm-adk-plugins/plugins/x2p-parser
cp -r plugins/x2p-parser ~/.claude/plugins/x2p-parser
插件安装后,需要在 Claude Code 中启用:
重启 Claude Code:安装新插件后需要重启使配置生效
验证插件状态:
# 检查插件是否加载成功
# 在 Claude Code 中输入:
/plugins list
.mcp.json 配置文件uv run --with mcp x2p_compdb_mcp.pygenerate_clangd_config 工具如需临时禁用插件,有以下几种方式:
// 注释掉或删除此行
// "./qualcomm-adk-plugins/plugins/x2p-parser"
# 在插件目录名后添加 .disabled 后缀
mv ~/.claude/plugins/x2p-parser ~/.claude/plugins/x2p-parser.disabled
直接删除或重命名 .mcp.json 文件:
mv ~/.claude/plugins/x2p-parser/.mcp.json ~/.claude/plugins/x2p-parser/.mcp.json.disabled
注意:禁用后需要重启 Claude Code 才能生效。
完全卸载插件的步骤:
rm -rf ~/.claude/plugins/x2p-parser
# 或删除整个仓库
rm -rf qualcomm-adk-plugins
# 如果之前运行过插件,会在 ADK 项目目录下生成以下文件
# 这些文件可以手动删除
rm -f /path/to/adk/project/.clangd
rm -f /path/to/adk/project/compile_commands.json
插件提供三个 MCP 工具:
扫描 ADK 根目录,返回所有可用的 .x2p 项目文件路径。
root_dir = "/path/to/adk/root"
解析指定的 .x2p 文件,返回所有可用的配置名称。
x2p_file_path = "/path/to/project.x2p"
解析 x2p 生成 compile_commands.json 和 .clangd,并隔离无关子项目。
# 方式A:直接传参
x2p_file_path = "/path/to/project.x2p"
output_dir = "/path/to/adk/root"
config_name = None # 使用默认配置
# 方式B:通过环境变量(推荐)
# 设置环境变量后无需传参
# ADK_ACTIVE_X2P=/path/to/project.x2p
# ADK_ROOT_DIR=/path/to/adk/root
# ADK_ACTIVE_CONFIG=TRAN03H
参数说明:
x2p_file_path:.x2p 工程文件的绝对路径(支持环境变量 ADK_ACTIVE_X2P)output_dir:ADK 项目根目录的绝对路径(支持环境变量 ADK_ROOT_DIR)config_name:配置名称(支持环境变量 ADK_ACTIVE_CONFIG)当分析 ADK C/C++ 代码时,工作流会自动:
触发条件:当用户要求分析、阅读、重构 C/C++ 代码,且项目包含 adk/、application_common/ 等高通特征目录时自动触发。
本插件采用分层架构 + 智能缓存解决 ADK 项目代码分析的难题:
传统方式会将所有宏和头文件路径写入每条编译命令,导致文件体积庞大(通常 10MB+)。本插件采用分层架构:
compile_commands.json:仅包含文件列表,无冗余
.clangd:全局注入宏定义和头文件路径
优化效果:
插件内置极速缓存校验:
.x2p_parser_cache.json 缓存文件插件自动将生成的配置文件加入 .gitignore:
.clangdcompile_commands.json.x2p_parser_cache.json插件会解析 .x2p 文件,提取以下信息:
-DDEBUG=1).c / .cpp 文件然后生成 .clangd 文件:
CompileFlags:
Add:
- "-xc"
- "-std=c11"
- "-Wall"
- "-DDEBUG=1" # 从 DEFS 提取
- "-D__ADK__" # 从 DEFS 提取
- "-I/path/to/include" # 从 INCPATHS 提取
- ...
Index:
Background:
Skip:
- "^earbuds/.*" # 智能屏蔽无关项目
- "^headset/.*" # 动态计算排除名单
ADK 是庞大的 Monorepo,包含 headset、earbuds、speakers 等多个子项目。通过分析源文件与 INCPATHS 的关系,动态生成 Skip 正则表达式:
.x2p 使用算法流程:
1. 遍历 ADK 根目录下所有顶层目录
2. 检查目录是否包含源文件(在 compile_commands.json 中)
3. 检查目录是否在 INCPATHS 中
4. 如果既不含源文件也不在包含路径中 → 加入 Skip 列表
5. 特别处理 adk/src/topologies 目录进行深度隔离