]>
luflow.net public git repositories - flow-web.git/blob - static/highlight/languages/bash.js
1 /*! `bash` grammar compiled for Highlight.js 11.11.1 */
3 var hljsGrammar
= (function () {
8 Author: vah <vahtenberg@gmail.com>
9 Contributrors: Benjamin Pannell <contact@sierrasoftworks.com>
10 Website: https://www.gnu.org/software/bash/
11 Category: common, scripting
14 /** @type LanguageFn */
16 const regex
= hljs
.regex
;
30 className: 'variable',
32 { begin: regex
.concat(/\$[\w\d#@][\w\d_]*/,
33 // negative look-ahead tries to avoid matching patterns that are not
34 // Perl at all like $ident$, @ident@, etc.
35 `(?![\\w\\d])(?![$])`) },
44 contains: [ hljs
.BACKSLASH_ESCAPE
]
46 const COMMENT
= hljs
.inherit(
59 begin: /<<-?\s*(?=\w+)/,
61 hljs
.END_SAME_AS_BEGIN({
68 const QUOTE_STRING
= {
73 hljs
.BACKSLASH_ESCAPE
,
78 SUBST
.contains
.push(QUOTE_STRING
);
79 const ESCAPED_QUOTE
= {
87 const ESCAPED_APOS
= {
95 begin: /\d+#[0-9a-f]+/,
102 const SH_LIKE_SHELLS
= [
113 const KNOWN_SHEBANG
= hljs
.SHEBANG({
114 binary: `(${SH_LIKE_SHELLS.join("|")})`,
118 className: 'function',
119 begin: /\w[\w\d_]*\s*\(\s*\)\s*\{/,
121 contains: [ hljs
.inherit(hljs
.TITLE_MODE
, { begin: /\w[\w\d_]*/ }) ],
150 // to consume paths to prevent keyword matches inside them
151 const PATH_MODE
= { match: /(\/[a-z._-]+)+/ };
153 // http://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html
154 const SHELL_BUILT_INS
= [
175 const BASH_BUILT_INS
= [
200 const ZSH_BUILT_INS
= [
271 const GNU_CORE_UTILS
= [
342 // "false", // keyword literal already
366 // "true", // keyword literal already
384 $pattern: /\b[a-z][a-z0-9._-]+\b/,
398 KNOWN_SHEBANG
, // to catch known shells and boost relevancy
399 hljs
.SHEBANG(), // to catch unknown shells but still highlight the shebang
418 hljs
.registerLanguage('bash', hljsGrammar
);