@@ -604,14 +604,20 @@ void EditorHelp::_add_method(const DocData::MethodDoc &p_method, bool p_overview
604
604
for (int j = 0 ; j < p_method.arguments .size (); j++) {
605
605
const DocData::ArgumentDoc &argument = p_method.arguments [j];
606
606
607
- class_desc->push_color (theme_cache.text_color );
608
-
609
607
if (j > 0 ) {
608
+ class_desc->push_color (theme_cache.symbol_color );
610
609
class_desc->add_text (" , " );
610
+ class_desc->pop (); // color
611
611
}
612
612
613
+ class_desc->push_color (theme_cache.text_color );
613
614
class_desc->add_text (argument.name );
615
+ class_desc->pop (); // color
616
+
617
+ class_desc->push_color (theme_cache.symbol_color );
614
618
class_desc->add_text (colon_nbsp);
619
+ class_desc->pop (); // color
620
+
615
621
_add_type (argument.type , argument.enumeration , argument.is_bitfield );
616
622
617
623
if (!argument.default_value .is_empty ()) {
@@ -623,20 +629,34 @@ void EditorHelp::_add_method(const DocData::MethodDoc &p_method, bool p_overview
623
629
class_desc->add_text (_fix_constant (argument.default_value ));
624
630
class_desc->pop (); // color
625
631
}
626
-
627
- class_desc->pop (); // color
628
632
}
629
633
630
634
if (is_vararg) {
631
635
if (!p_method.arguments .is_empty ()) {
632
- class_desc->push_color (theme_cache.text_color );
636
+ class_desc->push_color (theme_cache.symbol_color );
633
637
class_desc->add_text (" , " );
634
638
class_desc->pop (); // color
635
639
}
636
640
637
641
class_desc->push_color (theme_cache.symbol_color );
638
642
class_desc->add_text (" ..." );
639
643
class_desc->pop (); // color
644
+
645
+ const DocData::ArgumentDoc &rest_argument = p_method.rest_argument ;
646
+
647
+ class_desc->push_color (theme_cache.text_color );
648
+ class_desc->add_text (rest_argument.name .is_empty () ? " args" : rest_argument.name );
649
+ class_desc->pop (); // color
650
+
651
+ class_desc->push_color (theme_cache.symbol_color );
652
+ class_desc->add_text (colon_nbsp);
653
+ class_desc->pop (); // color
654
+
655
+ if (rest_argument.type .is_empty ()) {
656
+ _add_type (" Array" );
657
+ } else {
658
+ _add_type (rest_argument.type , rest_argument.enumeration , rest_argument.is_bitfield );
659
+ }
640
660
}
641
661
642
662
class_desc->push_color (theme_cache.symbol_color );
@@ -1568,14 +1588,20 @@ void EditorHelp::_update_doc() {
1568
1588
for (int j = 0 ; j < signal .arguments .size (); j++) {
1569
1589
const DocData::ArgumentDoc &argument = signal .arguments [j];
1570
1590
1571
- class_desc->push_color (theme_cache.text_color );
1572
-
1573
1591
if (j > 0 ) {
1592
+ class_desc->push_color (theme_cache.symbol_color );
1574
1593
class_desc->add_text (" , " );
1594
+ class_desc->pop (); // color
1575
1595
}
1576
1596
1597
+ class_desc->push_color (theme_cache.text_color );
1577
1598
class_desc->add_text (argument.name );
1599
+ class_desc->pop (); // color
1600
+
1601
+ class_desc->push_color (theme_cache.symbol_color );
1578
1602
class_desc->add_text (colon_nbsp);
1603
+ class_desc->pop (); // color
1604
+
1579
1605
_add_type (argument.type , argument.enumeration , argument.is_bitfield );
1580
1606
1581
1607
// Signals currently do not support default argument values, neither the core nor GDScript.
@@ -1589,8 +1615,6 @@ void EditorHelp::_update_doc() {
1589
1615
class_desc->add_text (_fix_constant (argument.default_value ));
1590
1616
class_desc->pop (); // color
1591
1617
}
1592
-
1593
- class_desc->pop (); // color
1594
1618
}
1595
1619
1596
1620
class_desc->push_color (theme_cache.symbol_color );
@@ -2012,14 +2036,20 @@ void EditorHelp::_update_doc() {
2012
2036
for (int j = 0 ; j < annotation.arguments .size (); j++) {
2013
2037
const DocData::ArgumentDoc &argument = annotation.arguments [j];
2014
2038
2015
- class_desc->push_color (theme_cache.text_color );
2016
-
2017
2039
if (j > 0 ) {
2040
+ class_desc->push_color (theme_cache.symbol_color );
2018
2041
class_desc->add_text (" , " );
2042
+ class_desc->pop (); // color
2019
2043
}
2020
2044
2045
+ class_desc->push_color (theme_cache.text_color );
2021
2046
class_desc->add_text (argument.name );
2047
+ class_desc->pop (); // color
2048
+
2049
+ class_desc->push_color (theme_cache.symbol_color );
2022
2050
class_desc->add_text (colon_nbsp);
2051
+ class_desc->pop (); // color
2052
+
2023
2053
_add_type (argument.type , argument.enumeration , argument.is_bitfield );
2024
2054
2025
2055
if (!argument.default_value .is_empty ()) {
@@ -2031,20 +2061,34 @@ void EditorHelp::_update_doc() {
2031
2061
class_desc->add_text (_fix_constant (argument.default_value ));
2032
2062
class_desc->pop (); // color
2033
2063
}
2034
-
2035
- class_desc->pop (); // color
2036
2064
}
2037
2065
2038
2066
if (annotation.qualifiers .contains (" vararg" )) {
2039
2067
if (!annotation.arguments .is_empty ()) {
2040
- class_desc->push_color (theme_cache.text_color );
2068
+ class_desc->push_color (theme_cache.symbol_color );
2041
2069
class_desc->add_text (" , " );
2042
2070
class_desc->pop (); // color
2043
2071
}
2044
2072
2045
2073
class_desc->push_color (theme_cache.symbol_color );
2046
2074
class_desc->add_text (" ..." );
2047
2075
class_desc->pop (); // color
2076
+
2077
+ const DocData::ArgumentDoc &rest_argument = annotation.rest_argument ;
2078
+
2079
+ class_desc->push_color (theme_cache.text_color );
2080
+ class_desc->add_text (rest_argument.name .is_empty () ? " args" : rest_argument.name );
2081
+ class_desc->pop (); // color
2082
+
2083
+ class_desc->push_color (theme_cache.symbol_color );
2084
+ class_desc->add_text (colon_nbsp);
2085
+ class_desc->pop (); // color
2086
+
2087
+ if (rest_argument.type .is_empty ()) {
2088
+ _add_type (" Array" );
2089
+ } else {
2090
+ _add_type (rest_argument.type , rest_argument.enumeration , rest_argument.is_bitfield );
2091
+ }
2048
2092
}
2049
2093
2050
2094
class_desc->push_color (theme_cache.symbol_color );
@@ -3519,10 +3563,13 @@ EditorHelpBit::HelpData EditorHelpBit::_get_method_help_data(const StringName &p
3519
3563
}
3520
3564
current.doc_type = { method.return_type , method.return_enum , method.return_is_bitfield };
3521
3565
for (const DocData::ArgumentDoc &argument : method.arguments ) {
3522
- const DocType argument_type = { argument.type , argument.enumeration , argument.is_bitfield };
3523
- current.arguments .push_back ({ argument.name , argument_type , argument.default_value });
3566
+ const DocType argument_doc_type = { argument.type , argument.enumeration , argument.is_bitfield };
3567
+ current.arguments .push_back ({ argument.name , argument_doc_type , argument.default_value });
3524
3568
}
3525
3569
current.qualifiers = method.qualifiers ;
3570
+ const DocData::ArgumentDoc &rest_argument = method.rest_argument ;
3571
+ const DocType rest_argument_doc_type = { rest_argument.type , rest_argument.enumeration , rest_argument.is_bitfield };
3572
+ current.rest_argument = { rest_argument.name , rest_argument_doc_type, rest_argument.default_value };
3526
3573
3527
3574
if (method.name == p_method_name) {
3528
3575
result = current;
@@ -3684,6 +3731,7 @@ void EditorHelpBit::_update_labels() {
3684
3731
3685
3732
title->pop (); // font
3686
3733
3734
+ const Color text_color = get_theme_color (SNAME (" text_color" ), SNAME (" EditorHelp" ));
3687
3735
const Color symbol_color = get_theme_color (SNAME (" symbol_color" ), SNAME (" EditorHelp" ));
3688
3736
const Color value_color = get_theme_color (SNAME (" value_color" ), SNAME (" EditorHelp" ));
3689
3737
const Color qualifier_color = get_theme_color (SNAME (" qualifier_color" ), SNAME (" EditorHelp" ));
@@ -3759,10 +3807,14 @@ void EditorHelpBit::_update_labels() {
3759
3807
const ArgumentData &argument = help_data.arguments [i];
3760
3808
3761
3809
if (i > 0 ) {
3810
+ title->push_color (symbol_color);
3762
3811
title->add_text (" , " );
3812
+ title->pop (); // color
3763
3813
}
3764
3814
3815
+ title->push_color (text_color);
3765
3816
title->add_text (argument.name );
3817
+ title->pop (); // color
3766
3818
3767
3819
title->push_color (symbol_color);
3768
3820
title->add_text (colon_nbsp);
@@ -3783,12 +3835,30 @@ void EditorHelpBit::_update_labels() {
3783
3835
3784
3836
if (help_data.qualifiers .contains (" vararg" )) {
3785
3837
if (!help_data.arguments .is_empty ()) {
3838
+ title->push_color (symbol_color);
3786
3839
title->add_text (" , " );
3840
+ title->pop (); // color
3787
3841
}
3788
3842
3789
3843
title->push_color (symbol_color);
3790
3844
title->add_text (" ..." );
3791
3845
title->pop (); // color
3846
+
3847
+ const ArgumentData &rest_argument = help_data.rest_argument ;
3848
+
3849
+ title->push_color (text_color);
3850
+ title->add_text (rest_argument.name .is_empty () ? " args" : rest_argument.name );
3851
+ title->pop (); // color
3852
+
3853
+ title->push_color (symbol_color);
3854
+ title->add_text (colon_nbsp);
3855
+ title->pop (); // color
3856
+
3857
+ if (rest_argument.doc_type .type .is_empty ()) {
3858
+ _add_type_to_title ({ " Array" , " " , false });
3859
+ } else {
3860
+ _add_type_to_title (rest_argument.doc_type );
3861
+ }
3792
3862
}
3793
3863
3794
3864
title->push_color (symbol_color);
0 commit comments