123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501 |
- ace.define("ace/mode/elixir_highlight_rules",[], function(require, exports, module) {
- "use strict";
- var oop = require("../lib/oop");
- var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
- var ElixirHighlightRules = function() {
- this.$rules = { start:
- [ { token:
- [ 'meta.module.elixir',
- 'keyword.control.module.elixir',
- 'meta.module.elixir',
- 'entity.name.type.module.elixir' ],
- regex: '^(\\s*)(defmodule)(\\s+)((?:[A-Z]\\w*\\s*\\.\\s*)*[A-Z]\\w*)' },
- { token: 'comment.documentation.heredoc',
- regex: '@(?:module|type)?doc (?:~[a-z])?"""',
- push:
- [ { token: 'comment.documentation.heredoc',
- regex: '\\s*"""',
- next: 'pop' },
- { include: '#interpolated_elixir' },
- { include: '#escaped_char' },
- { defaultToken: 'comment.documentation.heredoc' } ],
- comment: '@doc with heredocs is treated as documentation' },
- { token: 'comment.documentation.heredoc',
- regex: '@(?:module|type)?doc ~[A-Z]"""',
- push:
- [ { token: 'comment.documentation.heredoc',
- regex: '\\s*"""',
- next: 'pop' },
- { defaultToken: 'comment.documentation.heredoc' } ],
- comment: '@doc with heredocs is treated as documentation' },
- { token: 'comment.documentation.heredoc',
- regex: '@(?:module|type)?doc (?:~[a-z])?\'\'\'',
- push:
- [ { token: 'comment.documentation.heredoc',
- regex: '\\s*\'\'\'',
- next: 'pop' },
- { include: '#interpolated_elixir' },
- { include: '#escaped_char' },
- { defaultToken: 'comment.documentation.heredoc' } ],
- comment: '@doc with heredocs is treated as documentation' },
- { token: 'comment.documentation.heredoc',
- regex: '@(?:module|type)?doc ~[A-Z]\'\'\'',
- push:
- [ { token: 'comment.documentation.heredoc',
- regex: '\\s*\'\'\'',
- next: 'pop' },
- { defaultToken: 'comment.documentation.heredoc' } ],
- comment: '@doc with heredocs is treated as documentation' },
- { token: 'comment.documentation.false',
- regex: '@(?:module|type)?doc false',
- comment: '@doc false is treated as documentation' },
- { token: 'comment.documentation.string',
- regex: '@(?:module|type)?doc "',
- push:
- [ { token: 'comment.documentation.string',
- regex: '"',
- next: 'pop' },
- { include: '#interpolated_elixir' },
- { include: '#escaped_char' },
- { defaultToken: 'comment.documentation.string' } ],
- comment: '@doc with string is treated as documentation' },
- { token: 'keyword.control.elixir',
- regex: '\\b(?:do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super)\\b(?![?!])',
- TODO: 'FIXME: regexp doesn\'t have js equivalent',
- originalRegex: '(?<!\\.)\\b(do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super)\\b(?![?!])' },
- { token: 'keyword.operator.elixir',
- regex: '\\b(?:and|not|or|when|xor|in|inlist|inbits)\\b',
- TODO: 'FIXME: regexp doesn\'t have js equivalent',
- originalRegex: '(?<!\\.)\\b(and|not|or|when|xor|in|inlist|inbits)\\b',
- comment: ' as above, just doesn\'t need a \'end\' and does a logic operation' },
- { token: 'constant.language.elixir',
- regex: '\\b(?:nil|true|false)\\b(?![?!])' },
- { token: 'variable.language.elixir',
- regex: '\\b__(?:CALLER|ENV|MODULE|DIR)__\\b(?![?!])' },
- { token:
- [ 'punctuation.definition.variable.elixir',
- 'variable.other.readwrite.module.elixir' ],
- regex: '(@)([a-zA-Z_]\\w*)' },
- { token:
- [ 'punctuation.definition.variable.elixir',
- 'variable.other.anonymous.elixir' ],
- regex: '(&)(\\d*)' },
- { token: 'variable.other.constant.elixir',
- regex: '\\b[A-Z]\\w*\\b' },
- { token: 'constant.numeric.elixir',
- regex: '\\b(?:0x[\\da-fA-F](?:_?[\\da-fA-F])*|\\d(?:_?\\d)*(?:\\.(?![^[:space:][:digit:]])(?:_?\\d)*)?(?:[eE][-+]?\\d(?:_?\\d)*)?|0b[01]+|0o[0-7]+)\\b',
- TODO: 'FIXME: regexp doesn\'t have js equivalent',
- originalRegex: '\\b(0x\\h(?>_?\\h)*|\\d(?>_?\\d)*(\\.(?![^[:space:][:digit:]])(?>_?\\d)*)?([eE][-+]?\\d(?>_?\\d)*)?|0b[01]+|0o[0-7]+)\\b' },
- { token: 'punctuation.definition.constant.elixir',
- regex: ':\'',
- push:
- [ { token: 'punctuation.definition.constant.elixir',
- regex: '\'',
- next: 'pop' },
- { include: '#interpolated_elixir' },
- { include: '#escaped_char' },
- { defaultToken: 'constant.other.symbol.single-quoted.elixir' } ] },
- { token: 'punctuation.definition.constant.elixir',
- regex: ':"',
- push:
- [ { token: 'punctuation.definition.constant.elixir',
- regex: '"',
- next: 'pop' },
- { include: '#interpolated_elixir' },
- { include: '#escaped_char' },
- { defaultToken: 'constant.other.symbol.double-quoted.elixir' } ] },
- { token: 'punctuation.definition.string.begin.elixir',
- regex: '(?:\'\'\')',
- TODO: 'FIXME: regexp doesn\'t have js equivalent',
- originalRegex: '(?>\'\'\')',
- push:
- [ { token: 'punctuation.definition.string.end.elixir',
- regex: '^\\s*\'\'\'',
- next: 'pop' },
- { include: '#interpolated_elixir' },
- { include: '#escaped_char' },
- { defaultToken: 'support.function.variable.quoted.single.heredoc.elixir' } ],
- comment: 'Single-quoted heredocs' },
- { token: 'punctuation.definition.string.begin.elixir',
- regex: '\'',
- push:
- [ { token: 'punctuation.definition.string.end.elixir',
- regex: '\'',
- next: 'pop' },
- { include: '#interpolated_elixir' },
- { include: '#escaped_char' },
- { defaultToken: 'support.function.variable.quoted.single.elixir' } ],
- comment: 'single quoted string (allows for interpolation)' },
- { token: 'punctuation.definition.string.begin.elixir',
- regex: '(?:""")',
- TODO: 'FIXME: regexp doesn\'t have js equivalent',
- originalRegex: '(?>""")',
- push:
- [ { token: 'punctuation.definition.string.end.elixir',
- regex: '^\\s*"""',
- next: 'pop' },
- { include: '#interpolated_elixir' },
- { include: '#escaped_char' },
- { defaultToken: 'string.quoted.double.heredoc.elixir' } ],
- comment: 'Double-quoted heredocs' },
- { token: 'punctuation.definition.string.begin.elixir',
- regex: '"',
- push:
- [ { token: 'punctuation.definition.string.end.elixir',
- regex: '"',
- next: 'pop' },
- { include: '#interpolated_elixir' },
- { include: '#escaped_char' },
- { defaultToken: 'string.quoted.double.elixir' } ],
- comment: 'double quoted string (allows for interpolation)' },
- { token: 'punctuation.definition.string.begin.elixir',
- regex: '~[a-z](?:""")',
- TODO: 'FIXME: regexp doesn\'t have js equivalent',
- originalRegex: '~[a-z](?>""")',
- push:
- [ { token: 'punctuation.definition.string.end.elixir',
- regex: '^\\s*"""',
- next: 'pop' },
- { include: '#interpolated_elixir' },
- { include: '#escaped_char' },
- { defaultToken: 'string.quoted.double.heredoc.elixir' } ],
- comment: 'Double-quoted heredocs sigils' },
- { token: 'punctuation.definition.string.begin.elixir',
- regex: '~[a-z]\\{',
- push:
- [ { token: 'punctuation.definition.string.end.elixir',
- regex: '\\}[a-z]*',
- next: 'pop' },
- { include: '#interpolated_elixir' },
- { include: '#escaped_char' },
- { defaultToken: 'string.interpolated.elixir' } ],
- comment: 'sigil (allow for interpolation)' },
- { token: 'punctuation.definition.string.begin.elixir',
- regex: '~[a-z]\\[',
- push:
- [ { token: 'punctuation.definition.string.end.elixir',
- regex: '\\][a-z]*',
- next: 'pop' },
- { include: '#interpolated_elixir' },
- { include: '#escaped_char' },
- { defaultToken: 'string.interpolated.elixir' } ],
- comment: 'sigil (allow for interpolation)' },
- { token: 'punctuation.definition.string.begin.elixir',
- regex: '~[a-z]\\<',
- push:
- [ { token: 'punctuation.definition.string.end.elixir',
- regex: '\\>[a-z]*',
- next: 'pop' },
- { include: '#interpolated_elixir' },
- { include: '#escaped_char' },
- { defaultToken: 'string.interpolated.elixir' } ],
- comment: 'sigil (allow for interpolation)' },
- { token: 'punctuation.definition.string.begin.elixir',
- regex: '~[a-z]\\(',
- push:
- [ { token: 'punctuation.definition.string.end.elixir',
- regex: '\\)[a-z]*',
- next: 'pop' },
- { include: '#interpolated_elixir' },
- { include: '#escaped_char' },
- { defaultToken: 'string.interpolated.elixir' } ],
- comment: 'sigil (allow for interpolation)' },
- { token: 'punctuation.definition.string.begin.elixir',
- regex: '~[a-z][^\\w]',
- push:
- [ { token: 'punctuation.definition.string.end.elixir',
- regex: '[^\\w][a-z]*',
- next: 'pop' },
- { include: '#interpolated_elixir' },
- { include: '#escaped_char' },
- { include: '#escaped_char' },
- { defaultToken: 'string.interpolated.elixir' } ],
- comment: 'sigil (allow for interpolation)' },
- { token: 'punctuation.definition.string.begin.elixir',
- regex: '~[A-Z](?:""")',
- TODO: 'FIXME: regexp doesn\'t have js equivalent',
- originalRegex: '~[A-Z](?>""")',
- push:
- [ { token: 'punctuation.definition.string.end.elixir',
- regex: '^\\s*"""',
- next: 'pop' },
- { defaultToken: 'string.quoted.other.literal.upper.elixir' } ],
- comment: 'Double-quoted heredocs sigils' },
- { token: 'punctuation.definition.string.begin.elixir',
- regex: '~[A-Z]\\{',
- push:
- [ { token: 'punctuation.definition.string.end.elixir',
- regex: '\\}[a-z]*',
- next: 'pop' },
- { defaultToken: 'string.quoted.other.literal.upper.elixir' } ],
- comment: 'sigil (without interpolation)' },
- { token: 'punctuation.definition.string.begin.elixir',
- regex: '~[A-Z]\\[',
- push:
- [ { token: 'punctuation.definition.string.end.elixir',
- regex: '\\][a-z]*',
- next: 'pop' },
- { defaultToken: 'string.quoted.other.literal.upper.elixir' } ],
- comment: 'sigil (without interpolation)' },
- { token: 'punctuation.definition.string.begin.elixir',
- regex: '~[A-Z]\\<',
- push:
- [ { token: 'punctuation.definition.string.end.elixir',
- regex: '\\>[a-z]*',
- next: 'pop' },
- { defaultToken: 'string.quoted.other.literal.upper.elixir' } ],
- comment: 'sigil (without interpolation)' },
- { token: 'punctuation.definition.string.begin.elixir',
- regex: '~[A-Z]\\(',
- push:
- [ { token: 'punctuation.definition.string.end.elixir',
- regex: '\\)[a-z]*',
- next: 'pop' },
- { defaultToken: 'string.quoted.other.literal.upper.elixir' } ],
- comment: 'sigil (without interpolation)' },
- { token: 'punctuation.definition.string.begin.elixir',
- regex: '~[A-Z][^\\w]',
- push:
- [ { token: 'punctuation.definition.string.end.elixir',
- regex: '[^\\w][a-z]*',
- next: 'pop' },
- { defaultToken: 'string.quoted.other.literal.upper.elixir' } ],
- comment: 'sigil (without interpolation)' },
- { token: ['punctuation.definition.constant.elixir', 'constant.other.symbol.elixir'],
- regex: '(:)([a-zA-Z_][\\w@]*(?:[?!]|=(?![>=]))?|\\<\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\-|\\|>|=>|~|~=|=|/|\\\\\\\\|\\*\\*?|\\.\\.?\\.?|>=?|<=?|&&?&?|\\+\\+?|\\-\\-?|\\|\\|?\\|?|\\!|@|\\%?\\{\\}|%|\\[\\]|\\^(?:\\^\\^)?)',
- TODO: 'FIXME: regexp doesn\'t have js equivalent',
- originalRegex: '(?<!:)(:)(?>[a-zA-Z_][\\w@]*(?>[?!]|=(?![>=]))?|\\<\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\-|\\|>|=>|~|~=|=|/|\\\\\\\\|\\*\\*?|\\.\\.?\\.?|>=?|<=?|&&?&?|\\+\\+?|\\-\\-?|\\|\\|?\\|?|\\!|@|\\%?\\{\\}|%|\\[\\]|\\^(\\^\\^)?)',
- comment: 'symbols' },
- { token: 'punctuation.definition.constant.elixir',
- regex: '(?:[a-zA-Z_][\\w@]*(?:[?!])?):(?!:)',
- TODO: 'FIXME: regexp doesn\'t have js equivalent',
- originalRegex: '(?>[a-zA-Z_][\\w@]*(?>[?!])?)(:)(?!:)',
- comment: 'symbols' },
- { token:
- [ 'punctuation.definition.comment.elixir',
- 'comment.line.number-sign.elixir' ],
- regex: '(#)(.*)' },
- { token: 'constant.numeric.elixir',
- regex: '\\?(?:\\\\(?:x[\\da-fA-F]{1,2}(?![\\da-fA-F])\\b|[^xMC])|[^\\s\\\\])',
- TODO: 'FIXME: regexp doesn\'t have js equivalent',
- originalRegex: '(?<!\\w)\\?(\\\\(x\\h{1,2}(?!\\h)\\b|[^xMC])|[^\\s\\\\])',
- comment: '\n\t\t\tmatches questionmark-letters.\n\n\t\t\texamples (1st alternation = hex):\n\t\t\t?\\x1 ?\\x61\n\n\t\t\texamples (2rd alternation = escaped):\n\t\t\t?\\n ?\\b\n\n\t\t\texamples (3rd alternation = normal):\n\t\t\t?a ?A ?0 \n\t\t\t?* ?" ?( \n\t\t\t?. ?#\n\t\t\t\n\t\t\tthe negative lookbehind prevents against matching\n\t\t\tp(42.tainted?)\n\t\t\t' },
- { token: 'keyword.operator.assignment.augmented.elixir',
- regex: '\\+=|\\-=|\\|\\|=|~=|&&=' },
- { token: 'keyword.operator.comparison.elixir',
- regex: '===?|!==?|<=?|>=?' },
- { token: 'keyword.operator.bitwise.elixir',
- regex: '\\|{3}|&{3}|\\^{3}|<{3}|>{3}|~{3}' },
- { token: 'keyword.operator.logical.elixir',
- regex: '!+|\\bnot\\b|&&|\\band\\b|\\|\\||\\bor\\b|\\bxor\\b',
- originalRegex: '(?<=[ \\t])!+|\\bnot\\b|&&|\\band\\b|\\|\\||\\bor\\b|\\bxor\\b' },
- { token: 'keyword.operator.arithmetic.elixir',
- regex: '\\*|\\+|\\-|/' },
- { token: 'keyword.operator.other.elixir',
- regex: '\\||\\+\\+|\\-\\-|\\*\\*|\\\\\\\\|\\<\\-|\\<\\>|\\<\\<|\\>\\>|\\:\\:|\\.\\.|\\|>|~|=>' },
- { token: 'keyword.operator.assignment.elixir', regex: '=' },
- { token: 'punctuation.separator.other.elixir', regex: ':' },
- { token: 'punctuation.separator.statement.elixir',
- regex: '\\;' },
- { token: 'punctuation.separator.object.elixir', regex: ',' },
- { token: 'punctuation.separator.method.elixir', regex: '\\.' },
- { token: 'punctuation.section.scope.elixir', regex: '\\{|\\}' },
- { token: 'punctuation.section.array.elixir', regex: '\\[|\\]' },
- { token: 'punctuation.section.function.elixir',
- regex: '\\(|\\)' } ],
- '#escaped_char':
- [ { token: 'constant.character.escape.elixir',
- regex: '\\\\(?:x[\\da-fA-F]{1,2}|.)' } ],
- '#interpolated_elixir':
- [ { token:
- [ 'source.elixir.embedded.source',
- 'source.elixir.embedded.source.empty' ],
- regex: '(#\\{)(\\})' },
- { todo:
- { token: 'punctuation.section.embedded.elixir',
- regex: '#\\{',
- push:
- [ { token: 'punctuation.section.embedded.elixir',
- regex: '\\}',
- next: 'pop' },
- { include: '#nest_curly_and_self' },
- { include: '$self' },
- { defaultToken: 'source.elixir.embedded.source' } ] } } ],
- '#nest_curly_and_self':
- [ { token: 'punctuation.section.scope.elixir',
- regex: '\\{',
- push:
- [ { token: 'punctuation.section.scope.elixir',
- regex: '\\}',
- next: 'pop' },
- { include: '#nest_curly_and_self' } ] },
- { include: '$self' } ],
- '#regex_sub':
- [ { include: '#interpolated_elixir' },
- { include: '#escaped_char' },
- { token:
- [ 'punctuation.definition.arbitrary-repitition.elixir',
- 'string.regexp.arbitrary-repitition.elixir',
- 'string.regexp.arbitrary-repitition.elixir',
- 'punctuation.definition.arbitrary-repitition.elixir' ],
- regex: '(\\{)(\\d+)((?:,\\d+)?)(\\})' },
- { token: 'punctuation.definition.character-class.elixir',
- regex: '\\[(?:\\^?\\])?',
- push:
- [ { token: 'punctuation.definition.character-class.elixir',
- regex: '\\]',
- next: 'pop' },
- { include: '#escaped_char' },
- { defaultToken: 'string.regexp.character-class.elixir' } ] },
- { token: 'punctuation.definition.group.elixir',
- regex: '\\(',
- push:
- [ { token: 'punctuation.definition.group.elixir',
- regex: '\\)',
- next: 'pop' },
- { include: '#regex_sub' },
- { defaultToken: 'string.regexp.group.elixir' } ] },
- { token:
- [ 'punctuation.definition.comment.elixir',
- 'comment.line.number-sign.elixir' ],
- regex: '(?:^|\\s)(#)(\\s[[a-zA-Z0-9,. \\t?!-][^\\x00-\\x7F]]*$)',
- originalRegex: '(?<=^|\\s)(#)\\s[[a-zA-Z0-9,. \\t?!-][^\\x{00}-\\x{7F}]]*$',
- comment: 'We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.' } ] };
-
- this.normalizeRules();
- };
- ElixirHighlightRules.metaData = { comment: 'Textmate bundle for Elixir Programming Language.',
- fileTypes: [ 'ex', 'exs' ],
- firstLineMatch: '^#!/.*\\belixir',
- foldingStartMarker: '(after|else|catch|rescue|\\-\\>|\\{|\\[|do)\\s*$',
- foldingStopMarker: '^\\s*((\\}|\\]|after|else|catch|rescue)\\s*$|end\\b)',
- keyEquivalent: '^~E',
- name: 'Elixir',
- scopeName: 'source.elixir' };
- oop.inherits(ElixirHighlightRules, TextHighlightRules);
- exports.ElixirHighlightRules = ElixirHighlightRules;
- });
- ace.define("ace/mode/folding/coffee",[], function(require, exports, module) {
- "use strict";
- var oop = require("../../lib/oop");
- var BaseFoldMode = require("./fold_mode").FoldMode;
- var Range = require("../../range").Range;
- var FoldMode = exports.FoldMode = function() {};
- oop.inherits(FoldMode, BaseFoldMode);
- (function() {
- this.getFoldWidgetRange = function(session, foldStyle, row) {
- var range = this.indentationBlock(session, row);
- if (range)
- return range;
- var re = /\S/;
- var line = session.getLine(row);
- var startLevel = line.search(re);
- if (startLevel == -1 || line[startLevel] != "#")
- return;
- var startColumn = line.length;
- var maxRow = session.getLength();
- var startRow = row;
- var endRow = row;
- while (++row < maxRow) {
- line = session.getLine(row);
- var level = line.search(re);
- if (level == -1)
- continue;
- if (line[level] != "#")
- break;
- endRow = row;
- }
- if (endRow > startRow) {
- var endColumn = session.getLine(endRow).length;
- return new Range(startRow, startColumn, endRow, endColumn);
- }
- };
- this.getFoldWidget = function(session, foldStyle, row) {
- var line = session.getLine(row);
- var indent = line.search(/\S/);
- var next = session.getLine(row + 1);
- var prev = session.getLine(row - 1);
- var prevIndent = prev.search(/\S/);
- var nextIndent = next.search(/\S/);
- if (indent == -1) {
- session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? "start" : "";
- return "";
- }
- if (prevIndent == -1) {
- if (indent == nextIndent && line[indent] == "#" && next[indent] == "#") {
- session.foldWidgets[row - 1] = "";
- session.foldWidgets[row + 1] = "";
- return "start";
- }
- } else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") {
- if (session.getLine(row - 2).search(/\S/) == -1) {
- session.foldWidgets[row - 1] = "start";
- session.foldWidgets[row + 1] = "";
- return "";
- }
- }
- if (prevIndent!= -1 && prevIndent < indent)
- session.foldWidgets[row - 1] = "start";
- else
- session.foldWidgets[row - 1] = "";
- if (indent < nextIndent)
- return "start";
- else
- return "";
- };
- }).call(FoldMode.prototype);
- });
- ace.define("ace/mode/elixir",[], function(require, exports, module) {
- "use strict";
- var oop = require("../lib/oop");
- var TextMode = require("./text").Mode;
- var ElixirHighlightRules = require("./elixir_highlight_rules").ElixirHighlightRules;
- var FoldMode = require("./folding/coffee").FoldMode;
- var Mode = function() {
- this.HighlightRules = ElixirHighlightRules;
- this.foldingRules = new FoldMode();
- this.$behaviour = this.$defaultBehaviour;
- };
- oop.inherits(Mode, TextMode);
- (function() {
- this.lineCommentStart = "#";
- this.$id = "ace/mode/elixir";
- }).call(Mode.prototype);
- exports.Mode = Mode;
- });
- (function() {
- ace.require(["ace/mode/elixir"], function(m) {
- if (typeof module == "object" && typeof exports == "object" && module) {
- module.exports = m;
- }
- });
- })();
-
|