我正在使用 monaco editor 进行 TypeScript 编辑。有没有一种获取当前模型 AST 的方法?是否可以修改树形结构,使编辑器对更改做出反应?也就是说,我想为 TypeScript 创建一个简单的重构工具。
我正在使用 monaco editor 进行 TypeScript 编辑。有没有一种获取当前模型 AST 的方法?是否可以修改树形结构,使编辑器对更改做出反应?也就是说,我想为 TypeScript 创建一个简单的重构工具。
Monaco并不公开其AST,但您可以使用jscodeshift代替:
const editor = monaco.editor.create(
document.querySelector("#editor"), {value: 'var foo;'})// editor content: var foo;
const newValue = jscodeshift(editor.getValue())
.findVariableDeclarators('foo')
.renameTo('bar')
.toSource();
editor.setValue(newValue); // editor content: var bar;
有关内容:我正在使用 Monaco 编辑基于编译器 API 的 TypeScript 代码,但实际上该代码在后端运行,因为据我所知,TypeScript 编译器不支持浏览器。https://typescript-api-playground.glitch.me