Skip to content

Instantly share code, notes, and snippets.

@cfjedimaster
Created March 10, 2014 14:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cfjedimaster/9465839 to your computer and use it in GitHub Desktop.
Save cfjedimaster/9465839 to your computer and use it in GitHub Desktop.
/*jslint vars: true, plusplus: true, devel: true, nomen: true, indent: 4, maxerr: 50 */
/*global define, brackets, $, window, Mustache */
define(function (require, exports, module) {
'use strict';
var
mainHtml = require("text!templates/display.html");
var Commands = brackets.getModule("command/Commands"),
CommandManager = brackets.getModule("command/CommandManager"),
EditorManager = brackets.getModule("editor/EditorManager"),
DocumentManager = brackets.getModule("document/DocumentManager"),
FileSystem = brackets.getModule("filesystem/FileSystem"),
FileUtils = brackets.getModule("file/FileUtils"),
ExtensionUtils = brackets.getModule("utils/ExtensionUtils"),
Menus = brackets.getModule("command/Menus"),
PanelManager = brackets.getModule("view/PanelManager"),
AppInit = brackets.getModule("utils/AppInit"),
ProjectManager = brackets.getModule("project/ProjectManager"),
NativeApp = brackets.getModule("utils/NativeApp");
var Parker = require('parker/lib/bundle'),
metrics = require('parker/metrics/bundleAll');
//this is undefined....
console.dir(Parker);
var parker = new Parker(metrics);
//commands
var VIEW_HIDE_PARKER = "parker.run";
//Files to scan, need to add scss, less
var safeExtList = ["css"];
function scanFiles(files) {
var defs = [];
var results = {};
for(var i=0, len=files.length; i<len; i++) {
console.log("going to read "+files[i]);
defs.push(FileUtils.readAsText(files[i]));
}
$.when.apply($, defs).done(function() {
//So, for each file we parse, we look for problem markers
var content = [];
for(var i=0, len=arguments.length; i<len; i++) {
content.push(arguments[i][0]);
}
console.log('bout to parse');
var results = parker.run(content);
console.log(results);
});
}
function beginScan() {
var $content = $(".parker_contentdiv");
$content.html("Scanning "+ProjectManager.getProjectRoot().fullPath);
console.log("scan "+ProjectManager.getProjectRoot().fullPath);
var dirEntry = ProjectManager.getProjectRoot();
function safeFilter(f,x) {
var ext = f.name.split(".").pop();
return safeExtList.indexOf(ext) >= 0;
}
ProjectManager.getAllFiles(safeFilter,false).done(function(files) {
scanFiles(files);
});
}
function _handleShowParker() {
var $parker = $("#parker");
if ($parker.css("display") === "none") {
$parker.show();
CommandManager.get(VIEW_HIDE_PARKER).setChecked(true);
beginScan();
} else {
$parker.hide();
CommandManager.get(VIEW_HIDE_PARKER).setChecked(false);
EditorManager.focusEditor();
}
EditorManager.resizeEditor();
}
CommandManager.register("Run Parker", VIEW_HIDE_PARKER, _handleShowParker);
AppInit.appReady(function () {
ExtensionUtils.loadStyleSheet(module, "parker-brackets.css");
//add the HTML UI
var $parker = $(Mustache.render(mainHtml));
var menu = Menus.getMenu(Menus.AppMenuBar.VIEW_MENU);
menu.addMenuItem(VIEW_HIDE_PARKER, "", Menus.AFTER);
$('.close', $parker).click(function () {
CommandManager.execute(VIEW_HIDE_PARKER);
});
PanelManager.createBottomPanel('camden.parker.panel', $parker, 200);
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment