parent
c439163434
commit
eed9887e8f
|
@ -1,11 +1,9 @@
|
||||||
#import commands
|
|
||||||
from tab import StackTabber2
|
from tab import StackTabber2
|
||||||
#from method import Method
|
|
||||||
from mode import Fundamental
|
from mode import Fundamental
|
||||||
from lex import Grammar, PatternRule, RegionRule, PatternMatchRule
|
from lex import Grammar, PatternRule, RegionRule, PatternMatchRule
|
||||||
from mode.python import StringGrammar1, StringGrammar2
|
from mode.xml import XMLGrammar
|
||||||
#from mode.pipe import Pipe
|
from mode.pipe import Pipe
|
||||||
#from method.shell import Interact
|
from method.shell import Interact
|
||||||
|
|
||||||
chr1 = '[a-zA-Z_]'
|
chr1 = '[a-zA-Z_]'
|
||||||
chr2 = '[a-zA-Z_0-9]'
|
chr2 = '[a-zA-Z_0-9]'
|
||||||
|
@ -28,11 +26,11 @@ class ScalaGrammar(Grammar):
|
||||||
PatternRule('scala.comment', '//.*$'),
|
PatternRule('scala.comment', '//.*$'),
|
||||||
RegionRule('scala.comment', r'/\*', NestedCommentGrammar, r'\*/'),
|
RegionRule('scala.comment', r'/\*', NestedCommentGrammar, r'\*/'),
|
||||||
|
|
||||||
|
PatternRule('delimiter', r'(?:;|{|}|\[|\]|\(|\)|,|\.|<(?![a-zA-Z_])|>|:|/|\+|-|\*|=)'),
|
||||||
|
|
||||||
PatternRule('spaces', r'(?:\t| )+'),
|
PatternRule('spaces', r'(?:\t| )+'),
|
||||||
PatternRule('eol', r'\n'),
|
PatternRule('eol', r'\n'),
|
||||||
|
|
||||||
PatternRule('delimiter', r'(?:;|{|}|\[|\]|\(|\)|,|\.|<|>|:|/|\+|-|\*|=)'),
|
|
||||||
|
|
||||||
PatternRule('scala.def', '(?<=(?<![a-zA-Z0-9_])def )[a-zA-Z_][a-zA-Z0-9_]*'),
|
PatternRule('scala.def', '(?<=(?<![a-zA-Z0-9_])def )[a-zA-Z_][a-zA-Z0-9_]*'),
|
||||||
PatternRule('scala.class', '(?<=(?<![a-zA-Z0-9_])class )[a-zA-Z_][a-zA-Z0-9_]*'),
|
PatternRule('scala.class', '(?<=(?<![a-zA-Z0-9_])class )[a-zA-Z_][a-zA-Z0-9_]*'),
|
||||||
PatternRule('scala.class', '(?<=(?<![a-zA-Z0-9_])object )[a-zA-Z_][a-zA-Z0-9_]*'),
|
PatternRule('scala.class', '(?<=(?<![a-zA-Z0-9_])object )[a-zA-Z_][a-zA-Z0-9_]*'),
|
||||||
|
@ -52,10 +50,10 @@ class ScalaGrammar(Grammar):
|
||||||
PatternRule('scala.symbol', "'[a-zA-Z_][a-zA-Z0-9_]*"),
|
PatternRule('scala.symbol', "'[a-zA-Z_][a-zA-Z0-9_]*"),
|
||||||
|
|
||||||
PatternRule('scala.annotation', '@[a-zA-Z_][a-zA-Z0-9_]*'),
|
PatternRule('scala.annotation', '@[a-zA-Z_][a-zA-Z0-9_]*'),
|
||||||
|
|
||||||
PatternRule('scala.bareword', '[a-zA-Z_][a-zA-Z0-9_]*'),
|
PatternRule('scala.bareword', '[a-zA-Z_][a-zA-Z0-9_]*'),
|
||||||
|
|
||||||
PatternRule('scala.null', 'null'),
|
PatternRule('scala.null', 'null'),
|
||||||
|
|
||||||
|
RegionRule('scala.inline', r'(?:^| )(?=<[a-zA-Z_])', XMLGrammar, '^[ \t]*$'),
|
||||||
]
|
]
|
||||||
|
|
||||||
class ScalaTabber(StackTabber2):
|
class ScalaTabber(StackTabber2):
|
||||||
|
@ -84,6 +82,13 @@ class ScalaTabber(StackTabber2):
|
||||||
# the default is to assume no
|
# the default is to assume no
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
class ScalaStart(Interact):
|
||||||
|
args = []
|
||||||
|
modename = 'scalapipe'
|
||||||
|
reuse = True
|
||||||
|
def _execute(self, w, **vargs):
|
||||||
|
Interact._execute(self, w, bname='*Scala*', cmd='scala')
|
||||||
|
|
||||||
class Scala(Fundamental):
|
class Scala(Fundamental):
|
||||||
name = 'Scala'
|
name = 'Scala'
|
||||||
extensions = ['.scala']
|
extensions = ['.scala']
|
||||||
|
@ -91,6 +96,7 @@ class Scala(Fundamental):
|
||||||
tabbercls = ScalaTabber
|
tabbercls = ScalaTabber
|
||||||
grammar = ScalaGrammar
|
grammar = ScalaGrammar
|
||||||
commentc = '//'
|
commentc = '//'
|
||||||
|
actions = [ScalaStart]
|
||||||
opentokens = ('delimiter',)
|
opentokens = ('delimiter',)
|
||||||
opentags = {'(': ')', '[': ']', '{': '}'}
|
opentags = {'(': ')', '[': ']', '{': '}'}
|
||||||
closetokens = ('delimiter',)
|
closetokens = ('delimiter',)
|
||||||
|
@ -115,5 +121,10 @@ class Scala(Fundamental):
|
||||||
'close-bracket': (']',),
|
'close-bracket': (']',),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class ScalaPipe(Pipe):
|
||||||
|
name = 'scalapipe'
|
||||||
|
grammar = ScalaGrammar
|
||||||
|
|
||||||
def install(*args):
|
def install(*args):
|
||||||
Scala.install(*args)
|
Scala.install(*args)
|
||||||
|
ScalaPipe.install(*args)
|
||||||
|
|
Loading…
Reference in New Issue