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 implementation :
- wraps tern.js with Java code by using Rhino to create a Tern Server with Java code.
- wraps tern.js with Java code by using node.js to create a Tern Server with Java code.
- an other idea is to use javv8 but it seems the project is dead and I need win32 implementation.
- one more idea is to explorer Java 8 Nashorn JavaScript engine, possibly with avatar.js, see #33
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.
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.
You can see AngularJS Eclipse which is based on tern.java.
To install Tern IDE, please read Installation - Update site section.
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
See https://www.genuitec.com/tag/tern/ for more informations.
Developing
Warning: When checking out on Windows , you can run into #35 check out on Windows - Filename too long
Build
See cloudbees job: https://opensagres.ci.cloudbees.com/job/tern.java/
Rhino version
As tern.js uses ECMAScript5, the Rhino version should support it. The org.mozilla.javascript is an OSGi bundle which wraps the JAR Rhino 1.7R4 which supports ECMAScript5.


