From 2ca5f0e72bf59e7f0a9e65f400d7070598e927d3 Mon Sep 17 00:00:00 2001 From: Todd Hansen <32498632+thansen24@users.noreply.github.com> Date: Sun, 15 Aug 2021 14:51:58 -0500 Subject: [PATCH] [C#] Respect command line parameter for file name extension and suffix (#6779) * Make CSharp use the command line parameter for file name extension and suffix * Default file name now has _generated in it, so we need to rename all the generated test files tests/namespace_test/NamespaceA/TableInC.* are no longer used, so these can be deleted * Fix C# testing projects so that they reference the new _generated.cs files * Revert "Fix C# testing projects so that they reference" This reverts commit cf62b9c5d446fc535e2b3808ddd92b5f4c00ce48. * Revert "Default file name now has _generated in it," This reverts commit 042aa81f1051a0f9556b4df360f08b3c9cd9ecc3. * Revert "Make CSharp use the command line parameter for file name extension and suffix" This reverts commit ba8cd06646e82029b5144b7c3c75c06fe2ea41da. * Make CSharp use the command line parameter for file name extension and suffix * Fixup clang tidy * Fix more clang-tidy --- src/idl_gen_csharp.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/idl_gen_csharp.cpp b/src/idl_gen_csharp.cpp index b0fc81b01..4ea2dba4f 100644 --- a/src/idl_gen_csharp.cpp +++ b/src/idl_gen_csharp.cpp @@ -65,7 +65,7 @@ class CSharpGenerator : public BaseGenerator { one_file_code += enumcode; } else { if (!SaveType(enum_def.name, *enum_def.defined_namespace, enumcode, - false)) + false, parser_.opts)) return false; } } @@ -81,14 +81,14 @@ class CSharpGenerator : public BaseGenerator { one_file_code += declcode; } else { if (!SaveType(struct_def.name, *struct_def.defined_namespace, declcode, - true)) + true, parser_.opts)) return false; } } if (parser_.opts.one_file) { return SaveType(file_name_, *parser_.current_namespace_, one_file_code, - true); + true, parser_.opts); } return true; } @@ -96,7 +96,8 @@ class CSharpGenerator : public BaseGenerator { // Save out the generated code for a single class while adding // declaration boilerplate. bool SaveType(const std::string &defname, const Namespace &ns, - const std::string &classcode, bool needs_includes) const { + const std::string &classcode, bool needs_includes, + const IDLOptions &options) const { if (!classcode.length()) return true; std::string code = @@ -117,7 +118,10 @@ class CSharpGenerator : public BaseGenerator { } code += classcode; if (!namespace_name.empty()) { code += "\n}\n"; } - auto filename = NamespaceDir(ns) + defname + ".cs"; + auto filename = NamespaceDir(ns) + defname; + if (options.one_file) { filename += options.filename_suffix; } + filename += + options.filename_extension.empty() ? ".cs" : options.filename_extension; return SaveFile(filename.c_str(), code, false); }