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

View file

@ -1,158 +1,45 @@
!!!doctype
!!!5
!!!
- var methodSection, constructorSection, propertySection, eventSection;
include something
-function renameMemberTitle(title, count)
if title.indexOf("ethods") >= 0
span Functions (#{count})
else if title.indexOf("ropert") >= 0
span Properties (#{count})
else
span.AS.AS.AS #{title} (#{count})
include another_thing
// 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)
if typeof obj === 'string'
obj = list[obj]
title = obj.id + (obj.type ? ' (' + obj.type + ')' : '')
article.article(id=obj.path, data-title=title)
if obj.type === 'section' || obj.type === 'namespace' || obj.type === 'class' || obj.type === 'mixin'
mixin bleh()
if obj.stability
mixin markdown
span.label.deprecated
| Deprecated
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
mixin clever-name
div(id='ellipsis_#{obj.id}', class='ellipsis_description')
mixin markdown(obj.short_description)
-var x = "0";
- y each z
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)
- var items = ["one", "two", "three"]
each item in items
li= item

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 *****
* 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
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
* 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.
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is Ajax.org Code Editor (ACE).
*
* 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):
* 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
* 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.
*
* Garen J. Torikian <gjtorikian @ gmail DOT com>
*
* ***** END LICENSE BLOCK ***** */

View file

