diff --git a/contrib/textmate/Factor.tmbundle/Syntaxes/Factor.tmLanguage b/contrib/textmate/Factor.tmbundle/Syntaxes/Factor.tmLanguage
index 5b01909a04..9b3993046c 100644
--- a/contrib/textmate/Factor.tmbundle/Syntaxes/Factor.tmLanguage
+++ b/contrib/textmate/Factor.tmbundle/Syntaxes/Factor.tmLanguage
@@ -58,10 +58,34 @@
match
- \b(f|t)\b
+ (if|when|unless)\*?
+ name
+ keyword.control.flow.factor
+
+
+ match
+ \s+(f|t)\s+
name
constant.language.factor
+
+ match
+ \b(BIN:|HEX:|OCT:)?\s+-?\d+\s+
+ name
+ constant.numeric.integer.factor
+
+
+ match
+ \b-?+\d+\.\d+(E(\+|-)\d+)?\s+
+ name
+ constant.numeric.float.factor
+
+
+ match
+ \b-?\d+/-?\d+\s+
+ name
+ constant.numeric.rational.factor
+
begin
"
@@ -70,6 +94,12 @@
name
string.quoted.double.factor
+
+ match
+ inline
+ name
+ storage.modifier.factor
+
begin
#!|!