Autocompletion plugin for Meteor 1.0 (extending TernJS)
Latest commit e7d7463 Dec 11, 2015 @Slava Update
Failed to load latest commit information.
demo-gifs Gifs Jan 31, 2014 Create Mar 26, 2014 Update Dec 11, 2015
jsdocJson2ternjsJson.js s/!locus/!data.!locus/g Apr 11, 2015
meteor.js s/!locus/!data.!locus/g Apr 11, 2015

TernJS plugin: Meteor

UPDATE: All definitions were update to Meteor 1.0.4. There are probably some bugs since this project moved to definitions autogeneration, if you notice any API mismatch, report in the issues.

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, Eclipse 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.

Gif Demos

Types based auto-completion:


Look up documentation:


Jump to definition:


Jump to references:


Get types information (on the bottom):


Supported features specific to Meteor

  • each file is wrapped in a scope
  • global variable are global project-wise
  • interface definitions converted from meteor.ts.d

Todo features

  • correctly calculate package scope and their exports
  • some auto-completion based on Templates names would be nice
  • generate docs from
  • load all Meteor related JS files on the load of any file
  • parsing of handlebars template?

Installation for Sublime Text 3

Go and install the separate package for ST3.

Installation for Vim

Demo Video of Vim

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 run npm install to fetch tern npm module.
  • Download meteor.js file (from this repo) to tern's folder tern_for_vim/node_modules/tern/plugins.
  • In your Meteor project create a file .tern-project with the contents similar to:
      "libs": [
      "loadEagerly": [ "*.js", "*/*.js", "*/*/*.js", "*/*/*/*.js" ],
      "dontLoad": [ ".meteor" ],
      "plugins": {
        "meteor": {}

Note: ignore files in .meteor folder. Load all JS if possible.