@@ -11,3 +11,108 @@ describe "Elixir grammar", ->
1111 it " parses the grammar" , ->
1212 expect (grammar).toBeTruthy ()
1313 expect (grammar .scopeName ).toBe " source.elixir"
14+
15+ it " tokenizes bitwise operators" , ->
16+ {tokens } = grammar .tokenizeLine (' left &&& right' )
17+ expect (tokens[1 ]).toEqual value : ' &&&' , scopes : [' source.elixir' , ' keyword.operator.bitwise.elixir' ]
18+
19+ {tokens } = grammar .tokenizeLine (' left >>> right' )
20+ expect (tokens[1 ]).toEqual value : ' >>>' , scopes : [' source.elixir' , ' keyword.operator.bitwise.elixir' ]
21+
22+ {tokens } = grammar .tokenizeLine (' left <<< right' )
23+ expect (tokens[1 ]).toEqual value : ' <<<' , scopes : [' source.elixir' , ' keyword.operator.bitwise.elixir' ]
24+
25+ {tokens } = grammar .tokenizeLine (' left ^^^ right' )
26+ expect (tokens[1 ]).toEqual value : ' ^^^' , scopes : [' source.elixir' , ' keyword.operator.bitwise.elixir' ]
27+
28+ {tokens } = grammar .tokenizeLine (' left ||| right' )
29+ expect (tokens[1 ]).toEqual value : ' |||' , scopes : [' source.elixir' , ' keyword.operator.bitwise.elixir' ]
30+
31+ {tokens } = grammar .tokenizeLine (' ~~~exp' )
32+ expect (tokens[0 ]).toEqual value : ' ~~~' , scopes : [' source.elixir' , ' keyword.operator.bitwise.elixir' ]
33+
34+ it " tokenizes comparison operators" , ->
35+ {tokens } = grammar .tokenizeLine (' left === right' )
36+ expect (tokens[1 ]).toEqual value : ' ===' , scopes : [' source.elixir' , ' keyword.operator.comparison.elixir' ]
37+
38+ {tokens } = grammar .tokenizeLine (' left == right' )
39+ expect (tokens[1 ]).toEqual value : ' ==' , scopes : [' source.elixir' , ' keyword.operator.comparison.elixir' ]
40+
41+ {tokens } = grammar .tokenizeLine (' left != right' )
42+ expect (tokens[1 ]).toEqual value : ' !=' , scopes : [' source.elixir' , ' keyword.operator.comparison.elixir' ]
43+
44+ {tokens } = grammar .tokenizeLine (' left !== right' )
45+ expect (tokens[1 ]).toEqual value : ' !==' , scopes : [' source.elixir' , ' keyword.operator.comparison.elixir' ]
46+
47+ {tokens } = grammar .tokenizeLine (' left <= right' )
48+ expect (tokens[1 ]).toEqual value : ' <=' , scopes : [' source.elixir' , ' keyword.operator.comparison.elixir' ]
49+
50+ {tokens } = grammar .tokenizeLine (' left >= right' )
51+ expect (tokens[1 ]).toEqual value : ' >=' , scopes : [' source.elixir' , ' keyword.operator.comparison.elixir' ]
52+
53+ {tokens } = grammar .tokenizeLine (' left =~ right' )
54+ expect (tokens[1 ]).toEqual value : ' =~' , scopes : [' source.elixir' , ' keyword.operator.comparison.elixir' ]
55+
56+ it " tokenizes logical operators" , ->
57+ {tokens } = grammar .tokenizeLine (' left || right' )
58+ expect (tokens[1 ]).toEqual value : ' ||' , scopes : [' source.elixir' , ' keyword.operator.logical.elixir' ]
59+
60+ {tokens } = grammar .tokenizeLine (' left && right' )
61+ expect (tokens[1 ]).toEqual value : ' &&' , scopes : [' source.elixir' , ' keyword.operator.logical.elixir' ]
62+
63+ it " tokenizes other operators" , ->
64+ {tokens } = grammar .tokenizeLine (' left |> right' )
65+ expect (tokens[1 ]).toEqual value : ' |>' , scopes : [' source.elixir' , ' keyword.operator.other.elixir' ]
66+
67+ {tokens } = grammar .tokenizeLine (' left ++ right' )
68+ expect (tokens[1 ]).toEqual value : ' ++' , scopes : [' source.elixir' , ' keyword.operator.other.elixir' ]
69+
70+ {tokens } = grammar .tokenizeLine (' left -- right' )
71+ expect (tokens[1 ]).toEqual value : ' --' , scopes : [' source.elixir' , ' keyword.operator.other.elixir' ]
72+
73+ {tokens } = grammar .tokenizeLine (' left \\\\ right' )
74+ expect (tokens[1 ]).toEqual value : ' \\\\ ' , scopes : [' source.elixir' , ' keyword.operator.other.elixir' ]
75+
76+ {tokens } = grammar .tokenizeLine (' left <- right' )
77+ expect (tokens[1 ]).toEqual value : ' <-' , scopes : [' source.elixir' , ' keyword.operator.other.elixir' ]
78+
79+ {tokens } = grammar .tokenizeLine (' left <> right' )
80+ expect (tokens[1 ]).toEqual value : ' <>' , scopes : [' source.elixir' , ' keyword.operator.other.elixir' ]
81+
82+ {tokens } = grammar .tokenizeLine (' left :: right' )
83+ expect (tokens[1 ]).toEqual value : ' ::' , scopes : [' source.elixir' , ' keyword.operator.other.elixir' ]
84+
85+ {tokens } = grammar .tokenizeLine (' left .. right' )
86+ expect (tokens[1 ]).toEqual value : ' ..' , scopes : [' source.elixir' , ' keyword.operator.other.elixir' ]
87+
88+ {tokens } = grammar .tokenizeLine (' left => right' )
89+ expect (tokens[1 ]).toEqual value : ' =>' , scopes : [' source.elixir' , ' keyword.operator.other.elixir' ]
90+
91+ {tokens } = grammar .tokenizeLine (' left -> right' )
92+ expect (tokens[1 ]).toEqual value : ' ->' , scopes : [' source.elixir' , ' keyword.operator.other.elixir' ]
93+
94+ {tokens } = grammar .tokenizeLine (' left <<~ right' )
95+ expect (tokens[1 ]).toEqual value : ' <<~' , scopes : [' source.elixir' , ' keyword.operator.other.elixir' ]
96+
97+ {tokens } = grammar .tokenizeLine (' left <~ right' )
98+ expect (tokens[1 ]).toEqual value : ' <~' , scopes : [' source.elixir' , ' keyword.operator.other.elixir' ]
99+
100+ {tokens } = grammar .tokenizeLine (' left ~>> right' )
101+ expect (tokens[1 ]).toEqual value : ' ~>>' , scopes : [' source.elixir' , ' keyword.operator.other.elixir' ]
102+
103+ {tokens } = grammar .tokenizeLine (' left ~> right' )
104+ expect (tokens[1 ]).toEqual value : ' ~>' , scopes : [' source.elixir' , ' keyword.operator.other.elixir' ]
105+
106+ {tokens } = grammar .tokenizeLine (' left <~> right' )
107+ expect (tokens[1 ]).toEqual value : ' <~>' , scopes : [' source.elixir' , ' keyword.operator.other.elixir' ]
108+
109+ {tokens } = grammar .tokenizeLine (' left <|> right' )
110+ expect (tokens[1 ]).toEqual value : ' <|>' , scopes : [' source.elixir' , ' keyword.operator.other.elixir' ]
111+
112+ it " tokenizes arrays" , ->
113+ {tokens } = grammar .tokenizeLine (' []' )
114+ expect (tokens[0 ]).toEqual value : ' []' , scopes : [' source.elixir' , ' punctuation.section.array.elixir' ]
115+
116+ {tokens } = grammar .tokenizeLine (' [1,2,3]' )
117+ expect (tokens[0 ]).toEqual value : ' [' , scopes : [' source.elixir' , ' punctuation.section.array.elixir' ]
118+ expect (tokens[6 ]).toEqual value : ' ]' , scopes : [' source.elixir' , ' punctuation.section.array.elixir' ]
0 commit comments