123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- ace.define("ace/mode/lisp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) {
- "use strict";
- var oop = require("../lib/oop");
- var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
- var LispHighlightRules = function() {
- var keywordControl = "case|do|let|loop|if|else|when";
- var keywordOperator = "eq|neq|and|or";
- var constantLanguage = "null|nil";
- var supportFunctions = "cons|car|cdr|cond|lambda|format|setq|setf|quote|eval|append|list|listp|memberp|t|load|progn";
- var keywordMapper = this.createKeywordMapper({
- "keyword.control": keywordControl,
- "keyword.operator": keywordOperator,
- "constant.language": constantLanguage,
- "support.function": supportFunctions
- }, "identifier", true);
- this.$rules =
- {
- "start": [
- {
- token : "comment",
- regex : ";.*$"
- },
- {
- token: ["storage.type.function-type.lisp", "text", "entity.name.function.lisp"],
- regex: "(?:\\b(?:(defun|defmethod|defmacro))\\b)(\\s+)((?:\\w|\\-|\\!|\\?)*)"
- },
- {
- token: ["punctuation.definition.constant.character.lisp", "constant.character.lisp"],
- regex: "(#)((?:\\w|[\\\\+-=<>'\"&#])+)"
- },
- {
- token: ["punctuation.definition.variable.lisp", "variable.other.global.lisp", "punctuation.definition.variable.lisp"],
- regex: "(\\*)(\\S*)(\\*)"
- },
- {
- token : "constant.numeric", // hex
- regex : "0[xX][0-9a-fA-F]+(?:L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"
- },
- {
- token : "constant.numeric", // float
- regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?(?:L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"
- },
- {
- token : keywordMapper,
- regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b"
- },
- {
- token : "string",
- regex : '"(?=.)',
- next : "qqstring"
- }
- ],
- "qqstring": [
- {
- token: "constant.character.escape.lisp",
- regex: "\\\\."
- },
- {
- token : "string",
- regex : '[^"\\\\]+'
- }, {
- token : "string",
- regex : "\\\\$",
- next : "qqstring"
- }, {
- token : "string",
- regex : '"|$',
- next : "start"
- }
- ]
- }
- };
- oop.inherits(LispHighlightRules, TextHighlightRules);
- exports.LispHighlightRules = LispHighlightRules;
- });
- ace.define("ace/mode/lisp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/lisp_highlight_rules"], function(require, exports, module) {
- "use strict";
- var oop = require("../lib/oop");
- var TextMode = require("./text").Mode;
- var LispHighlightRules = require("./lisp_highlight_rules").LispHighlightRules;
- var Mode = function() {
- this.HighlightRules = LispHighlightRules;
- this.$behaviour = this.$defaultBehaviour;
- };
- oop.inherits(Mode, TextMode);
- (function() {
-
- this.lineCommentStart = ";";
-
- this.$id = "ace/mode/lisp";
- }).call(Mode.prototype);
- exports.Mode = Mode;
- });
|