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.
On top of core
module typescript.java provides an Eclipse IDE integration with TypeScript.
TypeScript IDE
provides the following features:
- Wizards:
- Editors:
- Compile on save
- Debugging
- Project Explorer
- ATA
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.
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 :
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.
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":
- Visual Studio Code (Microsoft)
- Typescript-Sublime-plugin (Microsoft)
- A Vim plugin for TypeScript
- use async "event" of tsserver to improve performance for validation for instance.
- use async completion, etc