bzr branch
http://gegoxaren.bato24.eu/bzr/lenasys/trunk
20.1.1
by galaxyAbstractor
* Added an simple admin panel to the codeviewer-cmssy stuff |
1 |
define('ace/mode/tm_snippet', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/text_highlight_rules'], function(require, exports, module) { |
2 |
||
3 |
||
4 |
var oop = require("../lib/oop"); |
|
5 |
var TextMode = require("./text").Mode; |
|
6 |
var Tokenizer = require("../tokenizer").Tokenizer; |
|
7 |
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; |
|
8 |
||
9 |
var SnippetHighlightRules = function() { |
|
10 |
||
11 |
var builtins = "SELECTION|CURRENT_WORD|SELECTED_TEXT|CURRENT_LINE|LINE_INDEX|" + |
|
12 |
"LINE_NUMBER|SOFT_TABS|TAB_SIZE|FILENAME|FILEPATH|FULLNAME"; |
|
13 |
||
14 |
this.$rules = { |
|
15 |
"start" : [ |
|
16 |
{token:"constant.language.escape", regex: /\\[\$}`\\]/}, |
|
17 |
{token:"keyword", regex: "\\$(?:TM_)?(?:" + builtins + ")\\b"}, |
|
18 |
{token:"variable", regex: "\\$\\w+"}, |
|
19 |
{token: function(value, state, stack) { |
|
20 |
if (stack[1]) |
|
21 |
stack[1]++; |
|
22 |
else |
|
23 |
stack.unshift("start", 1); |
|
24 |
return this.tokenName; |
|
25 |
}, tokenName: "markup.list", regex: "\\${", next: "varDecl"}, |
|
26 |
{token: function(value, state, stack) { |
|
27 |
if (!stack[1]) |
|
28 |
return "text"; |
|
29 |
stack[1]--; |
|
30 |
if (!stack[1]) |
|
31 |
stack.splice(0,2); |
|
32 |
return this.tokenName; |
|
33 |
}, tokenName: "markup.list", regex: "}"}, |
|
34 |
{token: "doc,comment", regex:/^\${2}-{5,}$/} |
|
35 |
], |
|
36 |
"varDecl" : [ |
|
37 |
{regex: /\d+\b/, token: "constant.numeric"}, |
|
38 |
{token:"keyword", regex: "(?:TM_)?(?:" + builtins + ")\\b"}, |
|
39 |
{token:"variable", regex: "\\w+"}, |
|
40 |
{regex: /:/, token: "punctuation.operator", next: "start"}, |
|
41 |
{regex: /\//, token: "string.regex", next: "regexp"}, |
|
42 |
{regex: "", next: "start"} |
|
43 |
], |
|
44 |
"regexp" : [ |
|
45 |
{regex: /\\./, token: "escape"}, |
|
46 |
{regex: /\[/, token: "regex.start", next: "charClass"}, |
|
47 |
{regex: "/", token: "string.regex", next: "format"}, |
|
48 |
||
49 |
{"token": "string.regex", regex:"."}, |
|
50 |
], |
|
51 |
charClass : [ |
|
52 |
{regex: "\\.", token: "escape"}, |
|
53 |
{regex: "\\]", token: "regex.end", next: "regexp"}, |
|
54 |
{"token": "string.regex", regex:"."}, |
|
55 |
], |
|
56 |
"format" : [ |
|
57 |
{regex: /\\[ulULE]/, token: "keyword"}, |
|
58 |
{regex: /\$\d+/, token: "variable"}, |
|
59 |
{regex: "/[gim]*:?", token: "string.regex", next: "start"}, |
|
60 |
||
61 |
{"token": "string", regex:"."}, |
|
62 |
] |
|
63 |
}; |
|
64 |
};
|
|
65 |
||
66 |
oop.inherits(SnippetHighlightRules, TextHighlightRules); |
|
67 |
||
68 |
exports.SnippetHighlightRules = SnippetHighlightRules; |
|
69 |
||
70 |
||
71 |
var Mode = function() { |
|
72 |
var highlighter = new SnippetHighlightRules(); |
|
73 |
||
74 |
this.$tokenizer = new Tokenizer(highlighter.getRules()); |
|
75 |
};
|
|
76 |
oop.inherits(Mode, TextMode); |
|
77 |
||
78 |
(function() { |
|
79 |
this.getNextLineIndent = function(state, line, tab) { |
|
80 |
return this.$getIndent(line); |
|
81 |
}; |
|
82 |
}).call(Mode.prototype); |
|
83 |
exports.Mode = Mode; |
|
84 |
||
85 |
||
86 |
});
|