JavaScript code intelligence for atom with Tern. Adds support for ES5, ES6 (JavaScript 2015), Node.js, jQuery, Angular and more. Extendable via plugins. Uses suggestion provider by autocomplete-plus.
Configure your project
Configure project doesn't support the plugins-section (yet). Please add plugins manually by editing the .tern-project file as shown below.
In order to use third party plugins read the Third party plugins section!
In order to use third party plugins from within your project's node_modules
read the Third party plugins local section! This is also an alternative if Third party plugins aren't working.
If configure project does not work for you
Example .tern-project
file (customize to your own needs):
{"ecmaVersion": 6,"libs": ["browser","jquery"],"loadEagerly": ["path/to/your/js/**/*.js"],"dontLoad": ["path/to/your/js/**/*.js"],"plugins": {"complete_strings": {},"node": {},"lint": {},"angular": {},"requirejs": {},"modules": {},"es_modules": {},"doc_comment": {"fullDocs": true}}}
./
as a prefix. This sometimes leads to an unexpected behaviour.node_modules
.In order to use third party plugins (e.g. tern-node-express):
$ cd ~/.atom/packages/atom-ternjs
$ npm install tern-node-express
Add the plugin to your .tern-project file:
{"ecmaVersion": 6,"libs": ["browser"],"loadEagerly": ["app/**/*.js"],"plugins": {"node-express": {}}}
Third party plugins are still an issue and sometimes do not work as expected. This will be fixed in future release. Restart the server: Packages -> Atom Ternjs -> Restart server
Click any item in the generated reference-list and navigate directly to file and position
Documentation
Find definition (set your cursor position to one of variable, function or instance -> open context-menu and trigger "Find definition") or use the keybindings:
Back from definition
Rename variable (set your cursor position to a variable -> open context-menu and trigger "Rename") or use the keybindings:
Good catch. Let us know what about this package looks wrong to you, and we'll investigate right away.