Android Code Navigation
面向 Android 项目的 VSCode 代码跳转插件,为 Java / Kotlin 源码提供类似 Android Studio 的跳转体验。适用于任意 Gradle / Android source set 布局的工程,不绑定特定仓库。
当前能力
- 点击类名跳转到定义
- 点击简单方法调用跳转到定义
- 支持工作区级符号索引
- 支持手动重建索引和清空索引
- 支持查看当前光标下的候选符号
- 支持接口类和接口方法上的实现跳转 CodeLens,点击后弹窗选择实现位置
- 支持当前类内变量使用处跳定义、变量定义处查看引用
- 支持 Java enum 常量在 enum 类内跳定义和查看引用
- 支持
this.xxx 和 enum 类名限定访问优先跳到类级字段/常量
- 修正
return ENUM_CONSTANT; 被误判为局部变量声明导致 enum 常量无法跳转的问题
适配范围
- 语言:Java、Kotlin
- source set:严格识别
src/**/java 与 src/**/kotlin 结构,自动覆盖 main、debug、release、test、androidTest 以及各类差异化 flavor 目录
- 非标准源码路径可通过
androidNav.sourceRoots 配置补充
工程结构
src/extension.ts:VSCode 入口,注册 provider 和命令
src/navigation.ts:索引、解析、候选排序和跳转逻辑
package.json:插件贡献点和配置
tsconfig.json:TypeScript 编译配置
开发
在工程根目录执行:
npm install
npm run compile
运行方式
- 在 VSCode 中打开这个工程
- 按
F5 启动 Extension Development Host
- 打开一个包含 Java / Kotlin 文件的 Android 工作区
- 点击类名或方法名验证跳转
配置
dreamerNav.sourceRoots
dreamerNav.exclude
dreamerNav.preferLanguageServer
dreamerNav.enableKotlinExtensionFunctions
安装后验证
安装新版 .vsix 后建议执行一次 Developer: Reload Window,然后运行:
Android Navigation: Show Index Status:确认已经索引到文件和符号
Android Navigation: Rebuild Index:手动重建索引
Android Navigation: Show Candidates:把光标放在类名或方法名上,查看当前 token 是否能解析到候选
说明
索引器使用轻量启发式解析,先覆盖最常见的类名和方法名跳转场景。后续可以继续增强 Kotlin 扩展函数、重载匹配和更完整的符号索引。
版本变更
0.1.17
- 文案通用化:displayName 改为
Android Code Navigation,README 与命令、配置标题去除仓库专属字样,定位为通用 Android Java/Kotlin 跳转工具。
- 命令 ID、配置键、插件 ID 保持不变,升级后已有配置无需调整。
0.1.16
- publisher 改为
allen-code,对齐 VS Code Marketplace 已注册的发布者 ID。
0.1.15
- 补齐发布到 VS Code Marketplace 所需元数据:
repository、license 字段和 LICENSE 文件。
- 消除打包时的 repository/LICENSE 警告。
0.1.14
- 新增插件图标
src/img/navigator.png,在扩展列表中展示。
0.1.13
- 索引改为严格 source set 模式:只索引落在
src/**/java 或 src/**/kotlin 结构内的源码。
src 之外的杂散 .java / .kt(如脚本、示例、临时文件)不再进入索引。
- 差异化 flavor 目录(
support-union、support-yy、support-zw、zm、zw、zy 等)仍通过通用 source root 正则被覆盖。
0.1.12
- 索引扫描不再局限于固定的
main/debug/release/test source set。
src 下任意 flavor 目录(如 support-union、support-yy、support-zw、zm、zw、zy 等)里的 java / kotlin 目录都会被识别为源码根。
- 修正排除规则按路径分段匹配,避免
out 误伤 layout、checkout 等合法源码目录。
0.1.11
Android Navigation: Show Candidates 支持接口类和接口方法的实现候选查看。
- 光标位于接口或接口方法时,候选列表优先展示实现类或实现方法;无实现候选时回退普通定义候选。
0.1.10
- 初始索引和手动重建索引时,在 VSCode 窗口底部显示索引进度。
- 进度信息包含文件查找、当前扫描文件和完成后的索引文件数。
0.1.9
- 接口类和接口方法的实现跳转 CodeLens 点击后始终弹窗选择实现位置。
- CodeLens 文案调整为
Show implementations (N implementations)。
0.1.8
- 修复
return ENUM_CONSTANT; 被误判为局部变量声明,导致 Java enum 常量无法跳转到定义的问题。
0.1.7
- 支持一行多个 Java enum 常量解析。
- 放宽 enum 常量命名限制,不再只支持全大写常量。
this.xxx 和 EnumName.xxx 优先跳到类级字段或 enum 常量。
0.1.6
- 支持 Java enum 常量在 enum 类内跳定义和查看引用。
0.1.5
- 修复类字段在方法内被引用时无法跳到字段定义的问题。
- Java 字段声明解析支持常见修饰符和注解。
0.1.4
- 支持当前类内字段、方法参数、局部变量使用处跳定义。
- 变量定义处通过 CodeLens 查看当前类内引用。
0.1.3
- 支持接口类和接口方法上的实现跳转 CodeLens。
- 点击实现入口后可选择实现类或实现方法。
0.1.2
- 修正打包版本递增规则。
- 打包时忽略历史
.vsix 文件,避免安装包递归变大。
0.1.1
- 修复安装后无法触发跳转的问题。
- 增加 Kotlin 语言贡献、索引状态命令、引用和实现跳转能力。
- 增强 Kotlin extension function 解析和 receiver 类型匹配。
0.1.0
- 初始版本。
- 支持 Java/Kotlin 类名、简单方法调用跳转、工作区符号索引和候选查看。
| |