diff options
author | mitsuhiko <devnull@localhost> | 2007-09-23 21:57:30 +0200 |
---|---|---|
committer | mitsuhiko <devnull@localhost> | 2007-09-23 21:57:30 +0200 |
commit | 1ca6a76098797c7ab2f14cb549f2465162be45fd (patch) | |
tree | 5dce5569dd54f1b016acf9f27d35f3de6da6e989 | |
parent | 41aa1a9c42999238ff470c79bb11a2d85515d15c (diff) | |
parent | 869633b3ea5053e1b12b428c7191ef5605d6ed76 (diff) | |
download | pygments-1ca6a76098797c7ab2f14cb549f2465162be45fd.tar.gz |
merged
-rw-r--r-- | pygments/lexers/agile.py | 13 | ||||
-rw-r--r-- | tests/examplefiles/ruby_func_def.rb | 11 |
2 files changed, 22 insertions, 2 deletions
diff --git a/pygments/lexers/agile.py b/pygments/lexers/agile.py index 798d6f8c..a7f428c0 100644 --- a/pygments/lexers/agile.py +++ b/pygments/lexers/agile.py @@ -535,14 +535,23 @@ class RubyLexer(ExtendedRegexLexer): (r'\s+', Text) ], 'funcname': [ + (r'\(', Punctuation, 'defexpr'), (r'(?:([a-zA-Z_][a-zA-Z0-9_]*)(\.))?' r'([a-zA-Z_][\w_]*[\!\?]?|\*\*?|[-+]@?|' r'[/%&|^`~]|\[\]=?|<<|>>|<=?>|>=?|===?)', - bygroups(Name.Class, Operator, Name.Function), '#pop') + bygroups(Name.Class, Operator, Name.Function), '#pop'), + (r'(?:)', Text, '#pop') ], 'classname': [ + (r'\(', Punctuation, 'defexpr'), (r'<<', Operator, '#pop'), - (r'[a-zA-Z_][\w_]*', Name.Class, '#pop') + (r'[A-Z_][\w_]*', Name.Class, '#pop'), + (r'(?:)', Text, '#pop') + ], + 'defexpr': [ + (r'(\))(\.|::)?', bygroups(Punctuation, Operator), '#pop'), + (r'\(', Operator, '#push'), + include('root') ], 'in-intp': [ ('}', String.Interpol, '#pop'), diff --git a/tests/examplefiles/ruby_func_def.rb b/tests/examplefiles/ruby_func_def.rb new file mode 100644 index 00000000..a820c68f --- /dev/null +++ b/tests/examplefiles/ruby_func_def.rb @@ -0,0 +1,11 @@ +class (get_foo("blub"))::Foo + def (foo("bar") + bar("baz")).something argh, aaahaa + 42 + end +end + +class get_the_fuck("out")::Of::My + def parser_definition + ruby! + end +end |