Save everything in case computer melts

This commit is contained in:
Garen Torikian 2012-09-08 19:37:24 -07:00 • committed by nightwing
commit ff2ac65b2b
55 changed files with 2437 additions and 1289 deletions

View file

@ -75,7 +75,7 @@ var Mode = function(name, desc, extensions) {
this.name = name; this.name = name;
this.desc = desc; this.desc = desc;
this.mode = "ace/mode/" + name; this.mode = "ace/mode/" + name;
this.extRe = new RegExp("^.*\\.(" + extensions + ")$", "g"); this.extRe = new RegExp("^.*\\.(" + extensions + ")$" , "g");
}; };
Mode.prototype.supportsFile = function(filename) { Mode.prototype.supportsFile = function(filename) {
@ -83,49 +83,50 @@ Mode.prototype.supportsFile = function(filename) {
}; };
var modesByName = { var modesByName = {
c9search: ["C9Search" , "c9search_results"], c9search: ["C9Search" , "c9search_results"],
coffee: ["CoffeeScript" , "coffee|^Cakefile"], coffee: ["CoffeeScript" , "coffee|^Cakefile"],
coldfusion: ["ColdFusion" , "cfm"], coldfusion: ["ColdFusion" , "cfm"],
csharp: ["C#" , "cs"], csharp: ["C#" , "cs"],
css: ["CSS" , "css"], css: ["CSS" , "css"],
diff: ["Diff" , "diff|patch"], diff: ["Diff" , "diff|patch"],
glsl: ["Glsl" , "glsl|frag|vert"], glsl: ["Glsl" , "glsl|frag|vert"],
golang: ["Go" , "go"], golang: ["Go" , "go"],
groovy: ["Groovy" , "groovy"], groovy: ["Groovy" , "groovy"],
haxe: ["haXe" , "hx"], haxe: ["haXe" , "hx"],
html: ["HTML" , "htm|html|xhtml"], html: ["HTML" , "htm|html|xhtml"],
c_cpp: ["C/C++" , "c|cc|cpp|cxx|h|hh|hpp"], c_cpp: ["C/C++" , "c|cc|cpp|cxx|h|hh|hpp"],
clojure: ["Clojure" , "clj"], clojure: ["Clojure" , "clj"],
jade: ["Jade" , "jade"], jade: ["Jade" , "jade"],
java: ["Java" , "java"], java: ["Java" , "java"],
javascript: ["JavaScript" , "js"], javascript: ["JavaScript" , "js"],
json: ["JSON" , "json"], json: ["JSON" , "json"],
jsx: ["JSX" , "jsx"], jsx: ["JSX" , "jsx"],
latex: ["LaTeX" , "latex|tex|ltx|bib"], latex: ["LaTeX" , "latex|tex|ltx|bib"],
less: ["LESS" , "less"], less: ["LESS" , "less"],
liquid: ["Liquid" , "liquid"], liquid: ["Liquid" , "liquid"],
lua: ["Lua" , "lua"], lua: ["Lua" , "lua"],
luapage: ["LuaPage" , "lp"], // http://keplerproject.github.com/cgilua/manual.html#templates luapage: ["LuaPage" , "lp"], // http://keplerproject.github.com/cgilua/manual.html#templates
markdown: ["Markdown" , "md|markdown"], markdown: ["Markdown" , "md|markdown"],
ocaml: ["OCaml" , "ml|mli"], objectivec: ["Objective-C/C++" , "m"],
perl: ["Perl" , "pl|pm"], ocaml: ["OCaml" , "ml|mli"],
pgsql: ["pgSQL" , "pgsql"], perl: ["Perl" , "pl|pm"],
php: ["PHP" , "php|phtml"], pgsql: ["pgSQL" , "pgsql"],
powershell: ["Powershell" , "ps1"], php: ["PHP" , "php|phtml"],
python: ["Python" , "py"], powershell: ["Powershell" , "ps1"],
ruby: ["Ruby" , "ru|gemspec|rake|rb"], python: ["Python" , "py"],
scad: ["OpenSCAD" , "scad"], ruby: ["Ruby" , "ru|gemspec|rake|rb"],
scala: ["Scala" , "scala"], scad: ["OpenSCAD" , "scad"],
scss: ["SCSS" , "scss|sass"], scala: ["Scala" , "scala"],
sh: ["SH" , "sh|bash|bat"], scss: ["SCSS" , "scss|sass"],
sql: ["SQL" , "sql"], sh: ["SH" , "sh|bash|bat"],
svg: ["SVG" , "svg"], sql: ["SQL" , "sql"],
tcl: ["Tcl" , "tcl"], svg: ["SVG" , "svg"],
text: ["Text" , "txt"], tcl: ["Tcl" , "tcl"],
textile: ["Textile" , "textile"], text: ["Text" , "txt"],
xml: ["XML" , "xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl"], textile: ["Textile" , "textile"],
xquery: ["XQuery" , "xq"], xml: ["XML" , "xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl"],
yaml: ["YAML" , "yaml"] xquery: ["XQuery" , "xq"],
yaml: ["YAML" , "yaml"]
}; };
for (var name in modesByName) { for (var name in modesByName) {
@ -187,6 +188,7 @@ var docs = {
"docs/lua.lua": "Lua", "docs/lua.lua": "Lua",
"docs/luapage.lp": "LuaPage", "docs/luapage.lp": "LuaPage",
"docs/markdown.md": {name: "Markdown", wrapped: true}, "docs/markdown.md": {name: "Markdown", wrapped: true},
"docs/objectivec.m": "Objective-C",
"docs/ocaml.ml": "OCaml", "docs/ocaml.ml": "OCaml",
"docs/OpenSCAD.scad": "OpenSCAD", "docs/OpenSCAD.scad": "OpenSCAD",
"docs/perl.pl": "Perl", "docs/perl.pl": "Perl",
@ -236,7 +238,7 @@ function prepareDocList(docs) {
doc = {name: doc || path}; doc = {name: doc || path};
doc.path = path; doc.path = path;
doc.desc = doc.name.replace(/^(ace|docs|demo|build)\//, ""); doc.desc = doc.name.replace(/^(ace|docs|demo|build)\// , "");
if (doc.desc.length > 18) if (doc.desc.length > 18)
doc.desc = doc.desc.slice(0, 7) + ".." + doc.desc.slice(-9) doc.desc = doc.desc.slice(0, 7) + ".." + doc.desc.slice(-9)
@ -325,7 +327,7 @@ cmdLine.commands.bindKeys({
}, },
}) })
cmdLine.commands.removeCommands(["find", "gotoline", "findall", "replace", "replaceall"]) cmdLine.commands.removeCommands(["find" , "gotoline" , "findall" , "replace" , "replaceall"])
/** /**
* This demonstrates how you can define commands and bind shortcuts to them. * This demonstrates how you can define commands and bind shortcuts to them.
@ -389,15 +391,15 @@ var softTabEl = document.getElementById("soft_tab");
var behavioursEl = document.getElementById("enable_behaviours"); var behavioursEl = document.getElementById("enable_behaviours");
var group = document.createElement("optgroup"); var group = document.createElement("optgroup");
group.setAttribute("label", "Mode Examples"); group.setAttribute("label" , "Mode Examples");
fillDropdown(docs, group); fillDropdown(docs, group);
docEl.appendChild(group); docEl.appendChild(group);
var group = document.createElement("optgroup"); var group = document.createElement("optgroup");
group.setAttribute("label", "Huge documents"); group.setAttribute("label" , "Huge documents");
fillDropdown(hugeDocs, group); fillDropdown(hugeDocs, group);
docEl.appendChild(group); docEl.appendChild(group);
var group = document.createElement("optgroup"); var group = document.createElement("optgroup");
group.setAttribute("label", "own source"); group.setAttribute("label" , "own source");
fillDropdown(ownSource, group); fillDropdown(ownSource, group);
docEl.appendChild(group); docEl.appendChild(group);
@ -479,13 +481,13 @@ function saveOption(el, val) {
} }
} }
event.addListener(themeEl, "mouseover", function(e){ event.addListener(themeEl , "mouseover", function(e){
this.desiredValue = e.target.value; this.desiredValue = e.target.value;
if (!this.$timer) if (!this.$timer)
this.$timer = setTimeout(this.updateTheme); this.$timer = setTimeout(this.updateTheme);
}) })
event.addListener(themeEl, "mouseout", function(e){ event.addListener(themeEl , "mouseout", function(e){
this.desiredValue = null; this.desiredValue = null;
if (!this.$timer) if (!this.$timer)
this.$timer = setTimeout(this.updateTheme, 20); this.$timer = setTimeout(this.updateTheme, 20);
@ -653,11 +655,11 @@ function fillDropdown(list, el) {
/************** dragover ***************************/ /************** dragover ***************************/
event.addListener(container, "dragover", function(e) { event.addListener(container , "dragover", function(e) {
return event.preventDefault(e); return event.preventDefault(e);
}); });
event.addListener(container, "drop", function(e) { event.addListener(container , "drop", function(e) {
var file; var file;
try { try {
file = e.dataTransfer.files[0]; file = e.dataTransfer.files[0];
@ -753,7 +755,7 @@ var statusUpdate = lang.deferredCall(function() {
add("REC"); add("REC");
var c = editor.selection.lead; var c = editor.selection.lead;
add(c.row + ":" + c.column, " "); add(c.row + ":" + c.column , " ");
if (!editor.selection.isEmpty()) { if (!editor.selection.isEmpty()) {
var r = editor.getSelectionRange() var r = editor.getSelectionRange()
add("(" + (r.end.row - r.start.row) + ":" +(r.end.column - r.start.column) + ")"); add("(" + (r.end.row - r.start.row) + ":" +(r.end.column - r.start.column) + ")");

View file

@ -1,158 +1,45 @@
!!!doctype !!!doctype
!!!5 !!!5
!!!
- var methodSection, constructorSection, propertySection, eventSection; include something
-function renameMemberTitle(title, count) include another_thing
if title.indexOf("ethods") >= 0
span Functions (#{count})
else if title.indexOf("ropert") >= 0
span Properties (#{count})
else
span.AS.AS.AS #{title} (#{count})
// let's talk about it
//
here it is. a block comment!
and another row!
but not here.
//
a far spaced
should be lack of block
// also not a comment
div.attemptAtBlock
span#myName
#{implicit}
!{more_explicit}
#idDiv
.idDiv
test(id="tag")
header(id="tag", blah="foo", meh="aads")
mixin article(obj, parents) mixin article(obj, parents)
if typeof obj === 'string'
obj = list[obj]
title = obj.id + (obj.type ? ' (' + obj.type + ')' : '') mixin bleh()
article.article(id=obj.path, data-title=title)
if obj.type === 'section' || obj.type === 'namespace' || obj.type === 'class' || obj.type === 'mixin'
if obj.stability mixin clever-name
mixin markdown
span.label.deprecated -var x = "0";
| Deprecated - y each z
if obj.deprecated.from
|   (since #{obj.deprecated.from})
if obj.deprecated.off
|  and will be removed on #{obj.deprecated.off}
if obj.alias_of
li
span.label.alias.single
| Aliased as:
!= link(obj.alias_of)
div.sideToggler
div(id='ellipsis_#{obj.id}', class='ellipsis_description') - var items = ["one", "two", "three"]
mixin markdown(obj.short_description) each item in items
li= item
h3(id='#{obj.id}', class='methodToggle methodClicker inactive')
   
div.description
mixin markdown(obj.description)
if obj.bound && ~obj.bound.indexOf('#')
p.note.methodized
| This method can be called <em>either</em> as an
!= link(obj.bound, ['link-short'], 'instance method')
| <em>or</em> as a generic method. If calling as generic, pass the instance in as the first argument.
else if obj.bound && !~obj.bound.indexOf('#')
p.note.functionalized
| This method can be called <em>either</em> as an instance method <em>or</em> as a
!= link(obj.bound, ['link-short'], 'generic method')
|. If calling as generic, pass the instance in as the first argument.
if obj.arguments
h4 Arguments
!= argumentTable(obj.arguments, ["argument-list", "table", "table-striped", "table-bordered"])
if obj.returns
h4 Returns
!= returnTable(obj.returns, ["return-list", "table", "table-striped", "table-bordered"])
//- children
for child in obj.children.filter(function(x){return x.type === 'section'})
mixin article(child, parents.concat(obj))
for child in obj.children.filter(function(x){return x.type === 'utility'})
mixin article(child, parents.concat(obj))
for child in obj.children.filter(function(x){return x.type === 'constructor'})
- if (!constructorSection)
- constructorSection = true
h3.sectionHeader Constructors
mixin article(child, parents.concat(obj))
for child in obj.children.filter(function(x){return x.type === 'namespace' || x.type === 'class' || x.type === 'mixin'})
mixin article(child, parents.concat(obj))
for child in obj.children.filter(function(x){return x.type === 'event'})
- if (!eventSection)
- eventSection = true
h3.sectionHeader Events
mixin article(child, parents.concat(obj), 'event')
for child in obj.children.filter(function(x){return x.type === 'class method'})
- if (!methodSection)
- methodSection = true
h3.sectionHeader Methods
mixin article(child, parents.concat(obj))
for child in obj.children.filter(function(x){return x.type === 'class property'})
- if (!propertySection)
- propertySection = true
h3.sectionHeader Properties
mixin article(child, parents.concat(obj))
for child in obj.children.filter(function(x){return x.type === 'instance method'})
mixin article(child, parents.concat(obj))
for child in obj.children.filter(function(x){return x.type === 'instance property'})
mixin article(child, parents.concat(obj))
for child in obj.children.filter(function(x){return x.type === 'constant'})
mixin article(child, parents.concat(obj))
mixin api()
-pos = 0
for obj in tree.children
.classContent
.membersBackground
div(class=' members pos#{pos}')
div(class=' membersContent pos#{pos}')
h1.memberHeader
-var heading = obj.path
span.name #{heading}
-if (true || obj.filename.indexOf("index") < 0)
ul(class='nav tabs pos#{pos}', data-tabs='tabs')
for selector, title in {'Events': ['event', 'events'], 'Constructors': ['constructor', 'constructors'], 'Class methods': ['class method', 'class_methods'], 'Class properties': ['class property', 'class_properties'], 'Instance methods': ['instance method', 'instance_methods'], 'Instance properties': ['instance property', 'instance_properties'], 'Constants': ['constant', 'constants']}
members = obj.children.filter(function(x){return x.type === selector[0]})
li(class="dropdown", data-dropdown="dropdown")
if members.length
a(href="\#", class="dropdown-toggle", data-toggle="dropdown")
!= renameMemberTitle(title, members.length)
b.caret
ul.dropdown-menu
for m in members
li(data-id='#{m.id}', class='memberLink')
mixin link(m, [], true)
-pos++
-methodSection = constructorSection = propertySection = eventSection = false;
mixin article(obj, [])
mixin short_description_list(collection)
ul.method-details-list
for obj in collection
if typeof obj === 'string'
obj = list[obj]
li.method-description
h4
mixin link(obj)
if obj.short_description
mixin markdown(obj.short_description)
mixin link(obj, classes, short)
l = link(obj, classes, short)
!= l
mixin links(collection)
ul.method-list
for obj in collection
li
mixin link(obj)

View file

@ -0,0 +1,11 @@
@protocol Printing: someParent
-(void) print;
@end
@interface Fraction: NSObject <Printing, NSCopying> {
int numerator;
int denominator;
}
@end
@"blah" @"asd\d" @"\fawn\\"

View file

@ -1,38 +1,35 @@
/* ***** BEGIN LICENSE BLOCK ***** /* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1 * Distributed under the BSD license:
* *
* The contents of this file are subject to the Mozilla Public License Version * Copyright (c) 2012, Ajax.org B.V.
* 1.1 (the "License"); you may not use this file except in compliance with * All rights reserved.
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
* *
* Software distributed under the License is distributed on an "AS IS" basis, * Redistribution and use in source and binary forms, with or without
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * modification, are permitted provided that the following conditions are met:
* for the specific language governing rights and limitations under the * * Redistributions of source code must retain the above copyright
* License. * notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of Ajax.org B.V. nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
* *
* The Original Code is Ajax.org Code Editor (ACE). * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* *
* The Initial Developer of the Original Code is
* Ajax.org B.V.
* Portions created by the Initial Developer are Copyright (C) 2010
* the Initial Developer. All Rights Reserved.
* *
* Contributor(s): * Contributor(s):
* Garen J. Torikian <gjtorikian AT gmail DOT com>
* Alexander Hanhikoski <https://github.com/alexhanh>
* *
* Alternatively, the contents of this file may be used under the terms of * Garen J. Torikian <gjtorikian @ gmail DOT com>
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */

View file

@ -1,7 +1,7 @@
/* ***** BEGIN LICENSE BLOCK ***** /* ***** BEGIN LICENSE BLOCK *****
* Distributed under the BSD license: * Distributed under the BSD license:
* *
* Copyright (c) 2010, Ajax.org B.V. * Copyright (c) 2012, Ajax.org B.V.
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@ -29,7 +29,7 @@
* *
* Contributor(s): * Contributor(s):
* *
* * Garen J. Torikian <gjtorikian @ gmail DOT com>
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
@ -38,9 +38,30 @@ define(function(require, exports, module) {
var oop = require("../lib/oop"); var oop = require("../lib/oop");
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
var MarkdownHighlightRules = require("./markdown_highlight_rules").MarkdownHighlightRules;
var SassHighlightRules = require("./scss_highlight_rules").ScssHighlightRules;
var LessHighlightRules = require("./less_highlight_rules").LessHighlightRules;
var CoffeeHighlightRules = require("./coffee_highlight_rules").CoffeeHighlightRules;
var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules;
function mixin_embed(tag, prefix) {
return {
token : "entity.name.function.jade",
regex : "^\\s*\\:" + tag,
next : prefix + "start"
};
}
var JadeHighlightRules = function() { var JadeHighlightRules = function() {
var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex
"u[0-9a-fA-F]{4}|" + // unicode
"[0-2][0-7]{0,2}|" + // oct
"3[0-6][0-7]?|" + // oct
"37[0-7]?|" + // oct
"[4-7][0-7]?|" + //oct
".)";
// regexp must not have capturing parentheses. Use (?:) instead. // regexp must not have capturing parentheses. Use (?:) instead.
// regexps are ordered -> the first match is used // regexps are ordered -> the first match is used
@ -49,45 +70,36 @@ var JadeHighlightRules = function() {
"start": [ "start": [
{ {
"token": "keyword.control.import.include.jade", "token": "keyword.control.import.include.jade",
"regex": "^\\s*\\binclude\\b" "regex": "\\s*\\binclude\\b"
}, },
{ {
"token": "keyword.other.doctype.jade", "token": "keyword.other.doctype.jade",
"regex": "^!!!\\s*[a-zA-Z0-9-_]+?" "regex": "^!!!\\s*(?:[a-zA-Z0-9-_]+)?"
}, },
{ {
"token": "punctuation.section.comment.jade", "token" : "punctuation.section.comment",
"regex": "^ *//\\s*\\S.*$\\n?" "regex" : "^\\s*\/\/(?:\\s*[^-\\s]|\\s+\\S)(?:.*$)",
}, },
{ {
"token": "punctuation.section.comment.jade", "token" : function(space, text) {
"regex": "^\\s*//\\s*$", return "punctuation.section.comment";
"next": "block_comment" },
}, "regex" : "^((\\s*)\/\/)(?:\\s*$)",
/*{ "next": "comment_block"
"token": "entity.name.function.jade",
"regex": "^\\s*\\:markdown",
"next": "markdown_filter"
}, },
mixin_embed("markdown", "markdown-"),
mixin_embed("sass", "sass-"),
mixin_embed("less", "less-"),
mixin_embed("coffee", "coffee-"),
/*
{ {
"token": "entity.name.function.jade", "token": {
"regex": "^\\s*\\:sass", "2": {
"next": "sass_filter" "name": "entity.name.function.jade"
}, }
{ },
"token": "entity.name.function.jade", "regex": "^(\\s*)(\\:cdata)",
"regex": "^\\s*\\:less", "next": "state_9"
"next": "less_filter"
},
{
"token": "entity.name.function.jade",
"regex": "^\\s*\\:coffeescript",
"next": "coffeescript_filter"
},
{
"token": "entity.name.function.jade",
"regex": "^\\s*\\:cdata",
"next": "cdata_9"
},*/ },*/
// match stuff like: mixin dialog-title-desc(title, desc) // match stuff like: mixin dialog-title-desc(title, desc)
{ {
@ -96,104 +108,66 @@ var JadeHighlightRules = function() {
"punctuation.definition.parameters.begin.jade", "punctuation.definition.parameters.begin.jade",
"variable.parameter.function.jade", "variable.parameter.function.jade",
"punctuation.definition.parameters.end.jade" "punctuation.definition.parameters.end.jade"
], ],
"regex": "^(\\s*mixin) ([\\w\\-]+)(\\s*\\()(.*?)(\\))" "regex": "^(\\s*mixin)( [\\w\\-]+)(\\s*\\()(.*?)(\\))"
}, },
// match stuff like: mixin dialog-title-desc // match stuff like: mixin dialog-title-desc
{ {
"token": ["storage.type.function.jade", "token": [ "storage.type.function.jade", "entity.name.function.jade"],
"entity.name.function.jade"
],
"regex": "^(\\s*mixin)( [\\w\\-]+)" "regex": "^(\\s*mixin)( [\\w\\-]+)"
}, },
{ /* {
"regex": "^\\s*(-|=|!=)", "token": "source.js.embedded.jade",
"next": "state_12" "regex": "^\\s*-|=|!=",
}, "next": "js_code"
{ },*/
"token": { /*{
"2": { "token": "entity.name.tag.script.jade",
"name": "entity.name.tag.script.jade" "regex": "^\\s*script",
} "next": "js_code_tag"
}, },*/
"regex": "^(\\s*)(script)",
"next": "state_13"
},
{ {
"token": "string.interpolated.jade", "token": "string.interpolated.jade",
"regex": "[#!]\\{[^\\}]+\\}" "regex": "[#!]\\{[^\\}]+\\}"
}, },
// Match any tag, id or class. skip AST filters // Match any tag, id or class. skip AST filters
{ {
"token": { "token": ["meta.tag.any.jade", "entity.variable.tag.jade"],
"1": { "regex": /^\s*(?!\w+\:)(?:[\w]+|(?=\.|#)])/,
"name": "meta.tag.any.jade" "next": "tag_single"
}, },
"2": { {
"name": "entity.name.tag.jade" "token": "suport.type.attribute.id.jade",
} "regex": "#\\w+"
},
{
"token": "suport.type.attribute.class.jade",
"regex": "\\.\\w+"
},
{
"token": "punctuation",
"regex": "\\s*(?:\\()",
"next": "tag_attributes"
}
],
"comment_block": [
{
"token": function(text) {
return "text";
}, },
"regex": "^\\s*(?!\\w+\\:)(?:(([\\w]+))|(?=\\.|#))", "regex": "^(\\1\\S|$)",
"next": "state_15" "captures": "1",
},
{
"regex": "(?<=\\w)\\s*\\(", // ERROR: This contains a lookbehind, which JS does not support :(",
"next": "state_16"
}
],
"block_comment": [
{
"token": "text",
"regex": "^(?!\\1\\s+|$)",
"next": "start" "next": "start"
}, },
{ {
"token": "text", "token": "comment.block.jade",
"regex": ".+", "merge" : true,
"next": "block_comment" "regex" : ".+"
} }
], ],
/*"markdown_filter": [ /*
{
"include": "text.html.markdown" "state_9": [
},
{
"token": "TODO",
"regex": "^(?!\\1\\s+)",
"next": "start"
}
],
"sass_filter": [
{
"include": "source.sass"
},
{
"token": "TODO",
"regex": "^(?!\\1\\s+)",
"next": "start"
}
],
"less_filter": [
{
"include": "source.css.less"
},
{
"token": "TODO",
"regex": "^(?!\\1\\s+)",
"next": "start"
}
],
"coffee_filter": [
{
"include": "source.coffee"
},
{
"token": "TODO",
"regex": "^(?!\\1\\s+)",
"next": "start"
}
],
"cdata_filter": [
{ {
"token": "TODO", "token": "TODO",
"regex": "^(?!\\1\\s+)", "regex": "^(?!\\1\\s+)",
@ -205,22 +179,18 @@ var JadeHighlightRules = function() {
"next": "state_9" "next": "state_9"
} }
],*/ ],*/
"state_12": [ /*"js_code": [
{
"include": "source.js"
},
{ {
"token": "keyword.control.js", "token": "keyword.control.js",
"regex": "\\b(each)\\b" "regex": "\\beach\\b"
}, },
{ {
"token": "TODO", "token": "text",
"regex": "$", "regex": "$",
"next": "start" "next": "start"
} }
], ],*/
"state_13": [ /*"js_code_tag": [
{},
{ {
"include": "source.js" "include": "source.js"
}, },
@ -229,33 +199,122 @@ var JadeHighlightRules = function() {
"regex": "^((?=(\\1)([\\w#\\.]|$\\n?))|^$\\n?)", "regex": "^((?=(\\1)([\\w#\\.]|$\\n?))|^$\\n?)",
"next": "start" "next": "start"
} }
], ],*/
"state_15": [ "tag_single": [
{ {
"token": "meta.tag.attribute.class.jade", "token": "suport.type.attribute.class.jade",
"regex": "\\.[\\w-]+" "regex": "\\.[\\w-]+"
}, },
{ {
"token": "meta.tag.attribute.id.jade", "token": "suport.type.attribute.id.jade",
"regex": "#[\\w-]+" "regex": "#[\\w-]+"
}, },
{ {
"token": "TODO", "token": ["text", "punctuation"],
"regex": "$|(?!\\.|#|=|-)", "regex": "($)|((?!\\.|#|=|-))",
"next": "start" "next": "start"
} }
], ],
"state_16": [ "tag_attributes": [
{ {
"include": "#tag-stuff" "token": ["entity.other.attribute-name.jade", "punctuation"],
"regex": "\\b([a-zA-Z:\\.-]+)(=)",
"next": "attribute_strings"
}, },
{ {
"token": "TODO", "token": "punctuation",
"regex": "\\)", "regex": "\\)",
"next": "start" "next": "start"
} }
],
"attribute_strings": [
{
"token" : "string",
"regex" : "'(?=.)",
"next" : "qstring"
},
{
"token" : "string",
"regex" : '"(?=.)',
"next" : "qqstring"
}
],
"qqstring" : [
{
token : "constant.language.escape",
regex : escapedRe
}, {
token : "string",
regex : '[^"\\\\]+',
merge : true
}, {
token : "string",
regex : "\\\\$",
next : "qqstring",
merge : true
}, {
token : "string",
regex : '"|$',
next : "tag_attributes",
merge : true
}
],
"qstring" : [
{
token : "constant.language.escape",
regex : escapedRe
}, {
token : "string",
regex : "[^'\\\\]+",
merge : true
}, {
token : "string",
regex : "\\\\$",
next : "qstring",
merge : true
}, {
token : "string",
regex : "'|$",
next : "tag_attributes",
merge : true
}
] ]
} };
/*
this.embedRules(MarkdownHighlightRules, "markdown-", [{
token : "support.function",
regex : "^\\1\\s+",
captures: "1",
next : "start"
}]);
this.embedRules(SassHighlightRules, "sass-", [{
token : "support.function",
regex : "^(?!\\1\\s+)",
captures: "1",
next : "start"
}]);
this.embedRules(LessHighlightRules, "less-", [{
token : "support.function",
regex : "^(?!\\1\\s+)",
captures: "1",
next : "start"
}]);
this.embedRules(CoffeeHighlightRules, "coffee-", [{
token : "support.function",
regex : "^(?!\\1\\s+)",
captures: "1",
next : "start"
}]);
this.embedRules(JavaScriptHighlightRules, "js-", [{
token : "support.function",
regex : "$",
captures: "1",
next : "start"
}]); */
}; };
oop.inherits(JadeHighlightRules, TextHighlightRules); oop.inherits(JadeHighlightRules, TextHighlightRules);

View file

@ -0,0 +1,60 @@
/* ***** BEGIN LICENSE BLOCK *****
* Distributed under the BSD license:
*
* Copyright (c) 2012, Ajax.org B.V.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of Ajax.org B.V. nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*
* Contributor(s):
*
*
*
* ***** END LICENSE BLOCK ***** */
/*
THIS FILE WAS AUTOGENERATED BY mode.tmpl.js
*/
define(function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var Tokenizer = require("../tokenizer").Tokenizer;
var ObjectiveCHighlightRules = require("./objectivec_highlight_rules").ObjectiveCHighlightRules;
var Mode = function() {
var highlighter = new ObjectiveCHighlightRules();
this.$tokenizer = new Tokenizer(highlighter.getRules());
};
oop.inherits(Mode, TextMode);
(function() {
// Extra logic goes here. (see below)
}).call(Mode.prototype);
exports.Mode = Mode;
});

File diff suppressed because one or more lines are too long

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-clouds .ace_editor { .ace-clouds .ace_editor {
border: 2px solid rgb(159, 159, 159); border: 2px solid rgb(159, 159, 159);
@ -8,7 +9,7 @@
} }
.ace-clouds .ace_gutter { .ace-clouds .ace_gutter {
background: #ebebeb; background: #e8e8e8;
color: #333; color: #333;
} }
@ -44,7 +45,7 @@
} }
.ace-clouds .ace_marker-layer .ace_step { .ace-clouds .ace_marker-layer .ace_step {
background: rgb(255, 255, 0); background: rgb(198, 219, 174);
} }
.ace-clouds .ace_marker-layer .ace_bracket { .ace-clouds .ace_marker-layer .ace_bracket {
@ -57,7 +58,7 @@
} }
.ace-clouds .ace_gutter_active_line { .ace-clouds .ace_gutter_active_line {
background-color : #dcdcdc; background-color: #FFFBD1;
} }
.ace-clouds .ace_marker-layer .ace_selected_word { .ace-clouds .ace_marker-layer .ace_selected_word {
@ -116,7 +117,3 @@
.ace-clouds .ace_markup.ace_underline { .ace-clouds .ace_markup.ace_underline {
text-decoration:underline; text-decoration:underline;
} }
.ace-clouds .ace_indent-guide {
background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;
}

View file

@ -28,6 +28,8 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) { define(function(require, exports, module) {
exports.isDark = false; exports.isDark = false;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-clouds-midnight .ace_editor { .ace-clouds-midnight .ace_editor {
border: 2px solid rgb(159, 159, 159); border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
} }
.ace-clouds-midnight .ace_gutter { .ace-clouds-midnight .ace_gutter {
background: #232323; background: #e8e8e8;
color: #929292; color: #333;
} }
.ace-clouds-midnight .ace_print_margin { .ace-clouds-midnight .ace_print_margin {
width: 1px; width: 1px;
background: #232323; background: #e8e8e8;
} }
.ace-clouds-midnight .ace_scroller { .ace-clouds-midnight .ace_scroller {
@ -44,7 +45,7 @@
} }
.ace-clouds-midnight .ace_marker-layer .ace_step { .ace-clouds-midnight .ace_marker-layer .ace_step {
background: rgb(102, 82, 0); background: rgb(198, 219, 174);
} }
.ace-clouds-midnight .ace_marker-layer .ace_bracket { .ace-clouds-midnight .ace_marker-layer .ace_bracket {
@ -117,7 +118,3 @@ background-color:#E92E2E;
.ace-clouds-midnight .ace_markup.ace_underline { .ace-clouds-midnight .ace_markup.ace_underline {
text-decoration:underline; text-decoration:underline;
} }
.ace-clouds-midnight .ace_indent-guide {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWOQlJT8z1BeXv4fAA2KA6+h9Z+2AAAAAElFTkSuQmCC) right repeat-y;
}

View file

@ -28,6 +28,8 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) { define(function(require, exports, module) {
exports.isDark = true; exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-cobalt .ace_editor { .ace-cobalt .ace_editor {
border: 2px solid rgb(159, 159, 159); border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
} }
.ace-cobalt .ace_gutter { .ace-cobalt .ace_gutter {
background: #011e3a; background: #e8e8e8;
color: #fff; color: #333;
} }
.ace-cobalt .ace_print_margin { .ace-cobalt .ace_print_margin {
width: 1px; width: 1px;
background: #011e3a; background: #e8e8e8;
} }
.ace-cobalt .ace_scroller { .ace-cobalt .ace_scroller {
@ -44,7 +45,7 @@
} }
.ace-cobalt .ace_marker-layer .ace_step { .ace-cobalt .ace_marker-layer .ace_step {
background: rgb(127, 111, 19); background: rgb(198, 219, 174);
} }
.ace-cobalt .ace_marker-layer .ace_bracket { .ace-cobalt .ace_marker-layer .ace_bracket {
@ -57,7 +58,7 @@
} }
.ace-cobalt .ace_gutter_active_line { .ace-cobalt .ace_gutter_active_line {
background-color : rgba(0, 0, 0, 0.35); background-color: rgba(0, 0, 0, 0.35);
} }
.ace-cobalt .ace_marker-layer .ace_selected_word { .ace-cobalt .ace_marker-layer .ace_selected_word {
@ -76,10 +77,6 @@
color:#FF628C; color:#FF628C;
} }
.ace-cobalt .ace_constant.ace_character, {
color:#FF628C;
}
.ace-cobalt .ace_constant.ace_character.ace_escape, { .ace-cobalt .ace_constant.ace_character.ace_escape, {
color:#FF628C; color:#FF628C;
} }
@ -143,7 +140,3 @@ background-color:#001221;
.ace-cobalt .ace_markup.ace_list { .ace-cobalt .ace_markup.ace_list {
background-color:#130D26; background-color:#130D26;
} }
.ace-cobalt .ace_indent-guide {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgUHL4zzBz5sz/AA80BCzv+WXhAAAAAElFTkSuQmCC) right repeat-y;
}

View file

@ -28,6 +28,8 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) { define(function(require, exports, module) {
exports.isDark = true; exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-dawn .ace_editor { .ace-dawn .ace_editor {
border: 2px solid rgb(159, 159, 159); border: 2px solid rgb(159, 159, 159);
@ -8,7 +9,7 @@
} }
.ace-dawn .ace_gutter { .ace-dawn .ace_gutter {
background: #ebebeb; background: #e8e8e8;
color: #333; color: #333;
} }
@ -44,7 +45,7 @@
} }
.ace-dawn .ace_marker-layer .ace_step { .ace-dawn .ace_marker-layer .ace_step {
background: rgb(255, 255, 0); background: rgb(198, 219, 174);
} }
.ace-dawn .ace_marker-layer .ace_bracket { .ace-dawn .ace_marker-layer .ace_bracket {
@ -57,7 +58,7 @@
} }
.ace-dawn .ace_gutter_active_line { .ace-dawn .ace_gutter_active_line {
background-color : #dcdcdc; background-color: rgba(36, 99, 180, 0.12);
} }
.ace-dawn .ace_marker-layer .ace_selected_word { .ace-dawn .ace_marker-layer .ace_selected_word {
@ -76,10 +77,6 @@
color:#811F24; color:#811F24;
} }
.ace-dawn .ace_constant.ace_character, {
color:#811F24;
}
.ace-dawn .ace_constant.ace_character.ace_escape, { .ace-dawn .ace_constant.ace_character.ace_escape, {
color:#811F24; color:#811F24;
} }
@ -147,7 +144,3 @@ color:#5A525F;
.ace-dawn .ace_markup.ace_list { .ace-dawn .ace_markup.ace_list {
color:#693A17; color:#693A17;
} }
.ace-dawn .ace_indent-guide {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4+fPnf4ZVq1b9BwAkVQboFQv98gAAAABJRU5ErkJggg==) right repeat-y;
}

View file

@ -28,6 +28,8 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) { define(function(require, exports, module) {
exports.isDark = false; exports.isDark = false;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-idle-fingers .ace_editor { .ace-idle-fingers .ace_editor {
border: 2px solid rgb(159, 159, 159); border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
} }
.ace-idle-fingers .ace_gutter { .ace-idle-fingers .ace_gutter {
background: #3b3b3b; background: #e8e8e8;
color: #fff; color: #333;
} }
.ace-idle-fingers .ace_print_margin { .ace-idle-fingers .ace_print_margin {
width: 1px; width: 1px;
background: #3b3b3b; background: #e8e8e8;
} }
.ace-idle-fingers .ace_scroller { .ace-idle-fingers .ace_scroller {
@ -44,7 +45,7 @@
} }
.ace-idle-fingers .ace_marker-layer .ace_step { .ace-idle-fingers .ace_marker-layer .ace_step {
background: rgb(102, 82, 0); background: rgb(198, 219, 174);
} }
.ace-idle-fingers .ace_marker-layer .ace_bracket { .ace-idle-fingers .ace_marker-layer .ace_bracket {
@ -76,10 +77,6 @@
color:#6C99BB; color:#6C99BB;
} }
.ace-idle-fingers .ace_constant.ace_character, {
color:#6C99BB;
}
.ace-idle-fingers .ace_constant.ace_character.ace_escape, { .ace-idle-fingers .ace_constant.ace_character.ace_escape, {
color:#6C99BB; color:#6C99BB;
} }
@ -133,9 +130,5 @@ color:#BC9458;
.ace-idle-fingers .ace_collab.ace_user1 { .ace-idle-fingers .ace_collab.ace_user1 {
color:#323232; color:#323232;
background-color:#FFF980; background-color:#FFF980;
}
.ace-idle-fingers .ace_indent-guide {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMwMjL6zzBz5sz/ABEUBGCqhK6UAAAAAElFTkSuQmCC) right repeat-y;
} }

View file

@ -28,6 +28,8 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) { define(function(require, exports, module) {
exports.isDark = true; exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-kr-theme .ace_editor { .ace-kr-theme .ace_editor {
border: 2px solid rgb(159, 159, 159); border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
} }
.ace-kr-theme .ace_gutter { .ace-kr-theme .ace_gutter {
background: #1c1917; background: #e8e8e8;
color: #FCFFE0; color: #333;
} }
.ace-kr-theme .ace_print_margin { .ace-kr-theme .ace_print_margin {
width: 1px; width: 1px;
background: #1c1917; background: #e8e8e8;
} }
.ace-kr-theme .ace_scroller { .ace-kr-theme .ace_scroller {
@ -44,7 +45,7 @@
} }
.ace-kr-theme .ace_marker-layer .ace_step { .ace-kr-theme .ace_marker-layer .ace_step {
background: rgb(102, 82, 0); background: rgb(198, 219, 174);
} }
.ace-kr-theme .ace_marker-layer .ace_bracket { .ace-kr-theme .ace_marker-layer .ace_bracket {
@ -57,7 +58,7 @@
} }
.ace-kr-theme .ace_gutter_active_line { .ace-kr-theme .ace_gutter_active_line {
background-color : #38403D; background-color: #38403D;
} }
.ace-kr-theme .ace_marker-layer .ace_selected_word { .ace-kr-theme .ace_marker-layer .ace_selected_word {
@ -76,10 +77,6 @@
color:rgba(210, 117, 24, 0.76); color:rgba(210, 117, 24, 0.76);
} }
.ace-kr-theme .ace_constant.ace_character, {
color:rgba(210, 117, 24, 0.76);
}
.ace-kr-theme .ace_constant.ace_character.ace_escape, { .ace-kr-theme .ace_constant.ace_character.ace_escape, {
color:rgba(210, 117, 24, 0.76); color:rgba(210, 117, 24, 0.76);
} }
@ -138,7 +135,3 @@ color:#706D5B;
.ace-kr-theme .ace_markup.ace_list { .ace-kr-theme .ace_markup.ace_list {
background-color:#0F0040; background-color:#0F0040;
} }
.ace-kr-theme .ace_indent-guide {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPg5uL8zzBz5sz/AA1WA+hUYIqjAAAAAElFTkSuQmCC) right repeat-y;
}

View file

@ -28,6 +28,8 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) { define(function(require, exports, module) {
exports.isDark = true; exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-merbivore .ace_editor { .ace-merbivore .ace_editor {
border: 2px solid rgb(159, 159, 159); border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
} }
.ace-merbivore .ace_gutter { .ace-merbivore .ace_gutter {
background: #202020; background: #e8e8e8;
color: #E6E1DC; color: #333;
} }
.ace-merbivore .ace_print_margin { .ace-merbivore .ace_print_margin {
width: 1px; width: 1px;
background: #555651; background: #e8e8e8;
} }
.ace-merbivore .ace_scroller { .ace-merbivore .ace_scroller {
@ -44,7 +45,7 @@
} }
.ace-merbivore .ace_marker-layer .ace_step { .ace-merbivore .ace_marker-layer .ace_step {
background: rgb(102, 82, 0); background: rgb(198, 219, 174);
} }
.ace-merbivore .ace_marker-layer .ace_bracket { .ace-merbivore .ace_marker-layer .ace_bracket {
@ -57,7 +58,7 @@
} }
.ace-merbivore .ace_gutter_active_line { .ace-merbivore .ace_gutter_active_line {
background-color : #333435; background-color: #333435;
} }
.ace-merbivore .ace_marker-layer .ace_selected_word { .ace-merbivore .ace_marker-layer .ace_selected_word {
@ -76,10 +77,6 @@
color:#1EDAFB; color:#1EDAFB;
} }
.ace-merbivore .ace_constant.ace_character, {
color:#1EDAFB;
}
.ace-merbivore .ace_constant.ace_character.ace_escape, { .ace-merbivore .ace_constant.ace_character.ace_escape, {
color:#1EDAFB; color:#1EDAFB;
} }
@ -138,7 +135,3 @@ color:#AD2EA4;
.ace-merbivore .ace_markup.ace_underline { .ace-merbivore .ace_markup.ace_underline {
text-decoration:underline; text-decoration:underline;
} }
.ace-merbivore .ace_indent-guide {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMQExP7zzBz5sz/AA50BAyDznYhAAAAAElFTkSuQmCC) right repeat-y;
}

View file

@ -28,6 +28,8 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) { define(function(require, exports, module) {
exports.isDark = true; exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-merbivore-soft .ace_editor { .ace-merbivore-soft .ace_editor {
border: 2px solid rgb(159, 159, 159); border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
} }
.ace-merbivore-soft .ace_gutter { .ace-merbivore-soft .ace_gutter {
background: #262424; background: #e8e8e8;
color: #E6E1DC; color: #333;
} }
.ace-merbivore-soft .ace_print_margin { .ace-merbivore-soft .ace_print_margin {
width: 1px; width: 1px;
background: #262424; background: #e8e8e8;
} }
.ace-merbivore-soft .ace_scroller { .ace-merbivore-soft .ace_scroller {
@ -44,7 +45,7 @@
} }
.ace-merbivore-soft .ace_marker-layer .ace_step { .ace-merbivore-soft .ace_marker-layer .ace_step {
background: rgb(102, 82, 0); background: rgb(198, 219, 174);
} }
.ace-merbivore-soft .ace_marker-layer .ace_bracket { .ace-merbivore-soft .ace_marker-layer .ace_bracket {
@ -76,10 +77,6 @@
color:#68C1D8; color:#68C1D8;
} }
.ace-merbivore-soft .ace_constant.ace_character, {
color:#68C1D8;
}
.ace-merbivore-soft .ace_constant.ace_character.ace_escape, { .ace-merbivore-soft .ace_constant.ace_character.ace_escape, {
color:#68C1D8; color:#68C1D8;
} }
@ -144,7 +141,3 @@ color:#AC4BB8;
.ace-merbivore-soft .ace_markup.ace_underline { .ace-merbivore-soft .ace_markup.ace_underline {
text-decoration:underline; text-decoration:underline;
} }
.ace-merbivore-soft .ace_indent-guide {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWOQkZH5zzBz5sz/AA8EBB6crd1rAAAAAElFTkSuQmCC) right repeat-y;
}

View file

@ -28,6 +28,8 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) { define(function(require, exports, module) {
exports.isDark = true; exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-mono-industrial .ace_editor { .ace-mono-industrial .ace_editor {
border: 2px solid rgb(159, 159, 159); border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
} }
.ace-mono-industrial .ace_gutter { .ace-mono-industrial .ace_gutter {
background: #1d2521; background: #e8e8e8;
color: #C5C9C9; color: #333;
} }
.ace-mono-industrial .ace_print_margin { .ace-mono-industrial .ace_print_margin {
width: 1px; width: 1px;
background: #555651; background: #e8e8e8;
} }
.ace-mono-industrial .ace_scroller { .ace-mono-industrial .ace_scroller {
@ -44,7 +45,7 @@
} }
.ace-mono-industrial .ace_marker-layer .ace_step { .ace-mono-industrial .ace_marker-layer .ace_step {
background: rgb(102, 82, 0); background: rgb(198, 219, 174);
} }
.ace-mono-industrial .ace_marker-layer .ace_bracket { .ace-mono-industrial .ace_marker-layer .ace_bracket {
@ -80,10 +81,6 @@
color:#E98800; color:#E98800;
} }
.ace-mono-industrial .ace_constant.ace_character, {
color:#E98800;
}
.ace-mono-industrial .ace_constant.ace_character.ace_escape, { .ace-mono-industrial .ace_constant.ace_character.ace_escape, {
color:#E98800; color:#E98800;
} }
@ -146,7 +143,3 @@ background-color:#151C19;
.ace-mono-industrial .ace_markup.ace_underline { .ace-mono-industrial .ace_markup.ace_underline {
text-decoration:underline; text-decoration:underline;
} }
.ace-mono-industrial .ace_indent-guide {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNQ0tH4zzBz5sz/ABAOBECKH+evAAAAAElFTkSuQmCC) right repeat-y;
}

View file

@ -28,6 +28,8 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) { define(function(require, exports, module) {
exports.isDark = true; exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-monokai .ace_editor { .ace-monokai .ace_editor {
border: 2px solid rgb(159, 159, 159); border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
} }
.ace-monokai .ace_gutter { .ace-monokai .ace_gutter {
background: #2f3129; background: #e8e8e8;
color: #f1f1f1; color: #333;
} }
.ace-monokai .ace_print_margin { .ace-monokai .ace_print_margin {
width: 1px; width: 1px;
background: #555651; background: #e8e8e8;
} }
.ace-monokai .ace_scroller { .ace-monokai .ace_scroller {
@ -44,7 +45,7 @@
} }
.ace-monokai .ace_marker-layer .ace_step { .ace-monokai .ace_marker-layer .ace_step {
background: rgb(102, 82, 0); background: rgb(198, 219, 174);
} }
.ace-monokai .ace_marker-layer .ace_bracket { .ace-monokai .ace_marker-layer .ace_bracket {
@ -55,8 +56,9 @@
.ace-monokai .ace_marker-layer .ace_active_line { .ace-monokai .ace_marker-layer .ace_active_line {
background: #49483E; background: #49483E;
} }
.ace-monokai .ace_gutter_active_line { .ace-monokai .ace_gutter_active_line {
background-color: #191916; background-color: #49483E;
} }
.ace-monokai .ace_marker-layer .ace_selected_word { .ace-monokai .ace_marker-layer .ace_selected_word {
@ -71,6 +73,10 @@
color:#F92672; color:#F92672;
} }
.ace-monokai .ace_constant.ace_character, {
color:#AE81FF;
}
.ace-monokai .ace_constant.ace_language { .ace-monokai .ace_constant.ace_language {
color:#AE81FF; color:#AE81FF;
} }
@ -143,7 +149,3 @@ color:#FD971F;
.ace-monokai .ace_markup.ace_underline { .ace-monokai .ace_markup.ace_underline {
text-decoration:underline; text-decoration:underline;
} }
.ace-monokai .ace_indent-guide {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNQ11D6z7Bq1ar/ABCKBG6g04U2AAAAAElFTkSuQmCC) right repeat-y;
}

View file

@ -28,6 +28,8 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) { define(function(require, exports, module) {
exports.isDark = true; exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-pastel-on-dark .ace_editor { .ace-pastel-on-dark .ace_editor {
border: 2px solid rgb(159, 159, 159); border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
} }
.ace-pastel-on-dark .ace_gutter { .ace-pastel-on-dark .ace_gutter {
background: #353030; background: #e8e8e8;
color: #8F938F; color: #333;
} }
.ace-pastel-on-dark .ace_print_margin { .ace-pastel-on-dark .ace_print_margin {
width: 1px; width: 1px;
background: #353030; background: #e8e8e8;
} }
.ace-pastel-on-dark .ace_scroller { .ace-pastel-on-dark .ace_scroller {
@ -44,7 +45,7 @@
} }
.ace-pastel-on-dark .ace_marker-layer .ace_step { .ace-pastel-on-dark .ace_marker-layer .ace_step {
background: rgb(102, 82, 0); background: rgb(198, 219, 174);
} }
.ace-pastel-on-dark .ace_marker-layer .ace_bracket { .ace-pastel-on-dark .ace_marker-layer .ace_bracket {
@ -81,7 +82,7 @@
} }
.ace-pastel-on-dark .ace_constant.ace_character, { .ace-pastel-on-dark .ace_constant.ace_character, {
color:#4FB7C5; color:#AFA472;
} }
.ace-pastel-on-dark .ace_constant.ace_character.ace_escape, { .ace-pastel-on-dark .ace_constant.ace_character.ace_escape, {
@ -148,7 +149,3 @@ color:#D2A8A1;
.ace-pastel-on-dark .ace_markup.ace_underline { .ace-pastel-on-dark .ace_markup.ace_underline {
text-decoration:underline; text-decoration:underline;
} }
.ace-pastel-on-dark .ace_indent-guide {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ0dD4z9DR0fEfAA+vBBPqhbn1AAAAAElFTkSuQmCC) right repeat-y;
}

View file

@ -28,6 +28,8 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) { define(function(require, exports, module) {
exports.isDark = true; exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-solarized-dark .ace_editor { .ace-solarized-dark .ace_editor {
border: 2px solid rgb(159, 159, 159); border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
} }
.ace-solarized-dark .ace_gutter { .ace-solarized-dark .ace_gutter {
background: #01313f; background: #e8e8e8;
color: #d0edf7; color: #333;
} }
.ace-solarized-dark .ace_print_margin { .ace-solarized-dark .ace_print_margin {
width: 1px; width: 1px;
background: #33555E; background: #e8e8e8;
} }
.ace-solarized-dark .ace_scroller { .ace-solarized-dark .ace_scroller {
@ -44,7 +45,7 @@
} }
.ace-solarized-dark .ace_marker-layer .ace_step { .ace-solarized-dark .ace_marker-layer .ace_step {
background: rgb(102, 82, 0); background: rgb(198, 219, 174);
} }
.ace-solarized-dark .ace_marker-layer .ace_bracket { .ace-solarized-dark .ace_marker-layer .ace_bracket {
@ -57,7 +58,7 @@
} }
.ace-solarized-dark .ace_gutter_active_line { .ace-solarized-dark .ace_gutter_active_line {
background-color: #0d3440; background-color: #073642;
} }
.ace-solarized-dark .ace_marker-layer .ace_selected_word { .ace-solarized-dark .ace_marker-layer .ace_selected_word {
@ -72,6 +73,10 @@
color:#859900; color:#859900;
} }
.ace-solarized-dark .ace_constant.ace_character, {
color:#CB4B16;
}
.ace-solarized-dark .ace_constant.ace_language { .ace-solarized-dark .ace_constant.ace_language {
color:#B58900; color:#B58900;
} }
@ -129,7 +134,3 @@ color:#657B83;
.ace-solarized-dark .ace_markup.ace_underline { .ace-solarized-dark .ace_markup.ace_underline {
text-decoration:underline; text-decoration:underline;
} }
.ace-solarized-dark .ace_indent-guide {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNg0Db7zzBz5sz/AA82BCv7wOIDAAAAAElFTkSuQmCC) right repeat-y;
}

View file

@ -28,6 +28,8 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) { define(function(require, exports, module) {
exports.isDark = true; exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-solarized-light .ace_editor { .ace-solarized-light .ace_editor {
border: 2px solid rgb(159, 159, 159); border: 2px solid rgb(159, 159, 159);
@ -8,7 +9,7 @@
} }
.ace-solarized-light .ace_gutter { .ace-solarized-light .ace_gutter {
background: #fbf1d3; background: #e8e8e8;
color: #333; color: #333;
} }
@ -44,7 +45,7 @@
} }
.ace-solarized-light .ace_marker-layer .ace_step { .ace-solarized-light .ace_marker-layer .ace_step {
background: rgb(255, 255, 0); background: rgb(198, 219, 174);
} }
.ace-solarized-light .ace_marker-layer .ace_bracket { .ace-solarized-light .ace_marker-layer .ace_bracket {
@ -57,7 +58,7 @@
} }
.ace-solarized-light .ace_gutter_active_line { .ace-solarized-light .ace_gutter_active_line {
background-color : #dcdcdc; background-color: #EEE8D5;
} }
.ace-solarized-light .ace_marker-layer .ace_selected_word { .ace-solarized-light .ace_marker-layer .ace_selected_word {
@ -72,6 +73,10 @@
color:#859900; color:#859900;
} }
.ace-solarized-light .ace_constant.ace_character, {
color:#CB4B16;
}
.ace-solarized-light .ace_constant.ace_language { .ace-solarized-light .ace_constant.ace_language {
color:#B58900; color:#B58900;
} }
@ -128,7 +133,3 @@
.ace-solarized-light .ace_markup.ace_underline { .ace-solarized-light .ace_markup.ace_underline {
text-decoration:underline; text-decoration:underline;
} }
.ace-solarized-light .ace_indent-guide {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4++3xf4ZVq1b9BwAjxwbT1g3hiwAAAABJRU5ErkJggg==) right repeat-y;
}

View file

@ -28,6 +28,8 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) { define(function(require, exports, module) {
exports.isDark = false; exports.isDark = false;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-tomorrow .ace_editor { .ace-tomorrow .ace_editor {
border: 2px solid rgb(159, 159, 159); border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
} }
.ace-tomorrow .ace_gutter { .ace-tomorrow .ace_gutter {
background: #f6f6f6; background: #e8e8e8;
color: #4D4D4C; color: #333;
} }
.ace-tomorrow .ace_print_margin { .ace-tomorrow .ace_print_margin {
width: 1px; width: 1px;
background: #f6f6f6; background: #e8e8e8;
} }
.ace-tomorrow .ace_scroller { .ace-tomorrow .ace_scroller {
@ -44,7 +45,7 @@
} }
.ace-tomorrow .ace_marker-layer .ace_step { .ace-tomorrow .ace_marker-layer .ace_step {
background: rgb(255, 255, 0); background: rgb(198, 219, 174);
} }
.ace-tomorrow .ace_marker-layer .ace_bracket { .ace-tomorrow .ace_marker-layer .ace_bracket {
@ -57,7 +58,7 @@
} }
.ace-tomorrow .ace_gutter_active_line { .ace-tomorrow .ace_gutter_active_line {
background-color : #dcdcdc; background-color: #EFEFEF;
} }
.ace-tomorrow .ace_marker-layer .ace_selected_word { .ace-tomorrow .ace_marker-layer .ace_selected_word {
@ -76,6 +77,10 @@
color:#3E999F; color:#3E999F;
} }
.ace-tomorrow .ace_constant.ace_character, {
color:#F5871F;
}
.ace-tomorrow .ace_constant.ace_language { .ace-tomorrow .ace_constant.ace_language {
color:#F5871F; color:#F5871F;
} }
@ -162,7 +167,3 @@ background-color:#8959A8;
.ace-tomorrow .ace_markup.ace_heading { .ace-tomorrow .ace_markup.ace_heading {
color:#718C00; color:#718C00;
} }
.ace-tomorrow .ace_indent-guide {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bdu3f/BwAlfgctduB85QAAAABJRU5ErkJggg==) right repeat-y;
}

View file

@ -28,6 +28,8 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) { define(function(require, exports, module) {
exports.isDark = false; exports.isDark = false;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-tomorrow-night .ace_editor { .ace-tomorrow-night .ace_editor {
border: 2px solid rgb(159, 159, 159); border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
} }
.ace-tomorrow-night .ace_gutter { .ace-tomorrow-night .ace_gutter {
background: #25282c; background: #e8e8e8;
color: #C5C8C6; color: #333;
} }
.ace-tomorrow-night .ace_print_margin { .ace-tomorrow-night .ace_print_margin {
width: 1px; width: 1px;
background: #25282c; background: #e8e8e8;
} }
.ace-tomorrow-night .ace_scroller { .ace-tomorrow-night .ace_scroller {
@ -44,7 +45,7 @@
} }
.ace-tomorrow-night .ace_marker-layer .ace_step { .ace-tomorrow-night .ace_marker-layer .ace_step {
background: rgb(102, 82, 0); background: rgb(198, 219, 174);
} }
.ace-tomorrow-night .ace_marker-layer .ace_bracket { .ace-tomorrow-night .ace_marker-layer .ace_bracket {
@ -76,6 +77,10 @@
color:#8ABEB7; color:#8ABEB7;
} }
.ace-tomorrow-night .ace_constant.ace_character, {
color:#DE935F;
}
.ace-tomorrow-night .ace_constant.ace_language { .ace-tomorrow-night .ace_constant.ace_language {
color:#DE935F; color:#DE935F;
} }
@ -162,7 +167,3 @@ background-color:#B798BF;
.ace-tomorrow-night .ace_markup.ace_heading { .ace-tomorrow-night .ace_markup.ace_heading {
color:#B5BD68; color:#B5BD68;
} }
.ace-tomorrow-night .ace_indent-guide {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWOQlVf8z7Bq1ar/AA/hBFp7egmpAAAAAElFTkSuQmCC) right repeat-y;
}

View file

@ -28,6 +28,8 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) { define(function(require, exports, module) {
exports.isDark = true; exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-tomorrow-night-blue .ace_editor { .ace-tomorrow-night-blue .ace_editor {
border: 2px solid rgb(159, 159, 159); border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
} }
.ace-tomorrow-night-blue .ace_gutter { .ace-tomorrow-night-blue .ace_gutter {
background: #00204b; background: #e8e8e8;
color: #7388b5; color: #333;
} }
.ace-tomorrow-night-blue .ace_print_margin { .ace-tomorrow-night-blue .ace_print_margin {
width: 1px; width: 1px;
background: #00204b; background: #e8e8e8;
} }
.ace-tomorrow-night-blue .ace_scroller { .ace-tomorrow-night-blue .ace_scroller {
@ -44,7 +45,7 @@
} }
.ace-tomorrow-night-blue .ace_marker-layer .ace_step { .ace-tomorrow-night-blue .ace_marker-layer .ace_step {
background: rgb(127, 111, 19); background: rgb(198, 219, 174);
} }
.ace-tomorrow-night-blue .ace_marker-layer .ace_bracket { .ace-tomorrow-night-blue .ace_marker-layer .ace_bracket {
@ -57,7 +58,7 @@
} }
.ace-tomorrow-night-blue .ace_gutter_active_line { .ace-tomorrow-night-blue .ace_gutter_active_line {
background-color: #022040; background-color: #00346E;
} }
.ace-tomorrow-night-blue .ace_marker-layer .ace_selected_word { .ace-tomorrow-night-blue .ace_marker-layer .ace_selected_word {
@ -76,6 +77,10 @@
color:#99FFFF; color:#99FFFF;
} }
.ace-tomorrow-night-blue .ace_constant.ace_character, {
color:#FFC58F;
}
.ace-tomorrow-night-blue .ace_constant.ace_language { .ace-tomorrow-night-blue .ace_constant.ace_language {
color:#FFC58F; color:#FFC58F;
} }
@ -162,7 +167,3 @@ background-color:#EBBBFF;
.ace-tomorrow-night-blue .ace_markup.ace_heading { .ace-tomorrow-night-blue .ace_markup.ace_heading {
color:#D1F1A9; color:#D1F1A9;
} }
.ace-tomorrow-night-blue .ace_indent-guide {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgUAn8z7Bq1ar/ABBUBHJ4/r3JAAAAAElFTkSuQmCC) right repeat-y;
}

View file

@ -28,6 +28,8 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) { define(function(require, exports, module) {
exports.isDark = true; exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-tomorrow-night-bright .ace_editor { .ace-tomorrow-night-bright .ace_editor {
border: 2px solid rgb(159, 159, 159); border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
} }
.ace-tomorrow-night-bright .ace_gutter { .ace-tomorrow-night-bright .ace_gutter {
background: #1a1a1a; background: #e8e8e8;
color: #DEDEDE; color: #333;
} }
.ace-tomorrow-night-bright .ace_print_margin { .ace-tomorrow-night-bright .ace_print_margin {
width: 1px; width: 1px;
background: #1a1a1a; background: #e8e8e8;
} }
.ace-tomorrow-night-bright .ace_scroller { .ace-tomorrow-night-bright .ace_scroller {
@ -44,7 +45,7 @@
} }
.ace-tomorrow-night-bright .ace_marker-layer .ace_step { .ace-tomorrow-night-bright .ace_marker-layer .ace_step {
background: rgb(102, 82, 0); background: rgb(198, 219, 174);
} }
.ace-tomorrow-night-bright .ace_marker-layer .ace_bracket { .ace-tomorrow-night-bright .ace_marker-layer .ace_bracket {
@ -76,6 +77,10 @@
color:#70C0B1; color:#70C0B1;
} }
.ace-tomorrow-night-bright .ace_constant.ace_character, {
color:#E78C45;
}
.ace-tomorrow-night-bright .ace_constant.ace_language { .ace-tomorrow-night-bright .ace_constant.ace_language {
color:#E78C45; color:#E78C45;
} }
@ -162,7 +167,3 @@ background-color:#B798BF;
.ace-tomorrow-night-bright .ace_markup.ace_heading { .ace-tomorrow-night-bright .ace_markup.ace_heading {
color:#B9CA4A; color:#B9CA4A;
} }
.ace-tomorrow-night-bright .ace_indent-guide {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGD4z7Bq1ar/AAz9A/2naJQKAAAAAElFTkSuQmCC) right repeat-y;
}

View file

@ -28,6 +28,8 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) { define(function(require, exports, module) {
exports.isDark = true; exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-tomorrow-night-eighties .ace_editor { .ace-tomorrow-night-eighties .ace_editor {
border: 2px solid rgb(159, 159, 159); border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
} }
.ace-tomorrow-night-eighties .ace_gutter { .ace-tomorrow-night-eighties .ace_gutter {
background: #272727; background: #e8e8e8;
color: #CCC; color: #333;
} }
.ace-tomorrow-night-eighties .ace_print_margin { .ace-tomorrow-night-eighties .ace_print_margin {
width: 1px; width: 1px;
background: #272727; background: #e8e8e8;
} }
.ace-tomorrow-night-eighties .ace_scroller { .ace-tomorrow-night-eighties .ace_scroller {
@ -44,7 +45,7 @@
} }
.ace-tomorrow-night-eighties .ace_marker-layer .ace_step { .ace-tomorrow-night-eighties .ace_marker-layer .ace_step {
background: rgb(102, 82, 0); background: rgb(198, 219, 174);
} }
.ace-tomorrow-night-eighties .ace_marker-layer .ace_bracket { .ace-tomorrow-night-eighties .ace_marker-layer .ace_bracket {
@ -76,6 +77,10 @@
color:#66CCCC; color:#66CCCC;
} }
.ace-tomorrow-night-eighties .ace_constant.ace_character, {
color:#F99157;
}
.ace-tomorrow-night-eighties .ace_constant.ace_language { .ace-tomorrow-night-eighties .ace_constant.ace_language {
color:#F99157; color:#F99157;
} }
@ -158,7 +163,3 @@ background-color:#CC99CC;
.ace-tomorrow-night-eighties .ace_markup.ace_heading { .ace-tomorrow-night-eighties .ace_markup.ace_heading {
color:#99CC99; color:#99CC99;
} }
.ace-tomorrow-night-eighties .ace_indent-guide {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ1dX9z7Bq1ar/ABE1BITwhhuFAAAAAElFTkSuQmCC) right repeat-y;
}

View file

@ -28,6 +28,8 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) { define(function(require, exports, module) {
exports.isDark = true; exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-twilight .ace_editor { .ace-twilight .ace_editor {
border: 2px solid rgb(159, 159, 159); border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
} }
.ace-twilight .ace_gutter { .ace-twilight .ace_gutter {
background: #232323; background: #e8e8e8;
color: #E2E2E2; color: #333;
} }
.ace-twilight .ace_print_margin { .ace-twilight .ace_print_margin {
width: 1px; width: 1px;
background: #232323; background: #e8e8e8;
} }
.ace-twilight .ace_scroller { .ace-twilight .ace_scroller {
@ -44,7 +45,7 @@
} }
.ace-twilight .ace_marker-layer .ace_step { .ace-twilight .ace_marker-layer .ace_step {
background: rgb(102, 82, 0); background: rgb(198, 219, 174);
} }
.ace-twilight .ace_marker-layer .ace_bracket { .ace-twilight .ace_marker-layer .ace_bracket {
@ -76,10 +77,6 @@
color:#CF6A4C; color:#CF6A4C;
} }
.ace-twilight .ace_constant.ace_character, {
color:#CF6A4C;
}
.ace-twilight .ace_constant.ace_character.ace_escape, { .ace-twilight .ace_constant.ace_character.ace_escape, {
color:#CF6A4C; color:#CF6A4C;
} }
@ -160,7 +157,3 @@ color:#5F5A60;
.ace-twilight .ace_markup.ace_list { .ace-twilight .ace_markup.ace_list {
color:#F9EE98; color:#F9EE98;
} }
.ace-twilight .ace_indent-guide {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMQERH5zzBz5sz/AA5EBAYqeZXWAAAAAElFTkSuQmCC) right repeat-y;
}

View file

@ -28,6 +28,8 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) { define(function(require, exports, module) {
exports.isDark = true; exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-vibrant-ink .ace_editor { .ace-vibrant-ink .ace_editor {
border: 2px solid rgb(159, 159, 159); border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
} }
.ace-vibrant-ink .ace_gutter { .ace-vibrant-ink .ace_gutter {
background: #1a1a1a; background: #e8e8e8;
color: #BEBEBE; color: #333;
} }
.ace-vibrant-ink .ace_print_margin { .ace-vibrant-ink .ace_print_margin {
width: 1px; width: 1px;
background: #1a1a1a; background: #e8e8e8;
} }
.ace-vibrant-ink .ace_scroller { .ace-vibrant-ink .ace_scroller {
@ -44,7 +45,7 @@
} }
.ace-vibrant-ink .ace_marker-layer .ace_step { .ace-vibrant-ink .ace_marker-layer .ace_step {
background: rgb(102, 82, 0); background: rgb(198, 219, 174);
} }
.ace-vibrant-ink .ace_marker-layer .ace_bracket { .ace-vibrant-ink .ace_marker-layer .ace_bracket {
@ -76,10 +77,6 @@
color:#339999; color:#339999;
} }
.ace-vibrant-ink .ace_constant.ace_character, {
color:#339999;
}
.ace-vibrant-ink .ace_constant.ace_character.ace_escape, { .ace-vibrant-ink .ace_constant.ace_character.ace_escape, {
color:#339999; color:#339999;
} }
@ -139,7 +136,3 @@ color:#99CC99;
.ace-vibrant-ink .ace_markup.ace_underline { .ace-vibrant-ink .ace_markup.ace_underline {
text-decoration:underline; text-decoration:underline;
} }
.ace-vibrant-ink .ace_indent-guide {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPg5+f/z7Bq1ar/AA5lBCqoLxsgAAAAAElFTkSuQmCC) right repeat-y;
}

View file

@ -28,6 +28,8 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) { define(function(require, exports, module) {
exports.isDark = true; exports.isDark = true;

View file

@ -74,7 +74,7 @@ var Tokenizer = function(rules, flag) {
}); });
if (matchcount > 1 && state[i].token.length !== matchcount-1) if (matchcount > 1 && state[i].token.length !== matchcount-1)
throw new Error("Matching groups and length of the token array don't match in rule #" + i + " of state " + key); throw new Error("For " + state[i].regex + " the matching groups and length of the token array don't match (rule #" + i + " of state " + key + ")");
mapping[matchTotal] = { mapping[matchTotal] = {
rule: i, rule: i,
@ -139,6 +139,11 @@ var Tokenizer = function(rules, flag) {
lastIndex = re.lastIndex; lastIndex = re.lastIndex;
re = this.regExps[currentState]; re = this.regExps[currentState];
if (re === undefined) {
throw new Error("You indicated a state of " + rule.next + " to go to, but it doesn't exist!");
}
re.lastIndex = lastIndex; re.lastIndex = lastIndex;
} }
break; break;

View file

@ -1,513 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>fileTypes</key>
<array>
<string>jade</string>
</array>
<key>keyEquivalent</key>
<string>^~J</string>
<key>name</key>
<string>Jade</string>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.import.include.jade</string>
</dict>
</dict>
<key>match</key>
<string>^\s*\b(include)\b</string>
</dict>
<dict>
<key>match</key>
<string>^(!!!)(\s*[a-zA-Z0-9-_]+)?</string>
<key>name</key>
<string>keyword.other.doctype.jade</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.section.comment.jade</string>
</dict>
</dict>
<key>match</key>
<string>^\s*(//-?)(?:\s*[^-\s]|\s+\S).*$\n?</string>
<key>name</key>
<string>comment.line.double-slash.jade</string>
</dict>
<dict>
<key>begin</key>
<string>^(\s*)(//-?)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.section.comment.jade</string>
</dict>
</dict>
<key>end</key>
<string>^(?!\1\s+|$)</string>
<key>name</key>
<string>comment.block.jade</string>
</dict>
<dict>
<key>begin</key>
<string>^(\s*)(\:markdown)</string>
<key>beginCaptures</key>
<dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.function.jade</string>
</dict>
</dict>
<key>end</key>
<string>^(?!\1\s+)</string>
<key>name</key>
<string>meta.filter.markdown.jade</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>text.html.markdown</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>^(\s*)(\:sass)</string>
<key>beginCaptures</key>
<dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.function.jade</string>
</dict>
</dict>
<key>end</key>
<string>^(?!\1\s+)</string>
<key>name</key>
<string>meta.filter.sass.jade</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.sass</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>^(\s*)(\:less)</string>
<key>beginCaptures</key>
<dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.function.jade</string>
</dict>
</dict>
<key>end</key>
<string>^(?!\1\s+)</string>
<key>name</key>
<string>meta.filter.less.jade</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.css.less</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>^(\s*)(\:coffeescript)</string>
<key>beginCaptures</key>
<dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.function.jade</string>
</dict>
</dict>
<key>end</key>
<string>^(?!\1\s+)(?=\s*.)</string>
<key>name</key>
<string>meta.filter.coffee.jade</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.coffee</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>^(\s*)(\:cdata)</string>
<key>beginCaptures</key>
<dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.function.jade</string>
</dict>
</dict>
<key>end</key>
<string>^(?!\1\s+)</string>
<key>name</key>
<string>meta.filter.cdata.jade</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.function.jade</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.function.jade</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.parameters.begin.jade</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>variable.parameter.function.jade</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.parameters.end.jade</string>
</dict>
</dict>
<key>comment</key>
<string>match stuff like: mixin dialog-title-desc(title, desc)</string>
<key>match</key>
<string>^\s*(mixin) ([\w\-]+)\s*(\()(.*?)(\))</string>
<key>name</key>
<string>meta.mixin.jade</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.function.jade</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.function.jade</string>
</dict>
</dict>
<key>comment</key>
<string>match stuff like: mixin dialog-title-desc</string>
<key>match</key>
<string>^\s*(mixin) ([\w\-]+)</string>
<key>name</key>
<string>meta.mixin.jade</string>
</dict>
<dict>
<key>begin</key>
<string>^\s*(-|=|!=)</string>
<key>end</key>
<string>$</string>
<key>name</key>
<string>source.js.embedded.jade</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.js</string>
</dict>
<dict>
<key>match</key>
<string>\b(each)\b</string>
<key>name</key>
<string>keyword.control.js</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>^(\s*)(script)</string>
<key>beginCaptures</key>
<dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.tag.script.jade</string>
</dict>
</dict>
<key>end</key>
<string>^((?=(\1)([\w#\.]|$\n?))|^$\n?)</string>
<key>name</key>
<string>source.js.embedded.jade</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(?&lt;=script)\s*\(</string>
<key>end</key>
<string>\)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#tag-stuff</string>
</dict>
</array>
</dict>
<dict>
<key>include</key>
<string>source.js</string>
</dict>
</array>
</dict>
<dict>
<key>match</key>
<string>[#!]\{[^\}]+\}</string>
<key>name</key>
<string>string.interpolated.jade</string>
</dict>
<dict>
<key>begin</key>
<string>^\s*(?!\w+\:)(?:(([\w]+))|(?=\.|#))</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>meta.tag.any.jade</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.tag.jade</string>
</dict>
</dict>
<key>comment</key>
<string>Match any tag, id or class. skip AST filters</string>
<key>end</key>
<string>$|(?!\.|#|=|-)</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\.[\w-]+</string>
<key>name</key>
<string>meta.tag.attribute.class.jade</string>
</dict>
<dict>
<key>match</key>
<string>#[\w-]+</string>
<key>name</key>
<string>meta.tag.attribute.id.jade</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?&lt;=\w)\s*\(</string>
<key>end</key>
<string>\)</string>
<key>name</key>
<string>meta.tag.attribute.jade</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#tag-stuff</string>
</dict>
</array>
</dict>
</array>
<key>repository</key>
<dict>
<key>entities</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.entity.jade</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.entity.jade</string>
</dict>
</dict>
<key>match</key>
<string>(&amp;)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)</string>
<key>name</key>
<string>constant.character.entity.jade</string>
</dict>
<dict>
<key>match</key>
<string>&amp;</string>
<key>name</key>
<string>invalid.illegal.bad-ampersand.jade</string>
</dict>
</array>
</dict>
<key>filter-langs</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#markdown</string>
</dict>
<dict>
<key>include</key>
<string>#sass</string>
</dict>
</array>
</dict>
<key>markdown</key>
<dict>
<key>begin</key>
<string>markdown\s*$\n?</string>
<key>end</key>
<string>(?!^\1\s+)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>text.html.markdown</string>
</dict>
</array>
</dict>
<key>sass</key>
<dict>
<key>begin</key>
<string>^(\s*)\:sass</string>
<key>end</key>
<string>(?!^\1\s+)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.sass</string>
</dict>
</array>
</dict>
<key>string-double-quoted</key>
<dict>
<key>begin</key>
<string>"</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.jade</string>
</dict>
</dict>
<key>end</key>
<string>"</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.jade</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.jade</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#entities</string>
</dict>
</array>
</dict>
<key>string-single-quoted</key>
<dict>
<key>begin</key>
<string>'</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.jade</string>
</dict>
</dict>
<key>end</key>
<string>'</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.jade</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.single.jade</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#entities</string>
</dict>
</array>
</dict>
<key>tag-generic-attribute</key>
<dict>
<key>match</key>
<string>\b([a-zA-Z\-:]+)</string>
<key>name</key>
<string>entity.other.attribute-name.jade</string>
</dict>
<key>tag-stuff</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#string-double-quoted</string>
</dict>
<dict>
<key>include</key>
<string>#string-single-quoted</string>
</dict>
<dict>
<key>include</key>
<string>#tag-generic-attribute</string>
</dict>
</array>
</dict>
</dict>
<key>scopeName</key>
<string>source.jade</string>
<key>uuid</key>
<string>C5B73B98-5F2A-42E3-9F0E-028A74A9FE4B</string>
</dict>
</plist>

1511
tool/Objective-C.tmLanguage Normal file

File diff suppressed because one or more lines are too long

View file

@ -82,7 +82,7 @@
} }
.%cssClass% .ace_constant.ace_character, { .%cssClass% .ace_constant.ace_character, {
%constant% %constant.character%
} }
.%cssClass% .ace_constant.ace_character.ace_escape, { .%cssClass% .ace_constant.ace_character.ace_escape, {

60
tool/mode.tmpl.js Normal file
View file

@ -0,0 +1,60 @@
/* ***** BEGIN LICENSE BLOCK *****
* Distributed under the BSD license:
*
* Copyright (c) 2012, Ajax.org B.V.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of Ajax.org B.V. nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*
* Contributor(s):
*
*
*
* ***** END LICENSE BLOCK ***** */
/*
THIS FILE WAS AUTOGENERATED BY mode.tmpl.js
*/
define(function(require, exports, module) {
"use strict";
var oop = require("../lib/oop");
var TextMode = require("./text").Mode;
var Tokenizer = require("../tokenizer").Tokenizer;
var %language%HighlightRules = require("./%languageHighlightFilename%_highlight_rules").%language%HighlightRules;
var Mode = function() {
var highlighter = new %language%HighlightRules();
this.$tokenizer = new Tokenizer(highlighter.getRules());
};
oop.inherits(Mode, TextMode);
(function() {
// Extra logic goes here. (see below)
}).call(Mode.prototype);
exports.Mode = Mode;
});

View file

@ -1,7 +1,7 @@
/* ***** BEGIN LICENSE BLOCK ***** /* ***** BEGIN LICENSE BLOCK *****
* Distributed under the BSD license: * Distributed under the BSD license:
* *
* Copyright (c) 2010, Ajax.org B.V. * Copyright (c) 2012, Ajax.org B.V.
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@ -33,6 +33,24 @@
* *
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
/*
THIS FILE WAS AUTOGENERATED BY mode_highlight_rules.tmpl.js
IT MIGHT NOT BE PERFECT, PARTICULARLY:
IN DECIDING STATES TO TRANSITION TO,
IGNORING WHITESPACE,
EXTENDING EXISTING MODES,
GATHERING KEYWORDS, OR
RULE PREFERENCE ORDER.
...But it's a good start from an existing *.tmlanguage file.
*/
define(function(require, exports, module) { define(function(require, exports, module) {
"use strict"; "use strict";

85
tool/tmlanguage.js Executable file → Normal file
View file

@ -4,11 +4,16 @@ var util = require("util");
// for tracking token states // for tracking token states
var startState = { start: [] }, statesObj = { }; var startState = { start: [] }, statesObj = { };
var args = process.argv.splice(2);
var tmLanguageFile = args[0];
var devMode = args[1];
var parseString = require("plist").parseString; var parseString = require("plist").parseString;
function parseLanguage(languageXml, callback) { function parseLanguage(languageXml, callback) {
parseString(languageXml, function(_, language) { parseString(languageXml, function(_, language) {
callback(language[0]) callback(language[0])
}); });
} }
function logDebug(string, obj) { function logDebug(string, obj) {
@ -80,12 +85,12 @@ function checkForLookBehind(str) {
function assembleStateObjs(strState, pattern) { function assembleStateObjs(strState, pattern) {
var patterns = pattern.patterns; var patterns = pattern.patterns;
var stateObj = {}; var stateObj = {};
var tokenElem = [];
if (patterns) { if (patterns) {
for (var p in patterns) { for (var p in patterns) {
stateObj = {}; // this is apparently necessary stateObj = {}; // this is apparently necessary
if (patterns[p].include) { if (patterns[p].include) {
stateObj.include = patterns[p].include; stateObj.include = patterns[p].include;
} }
@ -123,7 +128,7 @@ function extractPatterns(patterns) {
state++; state++;
var i = 1; var i = 1;
var tokenArray = []; var tokenArray = [];
var tokenObj = {}; var tokenObj = { token: [] };
var stateObj = {}; var stateObj = {};
if (pattern.comment) { if (pattern.comment) {
@ -134,13 +139,24 @@ function extractPatterns(patterns) {
if (pattern.begin && pattern.end) { if (pattern.begin && pattern.end) {
var strState = "state_" + state; var strState = "state_" + state;
if ( pattern.beginCaptures === undefined && pattern.endCaptures === undefined) { if ( pattern.beginCaptures === undefined && pattern.endCaptures === undefined) {
tokenObj.token = pattern.captures; tokenObj.token.push(pattern.captures);
} }
else if (pattern.beginCaptures) { else if (pattern.beginCaptures) {
tokenObj.token = pattern.beginCaptures; tokenObj.token.push(pattern.beginCaptures);
} }
else if (pattern.endCaptures) { else if (pattern.endCaptures) {
tokenObj.token = pattern.endCaptures; tokenObj.token.push(pattern.endCaptures);
}
if (tokenObj.token === undefined) {
if (pattern.name)
tokenObj.token.push(pattern.name);
else
logDebug("There's no token name for this state transition", pattern)
}
if (tokenObj.token === undefined) {
tokenObj.token.push(pattern.name);
} }
statesObj[strState] = [ ]; statesObj[strState] = [ ];
@ -155,18 +171,27 @@ function extractPatterns(patterns) {
} }
else if (pattern.captures) { else if (pattern.captures) {
tokenObj.token = pattern.captures; tokenObj.token.push([]);
tokenObj.token.push(pattern.captures);
tokenObj.regex = checkForLookBehind(pattern.match); tokenObj.regex = checkForLookBehind(pattern.match);
startState.start.push(tokenObj); startState.start.push(tokenObj);
} }
else if (pattern.match) { else if (pattern.match) {
tokenObj.token = pattern.name; tokenObj.token.push(pattern.name);
tokenObj.regex = checkForLookBehind(pattern.match); tokenObj.regex = checkForLookBehind(pattern.match);
startState.start.push(tokenObj); startState.start.push(tokenObj);
} }
else if (pattern.include) {
tokenObj.token.push(pattern.include);
tokenObj.regex = "";
startState.start.push(tokenObj);
}
else { else {
logDebug("I've gone through every choice, and have no clue what this is:", pattern); logDebug("I've gone through every choice, and have no clue what this is:", pattern);
} }
@ -187,28 +212,44 @@ function fillTemplate(template, replacements) {
}); });
} }
var modeTemplate = fs.readFileSync(__dirname + "/theme_mode.tmpl.js", "utf8"); var modeTemplate = fs.readFileSync(__dirname + "/mode.tmpl.js", "utf8");
var modeHighlightTemplate = fs.readFileSync(__dirname + "/mode_highlight_rules.tmpl.js", "utf8");
function convertLanguage(name) { function convertLanguage(name) {
var tmLanguage = fs.readFileSync(__dirname + "/" + name, "utf8"); var tmLanguage = fs.readFileSync(__dirname + "/" + name, "utf8");
parseLanguage(tmLanguage, function(language) { parseLanguage(tmLanguage, function(language) {
var outFile = __dirname + "/../lib/ace/mode/" + language.name.replace(/-/g, "_").toLowerCase() + "_highlight_rules.js"; var languageHighlightFilename = language.name.replace(/[-_]/g, "").toLowerCase();
console.log("Converting " + name + " to " + outFile); var languageNameSanitized = language.name.replace(/-/g, "");
//console.log(util.inspect(language.patterns, false, 4)); var languageHighlightFile = __dirname + "/../lib/ace/mode/" + languageHighlightFilename + "_highlight_rules.js";
var languageModeFile = __dirname + "/../lib/ace/mode/" + languageHighlightFilename + ".js";
var patterns = extractPatterns(language.patterns); console.log("Converting " + name + " to " + languageHighlightFile);
var lang = fillTemplate(modeTemplate, {
language: language.name.replace(/-/g, ""),
languageTokens: patterns
});
fs.writeFileSync(outFile, lang); if (devMode)
console.log(util.inspect(language.patterns, false, 4));
var patterns = extractPatterns(language.patterns);
var languageHighlightRules = fillTemplate(modeHighlightTemplate, {
language: languageNameSanitized,
languageTokens: patterns
});
var languageMode = fillTemplate(modeTemplate, {
language: languageNameSanitized,
languageHighlightFilename: languageHighlightFilename
});
if (devMode) {
console.log("Not writing, 'cause we're in dev mode, baby.");
}
else {
fs.writeFileSync(languageHighlightFile, languageHighlightRules);
fs.writeFileSync(languageModeFile, languageMode);
}
}); });
} }
var tmLanguageFile = process.argv.splice(2)[0];
if (tmLanguageFile === undefined) { if (tmLanguageFile === undefined) {
console.error("Please pass in a language file via the command line."); console.error("Please pass in a language file via the command line.");
process.exit(1); process.exit(1);

View file

@ -3,7 +3,6 @@ var fs = require("fs");
var parseString = require("plist").parseString; var parseString = require("plist").parseString;
function parseTheme(themeXml, callback) { function parseTheme(themeXml, callback) {
parseString(themeXml, function(_, theme) { parseString(themeXml, function(_, theme) {
console.log(theme)
callback(theme[0]) callback(theme[0])
}); });
} }