Skip to content

angelozerr/typescript.java

Repository files navigation

⚠️ typescript.java is now OUTDATED, it's recommended to use Eclipse Wild Web Developer instead

typescript.java

Build Status Eclipse install

Goal of typescript.java is to provide the capability to consume TypeScript language Service with tsserver in a Java context. Any Java IDE like Eclipse, Netbeans, WebStorm could consume typescript.java.

TypeScript IDE

On top of core module typescript.java provides an Eclipse IDE integration with TypeScript.

JSDT TypeScript Completion

TypeScript IDE provides the following features:

To install TypeScript IDE, please start to read Getting Started section.

This integration looks like tern.java; JSDT was extended (completion, hyperlink, hover, etc) to consumme the official TypeScript server tsserver.

Core Features

Once that TypeScript Service client which consumes tsserver is created with Java using core module, you can use it in any Java context (Eclipse, Netbeans, etc). typescript.java provides the capability to use TypeScript language Service with tsserver with SWT :

  • contentassist which uses typescript.java. If you start the SWT TypeScriptEditor demo, you will see contentassist available for JavaScript :

SWT TypeScript Editor

Similar Project

Java

See https://github.com/BestSolution-at/java-tsserver which provides the capability to consume tsserver with Java. So why developping an another tsclient?

  • java-tsserver requires Java8. Eclipse IDE uses Java7.
  • Uses tsclient API instead of using TypeScript Language Service API.

Eclipse

Those plugins provide a lot of advanced features for TypeScript (debug, refactoring, etc) compare to typescript.java. So why developping an another Eclipse Plugins?

Here my idea:

  • use JSDT JavaScript Editor instead of developping custom editor (DONE for completion, hyperlink, hover).
  • use WTP Validator instead of Builder for validation (DONE).
  • consume "official" tsserver instead of consumming custom bridge language service like Eclipse TypeScript/TypeEcs have done:
  • user will able to update the tsserver just with "npm install typescript".
  • other editors consumes "tsserver", so there are a big community which uses "tsserver":
  • use async "event" of tsserver to improve performance for validation for instance.
  • use async completion, etc