@@ -30,6 +30,7 @@ patterns:
3030 - include : ' #storage-scope'
3131 - include : ' #attributes'
3232 - include : ' #imports'
33+ - include : ' #imports-dpi-function'
3334 - include : ' #operators'
3435 - include : ' #constants'
3536 - include : ' #identifiers'
@@ -44,7 +45,7 @@ repository:
4445 name : storage.type.function.systemverilog
4546 ' 3 ' :
4647 name : storage.modifier.systemverilog
47- end : ;
48+ end : (;)
4849 endCaptures :
4950 ' 0 ' :
5051 name : punctuation.definition.function.end.systemverilog
@@ -759,6 +760,45 @@ repository:
759760 - include : ' #operators'
760761 - include : ' #identifiers'
761762 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
762802 tables :
763803 begin : ' [ \t\r\n]*\b(table)\b'
764804 beginCaptures :
0 commit comments