@sshadows/tree-sitter-al 3.2.0 → 3.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,18 +3,16 @@
3
3
  ;
4
4
  ; Keywords are exposed as named nodes (e.g., if_keyword, table_keyword) for
5
5
  ; precise highlighting. begin/end are named at depth 0 via external scanner.
6
-
7
6
  ; =============================================================================
8
7
  ; Comments
9
8
  ; =============================================================================
10
-
11
9
  (comment) @comment.line
10
+
12
11
  (multiline_comment) @comment.block
13
12
 
14
13
  ; =============================================================================
15
14
  ; Preprocessor Directives
16
15
  ; =============================================================================
17
-
18
16
  [
19
17
  (preproc_if)
20
18
  (preproc_else)
@@ -28,7 +26,6 @@
28
26
  ; =============================================================================
29
27
  ; Keywords - Control Flow
30
28
  ; =============================================================================
31
-
32
29
  [
33
30
  (if_keyword)
34
31
  (then_keyword)
@@ -56,7 +53,6 @@
56
53
  ; =============================================================================
57
54
  ; Keywords - Declarations
58
55
  ; =============================================================================
59
-
60
56
  [
61
57
  (procedure_keyword)
62
58
  (trigger_keyword)
@@ -67,7 +63,6 @@
67
63
  ; =============================================================================
68
64
  ; Keywords - Object Types
69
65
  ; =============================================================================
70
-
71
66
  [
72
67
  (table_keyword)
73
68
  (tableextension_keyword)
@@ -94,7 +89,6 @@
94
89
  ; =============================================================================
95
90
  ; Keywords - Structure
96
91
  ; =============================================================================
97
-
98
92
  [
99
93
  (namespace_keyword)
100
94
  (using_keyword)
@@ -106,7 +100,6 @@
106
100
  ; =============================================================================
107
101
  ; Keywords - Sections
108
102
  ; =============================================================================
109
-
110
103
  [
111
104
  (fields_keyword)
112
105
  (keys_keyword)
@@ -140,7 +133,6 @@
140
133
  ; =============================================================================
141
134
  ; Keywords - Modifiers
142
135
  ; =============================================================================
143
-
144
136
  [
145
137
  (local_keyword)
146
138
  (internal_keyword)
@@ -157,7 +149,6 @@
157
149
  ; =============================================================================
158
150
  ; Operators
159
151
  ; =============================================================================
160
-
161
152
  ; Assignment operator
162
153
  ":=" @operator
163
154
 
@@ -186,65 +177,100 @@
186
177
 
187
178
  ; Keyword operators (string literal alternatives, matchable)
188
179
  [
189
- "and" "AND" "And"
190
- "or" "OR" "Or"
191
- "xor" "XOR" "Xor"
192
- "not" "NOT" "Not"
193
- "div" "DIV" "Div"
194
- "mod" "MOD" "Mod"
195
- "in" "IN" "In"
180
+ "and"
181
+ "AND"
182
+ "And"
183
+ "or"
184
+ "OR"
185
+ "Or"
186
+ "xor"
187
+ "XOR"
188
+ "Xor"
189
+ "not"
190
+ "NOT"
191
+ "Not"
192
+ "div"
193
+ "DIV"
194
+ "Div"
195
+ "mod"
196
+ "MOD"
197
+ "Mod"
198
+ "in"
199
+ "IN"
200
+ "In"
196
201
  ] @keyword.operator
197
202
 
198
203
  ; =============================================================================
199
204
  ; Punctuation
200
205
  ; =============================================================================
201
-
202
206
  ";" @punctuation.delimiter
207
+
203
208
  ":" @punctuation.delimiter
209
+
204
210
  "," @punctuation.delimiter
205
211
 
206
212
  "(" @punctuation.bracket
213
+
207
214
  ")" @punctuation.bracket
215
+
208
216
  "[" @punctuation.bracket
217
+
209
218
  "]" @punctuation.bracket
219
+
210
220
  "{" @punctuation.bracket
221
+
211
222
  "}" @punctuation.bracket
212
223
 
213
224
  ; =============================================================================
214
225
  ; Literals
215
226
  ; =============================================================================
216
-
217
227
  (string_literal) @string
228
+
218
229
  (integer) @number
230
+
219
231
  (decimal) @number.float
232
+
220
233
  (biginteger_literal) @number
234
+
221
235
  (boolean) @constant.builtin
236
+
222
237
  (date_literal) @string.special
238
+
223
239
  (time_literal) @string.special
240
+
224
241
  (datetime_literal) @string.special
225
242
 
226
243
  ; =============================================================================
227
244
  ; Types
228
245
  ; =============================================================================
229
-
230
246
  ; Built-in types (Integer, Text, Boolean, Date, etc.)
231
247
  (basic_type) @type.builtin
232
248
 
233
249
  ; Parameterized built-in types
234
250
  (text_type) @type.builtin
251
+
235
252
  (code_type) @type.builtin
236
253
 
237
254
  ; Record type references
238
255
  (record_type
239
- reference: [(identifier) (quoted_identifier)] @type)
256
+ reference: [
257
+ (identifier)
258
+ (quoted_identifier)
259
+ ] @type)
240
260
 
241
261
  ; Object reference types (Codeunit, Page, Report, etc.)
242
262
  (object_reference_type
243
- reference: [(identifier) (quoted_identifier) (integer)] @type)
263
+ reference: [
264
+ (identifier)
265
+ (quoted_identifier)
266
+ (integer)
267
+ ] @type)
244
268
 
245
269
  ; Array, List, Dictionary types
246
270
  (array_type) @type
271
+
247
272
  (list_type) @type
273
+
248
274
  (dictionary_type) @type
249
275
 
250
276
  ; Option type
@@ -255,79 +281,128 @@
255
281
 
256
282
  ; DotNet type references
257
283
  (dotnet_type
258
- reference: [(identifier) (quoted_identifier)] @type)
284
+ reference: [
285
+ (identifier)
286
+ (quoted_identifier)
287
+ ] @type)
259
288
 
260
289
  ; =============================================================================
261
290
  ; Object Declarations
262
291
  ; =============================================================================
263
-
264
292
  ; Tables
265
293
  (table_declaration
266
294
  object_id: (integer) @constant)
295
+
267
296
  (table_declaration
268
- object_name: [(identifier) (quoted_identifier)] @type.definition)
297
+ object_name: [
298
+ (identifier)
299
+ (quoted_identifier)
300
+ ] @type.definition)
269
301
 
270
302
  ; Pages
271
303
  (page_declaration
272
304
  object_id: (integer) @constant)
305
+
273
306
  (page_declaration
274
- object_name: [(identifier) (quoted_identifier)] @type.definition)
307
+ object_name: [
308
+ (identifier)
309
+ (quoted_identifier)
310
+ ] @type.definition)
275
311
 
276
312
  ; Codeunits
277
313
  (codeunit_declaration
278
314
  object_id: (integer) @constant)
315
+
279
316
  (codeunit_declaration
280
- object_name: [(identifier) (quoted_identifier)] @type.definition)
317
+ object_name: [
318
+ (identifier)
319
+ (quoted_identifier)
320
+ ] @type.definition)
281
321
 
282
322
  ; Reports
283
323
  (report_declaration
284
324
  object_id: (integer) @constant)
325
+
285
326
  (report_declaration
286
- object_name: [(identifier) (quoted_identifier)] @type.definition)
327
+ object_name: [
328
+ (identifier)
329
+ (quoted_identifier)
330
+ ] @type.definition)
287
331
 
