AST Navigator

一个基于抽象语法树(AST)在代码中导航的 VS Code 扩展。
功能特性
基于 AST 在代码结构中移动光标和选择范围,支持以下导航操作:
基本导航
- AST Navigator: Current node - 获取光标所在位置的 AST 元素
- AST Navigator: Previous node - 移动到同级别的上一个节点(兄弟节点)
- AST Navigator: Next node - 移动到同级别的下一个节点
- AST Navigator: Parent node - 移动到上一级父节点
- AST Navigator: Child node - 移动到下一级子节点
- AST Navigator: First child node - 移动到第一个子节点
高级导航
- AST Navigator: Parent class - 向上查找并跳转到最近的类定义
- AST Navigator: Parent function - 向上查找并跳转到最近的函数定义
- AST Navigator: Go to name - 跳转到名称标识符(支持更多节点类型)
块移动
- AST Navigator: Move block forward - 将当前代码块向前移动
- AST Navigator: Move block backward - 将当前代码块向后移动
安装使用
- 在 VS Code 扩展市场中搜索 "ast-navigator" 并安装
- 扩展安装后,可以通过命令面板(Cmd/Ctrl+Shift+P)搜索 "AST Navigator" 来使用相关命令
- 没有预设快捷键,请根据个人偏好自行设置快捷键绑定
支持的语言
- TypeScript/JavaScript(目前主要支持)
- 基于 tree-sitter 解析器,未来可扩展支持更多语言
命令列表
完整命令列表(在命令面板中搜索 "AST Navigator: " 前缀):
ast-navigator.currentNode
ast-navigator.previousNode
ast-navigator.nextNode
ast-navigator.parentNode
ast-navigator.childNode
ast-navigator.firstChildNode
ast-navigator.parentClass
ast-navigator.parentFunction
ast-navigator.goToName
ast-navigator.moveBlockForward
ast-navigator.moveBlockBackward
设置快捷键
建议为常用命令设置快捷键以提高效率。例如在 keybindings.json 中添加:
{
"key": "ctrl+alt+up",
"command": "ast-navigator.parentNode",
"when": "editorTextFocus"
},
{
"key": "ctrl+alt+down",
"command": "ast-navigator.childNode",
"when": "editorTextFocus"
}
| |