Skip to content

Commit 9fb12ac

Browse files
committed
Handle empty docstrings in macros
1 parent 24b2d92 commit 9fb12ac

File tree

1 file changed

+146
-152
lines changed

1 file changed

+146
-152
lines changed

src/configuration_builder.rs

Lines changed: 146 additions & 152 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,20 @@ impl From<PyConfigurationBuilder> for ConfigurationBuilder {
3131
}
3232

3333
macro_rules! wrap_fn {
34+
($name:tt, $rust_type:ty, $py_type:literal) => {
35+
#[pymethods]
36+
impl PyConfigurationBuilder {
37+
#[pyo3(signature = (value: $py_type) -> "ConfigurationBuilder")]
38+
fn $name<'a>(
39+
mut slf: PyRefMut<'a, Self>,
40+
value: $rust_type,
41+
) -> PyResult<PyRefMut<'a, Self>> {
42+
slf.0.$name(value);
43+
Ok(slf)
44+
}
45+
}
46+
};
47+
3448
($name:tt, $rust_type:ty, $py_type:literal, $doc:literal) => {
3549
#[pymethods]
3650
impl PyConfigurationBuilder {
@@ -48,6 +62,19 @@ macro_rules! wrap_fn {
4862
}
4963

5064
macro_rules! wrap_enum_fn {
65+
($name:tt, $rust_type:ty) => {
66+
#[pymethods]
67+
impl PyConfigurationBuilder {
68+
#[pyo3(signature = (value: "str") -> "ConfigurationBuilder")]
69+
fn $name<'a>(mut slf: PyRefMut<'a, Self>, value: &str) -> PyResult<PyRefMut<'a, Self>> {
70+
slf.0.$name(
71+
<$rust_type>::from_str(value)
72+
.unwrap_or_else(|_| panic!("Invalid enum value '{}'", &value)),
73+
);
74+
Ok(slf)
75+
}
76+
}
77+
};
5178
($name:tt, $rust_type:ty, $doc:literal) => {
5279
#[pymethods]
5380
impl PyConfigurationBuilder {
@@ -80,7 +107,7 @@ impl PyConfigurationBuilder {
80107
// Ok(slf)
81108
// }
82109

83-
/// Helper method to set the configuration to whats used for Deno.
110+
/// Helper method to set the configuration to what's used for Deno.
84111
#[pyo3(signature = () -> "ConfigurationBuilder")]
85112
fn deno<'a>(mut slf: PyRefMut<'a, Self>) -> PyResult<PyRefMut<'a, Self>> {
86113
slf.0.deno();
@@ -503,7 +530,7 @@ wrap_enum_fn!(
503530
wrap_enum_fn!(
504531
import_declaration_sort_named_imports,
505532
SortOrder,
506-
"Alphabetically sorts the import declarations named imports.\n\nDefault: Case insensitive"
533+
"Alphabetically sorts the import declaration's named imports.\n\nDefault: Case insensitive"
507534
);
508535

509536
wrap_enum_fn!(
@@ -515,7 +542,7 @@ wrap_enum_fn!(
515542
wrap_enum_fn!(
516543
export_declaration_sort_named_exports,
517544
SortOrder,
518-
"Alphabetically sorts the export declarations named exports.\n\nDefault: Case insensitive"
545+
"Alphabetically sorts the export declaration's named exports.\n\nDefault: Case insensitive"
519546
);
520547

521548
wrap_enum_fn!(
@@ -538,181 +565,148 @@ wrap_fn!(
538565
"The text to use for a file ignore comment (ex. ``\"dprint-ignore-file\"``).\n\nDefault: \"dprint-ignore-file\""
539566
);
540567

541-
wrap_enum_fn!(arrow_function_brace_position, BracePosition, "");
542-
wrap_enum_fn!(class_declaration_brace_position, BracePosition, "");
543-
wrap_enum_fn!(class_expression_brace_position, BracePosition, "");
544-
wrap_enum_fn!(constructor_brace_position, BracePosition, "");
545-
wrap_enum_fn!(do_while_statement_brace_position, BracePosition, "");
546-
wrap_enum_fn!(enum_declaration_brace_position, BracePosition, "");
547-
wrap_enum_fn!(for_statement_brace_position, BracePosition, "");
548-
wrap_enum_fn!(for_in_statement_brace_position, BracePosition, "");
549-
wrap_enum_fn!(for_of_statement_brace_position, BracePosition, "");
550-
wrap_enum_fn!(get_accessor_brace_position, BracePosition, "");
551-
wrap_enum_fn!(if_statement_brace_position, BracePosition, "");
552-
wrap_enum_fn!(interface_declaration_brace_position, BracePosition, "");
553-
wrap_enum_fn!(function_declaration_brace_position, BracePosition, "");
554-
wrap_enum_fn!(function_expression_brace_position, BracePosition, "");
555-
wrap_enum_fn!(method_brace_position, BracePosition, "");
556-
wrap_enum_fn!(module_declaration_brace_position, BracePosition, "");
557-
wrap_enum_fn!(set_accessor_brace_position, BracePosition, "");
558-
wrap_enum_fn!(static_block_brace_position, BracePosition, "");
559-
wrap_enum_fn!(switch_case_brace_position, BracePosition, "");
560-
wrap_enum_fn!(switch_statement_brace_position, BracePosition, "");
561-
wrap_enum_fn!(try_statement_brace_position, BracePosition, "");
562-
wrap_enum_fn!(while_statement_brace_position, BracePosition, "");
563-
wrap_enum_fn!(arguments_prefer_hanging, PreferHanging, "");
564-
wrap_enum_fn!(array_expression_prefer_hanging, PreferHanging, "");
565-
wrap_fn!(array_pattern_prefer_hanging, bool, "bool", "");
566-
wrap_fn!(do_while_statement_prefer_hanging, bool, "bool", "");
567-
wrap_fn!(export_declaration_prefer_hanging, bool, "bool", "");
568-
wrap_fn!(extends_clause_prefer_hanging, bool, "bool", "");
569-
wrap_fn!(for_in_statement_prefer_hanging, bool, "bool", "");
570-
wrap_fn!(for_of_statement_prefer_hanging, bool, "bool", "");
571-
wrap_fn!(for_statement_prefer_hanging, bool, "bool", "");
572-
wrap_fn!(if_statement_prefer_hanging, bool, "bool", "");
573-
wrap_fn!(implements_clause_prefer_hanging, bool, "bool", "");
574-
wrap_fn!(import_declaration_prefer_hanging, bool, "bool", "");
575-
wrap_fn!(jsx_attributes_prefer_hanging, bool, "bool", "");
576-
wrap_fn!(object_expression_prefer_hanging, bool, "bool", "");
577-
wrap_fn!(object_pattern_prefer_hanging, bool, "bool", "");
578-
wrap_enum_fn!(parameters_prefer_hanging, PreferHanging, "");
579-
wrap_fn!(sequence_expression_prefer_hanging, bool, "bool", "");
580-
wrap_fn!(switch_statement_prefer_hanging, bool, "bool", "");
581-
wrap_enum_fn!(tuple_type_prefer_hanging, PreferHanging, "");
582-
wrap_fn!(type_literal_prefer_hanging, bool, "bool", "");
583-
wrap_enum_fn!(type_parameters_prefer_hanging, PreferHanging, "");
584-
wrap_fn!(union_and_intersection_type_prefer_hanging, bool, "bool", "");
585-
wrap_fn!(variable_statement_prefer_hanging, bool, "bool", "");
586-
wrap_fn!(while_statement_prefer_hanging, bool, "bool", "");
587-
wrap_fn!(export_declaration_force_single_line, bool, "bool", "");
588-
wrap_fn!(import_declaration_force_single_line, bool, "bool", "");
589-
wrap_enum_fn!(export_declaration_force_multi_line, ForceMultiLine, "");
590-
wrap_enum_fn!(import_declaration_force_multi_line, ForceMultiLine, "");
591-
wrap_enum_fn!(enum_declaration_member_spacing, MemberSpacing, "");
568+
wrap_enum_fn!(arrow_function_brace_position, BracePosition);
569+
wrap_enum_fn!(class_declaration_brace_position, BracePosition);
570+
wrap_enum_fn!(class_expression_brace_position, BracePosition);
571+
wrap_enum_fn!(constructor_brace_position, BracePosition);
572+
wrap_enum_fn!(do_while_statement_brace_position, BracePosition);
573+
wrap_enum_fn!(enum_declaration_brace_position, BracePosition);
574+
wrap_enum_fn!(for_statement_brace_position, BracePosition);
575+
wrap_enum_fn!(for_in_statement_brace_position, BracePosition);
576+
wrap_enum_fn!(for_of_statement_brace_position, BracePosition);
577+
wrap_enum_fn!(get_accessor_brace_position, BracePosition);
578+
wrap_enum_fn!(if_statement_brace_position, BracePosition);
579+
wrap_enum_fn!(interface_declaration_brace_position, BracePosition);
580+
wrap_enum_fn!(function_declaration_brace_position, BracePosition);
581+
wrap_enum_fn!(function_expression_brace_position, BracePosition);
582+
wrap_enum_fn!(method_brace_position, BracePosition);
583+
wrap_enum_fn!(module_declaration_brace_position, BracePosition);
584+
wrap_enum_fn!(set_accessor_brace_position, BracePosition);
585+
wrap_enum_fn!(static_block_brace_position, BracePosition);
586+
wrap_enum_fn!(switch_case_brace_position, BracePosition);
587+
wrap_enum_fn!(switch_statement_brace_position, BracePosition);
588+
wrap_enum_fn!(try_statement_brace_position, BracePosition);
589+
wrap_enum_fn!(while_statement_brace_position, BracePosition);
590+
wrap_enum_fn!(arguments_prefer_hanging, PreferHanging);
591+
wrap_enum_fn!(array_expression_prefer_hanging, PreferHanging);
592+
wrap_fn!(array_pattern_prefer_hanging, bool, "bool");
593+
wrap_fn!(do_while_statement_prefer_hanging, bool, "bool");
594+
wrap_fn!(export_declaration_prefer_hanging, bool, "bool");
595+
wrap_fn!(extends_clause_prefer_hanging, bool, "bool");
596+
wrap_fn!(for_in_statement_prefer_hanging, bool, "bool");
597+
wrap_fn!(for_of_statement_prefer_hanging, bool, "bool");
598+
wrap_fn!(for_statement_prefer_hanging, bool, "bool");
599+
wrap_fn!(if_statement_prefer_hanging, bool, "bool");
600+
wrap_fn!(implements_clause_prefer_hanging, bool, "bool");
601+
wrap_fn!(import_declaration_prefer_hanging, bool, "bool");
602+
wrap_fn!(jsx_attributes_prefer_hanging, bool, "bool");
603+
wrap_fn!(object_expression_prefer_hanging, bool, "bool");
604+
wrap_fn!(object_pattern_prefer_hanging, bool, "bool");
605+
wrap_enum_fn!(parameters_prefer_hanging, PreferHanging);
606+
wrap_fn!(sequence_expression_prefer_hanging, bool, "bool");
607+
wrap_fn!(switch_statement_prefer_hanging, bool, "bool");
608+
wrap_enum_fn!(tuple_type_prefer_hanging, PreferHanging);
609+
wrap_fn!(type_literal_prefer_hanging, bool, "bool");
610+
wrap_enum_fn!(type_parameters_prefer_hanging, PreferHanging);
611+
wrap_fn!(union_and_intersection_type_prefer_hanging, bool, "bool");
612+
wrap_fn!(variable_statement_prefer_hanging, bool, "bool");
613+
wrap_fn!(while_statement_prefer_hanging, bool, "bool");
614+
wrap_fn!(export_declaration_force_single_line, bool, "bool");
615+
wrap_fn!(import_declaration_force_single_line, bool, "bool");
616+
wrap_enum_fn!(export_declaration_force_multi_line, ForceMultiLine);
617+
wrap_enum_fn!(import_declaration_force_multi_line, ForceMultiLine);
618+
wrap_enum_fn!(enum_declaration_member_spacing, MemberSpacing);
592619

593620
wrap_enum_fn!(
594621
if_statement_next_control_flow_position,
595-
NextControlFlowPosition,
596-
""
622+
NextControlFlowPosition
597623
);
598624

599625
wrap_enum_fn!(
600626
try_statement_next_control_flow_position,
601-
NextControlFlowPosition,
602-
""
627+
NextControlFlowPosition
603628
);
604629

605630
wrap_enum_fn!(
606631
do_while_statement_next_control_flow_position,
607-
NextControlFlowPosition,
608-
""
609-
);
610-
611-
wrap_enum_fn!(binary_expression_operator_position, OperatorPosition, "");
612-
613-
wrap_enum_fn!(
614-
conditional_expression_operator_position,
615-
OperatorPosition,
616-
""
632+
NextControlFlowPosition
617633
);
618634

619-
wrap_enum_fn!(conditional_type_operator_position, OperatorPosition, "");
620-
621-
wrap_enum_fn!(
622-
if_statement_single_body_position,
623-
SameOrNextLinePosition,
624-
""
625-
);
626-
627-
wrap_enum_fn!(
628-
for_statement_single_body_position,
629-
SameOrNextLinePosition,
630-
""
631-
);
635+
wrap_enum_fn!(binary_expression_operator_position, OperatorPosition);
636+
wrap_enum_fn!(conditional_expression_operator_position, OperatorPosition);
637+
wrap_enum_fn!(conditional_type_operator_position, OperatorPosition);
638+
wrap_enum_fn!(if_statement_single_body_position, SameOrNextLinePosition);
639+
wrap_enum_fn!(for_statement_single_body_position, SameOrNextLinePosition);
632640

633641
wrap_enum_fn!(
634642
for_in_statement_single_body_position,
635-
SameOrNextLinePosition,
636-
""
643+
SameOrNextLinePosition
637644
);
638645

639646
wrap_enum_fn!(
640647
for_of_statement_single_body_position,
641-
SameOrNextLinePosition,
642-
""
643-
);
644-
645-
wrap_enum_fn!(
646-
while_statement_single_body_position,
647-
SameOrNextLinePosition,
648-
""
648+
SameOrNextLinePosition
649649
);
650650

651-
wrap_enum_fn!(arguments_trailing_commas, TrailingCommas, "");
652-
wrap_enum_fn!(parameters_trailing_commas, TrailingCommas, "");
653-
wrap_enum_fn!(array_expression_trailing_commas, TrailingCommas, "");
654-
wrap_enum_fn!(array_pattern_trailing_commas, TrailingCommas, "");
655-
wrap_enum_fn!(enum_declaration_trailing_commas, TrailingCommas, "");
656-
wrap_enum_fn!(export_declaration_trailing_commas, TrailingCommas, "");
657-
wrap_enum_fn!(import_declaration_trailing_commas, TrailingCommas, "");
658-
wrap_enum_fn!(object_expression_trailing_commas, TrailingCommas, "");
659-
wrap_enum_fn!(object_pattern_trailing_commas, TrailingCommas, "");
660-
wrap_enum_fn!(tuple_type_trailing_commas, TrailingCommas, "");
651+
wrap_enum_fn!(while_statement_single_body_position, SameOrNextLinePosition);
652+
wrap_enum_fn!(arguments_trailing_commas, TrailingCommas);
653+
wrap_enum_fn!(parameters_trailing_commas, TrailingCommas);
654+
wrap_enum_fn!(array_expression_trailing_commas, TrailingCommas);
655+
wrap_enum_fn!(array_pattern_trailing_commas, TrailingCommas);
656+
wrap_enum_fn!(enum_declaration_trailing_commas, TrailingCommas);
657+
wrap_enum_fn!(export_declaration_trailing_commas, TrailingCommas);
658+
wrap_enum_fn!(import_declaration_trailing_commas, TrailingCommas);
659+
wrap_enum_fn!(object_expression_trailing_commas, TrailingCommas);
660+
wrap_enum_fn!(object_pattern_trailing_commas, TrailingCommas);
661+
wrap_enum_fn!(tuple_type_trailing_commas, TrailingCommas);
661662

662663
wrap_enum_fn!(
663664
type_literal_trailing_commas,
664665
TrailingCommas,
665666
"Only applies when using commas on type literals."
666667
);
667668

668-
wrap_enum_fn!(type_parameters_trailing_commas, TrailingCommas, "");
669-
wrap_enum_fn!(if_statement_use_braces, UseBraces, "");
670-
wrap_enum_fn!(for_statement_use_braces, UseBraces, "");
671-
wrap_enum_fn!(for_in_statement_use_braces, UseBraces, "");
672-
wrap_enum_fn!(for_of_statement_use_braces, UseBraces, "");
673-
wrap_enum_fn!(while_statement_use_braces, UseBraces, "");
674-
wrap_fn!(array_expression_prefer_single_line, bool, "bool", "");
675-
wrap_fn!(array_pattern_prefer_single_line, bool, "bool", "");
676-
wrap_fn!(arguments_prefer_single_line, bool, "bool", "");
677-
wrap_fn!(binary_expression_prefer_single_line, bool, "bool", "");
678-
wrap_fn!(computed_prefer_single_line, bool, "bool", "");
679-
wrap_fn!(conditional_expression_prefer_single_line, bool, "bool", "");
680-
wrap_fn!(conditional_type_prefer_single_line, bool, "bool", "");
681-
wrap_fn!(decorators_prefer_single_line, bool, "bool", "");
682-
wrap_fn!(export_declaration_prefer_single_line, bool, "bool", "");
683-
wrap_fn!(for_statement_prefer_single_line, bool, "bool", "");
684-
wrap_fn!(import_declaration_prefer_single_line, bool, "bool", "");
685-
wrap_fn!(jsx_attributes_prefer_single_line, bool, "bool", "");
686-
wrap_fn!(jsx_element_prefer_single_line, bool, "bool", "");
687-
wrap_fn!(mapped_type_prefer_single_line, bool, "bool", "");
688-
wrap_fn!(member_expression_prefer_single_line, bool, "bool", "");
689-
wrap_fn!(object_expression_prefer_single_line, bool, "bool", "");
690-
wrap_fn!(object_pattern_prefer_single_line, bool, "bool", "");
691-
wrap_fn!(parameters_prefer_single_line, bool, "bool", "");
692-
wrap_fn!(parentheses_prefer_single_line, bool, "bool", "");
693-
wrap_fn!(tuple_type_prefer_single_line, bool, "bool", "");
694-
wrap_fn!(type_literal_prefer_single_line, bool, "bool", "");
695-
wrap_fn!(type_parameters_prefer_single_line, bool, "bool", "");
696-
697-
wrap_fn!(
698-
union_and_intersection_type_prefer_single_line,
699-
bool,
700-
"bool",
701-
""
702-
);
703-
704-
wrap_fn!(variable_statement_prefer_single_line, bool, "bool", "");
705-
wrap_fn!(arguments_space_around, bool, "bool", "");
706-
wrap_fn!(array_expression_space_around, bool, "bool", "");
707-
wrap_fn!(array_pattern_space_around, bool, "bool", "");
708-
wrap_fn!(catch_clause_space_around, bool, "bool", "");
709-
wrap_fn!(do_while_statement_space_around, bool, "bool", "");
710-
wrap_fn!(for_in_statement_space_around, bool, "bool", "");
711-
wrap_fn!(for_of_statement_space_around, bool, "bool", "");
712-
wrap_fn!(for_statement_space_around, bool, "bool", "");
713-
wrap_fn!(if_statement_space_around, bool, "bool", "");
714-
wrap_fn!(parameters_space_around, bool, "bool", "");
715-
wrap_fn!(paren_expression_space_around, bool, "bool", "");
716-
wrap_fn!(switch_statement_space_around, bool, "bool", "");
717-
wrap_fn!(tuple_type_space_around, bool, "bool", "");
718-
wrap_fn!(while_statement_space_around, bool, "bool", "");
669+
wrap_enum_fn!(type_parameters_trailing_commas, TrailingCommas);
670+
wrap_enum_fn!(if_statement_use_braces, UseBraces);
671+
wrap_enum_fn!(for_statement_use_braces, UseBraces);
672+
wrap_enum_fn!(for_in_statement_use_braces, UseBraces);
673+
wrap_enum_fn!(for_of_statement_use_braces, UseBraces);
674+
wrap_enum_fn!(while_statement_use_braces, UseBraces);
675+
wrap_fn!(array_expression_prefer_single_line, bool, "bool");
676+
wrap_fn!(array_pattern_prefer_single_line, bool, "bool");
677+
wrap_fn!(arguments_prefer_single_line, bool, "bool");
678+
wrap_fn!(binary_expression_prefer_single_line, bool, "bool");
679+
wrap_fn!(computed_prefer_single_line, bool, "bool");
680+
wrap_fn!(conditional_expression_prefer_single_line, bool, "bool");
681+
wrap_fn!(conditional_type_prefer_single_line, bool, "bool");
682+
wrap_fn!(decorators_prefer_single_line, bool, "bool");
683+
wrap_fn!(export_declaration_prefer_single_line, bool, "bool");
684+
wrap_fn!(for_statement_prefer_single_line, bool, "bool");
685+
wrap_fn!(import_declaration_prefer_single_line, bool, "bool");
686+
wrap_fn!(jsx_attributes_prefer_single_line, bool, "bool");
687+
wrap_fn!(jsx_element_prefer_single_line, bool, "bool");
688+
wrap_fn!(mapped_type_prefer_single_line, bool, "bool");
689+
wrap_fn!(member_expression_prefer_single_line, bool, "bool");
690+
wrap_fn!(object_expression_prefer_single_line, bool, "bool");
691+
wrap_fn!(object_pattern_prefer_single_line, bool, "bool");
692+
wrap_fn!(parameters_prefer_single_line, bool, "bool");
693+
wrap_fn!(parentheses_prefer_single_line, bool, "bool");
694+
wrap_fn!(tuple_type_prefer_single_line, bool, "bool");
695+
wrap_fn!(type_literal_prefer_single_line, bool, "bool");
696+
wrap_fn!(type_parameters_prefer_single_line, bool, "bool");
697+
wrap_fn!(union_and_intersection_type_prefer_single_line, bool, "bool");
698+
wrap_fn!(variable_statement_prefer_single_line, bool, "bool");
699+
wrap_fn!(arguments_space_around, bool, "bool");
700+
wrap_fn!(array_expression_space_around, bool, "bool");
701+
wrap_fn!(array_pattern_space_around, bool, "bool");
702+
wrap_fn!(catch_clause_space_around, bool, "bool");
703+
wrap_fn!(do_while_statement_space_around, bool, "bool");
704+
wrap_fn!(for_in_statement_space_around, bool, "bool");
705+
wrap_fn!(for_of_statement_space_around, bool, "bool");
706+
wrap_fn!(for_statement_space_around, bool, "bool");
707+
wrap_fn!(if_statement_space_around, bool, "bool");
708+
wrap_fn!(parameters_space_around, bool, "bool");
709+
wrap_fn!(paren_expression_space_around, bool, "bool");
710+
wrap_fn!(switch_statement_space_around, bool, "bool");
711+
wrap_fn!(tuple_type_space_around, bool, "bool");
712+
wrap_fn!(while_statement_space_around, bool, "bool");

0 commit comments

Comments
 (0)