eolian_mono: Generate proper doc refs for Constants
authorXavi Artigas <xavierartigas@yahoo.es>
Thu, 28 Feb 2019 09:38:47 +0000 (10:38 +0100)
committerWonki Kim <wonki_.kim@samsung.com>
Fri, 8 Mar 2019 11:49:37 +0000 (20:49 +0900)
Summary:
Support for global constant variables has been recently added to the C# bindings.
This patch fixes doc references so they use the proper name.
This brings the mono doc warnings from 71 down to 29.

Depends on D8048

Test Plan:
Just build and see less doc warnings when building the C# bindings.
Also, doc refs to constants are links now.

Reviewers: lauromoura, vitor.sousa

Reviewed By: lauromoura

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8051

src/bin/eolian_mono/eolian/mono/documentation.hh

index c00b449..764ecb8 100644 (file)
@@ -135,6 +135,18 @@ struct documentation_generator
          case ::EOLIAN_OBJECT_FUNCTION:
            ref += function_conversion(data, (const ::Eolian_Function *)data2, name_tail);
            break;
+         case ::EOLIAN_OBJECT_VARIABLE:
+           if (::eolian_variable_type_get((::Eolian_Variable *)data) == ::EOLIAN_VAR_CONSTANT)
+             {
+                auto names = utils::split(name_helpers::managed_namespace(::eolian_object_name_get(data)), '.');
+                names.pop_back(); // Remove var name
+                ref = name_helpers::join_namespaces(names, '.');
+                ref += "Constants.";
+                ref += name_helpers::managed_name(::eolian_object_short_name_get(data));
+             }
+           // Otherwise, do nothing and no <see> tag will be generated. Because, who would
+           // reference a global (non-constant) variable in the docs?
+           break;
          case ::EOLIAN_OBJECT_UNKNOWN:
            // If the reference cannot be resolved, just return an empty string and
            // it won't be converted into a <see> tag.