288
332
  ; Queries
289
333
  (query_declaration
290
334
  object_id: (integer) @constant)
335
+
291
336
  (query_declaration
292
- object_name: [(identifier) (quoted_identifier)] @type.definition)
337
+ object_name: [
338
+ (identifier)
339
+ (quoted_identifier)
340
+ ] @type.definition)
293
341
 
294
342
  ; XMLports
295
343
  (xmlport_declaration
296
344
  object_id: (integer) @constant)
345
+
297
346
  (xmlport_declaration
298
- object_name: [(identifier) (quoted_identifier)] @type.definition)
347
+ object_name: [
348
+ (identifier)
349
+ (quoted_identifier)
350
+ ] @type.definition)
299
351
 
300
352
  ; Enums
301
353
  (enum_declaration
302
354
  object_id: (integer) @constant)
355
+
303
356
  (enum_declaration
304
- object_name: [(identifier) (quoted_identifier)] @type.definition)
357
+ object_name: [
358
+ (identifier)
359
+ (quoted_identifier)
360
+ ] @type.definition)
305
361
 
306
362
  ; Interfaces
307
363
  (interface_declaration
308
- object_name: [(identifier) (quoted_identifier)] @type.definition)
364
+ object_name: [
365
+ (identifier)
366
+ (quoted_identifier)
367
+ ] @type.definition)
309
368
 
