add Cirru syntax highlighting
This commit is contained in:
parent
811d63039d
commit
cd506ca7ad
4 changed files with 151 additions and 0 deletions
36
demo/kitchen-sink/docs/cirru.cirru
Normal file
36
demo/kitchen-sink/docs/cirru.cirru
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
-- https://github.com/Cirru/cirru-gopher/blob/master/code/scope.cr,
|
||||||
|
|
||||||
|
set a (int 2)
|
||||||
|
|
||||||
|
print (self)
|
||||||
|
|
||||||
|
set c (child)
|
||||||
|
|
||||||
|
under c
|
||||||
|
under parent
|
||||||
|
print a
|
||||||
|
|
||||||
|
print $ get c a
|
||||||
|
|
||||||
|
set c x (int 3)
|
||||||
|
print $ get c x
|
||||||
|
|
||||||
|
set just-print $ code
|
||||||
|
print a
|
||||||
|
|
||||||
|
print just-print
|
||||||
|
|
||||||
|
eval (self) just-print
|
||||||
|
eval just-print
|
||||||
|
|
||||||
|
print (string "string with space")
|
||||||
|
print (string "escapes \n \"\\")
|
||||||
|
|
||||||
|
brackets ((((()))))
|
||||||
|
|
||||||
|
"eval" $ string "eval"
|
||||||
|
|
||||||
|
print (add $ (int 1) (int 2))
|
||||||
|
|
||||||
|
print $ unwrap $
|
||||||
|
map (a $ int 1) (b $ int 2)
|
||||||
|
|
@ -52,6 +52,7 @@ var supportedModes = {
|
||||||
BatchFile: ["bat|cmd"],
|
BatchFile: ["bat|cmd"],
|
||||||
C9Search: ["c9search_results"],
|
C9Search: ["c9search_results"],
|
||||||
C_Cpp: ["cpp|c|cc|cxx|h|hh|hpp"],
|
C_Cpp: ["cpp|c|cc|cxx|h|hh|hpp"],
|
||||||
|
Cirru: ["cirru|cr"],
|
||||||
Clojure: ["clj"],
|
Clojure: ["clj"],
|
||||||
Cobol: ["CBL|COB"],
|
Cobol: ["CBL|COB"],
|
||||||
coffee: ["coffee|cf|cson|^Cakefile"],
|
coffee: ["coffee|cf|cson|^Cakefile"],
|
||||||
|
|
|
||||||
23
lib/ace/mode/cirru.js
Normal file
23
lib/ace/mode/cirru.js
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
|
||||||
|
define(function(require, exports, module) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
var oop = require("../lib/oop");
|
||||||
|
var TextMode = require("./text").Mode;
|
||||||
|
var Tokenizer = require("../tokenizer").Tokenizer;
|
||||||
|
var CirruHighlightRules = require("./cirru_highlight_rules").CirruHighlightRules;
|
||||||
|
var CoffeeFoldMode = require("./folding/coffee").FoldMode;
|
||||||
|
|
||||||
|
var Mode = function() {
|
||||||
|
this.HighlightRules = CirruHighlightRules;
|
||||||
|
this.foldingRules = new CoffeeFoldMode();
|
||||||
|
};
|
||||||
|
oop.inherits(Mode, TextMode);
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
this.lineCommentStart = "--";
|
||||||
|
this.$id = "ace/mode/cirru";
|
||||||
|
}).call(Mode.prototype);
|
||||||
|
|
||||||
|
exports.Mode = Mode;
|
||||||
|
});
|
||||||
91
lib/ace/mode/cirru_highlight_rules.js
Normal file
91
lib/ace/mode/cirru_highlight_rules.js
Normal file
|
|
@ -0,0 +1,91 @@
|
||||||
|
define(function(require, exports, module) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
var oop = require("../lib/oop");
|
||||||
|
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
|
||||||
|
|
||||||
|
// see http://cirru.org for more about this language
|
||||||
|
var CirruHighlightRules = function() {
|
||||||
|
this.$rules = {
|
||||||
|
start: [{
|
||||||
|
token: 'constant.numeric',
|
||||||
|
regex: /[\d\.]+/
|
||||||
|
}, {
|
||||||
|
token: 'comment.line.double-dash',
|
||||||
|
regex: /--/,
|
||||||
|
next: 'comment',
|
||||||
|
}, {
|
||||||
|
token: 'storage.modifier',
|
||||||
|
regex: /\(/,
|
||||||
|
}, {
|
||||||
|
token: 'support.function',
|
||||||
|
regex: /[^\(\)\"\s]+/,
|
||||||
|
next: 'line'
|
||||||
|
}, {
|
||||||
|
token: 'string.quoted.double',
|
||||||
|
regex: /"/,
|
||||||
|
next: 'string',
|
||||||
|
}, {
|
||||||
|
token: 'storage.modifier',
|
||||||
|
regex: /\)/,
|
||||||
|
}],
|
||||||
|
comment: [{
|
||||||
|
token: 'comment.line.double-dash',
|
||||||
|
regex: /\ +[^\n]+/,
|
||||||
|
next: 'start',
|
||||||
|
}],
|
||||||
|
string: [{
|
||||||
|
token: 'string.quoted.double',
|
||||||
|
regex: /"/,
|
||||||
|
next: 'line',
|
||||||
|
}, {
|
||||||
|
token: 'constant.character.escape',
|
||||||
|
regex: /\\/,
|
||||||
|
next: 'escape',
|
||||||
|
}, {
|
||||||
|
token: 'string.quoted.double',
|
||||||
|
regex: /[^\\\"]+/,
|
||||||
|
}],
|
||||||
|
escape: [{
|
||||||
|
token: 'constant.character.escape',
|
||||||
|
regex: /./,
|
||||||
|
next: 'string',
|
||||||
|
}],
|
||||||
|
line: [{
|
||||||
|
token: 'constant.numeric',
|
||||||
|
regex: /[\d\.]+/
|
||||||
|
}, {
|
||||||
|
token: 'markup.raw',
|
||||||
|
regex: /^\s*/,
|
||||||
|
next: 'start',
|
||||||
|
}, {
|
||||||
|
token: 'variable.parameter',
|
||||||
|
regex: /[^\(\)\"\s]+/
|
||||||
|
}, {
|
||||||
|
token: 'storage.modifier',
|
||||||
|
regex: /\(/,
|
||||||
|
next: 'start'
|
||||||
|
}, {
|
||||||
|
token: 'storage.modifier',
|
||||||
|
regex: /\)/,
|
||||||
|
}, {
|
||||||
|
token: 'markup.raw',
|
||||||
|
regex: /^\ */,
|
||||||
|
next: 'start',
|
||||||
|
}, {
|
||||||
|
token: 'storage.modifier',
|
||||||
|
regex: /\$/,
|
||||||
|
next: 'start',
|
||||||
|
}, {
|
||||||
|
token: 'string.quoted.double',
|
||||||
|
regex: /"/,
|
||||||
|
next: 'string',
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
oop.inherits(CirruHighlightRules, TextHighlightRules);
|
||||||
|
|
||||||
|
exports.CirruHighlightRules = CirruHighlightRules;
|
||||||
|
});
|
||||||
Loading…
Add table
Add a link
Reference in a new issue