diff --git a/main.js b/main.js index acb3b04..7e85c9b 100644 --- a/main.js +++ b/main.js @@ -1,82 +1,88 @@ /*jslint vars: true, plusplus: true, devel: true, nomen: true, indent: 4, maxerr: 50 */ -/*global define, brackets, $, window, CSSLint, Mustache */ +/*global define, brackets, $, CSSLint */ define(function (require, exports, module) { - 'use strict'; - - var AppInit = brackets.getModule("utils/AppInit"), - CodeInspection = brackets.getModule("language/CodeInspection"), - DocumentManager = brackets.getModule("document/DocumentManager"), - FileSystem = brackets.getModule("filesystem/FileSystem"), - ProjectManager = brackets.getModule("project/ProjectManager"), - PreferencesManager = brackets.getModule("preferences/PreferencesManager"); - - var pm = PreferencesManager.getExtensionPrefs("csslint"), - defaults; - - pm.definePreference("options", "object", {}) - .on("change", function () { - defaults = pm.get("options"); - }); + "use strict"; + + var DocumentManager = brackets.getModule("document/DocumentManager"), + FileSystem = brackets.getModule("filesystem/FileSystem"), + CodeInspection = brackets.getModule("language/CodeInspection"), + LanguageManager = brackets.getModule("language/LanguageManager"), + PreferencesManager = brackets.getModule("preferences/PreferencesManager"), + ProjectManager = brackets.getModule("project/ProjectManager"), + AppInit = brackets.getModule("utils/AppInit"); + + var pm = PreferencesManager.getExtensionPrefs("csslint"), + defaults; + + pm.definePreference("options", "object", {}) + .on("change", function () { + defaults = pm.get("options"); + }); - defaults = pm.get("options"); + defaults = pm.get("options"); - require("csslint/csslint"); + require("csslint/csslint"); - var _configFileName = ".csslintrc", - config = {}; + var _configFileName = ".csslintrc", + config = {}; - function cssLinter(text, fullPath) { - var results; + function cssLinter(text) { + var results; - // Merge default CSSLint ruleset with the custom .csslintrc config - var ruleset = $.extend(CSSLint.getRuleset(), defaults, config.options); + // Merge default CSSLint ruleset with the custom .csslintrc config + var ruleset = $.extend(CSSLint.getRuleset(), defaults, config.options); - // Execute CSSLint - results = CSSLint.verify(text, ruleset); + // Execute CSSLint + results = CSSLint.verify(text, ruleset); - if (results.messages.length) { - var result = { errors: [] }; + if (results.messages.length) { + var result = { + errors: [] + }; - for(var i=0, len=results.messages.length; i/.csslintrc. It @@ -97,7 +103,7 @@ define(function (require, exports, module) { file.read(function (err, content) { if (!err) { var cfg = {}; - try { + try { config = JSON.parse(content); } catch (e) { console.error("CSSLint: Error parsing " + file.fullPath + ". Details: " + e); @@ -118,7 +124,7 @@ define(function (require, exports, module) { */ function tryLoadConfig() { /** - * Makes sure JSHint is re-ran when the config is reloaded + * Makes sure CSSLint is re-ran when the config is reloaded * * This is a workaround due to some loading issues in Sprint 31. * See bug for details: https://github.com/adobe/brackets/issues/5442 @@ -141,12 +147,14 @@ define(function (require, exports, module) { AppInit.appReady(function () { + LanguageManager.getLanguage("json").addFileName(_configFileName); + CodeInspection.register("css", { name: "CSSLint", scanFile: cssLinter }); - $(DocumentManager) + DocumentManager .on("documentSaved.csslint documentRefreshed.csslint", function (e, document) { // if this project's .csslintrc config has been updated, reload if (document.file.fullPath === ProjectManager.getProjectRoot().fullPath + _configFileName) { @@ -154,7 +162,7 @@ define(function (require, exports, module) { } }); - $(ProjectManager) + ProjectManager .on("projectOpen.csslint", function () { tryLoadConfig(); });