mode-vala-db5035ea.js.map 41 KB

1
  1. {"version":3,"file":"mode-vala-db5035ea.js","sources":["../../node_modules/ace-builds/src-noconflict/mode-vala.js"],"sourcesContent":["ace.define(\"ace/mode/vala_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/technosophos/Vala-TMBundle/master/Syntaxes/Vala.tmLanguage (uuid: ) */\n\"use strict\";\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\nvar ValaHighlightRules = function () {\n this.$rules = { start: [{ token: ['meta.using.vala',\n 'keyword.other.using.vala',\n 'meta.using.vala',\n 'storage.modifier.using.vala',\n 'meta.using.vala',\n 'punctuation.terminator.vala'],\n regex: '^(\\\\s*)(using)\\\\b(?:(\\\\s*)([^ ;$]+)(\\\\s*)((?:;)?))?' },\n { include: '#code' }],\n '#all-types': [{ include: '#primitive-arrays' },\n { include: '#primitive-types' },\n { include: '#object-types' }],\n '#annotations': [{ token: ['storage.type.annotation.vala',\n 'punctuation.definition.annotation-arguments.begin.vala'],\n regex: '(@[^ (]+)(\\\\()',\n push: [{ token: 'punctuation.definition.annotation-arguments.end.vala',\n regex: '\\\\)',\n next: 'pop' },\n { token: ['constant.other.key.vala',\n 'text',\n 'keyword.operator.assignment.vala'],\n regex: '(\\\\w*)(\\\\s*)(=)' },\n { include: '#code' },\n { token: 'punctuation.seperator.property.vala', regex: ',' },\n { defaultToken: 'meta.declaration.annotation.vala' }] },\n { token: 'storage.type.annotation.vala', regex: '@\\\\w*' }],\n '#anonymous-classes-and-new': [{ token: 'keyword.control.new.vala',\n regex: '\\\\bnew\\\\b',\n push_disabled: [{ token: 'text',\n regex: '(?<=\\\\)|\\\\])(?!\\\\s*{)|(?<=})|(?=;)',\n TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n originalRegex: '(?<=\\\\)|\\\\])(?!\\\\s*{)|(?<=})|(?=;)',\n next: 'pop' },\n { token: ['storage.type.vala', 'text'],\n regex: '(\\\\w+)(\\\\s*)(?=\\\\[)',\n push: [{ token: 'text', regex: '}|(?=;|\\\\))', next: 'pop' },\n { token: 'text',\n regex: '\\\\[',\n push: [{ token: 'text', regex: '\\\\]', next: 'pop' },\n { include: '#code' }] },\n { token: 'text',\n regex: '{',\n push: [{ token: 'text', regex: '(?=})', next: 'pop' },\n { include: '#code' }] }] },\n { token: 'text',\n regex: '(?=\\\\w.*\\\\()',\n push: [{ token: 'text',\n regex: '(?<=\\\\))',\n TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n originalRegex: '(?<=\\\\))',\n next: 'pop' },\n { include: '#object-types' },\n { token: 'text',\n regex: '\\\\(',\n push: [{ token: 'text', regex: '\\\\)', next: 'pop' },\n { include: '#code' }] }] },\n { token: 'meta.inner-class.vala',\n regex: '{',\n push: [{ token: 'meta.inner-class.vala', regex: '}', next: 'pop' },\n { include: '#class-body' },\n { defaultToken: 'meta.inner-class.vala' }] }] }],\n '#assertions': [{ token: ['keyword.control.assert.vala',\n 'meta.declaration.assertion.vala'],\n regex: '\\\\b(assert|requires|ensures)(\\\\s)',\n push: [{ token: 'meta.declaration.assertion.vala',\n regex: '$',\n next: 'pop' },\n { token: 'keyword.operator.assert.expression-seperator.vala',\n regex: ':' },\n { include: '#code' },\n { defaultToken: 'meta.declaration.assertion.vala' }] }],\n '#class': [{ token: 'meta.class.vala',\n regex: '(?=\\\\w?[\\\\w\\\\s]*(?:class|(?:@)?interface|enum|struct|namespace)\\\\s+\\\\w+)',\n push: [{ token: 'paren.vala',\n regex: '}',\n next: 'pop' },\n { include: '#storage-modifiers' },\n { include: '#comments' },\n { token: ['storage.modifier.vala',\n 'meta.class.identifier.vala',\n 'entity.name.type.class.vala'],\n regex: '(class|(?:@)?interface|enum|struct|namespace)(\\\\s+)([\\\\w\\\\.]+)' },\n { token: 'storage.modifier.extends.vala',\n regex: ':',\n push: [{ token: 'meta.definition.class.inherited.classes.vala',\n regex: '(?={|,)',\n next: 'pop' },\n { include: '#object-types-inherited' },\n { include: '#comments' },\n { defaultToken: 'meta.definition.class.inherited.classes.vala' }] },\n { token: ['storage.modifier.implements.vala',\n 'meta.definition.class.implemented.interfaces.vala'],\n regex: '(,)(\\\\s)',\n push: [{ token: 'meta.definition.class.implemented.interfaces.vala',\n regex: '(?=\\\\{)',\n next: 'pop' },\n { include: '#object-types-inherited' },\n { include: '#comments' },\n { defaultToken: 'meta.definition.class.implemented.interfaces.vala' }] },\n { token: 'paren.vala',\n regex: '{',\n push: [{ token: 'paren.vala', regex: '(?=})', next: 'pop' },\n { include: '#class-body' },\n { defaultToken: 'meta.class.body.vala' }] },\n { defaultToken: 'meta.class.vala' }],\n comment: 'attempting to put namespace in here.' }],\n '#class-body': [{ include: '#comments' },\n { include: '#class' },\n { include: '#enums' },\n { include: '#methods' },\n { include: '#annotations' },\n { include: '#storage-modifiers' },\n { include: '#code' }],\n '#code': [{ include: '#comments' },\n { include: '#class' },\n { token: 'text',\n regex: '{',\n push: [{ token: 'text', regex: '}', next: 'pop' },\n { include: '#code' }] },\n { include: '#assertions' },\n { include: '#parens' },\n { include: '#constants-and-special-vars' },\n { include: '#anonymous-classes-and-new' },\n { include: '#keywords' },\n { include: '#storage-modifiers' },\n { include: '#strings' },\n { include: '#all-types' }],\n '#comments': [{ token: 'punctuation.definition.comment.vala',\n regex: '/\\\\*\\\\*/' },\n { include: 'text.html.javadoc' },\n { include: '#comments-inline' }],\n '#comments-inline': [{ token: 'punctuation.definition.comment.vala',\n regex: '/\\\\*',\n push: [{ token: 'punctuation.definition.comment.vala',\n regex: '\\\\*/',\n next: 'pop' },\n { defaultToken: 'comment.block.vala' }] },\n { token: ['text',\n 'punctuation.definition.comment.vala',\n 'comment.line.double-slash.vala'],\n regex: '(\\\\s*)(//)(.*$)' }],\n '#constants-and-special-vars': [{ token: 'constant.language.vala',\n regex: '\\\\b(?:true|false|null)\\\\b' },\n { token: 'variable.language.vala',\n regex: '\\\\b(?:this|base)\\\\b' },\n { token: 'constant.numeric.vala',\n regex: '\\\\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\\\\.?[0-9]*|\\\\.[0-9]+)(?:(?:e|E)(?:\\\\+|-)?[0-9]+)?)(?:[LlFfUuDd]|UL|ul)?\\\\b' },\n { token: ['keyword.operator.dereference.vala', 'constant.other.vala'],\n regex: '((?:\\\\.)?)\\\\b([A-Z][A-Z0-9_]+)(?!<|\\\\.class|\\\\s*\\\\w+\\\\s*=)\\\\b' }],\n '#enums': [{ token: 'text',\n regex: '^(?=\\\\s*[A-Z0-9_]+\\\\s*(?:{|\\\\(|,))',\n push: [{ token: 'text', regex: '(?=;|})', next: 'pop' },\n { token: 'constant.other.enum.vala',\n regex: '\\\\w+',\n push: [{ token: 'meta.enum.vala', regex: '(?=,|;|})', next: 'pop' },\n { include: '#parens' },\n { token: 'text',\n regex: '{',\n push: [{ token: 'text', regex: '}', next: 'pop' },\n { include: '#class-body' }] },\n { defaultToken: 'meta.enum.vala' }] }] }],\n '#keywords': [{ token: 'keyword.control.catch-exception.vala',\n regex: '\\\\b(?:try|catch|finally|throw)\\\\b' },\n { token: 'keyword.control.vala', regex: '\\\\?|:|\\\\?\\\\?' },\n { token: 'keyword.control.vala',\n regex: '\\\\b(?:return|break|case|continue|default|do|while|for|foreach|switch|if|else|in|yield|get|set|value)\\\\b' },\n { token: 'keyword.operator.vala',\n regex: '\\\\b(?:typeof|is|as)\\\\b' },\n { token: 'keyword.operator.comparison.vala',\n regex: '==|!=|<=|>=|<>|<|>' },\n { token: 'keyword.operator.assignment.vala', regex: '=' },\n { token: 'keyword.operator.increment-decrement.vala',\n regex: '\\\\-\\\\-|\\\\+\\\\+' },\n { token: 'keyword.operator.arithmetic.vala',\n regex: '\\\\-|\\\\+|\\\\*|\\\\/|%' },\n { token: 'keyword.operator.logical.vala', regex: '!|&&|\\\\|\\\\|' },\n { token: 'keyword.operator.dereference.vala',\n regex: '\\\\.(?=\\\\S)',\n originalRegex: '(?<=\\\\S)\\\\.(?=\\\\S)' },\n { token: 'punctuation.terminator.vala', regex: ';' },\n { token: 'keyword.operator.ownership', regex: 'owned|unowned' }],\n '#methods': [{ token: 'meta.method.vala',\n regex: '(?!new)(?=\\\\w.*\\\\s+)(?=[^=]+\\\\()',\n push: [{ token: 'paren.vala', regex: '}|(?=;)', next: 'pop' },\n { include: '#storage-modifiers' },\n { token: ['entity.name.function.vala', 'meta.method.identifier.vala'],\n regex: '([\\\\~\\\\w\\\\.]+)(\\\\s*\\\\()',\n push: [{ token: 'meta.method.identifier.vala',\n regex: '\\\\)',\n next: 'pop' },\n { include: '#parameters' },\n { defaultToken: 'meta.method.identifier.vala' }] },\n { token: 'meta.method.return-type.vala',\n regex: '(?=\\\\w.*\\\\s+\\\\w+\\\\s*\\\\()',\n push: [{ token: 'meta.method.return-type.vala',\n regex: '(?=\\\\w+\\\\s*\\\\()',\n next: 'pop' },\n { include: '#all-types' },\n { defaultToken: 'meta.method.return-type.vala' }] },\n { include: '#throws' },\n { token: 'paren.vala',\n regex: '{',\n push: [{ token: 'paren.vala', regex: '(?=})', next: 'pop' },\n { include: '#code' },\n { defaultToken: 'meta.method.body.vala' }] },\n { defaultToken: 'meta.method.vala' }] }],\n '#namespace': [{ token: 'text',\n regex: '^(?=\\\\s*[A-Z0-9_]+\\\\s*(?:{|\\\\(|,))',\n push: [{ token: 'text', regex: '(?=;|})', next: 'pop' },\n { token: 'constant.other.namespace.vala',\n regex: '\\\\w+',\n push: [{ token: 'meta.namespace.vala', regex: '(?=,|;|})', next: 'pop' },\n { include: '#parens' },\n { token: 'text',\n regex: '{',\n push: [{ token: 'text', regex: '}', next: 'pop' },\n { include: '#code' }] },\n { defaultToken: 'meta.namespace.vala' }] }],\n comment: 'This is not quite right. See the class grammar right now' }],\n '#object-types': [{ token: 'storage.type.generic.vala',\n regex: '\\\\b(?:[a-z]\\\\w*\\\\.)*[A-Z]+\\\\w*<',\n push: [{ token: 'storage.type.generic.vala',\n regex: '>|[^\\\\w\\\\s,\\\\?<\\\\[()\\\\]]',\n TODO: 'FIXME: regexp doesn\\'t have js equivalent',\n originalRegex: '>|[^\\\\w\\\\s,\\\\?<\\\\[(?:[,]+)\\\\]]',\n next: 'pop' },\n { include: '#object-types' },\n { token: 'storage.type.generic.vala',\n regex: '<',\n push: [{ token: 'storage.type.generic.vala',\n regex: '>|[^\\\\w\\\\s,\\\\[\\\\]<]',\n next: 'pop' },\n { defaultToken: 'storage.type.generic.vala' }],\n comment: 'This is just to support <>\\'s with no actual type prefix' },\n { defaultToken: 'storage.type.generic.vala' }] },\n { token: 'storage.type.object.array.vala',\n regex: '\\\\b(?:[a-z]\\\\w*\\\\.)*[A-Z]+\\\\w*(?=\\\\[)',\n push: [{ token: 'storage.type.object.array.vala',\n regex: '(?=[^\\\\]\\\\s])',\n next: 'pop' },\n { token: 'text',\n regex: '\\\\[',\n push: [{ token: 'text', regex: '\\\\]', next: 'pop' },\n { include: '#code' }] },\n { defaultToken: 'storage.type.object.array.vala' }] },\n { token: ['storage.type.vala',\n 'keyword.operator.dereference.vala',\n 'storage.type.vala'],\n regex: '\\\\b(?:([a-z]\\\\w*)(\\\\.))*([A-Z]+\\\\w*\\\\b)' }],\n '#object-types-inherited': [{ token: 'entity.other.inherited-class.vala',\n regex: '\\\\b(?:[a-z]\\\\w*\\\\.)*[A-Z]+\\\\w*<',\n push: [{ token: 'entity.other.inherited-class.vala',\n regex: '>|[^\\\\w\\\\s,<]',\n next: 'pop' },\n { include: '#object-types' },\n { token: 'storage.type.generic.vala',\n regex: '<',\n push: [{ token: 'storage.type.generic.vala',\n regex: '>|[^\\\\w\\\\s,<]',\n next: 'pop' },\n { defaultToken: 'storage.type.generic.vala' }],\n comment: 'This is just to support <>\\'s with no actual type prefix' },\n { defaultToken: 'entity.other.inherited-class.vala' }] },\n { token: ['entity.other.inherited-class.vala',\n 'keyword.operator.dereference.vala',\n 'entity.other.inherited-class.vala'],\n regex: '\\\\b(?:([a-z]\\\\w*)(\\\\.))*([A-Z]+\\\\w*)' }],\n '#parameters': [{ token: 'storage.modifier.vala', regex: 'final' },\n { include: '#primitive-arrays' },\n { include: '#primitive-types' },\n { include: '#object-types' },\n { token: 'variable.parameter.vala', regex: '\\\\w+' }],\n '#parens': [{ token: 'text',\n regex: '\\\\(',\n push: [{ token: 'text', regex: '\\\\)', next: 'pop' },\n { include: '#code' }] }],\n '#primitive-arrays': [{ token: 'storage.type.primitive.array.vala',\n regex: '\\\\b(?:bool|byte|sbyte|char|decimal|double|float|int|uint|long|ulong|object|short|ushort|string|void|int8|int16|int32|int64|uint8|uint16|uint32|uint64)(?:\\\\[\\\\])*\\\\b' }],\n '#primitive-types': [{ token: 'storage.type.primitive.vala',\n regex: '\\\\b(?:var|bool|byte|sbyte|char|decimal|double|float|int|uint|long|ulong|object|short|ushort|string|void|signal|int8|int16|int32|int64|uint8|uint16|uint32|uint64)\\\\b',\n comment: 'var is not really a primitive, but acts like one in most cases' }],\n '#storage-modifiers': [{ token: 'storage.modifier.vala',\n regex: '\\\\b(?:public|private|protected|internal|static|final|sealed|virtual|override|abstract|readonly|volatile|dynamic|async|unsafe|out|ref|weak|owned|unowned|const)\\\\b',\n comment: 'Not sure about unsafe and readonly' }],\n '#strings': [{ token: 'punctuation.definition.string.begin.vala',\n regex: '@\"',\n push: [{ token: 'punctuation.definition.string.end.vala',\n regex: '\"',\n next: 'pop' },\n { token: 'constant.character.escape.vala',\n regex: '\\\\\\\\.|%[\\\\w\\\\.\\\\-]+|\\\\$(?:\\\\w+|\\\\([\\\\w\\\\s\\\\+\\\\-\\\\*\\\\/]+\\\\))' },\n { defaultToken: 'string.quoted.interpolated.vala' }] },\n { token: 'punctuation.definition.string.begin.vala',\n regex: '\"',\n push: [{ token: 'punctuation.definition.string.end.vala',\n regex: '\"',\n next: 'pop' },\n { token: 'constant.character.escape.vala', regex: '\\\\\\\\.' },\n { token: 'constant.character.escape.vala',\n regex: '%[\\\\w\\\\.\\\\-]+' },\n { defaultToken: 'string.quoted.double.vala' }] },\n { token: 'punctuation.definition.string.begin.vala',\n regex: '\\'',\n push: [{ token: 'punctuation.definition.string.end.vala',\n regex: '\\'',\n next: 'pop' },\n { token: 'constant.character.escape.vala', regex: '\\\\\\\\.' },\n { defaultToken: 'string.quoted.single.vala' }] },\n { token: 'punctuation.definition.string.begin.vala',\n regex: '\"\"\"',\n push: [{ token: 'punctuation.definition.string.end.vala',\n regex: '\"\"\"',\n next: 'pop' },\n { token: 'constant.character.escape.vala',\n regex: '%[\\\\w\\\\.\\\\-]+' },\n { defaultToken: 'string.quoted.triple.vala' }] }],\n '#throws': [{ token: 'storage.modifier.vala',\n regex: 'throws',\n push: [{ token: 'meta.throwables.vala', regex: '(?={|;)', next: 'pop' },\n { include: '#object-types' },\n { defaultToken: 'meta.throwables.vala' }] }],\n '#values': [{ include: '#strings' },\n { include: '#object-types' },\n { include: '#constants-and-special-vars' }] };\n this.normalizeRules();\n};\nValaHighlightRules.metaData = {\n comment: 'Based heavily on the Java bundle\\'s language syntax. TODO:\\n* Closures\\n* Delegates\\n* Properties: Better support for properties.\\n* Annotations\\n* Error domains\\n* Named arguments\\n* Array slicing, negative indexes, multidimensional\\n* construct blocks\\n* lock blocks?\\n* regex literals\\n* DocBlock syntax highlighting. (Currently importing javadoc)\\n* Folding rule for comments.\\n',\n fileTypes: ['vala'],\n foldingStartMarker: '(\\\\{\\\\s*(//.*)?$|^\\\\s*// \\\\{\\\\{\\\\{)',\n foldingStopMarker: '^\\\\s*(\\\\}|// \\\\}\\\\}\\\\}$)',\n name: 'Vala',\n scopeName: 'source.vala'\n};\noop.inherits(ValaHighlightRules, TextHighlightRules);\nexports.ValaHighlightRules = ValaHighlightRules;\n\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module){\"use strict\";\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\nvar FoldMode = exports.FoldMode = function (commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start));\n this.foldingStopMarker = new RegExp(this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end));\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n(function () {\n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe = /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function (session, foldStyle, row) {\n var line = session.getLine(row);\n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n return fw;\n };\n this.getFoldWidgetRange = function (session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n }\n else if (foldStyle != \"all\")\n range = null;\n }\n return range;\n }\n if (foldStyle === \"markbegin\")\n return;\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n this.getSectionRange = function (session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n }\n else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n }\n else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function (session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m)\n continue;\n if (m[1])\n depth--;\n else\n depth++;\n if (!depth)\n break;\n }\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module){\"use strict\";\nvar Range = require(\"../range\").Range;\nvar MatchingBraceOutdent = function () { };\n(function () {\n this.checkOutdent = function (line, input) {\n if (!/^\\s+$/.test(line))\n return false;\n return /^\\s*\\}/.test(input);\n };\n this.autoOutdent = function (doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n if (!match)\n return 0;\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({ row: row, column: column });\n if (!openBracePos || openBracePos.row == row)\n return 0;\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column - 1), indent);\n };\n this.$getIndent = function (line) {\n return line.match(/^\\s*/)[0];\n };\n}).call(MatchingBraceOutdent.prototype);\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n\n});\n\nace.define(\"ace/mode/vala\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/vala_highlight_rules\",\"ace/mode/folding/cstyle\",\"ace/mode/matching_brace_outdent\"], 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 ValaHighlightRules = require(\"./vala_highlight_rules\").ValaHighlightRules;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar Mode = function () {\n this.HighlightRules = ValaHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = this.$defaultBehaviour;\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n(function () {\n this.lineCommentStart = \"//\";\n this.blockComment = { start: \"/*\", end: \"*/\" };\n this.getNextLineIndent = function (state, line, tab) {\n var indent = this.$getIndent(line);\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n if (tokens.length && tokens[tokens.length - 1].type == \"comment\") {\n return indent;\n }\n if (state == \"start\" || state == \"no_regex\") {\n var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n else if (state == \"doc-start\") {\n if (endState == \"start\" || endState == \"no_regex\") {\n return \"\";\n }\n var match = line.match(/^\\s*(\\/?)\\*/);\n if (match) {\n if (match[1]) {\n indent += \" \";\n }\n indent += \"* \";\n }\n }\n return indent;\n };\n this.checkOutdent = function (state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n this.autoOutdent = function (state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n this.$id = \"ace/mode/vala\";\n this.snippetFileId = \"ace/snippets/vala\";\n}).call(Mode.prototype);\nexports.Mode = Mode;\n\n}); (function() {\n ace.require([\"ace/mode/vala\"], 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","ValaHighlightRules","Range","BaseFoldMode","FoldMode","commentRegex","session","foldStyle","row","line","fw","forceMultiline","match","i","range","startIndent","startRow","startColumn","endRow","maxRow","indent","subRange","re","depth","m","MatchingBraceOutdent","input","doc","column","openBracePos","TextMode","CStyleFoldMode","Mode","state","tab","tokenizedLine","tokens","endState"],"mappings":"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","x_google_ignoreList":[0]}