@@ -25,9 +25,8 @@ describe "Ruby grammar", ->
25
25
expect (tokens[2 ]).toEqual value : ' require ' , scopes : [' source.ruby' ]
26
26
27
27
{tokens } = grammar .tokenizeLine (' Kernel::require "."' )
28
- expect (tokens[1 ]).toEqual value : ' :' , scopes : [' source.ruby' , ' punctuation.separator.other.ruby' ]
29
- expect (tokens[2 ]).toEqual value : ' :' , scopes : [' source.ruby' , ' punctuation.separator.other.ruby' ]
30
- expect (tokens[3 ]).toEqual value : ' require ' , scopes : [' source.ruby' ]
28
+ expect (tokens[1 ]).toEqual value : ' ::' , scopes : [' source.ruby' , ' punctuation.separator.method.ruby' ]
29
+ expect (tokens[2 ]).toEqual value : ' require ' , scopes : [' source.ruby' ]
31
30
32
31
it " tokenizes symbols" , ->
33
32
{tokens } = grammar .tokenizeLine (' :test' )
@@ -58,6 +57,41 @@ describe "Ruby grammar", ->
58
57
expect (tokens[4 ]).toEqual value : ' ' , scopes : [' source.ruby' ]
59
58
expect (tokens[5 ]).toEqual value : ' 1' , scopes : [' source.ruby' , ' constant.numeric.ruby' ]
60
59
60
+ it " tokenizes :: separators" , ->
61
+ {tokens } = grammar .tokenizeLine (' File::read "test"' )
62
+ expect (tokens[0 ]).toEqual value : ' File' , scopes : [' source.ruby' , ' support.class.ruby' ]
63
+ expect (tokens[1 ]).toEqual value : ' ::' , scopes : [' source.ruby' , ' punctuation.separator.method.ruby' ]
64
+ expect (tokens[2 ]).toEqual value : ' read ' , scopes : [' source.ruby' ]
65
+
66
+ {tokens } = grammar .tokenizeLine (' File:: read "test"' )
67
+ expect (tokens[0 ]).toEqual value : ' File' , scopes : [' source.ruby' , ' variable.other.constant.ruby' ]
68
+ expect (tokens[1 ]).toEqual value : ' ::' , scopes : [' source.ruby' , ' punctuation.separator.method.ruby' ]
69
+ expect (tokens[2 ]).toEqual value : ' ' , scopes : [' source.ruby' ]
70
+ expect (tokens[3 ]).toEqual value : ' read ' , scopes : [' source.ruby' ]
71
+
72
+ {tokens } = grammar .tokenizeLine (' RbConfig::CONFIG' )
73
+ expect (tokens[0 ]).toEqual value : ' RbConfig' , scopes : [' source.ruby' , ' support.class.ruby' ]
74
+ expect (tokens[1 ]).toEqual value : ' ::' , scopes : [' source.ruby' , ' punctuation.separator.namespace.ruby' ]
75
+ expect (tokens[2 ]).toEqual value : ' CONFIG' , scopes : [' source.ruby' , ' variable.other.constant.ruby' ]
76
+
77
+ {tokens } = grammar .tokenizeLine (' RbConfig:: CONFIG' )
78
+ expect (tokens[0 ]).toEqual value : ' RbConfig' , scopes : [' source.ruby' , ' variable.other.constant.ruby' ]
79
+ expect (tokens[1 ]).toEqual value : ' ::' , scopes : [' source.ruby' , ' punctuation.separator.namespace.ruby' ]
80
+ expect (tokens[2 ]).toEqual value : ' ' , scopes : [' source.ruby' ]
81
+ expect (tokens[3 ]).toEqual value : ' CONFIG' , scopes : [' source.ruby' , ' variable.other.constant.ruby' ]
82
+
83
+ it " tokenizes . separator" , ->
84
+ {tokens } = grammar .tokenizeLine (' File.read "test"' )
85
+ expect (tokens[0 ]).toEqual value : ' File' , scopes : [' source.ruby' , ' support.class.ruby' ]
86
+ expect (tokens[1 ]).toEqual value : ' .' , scopes : [' source.ruby' , ' punctuation.separator.method.ruby' ]
87
+ expect (tokens[2 ]).toEqual value : ' read ' , scopes : [' source.ruby' ]
88
+
89
+ {tokens } = grammar .tokenizeLine (' File. read "test"' )
90
+ expect (tokens[0 ]).toEqual value : ' File' , scopes : [' source.ruby' , ' variable.other.constant.ruby' ]
91
+ expect (tokens[1 ]).toEqual value : ' .' , scopes : [' source.ruby' , ' punctuation.separator.method.ruby' ]
92
+ expect (tokens[2 ]).toEqual value : ' ' , scopes : [' source.ruby' ]
93
+ expect (tokens[3 ]).toEqual value : ' read ' , scopes : [' source.ruby' ]
94
+
61
95
it " tokenizes %{} style strings" , ->
62
96
{tokens } = grammar .tokenizeLine (' %{te{s}t}' )
63
97
0 commit comments