310
369
  ; ControlAddins
311
370
  (controladdin_declaration
312
- object_name: [(identifier) (quoted_identifier)] @type.definition)
371
+ object_name: [
372
+ (identifier)
373
+ (quoted_identifier)
374
+ ] @type.definition)
313
375
 
314
376
  ; Profiles
315
377
  (profile_declaration
316
- object_name: [(identifier) (quoted_identifier)] @type.definition)
378
+ object_name: [
379
+ (identifier)
380
+ (quoted_identifier)
381
+ ] @type.definition)
317
382
 
318
383
  ; Permission Sets
319
384
  (permissionset_declaration
320
385
  object_id: (integer) @constant)
386
+
321
387
  (permissionset_declaration
322
- object_name: [(identifier) (quoted_identifier)] @type.definition)
388
+ object_name: [
389
+ (identifier)
390
+ (quoted_identifier)
391
+ ] @type.definition)
323
392
 
324
393
  ; Entitlements
325
394
  (entitlement_declaration
326
- object_name: [(identifier) (quoted_identifier)] @type.definition)
395
+ object_name: [
396
+ (identifier)
397
+ (quoted_identifier)
398
+ ] @type.definition)
327
399
 
328
400
  ; Page Customizations
329
401
  (pagecustomization_declaration
330
- object_name: [(identifier) (quoted_identifier)] @type.definition)
402
+ object_name: [
403
+ (identifier)
404
+ (quoted_identifier)
405
+ ] @type.definition)
331
406
 
332
407
  ; DotNet
333
408
  (dotnet_declaration) @type
@@ -335,87 +410,143 @@
335
410
  ; =============================================================================
336
411
  ; Extension Declarations
337
412
  ; =============================================================================
338
-
339
413
  (tableextension_declaration
340
414
  object_id: (integer) @constant)
415
+
341
416
  (tableextension_declaration
342
- object_name: [(identifier) (quoted_identifier)] @type.definition)
417
+ object_name: [
418
+ (identifier)
419
+ (quoted_identifier)
420
+ ] @type.definition)
343
421
 
344
422
  (pageextension_declaration
345
423
  object_id: (integer) @constant)
424
+
346
425
  (pageextension_declaration
347
- object_name: [(identifier) (quoted_identifier)] @type.definition)
426
+ object_name: [
427
+ (identifier)
428
+ (quoted_identifier)
429
+ ] @type.definition)
348
430
 
349
431
  (enumextension_declaration
350
432
  object_id: (integer) @constant)
433
+
351
434
  (enumextension_declaration
352
- object_name: [(identifier) (quoted_identifier)] @type.definition)
435
+ object_name: [
436
+ (identifier)
437
+ (quoted_identifier)
438
+ ] @type.definition)
353
439
 
354
440
  (reportextension_declaration
355
441
  object_id: (integer) @constant)
442
+
356
443
  (reportextension_declaration
357
- object_name: [(identifier) (quoted_identifier)] @type.definition)
444
+ object_name: [
445
+ (identifier)
446
+ (quoted_identifier)
447
+ ] @type.definition)
358
448
 
359
449
  (profileextension_declaration
360
- object_name: [(identifier) (quoted_identifier)] @type.definition)
450
+ object_name: [
451
+ (identifier)
452
+ (quoted_identifier)
453
+ ] @type.definition)
361
454
 
362
455
  (permissionsetextension_declaration
363
456
  object_id: (integer) @constant)
457
+
364
458
  (permissionsetextension_declaration
365
- object_name: [(identifier) (quoted_identifier)] @type.definition)
459
+ object_name: [
460
+ (identifier)
461
+ (quoted_identifier)
462
+ ] @type.definition)
366
463
 
