This is a plugin for TernJS bringing support for Meteor JavaScript Framework. Tested on Vim and Sublime Text 2/3, reported to work on Emacs, potentially should work on Brackets, LightTable and any other CodeMirror-based editors.
Checkout my presentation on Meteor Devshop 11: Videos and Slides. The mailing thread for this project is here on meteor-talk.
Get types information (on the bottom):
- each file is wrapped in a scope
- global variable are global project-wise
- interface definitions converted from meteor.ts.d
- correctly calculate package scope and their exports
- some auto-completion based on Templates names would be nice
- generate docs from docs.meteor.com
- load all Meteor related JS files on the load of any file
- parsing of handlebars template?
- install Package Control (https://sublime.wbond.net/installation)
- install sublime-tern plugin (cmd+shift+p -> install package -> TernJS -> restart sublime)
cd
to Sublime Text packages directory (~/Library/Application Support/Sublime Text 3/Packages
on Mac OS X) (Is your TernJS package fetched as binary file? see here)cd TernJS/ternjs/plugin
(or create the directories if they doesn't exist first -mkdir -p TernJS/ternjs/plugin
)- copy over meteor.js file here
- create a new sublime project, save it, add files
- edit project configuration (menu->project->edit project)
- edit the json file in this manner:
{
"folders":
[
... don't touch this part, leave it as it was ...
],
// add this! ternjs object
"ternjs": {
"libs": ["browser", "underscore", "jquery"],
"plugins": {
"meteor": {}
}
}
}
You check out my Vim setup which is already optimized for Meteor development: GitHub repo. Or you can get it to your setup:
- Install tern-vim plugin with your favorite package manager for Vim.
cd
to.vim
folder,tern_for_vim
plugin folder and runnpm install
to fetchtern
npm module.- Download
meteor.js
file (from this repo) to tern's folder calledplugins
. - In your Meteor project create a file
.tern-project
with the contents similar to:
{
"libs": [
"browser",
"jquery",
"underscore"
],
"loadEagerly": [ "*.js", "*/*.js", "*/*/*.js", "*/*/*/*.js" ],
"dontLoad": [ ".meteor" ],
"plugins": {
"meteor": {}
}
}
Note: ignore files in .meteor
folder. Load all JS if possible.