Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

JSDT/JSDT Code Analytics

< JSDT
Revision as of 19:53, 18 April 2017 by Psuzzi.gmail.com (Talk | contribs) (Created page with "= JSDT Code Analytics = JSDT 2.0 is missing the content outline and content proposal functionality. In JSDT 1.0 we used to parse all the .js files with Rhino and to store th...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

JSDT Code Analytics

JSDT 2.0 is missing the content outline and content proposal functionality.

In JSDT 1.0 we used to parse all the .js files with Rhino and to store the AST in memory. With the full AST in memory, it was easy to generate a content outline tree and then to use inference to provide the content assist.

In JSDT 2.0 we introduced tolerant parsing, but we parse only the .js files which are open in the editor. Also, we do not load the full AST in memory, we do not generate a full content outline tree and we don't provide content assist.

Despite JSDT 2.0 is modern and fast, we should fix content outline and content assist for making users happy, (ie Bug 510677#c3).

Tern

Tern.js is a code-analysis engine for JavaScript written in javascript. It is a good model for the functionalities we want to improve. The downside is it requires loading all the source files through POST to an http server.

The downside is it requires to load the

altough Tern is a good model for the functionalities we want to improve. Tern Tern is written in javascript, and it uses its parser

Tern is a good model of application

Tern Tern uses Acorn to parse Looking at Tern, we have

despite JSDT is fase Users seems unhappy, but JSDT 2.0 in We can read that users are unhappy of the current behavior (ie Bug 510677#c3), and Bug 510677#c3 How we can improve

We also decided to not to load the full AST in memory

part of the .js files Since JSDT 2.0, we have tolerant parsing,

In JSDT 2.0, we introduced tolerant parsing, and we started to parse the In JSDT 2.0 (Neon.3), we use Closure Compiler to parse the open file only, and we don't consider the other files, nor we store a complete AST in memory.


Our current parser (Closure Compiler) parses only the open file, and doesn't consider


In Bug 510677#c3


JSDT is missing a content outli


How can we improve JSDT by restoring the content outline and the content proposal?

I think it all starts by having a tree representing the content outline


Think at Tern:


How can we improve JSDT by restoring the content outline and the content proposal?


Tern is able to read the

restore the content outline

restore content proposal

Back to the top