@@ -358,7 +358,7 @@ declare function declareFunctionDefn(x3: xty3, y3: yty3): ret3;"
358
358
(" exportedDefaultDefn" . font-lock-function-name-face )
359
359
(" declareFunctionDefn" . font-lock-function-name-face )
360
360
((" x0" " x1" " x2" " x3" ) . font-lock-variable-name-face )
361
- ((" y0 " " y1 " " y2 " " y3 " ) . font-lock-variable-name-face )
361
+ ((" \\ by0 " " \\ by1 " " \\ by2 " " \\ by3 " ) . font-lock-variable-name-face )
362
362
((" ret0" " ret1" " ret2" " ret3" ) . nil ))))
363
363
364
364
(ert-deftest font-lock/level-four ()
@@ -380,7 +380,7 @@ snake_cased_function(1, 2, 3)"
380
380
(" methodCall" . font-lock-function-name-face )
381
381
(" snake_cased_function" . font-lock-function-name-face )
382
382
((" string" " boolean" " number" " any" ) . typescript-primitive-face)
383
- ((" endpoint" " data" ) . nil )
383
+ ((" endpoint" " data" ) . font-lock-variable-name-face )
384
384
((" <" " >" " ," ) . nil ))))
385
385
386
386
(ert-deftest font-lock/generics ()
@@ -593,19 +593,24 @@ should be fontified as variable, keyword and type."
593
593
(should (eq (get-face-at " Namespaced" ) 'font-lock-type-face ))
594
594
(should (eq (get-face-at " ClassName" ) 'font-lock-type-face ))))
595
595
596
- (ert-deftest font-lock/variables-in-declaration -multiline-with-types ()
596
+ (ert-deftest font-lock/funargs--function- -multiline-with-types ()
597
597
" Variables should be highlighted in multiline declarations with types."
598
598
(test-with-fontified-buffer
599
599
" function test(
600
- var1: Type1,
601
- var2: Type2,
600
+ var1: Promise<U1, V1>,
601
+ var2: (xxx: Foo) => Bar,
602
+ var3: Type3,
602
603
): RetType {\n }"
603
604
(should (eq (get-face-at " var1" ) 'font-lock-variable-name-face ))
604
605
(should (eq (get-face-at " var2" ) 'font-lock-variable-name-face ))
605
- (should (eq (get-face-at " Type1" ) 'font-lock-type-face ))
606
- (should (eq (get-face-at " Type2" ) 'font-lock-type-face ))))
606
+ (should (eq (get-face-at " var3" ) 'font-lock-variable-name-face ))
607
+ (should (eq (get-face-at " xxx" ) 'font-lock-variable-name-face ))
608
+ (should (eq (get-face-at " Promise" ) 'font-lock-type-face ))
609
+ (should (eq (get-face-at " U1" ) 'font-lock-type-face ))
610
+ (should (eq (get-face-at " Foo" ) 'font-lock-type-face ))
611
+ (should (eq (get-face-at " Type3" ) 'font-lock-type-face ))))
607
612
608
- (ert-deftest font-lock/variables-in-declaration -multiline-without-types ()
613
+ (ert-deftest font-lock/funargs--function- -multiline-without-types ()
609
614
" Variables should be highlighted in multiline declarations without types."
610
615
(test-with-fontified-buffer
611
616
" function test(
@@ -615,33 +620,33 @@ var2,
615
620
(should (eq (get-face-at " var1" ) 'font-lock-variable-name-face ))
616
621
(should (eq (get-face-at " var2" ) 'font-lock-variable-name-face ))))
617
622
618
- (ert-deftest font-lock/variables-in-declaration-multiline-no -hanging-paren ()
619
- " Variables should be highlighted in multiline declarations with no hanging paren."
623
+ (ert-deftest font-lock/funargs--function--multiline -hanging-paren ()
624
+ " Variables should be highlighted in multiline declarations with hanging paren."
620
625
(test-with-fontified-buffer
621
626
" function test(
622
627
var1,
623
628
var2): RetType {\n }"
624
629
(should (eq (get-face-at " var1" ) 'font-lock-variable-name-face ))
625
630
(should (eq (get-face-at " var2" ) 'font-lock-variable-name-face ))))
626
631
627
- (ert-deftest font-lock/variables-in-declaration- multiline-ending-comma-no -hanging-paren ()
628
- " Variables should be highlighted in multiline declarations with no hanging paren and trailing comma."
632
+ (ert-deftest font-lock/funargs--function-- multiline-ending-comma-hanging-paren ()
633
+ " Variables should be highlighted in multiline declarations with hanging paren and trailing comma."
629
634
(test-with-fontified-buffer
630
635
" function test(
631
636
var1,
632
637
var2,): RetType {\n }"
633
638
(should (eq (get-face-at " var1" ) 'font-lock-variable-name-face ))
634
639
(should (eq (get-face-at " var2" ) 'font-lock-variable-name-face ))))
635
640
636
- (ert-deftest font-lock/variables-in-declaration- singleline-ending-comma-hanging-paren ()
637
- " Variables should be highlighted in singleline declarations with hanging paren and trailing comma."
641
+ (ert-deftest font-lock/funargs--function-- singleline-ending-comma-no -hanging-paren ()
642
+ " Variables should be highlighted in singleline declarations with no hanging paren and trailing comma."
638
643
(test-with-fontified-buffer
639
644
" function test(var1,var2,
640
645
): RetType {\n }"
641
646
(should (eq (get-face-at " var1" ) 'font-lock-variable-name-face ))
642
647
(should (eq (get-face-at " var2" ) 'font-lock-variable-name-face ))))
643
648
644
- (ert-deftest font-lock/variables-in-declaration -singleline-with-types ()
649
+ (ert-deftest font-lock/funargs--function- -singleline-with-types ()
645
650
" Variables should be highlighted in singleline declarations with types."
646
651
(test-with-fontified-buffer
647
652
" function test(var1: Foo, var2: Bar,): RetType {\n }"
@@ -650,13 +655,165 @@ var2,): RetType {\n}"
650
655
(should (eq (get-face-at " Foo" ) 'font-lock-type-face ))
651
656
(should (eq (get-face-at " Bar" ) 'font-lock-type-face ))))
652
657
653
- (ert-deftest font-lock/variables-in-declaration- singleline-ending-comma-no -hanging-paren ()
654
- " Variables should be highlighted in singleline declarations with no hanging paren and trailing comma."
658
+ (ert-deftest font-lock/funargs--function-- singleline-ending-comma-hanging-paren ()
659
+ " Variables should be highlighted in singleline declarations with hanging paren and trailing comma."
655
660
(test-with-fontified-buffer
656
661
" function test(var1,var2,): RetType {\n }"
657
662
(should (eq (get-face-at " var1" ) 'font-lock-variable-name-face ))
658
663
(should (eq (get-face-at " var2" ) 'font-lock-variable-name-face ))))
659
664
665
+ (ert-deftest font-lock/funargs--function--keywords-as-variables ()
666
+ " Keywords when used as variables should have variable face"
667
+ (test-with-fontified-buffer
668
+ " function test(type, unknown): void {}"
669
+ (should (eq (get-face-at " type" ) 'font-lock-variable-name-face ))
670
+ (should (eq (get-face-at " unknown" ) 'font-lock-variable-name-face ))))
671
+
672
+ (ert-deftest font-lock/funargs--arrow--keywords-as-variables ()
673
+ " Keywords when used as variables should have variable face"
674
+ (test-with-fontified-buffer
675
+ " const test = (type, unknown): void => {}"
676
+ (should (eq (get-face-at " type" ) 'font-lock-variable-name-face ))
677
+ (should (eq (get-face-at " unknown" ) 'font-lock-variable-name-face ))))
678
+
679
+ (ert-deftest font-lock/funargs--arrow--single-line--no-type ()
680
+ (test-with-fontified-buffer
681
+ " const test = (aaa, bbb, ccc): void => {}"
682
+ (should (eq (get-face-at " aaa" ) 'font-lock-variable-name-face ))
683
+ (should (eq (get-face-at " bbb" ) 'font-lock-variable-name-face ))
684
+ (should (eq (get-face-at " ccc" ) 'font-lock-variable-name-face ))))
685
+
686
+ (ert-deftest font-lock/funargs--arrow--single-line--no-type--no-return-type ()
687
+ (test-with-fontified-buffer
688
+ " const test = (aaa, bbb, ccc) => {}"
689
+ (should (eq (get-face-at " aaa" ) 'font-lock-variable-name-face ))
690
+ (should (eq (get-face-at " bbb" ) 'font-lock-variable-name-face ))
691
+ (should (eq (get-face-at " ccc" ) 'font-lock-variable-name-face ))))
692
+
693
+ (ert-deftest font-lock/funargs--arrow--single-line--no-type--trailing-comma ()
694
+ (test-with-fontified-buffer
695
+ " const test = (aaa, bbb, ccc,): void => {}"
696
+ (should (eq (get-face-at " aaa" ) 'font-lock-variable-name-face ))
697
+ (should (eq (get-face-at " bbb" ) 'font-lock-variable-name-face ))
698
+ (should (eq (get-face-at " ccc" ) 'font-lock-variable-name-face ))))
699
+
700
+ (ert-deftest font-lock/funargs--arrow--single-line--no-type--optional ()
701
+ (test-with-fontified-buffer
702
+ " const test = (aaa, bbb?): void => {}"
703
+ (should (eq (get-face-at " aaa" ) 'font-lock-variable-name-face ))
704
+ (should (eq (get-face-at " bbb?" ) 'font-lock-variable-name-face ))))
705
+
706
+ (ert-deftest font-lock/funargs--arrow--multiline--no-type ()
707
+ (test-with-fontified-buffer
708
+ " const test = (aaa, bbb,
709
+ ccc, ddd): void => {}"
710
+ (should (eq (get-face-at " aaa" ) 'font-lock-variable-name-face ))
711
+ (should (eq (get-face-at " bbb" ) 'font-lock-variable-name-face ))
712
+ (should (eq (get-face-at " ccc" ) 'font-lock-variable-name-face ))
713
+ (should (eq (get-face-at " ddd" ) 'font-lock-variable-name-face ))))
714
+
715
+ (ert-deftest font-lock/funargs--arrow--multiline--no-type--newline-after-last ()
716
+ (test-with-fontified-buffer
717
+ " const test = (aaa, bbb,
718
+ ccc, ddd
719
+ ): void => {}"
720
+ (should (eq (get-face-at " aaa" ) 'font-lock-variable-name-face ))
721
+ (should (eq (get-face-at " bbb" ) 'font-lock-variable-name-face ))
722
+ (should (eq (get-face-at " ccc" ) 'font-lock-variable-name-face ))
723
+ (should (eq (get-face-at " ddd" ) 'font-lock-variable-name-face ))))
724
+
725
+ (ert-deftest font-lock/funargs--arrow--multiline--no-type--newline-before-first ()
726
+ (test-with-fontified-buffer
727
+ " const test = (
728
+ aaa, bbb,
729
+ ccc, ddd
730
+ ): void => {}"
731
+ (should (eq (get-face-at " aaa" ) 'font-lock-variable-name-face ))
732
+ (should (eq (get-face-at " bbb" ) 'font-lock-variable-name-face ))
733
+ (should (eq (get-face-at " ccc" ) 'font-lock-variable-name-face ))
734
+ (should (eq (get-face-at " ddd" ) 'font-lock-variable-name-face ))))
735
+
736
+ (ert-deftest font-lock/funargs--arrow--multiline--no-type--with-comment ()
737
+ (test-with-fontified-buffer
738
+ " const test = (
739
+ aaa, bbb, // comment
740
+ ccc, ddd // comment
741
+ ): void => {}"
742
+ (should (eq (get-face-at " aaa" ) 'font-lock-variable-name-face ))
743
+ (should (eq (get-face-at " bbb" ) 'font-lock-variable-name-face ))
744
+ (should (eq (get-face-at " ccc" ) 'font-lock-variable-name-face ))
745
+ (should (eq (get-face-at " ddd" ) 'font-lock-variable-name-face ))))
746
+
747
+ (ert-deftest font-lock/funargs--arrow--single--mixed-type--newline-before-first ()
748
+ (test-with-fontified-buffer
749
+ " const test = (aaa, bbb: Promise, ccc: number, ddd): void => {}"
750
+ (should (eq (get-face-at " aaa" ) 'font-lock-variable-name-face ))
751
+ (should (eq (get-face-at " bbb" ) 'font-lock-variable-name-face ))
752
+ (should (eq (get-face-at " ccc" ) 'font-lock-variable-name-face ))
753
+ (should (eq (get-face-at " ddd" ) 'font-lock-variable-name-face ))
754
+ (should (eq (get-face-at " Promise" ) 'font-lock-type-face ))
755
+ (should (eq (get-face-at " number" ) 'typescript-primitive-face ))))
756
+
757
+ (ert-deftest font-lock/funargs--arrow--single--with-type--complex-type ()
758
+ (test-with-fontified-buffer
759
+ " const test = (aaa: Promise<U, V, (xxx: A) => Foo>, bbb): void => {}"
760
+ (should (eq (get-face-at " aaa" ) 'font-lock-variable-name-face ))
761
+ (should (eq (get-face-at " bbb" ) 'font-lock-variable-name-face ))
762
+ (should (eq (get-face-at " xxx" ) 'font-lock-variable-name-face ))))
763
+
764
+ (ert-deftest font-lock/funargs--arrow--multiline--with-type--newline-before-first-after-last ()
765
+ (test-with-fontified-buffer
766
+ " const test = (
767
+ aaa: Foo,
768
+ bbb: Bar
769
+ ): void => {}"
770
+ (should (eq (get-face-at " aaa" ) 'font-lock-variable-name-face ))
771
+ (should (eq (get-face-at " bbb" ) 'font-lock-variable-name-face ))
772
+ (should (eq (get-face-at " Foo" ) 'font-lock-type-face ))
773
+ (should (eq (get-face-at " Bar" ) 'font-lock-type-face ))))
774
+
775
+ (ert-deftest font-lock/funargs--arrow--multiline--with-type--newline-before-first-after-last--hanging-comma ()
776
+ (test-with-fontified-buffer
777
+ " const test = (
778
+ aaa: Foo,
779
+ bbb: Bar,
780
+ ): void => {}"
781
+ (should (eq (get-face-at " aaa" ) 'font-lock-variable-name-face ))
782
+ (should (eq (get-face-at " bbb" ) 'font-lock-variable-name-face ))
783
+ (should (eq (get-face-at " Foo" ) 'font-lock-type-face ))
784
+ (should (eq (get-face-at " Bar" ) 'font-lock-type-face ))))
785
+
786
+ (ert-deftest font-lock/funargs--method--multiline--with-type ()
787
+ (test-with-fontified-buffer
788
+ " class Foo { foo(
789
+ aaa: Foo,
790
+ bbb: Bar,
791
+ ): void {}"
792
+ (should (eq (get-face-at " aaa" ) 'font-lock-variable-name-face ))
793
+ (should (eq (get-face-at " bbb" ) 'font-lock-variable-name-face ))
794
+ (should (eq (get-face-at " Foo" ) 'font-lock-type-face ))
795
+ (should (eq (get-face-at " Bar" ) 'font-lock-type-face ))))
796
+
797
+ (ert-deftest font-lock/funargs--method--single-line--with-type ()
798
+ (test-with-fontified-buffer
799
+ " class Foo { foo(aaa: Foo,bbb: Bar,): void {}"
800
+ (should (eq (get-face-at " aaa" ) 'font-lock-variable-name-face ))
801
+ (should (eq (get-face-at " bbb" ) 'font-lock-variable-name-face ))
802
+ (should (eq (get-face-at " Foo" ) 'font-lock-type-face ))
803
+ (should (eq (get-face-at " Bar" ) 'font-lock-type-face ))))
804
+
805
+ (ert-deftest font-lock/funargs--method--single-line--no-type ()
806
+ (test-with-fontified-buffer
807
+ " class Foo { foo(aaa, bbb): void {}"
808
+ (should (eq (get-face-at " aaa" ) 'font-lock-variable-name-face ))
809
+ (should (eq (get-face-at " bbb" ) 'font-lock-variable-name-face ))))
810
+
811
+ (ert-deftest font-lock/funargs--method--single-line--no-return-type ()
812
+ (test-with-fontified-buffer
813
+ " class Foo { foo(aaa, bbb) {}"
814
+ (should (eq (get-face-at " aaa" ) 'font-lock-variable-name-face ))
815
+ (should (eq (get-face-at " bbb" ) 'font-lock-variable-name-face ))))
816
+
660
817
(defun flyspell-predicate-test (search-for )
661
818
" This function runs a test on
662
819
`typescript--flyspell-mode-predicate' . `SEARCH-FOR' is a string
0 commit comments