|
10 | 10 | pattern: /(^\$\(\([\s\S]+)\)\)/,
|
11 | 11 | lookbehind: true
|
12 | 12 | },
|
13 |
| - /^\$\(\(/, |
| 13 | + /^\$\(\(/ |
14 | 14 | ],
|
15 | 15 | number: /\b-?(?:0x[\dA-Fa-f]+|\d*\.?\d+(?:[Ee]-?\d+)?)\b/,
|
16 | 16 | // Operators according to https://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic
|
|
26 | 26 | variable: /^\$\(|^`|\)$|`$/
|
27 | 27 | }
|
28 | 28 | },
|
29 |
| - /\$(?:[a-z0-9_#\?\*!@]+|\{[^}]+\})/i |
30 |
| - ], |
| 29 | + /\$(?:[\w#?*!@]+|\{[^}]+\})/i |
| 30 | + ] |
31 | 31 | };
|
32 | 32 |
|
33 | 33 | Prism.languages.bash = {
|
|
42 | 42 | 'string': [
|
43 | 43 | //Support for Here-Documents https://en.wikipedia.org/wiki/Here_document
|
44 | 44 | {
|
45 |
| - pattern: /((?:^|[^<])<<\s*)(?:"|')?(\w+?)(?:"|')?\s*\r?\n(?:[\s\S])*?\r?\n\2/g, |
| 45 | + pattern: /((?:^|[^<])<<\s*)["']?(\w+?)["']?\s*\r?\n(?:[\s\S])*?\r?\n\2/, |
46 | 46 | lookbehind: true,
|
47 | 47 | greedy: true,
|
48 | 48 | inside: insideString
|
49 | 49 | },
|
50 | 50 | {
|
51 |
| - pattern: /(["'])(?:\\\\|\\?[^\\])*?\1/g, |
| 51 | + pattern: /(["'])(?:\\[\s\S]|(?!\1)[^\\])*\1/, |
52 | 52 | greedy: true,
|
53 | 53 | inside: insideString
|
54 | 54 | }
|
55 | 55 | ],
|
56 | 56 | 'variable': insideString.variable,
|
57 | 57 | // Originally based on http://ss64.com/bash/
|
58 | 58 | 'function': {
|
59 |
| - pattern: /(^|\s|;|\||&)(?:alias|apropos|apt-get|aptitude|aspell|awk|basename|bash|bc|bg|builtin|bzip2|cal|cat|cd|cfdisk|chgrp|chmod|chown|chroot|chkconfig|cksum|clear|cmp|comm|command|cp|cron|crontab|csplit|cut|date|dc|dd|ddrescue|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|enable|env|ethtool|eval|exec|expand|expect|export|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|getopts|git|grep|groupadd|groupdel|groupmod|groups|gzip|hash|head|help|hg|history|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|jobs|join|kill|killall|less|link|ln|locate|logname|logout|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|make|man|mkdir|mkfifo|mkisofs|mknod|more|most|mount|mtools|mtr|mv|mmv|nano|netstat|nice|nl|nohup|notify-send|npm|nslookup|open|op|passwd|paste|pathchk|ping|pkill|popd|pr|printcap|printenv|printf|ps|pushd|pv|pwd|quota|quotacheck|quotactl|ram|rar|rcp|read|readarray|readonly|reboot|rename|renice|remsync|rev|rm|rmdir|rsync|screen|scp|sdiff|sed|seq|service|sftp|shift|shopt|shutdown|sleep|slocate|sort|source|split|ssh|stat|strace|su|sudo|sum|suspend|sync|tail|tar|tee|test|time|timeout|times|touch|top|traceroute|trap|tr|tsort|tty|type|ulimit|umask|umount|unalias|uname|unexpand|uniq|units|unrar|unshar|uptime|useradd|userdel|usermod|users|uuencode|uudecode|v|vdir|vi|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yes|zip)(?=$|\s|;|\||&)/, |
| 59 | + pattern: /(^|[\s;|&])(?:alias|apropos|apt-get|aptitude|aspell|awk|basename|bash|bc|bg|builtin|bzip2|cal|cat|cd|cfdisk|chgrp|chmod|chown|chroot|chkconfig|cksum|clear|cmp|comm|command|cp|cron|crontab|csplit|cut|date|dc|dd|ddrescue|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|enable|env|ethtool|eval|exec|expand|expect|export|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|getopts|git|grep|groupadd|groupdel|groupmod|groups|gzip|hash|head|help|hg|history|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|jobs|join|kill|killall|less|link|ln|locate|logname|logout|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|make|man|mkdir|mkfifo|mkisofs|mknod|more|most|mount|mtools|mtr|mv|mmv|nano|netstat|nice|nl|nohup|notify-send|npm|nslookup|open|op|passwd|paste|pathchk|ping|pkill|popd|pr|printcap|printenv|printf|ps|pushd|pv|pwd|quota|quotacheck|quotactl|ram|rar|rcp|read|readarray|readonly|reboot|rename|renice|remsync|rev|rm|rmdir|rsync|screen|scp|sdiff|sed|seq|service|sftp|shift|shopt|shutdown|sleep|slocate|sort|source|split|ssh|stat|strace|su|sudo|sum|suspend|sync|tail|tar|tee|test|time|timeout|times|touch|top|traceroute|trap|tr|tsort|tty|type|ulimit|umask|umount|unalias|uname|unexpand|uniq|units|unrar|unshar|uptime|useradd|userdel|usermod|users|uuencode|uudecode|v|vdir|vi|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yes|zip)(?=$|[\s;|&])/, |
60 | 60 | lookbehind: true
|
61 | 61 | },
|
62 | 62 | 'keyword': {
|
63 |
| - pattern: /(^|\s|;|\||&)(?:let|:|\.|if|then|else|elif|fi|for|break|continue|while|in|case|function|select|do|done|until|echo|exit|return|set|declare)(?=$|\s|;|\||&)/, |
| 63 | + pattern: /(^|[\s;|&])(?:let|:|\.|if|then|else|elif|fi|for|break|continue|while|in|case|function|select|do|done|until|echo|exit|return|set|declare)(?=$|[\s;|&])/, |
64 | 64 | lookbehind: true
|
65 | 65 | },
|
66 | 66 | 'boolean': {
|
67 |
| - pattern: /(^|\s|;|\||&)(?:true|false)(?=$|\s|;|\||&)/, |
| 67 | + pattern: /(^|[\s;|&])(?:true|false)(?=$|[\s;|&])/, |
68 | 68 | lookbehind: true
|
69 | 69 | },
|
70 | 70 | 'operator': /&&?|\|\|?|==?|!=?|<<<?|>>|<=?|>=?|=~/,
|
|
0 commit comments