367
464
  ; Split declarations (preprocessor-split object headers)
368
465
  (preproc_split_declaration
369
466
  object_id: (integer) @constant)
467
+
370
468
  (preproc_split_declaration
371
- object_name: [(identifier) (quoted_identifier)] @type.definition)
469
+ object_name: [
470
+ (identifier)
471
+ (quoted_identifier)
472
+ ] @type.definition)
372
473
 
373
474
  ; =============================================================================
374
475
  ; Procedures and Triggers
375
476
  ; =============================================================================
376
-
377
477
  ; Procedure names
378
478
  (procedure
379
- name: [(identifier) (quoted_identifier)] @function.definition)
479
+ name: [
480
+ (identifier)
481
+ (quoted_identifier)
482
+ ] @function.definition)
380
483
 
381
484
  ; Event declarations
382
485
  (event_declaration
383
- name: [(identifier) (quoted_identifier)] @function.definition)
486
+ name: [
487
+ (identifier)
488
+ (quoted_identifier)
489
+ ] @function.definition)
384
490
 
385
491
  ; Trigger names
386
492
  (trigger_declaration
387
- name: [(identifier) (quoted_identifier)] @function.definition)
493
+ name: [
494
+ (identifier)
495
+ (quoted_identifier)
496
+ ] @function.definition)
497
+
388
498
  ; Scoped member-trigger name (`Object::Member`)
389
499
  (trigger_declaration
390
500
  name: (member_trigger_name
391
- object: [(identifier) (quoted_identifier)] @type
392
- member: [(identifier) (quoted_identifier)] @function.definition))
501
+ object: [
502
+ (identifier)
503
+ (quoted_identifier)
504
+ ] @type
505
+ member: [
506
+ (identifier)
507
+ (quoted_identifier)
508
+ ] @function.definition))
393
509
 
394
510
  ; Interface procedures
395
511
  (interface_procedure
396
- name: [(identifier) (quoted_identifier)] @function.definition)
512
+ name: [
513
+ (identifier)
514
+ (quoted_identifier)
515
+ ] @function.definition)
397
516
 
398
517
  ; Split procedures (preprocessor-split)
399
518
  (preproc_split_procedure
400
- name: [(identifier) (quoted_identifier)] @function.definition)
519
+ name: [
520
+ (identifier)
521
+ (quoted_identifier)
522
+ ] @function.definition)
401
523
 
402
524
  ; =============================================================================
403
525
  ; Fields and Variables
404
526
  ; =============================================================================
405
-
406
527
  ; Table field declarations
407
528
  (field_declaration
408
529
  id: (integer) @constant)
530
+
409
531
  (field_declaration
410
- name: [(identifier) (quoted_identifier)] @property.definition)
532
+ name: [
533
+ (identifier)
534
+ (quoted_identifier)
535
+ ] @property.definition)
411
536
 
412
537
  ; Variable declarations
413
538
  (variable_declaration
414
- name: [(identifier) (quoted_identifier)] @variable.definition)
539
+ name: [
540
+ (identifier)
541
+ (quoted_identifier)
542
+ ] @variable.definition)
415
543
 
416
544
  ; Parameters
417
545
  (parameter
418
- name: [(identifier) (quoted_identifier)] @variable.parameter)
546
+ name: [
547
+ (identifier)
548
+ (quoted_identifier)
549
+ ] @variable.parameter)
419
550
 
420
551
  ; Label declarations
421
552
  (label_declaration
@@ -424,22 +555,39 @@
424
555
  ; Enum value declarations
425
556
  (enum_value_declaration
426
557
  value_id: (integer) @constant)
558
+
427
559
  (enum_value_declaration
428
- value_name: [(identifier) (quoted_identifier)] @constant.definition)
560
+ value_name: [
561
+ (identifier)
562
+ (quoted_identifier)
563
+ ] @constant.definition)
429
564
 
430
565
  ; Key declarations
431
566
  (key_declaration
432
- name: [(identifier) (quoted_identifier)] @property.definition)
567
+ name: [
568
+ (identifier)
569
+ (quoted_identifier)
570
+ ] @property.definition)
433
571
 
434
572
  ; Fieldgroup declarations
