diff --git a/src/bin/eolian_mono/eolian/mono/alias_definition.hh b/src/bin/eolian_mono/eolian/mono/alias_definition.hh index 12d9ce78f9..d4a4b5d47f 100644 --- a/src/bin/eolian_mono/eolian/mono/alias_definition.hh +++ b/src/bin/eolian_mono/eolian/mono/alias_definition.hh @@ -62,8 +62,8 @@ struct alias_definition_generator << scope_tab << "public static implicit operator " << alias_type << "(" << alias_name << " value)\n" << scope_tab << "{\n" << scope_tab << scope_tab << "return value.payload;\n" - << scope_tab << "}\n\n" - << "}\n\n" + << scope_tab << "}\n" + << "}\n" ).generate(sink, alias, context)) return false; diff --git a/src/bin/eolian_mono/eolian/mono/documentation.hh b/src/bin/eolian_mono/eolian/mono/documentation.hh index 2b4ed87a8d..234ce49430 100644 --- a/src/bin/eolian_mono/eolian/mono/documentation.hh +++ b/src/bin/eolian_mono/eolian/mono/documentation.hh @@ -23,7 +23,7 @@ struct documentation_generator int scope_size = 0; - documentation_generator(int scope_size) + documentation_generator(int scope_size = 0) : scope_size(scope_size) {} @@ -595,9 +595,8 @@ struct documentation_generator else ref = ""; - if (!as_generator( - scope_tab << "/// " << summary << " See " << ref << "\n" - ).generate(sink, param, context)) + if (!as_generator(scope_tab(scope_size) << "/// " << summary << " See " << ref << "\n") + .generate(sink, param, context)) return false; } return true; diff --git a/src/bin/eolian_mono/eolian/mono/enum_definition.hh b/src/bin/eolian_mono/eolian/mono/enum_definition.hh index 4dae3cc7aa..c5ab79ae66 100644 --- a/src/bin/eolian_mono/eolian/mono/enum_definition.hh +++ b/src/bin/eolian_mono/eolian/mono/enum_definition.hh @@ -45,7 +45,7 @@ struct enum_definition_generator return false; } - if(!as_generator("}\n\n").generate(sink, attributes::unused, context)) return false; + if(!as_generator("}\n").generate(sink, attributes::unused, context)) return false; if(!name_helpers::close_namespaces(sink, enum_.namespaces, context)) return false; diff --git a/src/bin/eolian_mono/eolian/mono/events.hh b/src/bin/eolian_mono/eolian/mono/events.hh index 14a7f9b5ce..6c5f12ea2a 100644 --- a/src/bin/eolian_mono/eolian/mono/events.hh +++ b/src/bin/eolian_mono/eolian/mono/events.hh @@ -255,7 +255,7 @@ struct event_argument_wrapper_generator << scope_tab << "/// Actual event payload.\n" << scope_tab << "/// " << documentation_string << "\n" << scope_tab << "public " << type << " arg { get; set; }\n" - << "}\n" + << "}\n\n" ).generate(sink, std::make_tuple(evt.documentation.summary, *etype), context); } } const event_argument_wrapper {}; @@ -279,9 +279,8 @@ struct event_declaration_generator if (evt.type.is_engaged()) wrapper_args_type = "<" + name_helpers::managed_event_args_name(evt) + ">"; - if (!as_generator( - documentation(1) - ).generate(sink, evt, context)) return false; + if (!as_generator(documentation(1)) + .generate(sink, evt, context)) return false; if (evt.type.is_engaged()) if (!as_generator( scope_tab << "/// \n" @@ -427,7 +426,7 @@ struct event_definition_generator << scope_tab << scope_tab << scope_tab << "return;\n" << scope_tab << scope_tab << "}\n\n" << event_native_call - << scope_tab << "}\n" + << scope_tab << "}\n\n" ).generate(sink, nullptr, context)) return false; @@ -479,7 +478,7 @@ struct event_definition_generator << scope_tab << scope_tab << scope_tab << scope_tab << "RemoveNativeEventHandler(" << library_name << ", key, value);\n" << scope_tab << scope_tab << scope_tab << "}\n" // End of lock block << scope_tab << scope_tab << "}\n" - << scope_tab << "}\n" + << scope_tab << "}\n\n" ).generate(sink, attributes::unused, context); } }; diff --git a/src/bin/eolian_mono/eolian/mono/function_declaration.hh b/src/bin/eolian_mono/eolian/mono/function_declaration.hh index 4532746be2..734700c676 100644 --- a/src/bin/eolian_mono/eolian/mono/function_declaration.hh +++ b/src/bin/eolian_mono/eolian/mono/function_declaration.hh @@ -27,11 +27,11 @@ struct function_declaration_generator if(f.scope != attributes::member_scope::scope_public) return true; - if(!as_generator(documentation).generate(sink, f, context)) + if(!as_generator(documentation(1)).generate(sink, f, context)) return false; return as_generator - (eolian_mono::type(true) << " " << string << "(" << (parameter % ", ") << ");\n") + (scope_tab << eolian_mono::type(true) << " " << string << "(" << (parameter % ", ") << ");\n\n") .generate(sink, std::make_tuple(f.return_type, name_helpers::managed_method_name(f), f.parameters), context); } }; diff --git a/src/bin/eolian_mono/eolian/mono/function_definition.hh b/src/bin/eolian_mono/eolian/mono/function_definition.hh index a0f28df305..df72f2ce6c 100644 --- a/src/bin/eolian_mono/eolian/mono/function_definition.hh +++ b/src/bin/eolian_mono/eolian/mono/function_definition.hh @@ -119,7 +119,7 @@ struct native_function_definition_generator << indent << scope_tab << "var ws = Efl.Eo.Globals.GetWrapperSupervisor(obj);\n" << indent << scope_tab << "if (ws != null)\n" << indent << scope_tab << "{\n" - << eolian_mono::native_function_definition_preamble() + << indent << scope_tab << scope_tab << eolian_mono::native_function_definition_preamble() << "\n" << indent << scope_tab << scope_tab << "try\n" << indent << scope_tab << scope_tab << "{\n" << indent << scope_tab << scope_tab << scope_tab << (return_type != "void" ? "_ret_var = " : "") @@ -131,7 +131,7 @@ struct native_function_definition_generator << indent << scope_tab << scope_tab << scope_tab << "Eina.Log.Warning($\"Callback error: {e.ToString()}\");\n" << indent << scope_tab << scope_tab << scope_tab << "Eina.Error.Set(Eina.Error.UNHANDLED_EXCEPTION);\n" << indent << scope_tab << scope_tab << "}\n\n" - << eolian_mono::native_function_definition_epilogue(*klass) << "\n" + << indent << eolian_mono::native_function_definition_epilogue(*klass) << "\n" << indent << scope_tab << "}\n" << indent << scope_tab << "else\n" << indent << scope_tab << "{\n" @@ -204,14 +204,14 @@ struct function_definition_generator if(!as_generator (scope_tab << eolian_mono::function_scope_get(f) << ((do_super && !f.is_static) ? "virtual " : "") << (f.is_static ? "static " : "") << return_type << " " << string << "(" << (parameter % ", ") - << ") {\n " - << eolian_mono::function_definition_preamble() + << ") {\n" + << scope_tab(2) << eolian_mono::function_definition_preamble() << klass_full_native_inherit_name(f.klass) << "." << string << "_ptr.Value.Delegate(" << self << ((!f.is_static && (f.parameters.size() > 0)) ? "," : "") << (argument_invocation % ", ") << ");\n" - << eolian_mono::function_definition_epilogue() - << " }\n") + << scope_tab(2) << eolian_mono::function_definition_epilogue() + << scope_tab(1) << "}\n\n") .generate(sink, std::make_tuple(name_helpers::managed_method_name(f), f.parameters, f, f.c_name, f.parameters, f), context)) return false; @@ -268,11 +268,11 @@ struct property_extension_method_definition_generator if (property.setter.is_engaged()) { attributes::type_def prop_type = property.setter->parameters[0].type; - if (!as_generator("public static Efl.BindableProperty<" << type(true) << "> " << managed_name << "(this Efl.Ui.ItemFactory fac, Efl.Csharp.ExtensionTag<" - << name_helpers::klass_full_concrete_or_interface_name(cls) - << ", T>magic = null) where T : " << name_helpers::klass_full_concrete_or_interface_name(cls) << " {\n" + if (!as_generator(scope_tab << "public static Efl.BindableProperty<" << type(true) << "> " << managed_name << "(this Efl.Ui.ItemFactory fac, Efl.Csharp.ExtensionTag<" + << name_helpers::klass_full_concrete_or_interface_name(cls) + << ", T>magic = null) where T : " << name_helpers::klass_full_concrete_or_interface_name(cls) << " {\n" << scope_tab << scope_tab << "return new Efl.BindableProperty<" << type(true) << ">(\"" << property.name << "\", fac);\n" - << scope_tab << "}\n" + << scope_tab << "}\n\n" ).generate(sink, std::make_tuple(prop_type, prop_type), context)) return false; } @@ -285,11 +285,11 @@ struct property_extension_method_definition_generator if (property.setter.is_engaged()) { attributes::type_def prop_type = property.setter->parameters[0].type; - if (!as_generator("public static Efl.BindableProperty<" << type(true) << "> " << managed_name << "(this Efl.BindablePart part, Efl.Csharp.ExtensionTag<" - << name_helpers::klass_full_concrete_or_interface_name(cls) - << ", T>magic = null) where T : " << name_helpers::klass_full_concrete_or_interface_name(cls) << " {\n" + if (!as_generator(scope_tab << "public static Efl.BindableProperty<" << type(true) << "> " << managed_name << "(this Efl.BindablePart part, Efl.Csharp.ExtensionTag<" + << name_helpers::klass_full_concrete_or_interface_name(cls) + << ", T>magic = null) where T : " << name_helpers::klass_full_concrete_or_interface_name(cls) << " {\n" << scope_tab << scope_tab << "return new Efl.BindableProperty<" << type(true) << ">(part.PartName, \"" << property.name << "\", part.Binder);\n" - << scope_tab << "}\n" + << scope_tab << "}\n\n" ).generate(sink, std::make_tuple(prop_type, prop_type), context)) return false; } @@ -522,7 +522,7 @@ struct property_wrapper_definition_generator return false; } - if (!as_generator(scope_tab << "}\n").generate(sink, attributes::unused, context)) + if (!as_generator(scope_tab << "}\n\n").generate(sink, attributes::unused, context)) return false; return true; diff --git a/src/bin/eolian_mono/eolian/mono/function_helpers.hh b/src/bin/eolian_mono/eolian/mono/function_helpers.hh index 5f7cf67877..26146f7774 100644 --- a/src/bin/eolian_mono/eolian/mono/function_helpers.hh +++ b/src/bin/eolian_mono/eolian/mono/function_helpers.hh @@ -34,14 +34,14 @@ struct native_function_definition_preamble_generator return false; if (!as_generator( - *(scope_tab << scope_tab << native_convert_in_variable) - << *(scope_tab << scope_tab << native_convert_out_variable) - << *(scope_tab << scope_tab << native_convert_function_pointer) - << scope_tab << scope_tab << scope_tab << native_convert_return_variable + *(native_convert_in_variable) + << *(native_convert_out_variable) + << *(native_convert_function_pointer) + << native_convert_return_variable ).generate(sink, std::make_tuple(f.parameters, f.parameters, f.parameters, f.return_type), context)) return false; - return as_generator("\n").generate(sink, attributes::unused, context); + return as_generator("").generate(sink, attributes::unused, context); } }; @@ -57,11 +57,11 @@ struct function_definition_preamble_generator return false; if (!as_generator( - *(scope_tab << scope_tab << convert_in_variable) - << *(scope_tab << scope_tab << convert_out_variable) - << *(scope_tab << scope_tab << convert_function_pointer) - << scope_tab << scope_tab << convert_return_variable - ).generate(sink, std::make_tuple(f.parameters, f.parameters, f.parameters, f.return_type), context)) + *(convert_in_variable) + << *(convert_out_variable) + << *(convert_function_pointer) + << convert_return_variable + ).generate(sink, std::make_tuple(f.parameters, f.parameters, f.parameters, f.return_type), context)) return false; return true; @@ -82,9 +82,9 @@ struct native_function_definition_epilogue_generator return false; if (!as_generator( - *(scope_tab << scope_tab << native_convert_out_assign(*klass)) - << *(scope_tab << scope_tab << native_convert_in_ptr_assign) - << scope_tab << scope_tab << native_convert_return(*klass) + *(native_convert_out_assign(*klass)) + << *(native_convert_in_ptr_assign) + << scope_tab(2) << native_convert_return(*klass) ).generate(sink, std::make_tuple(f.parameters, f.parameters, f.return_type), context)) return false; @@ -99,10 +99,10 @@ struct function_definition_epilogue_generator bool generate(OutputIterator sink, attributes::function_def const& f, Context const& context) const { if (!as_generator( - scope_tab << scope_tab << "Eina.Error.RaiseIfUnhandledException();\n" - << *(scope_tab << scope_tab << convert_out_assign) - << *(scope_tab << scope_tab << convert_in_ptr_assign) - << scope_tab << scope_tab << convert_return + "Eina.Error.RaiseIfUnhandledException();\n" + << *(convert_out_assign) + << *(convert_in_ptr_assign) + << scope_tab(2) << convert_return << "\n" ).generate(sink, std::make_tuple(f.parameters, f.parameters, f.return_type), context)) return false; diff --git a/src/bin/eolian_mono/eolian/mono/klass.hh b/src/bin/eolian_mono/eolian/mono/klass.hh index 80ac37c141..f33026444f 100644 --- a/src/bin/eolian_mono/eolian/mono/klass.hh +++ b/src/bin/eolian_mono/eolian/mono/klass.hh @@ -127,10 +127,10 @@ struct klass if(!as_generator("\n{\n").generate(sink, attributes::unused, iface_cxt)) return false; - if(!as_generator(*(scope_tab << function_declaration)).generate(sink, cls.functions, iface_cxt)) + if(!as_generator(*(function_declaration)).generate(sink, cls.functions, iface_cxt)) return false; - if(!as_generator(*(scope_tab << async_function_declaration)).generate(sink, cls.functions, iface_cxt)) + if(!as_generator(*(async_function_declaration)).generate(sink, cls.functions, iface_cxt)) return false; if(!as_generator(*(event_declaration)).generate(sink, cls.events, iface_cxt)) @@ -147,7 +147,7 @@ struct klass return false; // End of interface declaration - if(!as_generator("}\n").generate(sink, attributes::unused, iface_cxt)) return false; + if(!as_generator("}\n\n").generate(sink, attributes::unused, iface_cxt)) return false; } // Events arguments go in the top namespace to avoid the Concrete suffix clutter in interface events. @@ -213,7 +213,7 @@ struct klass ( scope_tab << "[System.Runtime.InteropServices.DllImport(" << context_find_tag(concrete_cxt).actual_library_name(cls.filename) << ")] internal static extern System.IntPtr\n" - << scope_tab << scope_tab << name_helpers::klass_get_name(cls) << "();\n" + << scope_tab << scope_tab << name_helpers::klass_get_name(cls) << "();\n\n" << scope_tab << "/// Initializes a new instance of the class.\n" << scope_tab << "/// Internal usage: This is used when interacting with C code and should not be used directly.\n" << scope_tab << "/// The native pointer to be wrapped.\n" @@ -262,7 +262,7 @@ struct klass scope_tab << "private static IntPtr GetEflClassStatic()\n" << scope_tab << "{\n" << scope_tab << scope_tab << "return " << name_helpers::klass_get_full_name(cls) << "();\n" - << scope_tab << "}\n" + << scope_tab << "}\n\n" ).generate(sink, attributes::unused, concrete_cxt)) return false; @@ -342,7 +342,7 @@ struct klass scope_tab << "private static IntPtr GetEflClassStatic()\n" << scope_tab << "{\n" << scope_tab << scope_tab << "return " << name_helpers::klass_get_full_name(cls) << "();\n" - << scope_tab << "}\n" + << scope_tab << "}\n\n" ).generate(sink, attributes::unused, inherit_cxt)) return false; @@ -370,8 +370,8 @@ struct klass << "#pragma warning disable CS1591\n" // Disabling warnings as DocFx will hide these classes <<"public static class " << (string % "_") << name_helpers::klass_inherit_name(cls) << "_ExtensionMethods {\n" - << *((scope_tab << property_extension_method_definition(cls)) << "\n") - << *((scope_tab << part_extension_method_definition(cls)) << "\n") + << *(property_extension_method_definition(cls)) + << *(part_extension_method_definition(cls)) << "}\n" << "#pragma warning restore CS1591\n" << "#endif\n") @@ -416,7 +416,7 @@ struct klass { if(!as_generator( indent << scope_tab << "private static Efl.Eo.NativeModule Module = new Efl.Eo.NativeModule(" - << indent << context_find_tag(context).actual_library_name(cls.filename) << ");\n" + << context_find_tag(context).actual_library_name(cls.filename) << ");\n\n" ).generate(sink, attributes::unused, inative_cxt)) return false; } @@ -466,7 +466,7 @@ struct klass if(!as_generator( indent << scope_tab << scope_tab << "return descs;\n" - << indent << scope_tab << "}\n" + << indent << scope_tab << "}\n\n" ).generate(sink, attributes::unused, inative_cxt)) return false; @@ -532,7 +532,7 @@ struct klass if(!as_generator( scope_tab << "[System.Runtime.InteropServices.DllImport(" << context_find_tag(context).actual_library_name(cls.filename) << ")] internal static extern System.IntPtr\n" - << scope_tab << scope_tab << name_helpers::klass_get_name(cls) << "();\n" + << scope_tab << scope_tab << name_helpers::klass_get_name(cls) << "();\n\n" ).generate(sink, attributes::unused, context)) return false; @@ -607,7 +607,7 @@ struct klass return true; // Self events - if (!as_generator(*(event_definition(cls, cls))).generate(sink, cls.events, context)) + if (!as_generator(*(event_definition(cls, cls)) << "\n").generate(sink, cls.events, context)) return false; // Inherited events diff --git a/src/bin/eolian_mono/eolian/mono/name_helpers.hh b/src/bin/eolian_mono/eolian/mono/name_helpers.hh index e68de6bf66..08b2bc997a 100644 --- a/src/bin/eolian_mono/eolian/mono/name_helpers.hh +++ b/src/bin/eolian_mono/eolian/mono/name_helpers.hh @@ -508,7 +508,7 @@ bool open_namespaces(OutputIterator sink, std::vector namespaces, C template bool close_namespaces(OutputIterator sink, std::vector const& namespaces, Context const& context) { - auto close_namespace = (lit("}") % "\n\n" ) << "\n\n"; + auto close_namespace = (lit("}") % "\n" ) << "\n\n"; return as_generator(close_namespace).generate(sink, namespaces, context); } diff --git a/src/bin/eolian_mono/eolian/mono/parameter.hh b/src/bin/eolian_mono/eolian/mono/parameter.hh index 52afaf456e..4050c60866 100644 --- a/src/bin/eolian_mono/eolian/mono/parameter.hh +++ b/src/bin/eolian_mono/eolian/mono/parameter.hh @@ -1071,7 +1071,7 @@ struct convert_return_generator else if (helpers::need_struct_conversion(regular)) { return as_generator( - "return _ret_var;\n" + "return _ret_var;" ).generate(sink, nullptr, context); } else if (ret_type.c_type == "Eina_Binbuf *" || ret_type.c_type == "const Eina_Binbuf *") @@ -1119,7 +1119,7 @@ struct convert_return_generator } else if (ret_type.c_type != "void") { - return as_generator("return _ret_var;\n").generate(sink, ret_type, context); + return as_generator("return _ret_var;").generate(sink, ret_type, context); } return true; } @@ -1289,13 +1289,13 @@ struct native_convert_return_generator if (ret_type.is_ptr && helpers::need_pointer_conversion(regular) && !helpers::need_struct_conversion_in_return(ret_type, attributes::parameter_direction::unknown) ) { return as_generator( - "return Eina.PrimitiveConversion.ManagedToPointerAlloc(_ret_var);\n" + "return Eina.PrimitiveConversion.ManagedToPointerAlloc(_ret_var);" ).generate(sink, attributes::unused, context); } else if (helpers::need_struct_conversion(regular)) { return as_generator( - "return _ret_var;\n" + "return _ret_var;" ).generate(sink, nullptr, context); } else if (ret_type.c_type == "const char *") @@ -1308,12 +1308,12 @@ struct native_convert_return_generator return false; } return as_generator( - "return _ret_var;\n" + "return _ret_var;" ).generate(sink, attributes::unused, context); } else { - return as_generator("return _ret_var;\n" + return as_generator("return _ret_var;" ).generate(sink, attributes::unused, context); } } @@ -1326,12 +1326,12 @@ struct native_convert_return_generator return false; } return as_generator( - "return _ret_var;\n" + "return _ret_var;" ).generate(sink, attributes::unused, context); } else { - return as_generator("return _ret_var;\n") + return as_generator("return _ret_var;") .generate(sink, attributes::unused, context); } } @@ -1341,7 +1341,7 @@ struct native_convert_return_generator .generate(sink, attributes::unused, context)) return false; - return as_generator("return _ret_var.Handle;\n") + return as_generator("return _ret_var.Handle;") .generate(sink, attributes::unused, context); } else if (ret_type.c_type == "Eina_Hash *" || ret_type.c_type == "const Eina_Hash *") @@ -1359,7 +1359,7 @@ struct native_convert_return_generator .generate(sink, attributes::unused, context)) return false; - return as_generator("return _ret_var.Handle;\n") + return as_generator("return _ret_var.Handle;") .generate(sink, attributes::unused, context); } else if (ret_type.c_type == "Eina_Array *" || ret_type.c_type == "const Eina_Array *" @@ -1386,11 +1386,11 @@ struct native_convert_return_generator return false; } - return as_generator("return _ret_var.Handle;\n") + return as_generator("return _ret_var.Handle;") .generate(sink, attributes::unused, context); } else if (ret_type.c_type != "void") - return as_generator("return _ret_var;\n").generate(sink, ret_type, context); + return as_generator("return _ret_var;").generate(sink, ret_type, context); return true; } diff --git a/src/bin/eolian_mono/eolian/mono/part_definition.hh b/src/bin/eolian_mono/eolian/mono/part_definition.hh index 3569f438d5..f3811b96fc 100644 --- a/src/bin/eolian_mono/eolian/mono/part_definition.hh +++ b/src/bin/eolian_mono/eolian/mono/part_definition.hh @@ -60,7 +60,7 @@ struct part_extension_method_definition_generator << ", T> x=null) where T : " << name_helpers::klass_full_concrete_or_interface_name(cls) << "\n" << scope_tab << "{\n" << scope_tab << scope_tab << "return new " << bindableClass << "<" << part_klass_name << ">(\"" << part.name << "\" ,fac);\n" - << scope_tab << "}\n" + << scope_tab << "}\n\n" ).generate(sink, attributes::unused, context)) return false; diff --git a/src/bin/eolian_mono/eolian/mono/struct_definition.hh b/src/bin/eolian_mono/eolian/mono/struct_definition.hh index fe96e2d175..7fb4c0cf2f 100644 --- a/src/bin/eolian_mono/eolian/mono/struct_definition.hh +++ b/src/bin/eolian_mono/eolian/mono/struct_definition.hh @@ -370,12 +370,12 @@ struct struct_internal_definition_generator } if (!as_generator(indent << scope_tab << scope_tab << "return _external_struct;\n" - << indent << scope_tab << "}\n\n").generate(sink, nullptr, context)) + << indent << scope_tab << "}\n").generate(sink, nullptr, context)) return false; // close internal class - if(!as_generator(indent << "}\n\n" - << indent << "#pragma warning restore CS1591\n\n" + if(!as_generator(indent << "}\n" + << indent << "#pragma warning restore CS1591\n" ).generate(sink, attributes::unused, context)) return false; return true; diff --git a/src/bin/eolian_mono/eolian/mono/struct_fields.hh b/src/bin/eolian_mono/eolian/mono/struct_fields.hh index 02b2cbec6e..9a0225e9d1 100644 --- a/src/bin/eolian_mono/eolian/mono/struct_fields.hh +++ b/src/bin/eolian_mono/eolian/mono/struct_fields.hh @@ -42,7 +42,7 @@ struct field_argument_docs_generator template bool generate(OutputIterator sink, attributes::struct_field_def const& field, Context const& context) const { - if (!as_generator("/// " << documentation_string << "") + if (!as_generator(current_indentation(context) << "/// " << documentation_string << "") .generate(sink, std::make_tuple(name_helpers::to_field_name(field.name), field.documentation.summary), context)) return false; return true;