Awesome
TernJS
A Light Table plugin utilizing Tern, a fantastic JavaScript code analysis server.
Features
- Auto-completion
- In-line documentation
- Jump to definition
The listed features are only a subset of what Tern is capable of, more to come.
Configuration
Normally tern servers are configured through a .tern-project
file; however, the ability for a workspace to contain multiple directories means multiple configuration files could exist for one workspace. Support for .tern-project
files is coming, it's just not there yet.
Behavior Configuration
The default configuration for Tern is the browser environment (:lt.plugins.tern/libs :browser :ecma5)
. To change to nodejs, merge the following changes in to your workspace behaviors:
{:+ {:tern.config [(:lt.plugins.tern/libs :ecma5)
(:lt.plugins.tern/plugin :node true)]}
:- {:tern.config [:lt.plugins.tern/libs]}}
To setup a configuration for RequireJS:
{:+ {:tern.config [(:lt.plugins.tern/plugin :requirejs {:baseURL "/home/path/to/project/dir"})
:lt.plugins.tern/lazy-loading]}}
Arguments to :lt.plugins.tern/libs
can be:
- One or many built in libs:
:ecma5 :browser :jquery :underscore
- One or many file path(s) to valid JSON Tern lib(s).
Arguments to :lt.plugins.tern/plugin
can be:
- One of the built in plugins:
:angular :component :doc_comment :node :requirejs
- One file path to a valid Tern JavaScript plugin.
Contributing
This is still a work in progress, pull requests are always welcome.
License
Copyright (C) 2014 by Eric Pritchett
Distributed under the GPLv3, see license.md for the full text.