UNPKG

tern-aui2.0.x

Version:

A Tern plugin adding AlloyUI 2.x support.

61 lines (55 loc) 1.62 kB
"use strict"; var fs = require("fs"), path = require("path"), tern = require("tern"), assert = require('assert'); require("tern-lint"); require("tern-yui3"); require("../aui2.0.x.js"); var projectDir = path.resolve(__dirname, ".."); var resolve = function(pth) { return path.resolve(projectDir, pth); }; var browser = JSON.parse(fs .readFileSync(resolve("node_modules/tern/defs/browser.json")), "utf8"); var ecma5 = JSON.parse(fs .readFileSync(resolve("node_modules/tern/defs/ecma5.json")), "utf8"); var allDefs = { browser : browser, ecma5 : ecma5 }; var createServer = exports.createServer = function(defNames, options) { var defs = []; if (defNames) { for (var i = 0; i < defNames.length; i++) { var def = allDefs[defNames[i]]; defs.push(def); } } var plugins = { "lint" : options ? options : {}, "yui3": {}, "aui2.0.x": {} }; var server = new tern.Server({ plugins : plugins, defs : defs }); return server; } var assertLintReponse = exports.assertLintReponse = function(err, resp, expected) { if (err) throw err; var actualMessages = resp.messages; var expectedMessages = expected.messages; assert.equal(JSON.stringify(resp), JSON.stringify(expected)); } exports.assertLint = function(text, expected, defNames, options) { var server = createServer(defNames, options); server.addFile("test1.js", text); server.request({ query : { type : "lint", file : "test1.js" } }, function(err, resp) { assertLintReponse(err, resp, expected); }); }