@ -1,7 +1,7 @@
/* ***** BEGIN LICENSE BLOCK *****
* Distributed under the BSD license:
*
* Copyright (c) 2010, Ajax.org B.V.
* Copyright (c) 2012, Ajax.org B.V.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -29,7 +29,7 @@
*
* Contributor(s):
*
*
* Garen J. Torikian <gjtorikian @ gmail DOT com>
*
* ***** END LICENSE BLOCK ***** */
@ -38,9 +38,30 @@ define(function(require, exports, module) {
var oop = require("../lib/oop");
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 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.
// regexps are ordered -> the first match is used
@ -49,151 +70,104 @@ var JadeHighlightRules = function() {
"start": [
{
"token": "keyword.control.import.include.jade",
"regex": "^\\s*\\binclude\\b"
"regex": "\\s*\\binclude\\b"
},
{
"token": "keyword.other.doctype.jade",
"regex": "^!!!\\s*[a-zA-Z0-9-_]+?"
"regex": "^!!!\\s*(?:[a-zA-Z0-9-_]+)?"
},
{
"token": "punctuation.section.comment.jade",
"regex": "^ *//\\s*\\S.*$\\n?"
"token" : "punctuation.section.comment",
"regex" : "^\\s*\/\/(?:\\s*[^-\\s]|\\s+\\S)(?:.*$)",
},
{
"token": "punctuation.section.comment.jade",
"regex": "^\\s*//\\s*$",
"next": "block_comment"
},
/*{
"token": "entity.name.function.jade",
"regex": "^\\s*\\:markdown",
"next": "markdown_filter"
},
{
"token": "entity.name.function.jade",
"regex": "^\\s*\\:sass",
"next": "sass_filter"
},
{
"token": "entity.name.function.jade",
"regex": "^\\s*\\:less",
"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)
{
"token": [ "storage.type.function.jade",
"entity.name.function.jade",
"punctuation.definition.parameters.begin.jade",
"variable.parameter.function.jade",
"punctuation.definition.parameters.end.jade"
],
"regex": "^(\\s*mixin) ([\\w\\-]+)(\\s*\\()(.*?)(\\))"
},
// match stuff like: mixin dialog-title-desc
{
"token": ["storage.type.function.jade",
"entity.name.function.jade"
],
"regex": "^(\\s*mixin)( [\\w\\-]+)"
},
{
"regex": "^\\s*(-|=|!=)",
"next": "state_12"
"token" : function(space, text) {
return "punctuation.section.comment";
},
"regex" : "^((\\s*)\/\/)(?:\\s*$)",
"next": "comment_block"
},
mixin_embed("markdown", "markdown-"),
mixin_embed("sass", "sass-"),
mixin_embed("less", "less-"),
mixin_embed("coffee", "coffee-"),
/*
{
"token": {
"2": {
"name": "entity.name.tag.script.jade"
"name": "entity.name.function.jade"
}
},
"regex": "^(\\s*)(script)",
"next": "state_13"
"regex": "^(\\s*)(\\:cdata)",
"next": "state_9"
},*/
// match stuff like: mixin dialog-title-desc(title, desc)
{
"token": [ "storage.type.function.jade",
"entity.name.function.jade",
"punctuation.definition.parameters.begin.jade",
"variable.parameter.function.jade",
"punctuation.definition.parameters.end.jade"
],
"regex": "^(\\s*mixin)( [\\w\\-]+)(\\s*\\()(.*?)(\\))"
},
// match stuff like: mixin dialog-title-desc
{
"token": [ "storage.type.function.jade", "entity.name.function.jade"],
"regex": "^(\\s*mixin)( [\\w\\-]+)"
},
/* {
"token": "source.js.embedded.jade",
"regex": "^\\s*-|=|!=",
"next": "js_code"
},*/
/*{
"token": "entity.name.tag.script.jade",
"regex": "^\\s*script",
"next": "js_code_tag"
},*/
{
"token": "string.interpolated.jade",
"regex": "[#!]\\{[^\\}]+\\}"
},
// Match any tag, id or class. skip AST filters
{
"token": {
"1": {
"name": "meta.tag.any.jade"
},
"2": {
"name": "entity.name.tag.jade"
}
"token": ["meta.tag.any.jade", "entity.variable.tag.jade"],
"regex": /^\s*(?!\w+\:)(?:[\w]+|(?=\.|#)])/,
"next": "tag_single"
},
{
"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]+))|(?=\\.|#))",
"next": "state_15"
},
{
"regex": "(?<=\\w)\\s*\\(", // ERROR: This contains a lookbehind, which JS does not support :(",
"next": "state_16"
}
],
"block_comment": [
{
"token": "text",
"regex": "^(?!\\1\\s+|$)",
"regex": "^(\\1\\S|$)",
"captures": "1",
"next": "start"
},
{
"token": "text",
"regex": ".+",
"next": "block_comment"
"token": "comment.block.jade",
"merge" : true,
"regex" : ".+"
}
],
/*"markdown_filter": [
{
"include": "text.html.markdown"
},
{
"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": [
/*
"state_9": [
{
"token": "TODO",
"regex": "^(?!\\1\\s+)",
@ -205,22 +179,18 @@ var JadeHighlightRules = function() {
"next": "state_9"
}
],*/
"state_12": [
{
"include": "source.js"
},
/*"js_code": [
{
"token": "keyword.control.js",
"regex": "\\b(each)\\b"
"regex": "\\beach\\b"
},
{
"token": "TODO",
"token": "text",
"regex": "$",
"next": "start"
}
],
"state_13": [
{},
],*/
/*"js_code_tag": [
{
"include": "source.js"
},
@ -229,33 +199,122 @@ var JadeHighlightRules = function() {
"regex": "^((?=(\\1)([\\w#\\.]|$\\n?))|^$\\n?)",
"next": "start"
}
],
"state_15": [
],*/
"tag_single": [
{
"token": "meta.tag.attribute.class.jade",
"token": "suport.type.attribute.class.jade",
"regex": "\\.[\\w-]+"
},
{
"token": "meta.tag.attribute.id.jade",
"token": "suport.type.attribute.id.jade",
"regex": "#[\\w-]+"
},
{
"token": "TODO",
"regex": "$|(?!\\.|#|=|-)",
"token": ["text", "punctuation"],
"regex": "($)|((?!\\.|#|=|-))",
"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": "\\)",
"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);

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 {
border: 2px solid rgb(159, 159, 159);
@ -8,7 +9,7 @@
}
.ace-clouds .ace_gutter {
background: #ebebeb;
background: #e8e8e8;
color: #333;
}
@ -44,7 +45,7 @@
}
.ace-clouds .ace_marker-layer .ace_step {
background: rgb(255, 255, 0);
background: rgb(198, 219, 174);
}
.ace-clouds .ace_marker-layer .ace_bracket {
@ -57,7 +58,7 @@
}
.ace-clouds .ace_gutter_active_line {
background-color : #dcdcdc;
background-color: #FFFBD1;
}
.ace-clouds .ace_marker-layer .ace_selected_word {
@ -115,8 +116,4 @@
.ace-clouds .ace_markup.ace_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 ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) {
exports.isDark = false;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-clouds-midnight .ace_editor {
border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
}
.ace-clouds-midnight .ace_gutter {
background: #232323;
color: #929292;
background: #e8e8e8;
color: #333;
}
.ace-clouds-midnight .ace_print_margin {
width: 1px;
background: #232323;
background: #e8e8e8;
}
.ace-clouds-midnight .ace_scroller {
@ -44,7 +45,7 @@
}
.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 {
@ -116,8 +117,4 @@ background-color:#E92E2E;
.ace-clouds-midnight .ace_markup.ace_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 ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) {
exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-cobalt .ace_editor {
border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
}
.ace-cobalt .ace_gutter {
background: #011e3a;
color: #fff;
background: #e8e8e8;
color: #333;
}
.ace-cobalt .ace_print_margin {
width: 1px;
background: #011e3a;
background: #e8e8e8;
}
.ace-cobalt .ace_scroller {
@ -44,7 +45,7 @@
}
.ace-cobalt .ace_marker-layer .ace_step {
background: rgb(127, 111, 19);
background: rgb(198, 219, 174);
}
.ace-cobalt .ace_marker-layer .ace_bracket {
@ -57,7 +58,7 @@
}
.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 {
@ -76,10 +77,6 @@
color:#FF628C;
}
.ace-cobalt .ace_constant.ace_character, {
color:#FF628C;
}
.ace-cobalt .ace_constant.ace_character.ace_escape, {
color:#FF628C;
}
@ -142,8 +139,4 @@ background-color:#001221;
.ace-cobalt .ace_markup.ace_list {
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 ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) {
exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-dawn .ace_editor {
border: 2px solid rgb(159, 159, 159);
@ -8,7 +9,7 @@
}
.ace-dawn .ace_gutter {
background: #ebebeb;
background: #e8e8e8;
color: #333;
}
@ -44,7 +45,7 @@
}
.ace-dawn .ace_marker-layer .ace_step {
background: rgb(255, 255, 0);
background: rgb(198, 219, 174);
}
.ace-dawn .ace_marker-layer .ace_bracket {
@ -57,7 +58,7 @@
}
.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 {
@ -76,10 +77,6 @@
color:#811F24;
}
.ace-dawn .ace_constant.ace_character, {
color:#811F24;
}
.ace-dawn .ace_constant.ace_character.ace_escape, {
color:#811F24;
}
@ -146,8 +143,4 @@ color:#5A525F;
.ace-dawn .ace_markup.ace_list {
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 ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) {
exports.isDark = false;

View file

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

View file

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

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-kr-theme .ace_editor {
border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
}
.ace-kr-theme .ace_gutter {
background: #1c1917;
color: #FCFFE0;
background: #e8e8e8;
color: #333;
}
.ace-kr-theme .ace_print_margin {
width: 1px;
background: #1c1917;
background: #e8e8e8;
}
.ace-kr-theme .ace_scroller {
@ -44,7 +45,7 @@
}
.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 {
@ -57,7 +58,7 @@
}
.ace-kr-theme .ace_gutter_active_line {
background-color : #38403D;
background-color: #38403D;
}
.ace-kr-theme .ace_marker-layer .ace_selected_word {
@ -76,10 +77,6 @@
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, {
color:rgba(210, 117, 24, 0.76);
}
@ -137,8 +134,4 @@ color:#706D5B;
.ace-kr-theme .ace_markup.ace_list {
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 ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) {
exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-merbivore .ace_editor {
border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
}
.ace-merbivore .ace_gutter {
background: #202020;
color: #E6E1DC;
background: #e8e8e8;
color: #333;
}
.ace-merbivore .ace_print_margin {
width: 1px;
background: #555651;
background: #e8e8e8;
}
.ace-merbivore .ace_scroller {
@ -44,7 +45,7 @@
}
.ace-merbivore .ace_marker-layer .ace_step {
background: rgb(102, 82, 0);
background: rgb(198, 219, 174);
}
.ace-merbivore .ace_marker-layer .ace_bracket {
@ -57,7 +58,7 @@
}
.ace-merbivore .ace_gutter_active_line {
background-color : #333435;
background-color: #333435;
}
.ace-merbivore .ace_marker-layer .ace_selected_word {
@ -76,10 +77,6 @@
color:#1EDAFB;
}
.ace-merbivore .ace_constant.ace_character, {
color:#1EDAFB;
}
.ace-merbivore .ace_constant.ace_character.ace_escape, {
color:#1EDAFB;
}
@ -137,8 +134,4 @@ color:#AD2EA4;
.ace-merbivore .ace_markup.ace_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 ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) {
exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-merbivore-soft .ace_editor {
border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
}
.ace-merbivore-soft .ace_gutter {
background: #262424;
color: #E6E1DC;
background: #e8e8e8;
color: #333;
}
.ace-merbivore-soft .ace_print_margin {
width: 1px;
background: #262424;
background: #e8e8e8;
}
.ace-merbivore-soft .ace_scroller {
@ -44,7 +45,7 @@
}
.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 {
@ -76,10 +77,6 @@
color:#68C1D8;
}
.ace-merbivore-soft .ace_constant.ace_character, {
color:#68C1D8;
}
.ace-merbivore-soft .ace_constant.ace_character.ace_escape, {
color:#68C1D8;
}
@ -143,8 +140,4 @@ color:#AC4BB8;
.ace-merbivore-soft .ace_markup.ace_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 ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) {
exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-mono-industrial .ace_editor {
border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
}
.ace-mono-industrial .ace_gutter {
background: #1d2521;
color: #C5C9C9;
background: #e8e8e8;
color: #333;
}
.ace-mono-industrial .ace_print_margin {
width: 1px;
background: #555651;
background: #e8e8e8;
}
.ace-mono-industrial .ace_scroller {
@ -44,7 +45,7 @@
}
.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 {
@ -80,10 +81,6 @@
color:#E98800;
}
.ace-mono-industrial .ace_constant.ace_character, {
color:#E98800;
}
.ace-mono-industrial .ace_constant.ace_character.ace_escape, {
color:#E98800;
}
@ -145,8 +142,4 @@ background-color:#151C19;
.ace-mono-industrial .ace_markup.ace_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 ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) {
exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-monokai .ace_editor {
border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
}
.ace-monokai .ace_gutter {
background: #2f3129;
color: #f1f1f1;
background: #e8e8e8;
color: #333;
}
.ace-monokai .ace_print_margin {
width: 1px;
background: #555651;
background: #e8e8e8;
}
.ace-monokai .ace_scroller {
@ -44,7 +45,7 @@
}
.ace-monokai .ace_marker-layer .ace_step {
background: rgb(102, 82, 0);
background: rgb(198, 219, 174);
}
.ace-monokai .ace_marker-layer .ace_bracket {
@ -55,8 +56,9 @@
.ace-monokai .ace_marker-layer .ace_active_line {
background: #49483E;
}
.ace-monokai .ace_gutter_active_line {
background-color: #191916;
background-color: #49483E;
}
.ace-monokai .ace_marker-layer .ace_selected_word {
@ -71,6 +73,10 @@
color:#F92672;
}
.ace-monokai .ace_constant.ace_character, {
color:#AE81FF;
}
.ace-monokai .ace_constant.ace_language {
color:#AE81FF;
}
@ -142,8 +148,4 @@ color:#FD971F;
.ace-monokai .ace_markup.ace_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 ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) {
exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-pastel-on-dark .ace_editor {
border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
}
.ace-pastel-on-dark .ace_gutter {
background: #353030;
color: #8F938F;
background: #e8e8e8;
color: #333;
}
.ace-pastel-on-dark .ace_print_margin {
width: 1px;
background: #353030;
background: #e8e8e8;
}
.ace-pastel-on-dark .ace_scroller {
@ -44,7 +45,7 @@
}
.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 {
@ -81,7 +82,7 @@
}
.ace-pastel-on-dark .ace_constant.ace_character, {
color:#4FB7C5;
color:#AFA472;
}
.ace-pastel-on-dark .ace_constant.ace_character.ace_escape, {
@ -147,8 +148,4 @@ color:#D2A8A1;
.ace-pastel-on-dark .ace_markup.ace_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 ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) {
exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-solarized-dark .ace_editor {
border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
}
.ace-solarized-dark .ace_gutter {
background: #01313f;
color: #d0edf7;
background: #e8e8e8;
color: #333;
}
.ace-solarized-dark .ace_print_margin {
width: 1px;
background: #33555E;
background: #e8e8e8;
}
.ace-solarized-dark .ace_scroller {
@ -44,7 +45,7 @@
}
.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 {
@ -57,7 +58,7 @@
}
.ace-solarized-dark .ace_gutter_active_line {
background-color: #0d3440;
background-color: #073642;
}
.ace-solarized-dark .ace_marker-layer .ace_selected_word {
@ -72,6 +73,10 @@
color:#859900;
}
.ace-solarized-dark .ace_constant.ace_character, {
color:#CB4B16;
}
.ace-solarized-dark .ace_constant.ace_language {
color:#B58900;
}
@ -128,8 +133,4 @@ color:#657B83;
.ace-solarized-dark .ace_markup.ace_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 ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) {
exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-solarized-light .ace_editor {
border: 2px solid rgb(159, 159, 159);
@ -8,7 +9,7 @@
}
.ace-solarized-light .ace_gutter {
background: #fbf1d3;
background: #e8e8e8;
color: #333;
}
@ -44,7 +45,7 @@
}
.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 {
@ -57,7 +58,7 @@
}
.ace-solarized-light .ace_gutter_active_line {
background-color : #dcdcdc;
background-color: #EEE8D5;
}
.ace-solarized-light .ace_marker-layer .ace_selected_word {
@ -72,6 +73,10 @@
color:#859900;
}
.ace-solarized-light .ace_constant.ace_character, {
color:#CB4B16;
}
.ace-solarized-light .ace_constant.ace_language {
color:#B58900;
}
@ -127,8 +132,4 @@
.ace-solarized-light .ace_markup.ace_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 ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) {
exports.isDark = false;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-tomorrow .ace_editor {
border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
}
.ace-tomorrow .ace_gutter {
background: #f6f6f6;
color: #4D4D4C;
background: #e8e8e8;
color: #333;
}
.ace-tomorrow .ace_print_margin {
width: 1px;
background: #f6f6f6;
background: #e8e8e8;
}
.ace-tomorrow .ace_scroller {
@ -44,7 +45,7 @@
}
.ace-tomorrow .ace_marker-layer .ace_step {
background: rgb(255, 255, 0);
background: rgb(198, 219, 174);
}
.ace-tomorrow .ace_marker-layer .ace_bracket {
@ -57,7 +58,7 @@
}
.ace-tomorrow .ace_gutter_active_line {
background-color : #dcdcdc;
background-color: #EFEFEF;
}
.ace-tomorrow .ace_marker-layer .ace_selected_word {
@ -76,6 +77,10 @@
color:#3E999F;
}
.ace-tomorrow .ace_constant.ace_character, {
color:#F5871F;
}
.ace-tomorrow .ace_constant.ace_language {
color:#F5871F;
}
@ -161,8 +166,4 @@ background-color:#8959A8;
.ace-tomorrow .ace_markup.ace_heading {
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 ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) {
exports.isDark = false;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-tomorrow-night .ace_editor {
border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
}
.ace-tomorrow-night .ace_gutter {
background: #25282c;
color: #C5C8C6;
background: #e8e8e8;
color: #333;
}
.ace-tomorrow-night .ace_print_margin {
width: 1px;
background: #25282c;
background: #e8e8e8;
}
.ace-tomorrow-night .ace_scroller {
@ -44,7 +45,7 @@
}
.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 {
@ -76,6 +77,10 @@
color:#8ABEB7;
}
.ace-tomorrow-night .ace_constant.ace_character, {
color:#DE935F;
}
.ace-tomorrow-night .ace_constant.ace_language {
color:#DE935F;
}
@ -161,8 +166,4 @@ background-color:#B798BF;
.ace-tomorrow-night .ace_markup.ace_heading {
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 ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) {
exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-tomorrow-night-blue .ace_editor {
border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
}
.ace-tomorrow-night-blue .ace_gutter {
background: #00204b;
color: #7388b5;
background: #e8e8e8;
color: #333;
}
.ace-tomorrow-night-blue .ace_print_margin {
width: 1px;
background: #00204b;
background: #e8e8e8;
}
.ace-tomorrow-night-blue .ace_scroller {
@ -44,7 +45,7 @@
}
.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 {
@ -57,7 +58,7 @@
}
.ace-tomorrow-night-blue .ace_gutter_active_line {
background-color: #022040;
background-color: #00346E;
}
.ace-tomorrow-night-blue .ace_marker-layer .ace_selected_word {
@ -76,6 +77,10 @@
color:#99FFFF;
}
.ace-tomorrow-night-blue .ace_constant.ace_character, {
color:#FFC58F;
}
.ace-tomorrow-night-blue .ace_constant.ace_language {
color:#FFC58F;
}
@ -161,8 +166,4 @@ background-color:#EBBBFF;
.ace-tomorrow-night-blue .ace_markup.ace_heading {
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 ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) {
exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-tomorrow-night-bright .ace_editor {
border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
}
.ace-tomorrow-night-bright .ace_gutter {
background: #1a1a1a;
color: #DEDEDE;
background: #e8e8e8;
color: #333;
}
.ace-tomorrow-night-bright .ace_print_margin {
width: 1px;
background: #1a1a1a;
background: #e8e8e8;
}
.ace-tomorrow-night-bright .ace_scroller {
@ -44,7 +45,7 @@
}
.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 {
@ -76,6 +77,10 @@
color:#70C0B1;
}
.ace-tomorrow-night-bright .ace_constant.ace_character, {
color:#E78C45;
}
.ace-tomorrow-night-bright .ace_constant.ace_language {
color:#E78C45;
}
@ -161,8 +166,4 @@ background-color:#B798BF;
.ace-tomorrow-night-bright .ace_markup.ace_heading {
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 ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) {
exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-tomorrow-night-eighties .ace_editor {
border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
}
.ace-tomorrow-night-eighties .ace_gutter {
background: #272727;
color: #CCC;
background: #e8e8e8;
color: #333;
}
.ace-tomorrow-night-eighties .ace_print_margin {
width: 1px;
background: #272727;
background: #e8e8e8;
}
.ace-tomorrow-night-eighties .ace_scroller {
@ -44,7 +45,7 @@
}
.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 {
@ -76,6 +77,10 @@
color:#66CCCC;
}
.ace-tomorrow-night-eighties .ace_constant.ace_character, {
color:#F99157;
}
.ace-tomorrow-night-eighties .ace_constant.ace_language {
color:#F99157;
}
@ -157,8 +162,4 @@ background-color:#CC99CC;
.ace-tomorrow-night-eighties .ace_markup.ace_heading {
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 ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) {
exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-twilight .ace_editor {
border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
}
.ace-twilight .ace_gutter {
background: #232323;
color: #E2E2E2;
background: #e8e8e8;
color: #333;
}
.ace-twilight .ace_print_margin {
width: 1px;
background: #232323;
background: #e8e8e8;
}
.ace-twilight .ace_scroller {
@ -44,7 +45,7 @@
}
.ace-twilight .ace_marker-layer .ace_step {
background: rgb(102, 82, 0);
background: rgb(198, 219, 174);
}
.ace-twilight .ace_marker-layer .ace_bracket {
@ -76,10 +77,6 @@
color:#CF6A4C;
}
.ace-twilight .ace_constant.ace_character, {
color:#CF6A4C;
}
.ace-twilight .ace_constant.ace_character.ace_escape, {
color:#CF6A4C;
}
@ -159,8 +156,4 @@ color:#5F5A60;
.ace-twilight .ace_markup.ace_list {
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 ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) {
exports.isDark = true;

View file

@ -1,3 +1,4 @@
/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css */
.ace-vibrant-ink .ace_editor {
border: 2px solid rgb(159, 159, 159);
@ -8,13 +9,13 @@
}
.ace-vibrant-ink .ace_gutter {
background: #1a1a1a;
color: #BEBEBE;
background: #e8e8e8;
color: #333;
}
.ace-vibrant-ink .ace_print_margin {
width: 1px;
background: #1a1a1a;
background: #e8e8e8;
}
.ace-vibrant-ink .ace_scroller {
@ -44,7 +45,7 @@
}
.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 {
@ -76,10 +77,6 @@
color:#339999;
}
.ace-vibrant-ink .ace_constant.ace_character, {
color:#339999;
}
.ace-vibrant-ink .ace_constant.ace_character.ace_escape, {
color:#339999;
}
@ -138,8 +135,4 @@ color:#99CC99;
.ace-vibrant-ink .ace_markup.ace_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 ***** */
// THIS FILE WAS AUTOGENERATED BY theme.tmpl.js
define(function(require, exports, module) {
exports.isDark = true;

View file

@ -74,7 +74,7 @@ var Tokenizer = function(rules, flag) {
});
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] = {
rule: i,
@ -139,6 +139,11 @@ var Tokenizer = function(rules, flag) {
lastIndex = re.lastIndex;
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;
}
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, {
%constant%
%constant.character%
}
.%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 *****
* Distributed under the BSD license:
*
* Copyright (c) 2010, Ajax.org B.V.
* Copyright (c) 2012, Ajax.org B.V.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@ -33,6 +33,24 @@
*
* ***** 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) {
"use strict";

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

@ -4,11 +4,16 @@ var util = require("util");
// for tracking token states
var startState = { start: [] }, statesObj = { };
var args = process.argv.splice(2);
var tmLanguageFile = args[0];
var devMode = args[1];
var parseString = require("plist").parseString;
function parseLanguage(languageXml, callback) {
parseString(languageXml, function(_, language) {
callback(language[0])
});
parseString(languageXml, function(_, language) {
callback(language[0])
});
}
function logDebug(string, obj) {
@ -80,12 +85,12 @@ function checkForLookBehind(str) {
function assembleStateObjs(strState, pattern) {
var patterns = pattern.patterns;
var stateObj = {};
var tokenElem = [];
if (patterns) {
for (var p in patterns) {
stateObj = {}; // this is apparently necessary
if (patterns[p].include) {
stateObj.include = patterns[p].include;
}
@ -123,7 +128,7 @@ function extractPatterns(patterns) {
state++;
var i = 1;
var tokenArray = [];
var tokenObj = {};
var tokenObj = { token: [] };
var stateObj = {};
if (pattern.comment) {
@ -134,13 +139,24 @@ function extractPatterns(patterns) {
if (pattern.begin && pattern.end) {
var strState = "state_" + state;
if ( pattern.beginCaptures === undefined && pattern.endCaptures === undefined) {
tokenObj.token = pattern.captures;
tokenObj.token.push(pattern.captures);
}
else if (pattern.beginCaptures) {
tokenObj.token = pattern.beginCaptures;
tokenObj.token.push(pattern.beginCaptures);
}
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] = [ ];
@ -155,18 +171,27 @@ function extractPatterns(patterns) {
}
else if (pattern.captures) {
tokenObj.token = pattern.captures;
tokenObj.token.push([]);
tokenObj.token.push(pattern.captures);
tokenObj.regex = checkForLookBehind(pattern.match);
startState.start.push(tokenObj);
}
else if (pattern.match) {
tokenObj.token = pattern.name;
tokenObj.token.push(pattern.name);
tokenObj.regex = checkForLookBehind(pattern.match);
startState.start.push(tokenObj);
}
else if (pattern.include) {
tokenObj.token.push(pattern.include);
tokenObj.regex = "";
startState.start.push(tokenObj);
}
else {
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) {
var tmLanguage = fs.readFileSync(__dirname + "/" + name, "utf8");
parseLanguage(tmLanguage, function(language) {
var outFile = __dirname + "/../lib/ace/mode/" + language.name.replace(/-/g, "_").toLowerCase() + "_highlight_rules.js";
console.log("Converting " + name + " to " + outFile);
//console.log(util.inspect(language.patterns, false, 4));
var languageHighlightFilename = language.name.replace(/[-_]/g, "").toLowerCase();
var languageNameSanitized = language.name.replace(/-/g, "");
var languageHighlightFile = __dirname + "/../lib/ace/mode/" + languageHighlightFilename + "_highlight_rules.js";
var languageModeFile = __dirname + "/../lib/ace/mode/" + languageHighlightFilename + ".js";
console.log("Converting " + name + " to " + languageHighlightFile);
if (devMode)
console.log(util.inspect(language.patterns, false, 4));
var patterns = extractPatterns(language.patterns);
var lang = fillTemplate(modeTemplate, {
language: language.name.replace(/-/g, ""),
languageTokens: patterns
});
var patterns = extractPatterns(language.patterns);
var languageHighlightRules = fillTemplate(modeHighlightTemplate, {
language: languageNameSanitized,
languageTokens: patterns
});
fs.writeFileSync(outFile, lang);
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) {
console.error("Please pass in a language file via the command line.");
process.exit(1);

View file

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