Use a proper alias for the Bash-Shebang This patch introduces a proper alias for the Bash-Shebang. Additionally the variables are changed from the class "property" to "variable". The tests also need to be updated.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
diff --git a/components/prism-bash.js b/components/prism-bash.js
index 8fdbde9..0713c63 100644
--- a/components/prism-bash.js
+++ b/components/prism-bash.js
@@ -1,4 +1,8 @@
(function(Prism) {
+ var bashVars = {
+ variable: /\$(?:[a-zA-Z0-9_#\?\-\*!@]+|\{[^}]+\})/
+ };
+
Prism.languages.bash = Prism.languages.extend('clike', {
'comment': {
pattern: /(^|[^"{\\])#.*/,
@@ -7,10 +11,7 @@
'string': {
//allow multiline string
pattern: /("|')(\\?[\s\S])*?\1/,
- inside: {
- //'property' class reused for bash variables
- 'property': /\$([a-zA-Z0-9_#\?\-\*!@]+|\{[^\}]+\})/
- }
+ inside: bashVars
},
// Redefined to prevent highlighting of numbers in filenames
'number': {
@@ -22,12 +23,12 @@
'keyword': /\b(if|then|else|elif|fi|for|break|continue|while|in|case|function|select|do|done|until|echo|exit|return|set|declare)\b/
});
- Prism.languages.insertBefore('bash', 'keyword', {
- //'property' class reused for bash variables
- 'property': /\$([a-zA-Z0-9_#\?\-\*!@]+|\{[^}]+\})/
- });
+ Prism.languages.insertBefore('bash', 'keyword', bashVars);
Prism.languages.insertBefore('bash', 'comment', {
- //shebang must be before comment, 'important' class from css reused
- 'important': /^#!\s*\/bin\/bash|^#!\s*\/bin\/sh/
+ // Shebang must be before comment
+ shebang: {
+ pattern: /^#!\s*\/bin\/bash|^#!\s*\/bin\/sh/,
+ alias: 'important'
+ }
});
})(Prism);
\ No newline at end of file
diff --git a/tests/languages/bash/important_feature.test b/tests/languages/bash/important_feature.test
deleted file mode 100644
index 0e03588..0000000
--- a/tests/languages/bash/important_feature.test
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-
-----------------------------------------------------
-
-[
- ["important", "#!/bin/bash"]
-]
-
-----------------------------------------------------
-
-Checks for shebang.
\ No newline at end of file
diff --git a/tests/languages/bash/shebang_feature.test b/tests/languages/bash/shebang_feature.test
new file mode 100644
index 0000000..c41860d
--- /dev/null
+++ b/tests/languages/bash/shebang_feature.test
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+----------------------------------------------------
+
+[
+ ["shebang", "#!/bin/bash"]
+]
+
+----------------------------------------------------
+
+Checks for shebang.
\ No newline at end of file
diff --git a/tests/languages/bash/string_feature.test b/tests/languages/bash/string_feature.test
index 2426bc7..f61eb3d 100644
--- a/tests/languages/bash/string_feature.test
+++ b/tests/languages/bash/string_feature.test
@@ -19,10 +19,10 @@ bar'
["string", ["\"foo\r\nbar\""]],
["string", ["'foo\r\nbar'"]],
["string", [
- "\"", ["property", "$@"], "\""
+ "\"", ["variable", "$@"], "\""
]],
["string", [
- "\"", ["property", "${foo}"], "\""
+ "\"", ["variable", "${foo}"], "\""
]]
]
diff --git a/tests/languages/bash/variable_feature.test b/tests/languages/bash/variable_feature.test
index 58cca25..16b7448 100644
--- a/tests/languages/bash/variable_feature.test
+++ b/tests/languages/bash/variable_feature.test
@@ -5,9 +5,9 @@ ${foo bar}
----------------------------------------------------
[
- ["property", "$foo"],
- ["property", "$@"],
- ["property", "${foo bar}"]
+ ["variable", "$foo"],
+ ["variable", "$@"],
+ ["variable", "${foo bar}"]
]
----------------------------------------------------