@@ -30,6 +30,7 @@ patterns:
30
30
- include : ' #storage-scope'
31
31
- include : ' #attributes'
32
32
- include : ' #imports'
33
+ - include : ' #imports-dpi-function'
33
34
- include : ' #operators'
34
35
- include : ' #constants'
35
36
- include : ' #identifiers'
@@ -44,7 +45,7 @@ repository:
44
45
name : storage.type.function.systemverilog
45
46
' 3 ' :
46
47
name : storage.modifier.systemverilog
47
- end : ;
48
+ end : (;)
48
49
endCaptures :
49
50
' 0 ' :
50
51
name : punctuation.definition.function.end.systemverilog
@@ -759,6 +760,45 @@ repository:
759
760
- include : ' #operators'
760
761
- include : ' #identifiers'
761
762
name : meta.import.systemverilog
763
+ imports-dpi-function :
764
+ begin : ' [ \t\r\n]*\b(import|export)[ \t\r\n]+(\"[a-zA-Z_][a-zA-Z0-9_$]*\")[ \t\r\n]+(function)\b'
765
+ beginCaptures :
766
+ ' 1 ' :
767
+ name : keyword.control.systemverilog
768
+ ' 2 ' :
769
+ name : string.quoted.double.systemverilog
770
+ ' 3 ' :
771
+ name : storage.type.function.systemverilog
772
+ end : ' (;)'
773
+ endCaptures :
774
+ ' 1 ' :
775
+ name : punctuation.module.instantiation.end.systemverilog
776
+ patterns :
777
+ - match : >-
778
+ [ \t\r\n]*(?:\b([a-zA-Z_][a-zA-Z0-9_$]*)(::))?([a-zA-Z_][a-zA-Z0-9_$]*\b[ \t\r\n]+)?(?:\b(signed|unsigned)\b[ \t\r\n]*)?(?:(\[[a-zA-Z0-9_:$\.\-\+\*/%`' \t\r\n\[\]\(\)]*\])[ \t\r\n]*)?(?:\b([a-zA-Z_][a-zA-Z0-9_$]*)\b[ \t\r\n]*)(?=\(|;)
779
+ captures:
780
+ '1':
781
+ name: support.type.scope.systemverilog
782
+ '2':
783
+ name: keyword.operator.scope.systemverilog
784
+ '3':
785
+ patterns:
786
+ - include: '#built-ins'
787
+ - match: '[a-zA-Z_][a-zA-Z0-9_$]*'
788
+ name: storage.type.user-defined.systemverilog
789
+ '4':
790
+ patterns:
791
+ - include: '#modifiers'
792
+ '5':
793
+ patterns:
794
+ - include: '#selects'
795
+ '6':
796
+ name: entity.name.function.systemverilog
797
+ - include : ' #keywords'
798
+ - include : ' #port-net-parameter'
799
+ - include : ' #base-grammar'
800
+ - include : ' #identifiers'
801
+ name : meta.import-dpi.systemverilog
762
802
tables :
763
803
begin : ' [ \t\r\n]*\b(table)\b'
764
804
beginCaptures :
0 commit comments