summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Metzler <richard@launchco.com>2013-12-07 01:20:50 +0100
committerRichard Metzler <richard@launchco.com>2013-12-07 01:20:50 +0100
commit584974c292edbca8be0b6c2ccf8dc9dc1ba6e15a (patch)
treeb7e5ccf5940f2e9a938ece64ff3bd04ff3667f43
parent0e187dc6d5b3735c7fe82d79e6c2ceebeebc2d55 (diff)
downloadpygments-584974c292edbca8be0b6c2ccf8dc9dc1ba6e15a.tar.gz
FIX 873 Ruby 1.9 hash syntax, symbol with underscore as key not highlighted properly
Bugreport: https://bitbucket.org/birkenfeld/pygments-main/issue/873/ruby-19-hash-syntax-symbol-with-underscore Example: https://gist.github.com/rmetzler/7833554
-rw-r--r--pygments/lexers/agile.py2
-rw-r--r--tests/examplefiles/hash_syntax.rb5
2 files changed, 6 insertions, 1 deletions
diff --git a/pygments/lexers/agile.py b/pygments/lexers/agile.py
index 1f81365e..b5fc287c 100644
--- a/pygments/lexers/agile.py
+++ b/pygments/lexers/agile.py
@@ -532,7 +532,7 @@ class RubyLexer(ExtendedRegexLexer):
(r":'(\\\\|\\'|[^'])*'", String.Symbol),
(r"'(\\\\|\\'|[^'])*'", String.Single),
(r':"', String.Symbol, 'simple-sym'),
- (r'([a-zA-Z_][a-zA-Z0-9]*)(:)(?!:)',
+ (r'([a-zA-Z_][a-zA-Z0-9_]*)(:)(?!:)',
bygroups(String.Symbol, Punctuation)), # Since Ruby 1.9
(r'"', String.Double, 'simple-string'),
(r'(?<!\.)`', String.Backtick, 'simple-backtick'),
diff --git a/tests/examplefiles/hash_syntax.rb b/tests/examplefiles/hash_syntax.rb
new file mode 100644
index 00000000..35b27723
--- /dev/null
+++ b/tests/examplefiles/hash_syntax.rb
@@ -0,0 +1,5 @@
+{ :old_syntax => 'ok' }
+{ 'stings as key' => 'should be ok' }
+{ new_syntax: 'broken until now' }
+{ withoutunderscore: 'should be ok' }
+{ _underscoreinfront: 'might be ok, if I understand the pygments code correct' }