eolian-mono: Add documentation generation support
authorLauro Moura <lauromoura@expertisesolutions.com.br>
Thu, 7 Dec 2017 00:03:55 +0000 (21:03 -0300)
committerWonki Kim <wonki_.kim@samsung.com>
Wed, 10 Jan 2018 11:08:13 +0000 (20:08 +0900)
commit4400282cad2e2b72a2d7aecb75d2c78150ead441
tree3707e4a24f9690fdcbce35a874e6b0bc92adfc5c
parentdc12bb4a1422f4f76c4bd97b192f4175fe97c3ee
eolian-mono: Add documentation generation support

This commit adds the "documentation" generator, which gets the
documentation_def attribute of the given item and generates xml comments
to be exported by MCS.

For items requiring some customization of the generated comments (e.g.
functions and its parameters), the helpers to generate the preamble
(summary), body (paragraphs) and epilogue (currently just the @since
tag) were added.

Currently we do not support converting Eolian references into xmldoc
references.

As we explicitly generate Get/Set methods for properties, for now the
generator tries to get the get/set specific documentation first. If it
is not present, fallback to the common docs.

Later this could be changed to generate the common one as paragraphs of
the Get/Set.

Also some generated code like the wrappers for calling C# methods
from C can be private. This will cleanup the introspection results
and warnings when generating documentation.

Due to this visibility change, the binbuf tests had to be changed
to add redirect calls to the native methods instead of directly
calling the DllImport'd methods.
54 files changed:
src/Makefile_Efl_Mono.am
src/Makefile_Eolian_Cxx.am
src/bin/eolian_mono/eolian/mono/documentation.hh [new file with mode: 0644]
src/bin/eolian_mono/eolian/mono/enum_definition.hh
src/bin/eolian_mono/eolian/mono/function_declaration.hh
src/bin/eolian_mono/eolian/mono/function_definition.hh
src/bin/eolian_mono/eolian/mono/function_pointer.hh
src/bin/eolian_mono/eolian/mono/klass.hh
src/bin/eolian_mono/eolian/mono/struct_definition.hh
src/bin/eolian_mono/eolian/mono/using_decl.hh
src/bindings/mono/ecore_evas_mono/ecore_evas.cs
src/bindings/mono/efl_mono/efl_all.cs
src/bindings/mono/efl_mono/efl_libs.cs.in
src/bindings/mono/eina_mono/eina_array.cs
src/bindings/mono/eina_mono/eina_binbuf.cs
src/bindings/mono/eina_mono/eina_common.cs
src/bindings/mono/eina_mono/eina_config.cs
src/bindings/mono/eina_mono/eina_container_common.cs
src/bindings/mono/eina_mono/eina_error.cs
src/bindings/mono/eina_mono/eina_hash.cs
src/bindings/mono/eina_mono/eina_inarray.cs
src/bindings/mono/eina_mono/eina_inlist.cs
src/bindings/mono/eina_mono/eina_iterator.cs
src/bindings/mono/eina_mono/eina_list.cs
src/bindings/mono/eina_mono/eina_log.cs
src/bindings/mono/eina_mono/eina_slice.cs
src/bindings/mono/eina_mono/eina_stringshare.cs
src/bindings/mono/eina_mono/eina_value.cs
src/bindings/mono/eldbus_mono/eldbus_common.cs
src/bindings/mono/eldbus_mono/eldbus_config.cs
src/bindings/mono/eldbus_mono/eldbus_connection.cs
src/bindings/mono/eldbus_mono/eldbus_message.cs
src/bindings/mono/eldbus_mono/eldbus_object.cs
src/bindings/mono/eldbus_mono/eldbus_pending.cs
src/bindings/mono/eldbus_mono/eldbus_proxy.cs
src/bindings/mono/eldbus_mono/eldbus_service.cs
src/bindings/mono/eo_mono/iwrapper.cs
src/bindings/mono/eo_mono/workaround.cs
src/examples/efl_mono/EoInherit01.cs
src/examples/efl_mono/example_numberwrapper.c
src/examples/efl_mono/example_numberwrapper.eo
src/lib/eolian_cxx/Eolian_Cxx.hh
src/lib/eolian_cxx/grammar/function_definition.hpp
src/lib/eolian_cxx/grammar/html_escaped_string.hpp [new file with mode: 0644]
src/lib/eolian_cxx/grammar/klass_def.hpp
src/lib/eolian_cxx/grammar/string.hpp
src/tests/efl_mono/Eina.cs
src/tests/efl_mono/Events.cs
src/tests/efl_mono/libefl_mono_native_test.c
src/tests/efl_mono/test_testing.eo
src/tests/eolian_cxx/docs.eo [new file with mode: 0644]
src/tests/eolian_cxx/eolian_cxx_suite.cc
src/tests/eolian_cxx/eolian_cxx_suite.h
src/tests/eolian_cxx/eolian_cxx_test_documentation.cc [new file with mode: 0644]