@@ -663,6 +663,7 @@ Prism.languages.insertBefore('inside', 'attr-value',{
663
663
664
664
} ( Prism ) ) ;
665
665
666
+
666
667
var graphqlCommon = {
667
668
string : {
668
669
pattern : / " (?: \\ .| [ ^ \\ " ] ) * " / ,
@@ -671,20 +672,55 @@ var graphqlCommon = {
671
672
number : / (?: \B - | \b ) \d + (?: \. \d + ) ? (?: [ e E ] [ + - ] ? \d + ) ? \b / ,
672
673
boolean : / \b (?: t r u e | f a l s e ) \b / ,
673
674
variable : / \$ [ a - z _ ] \w * / i,
674
- directive : {
675
- pattern : / @ [ a - z _ ] \w * / i,
676
- alias : 'function'
677
- } ,
678
675
comment : / # .* / ,
676
+ operator : / ! | = | \. { 3 } / ,
679
677
punctuation : / [ ! ( ) { | } [ \] : = , ] /
680
678
} ;
681
679
680
+ var graphqlDirective = {
681
+ pattern : / @ [ a - z _ ] \w * ( \( [ \w \W ] * ?\) ) ? / i,
682
+ inside : {
683
+ function : / @ [ a - z _ ] \w * / i,
684
+ args : {
685
+ pattern : / \( [ \w \W ] * ?\) / ,
686
+ inside : {
687
+ arg : / [ a - z _ ] \w * (? = \s * : ) / i,
688
+ ...graphqlCommon
689
+ }
690
+ }
691
+ }
692
+ } ;
693
+
682
694
Prism . languages . graphql = {
695
+ 'schema-def' : {
696
+ pattern : / \b s c h e m a \b [ ^ { ] * { [ ^ { } ] * } / ,
697
+ inside : {
698
+ keyword : / \b s c h e m a \b | [ a - z A - Z _ ] \w * (? = \s * : ) / ,
699
+ 'type-name' : {
700
+ pattern : / ( : [ \s \[ ] * ) [ a - z _ ] \w * / i,
701
+ lookbehind : true
702
+ } ,
703
+ directive : graphqlDirective ,
704
+ punctuation : graphqlCommon . punctuation
705
+ }
706
+ } ,
707
+ 'union-def' : {
708
+ pattern : / \b u n i o n \b [ ^ = ] + = \s * [ a - z A - Z _ ] \w * (?: \s * \| \s * [ a - z A - Z _ ] \w * ) * / ,
709
+ inside : {
710
+ keyword : / \b u n i o n \b / ,
711
+ 'type-name' : {
712
+ pattern : / ( [ = | ] \s * ) [ a - z _ ] \w * / i,
713
+ lookbehind : true
714
+ } ,
715
+ directive : graphqlDirective ,
716
+ punctuation : graphqlCommon . punctuation
717
+ }
718
+ } ,
683
719
'type-def' : {
684
- pattern : / \b (?: t y p e | i n t e r f a c e ) \b [ \w \W ] + ?{ [ \w \W ] * ? } / ,
720
+ pattern : / \b (?: t y p e | i n t e r f a c e | i n p u t | e n u m ) \b [ \w \W ] + ?{ (?: [ ^ { } ] * | [ ^ { } ] * { [ ^ { } ] * } [ ^ { } ] * | [ ^ { } ] * { [ ^ { } ] * [ ^ { } ] * { [ ^ { } ] * } [ ^ { } ] * } [ ^ { } ] * ) } / ,
685
721
inside : {
686
722
fields : {
687
- pattern : / { [ \w \W ] * ? } / ,
723
+ pattern : / { (?: [ ^ { } ] * | [ ^ { } ] * { [ ^ { } ] * } [ ^ { } ] * | [ ^ { } ] * { [ ^ { } ] * [ ^ { } ] * { [ ^ { } ] * } [ ^ { } ] * } [ ^ { } ] * ) } / ,
688
724
inside : {
689
725
argDefs : {
690
726
pattern : / \( [ \w \W ] * ?\) / ,
@@ -694,68 +730,65 @@ Prism.languages.graphql = {
694
730
pattern : / ( : [ \s \[ ] * ) [ a - z _ ] \w * / i,
695
731
lookbehind : true
696
732
} ,
697
- directive : {
698
- pattern : / @ [ a - z _ ] \w * / i,
699
- alias : 'function'
700
- } ,
701
- rest : graphqlCommon
733
+ directive : graphqlDirective ,
734
+ ...graphqlCommon
702
735
}
703
736
} ,
737
+ directive : graphqlDirective ,
704
738
'attr-name' : {
705
739
pattern : / [ a - z _ ] \w * (? = \s * [: \( ] ) / i,
740
+ greedy : true ,
706
741
} ,
707
742
'type-name' : {
708
743
pattern : / ( : [ \s \[ ] * ) [ a - z _ ] \w * / i,
709
744
lookbehind : true
710
745
} ,
711
- directive : {
712
- pattern : / @ [ a - z _ ] \w * / i,
713
- alias : 'function'
714
- } ,
715
746
comment : / # .* / ,
716
747
punctuation : / [ ! { } \[ \] : = , ] / ,
717
748
}
718
749
} ,
719
- keyword : / \b (?: t y p e | i n t e r f a c e | i m p l e m e n t s ) \b / ,
720
- 'type-name' : / [ a - z _ ] \w * / i,
721
- string : / " (?: \\ .| [ ^ \\ " ] ) * " / ,
722
- number : / (?: \B - | \b ) \d + (?: \. \d + ) ? (?: [ e E ] [ + - ] ? \d + ) ? \b / ,
723
- boolean : / \b (?: t r u e | f a l s e ) \b / ,
724
- variable : / \$ [ a - z _ ] \w * / i,
725
- directive : {
726
- pattern : / @ [ a - z _ ] \w * / i,
727
- alias : 'function'
728
- } ,
729
- comment : / # .* / ,
750
+ keyword : / \b (?: t y p e | i n t e r f a c e | i m p l e m e n t s | i n p u t | e n u m ) \b / ,
751
+ directive : graphqlDirective ,
752
+ ...graphqlCommon ,
753
+
754
+ // 'type-name': /[a-z_]\w*/i,
730
755
}
731
756
} ,
732
- string : / " (?: \\ .| [ ^ \\ " ] ) * " / ,
733
- number : / (?: \B - | \b ) \d + (?: \. \d + ) ? (?: [ e E ] [ + - ] ? \d + ) ? \b / ,
734
- boolean : / \b (?: t r u e | f a l s e ) \b / ,
735
- variable : / \$ [ a - z _ ] \w * / i,
736
- directive : {
737
- pattern : / @ [ a - z _ ] \w * / i,
738
- alias : 'function'
739
- } ,
757
+ // string: /"(?:\\.|[^\\"])*"/,
758
+ // number: /(?:\B-|\b)\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b/,
759
+ // boolean: /\b(?:true|false)\b/,
760
+ // variable: /\$[a-z_]\w*/i,
761
+ // directive: {
762
+ // pattern: /@[a-z_]\w*/i,
763
+ // alias: 'function'
764
+ // },
765
+ directive : graphqlDirective ,
740
766
'attr-name' : / [ a - z _ ] \w * (? = \s * : ) / i,
741
767
'keyword' : [
742
768
{
743
769
pattern : / ( f r a g m e n t \s + (? ! o n ) [ a - z _ ] \w * \s + | \. \. \. \s * ) o n \b / ,
744
770
lookbehind : true
745
771
} ,
746
- / \b (?: q u e r y | m u t a t i o n | s u b s c r i p t i o n | f r a g m e n t | e x t e n d ) \b /
772
+ / \b (?: q u e r y | m u t a t i o n | s u b s c r i p t i o n | f r a g m e n t | e x t e n d | s c a l a r ) \b /
747
773
] ,
748
- 'operator' : / ! | = | \. { 3 } / ,
749
- 'punctuation' : / [ ! ( ) { } \[ \] : = , ] / ,
750
- comment : / # .* / ,
774
+ ...graphqlCommon ,
775
+ // 'operator': /!|=|\.{3}/,
776
+ // 'punctuation': /[!(){}\[\]:=,]/,
777
+ // comment: /#.*/,
751
778
// 'enum': /[a-z_]\w*/i
752
779
} ;
753
780
754
781
Prism . languages . json = {
755
- 'attr-name' : / " (?: \\ .| [ ^ \\ " ] ) * " (? = \s * : ) / i,
756
- 'string' : / " (?: \\ .| [ ^ \\ " ] ) * " / ,
757
- 'boolean' : / \b (?: t r u e | f a l s e ) \b / ,
758
- 'keyword' : / \b n u l l \b / ,
759
- 'number' : / (?: \B - | \b ) \d + (?: \. \d + ) ? (?: [ e E ] [ + - ] ? \d + ) ? \b / ,
760
- 'punctuation' : / [ { } [ \] , : ] / ,
782
+ 'attr-name' : {
783
+ pattern : / " (?: \\ .| [ ^ \\ " ] ) * " (? = \s * : ) / i,
784
+ greedy : true
785
+ } ,
786
+ string : {
787
+ pattern : / " (?: \\ .| [ ^ \\ " ] ) * " / ,
788
+ greedy : true
789
+ } ,
790
+ boolean : / \b (?: t r u e | f a l s e ) \b / ,
791
+ keyword : / \b n u l l \b / ,
792
+ number : / (?: \B - | \b ) \d + (?: \. \d + ) ? (?: [ e E ] [ + - ] ? \d + ) ? \b / ,
793
+ punctuation : / [ { } [ \] , : ] / ,
761
794
} ;
0 commit comments