mirror of
https://github.com/linuxserver/core.git
synced 2026-02-20 05:07:19 +08:00
Merge branch 'master' of github.com:c9/newclient into support-tracking/php-breakpoint
This commit is contained in:
commit
44bfedca0a
1
.gitignore
vendored
1
.gitignore
vendored
@ -43,6 +43,7 @@ node_modules/kaefer/node_modules/
|
||||
!node_modules/ui
|
||||
!node_modules/react-bootstrap
|
||||
!node_modules/oldclient
|
||||
!node_modules/vargs
|
||||
|
||||
node_modules/oldclient/node_modules
|
||||
node_modules/oldclient/plugins-server/c9.api.project/tmp*
|
||||
|
||||
@ -2,7 +2,7 @@ Cloud9 3.0 SDK for Plugin Development
|
||||
======================================
|
||||
|
||||
This is the core repository for the Cloud9 v3 SDK. The SDK allows you to run a version of Cloud9 that allows you to develop plugins and create a custom IDE based on Cloud9.
|
||||
|
||||
|
||||
#### Project Status: *ALPHA*
|
||||
|
||||
During the alpha stage, expect many things to break, not work or simply fail.
|
||||
|
||||
@ -700,6 +700,13 @@ module.exports = function(options) {
|
||||
staticPrefix: staticPrefix + "/plugins/c9.ide.collab/notifications"
|
||||
},
|
||||
];
|
||||
|
||||
if (options.standalone || options.local) {
|
||||
plugins.push(
|
||||
"plugins/c9.ide.scm/status",
|
||||
"plugins/c9.ide.scm/editor"
|
||||
);
|
||||
}
|
||||
|
||||
if (packaging || !devel) {
|
||||
plugins.push({
|
||||
|
||||
4
node_modules/ace/lib/ace/layer/marker.js
generated
vendored
4
node_modules/ace/lib/ace/layer/marker.js
generated
vendored
@ -56,9 +56,7 @@ var Marker = function(parentEl) {
|
||||
};
|
||||
|
||||
this.update = function(config) {
|
||||
var config = config || this.config;
|
||||
if (!config)
|
||||
return;
|
||||
if (!config) return;
|
||||
|
||||
this.config = config;
|
||||
|
||||
|
||||
4
node_modules/ace/lib/ace/lib/dom.js
generated
vendored
4
node_modules/ace/lib/ace/lib/dom.js
generated
vendored
@ -46,7 +46,7 @@ exports.createElement = function(tag, ns) {
|
||||
};
|
||||
|
||||
exports.hasCssClass = function(el, name) {
|
||||
var classes = (el.className || "").split(/\s+/g);
|
||||
var classes = (el.className + "").split(/\s+/g);
|
||||
return classes.indexOf(name) !== -1;
|
||||
};
|
||||
|
||||
@ -84,7 +84,7 @@ exports.toggleCssClass = function(el, name) {
|
||||
add = false;
|
||||
classes.splice(index, 1);
|
||||
}
|
||||
if(add)
|
||||
if (add)
|
||||
classes.push(name);
|
||||
|
||||
el.className = classes.join(" ");
|
||||
|
||||
2
node_modules/ace_tree/lib/ace_tree/mouse/default_handlers.js
generated
vendored
2
node_modules/ace_tree/lib/ace_tree/mouse/default_handlers.js
generated
vendored
@ -76,7 +76,7 @@ function DefaultHandlers(mouseHandler) {
|
||||
title = provider.getTooltipText ? provider.getTooltipText(node) : provider.getText(node);
|
||||
}
|
||||
|
||||
if (editor.container.title != title)
|
||||
if (!editor.tooltip && editor.container.title != title)
|
||||
editor.container.title = title;
|
||||
this.updateHoverState(node);
|
||||
};
|
||||
|
||||
50
node_modules/ace_tree/lib/ace_tree/tooltip.js
generated
vendored
50
node_modules/ace_tree/lib/ace_tree/tooltip.js
generated
vendored
@ -2,6 +2,7 @@ define(function(require, exports, module) {
|
||||
"use strict";
|
||||
var dom = require("ace/lib/dom");
|
||||
var lang = require("ace/lib/lang");
|
||||
var MouseEvent = require("./mouse/mouse_event").MouseEvent;
|
||||
dom.importCssString(".no-events * {pointer-events:none!important}");
|
||||
function Tooltip(tree) {
|
||||
this.tree = tree;
|
||||
@ -9,7 +10,8 @@ function Tooltip(tree) {
|
||||
this.tree.on("mousewheel", this.onMouseMove.bind(this, null));
|
||||
this.tree.renderer.scroller.addEventListener("mouseout", this.onMouseOut.bind(this));
|
||||
this.setUp();
|
||||
// this.tree.renderer.on("afterRender", this.updateNodeClass.bind(this));
|
||||
this.update = this.update.bind(this);
|
||||
this.tree.renderer.on("afterRender", this.updateNodeClass.bind(this));
|
||||
this.clearDelayed = lang.delayedCall(this.onMouseMove.bind(this), 50);
|
||||
}
|
||||
|
||||
@ -20,7 +22,7 @@ function Tooltip(tree) {
|
||||
this.root.className = container.className + " no-events";
|
||||
this.root.style.cssText = "border: 0px;margin: 0px;"
|
||||
+ "position: absolute; bottom: initial; right: initial; width: auto; height: auto;"
|
||||
+ "overflow: visible;z-index: 1000000; white-space: pre;"
|
||||
+ "overflow: visible;z-index: 190000; white-space: pre;"
|
||||
+ "pointer-events: none";
|
||||
// var color = dom.computedStyle(container).backgroundColor;
|
||||
// if (!color)
|
||||
@ -28,20 +30,24 @@ function Tooltip(tree) {
|
||||
document.body.appendChild(this.root);
|
||||
|
||||
};
|
||||
this.updateNode = function(treeNode) {
|
||||
this.updateNode = function(treeDomNode) {
|
||||
if (this.node) {
|
||||
this.node.parentNode.removeChild(this.node);
|
||||
this.node = null;
|
||||
}
|
||||
this.treeNode = treeNode;
|
||||
if (!treeNode) {
|
||||
this.treeDomNode = treeDomNode;
|
||||
var rect = treeDomNode && treeDomNode.getBoundingClientRect();
|
||||
var maxW = this.tree.renderer.layerConfig.width;
|
||||
if (!rect || treeDomNode.lastChild.getBoundingClientRect().right <= maxW) {
|
||||
this.root.style.display = "none";
|
||||
return;
|
||||
}
|
||||
// if (rect.width )
|
||||
|
||||
this.root.className = this.tree.container.className + " no-events";
|
||||
this.root.style.display = "";
|
||||
var rect = treeNode.getBoundingClientRect();
|
||||
this.node = treeNode.cloneNode(true);
|
||||
|
||||
this.node = treeDomNode.cloneNode(true);
|
||||
this.node.style.margin = "0px";
|
||||
|
||||
this.root.appendChild(this.node);
|
||||
@ -50,10 +56,11 @@ function Tooltip(tree) {
|
||||
};
|
||||
|
||||
this.updateNodeClass = function() {
|
||||
if (this.node && this.treeNode) {
|
||||
if (this.treeNode.parentNode == this.tree.renderer.$cellLayer.element)
|
||||
this.node.className = this.treeNode.className;
|
||||
else
|
||||
if (this.node && this.treeDomNode) {
|
||||
if (this.treeDomNode.parentNode == this.tree.renderer.$cellLayer.element) {
|
||||
this.node.className = this.treeDomNode.className;
|
||||
this.root.className = this.tree.container.className + " no-events";
|
||||
} else
|
||||
this.updateNode(null);
|
||||
}
|
||||
};
|
||||
@ -67,20 +74,25 @@ function Tooltip(tree) {
|
||||
};
|
||||
|
||||
this.onMouseMove = function(ev) {
|
||||
var target = ev && ev.domEvent.target;
|
||||
while (target && !dom.hasCssClass(target, "tree-row")) {
|
||||
target = target.parentElement;
|
||||
}
|
||||
if (target == this.treeNode)
|
||||
var node = ev && ev.getNode && ev.getNode();
|
||||
if (node == this.treeNode)
|
||||
return;
|
||||
this.updateNode(target);
|
||||
if (target)
|
||||
this.treeNode = node;
|
||||
if (node)
|
||||
this.clearDelayed.cancel();
|
||||
this.tree.renderer.on("afterRender", this.update);
|
||||
};
|
||||
|
||||
this.update = function() {
|
||||
var renderer = this.tree.renderer;
|
||||
renderer.off("afterRender", this.update);
|
||||
var i = renderer.layerConfig.vRange.indexOf(this.treeNode);
|
||||
var domNode = renderer.$cellLayer.getDomNodeAtIndex(i + renderer.layerConfig.firstRow);
|
||||
this.updateNode(domNode, this.treeNode);
|
||||
};
|
||||
|
||||
this.onMouseOut = function(e) {
|
||||
this.onMouseMove({domEvent: e})
|
||||
this.onMouseMove();
|
||||
};
|
||||
this.onMouseOver = function(ev) {
|
||||
this.clearDelayed.schedule();
|
||||
|
||||
1
node_modules/ace_tree/lib/ace_tree/tree.js
generated
vendored
1
node_modules/ace_tree/lib/ace_tree/tree.js
generated
vendored
@ -105,6 +105,7 @@ var Tree = function(element, cellWidth, cellHeight) {
|
||||
}
|
||||
|
||||
this.provider = provider;
|
||||
this.model = provider; // TODO remove provider in favor of model
|
||||
if (provider) {
|
||||
this.renderer.setDataProvider(provider);
|
||||
|
||||
|
||||
24
node_modules/ace_tree/lib/ace_tree/virtual_renderer.js
generated
vendored
24
node_modules/ace_tree/lib/ace_tree/virtual_renderer.js
generated
vendored
@ -110,6 +110,7 @@ var VirtualRenderer = function(container, cellWidth, cellHeight) {
|
||||
h: 0
|
||||
};
|
||||
|
||||
this.$scrollIntoView = null;
|
||||
|
||||
this.$loop = new RenderLoop(
|
||||
this.$renderChanges.bind(this),
|
||||
@ -142,6 +143,7 @@ var VirtualRenderer = function(container, cellWidth, cellHeight) {
|
||||
**/
|
||||
this.setDataProvider = function(provider) {
|
||||
this.provider = provider;
|
||||
this.model = provider;
|
||||
|
||||
if (this.scrollMargin.top && provider && provider.getScrollTop() <= 0)
|
||||
provider.setScrollTop(-this.scrollMargin.top);
|
||||
@ -300,6 +302,12 @@ var VirtualRenderer = function(container, cellWidth, cellHeight) {
|
||||
// provider.setScrollTop(this.getScrollTop());
|
||||
changes |= this.CHANGE_SCROLL;
|
||||
}
|
||||
|
||||
if (this.$scrollIntoView)
|
||||
if (this.$scrollIntoView.model == this.model) {
|
||||
this.scrollCaretIntoView(this.$scrollIntoView.caret, this.$scrollIntoView.offset);
|
||||
this.$scrollIntoView = null;
|
||||
}
|
||||
}
|
||||
|
||||
if (width && (force || size.width != width)) {
|
||||
@ -517,6 +525,9 @@ var VirtualRenderer = function(container, cellWidth, cellHeight) {
|
||||
this.$updateScrollBar();
|
||||
|
||||
this._signal("afterRender");
|
||||
|
||||
if (this.$scrollIntoView)
|
||||
this.$scrollIntoView = null;
|
||||
};
|
||||
|
||||
|
||||
@ -688,6 +699,14 @@ var VirtualRenderer = function(container, cellWidth, cellHeight) {
|
||||
* Scrolls the Caret into the first visible area of the editor
|
||||
**/
|
||||
this.scrollCaretIntoView = function(caret, offset) {
|
||||
this.$scrollIntoView = {
|
||||
caret: caret,
|
||||
offset: offset,
|
||||
scrollTop: this.scrollTop,
|
||||
model: this.model,
|
||||
height: this.$size.scrollerHeight
|
||||
};
|
||||
|
||||
// the editor is not visible
|
||||
if (this.$size.scrollerHeight === 0)
|
||||
return;
|
||||
@ -703,8 +722,7 @@ var VirtualRenderer = function(container, cellWidth, cellHeight) {
|
||||
var height = nodePos.height;
|
||||
var left = 0;
|
||||
var width = 0;
|
||||
|
||||
|
||||
|
||||
if (this.scrollTop > top) {
|
||||
if (offset)
|
||||
top -= offset * this.$size.scrollerHeight;
|
||||
@ -726,6 +744,8 @@ var VirtualRenderer = function(container, cellWidth, cellHeight) {
|
||||
} else if (scrollLeft + this.$size.scrollerWidth < left + width) {
|
||||
this.provider.setScrollLeft(Math.round(left + width - this.$size.scrollerWidth));
|
||||
}
|
||||
|
||||
this.$scrollIntoView.scrollTop = this.scrollTop;
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
4
node_modules/architect-build/build_support/mini_require.js
generated
vendored
4
node_modules/architect-build/build_support/mini_require.js
generated
vendored
@ -134,7 +134,7 @@ var processLoadQueue = function(err, id) {
|
||||
}
|
||||
};
|
||||
|
||||
define.amd = true;
|
||||
define.amd = {};
|
||||
define.queue = [];
|
||||
define.loaded = {};
|
||||
define.errors = {};
|
||||
@ -296,7 +296,7 @@ require.MODULE_LOAD_URL = MODULE_LOAD_URL;
|
||||
require.toUrl = function(moduleName, ext, skipExt) {
|
||||
var absRe = /^([\w\+\.\-]+:|\/)/;
|
||||
var index = moduleName.indexOf("!");
|
||||
if (index !== -1 || !ext)
|
||||
if (index !== -1 || !ext || /^\/|\.js$/.test(moduleName))
|
||||
ext = "";
|
||||
|
||||
var paths = config.paths;
|
||||
|
||||
18
package.json
18
package.json
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "c9",
|
||||
"description": "New Cloud9 Client",
|
||||
"version": "3.0.2234",
|
||||
"version": "3.0.2278",
|
||||
"author": "Ajax.org B.V. <info@ajax.org>",
|
||||
"private": true,
|
||||
"main": "bin/c9",
|
||||
@ -33,7 +33,7 @@
|
||||
"rusha": "~0.7.2",
|
||||
"send": "~0.1.4",
|
||||
"simple-mime": "~0.0.8",
|
||||
"tern": "git://github.com/cloud9ide/tern.git#42164cde34b4cb057fa0c53d3881a58d903a3135",
|
||||
"tern": "git://github.com/cloud9ide/tern.git#749e64a0f0fed91f883ff055df37b4bfc9f2d980",
|
||||
"tern_from_ts": "git://github.com/cloud9ide/tern_from_ts.git#6a0107e602b0d044fe1753533cf31f52cf5fb95a",
|
||||
"through": "2.2.0",
|
||||
"tmp": "~0.0.20",
|
||||
@ -55,7 +55,7 @@
|
||||
"c9"
|
||||
],
|
||||
"c9plugins": {
|
||||
"c9.ide.language": "#4a3fb360aa",
|
||||
"c9.ide.language": "#c8a0de682c",
|
||||
"c9.ide.language.css": "#ef8a28943e",
|
||||
"c9.ide.language.generic": "#77d43cfaf0",
|
||||
"c9.ide.language.html": "#bbe81afed1",
|
||||
@ -65,7 +65,7 @@
|
||||
"c9.ide.language.javascript.eslint": "#9b2721c3d0",
|
||||
"c9.ide.language.javascript.tern": "#a8f7ed0e30",
|
||||
"c9.ide.language.javascript.infer": "#cfec494a3c",
|
||||
"c9.ide.language.jsonalyzer": "#ba3e0d298c",
|
||||
"c9.ide.language.jsonalyzer": "#103e701afc",
|
||||
"c9.ide.collab": "#b49eda3791",
|
||||
"c9.ide.local": "#a9703b630c",
|
||||
"c9.ide.find": "#6cc6d3379d",
|
||||
@ -94,7 +94,7 @@
|
||||
"c9.ide.navigate": "#f358997d93",
|
||||
"c9.ide.newresource": "#f1f0624768",
|
||||
"c9.ide.openfiles": "#28a4f5af16",
|
||||
"c9.ide.preview": "#d10e9d75e1",
|
||||
"c9.ide.preview": "#a75e218d3e",
|
||||
"c9.ide.preview.browser": "#c50007ebbc",
|
||||
"c9.ide.preview.markdown": "#ab8d30ad9f",
|
||||
"c9.ide.pubsub": "#a85fb27eca",
|
||||
@ -105,13 +105,13 @@
|
||||
"c9.ide.run": "#1e99c8c1d2",
|
||||
"c9.ide.run.build": "#ad45874c88",
|
||||
"c9.ide.run.debug.xdebug": "#3b1520f83d",
|
||||
"c9.ide.save": "#58b8616a88",
|
||||
"c9.ide.scm": "#undefined",
|
||||
"c9.ide.terminal.monitor": "#b0b4d03280",
|
||||
"c9.ide.save": "#cc613b6ead",
|
||||
"c9.ide.scm": "#f3847917b8",
|
||||
"c9.ide.terminal.monitor": "#b52a3f2144",
|
||||
"c9.ide.theme.flat": "#2de8414db7",
|
||||
"c9.ide.threewaymerge": "#229382aa0b",
|
||||
"c9.ide.undo": "#b028bcb4d5",
|
||||
"c9.ide.upload": "#0bd010d3dc",
|
||||
"c9.ide.welcome": "#c370b3f191"
|
||||
"c9.ide.welcome": "#0cb72cfc56"
|
||||
}
|
||||
}
|
||||
@ -109,10 +109,11 @@ define(function(require, exports, module) {
|
||||
}
|
||||
|
||||
var name = argv._[1];
|
||||
|
||||
var test = name == ".";
|
||||
if (test)
|
||||
name = require("path").basename(process.cwd());
|
||||
|
||||
|
||||
install(
|
||||
name,
|
||||
{
|
||||
@ -223,7 +224,7 @@ define(function(require, exports, module) {
|
||||
var version = parts[1];
|
||||
var repository;
|
||||
|
||||
if ((!version || options.debug) && !options.test) {
|
||||
if (!options.test) {
|
||||
if (verbose)
|
||||
console.log("Retrieving package info");
|
||||
|
||||
@ -232,8 +233,10 @@ define(function(require, exports, module) {
|
||||
|
||||
if (verbose)
|
||||
console.log("Found:", info);
|
||||
|
||||
if (!version)
|
||||
version = info.latest;
|
||||
|
||||
version = info.latest;
|
||||
repository = info.repository;
|
||||
|
||||
installPackage();
|
||||
@ -362,7 +365,9 @@ define(function(require, exports, module) {
|
||||
|
||||
request.on('response', function(res) {
|
||||
if (res.statusCode != 200)
|
||||
return callback(new Error("Unknown Error:" + res.statusCode));
|
||||
return callback(new Error("Unknown Error getting "
|
||||
+ host + (port ? ":" + port : "")
|
||||
+ path + ":" + res.statusCode));
|
||||
});
|
||||
|
||||
file.on('finish', function() {
|
||||
@ -451,10 +456,10 @@ define(function(require, exports, module) {
|
||||
return callback(null, { version: "test" });
|
||||
|
||||
if (verbose)
|
||||
console.log("Notifying c9.io that packages needs to be installed");
|
||||
console.log("Notifying c9.io that package is installed");
|
||||
|
||||
var endpoint = options.global ? api.user : api.project;
|
||||
var url = "install/" + packageName + "/" + version + "?mode=silent";
|
||||
var url = "install/" + name + "/" + version + "?mode=silent";
|
||||
|
||||
endpoint.post(url, function(err, info){
|
||||
callback(err, info);
|
||||
|
||||
@ -37,6 +37,7 @@ describe("cli.publish", function(){
|
||||
baseTest(function (err, s) {
|
||||
// Services can be tested immediately by mocking API signatures params - (req, res, next) - or (user, params, callback)
|
||||
services = s;
|
||||
HOST = "localhost:" + s.apiPort;
|
||||
next(err);
|
||||
});
|
||||
});
|
||||
@ -49,7 +50,7 @@ describe("cli.publish", function(){
|
||||
var json = {
|
||||
"name": "c9.ide.example",
|
||||
"latest": "1.0.0",
|
||||
"owner": "https://api.c9.dev/user/2000",
|
||||
"owner": "https://api.$DOMAIN/user/2000",
|
||||
"enabled": true,
|
||||
"categories": [
|
||||
"example"
|
||||
@ -60,10 +61,14 @@ describe("cli.publish", function(){
|
||||
},
|
||||
"longname": "c9.ide.example",
|
||||
"website": "",
|
||||
"description": "Cloud9 Custom Example Plugin",
|
||||
"star_avg": 0,
|
||||
"description": "",
|
||||
"star_count": 0,
|
||||
"star_total": 0,
|
||||
|
||||
"installs": 0,
|
||||
"screenshots": [
|
||||
"example"
|
||||
// TODO Screenshots are broken
|
||||
// "example"
|
||||
]
|
||||
};
|
||||
|
||||
@ -118,13 +123,6 @@ describe("cli.publish", function(){
|
||||
done();
|
||||
});
|
||||
});
|
||||
it("should fail if the description in the package.json is missing", function(done){
|
||||
fs.writeFileSync(packagePath, packageJson.replace(/"description":.*/, ''));
|
||||
runCLI("publish", ["major"], function(err, stdout, stderr){
|
||||
expect(stderr).to.match(/ERROR: Missing description property in package.json/);
|
||||
done();
|
||||
});
|
||||
});
|
||||
it("should fail if the repository in the package.json is missing", function(done){
|
||||
fs.writeFileSync(packagePath, packageJson.replace(/"repository[\s\S]*?\},/, ""));
|
||||
runCLI("publish", ["major"], function(err, stdout, stderr){
|
||||
@ -157,9 +155,10 @@ describe("cli.publish", function(){
|
||||
it("should publish when using force and increase the patch version", function(done){
|
||||
var strJson = packageJson.replace(/"version": "[\d\.]+"/, '"version": "0.0.0"');
|
||||
fs.writeFileSync(packagePath, strJson);
|
||||
runCLI("publish", ["patch", "--force"], function(err, stdout, stderr){
|
||||
fs.writeFileSync(readmePath, readmeMD);
|
||||
runCLI("publish", ["patch", "--force", "--tag"], function(err, stdout, stderr){
|
||||
assert(!err, err);
|
||||
expect(stdout).to.match(/Succesfully published version 0.0.1/);
|
||||
expect(stdout).to.match(/Successfully published version 0.0.1/);
|
||||
|
||||
runCLI("list", ["--json"], function(err, stdout, stderr){
|
||||
assert(!err, err);
|
||||
@ -182,7 +181,7 @@ describe("cli.publish", function(){
|
||||
fs.writeFileSync(readmePath, readmeMD);
|
||||
runCLI("publish", ["minor"], function(err, stdout, stderr){
|
||||
assert(!err, err);
|
||||
expect(stdout).to.match(/Succesfully published version 0.1.0/);
|
||||
expect(stdout).to.match(/Successfully published version 0.1.0/);
|
||||
|
||||
runCLI("list", ["--json"], function(err, stdout, stderr){
|
||||
assert(!err, err);
|
||||
@ -204,7 +203,7 @@ describe("cli.publish", function(){
|
||||
it("should increase the major version", function(done){
|
||||
runCLI("publish", ["major"], function(err, stdout, stderr){
|
||||
assert(!err, err);
|
||||
expect(stdout).to.match(/Succesfully published version 1.0.0/);
|
||||
expect(stdout).to.match(/Successfully published version 1.0.0/);
|
||||
|
||||
runCLI("list", ["--json"], function(err, stdout, stderr){
|
||||
assert(!err, err);
|
||||
@ -226,7 +225,7 @@ describe("cli.publish", function(){
|
||||
it("should hide the package when it is unpublished", function(done){
|
||||
runCLI("unpublish", [], function(err, stdout, stderr){
|
||||
assert(!err, err);
|
||||
expect(stdout).to.match(/Succesfully disabled package/);
|
||||
expect(stdout).to.match(/Successfully disabled package/);
|
||||
|
||||
runCLI("list", ["--json"], function(err, stdout, stderr){
|
||||
assert(!err, err);
|
||||
@ -237,7 +236,7 @@ describe("cli.publish", function(){
|
||||
});
|
||||
});
|
||||
|
||||
describe("install and remove (uninstall)", function() {
|
||||
describe.only("install and remove (uninstall)", function() {
|
||||
var pluginDir = join(process.env.HOME, ".c9/plugins/c9.ide.example");
|
||||
|
||||
// Lets make sure there is at least one package in the database
|
||||
@ -265,7 +264,7 @@ describe("cli.publish", function(){
|
||||
|
||||
it("should install a package locally", function(done){
|
||||
runCLI("install", ["--local", "c9.ide.example"], function(err, stdout, stderr){
|
||||
expect(stdout).to.match(/Succesfully installed c9.ide.example@10.0.0/);
|
||||
expect(stdout).to.match(/Successfully installed c9.ide.example@10.0.0/);
|
||||
expect(fs.existsSync(pluginDir)).ok;
|
||||
done();
|
||||
});
|
||||
@ -278,30 +277,40 @@ describe("cli.publish", function(){
|
||||
});
|
||||
it("should install a package in debug mode", function(done){
|
||||
runCLI("install", ["--force", "--debug", "c9.ide.example"], function(err, stdout, stderr){
|
||||
expect(stdout).to.match(/Succesfully installed c9.ide.example/);
|
||||
expect(stdout).to.match(/Successfully installed c9.ide.example/);
|
||||
expect(fs.existsSync(join(pluginDir, "/.git"))).ok;
|
||||
done();
|
||||
});
|
||||
});
|
||||
it("should install a package via the database", function(done){
|
||||
runCLI("install", ["c9.ide.example"], function(err, stdout, stderr){
|
||||
expect(stdout).to.match(/Succesfully installed c9.ide.example/);
|
||||
runCLI("install", ["c9.ide.example", "--force"], function(err, stdout, stderr){
|
||||
expect(stdout).to.match(/Successfully installed c9.ide.example/);
|
||||
|
||||
// @TODO check if it's actually in the database - add list --own to cli
|
||||
|
||||
done();
|
||||
});
|
||||
});
|
||||
// it("should install a package with a specific version via the database", function(done){
|
||||
// runCLI("install", ["c9.ide.example@1.0.0", "--force"], function(err, stdout, stderr){
|
||||
// console.log(stdout, stderr);
|
||||
// expect(stdout).to.match(/Successfully installed c9.ide.example@1.0.0/);
|
||||
|
||||
// // @TODO check if it's actually in the database - add list --own to cli
|
||||
|
||||
// done();
|
||||
// });
|
||||
// });
|
||||
it("should remove a package locally", function(done){
|
||||
runCLI("remove", ["--local", "c9.ide.example"], function(err, stdout, stderr){
|
||||
expect(stdout).to.match(/Succesfully removed c9.ide.example/);
|
||||
expect(stdout).to.match(/Successfully removed c9.ide.example/);
|
||||
expect(fs.existsSync(pluginDir)).not.ok;
|
||||
done();
|
||||
});
|
||||
});
|
||||
it("should remove a from the database", function(done){
|
||||
runCLI("remove", ["c9.ide.example"], function(err, stdout, stderr){
|
||||
expect(stdout).to.match(/Succesfully removed c9.ide.example/);
|
||||
expect(stdout).to.match(/Successfully removed c9.ide.example/);
|
||||
|
||||
// @TODO check if it's actually in the database - add list --own to cli
|
||||
|
||||
|
||||
@ -1672,6 +1672,11 @@ define(function(require, exports, module) {
|
||||
*/
|
||||
defineSyntax: defineSyntax,
|
||||
|
||||
/**
|
||||
* @ignore
|
||||
*/
|
||||
getSyntaxForPath: getSyntaxForPath,
|
||||
|
||||
/**
|
||||
* @ignore this is used by statusbar
|
||||
*/
|
||||
|
||||
@ -104,6 +104,8 @@ define(function(require, exports, module) {
|
||||
}, 500);
|
||||
|
||||
function exec(command, editor, args, e) {
|
||||
var sCommand = command;
|
||||
|
||||
if (!editor || editor.fake)
|
||||
editor = emit("getEditor");
|
||||
|
||||
@ -119,8 +121,10 @@ define(function(require, exports, module) {
|
||||
if (typeof command === 'string')
|
||||
command = commands[command];
|
||||
|
||||
if (!command)
|
||||
if (!command) {
|
||||
console.warn("Could not find command ", sCommand);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (command.isAvailable && !command.isAvailable(editor, args, e))
|
||||
return; //Disable commands for other contexts
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
.box-shadow(~"inset 1px 1px @{button-glossy-hover-shadow-color}, inset -1px -1px @{button-glossy-hover-shadow-color}");
|
||||
text-shadow: @button-glossy-hover-text-shadow;
|
||||
}
|
||||
.c9-toolbarbutton-glossyDown {
|
||||
.c9-toolbarbutton-glossyDown, .c9-toolbarbutton-glossyActive {
|
||||
border: 1px solid @button-glossy-active-border-color;
|
||||
.gradient(~"linear-gradient(top, @{button-glossy-active-background-1} 0%, @{button-glossy-active-background-2} 55%, @{button-glossy-active-background-3} 55%, @{button-glossy-active-background-4} 100%)");
|
||||
.box-shadow(~"inset 1px 1px @{button-glossy-active-shadow-color}, inset -1px -1px @{button-glossy-active-shadow-color}");
|
||||
|
||||
@ -185,10 +185,12 @@ require([
|
||||
});
|
||||
});
|
||||
|
||||
after(function(done) {
|
||||
document.body.style.marginBottom = "";
|
||||
done();
|
||||
});
|
||||
if (!onload.remain) {
|
||||
after(function(done) {
|
||||
document.body.style.marginBottom = "";
|
||||
done();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
onload && onload();
|
||||
|
||||
@ -30,6 +30,7 @@ define(function(require, exports, module) {
|
||||
var showError = imports["dialog.error"].show;
|
||||
|
||||
var Tree = require("ace_tree/tree");
|
||||
var Tooltip = require("ace_tree/tooltip");
|
||||
var TreeEditor = require("ace_tree/edit");
|
||||
var markup = require("text!./tree.xml");
|
||||
|
||||
@ -237,6 +238,8 @@ define(function(require, exports, module) {
|
||||
tree.setDataProvider(fsCache.model);
|
||||
tree.setOption("enableDragDrop", true);
|
||||
|
||||
// tree.tooltip = new Tooltip(tree);
|
||||
|
||||
fsCache.model.$indentSize = 12;
|
||||
fsCache.model.getIconHTML = function(node) {
|
||||
var icon = node.isFolder ? "folder" : util.getFileIcon(node.label);
|
||||
|
||||
@ -203,7 +203,8 @@ apf.vbox = function(struct, tagName) {
|
||||
|
||||
var nodes = this.childNodes;
|
||||
for (var i = 0, l = nodes.length; i < l; i++) {
|
||||
if ((node = nodes[i]).nodeFunc != apf.NODE_VISIBLE || !node.$amlLoaded) //|| node.visible === false
|
||||
var node = nodes[i];
|
||||
if (node.nodeFunc != apf.NODE_VISIBLE || !node.$amlLoaded) //|| node.visible === false
|
||||
continue;
|
||||
|
||||
node.$ext.style.textAlign = apf.getStyle(node.$ext, "textAlign") || "left";
|
||||
|
||||
@ -22,7 +22,8 @@ var places = {
|
||||
Ace: {
|
||||
kitchen_sink: ["/static/lib/ace/kitchen-sink.html", "/../lib/ace/test/tests.html"],
|
||||
tree: "/static/lib/ace_tree/demo.html",
|
||||
list: "/static/lib/ace_tree/list_demo.html"
|
||||
list: "/static/lib/ace_tree/list_demo.html",
|
||||
diff: "/static/plugins/c9.ide.scm/diff/index.html"
|
||||
},
|
||||
Treehugger: {
|
||||
test: "/static/lib/treehugger/test.html"
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
<div id="mocha"></div>
|
||||
<div id='jserror' width='100%' height='20px' style='font: 10px \"courier new\"; color: red; display: none;'></div>
|
||||
|
||||
<script src="require.js"></script>
|
||||
<script src="mini_require.js"></script>
|
||||
<script src="/configs/require_config.js"></script>
|
||||
<script src="lib/mocha/mocha.js"></script>
|
||||
<script>
|
||||
@ -156,7 +156,7 @@
|
||||
require([path]);
|
||||
}
|
||||
// allow running some tests in both client and server
|
||||
["amd-loader", "../../test/setup_paths"].forEach(defineEmpty);
|
||||
["amd-loader", "test/setup_paths"].forEach(defineEmpty);
|
||||
// require.config({paths: {chai: "lib/chai/chai"}});
|
||||
|
||||
|
||||
@ -173,7 +173,13 @@
|
||||
});
|
||||
|
||||
|
||||
var deps = ["text!/test/all.json", "lib/architect/architect", "lib/chai/chai", "test.js"];
|
||||
var deps = [
|
||||
"text!/test/all.json",
|
||||
"lib/architect/architect",
|
||||
"lib/chai/chai",
|
||||
"test",
|
||||
"plugins/c9.ide.ui/lib_less1.5"
|
||||
];
|
||||
if (options.ui === "none")
|
||||
deps.shift();
|
||||
|
||||
@ -226,8 +232,10 @@
|
||||
running = false;
|
||||
lastDone && lastDone();
|
||||
}
|
||||
running ? done() : mocha.run(done);
|
||||
running = true;
|
||||
if (!running) {
|
||||
running = true;
|
||||
mocha.run(done);
|
||||
}
|
||||
};
|
||||
onload.remain = onload.remain == "1";
|
||||
|
||||
@ -347,14 +355,14 @@
|
||||
}
|
||||
|
||||
/* global requirejs require: true*/
|
||||
var defaultModules = Object.keys(requirejs.s.contexts._.defined).filter(function(x) {
|
||||
var defaultModules = Object.keys(define.modules).filter(function(x) {
|
||||
return !/text!/.test(x);
|
||||
});
|
||||
function cleanupRequireModules() {
|
||||
Object.keys(require.s.contexts._.defined).forEach(function(x) {
|
||||
Object.keys(define.modules).forEach(function(x) {
|
||||
if (/text!/.test(x) || defaultModules.indexOf(x) != -1)
|
||||
return;
|
||||
if (/lib\/ace|lib\/treehugger|\/ctags\/ctags$/.test(x) && !/_test/.test(x))
|
||||
if (/^ace|^treehugger|\/ctags\/ctags$/.test(x) && !/_test/.test(x))
|
||||
return;
|
||||
|
||||
require.undef(x);
|
||||
@ -363,8 +371,18 @@
|
||||
if (require == requirejs) {
|
||||
require = function(a, b, c) {
|
||||
if (!c && Array.isArray(a))
|
||||
c = function(err) { lastDone(err.message); };
|
||||
return requirejs(a, b, c);
|
||||
c = function(err) {
|
||||
lastDone && lastDone(err.message);
|
||||
};
|
||||
// workaround for sync minirequire behaviour
|
||||
var bt = b && function() {
|
||||
var args = [].slice.call(arguments);
|
||||
var self = this;
|
||||
setTimeout(function() {
|
||||
b.apply(self, args);
|
||||
});
|
||||
};
|
||||
return requirejs(a, bt, c);
|
||||
};
|
||||
Object.keys(requirejs).forEach(function(x) {
|
||||
if (!(x in require)) {
|
||||
|
||||
@ -122,13 +122,16 @@ filefinder.prototype.treewalk = function(basedir, subdir, fnpattern, blacklist,
|
||||
function next() {
|
||||
var file = list[i++];
|
||||
if (!file) return cb(null, foundfilesarray.length);
|
||||
var partName = path.join(subdir, file);
|
||||
var filepath = path.join(fulldir, file);
|
||||
|
||||
// get file info
|
||||
fs.stat(filepath, function(err, stat) {
|
||||
if (stat && stat.isDirectory()) {
|
||||
if (blacklist && blacklist.indexOf(partName + "/") !== -1)
|
||||
return next();
|
||||
// directory, so recurse
|
||||
_self.treewalk(basedir, path.join(subdir, file), fnpattern, blacklist, foundfilesarray, function(err, res) {
|
||||
_self.treewalk(basedir, partName, fnpattern, blacklist, foundfilesarray, function(err, res) {
|
||||
results = results.concat(res);
|
||||
next();
|
||||
});
|
||||
@ -141,7 +144,6 @@ filefinder.prototype.treewalk = function(basedir, subdir, fnpattern, blacklist,
|
||||
}
|
||||
|
||||
// check if blacklisted
|
||||
var partName = path.join(subdir, file);
|
||||
if (!blacklist || blacklist.indexOf(partName) == -1) {
|
||||
if (DEBUGMODE) console.log("file found: %s", partName);
|
||||
foundfilesarray.push(partName);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user