scala highlighting update

--HG--
branch : pmacs2
This commit is contained in:
Erik Osheim 2010-09-27 09:33:01 -04:00
parent 6354d80dab
commit 1f1f6ff3c4
1 changed files with 19 additions and 3 deletions

View File

@ -25,6 +25,13 @@ class StringGrammar(Grammar):
PatternRule('data', r'[^\\"]+'), PatternRule('data', r'[^\\"]+'),
] ]
class SubTypeGrammar(Grammar): pass
SubTypeGrammar.rules = [
RegionRule('sub', r'\[', SubTypeGrammar, r'\]'),
PatternRule('scala.type', '[a-zA-Z0-9_]+'),
PatternRule('spaces', ' +'),
]
class ScalaGrammar(Grammar): class ScalaGrammar(Grammar):
rules = [ rules = [
PatternRule('scala.comment', '//.*$'), PatternRule('scala.comment', '//.*$'),
@ -35,7 +42,14 @@ class ScalaGrammar(Grammar):
PatternMatchRule('x', r'(?<=[a-zA-Z0-9_ ])(:)( +)([a-zA-Z0-9_]+)', PatternMatchRule('x', r'(?<=[a-zA-Z0-9_ ])(:)( +)([a-zA-Z0-9_]+)',
'delimiter', 'spaces', 'scala.type'), 'delimiter', 'spaces', 'scala.type'),
PatternRule('delimiter', r'(?:;|{|}|\[|\]|\(|\)|,|\.|<(?![a-zA-Z_])|>|:|/|\+|-|\*|=)'), PatternMatchRule('x', r'(extends)( +)([a-zA-Z0-9_]+)',
'scala.reserved', 'spaces', 'scala.type'),
PatternMatchRule('x', r'(with)( +)([a-zA-Z0-9_]+)',
'scala.reserved', 'spaces', 'scala.type'),
#PatternRule('delimiter', r'(?:;|{|}|\[|\]|\(|\)|,|\.|<(?![a-zA-Z_])|>|:|/|\+|-|\*|=)'),
PatternRule('delimiter', r'(?:;|{|}|\(|\)|,|\.|<(?![a-zA-Z_])|>|:|/|\+|-|\*|=)'),
RegionRule('sub', r'\[', SubTypeGrammar, r'\]'),
RegionRule('scala.inline', r'(?:^| )(?=<[a-zA-Z_])', XMLGrammar, '^[ \t]*$'), RegionRule('scala.inline', r'(?:^| )(?=<[a-zA-Z_])', XMLGrammar, '^[ \t]*$'),
PatternRule('spaces', r'(?:\t| )+'), PatternRule('spaces', r'(?:\t| )+'),
@ -66,8 +80,10 @@ class ScalaGrammar(Grammar):
] ]
class ScalaTabber(StackTabber2): class ScalaTabber(StackTabber2):
open_tokens = {'delimiter': {'{': '}', '(': ')', '[': ']'}} #open_tokens = {'delimiter': {'{': '}', '(': ')', '[': ']'}}
close_tokens = {'delimiter': {'}': '{', ')': '(', ']': '['}} #close_tokens = {'delimiter': {'}': '{', ')': '(', ']': '['}}
open_tokens = {'delimiter': {'{': '}', '(': ')'}}
close_tokens = {'delimiter': {'}': '{', ')': '('}}
control_tokens = {'scala.reserved': set(('if', 'else', 'while', 'do', 'for'))} control_tokens = {'scala.reserved': set(('if', 'else', 'while', 'do', 'for'))}
end_at_eof = True end_at_eof = True
start_free_tokens = {'string.start': 'string.end'} start_free_tokens = {'string.start': 'string.end'}