Commit 89b1f857d83dc8fb3f754222af1b9ef98a3c37a9

Andreas Rohner 2015-10-01T12:21:46

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.

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}"]
 ]
 
 ----------------------------------------------------