diff --git a/src/ace/Document.js b/src/ace/Document.js
index 40df85df..44aaae39 100644
--- a/src/ace/Document.js
+++ b/src/ace/Document.js
@@ -259,14 +259,6 @@ var Document = function(text, mode) {
return this.lines[row] || "";
};
- /**
- * Get a line as it is displayed on screen. Tabs are replaced by spaces.
- */
- this.getDisplayLine = function(row) {
- var tab = new Array(this.getTabSize()+1).join(" ");
- return this.lines[row].replace(/\t/g, tab);
- };
-
this.getLines = function(firstRow, lastRow) {
return this.lines.slice(firstRow, lastRow+1);
};
diff --git a/src/ace/Selection.js b/src/ace/Selection.js
index d7d01854..6609ff81 100644
--- a/src/ace/Selection.js
+++ b/src/ace/Selection.js
@@ -287,7 +287,7 @@ var Selection = function(doc) {
this.moveCursorLineStart = function() {
var row = this.selectionLead.row;
var column = this.selectionLead.column;
- var beforeCursor = this.doc.getDisplayLine(row).slice(0, column);
+ var beforeCursor = this.doc.getLine(row).slice(0, column);
var leadingSpace = beforeCursor.match(/^\s+/);
if (!leadingSpace || leadingSpace[0].length >= column)
this.moveCursorTo(this.selectionLead.row, 0);
diff --git a/src/ace/css/editor.css b/src/ace/css/editor.css
index d2db5f81..cd52dfe1 100644
--- a/src/ace/css/editor.css
+++ b/src/ace/css/editor.css
@@ -1,6 +1,9 @@
.ace_editor {
position: absolute;
overflow: hidden;
+
+ font-family: "Menlo", "Monaco", "Courier New", monospace;
+ font-size: 12px;
}
.ace_scroller {
diff --git a/src/ace/layer/Text.js b/src/ace/layer/Text.js
index 1a966776..8a43e005 100644
--- a/src/ace/layer/Text.js
+++ b/src/ace/layer/Text.js
@@ -221,18 +221,18 @@ var Text = function(parentEl) {
};
this.$renderLine = function(stringBuilder, row, tokens) {
- if (this.$showInvisibles) {
- var self = this;
- var spaceRe = /[\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]+/g;
- var spaceReplace = function(space) {
- var space = new Array(space.length+1).join(self.SPACE_CHAR);
- return "" + space + "";
- };
- }
- else {
+// if (this.$showInvisibles) {
+// var self = this;
+// var spaceRe = /[\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]+/g;
+// var spaceReplace = function(space) {
+// var space = new Array(space.length+1).join(self.SPACE_CHAR);
+// return "" + space + "";
+// };
+// }
+// else {
var spaceRe = /[\v\f \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]/g;
var spaceReplace = " ";
- }
+// }
for ( var i = 0; i < tokens.length; i++) {
var token = tokens[i];
@@ -244,7 +244,7 @@ var Text = function(parentEl) {
.replace(/\t/g, this.$tabString);
if (!this.$textToken[token.type]) {
- var classes = "ace_" + token.type.replace(".", " ace_");
+ var classes = "ace_" + token.type.replace(/\./g, " ace_");
stringBuilder.push("", output, "");
}
else {
diff --git a/src/ace/mode/CssHighlightRules.js b/src/ace/mode/CssHighlightRules.js
index 39f053a0..9d25aab0 100644
--- a/src/ace/mode/CssHighlightRules.js
+++ b/src/ace/mode/CssHighlightRules.js
@@ -68,6 +68,11 @@ var CssHighlightRules = function() {
"vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|" +
"zero").split("|")
);
+
+ var colors = lang.arrayToMap(
+ ("aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|" +
+ "purple|red|silver|teal|white|yellow").split("|")
+ );
// regexp must not have capturing parentheses. Use (?:) instead.
// regexps are ordered -> the first match is used
@@ -100,61 +105,61 @@ var CssHighlightRules = function() {
token : "string", // single line
regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
}, {
- token : "number",
+ token : "constant.numeric",
regex : numRe + ic("em")
}, {
- token : "number",
+ token : "constant.numeric",
regex : numRe + ic("ex")
}, {
- token : "number",
+ token : "constant.numeric",
regex : numRe + ic("px")
}, {
- token : "number",
+ token : "constant.numeric",
regex : numRe + ic("cm")
}, {
- token : "number",
+ token : "constant.numeric",
regex : numRe + ic("mm")
}, {
- token : "number",
+ token : "constant.numeric",
regex : numRe + ic("in")
}, {
- token : "number",
+ token : "constant.numeric",
regex : numRe + ic("pt")
}, {
- token : "number",
+ token : "constant.numeric",
regex : numRe + ic("pc")
}, {
- token : "number",
+ token : "constant.numeric",
regex : numRe + ic("deg")
}, {
- token : "number",
+ token : "constant.numeric",
regex : numRe + ic("rad")
}, {
- token : "number",
+ token : "constant.numeric",
regex : numRe + ic("grad")
}, {
- token : "number",
+ token : "constant.numeric",
regex : numRe + ic("ms")
}, {
- token : "number",
+ token : "constant.numeric",
regex : numRe + ic("s")
}, {
- token : "number",
+ token : "constant.numeric",
regex : numRe + ic("hz")
}, {
- token : "number",
+ token : "constant.numeric",
regex : numRe + ic("khz")
}, {
- token : "number",
+ token : "constant.numeric",
regex : numRe + "%"
}, {
- token : "number",
+ token : "constant.numeric",
regex : numRe
}, {
- token : "number", // hex6 color
+ token : "constant.numeric", // hex6 color
regex : "#[a-fA-F0-9]{6}"
}, {
- token : "number", // hex3 color
+ token : "constant.numeric", // hex3 color
regex : "#[a-fA-F0-9]{3}"
}, {
token : "lparen",
@@ -165,16 +170,19 @@ var CssHighlightRules = function() {
}, {
token : function(value) {
if (properties[value.toLowerCase()]) {
- return "constant.language";
+ return "support.type";
}
else if (functions[value.toLowerCase()]) {
- return "function.language";
+ return "support.function";
}
else if (constants[value.toLowerCase()]) {
- return "constant.library";
+ return "support.constant";
+ }
+ else if (colors[value.toLowerCase()]) {
+ return "support.constant.color";
}
else {
- return "identifier";
+ return "text";
}
},
regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"
diff --git a/src/ace/theme/Dawn.js b/src/ace/theme/Dawn.js
index d1167a67..7d4daf9d 100644
--- a/src/ace/theme/Dawn.js
+++ b/src/ace/theme/Dawn.js
@@ -13,8 +13,6 @@ require.def("ace/theme/Dawn",
width: 50px;\
background: #e8e8e8;\
color: #333;\
- font-family: \"Menlo\", \"Monaco\", \"Courier New\", monospace;\
- font-size: 11px;\
overflow : hidden;\
}\
\
@@ -39,8 +37,6 @@ require.def("ace/theme/Dawn",
.ace-dawn .ace_text-layer {\
cursor: text;\
color: #080808;\
- font-family: \"Menlo\", \"Monaco\", \"Courier New\", \"Courier\", monospace;\
- font-size: 11px;\
}\
\
.ace-dawn .ace_cursor {\
@@ -115,8 +111,12 @@ font-style:italic;\
color:#B52A1D;\
}\
\
-.ace-dawn .ace_function {\
- \
+.ace-dawn .ace_support {\
+ color:#691C97;\
+}\
+\
+.ace-dawn .ace_support.ace_function {\
+ color:#693A17;\
}\
\
.ace-dawn .ace_function.ace_buildin {\
diff --git a/src/ace/theme/IdleFingers.js b/src/ace/theme/IdleFingers.js
index a530fe8d..d52bc240 100644
--- a/src/ace/theme/IdleFingers.js
+++ b/src/ace/theme/IdleFingers.js
@@ -13,8 +13,6 @@ require.def("ace/theme/IdleFingers",
width: 50px;\
background: #e8e8e8;\
color: #333;\
- font-family: \"Menlo\", \"Monaco\", \"Courier New\", monospace;\
- font-size: 11px;\
overflow : hidden;\
}\
\
@@ -39,8 +37,6 @@ require.def("ace/theme/IdleFingers",
.ace-idle-fingers .ace_text-layer {\
cursor: text;\
color: #FFFFFF;\
- font-family: \"Menlo\", \"Monaco\", \"Courier New\", \"Courier\", monospace;\
- font-size: 11px;\
}\
\
.ace-idle-fingers .ace_cursor {\
@@ -111,10 +107,14 @@ background-color:#FF0000;\
\
}\
\
-.ace-idle-fingers .ace_function {\
+.ace-idle-fingers .ace_support {\
\
}\
\
+.ace-idle-fingers .ace_support.ace_function {\
+ color:#B83426;\
+}\
+\
.ace-idle-fingers .ace_function.ace_buildin {\
\
}\
diff --git a/src/ace/theme/Twilight.js b/src/ace/theme/Twilight.js
index 05a94a13..e228f62a 100644
--- a/src/ace/theme/Twilight.js
+++ b/src/ace/theme/Twilight.js
@@ -13,8 +13,6 @@ require.def("ace/theme/Twilight",
width: 50px;\
background: #e8e8e8;\
color: #333;\
- font-family: \"Menlo\", \"Monaco\", \"Courier New\", monospace;\
- font-size: 11px;\
overflow : hidden;\
}\
\
@@ -39,8 +37,6 @@ require.def("ace/theme/Twilight",
.ace-twilight .ace_text-layer {\
cursor: text;\
color: #F8F8F8;\
- font-family: \"Menlo\", \"Monaco\", \"Courier New\", \"Courier\", monospace;\
- font-size: 11px;\
}\
\
.ace-twilight .ace_cursor {\
@@ -113,8 +109,12 @@ font-style:italic;\
color:#D2A8A1;\
}\
\
-.ace-twilight .ace_function {\
- \
+.ace-twilight .ace_support {\
+ color:#9B859D;\
+}\
+\
+.ace-twilight .ace_support.ace_function {\
+ color:#DAD085;\
}\
\
.ace-twilight .ace_function.ace_buildin {\
diff --git a/src/ace/theme/eclipse.css b/src/ace/theme/eclipse.css
index 0afba302..ff24f87f 100644
--- a/src/ace/theme/eclipse.css
+++ b/src/ace/theme/eclipse.css
@@ -11,8 +11,6 @@
background: rgb(227, 227, 227);
border-right: 1px solid rgb(159, 159, 159);
color: rgb(136, 136, 136);
- font-family: Monaco, "Courier New";
- font-size: 11px;
}
.ace-eclipse .ace_gutter-layer {
@@ -21,8 +19,6 @@
}
.ace-eclipse .ace_text-layer {
- font-family: Monaco, "Courier New", monospace;
- font-size: 11px;
cursor: text;
}
diff --git a/src/ace/theme/tm.css b/src/ace/theme/tm.css
index 174fee8c..acc3d982 100644
--- a/src/ace/theme/tm.css
+++ b/src/ace/theme/tm.css
@@ -10,8 +10,6 @@
width: 50px;
background: #e8e8e8;
color: #333;
- font-family: "Menlo", "Monaco", "Courier New", monospace;
- font-size: 11px;
overflow : hidden;
}
@@ -31,8 +29,6 @@
.ace-tm .ace_text-layer {
cursor: text;
- font-family: "Menlo", "Monaco", "Courier New", "Courier", monospace;
- font-size: 11px;
}
.ace-tm .ace_cursor {
@@ -65,7 +61,7 @@
color: white;
}
-.ace-tm .ace_line .ace_function {
+.ace-tm .ace_line .ace_support.ace_function {
color: rgb(60, 76, 114);
}
diff --git a/tool/Theme.tmpl.css b/tool/Theme.tmpl.css
index 8a32f152..3ce12e1d 100644
--- a/tool/Theme.tmpl.css
+++ b/tool/Theme.tmpl.css
@@ -10,8 +10,6 @@
width: 50px;
background: #e8e8e8;
color: #333;
- font-family: "Menlo", "Monaco", "Courier New", monospace;
- font-size: 11px;
overflow : hidden;
}
@@ -36,8 +34,6 @@
.%cssClass% .ace_text-layer {
cursor: text;
color: %foreground%;
- font-family: "Menlo", "Monaco", "Courier New", "Courier", monospace;
- font-size: 11px;
}
.%cssClass% .ace_cursor {
@@ -107,8 +103,12 @@
%invalid.deprecated%
}
-.%cssClass% .ace_function {
- %function%
+.%cssClass% .ace_support {
+ %support%
+}
+
+.%cssClass% .ace_support.ace_function {
+ %support.function%
}
.%cssClass% .ace_function.ace_buildin {
diff --git a/tool/tmtheme.js b/tool/tmtheme.js
index 0540a376..bce7a1d7 100644
--- a/tool/tmtheme.js
+++ b/tool/tmtheme.js
@@ -63,6 +63,9 @@ var supportedScopes = {
"constant.library": "constant.library",
"constant.numeric": "constant.numeric",
+ "support": "support",
+ "support.function": "support.function",
+
"function": "function",
"function.buildin": "function.buildin",