diff --git a/configs/client-default-local.js b/configs/client-default-local.js index b2ed60a1..33361ca7 100644 --- a/configs/client-default-local.js +++ b/configs/client-default-local.js @@ -1,6 +1,7 @@ var join = require("path").join; module.exports = function(options) { + options.collab = false; var config = require("./client-default")(options); return module.exports.makeLocal(config, options); }; @@ -132,20 +133,6 @@ module.exports.makeLocal = function(config, options) { "plugins/c9.ide.newresource/open": true, "plugins/c9.ide.info/info": true, // "plugins/c9.ide.login/login": true, - "plugins/c9.ide.collab/connect": true, - "plugins/c9.ide.collab/collab": true, - "plugins/c9.ide.collab/collabpanel": true, - "plugins/c9.ide.collab/workspace": true, - "plugins/c9.ide.collab/util": true, - "plugins/c9.ide.collab/ot/document": true, - "plugins/c9.ide.collab/cursor_layer": true, - "plugins/c9.ide.collab/author_layer": true, - "plugins/c9.ide.collab/timeslider/timeslider": true, - "plugins/c9.ide.notifications/notifications": true, - "plugins/c9.ide.collab/members/members_panel": true, - "plugins/c9.ide.collab/share/share": true, - "plugins/c9.ide.collab/members/members": true, - "plugins/c9.ide.collab/chat/chat": true, "plugins/c9.ide.feedback/nps": true, "plugins/c9.ide.download/download": true }; diff --git a/configs/client-default.js b/configs/client-default.js index 5e87fe8b..19443ec5 100644 --- a/configs/client-default.js +++ b/configs/client-default.js @@ -218,7 +218,6 @@ module.exports = function(options) { nak: options.nakBin || "~/.c9/node_modules/nak/bin/nak", node: options.nodeBin, local: options.local, - installPath: options.installPath }, { packagePath: "plugins/c9.ide.find.infiles/findinfiles", @@ -277,7 +276,7 @@ module.exports = function(options) { // VFS "plugins/c9.fs/proc", - "plugins/c9.fs/proc.apigen", + "plugins/c9.fs/proc.apigen", // used only by disabled deploy plugins "plugins/c9.fs/net", { packagePath: "plugins/c9.fs/fs", diff --git a/node_modules/ace/ChangeLog.txt b/node_modules/ace/ChangeLog.txt index e9c41e4c..58e8ce34 100644 --- a/node_modules/ace/ChangeLog.txt +++ b/node_modules/ace/ChangeLog.txt @@ -1,5 +1,20 @@ +2015.07.11 Version 1.2.0 + +* New Features + - Indented soft wrap (danyaPostfactum) + - Rounded borders on selections + +* API Changes + - unified delta types `{start, end, action, lines}` (Alden Daniels https://github.com/ajaxorg/ace/pull/1745) + - "change" event listeners on session and editor get delta objects directly + +* new language modes + - SQLServer (Morgan Yarbrough) + 2015.04.03 Version 1.1.9 + - Small Enhancements and Bugfixes + 2014.11.08 Version 1.1.8 * API Changes diff --git a/node_modules/ace/Makefile.dryice.js b/node_modules/ace/Makefile.dryice.js index 0ce7c657..5a321f0d 100755 --- a/node_modules/ace/Makefile.dryice.js +++ b/node_modules/ace/Makefile.dryice.js @@ -284,7 +284,9 @@ function buildAceModuleInternal(opts, callback) { filters.push(exportAce(ns, opts.require[0], opts.noconflict ? ns : "", projectType == "ext")); } - + + filters.push(normalizeLineEndings); + filters.forEach(function(f) { code = f(code); }); build.writeToFile({code: code}, { @@ -409,7 +411,9 @@ function getLoadedFileList(options, callback, result) { } function normalizeLineEndings(module) { - module.source = module.source.replace(/\r\n/g, "\n"); + if (typeof module == "string") + module = {source: module}; + return module.source = module.source.replace(/\r\n/g, "\n"); } function optimizeTextModules(sources) { @@ -471,8 +475,10 @@ function namespace(ns) { text = text .toString() .replace(/ACE_NAMESPACE\s*=\s*""/, 'ACE_NAMESPACE = "' + ns +'"') - .replace(/(\.define)|\bdefine\(/g, function(_, a) { - return a || ns + ".define("; + .replace(/\bdefine\(/g, function(def, index, source) { + if (/(^|[;})])\s*$/.test(source.slice(0, index))) + return ns + "." + def; + return def; }); return text; diff --git a/node_modules/ace/demo/autoresize.html b/node_modules/ace/demo/autoresize.html index 73a87599..b0464ecd 100644 --- a/node_modules/ace/demo/autoresize.html +++ b/node_modules/ace/demo/autoresize.html @@ -7,14 +7,13 @@ @@ -24,6 +23,8 @@
minHeight = 2 lines
+

+

 
 
@@ -46,6 +47,13 @@ require(["ace/ace"], function(ace) {
     editor2.setOption("maxLines", 30);
     editor2.setOption("minLines", 2);
 
+    var editor = ace.edit("editor3");
+    editor.setOptions({
+        autoScrollEditorIntoView: true,
+        maxLines: 8
+    });
+    editor.renderer.setScrollMargin(10, 10, 10, 10);
+    
     var editor = ace.edit("editor");
     editor.setTheme("ace/theme/tomorrow");
     editor.session.setMode("ace/mode/html");
diff --git a/node_modules/ace/demo/kitchen-sink/dev_util.js b/node_modules/ace/demo/kitchen-sink/dev_util.js
index 8dab857c..a7b9b096 100644
--- a/node_modules/ace/demo/kitchen-sink/dev_util.js
+++ b/node_modules/ace/demo/kitchen-sink/dev_util.js
@@ -39,7 +39,7 @@ function warn() {
     s.shift(); // remove the getter
     s = s.join("\n");
     // allow easy access to ace in console, but not in ace code
-    if (!/at Object.InjectedScript.|@debugger eval|snippets:\/{3}/.test(s)) {
+    if (!/at Object.InjectedScript.|@debugger eval|snippets:\/{3}|:\d+:\d+/.test(s)) {
         console.error("trying to access to global variable");
     }
 }
diff --git a/node_modules/ace/demo/kitchen-sink/docs/c_cpp.cpp b/node_modules/ace/demo/kitchen-sink/docs/c_cpp.cpp
index a2ebdaa2..3e06ac24 100644
--- a/node_modules/ace/demo/kitchen-sink/docs/c_cpp.cpp
+++ b/node_modules/ace/demo/kitchen-sink/docs/c_cpp.cpp
@@ -24,10 +24,12 @@
    
 using namespace std;
 
+//
 int main ()
 {
     int a, b=3; /* foobar */
-    a = b;
+    a = b; // single line comment\
+        continued
     a+=2; // equivalent to a=a+2
     cout << a;
     #if VERBOSE >= 2
diff --git a/node_modules/ace/demo/kitchen-sink/docs/gherkin.feature b/node_modules/ace/demo/kitchen-sink/docs/gherkin.feature
index 52cd811e..83c6e844 100644
--- a/node_modules/ace/demo/kitchen-sink/docs/gherkin.feature
+++ b/node_modules/ace/demo/kitchen-sink/docs/gherkin.feature
@@ -1,4 +1,4 @@
-@these @are @tags
+@these @_are_ @tags
 Feature: Serve coffee
   Coffee should not be served until paid for
   Coffee should not be served until the button has been pressed
@@ -12,7 +12,7 @@ Feature: Serve coffee
     Examples:
       | start | eat | left |
       |  12   |  5  |  7   |
-      |  20   |  5  |  15  |    
+      |  @20  |  5  |  15  |    
 
   Scenario: Buy last coffee
     Given there are 1 coffees left in the machine
diff --git a/node_modules/ace/demo/kitchen-sink/docs/maze.mz b/node_modules/ace/demo/kitchen-sink/docs/maze.mz
new file mode 100644
index 00000000..72c140e2
--- /dev/null
+++ b/node_modules/ace/demo/kitchen-sink/docs/maze.mz
@@ -0,0 +1,23 @@
+## ## () ## ^^ ## ## ## ##
+## H1 C2 S1 <> S2 H2 DN ##
+## %U <> %D *2 %L IZ .. ##
+## ## ## .. ## DN *3 ## ##
+## ## ## %R C1 IZ () ## ##
+## ## ## ## >/ *1
+## () *3 *1 %L ()
+
+
+// Set divisor and dividend
+S1-> = 9
+S2-> = 24
+
+// Holding cells
+H1-> IF *1 THEN %R ELSE %N
+H2-> IF *2 THEN %R ELSE %N
+
+// Arithmetic
+DN-> -= 1
+IZ-> IF <= 0 THEN %D ELSE %U
+
+C1-> IF *3 THEN %D ELSE %R
+C2-> IF *3 THEN %U ELSE %D
diff --git a/node_modules/ace/demo/kitchen-sink/docs/sqlserver.sqlserver b/node_modules/ace/demo/kitchen-sink/docs/sqlserver.sqlserver
index 329930af..7efd2b7e 100644
--- a/node_modules/ace/demo/kitchen-sink/docs/sqlserver.sqlserver
+++ b/node_modules/ace/demo/kitchen-sink/docs/sqlserver.sqlserver
@@ -1,9 +1,9 @@
 -- =============================================
 -- Author:		Morgan Yarbrough
 -- Create date: 4/27/2015
--- Description:	Test Procedure that shows off language features.
--- 				Includes non-standard folding using region comments using either
--- 				line comments or block comments (both are demonstrated below)
+-- Description:	Test procedure that shows off language features.
+-- 				Includes non-standard folding with region comments using either
+-- 				line comments or block comments (both are demonstrated below).
 --				This mode imitates SSMS and it designed to be used with SQL Server theme.
 -- =============================================
 CREATE PROCEDURE dbo.TestProcedure
@@ -11,7 +11,7 @@ CREATE PROCEDURE dbo.TestProcedure
 --#region parameters
 	@vint INT = 1
 	,@vdate DATE = NULL
-	,@vdatetime DATETIME = DATEADD (dd, 1, GETDATE())
+	,@vdatetime DATETIME = DATEADD(dd, 1, GETDATE())
 	,@vvarchar VARCHAR(MAX) = ''
 --#endregion
 
@@ -38,8 +38,8 @@ BEGIN
 	-- another folding demonstration
 	IF @vint = 1 
 	BEGIN
-		SET @vvarchar='one'
-		SET @vint = DATEDIFFT(dd, @vdate, @vdatetime)
+		SET @vvarchar = 'one'
+		SET @vint = DATEDIFF(dd, @vdate, @vdatetime)
 	END
 	
 	-- this mode handles strings properly
@@ -47,7 +47,7 @@ BEGIN
 									FROM Orders
 									WHERE @OrderDate > GETDATE()'
 								
-	-- this mode is aware of build in stored procedures 
+	-- this mode is aware of built in stored procedures 
 	EXECUTE sp_executesql @sql
 	
 	-- demonstrating some syntax highlighting
@@ -60,4 +60,13 @@ BEGIN
 	WHERE CompanyName NOT LIKE '%something'
 		OR CompanyName IS NULL
 		OR CompanyName IN ('bla', 'nothing')
+		
+	-- this mode includes snippets
+	-- place your cusor at the end of the line below and trigger auto complete (Ctrl+Space)
+	createpr
+	
+	-- SQL Server allows using keywords as object names (not recommended) as long as they are wrapped in brackets
+	DATABASE -- keyword
+	[DATABASE] -- not a keyword
+	
 END
diff --git a/node_modules/ace/demo/kitchen-sink/docs/swift.swift b/node_modules/ace/demo/kitchen-sink/docs/swift.swift
new file mode 100644
index 00000000..d1b58293
--- /dev/null
+++ b/node_modules/ace/demo/kitchen-sink/docs/swift.swift
@@ -0,0 +1,16 @@
+import UIKit
+ 
+class DetailsViewController: UIViewController {
+    var album: Album?
+    @IBOutlet weak var albumCover: UIImageView!
+     
+    required init(coder aDecoder: NSCoder) {
+        super.init(coder: aDecoder)
+    }
+     
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        mLabel.text = self.album?.title && "Juhu \( "kinners" )! "
+        albumCover.image = UIImage(data: NSData(contentsOfURL: NSURL(string: self.album!.largeImageURL)!)!)
+    }
+}
\ No newline at end of file
diff --git a/node_modules/ace/demo/kitchen-sink/styles.css b/node_modules/ace/demo/kitchen-sink/styles.css
index 3f46f701..b9ace9c6 100644
--- a/node_modules/ace/demo/kitchen-sink/styles.css
+++ b/node_modules/ace/demo/kitchen-sink/styles.css
@@ -52,4 +52,6 @@ body {
     z-index: 10!important;
     opacity: 1!important;
     background: rgb(84, 0, 255)!important;
+    color: rgb(255, 255, 255)!important;
+    width: 10em!important;
 }*/
diff --git a/node_modules/ace/demo/static-highlighter/server.js b/node_modules/ace/demo/static-highlighter/server.js
index 0878fec2..ea8361d4 100644
--- a/node_modules/ace/demo/static-highlighter/server.js
+++ b/node_modules/ace/demo/static-highlighter/server.js
@@ -2,15 +2,13 @@
  * Simple node.js server, which generates the synax highlighted version of itself 
  * using the Ace modes and themes on the server and serving a static web page.
  */
-// $'
+
 // include ace search path and modules
 require("amd-loader");
 
-// load jsdom, which is required by Ace
-require("../../lib/ace/test/mockdom");
-
 var http = require("http");
 var fs = require("fs");
+var resolve = require("path").resolve;
 
 // load the highlighter and the desired mode and theme
 var highlighter = require("../../lib/ace/ext/static_highlight");
@@ -20,15 +18,22 @@ var theme = require("../../lib/ace/theme/twilight");
 var port = process.env.PORT || 2222;
 
 http.createServer(function(req, res) {
+    var url = req.url;
+    var path = /[^#?\x00]*/.exec(url)[0];
+    var root = resolve(__dirname + "/../../").replace(/\\/g, "/");
+    path = resolve(root + "/" + path).replace(/\\/g, "/");
+    if (path.indexOf(root + "/") != 0)
+        path = __filename;
     res.writeHead(200, {"Content-Type": "text/html; charset=utf-8"});
-    fs.readFile(__dirname + "/../../build/src/ace.js", "utf8", function(err, data) {
+    fs.readFile(path, "utf8", function(err, data) {
+        if (err) data = err.message;
         var highlighted = highlighter.render(data, new JavaScriptMode(), theme);
         res.end(
             '\n' +
                 '\n' + 
-                highlighted.html +            
+                highlighted.html +
             ''
         );
     });
diff --git a/node_modules/ace/demo/svg.svg b/node_modules/ace/demo/svg.svg
new file mode 100644
index 00000000..662ab53b
--- /dev/null
+++ b/node_modules/ace/demo/svg.svg
@@ -0,0 +1,11 @@
+
+    
+    
+    
+    
+        
Hi!
+
+
\ No newline at end of file diff --git a/node_modules/ace/demo/xml.xml b/node_modules/ace/demo/xml.xml new file mode 100644 index 00000000..b4f78bf8 --- /dev/null +++ b/node_modules/ace/demo/xml.xml @@ -0,0 +1,33 @@ + + + + + + ACE Autocompletion demo + + + +

+
+    
+    
+
+    
+
+
diff --git a/node_modules/ace/experiments/debug_mem_leak.html b/node_modules/ace/experiments/debug_mem_leak.html
new file mode 100644
index 00000000..b8ee8726
--- /dev/null
+++ b/node_modules/ace/experiments/debug_mem_leak.html
@@ -0,0 +1,59 @@
+
+
+    
+        
+        
+        
+    
+    
+        

+ +
+ + + \ No newline at end of file diff --git a/node_modules/ace/lib/ace/autocomplete.js b/node_modules/ace/lib/ace/autocomplete.js index 8e121f35..bb3fe04b 100644 --- a/node_modules/ace/lib/ace/autocomplete.js +++ b/node_modules/ace/lib/ace/autocomplete.js @@ -174,7 +174,7 @@ var Autocomplete = function() { this.popup.setRow(row); }; - this.insertMatch = function(data) { + this.insertMatch = function(data, options) { if (!data) data = this.popup.getData(this.popup.getRow()); if (!data) @@ -183,6 +183,7 @@ var Autocomplete = function() { if (data.completer && data.completer.insertMatch) { data.completer.insertMatch(this.editor, data); } else { + // TODO add support for options.deleteSuffix if (this.completions.filterText) { var ranges = this.editor.selection.getAllRanges(); for (var i = 0, range; range = ranges[i]; i++) { @@ -207,7 +208,7 @@ var Autocomplete = function() { "Esc": function(editor) { editor.completer.detach(); }, "Return": function(editor) { return editor.completer.insertMatch(); }, - "Shift-Return": function(editor) { editor.completer.insertMatch(true); }, + "Shift-Return": function(editor) { editor.completer.insertMatch(null, {deleteSuffix: true}); }, "Tab": function(editor) { var result = editor.completer.insertMatch(); if (!result && !editor.tabstopManager) diff --git a/node_modules/ace/lib/ace/ext/modelist.js b/node_modules/ace/lib/ace/ext/modelist.js index 14db899d..4d62a151 100644 --- a/node_modules/ace/lib/ace/ext/modelist.js +++ b/node_modules/ace/lib/ace/ext/modelist.js @@ -92,7 +92,7 @@ var supportedModes = { Jack: ["jack"], Jade: ["jade"], Java: ["java"], - JavaScript: ["js|jsm"], + JavaScript: ["js|jsm|jsx"], JSON: ["json"], JSONiq: ["jq"], JSP: ["jsp"], @@ -150,6 +150,7 @@ var supportedModes = { SQLServer: ["sqlserver"], Stylus: ["styl|stylus"], SVG: ["svg"], + Swift: ["swift"], Tcl: ["tcl"], Tex: ["tex"], Text: ["txt"], diff --git a/node_modules/ace/lib/ace/lib/dom.js b/node_modules/ace/lib/ace/lib/dom.js index c30176da..dfc32079 100644 --- a/node_modules/ace/lib/ace/lib/dom.js +++ b/node_modules/ace/lib/ace/lib/dom.js @@ -136,10 +136,7 @@ exports.importCssString = function importCssString(cssText, id, doc) { if (id) style.owningElement.id = id; } else { - style = doc.createElementNS - ? doc.createElementNS(XHTML_NS, "style") - : doc.createElement("style"); - + style = exports.createElement("style"); style.appendChild(doc.createTextNode(cssText)); if (id) style.id = id; diff --git a/node_modules/ace/lib/ace/lib/event.js b/node_modules/ace/lib/ace/lib/event.js index 8892557c..459ce0f2 100644 --- a/node_modules/ace/lib/ace/lib/event.js +++ b/node_modules/ace/lib/ace/lib/event.js @@ -34,6 +34,9 @@ define(function(require, exports, module) { var keys = require("./keys"); var useragent = require("./useragent"); +var pressedKeys = null; +var ts = 0; + exports.addListener = function(elem, type, callback) { if (elem.addEventListener) { return elem.addEventListener(type, callback, false); @@ -253,7 +256,7 @@ function normalizeCommandKeys(callback, e, keyCode) { var hashId = getModifierHash(e); if (!useragent.isMac && pressedKeys) { - if (pressedKeys[91] || pressedKeys[92]) + if (pressedKeys.OSKey) hashId |= 8; if (pressedKeys.altGr) { if ((3 & hashId) != 3) @@ -278,7 +281,7 @@ function normalizeCommandKeys(callback, e, keyCode) { keyCode = -1; } - if (hashId & 8 && (keyCode === 91 || keyCode === 93)) { + if (hashId & 8 && (keyCode === 91 || keyCode === 92)) { keyCode = -1; } @@ -309,8 +312,7 @@ function normalizeCommandKeys(callback, e, keyCode) { return callback(e, hashId, keyCode); } -var pressedKeys = null; -var ts = 0; + exports.addCommandKeyListener = function(el, callback) { var addListener = exports.addListener; if (useragent.isOldGecko || (useragent.isOpera && !("KeyboardEvent" in window))) { @@ -331,8 +333,19 @@ exports.addCommandKeyListener = function(el, callback) { var lastDefaultPrevented = null; addListener(el, "keydown", function(e) { - pressedKeys[e.keyCode] = (pressedKeys[e.keyCode] || 0) + 1; - var result = normalizeCommandKeys(callback, e, e.keyCode); + var keyCode = e.keyCode; + pressedKeys[keyCode] = (pressedKeys[keyCode] || 0) + 1; + if (keyCode == 91 || keyCode == 92) { + pressedKeys.OSKey = true; + } else if (pressedKeys.OSKey) { + if (e.timeStamp - pressedKeys.lastT > 200 && pressedKeys.count == 1) + resetPressedKeys(); + } + if (pressedKeys[keyCode] == 1) + pressedKeys.count++; + // console.log(e.timeStamp - pressedKeys.lastT) + pressedKeys.lastT = e.timeStamp; + var result = normalizeCommandKeys(callback, e, keyCode); lastDefaultPrevented = e.defaultPrevented; return result; }); @@ -345,7 +358,17 @@ exports.addCommandKeyListener = function(el, callback) { }); addListener(el, "keyup", function(e) { - pressedKeys[e.keyCode] = null; + var keyCode = e.keyCode; + if (!pressedKeys[keyCode]) { + // console.log("resetting", 1) + resetPressedKeys(); + } else { + pressedKeys.count = Math.max(pressedKeys.count - 1, 0); + } + if (keyCode == 91 || keyCode == 92) { + pressedKeys.OSKey = false; + } + pressedKeys[keyCode] = null; }); if (!pressedKeys) { @@ -354,8 +377,11 @@ exports.addCommandKeyListener = function(el, callback) { } } }; -function resetPressedKeys(e) { +function resetPressedKeys() { + // console.log("resetting") pressedKeys = Object.create(null); + pressedKeys.count = 0; + pressedKeys.lastT = 0; } if (typeof window == "object" && window.postMessage && !useragent.isOldIE) { diff --git a/node_modules/ace/lib/ace/lib/keys.js b/node_modules/ace/lib/ace/lib/keys.js index 465d4a8d..cca7ff24 100644 --- a/node_modules/ace/lib/ace/lib/keys.js +++ b/node_modules/ace/lib/ace/lib/keys.js @@ -105,7 +105,7 @@ var Keys = (function() { 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v', 87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.', 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`', - 219: '[', 220: '\\',221: ']', 222: '\'' + 219: '[', 220: '\\',221: ']', 222: "'", 111: '/', 106: '*' } }; diff --git a/node_modules/ace/lib/ace/lib/lang.js b/node_modules/ace/lib/ace/lib/lang.js index 921dee1d..f306e3e4 100644 --- a/node_modules/ace/lib/ace/lib/lang.js +++ b/node_modules/ace/lib/ace/lib/lang.js @@ -136,7 +136,7 @@ exports.escapeRegExp = function(str) { }; exports.escapeHTML = function(str) { - return str.replace(/&/g, "&").replace(/"/g, """).replace(/'/g, "'").replace(/ + + z ---> welcome="Hello World!"> + z --> +#welcome# + + Dateformat(now()) + \ No newline at end of file diff --git a/node_modules/ace/lib/ace/mode/_test/text_javascript.txt b/node_modules/ace/lib/ace/mode/_test/text_javascript.txt index 48d4af7d..569c8537 100644 --- a/node_modules/ace/lib/ace/mode/_test/text_javascript.txt +++ b/node_modules/ace/lib/ace/mode/_test/text_javascript.txt @@ -84,3 +84,11 @@ foo.protoype.d = function(a, b, c, d) foo.d =function(a, b) foo.d =function(a, /*****/ d"string" + +
+1 { ++x } +
+ diff --git a/node_modules/ace/lib/ace/mode/_test/tokens_c_cpp.json b/node_modules/ace/lib/ace/mode/_test/tokens_c_cpp.json index 312dad62..13f42b13 100644 --- a/node_modules/ace/lib/ace/mode/_test/tokens_c_cpp.json +++ b/node_modules/ace/lib/ace/mode/_test/tokens_c_cpp.json @@ -83,7 +83,7 @@ "start" ],[ "start", - ["comment","//"] + ["comment","//"] ],[ "start", ["storage.type","int"], @@ -110,7 +110,7 @@ ["text"," "], ["comment","/* foobar */"] ],[ - "start", + "singleLineComment", ["text"," "], ["identifier","a"], ["text"," "], @@ -119,7 +119,10 @@ ["identifier","b"], ["punctuation.operator",";"], ["text"," "], - ["comment","// single line comment\\ continued"] + ["comment","// single line comment\\"] +],[ + "start", + ["comment"," continued"] ],[ "start", ["text"," "], diff --git a/node_modules/ace/lib/ace/mode/_test/tokens_coffee.json b/node_modules/ace/lib/ace/mode/_test/tokens_coffee.json index b0703b37..cf024632 100644 --- a/node_modules/ace/lib/ace/mode/_test/tokens_coffee.json +++ b/node_modules/ace/lib/ace/mode/_test/tokens_coffee.json @@ -10,8 +10,8 @@ ["identifier","i"], ["text"," "], ["constant.numeric","1"], - ["punctuation.operator","."], - ["constant.numeric",".2"], + ["punctuation.operator",".."], + ["constant.numeric","2"], ["paren.rparen",")"] ],[ "start", diff --git a/node_modules/ace/lib/ace/mode/_test/tokens_coldfusion.json b/node_modules/ace/lib/ace/mode/_test/tokens_coldfusion.json index 804e647d..d7dd1269 100644 --- a/node_modules/ace/lib/ace/mode/_test/tokens_coldfusion.json +++ b/node_modules/ace/lib/ace/mode/_test/tokens_coldfusion.json @@ -1,26 +1,59 @@ [[ "start", - ["comment.xml",""] + ["comment.start",""] ],[ "start" ],[ "start", ["meta.tag.punctuation.tag-open.xml","<"], - ["meta.tag.tag-name.xml","cfset"], + ["keyword.tag-name.xml","cfset"], + ["text.tag-whitespace.xml"," "], + ["comment.start",""], + ["comment"," z "], + ["comment.end","--->"], ["text.tag-whitespace.xml"," "], ["entity.other.attribute-name.xml","welcome"], ["keyword.operator.attribute-equals.xml","="], ["string.attribute-value.xml","\"Hello World!\""], ["meta.tag.punctuation.tag-close.xml",">"] ],[ - "start" + "start", + ["comment.xml",""], + ["comment.xml"," z -->"] ],[ "start", ["meta.tag.punctuation.tag-open.xml","<"], - ["meta.tag.tag-name.xml","cfoutput"], + ["keyword.tag-name.xml","cfoutput"], ["meta.tag.punctuation.tag-close.xml",">"], ["text.xml","#welcome#"], ["meta.tag.punctuation.end-tag-open.xml",""] +],[ + "cfjs-start", + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.cfscript.tag-name.xml","cfscript"], + ["meta.tag.punctuation.tag-close.xml",">"] +],[ + "cfjs-no_regex", + ["text"," "], + ["identifier","Dateformat"], + ["paren.lparen","("], + ["identifier","now"], + ["paren.lparen","("], + ["paren.rparen","))"] +],[ + "start", + ["meta.tag.punctuation.end-tag-open.xml",""] ]] \ No newline at end of file diff --git a/node_modules/ace/lib/ace/mode/_test/tokens_javascript.json b/node_modules/ace/lib/ace/mode/_test/tokens_javascript.json index 1be3f605..b52a31bc 100644 --- a/node_modules/ace/lib/ace/mode/_test/tokens_javascript.json +++ b/node_modules/ace/lib/ace/mode/_test/tokens_javascript.json @@ -590,4 +590,70 @@ ["text"," "] ],[ "no_regex" +],[ + "no_regex", + ["keyword.operator","<"], + ["identifier","div"] +],[ + ["start","jsx_attr_qq","jsx_attr_qq","jsxAttributes","jsxAttributes","jsx",1], + ["identifier","z"], + ["keyword.operator","="], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","div"], + ["text.tag-whitespace.xml"," "], + ["paren.quasi.start","{"], + ["keyword.operator","..."], + ["variable.language","this"], + ["punctuation.operator","."], + ["identifier","props"], + ["paren.quasi.end","}"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","x"], + ["keyword.operator.attribute-equals.xml","="], + ["paren.quasi.start","{"], + ["constant.numeric","1"], + ["text"," "], + ["keyword.operator","+"], + ["text"," "], + ["constant.numeric","2"], + ["paren.quasi.end","}"], + ["text.tag-whitespace.xml"," "], + ["entity.other.attribute-name.xml","y"], + ["keyword.operator.attribute-equals.xml","="], + ["string.attribute-value.xml","\"z"], + ["paren.quasi.start","{"] +],[ + ["#tmp","no_regex","start","jsx_attr_qq","jsx_attr_qq","jsxAttributes","jsxAttributes","jsx",1], + ["text"," "], + ["constant.numeric","1"] +],[ + ["jsx",1], + ["text"," "], + ["paren.quasi.end","}"], + ["string.attribute-value.xml","e\""], + ["meta.tag.punctuation.tag-close.xml",">"] +],[ + ["jsx",1], + ["string","1 "], + ["meta.tag.punctuation.tag-open.xml","<"], + ["meta.tag.tag-name.xml","a"], + ["meta.tag.punctuation.tag-close.xml",">"], + ["string"," "], + ["paren.quasi.start","{"], + ["text"," "], + ["keyword.operator","++"], + ["identifier","x"], + ["text"," "], + ["paren.quasi.end","}"], + ["string"," "], + ["meta.tag.punctuation.end-tag-open.xml",""] +],[ + "start", + ["meta.tag.punctuation.end-tag-open.xml",""] +],[ + "start" ]] \ No newline at end of file diff --git a/node_modules/ace/lib/ace/mode/_test/tokens_markdown.json b/node_modules/ace/lib/ace/mode/_test/tokens_markdown.json index 29e878b2..3ac5c131 100644 --- a/node_modules/ace/lib/ace/mode/_test/tokens_markdown.json +++ b/node_modules/ace/lib/ace/mode/_test/tokens_markdown.json @@ -110,5 +110,5 @@ ],[ "allowBlock" ],[ - "start" -]] \ No newline at end of file + "allowBlock" +]] diff --git a/node_modules/ace/lib/ace/mode/_test/tokens_rust.json b/node_modules/ace/lib/ace/mode/_test/tokens_rust.json index fc05b78f..c8d3c20e 100644 --- a/node_modules/ace/lib/ace/mode/_test/tokens_rust.json +++ b/node_modules/ace/lib/ace/mode/_test/tokens_rust.json @@ -210,4 +210,4 @@ ["paren.rparen","}"] ],[ "start" -]] +]] \ No newline at end of file diff --git a/node_modules/ace/lib/ace/mode/_test/tokens_scala.json b/node_modules/ace/lib/ace/mode/_test/tokens_scala.json index 01dd3ce3..e59e55dc 100644 --- a/node_modules/ace/lib/ace/mode/_test/tokens_scala.json +++ b/node_modules/ace/lib/ace/mode/_test/tokens_scala.json @@ -115,7 +115,7 @@ ["text"," "], ["keyword","extends"], ["text"," "], - ["identifier","Application"], + ["support.function","Application"], ["text"," "], ["paren.lparen","{"] ],[ @@ -205,7 +205,7 @@ ],[ "start", ["text"," "], - ["identifier","println"], + ["keyword","println"], ["paren.lparen","("], ["string","\"Ping: Initializing with count \""], ["keyword.operator","+"], @@ -248,7 +248,7 @@ ],[ "start", ["text"," "], - ["identifier","println"], + ["keyword","println"], ["paren.lparen","("], ["string","\"Ping: starting.\""], ["paren.rparen",")"] @@ -327,7 +327,7 @@ ],[ "start", ["text"," "], - ["identifier","println"], + ["keyword","println"], ["paren.lparen","("], ["string","\"Ping: pong from: \""], ["keyword.operator","+"], @@ -362,7 +362,7 @@ ],[ "start", ["text"," "], - ["identifier","println"], + ["keyword","println"], ["paren.lparen","("], ["string","\"Ping: Stop.\""], ["paren.rparen",")"] @@ -472,7 +472,7 @@ ],[ "start", ["text"," "], - ["identifier","println"], + ["keyword","println"], ["paren.lparen","("], ["string","\"Pong: ping \""], ["keyword.operator","+"], @@ -513,7 +513,7 @@ ],[ "start", ["text"," "], - ["identifier","println"], + ["keyword","println"], ["paren.lparen","("], ["string","\"Pong: Stop.\""], ["paren.rparen",")"] diff --git a/node_modules/ace/lib/ace/mode/_test/tokens_soy_template.json b/node_modules/ace/lib/ace/mode/_test/tokens_soy_template.json index 9ae7c4ed..c4f95095 100644 --- a/node_modules/ace/lib/ace/mode/_test/tokens_soy_template.json +++ b/node_modules/ace/lib/ace/mode/_test/tokens_soy_template.json @@ -110,8 +110,8 @@ ["punctuation.definition.tag.end.soy","}"] ],[ "start", - ["comment.line.double-slash.soy"," "], - ["punctuation.definition.comment.soy","//"], + ["text.xml"," "], + ["comment.line.double-slash.soy","//"], ["comment.line.double-slash.soy"," Greet the person."] ],[ "start", @@ -130,8 +130,8 @@ ["meta.tag.punctuation.tag-close.xml",">"] ],[ "start", - ["comment.line.double-slash.soy"," "], - ["punctuation.definition.comment.soy","//"], + ["text.xml"," "], + ["comment.line.double-slash.soy","//"], ["comment.line.double-slash.soy"," Greet the additional people."] ],[ "start", @@ -189,8 +189,8 @@ ["meta.tag.punctuation.tag-open.xml","<"], ["meta.tag.tag-name.xml","br"], ["meta.tag.punctuation.tag-close.xml",">"], - ["comment.line.double-slash.soy"," "], - ["punctuation.definition.comment.soy","//"], + ["text.xml"," "], + ["comment.line.double-slash.soy","//"], ["comment.line.double-slash.soy"," break after every line except the last"] ],[ "start", diff --git a/node_modules/ace/lib/ace/mode/coffee_highlight_rules.js b/node_modules/ace/lib/ace/mode/coffee_highlight_rules.js index 94c9476f..3cad2843 100644 --- a/node_modules/ace/lib/ace/mode/coffee_highlight_rules.js +++ b/node_modules/ace/lib/ace/mode/coffee_highlight_rules.js @@ -167,7 +167,7 @@ define(function(require, exports, module) { regex : "(\\.)(\\s*)(" + illegal + ")" }, { token : "punctuation.operator", - regex : "\\." + regex : "\\.{1,3}" }, { //class A extends B token : ["keyword", "text", "language.support.class", diff --git a/node_modules/ace/lib/ace/mode/coldfusion_highlight_rules.js b/node_modules/ace/lib/ace/mode/coldfusion_highlight_rules.js index 5feff6d6..0004e8ee 100644 --- a/node_modules/ace/lib/ace/mode/coldfusion_highlight_rules.js +++ b/node_modules/ace/lib/ace/mode/coldfusion_highlight_rules.js @@ -37,8 +37,45 @@ var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; var ColdfusionHighlightRules = function() { HtmlHighlightRules.call(this); + this.$rules.tag[2].token = function (start, tag) { + var group = tag.slice(0,2) == "cf" ? "keyword" : "meta.tag"; + return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml", + group + ".tag-name.xml"]; + } - this.embedTagRules(JavaScriptHighlightRules, "cfjs-", "cfscript"); + var jsAndCss = Object.keys(this.$rules).filter(function(x) { + return /^(js|css)-/.test(x); + }); + this.embedRules({ + cfmlComment: [ + { regex: "", token: "comment.end", next: "pop"}, + { defaultToken: "comment"} + ] + }, "", [ + { regex: "