Projekt

Obecné

Profil

Stáhnout (18.7 KB) Statistiky
| Větev: | Tag: | Revize:
1
ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
2
"use strict";
3

    
4
var oop = require("../lib/oop");
5
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
6

    
7
var DocCommentHighlightRules = function() {
8
    this.$rules = {
9
        "start" : [ {
10
            token : "comment.doc.tag",
11
            regex : "@[\\w\\d_]+" // TODO: fix email addresses
12
        }, 
13
        DocCommentHighlightRules.getTagRule(),
14
        {
15
            defaultToken : "comment.doc",
16
            caseInsensitive: true
17
        }]
18
    };
19
};
20

    
21
oop.inherits(DocCommentHighlightRules, TextHighlightRules);
22

    
23
DocCommentHighlightRules.getTagRule = function(start) {
24
    return {
25
        token : "comment.doc.tag.storage.type",
26
        regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b"
27
    };
28
};
29

    
30
DocCommentHighlightRules.getStartRule = function(start) {
31
    return {
32
        token : "comment.doc", // doc comment
33
        regex : "\\/\\*(?=\\*)",
34
        next  : start
35
    };
36
};
37

    
38
DocCommentHighlightRules.getEndRule = function (start) {
39
    return {
40
        token : "comment.doc", // closing comment
41
        regex : "\\*\\/",
42
        next  : start
43
    };
44
};
45

    
46

    
47
exports.DocCommentHighlightRules = DocCommentHighlightRules;
48

    
49
});
50

    
51
ace.define("ace/mode/java_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) {
52
"use strict";
53

    
54
var oop = require("../lib/oop");
55
var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules;
56
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
57

    
58
var JavaHighlightRules = function() {
59
    var keywords = (
60
    "abstract|continue|for|new|switch|" +
61
    "assert|default|goto|package|synchronized|" +
62
    "boolean|do|if|private|this|" +
63
    "break|double|implements|protected|throw|" +
64
    "byte|else|import|public|throws|" +
65
    "case|enum|instanceof|return|transient|" +
66
    "catch|extends|int|short|try|" +
67
    "char|final|interface|static|void|" +
68
    "class|finally|long|strictfp|volatile|" +
69
    "const|float|native|super|while|" +
70
    "var"
71
    );
72

    
73
    var buildinConstants = ("null|Infinity|NaN|undefined");
74

    
75

    
76
    var langClasses = (
77
        "AbstractMethodError|AssertionError|ClassCircularityError|"+
78
        "ClassFormatError|Deprecated|EnumConstantNotPresentException|"+
79
        "ExceptionInInitializerError|IllegalAccessError|"+
80
        "IllegalThreadStateException|InstantiationError|InternalError|"+
81
        "NegativeArraySizeException|NoSuchFieldError|Override|Process|"+
82
        "ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|"+
83
        "SuppressWarnings|TypeNotPresentException|UnknownError|"+
84
        "UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|"+
85
        "InstantiationException|IndexOutOfBoundsException|"+
86
        "ArrayIndexOutOfBoundsException|CloneNotSupportedException|"+
87
        "NoSuchFieldException|IllegalArgumentException|NumberFormatException|"+
88
        "SecurityException|Void|InheritableThreadLocal|IllegalStateException|"+
89
        "InterruptedException|NoSuchMethodException|IllegalAccessException|"+
90
        "UnsupportedOperationException|Enum|StrictMath|Package|Compiler|"+
91
        "Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|"+
92
        "NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|"+
93
        "NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|"+
94
        "Character|Boolean|StackTraceElement|Appendable|StringBuffer|"+
95
        "Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|"+
96
        "StackOverflowError|OutOfMemoryError|VirtualMachineError|"+
97
        "ArrayStoreException|ClassCastException|LinkageError|"+
98
        "NoClassDefFoundError|ClassNotFoundException|RuntimeException|"+
99
        "Exception|ThreadDeath|Error|Throwable|System|ClassLoader|"+
100
        "Cloneable|Class|CharSequence|Comparable|String|Object"
101
    );
102

    
103
    var keywordMapper = this.createKeywordMapper({
104
        "variable.language": "this",
105
        "keyword": keywords,
106
        "constant.language": buildinConstants,
107
        "support.function": langClasses
108
    }, "identifier");
109

    
110
    this.$rules = {
111
        "start" : [
112
            {
113
                token : "comment",
114
                regex : "\\/\\/.*$"
115
            },
116
            DocCommentHighlightRules.getStartRule("doc-start"),
117
            {
118
                token : "comment", // multi line comment
119
                regex : "\\/\\*",
120
                next : "comment"
121
            }, {
122
                token : "string", // single line
123
                regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
124
            }, {
125
                token : "string", // single line
126
                regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
127
            }, {
128
                token : "constant.numeric", // hex
129
                regex : /0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\b/
130
            }, {
131
                token : "constant.numeric", // float
132
                regex : /[+-]?\d[\d_]*(?:(?:\.[\d_]*)?(?:[eE][+-]?[\d_]+)?)?[LlSsDdFfYy]?\b/
133
            }, {
134
                token : "constant.language.boolean",
135
                regex : "(?:true|false)\\b"
136
            }, {
137
                regex: "(open(?:\\s+))?module(?=\\s*\\w)",
138
                token: "keyword",
139
                next: [{
140
                    regex: "{",
141
                    token: "paren.lparen",
142
                    next: [{
143
                        regex: "}",
144
                        token: "paren.rparen",
145
                        next: "start"
146
                    }, {
147
                        regex: "\\b(requires|transitive|exports|opens|to|uses|provides|with)\\b",
148
                        token: "keyword" 
149
                    }]
150
                }, {
151
                    token : "text",
152
                    regex : "\\s+"
153
                }, {
154
                    token : "identifier",
155
                    regex : "\\w+"
156
                }, {
157
                    token : "punctuation.operator",
158
                    regex : "."
159
                }, {
160
                    token : "text",
161
                    regex : "\\s+"
162
                }, {
163
                    regex: "", // exit if there is anything else
164
                    next: "start"
165
                }]
166
            }, {
167
                token : keywordMapper,
168
                regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
169
            }, {
170
                token : "keyword.operator",
171
                regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"
172
            }, {
173
                token : "lparen",
174
                regex : "[[({]"
175
            }, {
176
                token : "rparen",
177
                regex : "[\\])}]"
178
            }, {
179
                token : "text",
180
                regex : "\\s+"
181
            }
182
        ],
183
        "comment" : [
184
            {
185
                token : "comment", // closing comment
186
                regex : "\\*\\/",
187
                next : "start"
188
            }, {
189
                defaultToken : "comment"
190
            }
191
        ]
192
    };
193

    
194
    
195
    this.embedRules(DocCommentHighlightRules, "doc-",
196
        [ DocCommentHighlightRules.getEndRule("start") ]);
197
    this.normalizeRules();
198
};
199

    
200
oop.inherits(JavaHighlightRules, TextHighlightRules);
201

    
202
exports.JavaHighlightRules = JavaHighlightRules;
203
});
204

    
205
ace.define("ace/mode/drools_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/mode/java_highlight_rules","ace/mode/doc_comment_highlight_rules"], function(require, exports, module) {
206
"use strict";
207

    
208
var oop = require("../lib/oop");
209
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
210
var JavaHighlightRules = require("./java_highlight_rules").JavaHighlightRules;
211
var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules;
212

    
213
var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*";
214
var packageIdentifierRe = "[a-zA-Z\\$_\u00a1-\uffff][\\.a-zA-Z\\d\\$_\u00a1-\uffff]*";
215

    
216
var DroolsHighlightRules = function() {
217

    
218
    var keywords = ("date|effective|expires|lock|on|active|no|loop|auto|focus" +
219
        "|activation|group|agenda|ruleflow|duration|timer|calendars|refract|direct" +
220
        "|dialect|salience|enabled|attributes|extends|template" +
221
        "|function|contains|matches|eval|excludes|soundslike" +
222
        "|memberof|not|in|or|and|exists|forall|over|from|entry|point|accumulate|acc|collect" +
223
        "|action|reverse|result|end|init|instanceof|extends|super|boolean|char|byte|short" +
224
        "|int|long|float|double|this|void|class|new|case|final|if|else|for|while|do" +
225
        "|default|try|catch|finally|switch|synchronized|return|throw|break|continue|assert" +
226
        "|modify|static|public|protected|private|abstract|native|transient|volatile" +
227
        "|strictfp|throws|interface|enum|implements|type|window|trait|no-loop|str"
228
      );
229

    
230
      var langClasses = (
231
          "AbstractMethodError|AssertionError|ClassCircularityError|"+
232
          "ClassFormatError|Deprecated|EnumConstantNotPresentException|"+
233
          "ExceptionInInitializerError|IllegalAccessError|"+
234
          "IllegalThreadStateException|InstantiationError|InternalError|"+
235
          "NegativeArraySizeException|NoSuchFieldError|Override|Process|"+
236
          "ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|"+
237
          "SuppressWarnings|TypeNotPresentException|UnknownError|"+
238
          "UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|"+
239
          "InstantiationException|IndexOutOfBoundsException|"+
240
          "ArrayIndexOutOfBoundsException|CloneNotSupportedException|"+
241
          "NoSuchFieldException|IllegalArgumentException|NumberFormatException|"+
242
          "SecurityException|Void|InheritableThreadLocal|IllegalStateException|"+
243
          "InterruptedException|NoSuchMethodException|IllegalAccessException|"+
244
          "UnsupportedOperationException|Enum|StrictMath|Package|Compiler|"+
245
          "Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|"+
246
          "NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|"+
247
          "NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|"+
248
          "Character|Boolean|StackTraceElement|Appendable|StringBuffer|"+
249
          "Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|"+
250
          "StackOverflowError|OutOfMemoryError|VirtualMachineError|"+
251
          "ArrayStoreException|ClassCastException|LinkageError|"+
252
          "NoClassDefFoundError|ClassNotFoundException|RuntimeException|"+
253
          "Exception|ThreadDeath|Error|Throwable|System|ClassLoader|"+
254
          "Cloneable|Class|CharSequence|Comparable|String|Object"
255
      );
256

    
257
    var keywordMapper = this.createKeywordMapper({
258
        "variable.language": "this",
259
        "keyword": keywords,
260
        "constant.language": "null",
261
        "support.class" : langClasses,
262
        "support.function" : "retract|update|modify|insert"
263
    }, "identifier");
264

    
265
    var stringRules = function() {
266
      return [{
267
        token : "string", // single line
268
        regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
269
      }, {
270
        token : "string", // single line
271
        regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
272
      }];
273
    };
274

    
275

    
276
      var basicPreRules = function(blockCommentRules) {
277
        return [{
278
            token : "comment",
279
            regex : "\\/\\/.*$"
280
        },
281
        DocCommentHighlightRules.getStartRule("doc-start"),
282
        {
283
            token : "comment", // multi line comment
284
            regex : "\\/\\*",
285
            next : blockCommentRules
286
        }, {
287
            token : "constant.numeric", // hex
288
            regex : "0[xX][0-9a-fA-F]+\\b"
289
        }, {
290
            token : "constant.numeric", // float
291
            regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"
292
        }, {
293
            token : "constant.language.boolean",
294
            regex : "(?:true|false)\\b"
295
          }];
296
      };
297

    
298
      var blockCommentRules = function(returnRule) {
299
        return [
300
            {
301
                token : "comment.block", // closing comment
302
                regex : "\\*\\/",
303
                next : returnRule
304
            }, {
305
                defaultToken : "comment.block"
306
            }
307
        ];
308
      };
309

    
310
      var basicPostRules = function() {
311
        return [{
312
            token : keywordMapper,
313
            regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
314
        }, {
315
            token : "keyword.operator",
316
            regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)"
317
        }, {
318
            token : "lparen",
319
            regex : "[[({]"
320
        }, {
321
            token : "rparen",
322
            regex : "[\\])}]"
323
        }, {
324
            token : "text",
325
            regex : "\\s+"
326
        }];
327
      };
328

    
329

    
330
    this.$rules = {
331
        "start" : [].concat(basicPreRules("block.comment"), [
332
              {
333
                token : "entity.name.type",
334
                regex : "@[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
335
              }, {
336
                token : ["keyword","text","entity.name.type"],
337
                regex : "(package)(\\s+)(" + packageIdentifierRe +")"
338
              }, {
339
                token : ["keyword","text","keyword","text","entity.name.type"],
340
                regex : "(import)(\\s+)(function)(\\s+)(" + packageIdentifierRe +")"
341
              }, {
342
                token : ["keyword","text","entity.name.type"],
343
                regex : "(import)(\\s+)(" + packageIdentifierRe +")"
344
              }, {
345
                token : ["keyword","text","entity.name.type","text","variable"],
346
                regex : "(global)(\\s+)(" + packageIdentifierRe +")(\\s+)(" + identifierRe +")"
347
              }, {
348
                token : ["keyword","text","keyword","text","entity.name.type"],
349
                regex : "(declare)(\\s+)(trait)(\\s+)(" + identifierRe +")"
350
              }, {
351
                token : ["keyword","text","entity.name.type"],
352
                regex : "(declare)(\\s+)(" + identifierRe +")"
353
              }, {
354
                token : ["keyword","text","entity.name.type"],
355
                regex : "(extends)(\\s+)(" + packageIdentifierRe +")"
356
              }, {
357
                token : ["keyword","text"],
358
                regex : "(rule)(\\s+)",
359
                next :  "asset.name"
360
              }],
361
              stringRules(),
362
              [{
363
                token : ["variable.other","text","text"],
364
                regex : "(" + identifierRe + ")(\\s*)(:)"
365
              }, {
366
                token : ["keyword","text"],
367
                regex : "(query)(\\s+)",
368
                next :  "asset.name"
369
              }, {
370
                token : ["keyword","text"],
371
                regex : "(when)(\\s*)"
372
              }, {
373
                token : ["keyword","text"],
374
                regex : "(then)(\\s*)",
375
                next :  "java-start"
376
              }, {
377
                  token : "paren.lparen",
378
                  regex : /[\[({]/
379
              }, {
380
                  token : "paren.rparen",
381
                  regex : /[\])}]/
382
              }], basicPostRules()),
383
        "block.comment" : blockCommentRules("start"),
384
        "asset.name" : [
385
            {
386
                token : "entity.name",
387
                regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
388
            }, {
389
                token : "entity.name",
390
                regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
391
            }, {
392
                token : "entity.name",
393
                regex : identifierRe
394
            }, {
395
                regex: "",
396
                token: "empty",
397
                next: "start"
398
            }]
399
    };
400
    this.embedRules(DocCommentHighlightRules, "doc-",
401
        [ DocCommentHighlightRules.getEndRule("start") ]);
402

    
403
    this.embedRules(JavaHighlightRules, "java-", [
404
      {
405
       token : "support.function",
406
       regex: "\\b(insert|modify|retract|update)\\b"
407
     }, {
408
       token : "keyword",
409
       regex: "\\bend\\b",
410
       next  : "start"
411
    }]);
412

    
413
};
414

    
415
oop.inherits(DroolsHighlightRules, TextHighlightRules);
416

    
417
exports.DroolsHighlightRules = DroolsHighlightRules;
418
});
419

    
420
ace.define("ace/mode/folding/drools",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"], function(require, exports, module) {
421
"use strict";
422

    
423
var oop = require("../../lib/oop");
424
var Range = require("../../range").Range;
425
var BaseFoldMode = require("./fold_mode").FoldMode;
426
var TokenIterator = require("../../token_iterator").TokenIterator;
427

    
428
var FoldMode = exports.FoldMode = function() {};
429
oop.inherits(FoldMode, BaseFoldMode);
430

    
431
(function() {
432
    this.foldingStartMarker = /\b(rule|declare|query|when|then)\b/; 
433
    this.foldingStopMarker = /\bend\b/;
434

    
435
    this.getFoldWidgetRange = function(session, foldStyle, row) {
436
        var line = session.getLine(row);
437
        var match = line.match(this.foldingStartMarker);
438
        if (match) {
439
            var i = match.index;
440

    
441
            if (match[1]) {
442
                var position = {row: row, column: line.length};
443
                var iterator = new TokenIterator(session, position.row, position.column);
444
                var seek = "end";
445
                var token = iterator.getCurrentToken();
446
                if (token.value == "when") {
447
                    seek = "then";
448
                }
449
                while (token) {
450
                    if (token.value == seek) { 
451
                        return Range.fromPoints(position ,{
452
                            row: iterator.getCurrentTokenRow(),
453
                            column: iterator.getCurrentTokenColumn()
454
                        });
455
                    }
456
                    token = iterator.stepForward();
457
                }
458
            }
459

    
460
        }
461
    };
462

    
463
}).call(FoldMode.prototype);
464

    
465
});
466

    
467
ace.define("ace/mode/drools",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/drools_highlight_rules","ace/mode/folding/drools"], function(require, exports, module) {
468
"use strict";
469

    
470
var oop = require("../lib/oop");
471
var TextMode = require("./text").Mode;
472
var DroolsHighlightRules = require("./drools_highlight_rules").DroolsHighlightRules;
473
var DroolsFoldMode = require("./folding/drools").FoldMode;
474

    
475
var Mode = function() {
476
    this.HighlightRules = DroolsHighlightRules;
477
    this.foldingRules = new DroolsFoldMode();
478
    this.$behaviour = this.$defaultBehaviour;
479

    
480
};
481
oop.inherits(Mode, TextMode);
482

    
483
(function() {
484
    this.lineCommentStart = "//";
485
    this.$id = "ace/mode/drools";
486
    this.snippetFileId = "ace/snippets/drools";
487
}).call(Mode.prototype);
488

    
489
exports.Mode = Mode;
490

    
491
});                (function() {
492
                    ace.require(["ace/mode/drools"], function(m) {
493
                        if (typeof module == "object" && typeof exports == "object" && module) {
494
                            module.exports = m;
495
                        }
496
                    });
497
                })();
498
            
(62-62/244)