mode-elixir-2f8e49d4.js.map 34 KB

1
  1. {"version":3,"file":"mode-elixir-2f8e49d4.js","sources":["../../node_modules/ace-builds/src-noconflict/mode-elixir.js"],"sourcesContent":["ace.define(\"ace/mode/elixir_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module){/* This file was autogenerated from https://raw.githubusercontent.com/elixir-lang/elixir-tmbundle/master/Syntaxes/Elixir.tmLanguage (uuid: ) */\n\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar ElixirHighlightRules = function () {\n this.$rules = { start: [{ token: ['meta.module.elixir',\n 'keyword.control.module.elixir',\n 'meta.module.elixir',\n 'entity.name.type.module.elixir'],\n regex: '^(\\\\s*)(defmodule)(\\\\s+)((?:[A-Z]\\\\w*\\\\s*\\\\.\\\\s*)*[A-Z]\\\\w*)' },\n { token: 'comment.documentation.heredoc',\n regex: '@(?:module|type)?doc (?:~[a-z])?\"\"\"',\n push: [{ token: 'comment.documentation.heredoc',\n regex: '\\\\s*\"\"\"',\n next: 'pop' },\n { include: '#interpolated_elixir' },\n { include: '#escaped_char' },\n { defaultToken: 'comment.documentation.heredoc' }],\n comment: '@doc with heredocs is treated as documentation' },\n { token: 'comment.documentation.heredoc',\n regex: '@(?:module|type)?doc ~[A-Z]\"\"\"',\n push: [{ token: 'comment.documentation.heredoc',\n regex: '\\\\s*\"\"\"',\n next: 'pop' },\n { defaultToken: 'comment.documentation.heredoc' }],\n comment: '@doc with heredocs is treated as documentation' },\n { token: 'comment.documentation.heredoc',\n regex: '@(?:module|type)?doc (?:~[a-z])?\\'\\'\\'',\n push: [{ token: 'comment.documentation.heredoc',\n regex: '\\\\s*\\'\\'\\'',\n next: 'pop' },\n { include: '#interpolated_elixir' },\n { include: '#escaped_char' },\n { defaultToken: 'comment.documentation.heredoc' }],\n comment: '@doc with heredocs is treated as documentation' },\n { token: 'comment.documentation.heredoc',\n regex: '@(?:module|type)?doc ~[A-Z]\\'\\'\\'',\n push: [{ token: 'comment.documentation.heredoc',\n regex: '\\\\s*\\'\\'\\'',\n next: 'pop' },\n { defaultToken: 'comment.documentation.heredoc' }],\n comment: '@doc with heredocs is treated as documentation' },\n { token: 'comment.documentation.false',\n regex: '@(?:module|type)?doc false',\n comment: '@doc false is treated as documentation' },\n { token: 'comment.documentation.string',\n regex: '@(?:module|type)?doc \"',\n push: [{ token: 'comment.documentation.string',\n regex: '\"',\n next: 'pop' },\n { include: '#interpolated_elixir' },\n { include: '#escaped_char' },\n { defaultToken: 'comment.documentation.string' }],\n comment: '@doc with string is treated as documentation' },\n { token: 'keyword.control.elixir',\n 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(?![?!])',\n TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n 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(?![?!])' },\n { token: 'keyword.operator.elixir',\n regex: '\\\\b(?:and|not|or|when|xor|in|inlist|inbits)\\\\b',\n TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n originalRegex: '(?<!\\\\.)\\\\b(and|not|or|when|xor|in|inlist|inbits)\\\\b',\n comment: ' as above, just doesn\\'t need a \\'end\\' and does a logic operation' },\n { token: 'constant.language.elixir',\n regex: '\\\\b(?:nil|true|false)\\\\b(?![?!])' },\n { token: 'variable.language.elixir',\n regex: '\\\\b__(?:CALLER|ENV|MODULE|DIR)__\\\\b(?![?!])' },\n { token: ['punctuation.definition.variable.elixir',\n 'variable.other.readwrite.module.elixir'],\n regex: '(@)([a-zA-Z_]\\\\w*)' },\n { token: ['punctuation.definition.variable.elixir',\n 'variable.other.anonymous.elixir'],\n regex: '(&)(\\\\d*)' },\n { token: 'variable.other.constant.elixir',\n regex: '\\\\b[A-Z]\\\\w*\\\\b' },\n { token: 'constant.numeric.elixir',\n regex: '\\\\b(?:0x[\\\\da-fA-F](?:_?[\\\\da-fA-F])*|\\\\d(?:_?\\\\d)*(?:\\\\.(?![^[:space:][:digit:]])(?:_?\\\\d)*)?(?:[eE][-+]?\\\\d(?:_?\\\\d)*)?|0b[01]+|0o[0-7]+)\\\\b',\n TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n originalRegex: '\\\\b(0x\\\\h(?>_?\\\\h)*|\\\\d(?>_?\\\\d)*(\\\\.(?![^[:space:][:digit:]])(?>_?\\\\d)*)?([eE][-+]?\\\\d(?>_?\\\\d)*)?|0b[01]+|0o[0-7]+)\\\\b' },\n { token: 'punctuation.definition.constant.elixir',\n regex: ':\\'',\n push: [{ token: 'punctuation.definition.constant.elixir',\n regex: '\\'',\n next: 'pop' },\n { include: '#interpolated_elixir' },\n { include: '#escaped_char' },\n { defaultToken: 'constant.other.symbol.single-quoted.elixir' }] },\n { token: 'punctuation.definition.constant.elixir',\n regex: ':\"',\n push: [{ token: 'punctuation.definition.constant.elixir',\n regex: '\"',\n next: 'pop' },\n { include: '#interpolated_elixir' },\n { include: '#escaped_char' },\n { defaultToken: 'constant.other.symbol.double-quoted.elixir' }] },\n { token: 'punctuation.definition.string.begin.elixir',\n regex: '(?:\\'\\'\\')',\n TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n originalRegex: '(?>\\'\\'\\')',\n push: [{ token: 'punctuation.definition.string.end.elixir',\n regex: '^\\\\s*\\'\\'\\'',\n next: 'pop' },\n { include: '#interpolated_elixir' },\n { include: '#escaped_char' },\n { defaultToken: 'support.function.variable.quoted.single.heredoc.elixir' }],\n comment: 'Single-quoted heredocs' },\n { token: 'punctuation.definition.string.begin.elixir',\n regex: '\\'',\n push: [{ token: 'punctuation.definition.string.end.elixir',\n regex: '\\'',\n next: 'pop' },\n { include: '#interpolated_elixir' },\n { include: '#escaped_char' },\n { defaultToken: 'support.function.variable.quoted.single.elixir' }],\n comment: 'single quoted string (allows for interpolation)' },\n { token: 'punctuation.definition.string.begin.elixir',\n regex: '(?:\"\"\")',\n TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n originalRegex: '(?>\"\"\")',\n push: [{ token: 'punctuation.definition.string.end.elixir',\n regex: '^\\\\s*\"\"\"',\n next: 'pop' },\n { include: '#interpolated_elixir' },\n { include: '#escaped_char' },\n { defaultToken: 'string.quoted.double.heredoc.elixir' }],\n comment: 'Double-quoted heredocs' },\n { token: 'punctuation.definition.string.begin.elixir',\n regex: '\"',\n push: [{ token: 'punctuation.definition.string.end.elixir',\n regex: '\"',\n next: 'pop' },\n { include: '#interpolated_elixir' },\n { include: '#escaped_char' },\n { defaultToken: 'string.quoted.double.elixir' }],\n comment: 'double quoted string (allows for interpolation)' },\n { token: 'punctuation.definition.string.begin.elixir',\n regex: '~[a-z](?:\"\"\")',\n TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n originalRegex: '~[a-z](?>\"\"\")',\n push: [{ token: 'punctuation.definition.string.end.elixir',\n regex: '^\\\\s*\"\"\"',\n next: 'pop' },\n { include: '#interpolated_elixir' },\n { include: '#escaped_char' },\n { defaultToken: 'string.quoted.double.heredoc.elixir' }],\n comment: 'Double-quoted heredocs sigils' },\n { token: 'punctuation.definition.string.begin.elixir',\n regex: '~[a-z]\\\\{',\n push: [{ token: 'punctuation.definition.string.end.elixir',\n regex: '\\\\}[a-z]*',\n next: 'pop' },\n { include: '#interpolated_elixir' },\n { include: '#escaped_char' },\n { defaultToken: 'string.interpolated.elixir' }],\n comment: 'sigil (allow for interpolation)' },\n { token: 'punctuation.definition.string.begin.elixir',\n regex: '~[a-z]\\\\[',\n push: [{ token: 'punctuation.definition.string.end.elixir',\n regex: '\\\\][a-z]*',\n next: 'pop' },\n { include: '#interpolated_elixir' },\n { include: '#escaped_char' },\n { defaultToken: 'string.interpolated.elixir' }],\n comment: 'sigil (allow for interpolation)' },\n { token: 'punctuation.definition.string.begin.elixir',\n regex: '~[a-z]\\\\<',\n push: [{ token: 'punctuation.definition.string.end.elixir',\n regex: '\\\\>[a-z]*',\n next: 'pop' },\n { include: '#interpolated_elixir' },\n { include: '#escaped_char' },\n { defaultToken: 'string.interpolated.elixir' }],\n comment: 'sigil (allow for interpolation)' },\n { token: 'punctuation.definition.string.begin.elixir',\n regex: '~[a-z]\\\\(',\n push: [{ token: 'punctuation.definition.string.end.elixir',\n regex: '\\\\)[a-z]*',\n next: 'pop' },\n { include: '#interpolated_elixir' },\n { include: '#escaped_char' },\n { defaultToken: 'string.interpolated.elixir' }],\n comment: 'sigil (allow for interpolation)' },\n { token: 'punctuation.definition.string.begin.elixir',\n regex: '~[a-z][^\\\\w]',\n push: [{ token: 'punctuation.definition.string.end.elixir',\n regex: '[^\\\\w][a-z]*',\n next: 'pop' },\n { include: '#interpolated_elixir' },\n { include: '#escaped_char' },\n { include: '#escaped_char' },\n { defaultToken: 'string.interpolated.elixir' }],\n comment: 'sigil (allow for interpolation)' },\n { token: 'punctuation.definition.string.begin.elixir',\n regex: '~[A-Z](?:\"\"\")',\n TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n originalRegex: '~[A-Z](?>\"\"\")',\n push: [{ token: 'punctuation.definition.string.end.elixir',\n regex: '^\\\\s*\"\"\"',\n next: 'pop' },\n { defaultToken: 'string.quoted.other.literal.upper.elixir' }],\n comment: 'Double-quoted heredocs sigils' },\n { token: 'punctuation.definition.string.begin.elixir',\n regex: '~[A-Z]\\\\{',\n push: [{ token: 'punctuation.definition.string.end.elixir',\n regex: '\\\\}[a-z]*',\n next: 'pop' },\n { defaultToken: 'string.quoted.other.literal.upper.elixir' }],\n comment: 'sigil (without interpolation)' },\n { token: 'punctuation.definition.string.begin.elixir',\n regex: '~[A-Z]\\\\[',\n push: [{ token: 'punctuation.definition.string.end.elixir',\n regex: '\\\\][a-z]*',\n next: 'pop' },\n { defaultToken: 'string.quoted.other.literal.upper.elixir' }],\n comment: 'sigil (without interpolation)' },\n { token: 'punctuation.definition.string.begin.elixir',\n regex: '~[A-Z]\\\\<',\n push: [{ token: 'punctuation.definition.string.end.elixir',\n regex: '\\\\>[a-z]*',\n next: 'pop' },\n { defaultToken: 'string.quoted.other.literal.upper.elixir' }],\n comment: 'sigil (without interpolation)' },\n { token: 'punctuation.definition.string.begin.elixir',\n regex: '~[A-Z]\\\\(',\n push: [{ token: 'punctuation.definition.string.end.elixir',\n regex: '\\\\)[a-z]*',\n next: 'pop' },\n { defaultToken: 'string.quoted.other.literal.upper.elixir' }],\n comment: 'sigil (without interpolation)' },\n { token: 'punctuation.definition.string.begin.elixir',\n regex: '~[A-Z][^\\\\w]',\n push: [{ token: 'punctuation.definition.string.end.elixir',\n regex: '[^\\\\w][a-z]*',\n next: 'pop' },\n { defaultToken: 'string.quoted.other.literal.upper.elixir' }],\n comment: 'sigil (without interpolation)' },\n { token: ['punctuation.definition.constant.elixir', 'constant.other.symbol.elixir'],\n regex: '(:)([a-zA-Z_][\\\\w@]*(?:[?!]|=(?![>=]))?|\\\\<\\\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\\\-|\\\\|>|=>|~|~=|=|/|\\\\\\\\\\\\\\\\|\\\\*\\\\*?|\\\\.\\\\.?\\\\.?|>=?|<=?|&&?&?|\\\\+\\\\+?|\\\\-\\\\-?|\\\\|\\\\|?\\\\|?|\\\\!|@|\\\\%?\\\\{\\\\}|%|\\\\[\\\\]|\\\\^(?:\\\\^\\\\^)?)',\n TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n originalRegex: '(?<!:)(:)(?>[a-zA-Z_][\\\\w@]*(?>[?!]|=(?![>=]))?|\\\\<\\\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\\\-|\\\\|>|=>|~|~=|=|/|\\\\\\\\\\\\\\\\|\\\\*\\\\*?|\\\\.\\\\.?\\\\.?|>=?|<=?|&&?&?|\\\\+\\\\+?|\\\\-\\\\-?|\\\\|\\\\|?\\\\|?|\\\\!|@|\\\\%?\\\\{\\\\}|%|\\\\[\\\\]|\\\\^(\\\\^\\\\^)?)',\n comment: 'symbols' },\n { token: 'punctuation.definition.constant.elixir',\n regex: '(?:[a-zA-Z_][\\\\w@]*(?:[?!])?):(?!:)',\n TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n originalRegex: '(?>[a-zA-Z_][\\\\w@]*(?>[?!])?)(:)(?!:)',\n comment: 'symbols' },\n { token: ['punctuation.definition.comment.elixir',\n 'comment.line.number-sign.elixir'],\n regex: '(#)(.*)' },\n { token: 'constant.numeric.elixir',\n regex: '\\\\?(?:\\\\\\\\(?:x[\\\\da-fA-F]{1,2}(?![\\\\da-fA-F])\\\\b|[^xMC])|[^\\\\s\\\\\\\\])',\n TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n originalRegex: '(?<!\\\\w)\\\\?(\\\\\\\\(x\\\\h{1,2}(?!\\\\h)\\\\b|[^xMC])|[^\\\\s\\\\\\\\])',\n 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' },\n { token: 'keyword.operator.assignment.augmented.elixir',\n regex: '\\\\+=|\\\\-=|\\\\|\\\\|=|~=|&&=' },\n { token: 'keyword.operator.comparison.elixir',\n regex: '===?|!==?|<=?|>=?' },\n { token: 'keyword.operator.bitwise.elixir',\n regex: '\\\\|{3}|&{3}|\\\\^{3}|<{3}|>{3}|~{3}' },\n { token: 'keyword.operator.logical.elixir',\n regex: '!+|\\\\bnot\\\\b|&&|\\\\band\\\\b|\\\\|\\\\||\\\\bor\\\\b|\\\\bxor\\\\b',\n originalRegex: '(?<=[ \\\\t])!+|\\\\bnot\\\\b|&&|\\\\band\\\\b|\\\\|\\\\||\\\\bor\\\\b|\\\\bxor\\\\b' },\n { token: 'keyword.operator.arithmetic.elixir',\n regex: '\\\\*|\\\\+|\\\\-|/' },\n { token: 'keyword.operator.other.elixir',\n regex: '\\\\||\\\\+\\\\+|\\\\-\\\\-|\\\\*\\\\*|\\\\\\\\\\\\\\\\|\\\\<\\\\-|\\\\<\\\\>|\\\\<\\\\<|\\\\>\\\\>|\\\\:\\\\:|\\\\.\\\\.|\\\\|>|~|=>' },\n { token: 'keyword.operator.assignment.elixir', regex: '=' },\n { token: 'punctuation.separator.other.elixir', regex: ':' },\n { token: 'punctuation.separator.statement.elixir',\n regex: '\\\\;' },\n { token: 'punctuation.separator.object.elixir', regex: ',' },\n { token: 'punctuation.separator.method.elixir', regex: '\\\\.' },\n { token: 'punctuation.section.scope.elixir', regex: '\\\\{|\\\\}' },\n { token: 'punctuation.section.array.elixir', regex: '\\\\[|\\\\]' },\n { token: 'punctuation.section.function.elixir',\n regex: '\\\\(|\\\\)' }],\n '#escaped_char': [{ token: 'constant.character.escape.elixir',\n regex: '\\\\\\\\(?:x[\\\\da-fA-F]{1,2}|.)' }],\n '#interpolated_elixir': [{ token: ['source.elixir.embedded.source',\n 'source.elixir.embedded.source.empty'],\n regex: '(#\\\\{)(\\\\})' },\n { todo: { token: 'punctuation.section.embedded.elixir',\n regex: '#\\\\{',\n push: [{ token: 'punctuation.section.embedded.elixir',\n regex: '\\\\}',\n next: 'pop' },\n { include: '#nest_curly_and_self' },\n { include: '$self' },\n { defaultToken: 'source.elixir.embedded.source' }] } }],\n '#nest_curly_and_self': [{ token: 'punctuation.section.scope.elixir',\n regex: '\\\\{',\n push: [{ token: 'punctuation.section.scope.elixir',\n regex: '\\\\}',\n next: 'pop' },\n { include: '#nest_curly_and_self' }] },\n { include: '$self' }],\n '#regex_sub': [{ include: '#interpolated_elixir' },\n { include: '#escaped_char' },\n { token: ['punctuation.definition.arbitrary-repitition.elixir',\n 'string.regexp.arbitrary-repitition.elixir',\n 'string.regexp.arbitrary-repitition.elixir',\n 'punctuation.definition.arbitrary-repitition.elixir'],\n regex: '(\\\\{)(\\\\d+)((?:,\\\\d+)?)(\\\\})' },\n { token: 'punctuation.definition.character-class.elixir',\n regex: '\\\\[(?:\\\\^?\\\\])?',\n push: [{ token: 'punctuation.definition.character-class.elixir',\n regex: '\\\\]',\n next: 'pop' },\n { include: '#escaped_char' },\n { defaultToken: 'string.regexp.character-class.elixir' }] },\n { token: 'punctuation.definition.group.elixir',\n regex: '\\\\(',\n push: [{ token: 'punctuation.definition.group.elixir',\n regex: '\\\\)',\n next: 'pop' },\n { include: '#regex_sub' },\n { defaultToken: 'string.regexp.group.elixir' }] },\n { token: ['punctuation.definition.comment.elixir',\n 'comment.line.number-sign.elixir'],\n regex: '(?:^|\\\\s)(#)(\\\\s[[a-zA-Z0-9,. \\\\t?!-][^\\\\x00-\\\\x7F]]*$)',\n originalRegex: '(?<=^|\\\\s)(#)\\\\s[[a-zA-Z0-9,. \\\\t?!-][^\\\\x{00}-\\\\x{7F}]]*$',\n 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.' }] };\n this.normalizeRules();\n};\nElixirHighlightRules.metaData = { comment: 'Textmate bundle for Elixir Programming Language.',\n fileTypes: ['ex', 'exs'],\n firstLineMatch: '^#!/.*\\\\belixir',\n foldingStartMarker: '(after|else|catch|rescue|\\\\-\\\\>|\\\\{|\\\\[|do)\\\\s*$',\n foldingStopMarker: '^\\\\s*((\\\\}|\\\\]|after|else|catch|rescue)\\\\s*$|end\\\\b)',\n keyEquivalent: '^~E',\n name: 'Elixir',\n scopeName: 'source.elixir' };\noop.inherits(ElixirHighlightRules, TextHighlightRules);\nexports.ElixirHighlightRules = ElixirHighlightRules;\n\n});\n\nace.define(\"ace/mode/folding/coffee\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar Range = require(\"../../range\").Range;\nvar FoldMode = exports.FoldMode = function () { };\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.getFoldWidgetRange = function (session, foldStyle, row) {\n var range = this.indentationBlock(session, row);\n if (range)\n return range;\n var re = /\\S/;\n var line = session.getLine(row);\n var startLevel = line.search(re);\n if (startLevel == -1 || line[startLevel] != \"#\")\n return;\n var startColumn = line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n while (++row < maxRow) {\n line = session.getLine(row);\n var level = line.search(re);\n if (level == -1)\n continue;\n if (line[level] != \"#\")\n break;\n endRow = row;\n }\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n };\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n var indent = line.search(/\\S/);\n var next = session.getLine(row + 1);\n var prev = session.getLine(row - 1);\n var prevIndent = prev.search(/\\S/);\n var nextIndent = next.search(/\\S/);\n if (indent == -1) {\n session.foldWidgets[row - 1] = prevIndent != -1 && prevIndent < nextIndent ? \"start\" : \"\";\n return \"\";\n }\n if (prevIndent == -1) {\n if (indent == nextIndent && line[indent] == \"#\" && next[indent] == \"#\") {\n session.foldWidgets[row - 1] = \"\";\n session.foldWidgets[row + 1] = \"\";\n return \"start\";\n }\n }\n else if (prevIndent == indent && line[indent] == \"#\" && prev[indent] == \"#\") {\n if (session.getLine(row - 2).search(/\\S/) == -1) {\n session.foldWidgets[row - 1] = \"start\";\n session.foldWidgets[row + 1] = \"\";\n return \"\";\n }\n }\n if (prevIndent != -1 && prevIndent < indent)\n session.foldWidgets[row - 1] = \"start\";\n else\n session.foldWidgets[row - 1] = \"\";\n if (indent < nextIndent)\n return \"start\";\n else\n return \"\";\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/elixir\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/elixir_highlight_rules\",\"ace/mode/folding/coffee\"], function(require, exports, module){/*\n THIS FILE WAS AUTOGENERATED BY mode.tmpl.js\n*/\n\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar ElixirHighlightRules = require(\"./elixir_highlight_rules\").ElixirHighlightRules;\nvar FoldMode = require(\"./folding/coffee\").FoldMode;\nvar Mode = function () {\n this.HighlightRules = ElixirHighlightRules;\n this.foldingRules = new FoldMode();\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"#\";\n this.$id = \"ace/mode/elixir\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/elixir\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n "],"names":["require","exports","module","oop","TextHighlightRules","ElixirHighlightRules","BaseFoldMode","Range","FoldMode","session","foldStyle","row","range","re","line","startLevel","startColumn","maxRow","startRow","endRow","level","endColumn","indent","next","prev","prevIndent","nextIndent","TextMode","Mode","m"],"mappings":"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","x_google_ignoreList":[0]}