commit
88bcdb075c
9 changed files with 536 additions and 12 deletions
|
|
@ -90,6 +90,7 @@ var docs = {
|
||||||
"docs/luapage.lp": "LuaPage",
|
"docs/luapage.lp": "LuaPage",
|
||||||
"docs/Makefile": "Makefile",
|
"docs/Makefile": "Makefile",
|
||||||
"docs/markdown.md": {name: "Markdown", wrapped: true},
|
"docs/markdown.md": {name: "Markdown", wrapped: true},
|
||||||
|
"docs/objectivec.m": {name: "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",
|
||||||
|
|
|
||||||
104
demo/kitchen-sink/docs/objectivec.m
Normal file
104
demo/kitchen-sink/docs/objectivec.m
Normal file
|
|
@ -0,0 +1,104 @@
|
||||||
|
@protocol Printing: someParent
|
||||||
|
-(void) print;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface Fraction: NSObject <Printing, NSCopying> {
|
||||||
|
int numerator;
|
||||||
|
int denominator;
|
||||||
|
}
|
||||||
|
@end
|
||||||
|
|
||||||
|
@"blah\8" @"a\222sd\d" @"\faw\"\? \' \4 n\\" @"\56"
|
||||||
|
@"\xSF42"
|
||||||
|
|
||||||
|
-(NSDecimalNumber*)addCount:(id)addObject{
|
||||||
|
|
||||||
|
return [count decimalNumberByAdding:addObject.count];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
NS_DURING NS_HANDLER NS_ENDHANDLER
|
||||||
|
|
||||||
|
@try {
|
||||||
|
if (argc > 1) {
|
||||||
|
@throw [NSException exceptionWithName:@"Throwing a test exception" reason:@"Testing the @throw directive." userInfo:nil];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@catch (id theException) {
|
||||||
|
NSLog(@"%@", theException);
|
||||||
|
result = 1 ;
|
||||||
|
}
|
||||||
|
@finally {
|
||||||
|
NSLog(@"This always happens.");
|
||||||
|
result += 2 ;
|
||||||
|
}
|
||||||
|
|
||||||
|
@synchronized(lock) {
|
||||||
|
NSLog(@"Hello World");
|
||||||
|
}
|
||||||
|
|
||||||
|
struct { @defs( NSObject) }
|
||||||
|
|
||||||
|
char *enc1 = @encode(int);
|
||||||
|
|
||||||
|
IBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class
|
||||||
|
|
||||||
|
|
||||||
|
@class @protocol
|
||||||
|
|
||||||
|
@public
|
||||||
|
// instance variables
|
||||||
|
@package
|
||||||
|
// instance variables
|
||||||
|
@protected
|
||||||
|
// instance variables
|
||||||
|
@private
|
||||||
|
// instance variables
|
||||||
|
|
||||||
|
YES NO Nil nil
|
||||||
|
NSApp()
|
||||||
|
NSRectToCGRect (Protocol ProtocolFromString:"NSTableViewDelegate"))
|
||||||
|
|
||||||
|
[SPPoint pointFromCGPoint:self.position]
|
||||||
|
|
||||||
|
NSRoundDownToMultipleOfPageSize
|
||||||
|
|
||||||
|
#import <stdio.h>
|
||||||
|
|
||||||
|
int main( int argc, const char *argv[] ) {
|
||||||
|
printf( "hello world\n" );
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
NSChangeSpelling
|
||||||
|
|
||||||
|
@"0 != SUBQUERY(image, $x, 0 != SUBQUERY($x.bookmarkItems, $y, $y.@count == 0).@count).@count"
|
||||||
|
|
||||||
|
@selector(lowercaseString) @selector(uppercaseString:)
|
||||||
|
|
||||||
|
NSFetchRequest *localRequest = [[NSFetchRequest alloc] init];
|
||||||
|
localRequest.entity = [NSEntityDescription entityForName:@"VNSource" inManagedObjectContext:context];
|
||||||
|
localRequest.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"resolution" ascending:YES]];
|
||||||
|
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"0 != SUBQUERY(image, $x, 0 != SUBQUERY($x.bookmarkItems, $y, $y.@count == 0).@count).@count"];
|
||||||
|
[NSPredicate predicateWithFormat:]
|
||||||
|
NSString *predicateString = [NSString stringWithFormat:@"SELF beginsWith[cd] %@", searchString];
|
||||||
|
NSPredicate *pred = [NSPredicate predicateWithFormat:predicateString];
|
||||||
|
NSArray *filteredKeys = [[myMutableDictionary allKeys] filteredArrayUsingPredicate:pred];
|
||||||
|
|
||||||
|
localRequest.predicate = [NSPredicate predicateWithFormat:@"whichChart = %@" argumentArray: listChartToDownload];
|
||||||
|
localRequest.fetchBatchSize = 100;
|
||||||
|
arrayRequest = [context executeFetchRequest:localRequest error:&error1];
|
||||||
|
|
||||||
|
[localRequest release];
|
||||||
|
|
||||||
|
#ifndef Nil
|
||||||
|
#define Nil __DARWIN_NULL /* id of Nil class */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@implementation MyObject
|
||||||
|
- (unsigned int)areaOfWidth:(unsigned int)width
|
||||||
|
height:(unsigned int)height
|
||||||
|
{
|
||||||
|
return width*height;
|
||||||
|
}
|
||||||
|
@end
|
||||||
|
|
@ -62,6 +62,7 @@ var modesByName = {
|
||||||
luapage: ["LuaPage" , "lp"], // http://keplerproject.github.com/cgilua/manual.html#templates
|
luapage: ["LuaPage" , "lp"], // http://keplerproject.github.com/cgilua/manual.html#templates
|
||||||
makefile: ["Makefile" , "^GNUmakefile|^makefile|^Makefile|^OCamlMakefile|make"],
|
makefile: ["Makefile" , "^GNUmakefile|^makefile|^Makefile|^OCamlMakefile|make"],
|
||||||
markdown: ["Markdown" , "md|markdown"],
|
markdown: ["Markdown" , "md|markdown"],
|
||||||
|
objectivec: ["Objective-C" , "m"],
|
||||||
ocaml: ["OCaml" , "ml|mli"],
|
ocaml: ["OCaml" , "ml|mli"],
|
||||||
perl: ["Perl" , "pl|pm"],
|
perl: ["Perl" , "pl|pm"],
|
||||||
pgsql: ["pgSQL" , "pgsql"],
|
pgsql: ["pgSQL" , "pgsql"],
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ var c_cppHighlightRules = function() {
|
||||||
|
|
||||||
var storageType = (
|
var storageType = (
|
||||||
"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|" +
|
"asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|" +
|
||||||
"_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void" +
|
"_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|" +
|
||||||
"class|wchar_t|template"
|
"class|wchar_t|template"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -65,7 +65,7 @@ var c_cppHighlightRules = function() {
|
||||||
"NULL|true|false|TRUE|FALSE"
|
"NULL|true|false|TRUE|FALSE"
|
||||||
);
|
);
|
||||||
|
|
||||||
var keywordMapper = this.createKeywordMapper({
|
var keywordMapper = exports.keywordMapper = this.createKeywordMapper({
|
||||||
"keyword.control" : keywordControls,
|
"keyword.control" : keywordControls,
|
||||||
"storage.type" : storageType,
|
"storage.type" : storageType,
|
||||||
"storage.modifier" : storageModifiers,
|
"storage.modifier" : storageModifiers,
|
||||||
|
|
@ -118,16 +118,10 @@ var c_cppHighlightRules = function() {
|
||||||
regex : "<[a-zA-Z0-9.]+>"
|
regex : "<[a-zA-Z0-9.]+>"
|
||||||
}, {
|
}, {
|
||||||
token : "keyword", // pre-compiler directivs
|
token : "keyword", // pre-compiler directivs
|
||||||
regex : "(?:#include|#pragma|#line|#define|#undef|#ifdef|#else|#elif|#endif|#ifndef)"
|
regex : "(?:#include|#import|#pragma|#line|#define|#undef|#ifdef|#else|#elif|#endif|#ifndef)"
|
||||||
}, {
|
}, {
|
||||||
token : "support.function.C99.c",
|
token : "support.function.C99.c",
|
||||||
regex : cFunctions
|
regex : cFunctions
|
||||||
}, {
|
|
||||||
// function myFunc(arg) { }
|
|
||||||
token : [
|
|
||||||
"text", "entity.name.function", "text", "paren.lparen"
|
|
||||||
],
|
|
||||||
regex : "(\\s+)(" + identifierRe + ")(\\s*)(\\()"
|
|
||||||
}, {
|
}, {
|
||||||
token : keywordMapper,
|
token : keywordMapper,
|
||||||
regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
|
regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
|
||||||
|
|
|
||||||
60
lib/ace/mode/objectivec.js
Normal file
60
lib/ace/mode/objectivec.js
Normal 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;
|
||||||
|
});
|
||||||
342
lib/ace/mode/objectivec_highlight_rules.js
Normal file
342
lib/ace/mode/objectivec_highlight_rules.js
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -101,7 +101,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.ace-monokai .ace_entity.ace_name.ace_function,
|
.ace-monokai .ace_entity.ace_name.ace_function,
|
||||||
.ace-monokai .ace_entity.ace_other.ace_attribute-name,
|
.ace-monokai .ace_entity.ace_other,
|
||||||
.ace-monokai .ace_variable {
|
.ace-monokai .ace_variable {
|
||||||
color: #A6E22E
|
color: #A6E22E
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,8 @@ var http = require("http")
|
||||||
, mime = require("mime")
|
, mime = require("mime")
|
||||||
, url = require("url")
|
, url = require("url")
|
||||||
, fs = require("fs")
|
, fs = require("fs")
|
||||||
, port = process.env.PORT || 8888;
|
, port = process.env.PORT || 8888
|
||||||
|
, ip = process.env.IP || "0.0.0.0";
|
||||||
|
|
||||||
// compatibility with node 0.6
|
// compatibility with node 0.6
|
||||||
if (!fs.exists)
|
if (!fs.exists)
|
||||||
|
|
@ -40,6 +41,6 @@ http.createServer(function(request, response) {
|
||||||
response.end();
|
response.end();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}).listen(port, "0.0.0.0");
|
}).listen(port, ip);
|
||||||
|
|
||||||
console.log("http://localhost:" + port);
|
console.log("http://localhost:" + port);
|
||||||
|
|
|
||||||
21
tool/wrap_keyword_regexp.js
Normal file
21
tool/wrap_keyword_regexp.js
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
// a little script to turn giant keyword regexps into
|
||||||
|
// something that ace can use; for example:
|
||||||
|
//
|
||||||
|
// \b(NS(Rect(ToCGRect|FromCGRect)|MakeCollectable|S(tringFromProtocol))\b
|
||||||
|
//
|
||||||
|
// into
|
||||||
|
//
|
||||||
|
// (?:\\b)(NS(?:Rect(?:ToCGRect|FromCGRect)|MakeCollectable|S(?:tringFromProtocol))(?:\b)
|
||||||
|
|
||||||
|
var inputString = process.argv.splice(2)[0];
|
||||||
|
|
||||||
|
// solve word boundaries
|
||||||
|
var outputString = inputString.replace(/\\b/g, "(?:\\\\b)");
|
||||||
|
|
||||||
|
// I apparently need to do this, instead of something clever, because the regexp
|
||||||
|
// lastIndex is screwing up my positional
|
||||||
|
outputString = outputString.split("b)(");
|
||||||
|
|
||||||
|
outputString = outputString[0] + "b)(" + outputString[1].replace(/\(([^\?])/g, "(?:$1");
|
||||||
|
|
||||||
|
console.log("\n\n" + outputString + "\n\n");
|
||||||
Loading…
Add table
Add a link
Reference in a new issue