Awesome
⚠️ Tern.java is now OUTDATED, it's recommended to use Eclipse Wild Web Developer instead
tern.java
tern.js is a stand-alone code-analysis engine for JavaScript written in Javascript.
tern.java provides the capability to use tern.js with Java context. It provides several tern server implementation :
- tern.server.j2v8 wraps tern.js with Java code by using J2V8 to create a Tern Server with Java code.
- tern.server.rhino wraps tern.js with Java code by using Rhino to create a Tern Server with Java code.
- tern.server.nashorn wraps tern.js with Java code by using Java 8 Nashorn JavaScript engine to create a Tern Server with Java code.
- tern.server.nodejs wraps tern.js with Java code by using node.js to create a Tern Server with Java code.
As Tern is very CPU and memory intensive, the implementation with Rhino is very slow when JavaScript document is big. So it's better to use node.js or javv8. Nashorn is a little slow compare to J2V8 or node.js
Core Features
Once that Tern Server is created with Java using core
module,
you can use it in any Java context (Eclipse, Netbeans, etc).
tern.java provides the capability to use Tern Server with SWT :
- contentassist which uses tern.java. If you start the SWT TernEditor demo, you will see contentassist available for JavaScript :
Eclipse IDE
On top of core
module
Tern.java provides an Eclipse IDE integration with Tern. For more information please read Tern Eclipse IDE.
To install Tern IDE, please read Installation - Update site section.
Plugins based on Tern IDE
- AngularJS Eclipse to give support for AngularJS.
- JavaScript Build Eclipse to give support for Grunt and Gulp.
Tern Tooling
There are also advanced tools for creators of tern plugins, see wiki pages Tern-Toolings, Tern-Console and Debugging.
Who is using tern.java?
- JBoss Studio for :
- Cordova Support
- Angular Support
See http://tools.jboss.org/blog/2014-06-19-beta2-for-luna.html#better-javascript for more informations.
- Liferay IDE 2.2 for :
- YUI, AUI support
- Liferay support
See http://www.liferay.com/fr/web/gregory.amerson/blog/-/blogs/liferay-ide-2-2-release for more informations.
-
Nodeclipse for :
-
node, express, support
-
mongodb native, mongoose support
-
MyEclipse and [Webclipse (JSjet)] (https://www.genuitec.com/products/webclipse/) :
-
content assist
-
jump to definition
-
element documentation
-
tern.java is used as a base for:
- refactoring
- occurences highlighting
- outline
- type hierarchy
- call hierarchy
See https://www.genuitec.com/tag/tern/ for more informations.
Build
See cloudbees job: https://opensagres.ci.cloudbees.com/job/tern.java/