435
573
  (fieldgroup_declaration
436
- name: [(identifier) (quoted_identifier)] @property.definition)
574
+ name: [
575
+ (identifier)
576
+ (quoted_identifier)
577
+ ] @property.definition)
437
578
 
438
579
  ; Return values
439
580
  (procedure
440
- return_value: [(identifier) (quoted_identifier)] @variable.definition)
581
+ return_value: [
582
+ (identifier)
583
+ (quoted_identifier)
584
+ ] @variable.definition)
585
+
441
586
  (trigger_declaration
442
- return_value: [(identifier) (quoted_identifier)] @variable.definition)
587
+ return_value: [
588
+ (identifier)
589
+ (quoted_identifier)
590
+ ] @variable.definition)
443
591
 
444
592
  ; For loop variables
445
593
  (for_statement
@@ -452,7 +600,6 @@
452
600
  ; =============================================================================
453
601
  ; Expressions
454
602
  ; =============================================================================
455
-
456
603
  ; Direct function calls
457
604
  (call_expression
458
605
  function: (identifier) @function.call)
@@ -465,18 +612,29 @@
465
612
  ; Member expression components
466
613
  (member_expression
467
614
  object: (identifier) @variable)
615
+
468
616
  (member_expression
469
617
  member: (identifier) @property)
470
618
 
471
619
  ; Database references
472
620
  (database_reference
473
- table_name: [(identifier) (quoted_identifier)] @type)
621
+ table_name: [
622
+ (identifier)
623
+ (quoted_identifier)
624
+ ] @type)
474
625
 
475
626
  ; Qualified enum values
476
627
  (qualified_enum_value
477
- enum_type: [(identifier) (quoted_identifier)] @type)
628
+ enum_type: [
629
+ (identifier)
630
+ (quoted_identifier)
631
+ ] @type)
632
+
478
633
  (qualified_enum_value
479
- value: [(identifier) (quoted_identifier)] @constant)
634
+ value: [
635
+ (identifier)
636
+ (quoted_identifier)
637
+ ] @constant)
480
638
 
481
639
  ; Option members
482
640
  (option_member) @constant
@@ -484,29 +642,45 @@
484
642
  ; =============================================================================
485
643
  ; Actions
486
644
  ; =============================================================================
487
-
488
645
  (action_declaration
489
- name: [(identifier) (quoted_identifier)] @function)
646
+ name: [
647
+ (identifier)
648
+ (quoted_identifier)
649
+ ] @function)
490
650
 
491
651
  (actionref_declaration
492
- action_name: [(identifier) (quoted_identifier)] @function)
652
+ action_name: [
653
+ (identifier)
654
+ (quoted_identifier)
655
+ ] @function)
493
656
 
494
657
  (customaction_declaration
495
- name: [(identifier) (quoted_identifier)] @function)
658
+ name: [
659
+ (identifier)
660
+ (quoted_identifier)
661
+ ] @function)
496
662
 
497
663
  (systemaction_declaration
498
- name: [(identifier) (quoted_identifier)] @function)
664
+ name: [
665
+ (identifier)
666
+ (quoted_identifier)
667
+ ] @function)
499
668
 
500
669
  (fileuploadaction_declaration
501
- name: [(identifier) (quoted_identifier)] @function)
670
+ name: [
671
+ (identifier)
672
+ (quoted_identifier)
673
+ ] @function)
502
674
 
503
675
  (separator_action
504
- name: [(identifier) (quoted_identifier)] @punctuation.special)
676
+ name: [
677
+ (identifier)
678
+ (quoted_identifier)
679
+ ] @punctuation.special)
505
680
 
506
681
  ; =============================================================================
507
682
  ; Namespace and Using
508
683
  ; =============================================================================
509
-
510
684
  (namespace_declaration
511
685
  name: (namespace_name) @module)
512
686
 
@@ -516,14 +690,15 @@
516
690
  ; =============================================================================
517
691
  ; Implements Clause
518
692
  ; =============================================================================
519
-
520
693
  (implements_clause
521
- interface: [(identifier) (quoted_identifier)] @type)
694
+ interface: [
695
+ (identifier)
696
+ (quoted_identifier)
697
+ ] @type)
522
698
 
523
699
  ; =============================================================================
