mirror of
https://github.com/AdaCore/ace.git
synced 2026-02-12 13:03:02 -08:00
add Cirru syntax highlighting
This commit is contained in:
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"],
|
||||
C9Search: ["c9search_results"],
|
||||
C_Cpp: ["cpp|c|cc|cxx|h|hh|hpp"],
|
||||
Cirru: ["cirru|cr"],
|
||||
Clojure: ["clj"],
|
||||
Cobol: ["CBL|COB"],
|
||||
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;
|
||||
});
|
||||
Reference in New Issue
Block a user