18

TypeScript 带有源代码、测试和一些示例,并且编译器显然具有用于 AST 操作以及代码完成和着色等功能的 API。

但是,我找不到任何有关如何使用该 API 的示例。有没有人试图理解它?也许一些博主?

我能找到的唯一例子是一些基本的 Sublime Text 插件

4

2 回答 2

13

我处于同样的情况 - 这是我到目前为止的进步:

我制作的教程 - 实现一个语言服务插件,添加自动完成和重构建议,源代码记录了很多细节:https ://cancerberosgx.github.io/typescript-plugins-of-mine/sample-ts-插件1/src/

有关文档,请从此处开始:https ://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-API - 其中包含使用编译器的片段,除其他外,如何将 ts 代码编译为 AST,如何使用服务语言,转译为 js,访问 ast ,修改并打印回 ts 字符串。

如果你想实现代码完成、重构等,那么你想开发一个服务语言插件。这是一个“入门” https://github.com/Microsoft/TypeScript/wiki/Writing-a-Language-Service-Plugin

然后你可以开始玩我的 TypeScript 编译器 API Playground。它包含几个可以在线编辑和执行的示例 https://typescript-api-playground.glitch.me/

此外,我强烈建议尽可能使用此库,因为它具有高级 API:https ://github.com/dsherret/ts-simple-ast/

最后,我收集的带有有用重构的 TypeScript 语言服务插件(基于 ts-simple-ast)https://github.com/cancerberoSgx/typescript-plugins-of-mine/tree/master/typescript-plugin-proactive-代码修复

我对这个问题很满意,因为文档不好,它是一个重要的 API,也许这有助于组织打字稿插件的集中目录,有人知道这样的东西是否存在吗?

于 2018-05-05T17:00:32.070 回答
12

如果您看一下,src\harness\fourslash.ts您会看到测试语言服务 (in tests\ls\fourslash\) 的测试是如何编写的。该文件使用在src\harness\harness.ts管理语言服务运行的环境中实现的模拟“主机”。这些测试处理成员和完成列表、类型信息、格式设置、重命名、查找引用等内容。

于 2012-11-14T21:56:25.320 回答