524
700
  ; Attributes
525
701
  ; =============================================================================
526
-
527
702
  (attribute_item) @attribute
528
703
 
529
704
  (attribute_content
@@ -532,7 +707,6 @@
532
707
  ; =============================================================================
533
708
  ; Properties
534
709
  ; =============================================================================
535
-
536
710
  ; Property name
537
711
  (property
538
712
  name: (property_name) @property)
@@ -543,69 +717,103 @@
543
717
  ; =============================================================================
544
718
  ; Query and Report Elements
545
719
  ; =============================================================================
546
-
547
720
  ; Query dataitems
548
721
  (query_dataitem
549
- name: [(identifier) (quoted_identifier)] @variable)
722
+ name: [
723
+ (identifier)
724
+ (quoted_identifier)
725
+ ] @variable)
726
+
550
727
  (query_dataitem
551
- table_name: [(identifier) (quoted_identifier)] @type)
728
+ table_name: [
729
+ (identifier)
730
+ (quoted_identifier)
731
+ ] @type)
552
732
 
553
733
  ; Query columns
554
734
  (query_column
555
- name: [(identifier) (quoted_identifier)] @property)
735
+ name: [
736
+ (identifier)
737
+ (quoted_identifier)
738
+ ] @property)
556
739
 
557
740
  ; Report dataitems
558
741
  (report_dataitem
559
- name: [(identifier) (quoted_identifier)] @variable)
742
+ name: [
743
+ (identifier)
744
+ (quoted_identifier)
745
+ ] @variable)
746
+
560
747
  (report_dataitem
561
- table_name: [(identifier) (quoted_identifier)] @type)
748
+ table_name: [
749
+ (identifier)
750
+ (quoted_identifier)
751
+ ] @type)
562
752
 
563
753
  ; Report columns
564
754
  (report_column
565
- name: [(identifier) (quoted_identifier)] @property)
755
+ name: [
756
+ (identifier)
757
+ (quoted_identifier)
758
+ ] @property)
566
759
 
567
760
  ; =============================================================================
568
761
  ; Page Fields
569
762
  ; =============================================================================
570
-
571
763
  (page_field
572
- name: [(identifier) (quoted_identifier)] @property)
764
+ name: [
765
+ (identifier)
766
+ (quoted_identifier)
767
+ ] @property)
573
768
 
574
769
  ; =============================================================================
575
770
  ; XMLport Elements
576
771
  ; =============================================================================
577
-
578
772
  (xmlport_element
579
- name: [(identifier) (quoted_identifier)] @property)
773
+ name: [
774
+ (identifier)
775
+ (quoted_identifier)
776
+ ] @property)
777
+
580
778
  (xmlport_attribute
581
- name: [(identifier) (quoted_identifier)] @property)
779
+ name: [
780
+ (identifier)
781
+ (quoted_identifier)
782
+ ] @property)
582
783
 
583
784
  ; =============================================================================
584
785
  ; View Definitions
585
786
  ; =============================================================================
586
-
587
787
  (view_definition
588
- name: [(identifier) (quoted_identifier)] @property.definition)
788
+ name: [
789
+ (identifier)
790
+ (quoted_identifier)
791
+ ] @property.definition)
589
792
 
590
793
  ; =============================================================================
591
794
  ; DotNet
592
795
  ; =============================================================================
593
-
594
796
  (assembly_declaration
595
- name: [(string_literal) (quoted_identifier) (dotnet_assembly_name)] @string)
797
+ name: [
798
+ (string_literal)
799
+ (quoted_identifier)
800
+ (dotnet_assembly_name)
801
+ ] @string)
596
802
 
597
803
  (type_declaration) @type
598
804
 
599
805
  ; =============================================================================
600
806
  ; Permission Types
601
807
  ; =============================================================================
602
-
603
808
  (permission_type) @keyword
809
+
604
810
  (tabledata_permission
605
- table_name: [(identifier) (quoted_identifier)] @type)
811
+ table_name: [
812
+ (identifier)
813
+ (quoted_identifier)
814
+ ] @type)
606
815
 
607
816
  ; =============================================================================
608
817
  ; Errors
609
818
  ; =============================================================================
610
-
611
819
  (ERROR) @error