In its current state, estr can:
- generate (scope-aware) tags files for JS projects (for use with scoped_tags Vim mode); this replaces my earlier, doctorjs-based scoped tags generator
- augment Esprima ASTs with scope information
- locate identifier (with line/column info) in augmented AST, find its binding occurrence, scope, and other occurrences
- transform JS source code to implement variable renaming, while preserving layout and comments (no pretty-printing)
- highlight unbound variables
- highlight other occurrences of identifier under cursor (scope-aware)
- navigate to next/previous identifier occurrence, or to the binding occurrence (scope-aware)
- rename variables (scope-aware, with checks to prevent errors introduced by naive renaming)
The demo code is in the gh-pages branch of the estr repo.
If you find estr useful, please tell others;
if you find bugs in estr, please tell me!-)
If you have access to another JS renaming tool, you might want to try the estr renaming tests on it. If you want to integrate estr in your tool suite, please get in touch.