2014-10-29 107 views
0

可以使用'release 1.3'typescript分支的语言服务作为当前Visual Studio插件的直接替换吗?我想尝试1.3编译器,并想让Visual Studio使用新的语言服务,这可能吗?我试图将typescriptServies.js复制到TS语言服务插件中,但这会使VS失去TS的所有完成。Visual Studio 2013和Typescript 1.3语言服务

回答

3

API与以前不同,所以这不是不可能的。

但是,现在的开源编辑器CATS现在支持最新的不稳定版本中的TypeScript 1.3。你可以从这里下载:

https://github.com/jbaron/cats/releases

一些新的功能,你可以尝试一下,然后是(最新的TS主分支的所有部分):

  1. 保护成员
  2. 联盟类型
  3. 支持ES6(块作用域等)

顺便说一句我是CATS的开发人员之一。所以虽然没有太多的努力从1.0.1迁移到1.3,但它仍然不是一个直接替代品。此外,当前的主分支仍然有几个方法会引发尚未实现的异常,因此需要采取一些特殊的预防措施来避免它们。

+1

'API与以前不同,所以这不是不可能的.'应该是'不可能'吗? – Fenton 2014-10-30 14:48:42

+0

今天,CATS做什么视觉工作室2014不能---成功编辑打字稿1.3.0源。 – 2014-11-12 13:21:56

0

我不认为这会起作用。我相信VS使用这里找到的LanguageService接口: services.ts 1.3为1.3版本。如果将它与LanguageService的1.1版本进行比较,则接口本身基本相同(getTypeAtPosition消失并由getQuickInfoAtPosition等替换),但其他接口也发生了变化(请参见下面的CompletionEntryDetails接口)。

我试着自己替换它,例如重命名也不起作用(“未知类型在插入位置”或其他)。

//1.1 
export interface CompletionEntryDetails { 
    name: string; 
    kind: string;   // see ScriptElementKind 
    kindModifiers: string; // see ScriptElementKindModifier, comma separated 
    type: string; 
    fullSymbolName: string; 
    docComment: string; 
} 
//1.3 
export interface CompletionEntryDetails { 
    name: string; 
    kind: string;   // see ScriptElementKind 
    kindModifiers: string; // see ScriptElementKindModifier, comma separated 
    displayParts: SymbolDisplayPart[]; 
    documentation: SymbolDisplayPart[]; 
}