@@ -39,7 +39,7 @@ export default function (hljs) {
3939 'and' , 'case' , 'isa' , 'instance' , 'reverse' , 'try' , 'catch' , 'break' , 'continue' , 'for'
4040 ] . join ( ' ' ) ,
4141 literal : 'true false' ,
42- built_in : 'println assert ' ,
42+ built_in : 'alloc arity exit getenv hasattr listattrs print println readattr readln setenv sleep system writeattr ' ,
4343 type : 'Int Float String Bool Result Maybe Any'
4444 } ;
4545
@@ -69,16 +69,17 @@ export default function (hljs) {
6969 const OP_SYM = / \+ \- | u \- | \+ | \- | \* | \/ | % | < < | > > | = = | < = | > = | < | > | \& | \| | \^ | \( \) | \[ \] = | \[ \] / ;
7070 const OP_DEF = {
7171 className : 'function' ,
72+ keywords : KEYWORDS ,
7273 begin : new RegExp ( `\\b(?:reverse\\s+)?operator\\s+(${ OP_SYM . source } )\\s*\\(` ) ,
7374 beginScope : { 1 : 'title.function' } ,
7475 end : / \) / ,
7576 excludeEnd : true ,
76- keywords : KEYWORDS ,
7777 contains : [ LINE_COMMENT ]
7878 } ;
7979
8080 const TYPE_LIKE_DEF = {
8181 className : 'class' ,
82+ keywords : KEYWORDS ,
8283 variants : [
8384 { begin : new RegExp ( `\\bstruct\\s+(${ IDENT . source } )\\b` ) } ,
8485 { begin : new RegExp ( `\\benum\\s+(${ IDENT . source } )\\b` ) } ,
@@ -89,13 +90,7 @@ export default function (hljs) {
8990
9091 const EXTENSION_DEF = {
9192 begin : new RegExp ( `\\bextension\\s+(${ IDENT . source } )\\b` ) ,
92- beginScope : { 1 : 'type' }
93- } ;
94-
95- const ENUM_CASE_DECL = {
96- className : 'constant' ,
97- begin : new RegExp ( `\\bcase\\s+(${ IDENT . source } )\\b` ) ,
98- beginScope : { 1 : 'constant' }
93+ beginScope : { 1 : 'title.class' }
9994 } ;
10095
10196 const ENUM_CASE_USE = {
@@ -138,21 +133,37 @@ export default function (hljs) {
138133 // Continuation lines: ::: ...
139134 const REPL_CONT = { className : 'meta' , begin : / ^ : : : \s ? / m, relevance : 0 } ;
140135
136+ const BLOCK = {
137+ begin : / \{ / ,
138+ end : / \} / ,
139+ keywords : KEYWORDS ,
140+ contains : [
141+ 'self' ,
142+ LINE_COMMENT ,
143+ DQ_STRING , SQ_STRING ,
144+ DEC_FLOAT , HEX_INT , OCT_INT , BIN_INT , DEC_INT ,
145+ LAMBDA_HEAD , TRY_PROTOCOL , ASSIGN_OP , INDEXING ,
146+ FUNC_DEF , METHOD_DEF , OP_DEF ,
147+ TYPE_LIKE_DEF , EXTENSION_DEF ,
148+ ENUM_CASE_USE ,
149+ IMPORTS
150+ ] ,
151+ relevance : 0
152+ } ;
153+
141154 return {
142155 name : 'Aria' ,
143156 aliases : [ 'aria' ] ,
144157 keywords : KEYWORDS ,
145158 contains : [
146- SHEBANG ,
147- REPL_PROMPT , REPL_CONT ,
148- LINE_COMMENT ,
149- DQ_STRING , SQ_STRING ,
159+ SHEBANG , REPL_PROMPT , REPL_CONT ,
160+ LINE_COMMENT , DQ_STRING , SQ_STRING ,
150161 DEC_FLOAT , HEX_INT , OCT_INT , BIN_INT , DEC_INT ,
151162 FUNC_DEF , METHOD_DEF , OP_DEF ,
152163 TYPE_LIKE_DEF , EXTENSION_DEF ,
153- ENUM_CASE_DECL , ENUM_CASE_USE ,
154- LAMBDA_HEAD , TRY_PROTOCOL , ASSIGN_OP ,
155- INDEXING ,
164+ ENUM_CASE_USE ,
165+ LAMBDA_HEAD , TRY_PROTOCOL , ASSIGN_OP , INDEXING ,
166+ BLOCK ,
156167 IMPORTS
157168 ]
158169 } ;
0 commit comments