TypeScript语言服务示例

时间:2012-11-14 21:34:19

标签: typescript

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

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

我能找到的唯一例子是some basic Sublime Text plugin

2 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:4)

我处于相同的情况 - 这是我目前的进展:

我已经制作的教程 - 实现了一个语言服务插件,该插件添加了自动完成和重构建议,其源代码记录了大量详细信息:https://cancerberosgx.github.io/typescript-plugins-of-mine/sample-ts-plugin1/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-code-fixes

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