Code Snippet Translator Demo
一个用于学习 VS Code 插件完整流程的规则式代码翻译原型。
它把用户选中的一小段 JavaScript/TypeScript 代码转换为简单 Python,并在右侧打开新的 Python 临时文件。原文件不会被修改。
本插件是流程验证 Demo,不是完整编译器,也不调用云端大模型。生成结果必须人工检查。
已支持的规则
const、let、var 变量声明;
console.log() → print();
true、false、null、undefined;
===、!==、&&、||、!;
- 普通函数声明;
- 简单箭头函数;
if / else if / else 和 while;
return;
// 单行注释;
- 简单模板字符串,如
`Hello, ${name}`。
未识别的语句会以 # TODO(review...) 注释形式保留,并在输出面板显示警告。
使用方法
- 打开
.js、.jsx、.ts 或 .tsx 文件;
- 选中要转换的代码;
- 使用以下任一方式执行:
- 按
Ctrl+Shift+P,搜索 Code Workflow Demo: 将选中代码转换为 Python(演示);
- Windows/Linux 按
Ctrl+Alt+T;
- macOS 按
Cmd+Alt+T;
- 右键选中的代码并选择转换命令;
- 在右侧检查生成的 Python 临时文件。
示例
输入:
function greet(name) {
const enabled = true;
if (enabled) {
console.log(`Hello, ${name}`);
}
}
输出:
def greet(name):
enabled = True
if enabled:
print(f"Hello, {name}")
本地开发
npm install
npm run compile
在 VS Code 中按 F5 启动 Extension Development Host。
测试
npm test
打包 VSIX
发布前先把 package.json 中的:
"publisher": "replace-with-your-publisher-id"
替换为自己的 Marketplace Publisher ID,然后执行:
npm run package:vsix
已知限制
- 仅支持少量语法规则;
- 不处理复杂对象、类、循环、异步、模块导入和第三方 API 映射;
- 不保证 JavaScript 与 Python 的语义完全一致;
- 不适用于生产代码的自动迁移。
与课题的关系
本 Demo 验证了“获取编辑器选区—执行转换—展示候选结果—人工确认”的最小闭环。后续正式系统可以将规则转换器替换为 Agent、RAG 检索、AST/IR 转换服务或大语言模型,同时保留 VS Code 插件作为人机交互入口。
License
MIT