| ace.define( |
| 'ace/mode/sh_highlight_rules', |
| ['require', 'exports', 'module', 'ace/lib/oop', 'ace/mode/text_highlight_rules'], |
| function (e, t, n) { |
| 'use strict' |
| var r = e('../lib/oop'), |
| i = e('./text_highlight_rules').TextHighlightRules, |
| s = (t.reservedKeywords = |
| '!|{|}|case|do|done|elif|else|esac|fi|for|if|in|then|until|while|&|;|export|local|read|typeset|unset|elif|select|set|function|declare|readonly'), |
| o = (t.languageConstructs = |
| '[|]|alias|bg|bind|break|builtin|cd|command|compgen|complete|continue|dirs|disown|echo|enable|eval|exec|exit|fc|fg|getopts|hash|help|history|jobs|kill|let|logout|popd|printf|pushd|pwd|return|set|shift|shopt|source|suspend|test|times|trap|type|ulimit|umask|unalias|wait'), |
| u = function () { |
| var e = this.createKeywordMapper( |
| { keyword: s, 'support.function.builtin': o, 'invalid.deprecated': 'debugger' }, |
| 'identifier' |
| ), |
| t = '(?:(?:[1-9]\\d*)|(?:0))', |
| n = '(?:\\.\\d+)', |
| r = '(?:\\d+)', |
| i = '(?:(?:' + r + '?' + n + ')|(?:' + r + '\\.))', |
| u = '(?:(?:' + i + '|' + r + ')' + ')', |
| a = '(?:' + u + '|' + i + ')', |
| f = '(?:&' + r + ')', |
| l = '[a-zA-Z_][a-zA-Z0-9_]*', |
| c = '(?:' + l + '(?==))', |
| h = '(?:\\$(?:SHLVL|\\$|\\!|\\?))', |
| p = '(?:' + l + '\\s*\\(\\))' |
| ;(this.$rules = { |
| start: [ |
| { token: 'constant', regex: /\\./ }, |
| { token: ['text', 'comment'], regex: /(^|\s)(#.*)$/ }, |
| { |
| token: 'string.start', |
| regex: '"', |
| push: [ |
| { token: 'constant.language.escape', regex: /\\(?:[$`"\\]|$)/ }, |
| { include: 'variables' }, |
| { token: 'keyword.operator', regex: /`/ }, |
| { token: 'string.end', regex: '"', next: 'pop' }, |
| { defaultToken: 'string' }, |
| ], |
| }, |
| { |
| token: 'string', |
| regex: "\\$'", |
| push: [ |
| { |
| token: 'constant.language.escape', |
| regex: |
| /\\(?:[abeEfnrtv\\'"]|x[a-fA-F\d]{1,2}|u[a-fA-F\d]{4}([a-fA-F\d]{4})?|c.|\d{1,3})/, |
| }, |
| { token: 'string', regex: "'", next: 'pop' }, |
| { defaultToken: 'string' }, |
| ], |
| }, |
| { regex: '<<<', token: 'keyword.operator' }, |
| { |
| stateName: 'heredoc', |
| regex: '(<<-?)(\\s*)([\'"`]?)([\\w\\-]+)([\'"`]?)', |
| onMatch: function (e, t, n) { |
| var r = e[2] == '-' ? 'indentedHeredoc' : 'heredoc', |
| i = e.split(this.splitRegex) |
| return ( |
| n.push(r, i[4]), |
| [ |
| { type: 'constant', value: i[1] }, |
| { type: 'text', value: i[2] }, |
| { type: 'string', value: i[3] }, |
| { type: 'support.class', value: i[4] }, |
| { type: 'string', value: i[5] }, |
| ] |
| ) |
| }, |
| rules: { |
| heredoc: [ |
| { |
| onMatch: function (e, t, n) { |
| return e === n[1] |
| ? (n.shift(), n.shift(), (this.next = n[0] || 'start'), 'support.class') |
| : ((this.next = ''), 'string') |
| }, |
| regex: '.*$', |
| next: 'start', |
| }, |
| ], |
| indentedHeredoc: [ |
| { token: 'string', regex: '^ +' }, |
| { |
| onMatch: function (e, t, n) { |
| return e === n[1] |
| ? (n.shift(), n.shift(), (this.next = n[0] || 'start'), 'support.class') |
| : ((this.next = ''), 'string') |
| }, |
| regex: '.*$', |
| next: 'start', |
| }, |
| ], |
| }, |
| }, |
| { |
| regex: '$', |
| token: 'empty', |
| next: function (e, t) { |
| return t[0] === 'heredoc' || t[0] === 'indentedHeredoc' ? t[0] : e |
| }, |
| }, |
| { |
| token: ['keyword', 'text', 'text', 'text', 'variable'], |
| regex: /(declare|local|readonly)(\s+)(?:(-[fixar]+)(\s+))?([a-zA-Z_][a-zA-Z0-9_]*\b)/, |
| }, |
| { token: 'variable.language', regex: h }, |
| { token: 'variable', regex: c }, |
| { include: 'variables' }, |
| { token: 'support.function', regex: p }, |
| { token: 'support.function', regex: f }, |
| { token: 'string', start: "'", end: "'" }, |
| { token: 'constant.numeric', regex: a }, |
| { token: 'constant.numeric', regex: t + '\\b' }, |
| { token: e, regex: '[a-zA-Z_][a-zA-Z0-9_]*\\b' }, |
| { |
| token: 'keyword.operator', |
| regex: '\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|~|<|>|<=|=>|=|!=|[%&|`]', |
| }, |
| { token: 'punctuation.operator', regex: ';' }, |
| { token: 'paren.lparen', regex: '[\\[\\(\\{]' }, |
| { token: 'paren.rparen', regex: '[\\]]' }, |
| { token: 'paren.rparen', regex: '[\\)\\}]', next: 'pop' }, |
| ], |
| variables: [ |
| { token: 'variable', regex: /(\$)(\w+)/ }, |
| { token: ['variable', 'paren.lparen'], regex: /(\$)(\()/, push: 'start' }, |
| { |
| token: [ |
| 'variable', |
| 'paren.lparen', |
| 'keyword.operator', |
| 'variable', |
| 'keyword.operator', |
| ], |
| regex: /(\$)(\{)([#!]?)(\w+|[*@#?\-$!0_])(:[?+\-=]?|##?|%%?|,,?\/|\^\^?)?/, |
| push: 'start', |
| }, |
| { token: 'variable', regex: /\$[*@#?\-$!0_]/ }, |
| { token: ['variable', 'paren.lparen'], regex: /(\$)(\{)/, push: 'start' }, |
| ], |
| }), |
| this.normalizeRules() |
| } |
| r.inherits(u, i), (t.ShHighlightRules = u) |
| } |
| ), |
| ace.define( |
| 'ace/mode/makefile_highlight_rules', |
| [ |
| 'require', |
| 'exports', |
| 'module', |
| 'ace/lib/oop', |
| 'ace/mode/text_highlight_rules', |
| 'ace/mode/sh_highlight_rules', |
| ], |
| function (e, t, n) { |
| 'use strict' |
| var r = e('../lib/oop'), |
| i = e('./text_highlight_rules').TextHighlightRules, |
| s = e('./sh_highlight_rules'), |
| o = function () { |
| var e = this.createKeywordMapper( |
| { |
| keyword: s.reservedKeywords, |
| 'support.function.builtin': s.languageConstructs, |
| 'invalid.deprecated': 'debugger', |
| }, |
| 'string' |
| ) |
| this.$rules = { |
| start: [ |
| { token: 'string.interpolated.backtick.makefile', regex: '`', next: 'shell-start' }, |
| { |
| token: 'punctuation.definition.comment.makefile', |
| regex: /#(?=.)/, |
| next: 'comment', |
| }, |
| { |
| token: ['keyword.control.makefile'], |
| regex: |
| '^(?:\\s*\\b)(\\-??include|ifeq|ifneq|ifdef|ifndef|else|endif|vpath|export|unexport|define|endef|override)(?:\\b)', |
| }, |
| { |
| token: ['entity.name.function.makefile', 'text'], |
| regex: '^([^\\t ]+(?:\\s[^\\t ]+)*:)(\\s*.*)', |
| }, |
| ], |
| comment: [ |
| { token: 'punctuation.definition.comment.makefile', regex: /.+\\/ }, |
| { token: 'punctuation.definition.comment.makefile', regex: '.+', next: 'start' }, |
| ], |
| 'shell-start': [ |
| { token: e, regex: '[a-zA-Z_$][a-zA-Z0-9_$]*\\b' }, |
| { token: 'string', regex: '\\w+' }, |
| { token: 'string.interpolated.backtick.makefile', regex: '`', next: 'start' }, |
| ], |
| } |
| } |
| r.inherits(o, i), (t.MakefileHighlightRules = o) |
| } |
| ), |
| ace.define( |
| 'ace/mode/folding/coffee', |
| ['require', 'exports', 'module', 'ace/lib/oop', 'ace/mode/folding/fold_mode', 'ace/range'], |
| function (e, t, n) { |
| 'use strict' |
| var r = e('../../lib/oop'), |
| i = e('./fold_mode').FoldMode, |
| s = e('../../range').Range, |
| o = (t.FoldMode = function () {}) |
| r.inherits(o, i), |
| function () { |
| ;(this.getFoldWidgetRange = function (e, t, n) { |
| var r = this.indentationBlock(e, n) |
| if (r) return r |
| var i = /\S/, |
| o = e.getLine(n), |
| u = o.search(i) |
| if (u == -1 || o[u] != '#') return |
| var a = o.length, |
| f = e.getLength(), |
| l = n, |
| c = n |
| while (++n < f) { |
| o = e.getLine(n) |
| var h = o.search(i) |
| if (h == -1) continue |
| if (o[h] != '#') break |
| c = n |
| } |
| if (c > l) { |
| var p = e.getLine(c).length |
| return new s(l, a, c, p) |
| } |
| }), |
| (this.getFoldWidget = function (e, t, n) { |
| var r = e.getLine(n), |
| i = r.search(/\S/), |
| s = e.getLine(n + 1), |
| o = e.getLine(n - 1), |
| u = o.search(/\S/), |
| a = s.search(/\S/) |
| if (i == -1) return (e.foldWidgets[n - 1] = u != -1 && u < a ? 'start' : ''), '' |
| if (u == -1) { |
| if (i == a && r[i] == '#' && s[i] == '#') |
| return (e.foldWidgets[n - 1] = ''), (e.foldWidgets[n + 1] = ''), 'start' |
| } else if ( |
| u == i && |
| r[i] == '#' && |
| o[i] == '#' && |
| e.getLine(n - 2).search(/\S/) == -1 |
| ) |
| return (e.foldWidgets[n - 1] = 'start'), (e.foldWidgets[n + 1] = ''), '' |
| return ( |
| u != -1 && u < i ? (e.foldWidgets[n - 1] = 'start') : (e.foldWidgets[n - 1] = ''), |
| i < a ? 'start' : '' |
| ) |
| }) |
| }.call(o.prototype) |
| } |
| ), |
| ace.define( |
| 'ace/mode/makefile', |
| [ |
| 'require', |
| 'exports', |
| 'module', |
| 'ace/lib/oop', |
| 'ace/mode/text', |
| 'ace/mode/makefile_highlight_rules', |
| 'ace/mode/folding/coffee', |
| ], |
| function (e, t, n) { |
| 'use strict' |
| var r = e('../lib/oop'), |
| i = e('./text').Mode, |
| s = e('./makefile_highlight_rules').MakefileHighlightRules, |
| o = e('./folding/coffee').FoldMode, |
| u = function () { |
| ;(this.HighlightRules = s), |
| (this.foldingRules = new o()), |
| (this.$behaviour = this.$defaultBehaviour) |
| } |
| r.inherits(u, i), |
| function () { |
| ;(this.lineCommentStart = '#'), |
| (this.$indentWithTabs = !0), |
| (this.$id = 'ace/mode/makefile'), |
| (this.snippetFileId = 'ace/snippets/makefile') |
| }.call(u.prototype), |
| (t.Mode = u) |
| } |
| ) |
| ;(function () { |
| ace.require(['ace/mode/makefile'], function (m) { |
| if (typeof module == 'object' && typeof exports == 'object' && module) { |
| module.exports = m |
| } |
| }) |
| })() |
|
|