Skip to content

Slava/tern-meteor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 

Repository files navigation

TernJS plugin: Meteor

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.

Gif Demos

Types based auto-completion: tern-vim-completion.gif

Look up documentation: tern-vim-doc.gif

Jump to definition: tern-vim-jump-to-def.gif

Jump to references: tern-vim-refs.gif

Get types information (on the bottom): tern-vim-types.gif

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 docs.meteor.com
  • load all Meteor related JS files on the load of any file
  • parsing of handlebars template?

Installation for Sublime Text 2/3

Demo Video of Sublime Text

  • 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
  • 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": {}
        }
      }
    }

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 called plugins.
  • 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.

About

Autocompletion plugin for Meteor 1.0 (extending TernJS)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •