From: Jean Privat Date: Thu, 25 Dec 2014 02:42:46 +0000 (-0500) Subject: Merge: neo_doxygen: Enhance description handling X-Git-Tag: v0.7~3 X-Git-Url: http://nitlanguage.org?hp=edc8f7f282da990dca97ce9f13e60bac0e8e4e45 Merge: neo_doxygen: Enhance description handling * Document the implicit nodes. * Prepare `DocListener` for translation of the Doxygen’s markup. #1059 must be fixed before we do anything else. Signed-off-by: Jean-Christophe Beaupré Pull-Request: #1060 Reviewed-by: Jean Privat Reviewed-by: Alexandre Terrasa --- diff --git a/contrib/neo_doxygen/README.md b/contrib/neo_doxygen/README.md index 454cd86..c33e770 100644 --- a/contrib/neo_doxygen/README.md +++ b/contrib/neo_doxygen/README.md @@ -71,6 +71,17 @@ works on a collection of projects grouped in a directory. For detail about how to invoke each script, see the comments in these scripts. +## Brief descriptions + +To populate the first line of a description (used as brief description in +Nitdoc), `neo_doxygen` uses the brief description provided by Doxygen. So, you +may need to change settings like `JAVADOC_AUTOBRIEF`, `QT_AUTOBRIEF` and +`MULTILINE_CPP_IS_BRIEF` in Doxygen to make `neo_doxygen` properly split the +brief description from the detailed description. In absence of brief +description, `neo_doxygen` will use the first block (usually, the first +paragraph) of the detailed as brief description. + + ## Python The built-in filter of Doxygen for Python is very basic. For example, it diff --git a/contrib/neo_doxygen/src/doxml/doc.nit b/contrib/neo_doxygen/src/doxml/doc.nit deleted file mode 100644 index da9f09e..0000000 --- a/contrib/neo_doxygen/src/doxml/doc.nit +++ /dev/null @@ -1,32 +0,0 @@ -# This file is part of NIT ( http://www.nitlanguage.org ). -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Documentation reading. -module doxml::doc - -import listener - -# Processes documentation. -class DocListener - super TextListener - - # The read documentation. - var doc = new JsonArray is writable - - redef fun end_listening do - super - var line = to_s.trim - if not line.is_empty then doc.add(line) - end -end diff --git a/contrib/neo_doxygen/src/doxml/doc_listener.nit b/contrib/neo_doxygen/src/doxml/doc_listener.nit new file mode 100644 index 0000000..05ecd35 --- /dev/null +++ b/contrib/neo_doxygen/src/doxml/doc_listener.nit @@ -0,0 +1,94 @@ +# This file is part of NIT ( http://www.nitlanguage.org ). +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Documentation reading. +module doxml::doc_listener + +import listener +import html + +# Processes documentation. +class DocListener + super TextListener + + # The read documentation. + var doc = new Documentation is writable + + # Mapping between the type of a Doxygen element and the corresponding + # factory. + private var factories = new HashMap[String, HtmlElementFactory] + + private var element_stack = new Array[HTMLTag] + + # Does the next block have to be added to the detailed description? + private var in_detailed_description = false + + redef fun listen_until(uri, local_name) do + super + if local_name == "briefdescription" then + in_detailed_description = false + else + in_detailed_description = true + end + end + + redef fun start_dox_element(local_name, atts) do + super + var factory = factories.get_or_null(local_name) + if factory == null then return + element_stack.push(factory.create_element(local_name, atts)) + end + + redef fun end_dox_element(local_name) do + super + if not factories.has_key(local_name) then return + if element_stack.is_empty then return + var current_element = element_stack.pop + current_element.append(flush_buffer.trim) + if element_stack.is_empty then add_block(current_element.write_to_string) + end + + redef fun end_listening do + super + if not element_stack.is_empty then + var current_element = element_stack.first.write_to_string + add_block(current_element) + end + add_block(flush_buffer.trim) + element_stack.clear + end + + private fun add_block(block: String) do + if block.is_empty then return + if in_detailed_description then + doc.add(block) + else + doc.brief_description = block + in_detailed_description = true + end + end +end + +# Provides a mean to create a certain kind of HTML elements. +private abstract class HtmlElementFactory + # Create a new empty HTML element. + # + # Parameters: + # + # * `local_name`: Type of the Doxygen element that will be represented by + # the HTML element. + # * `attributes`: Attributes of the Doxygen element that will be + # represented by the HTML element. + fun create_element(local_name: String, attributes: Attributes): HTMLTag is abstract +end diff --git a/contrib/neo_doxygen/src/doxml/entitydef.nit b/contrib/neo_doxygen/src/doxml/entitydef.nit index 6c11a6c..0f83aa1 100644 --- a/contrib/neo_doxygen/src/doxml/entitydef.nit +++ b/contrib/neo_doxygen/src/doxml/entitydef.nit @@ -15,7 +15,7 @@ # Common SAX listeners for entity definitions. module doxml::entitydef -import doc +import doc_listener # Processes the content of an entity definition. abstract class EntityDefListener diff --git a/contrib/neo_doxygen/src/model/descriptions.nit b/contrib/neo_doxygen/src/model/descriptions.nit new file mode 100644 index 0000000..1f504ef --- /dev/null +++ b/contrib/neo_doxygen/src/model/descriptions.nit @@ -0,0 +1,117 @@ +# This file is part of NIT ( http://www.nitlanguage.org ). +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Documentation associated to an entity. +module model::descriptions + +import json::static + +# Documentation associated to an entity. +# +# The documentation is written in Markdown format. +# +# ~~~nit +# var doc = new Documentation +# +# doc.brief_description = "Do something." +# doc.detailed_description = ["Do not lunch a rocket."] +# assert doc.brief_description == "Do something." +# assert doc.detailed_description == ["Do not lunch a rocket."] +# assert doc.to_json == """["Do something.","Do not lunch a rocket."]""" +# +# doc.brief_description = "" +# doc.detailed_description = ["The answer is `42`."] +# assert doc.brief_description == "The answer is `42`." +# assert doc.detailed_description == ["The answer is `42`."] +# assert doc.to_json == """["The answer is `42`."]""" +# +# doc.detailed_description = ["The answer is `42`."] +# doc.brief_description = "" +# assert doc.brief_description == "The answer is `42`." +# assert doc.detailed_description == ["The answer is `42`."] +# assert doc.to_json == """["The answer is `42`."]""" +# +# doc.detailed_description = new Array[String] +# doc.brief_description = "" +# assert doc.is_empty +# assert doc.brief_description == "" +# assert doc.detailed_description == new Array[String] +# assert doc.to_json == "[]" +# ~~~ +class Documentation + super Jsonable + + private var content = new JsonStringArray + private var has_brief_description: Bool = false + + # The brief description. + # + # If it is empty, the first element of `detailed_description` will be used + # as brief description. + fun brief_description=(brief_description: String) do + if brief_description.is_empty then + if has_brief_description then + content.shift + has_brief_description = false + end + else if has_brief_description then + content.first = brief_description + else + content.unshift(brief_description) + has_brief_description = true + end + end + + # The brief description. + fun brief_description: String do + if not is_empty then return content.first + return "" + end + + # The detailed description. + # + # Each element should represent a block. + fun detailed_description=(detailed_description: SequenceRead[String]) do + if has_brief_description then + while content.length > 1 do content.pop + else + content.clear + end + content.add_all(detailed_description) + end + + # The detailed description. + # + # Each element should represent a block. + fun detailed_description: SequenceRead[String] do + if not has_brief_description then return content + if content.length > 1 then return content.subarray(1, content.length - 1) + return new Array[String] + end + + # Add a block of detailed description. + fun add(block: String) do content.add block + + # Is the documentation empty? + fun is_empty: Bool do return content.is_empty + + redef fun to_json do return content.to_json + redef fun append_json(b) do content.append_json(b) +end + +# A `Jsonable` array of strings. +private class JsonStringArray + super JsonSequenceRead[String] + super Array[String] +end diff --git a/contrib/neo_doxygen/src/model/graph.nit b/contrib/neo_doxygen/src/model/graph.nit index 7c8d2a3..74a81b5 100644 --- a/contrib/neo_doxygen/src/model/graph.nit +++ b/contrib/neo_doxygen/src/model/graph.nit @@ -18,6 +18,7 @@ module model::graph import neo4j import more_collections import location +import descriptions # A Neo4j graph. class NeoGraph @@ -135,7 +136,7 @@ abstract class Entity var full_name: nullable String = null is writable # Associated documentation. - var doc = new JsonArray is writable + var doc = new Documentation is writable init do self.labels.add(graph.project_name) @@ -179,7 +180,7 @@ abstract class Entity # # Called by the loader when it has finished to read the entity. fun put_in_graph do - if doc.length > 0 then + if not doc.is_empty then set_mdoc end graph.all_nodes.add(self) diff --git a/contrib/neo_doxygen/src/model/module_compound.nit b/contrib/neo_doxygen/src/model/module_compound.nit index 95ce6cb..188d4c1 100644 --- a/contrib/neo_doxygen/src/model/module_compound.nit +++ b/contrib/neo_doxygen/src/model/module_compound.nit @@ -139,19 +139,19 @@ private class Module # declares it. fun update_name do name = file_compound.basename - redef fun put_in_graph do - super - end - redef fun put_edges do var ns_compound = namespace.seek_in(graph) var self_class = ns_compound.self_class + var class_count = 0 + var last_class: nullable ClassCompound = null graph.add_edge(ns_compound, "DECLARES", self) for c in file_compound.inner_classes do if graph.class_to_ns[c] != ns_compound then continue var class_compound = graph.by_id[c].as(ClassCompound) + last_class = class_compound + class_count += 1 graph.add_edge(self, "INTRODUCES", class_compound) graph.add_edge(self, "DEFINES", class_compound.class_def) end @@ -163,6 +163,13 @@ private class Module graph.add_edge(self, "INTRODUCES", self_class) graph.add_edge(self, "DEFINES", self_class.class_def) end + + if doc.is_empty and class_count == 1 then + doc = last_class.as(not null).doc + end + if doc.is_empty then doc = file_compound.doc + if doc.is_empty then doc = ns_compound.doc + if not doc.is_empty then set_mdoc end end diff --git a/contrib/neo_doxygen/src/model/namespace_members.nit b/contrib/neo_doxygen/src/model/namespace_members.nit index ce73ee3..4c85d5a 100644 --- a/contrib/neo_doxygen/src/model/namespace_members.nit +++ b/contrib/neo_doxygen/src/model/namespace_members.nit @@ -65,4 +65,9 @@ class SelfClass super name = "(self)" end + + redef fun put_in_graph do + if doc.is_empty then doc = namespace.doc + super + end end diff --git a/contrib/neo_doxygen/src/tests/neo_doxygen_descriptions.nit b/contrib/neo_doxygen/src/tests/neo_doxygen_descriptions.nit new file mode 100644 index 0000000..d277be7 --- /dev/null +++ b/contrib/neo_doxygen/src/tests/neo_doxygen_descriptions.nit @@ -0,0 +1,44 @@ +# This file is part of NIT ( http://www.nitlanguage.org ). +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import model::descriptions + +# Copied from the documentation of `Documentation`. + +var doc = new Documentation + +doc.brief_description = "Do something." +doc.detailed_description = ["Do not lunch a rocket."] +assert doc.brief_description == "Do something." +assert doc.detailed_description == ["Do not lunch a rocket."] +assert doc.to_json == """["Do something.","Do not lunch a rocket."]""" + +doc.brief_description = "" +doc.detailed_description = ["The answer is `42`."] +assert doc.brief_description == "The answer is `42`." +assert doc.detailed_description == ["The answer is `42`."] +assert doc.to_json == """["The answer is `42`."]""" + +doc.detailed_description = ["The answer is `42`."] +doc.brief_description = "" +assert doc.brief_description == "The answer is `42`." +assert doc.detailed_description == ["The answer is `42`."] +assert doc.to_json == """["The answer is `42`."]""" + +doc.detailed_description = new Array[String] +doc.brief_description = "" +assert doc.is_empty +assert doc.brief_description == "" +assert doc.detailed_description == new Array[String] +assert doc.to_json == "[]" diff --git a/contrib/neo_doxygen/src/tests/neo_doxygen_doc_module_class.nit b/contrib/neo_doxygen/src/tests/neo_doxygen_doc_module_class.nit new file mode 100644 index 0000000..48f73d5 --- /dev/null +++ b/contrib/neo_doxygen/src/tests/neo_doxygen_doc_module_class.nit @@ -0,0 +1,43 @@ +# This file is part of NIT ( http://www.nitlanguage.org ). +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import tests +intrude import model::module_compound + +var graph = new ProjectGraph("foo") +var file = new FileCompound(graph) +var bar_class = new ClassCompound(graph) +var a_ns = new Namespace(graph) + +file.full_name = "Baz.java" +file.declare_class("classa_bar", "a::Bar", "public") +file.declare_namespace("namespacea", "a") +file.doc.brief_description = "A file." +file.put_in_graph + +a_ns.full_name = "a" +a_ns.model_id = "namespacea" +a_ns.declare_class("classa_bar", "a::Bar", "public") +a_ns.doc.brief_description = "A namespace." +a_ns.put_in_graph + +bar_class.model_id = "classa_bar" +bar_class.full_name = "a::Bar" +bar_class.doc.brief_description = "A class." +bar_class.put_in_graph + +graph.add_global_modules +graph.put_edges + +assert file.inner_namespaces[0]["mdoc"] == bar_class.doc diff --git a/contrib/neo_doxygen/src/tests/neo_doxygen_file_compound.nit b/contrib/neo_doxygen/src/tests/neo_doxygen_file_compound.nit index 73adc61..c66709e 100644 --- a/contrib/neo_doxygen/src/tests/neo_doxygen_file_compound.nit +++ b/contrib/neo_doxygen/src/tests/neo_doxygen_file_compound.nit @@ -36,6 +36,7 @@ file.location = location file.declare_class("classa_b_bar", "a::b::Bar", "package") file.declare_class("classbaz", "Baz", "") file.declare_namespace("", "a::b") +file.doc.brief_description = "The first file." file.put_in_graph file_2.name = "Bar.java" diff --git a/contrib/neo_doxygen/src/tests/neo_doxygen_namespace_members.nit b/contrib/neo_doxygen/src/tests/neo_doxygen_namespace_members.nit index 346723d..4030df9 100644 --- a/contrib/neo_doxygen/src/tests/neo_doxygen_namespace_members.nit +++ b/contrib/neo_doxygen/src/tests/neo_doxygen_namespace_members.nit @@ -33,6 +33,7 @@ member.put_in_graph ns.model_id = "namespacefoo" ns.name = "foo" ns.declare_member(member) +ns.doc.brief_description = "A documented namespace." ns.put_in_graph root_ns.declare_namespace("namespacefoo", "") diff --git a/contrib/neo_doxygen/tests/inner-class/Doxyfile b/contrib/neo_doxygen/tests/inner-class/Doxyfile index bd06324..46601c2 100644 --- a/contrib/neo_doxygen/tests/inner-class/Doxyfile +++ b/contrib/neo_doxygen/tests/inner-class/Doxyfile @@ -187,7 +187,7 @@ SHORT_NAMES = NO # description.) # The default value is: NO. -JAVADOC_AUTOBRIEF = NO +JAVADOC_AUTOBRIEF = YES # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first # line (until the first dot) of a Qt-style comment as the brief description. If diff --git a/contrib/neo_doxygen/tests/inner-class/xml/class_outer_class.xml b/contrib/neo_doxygen/tests/inner-class/xml/class_outer_class.xml index 0e516fa..1bd92a8 100644 --- a/contrib/neo_doxygen/tests/inner-class/xml/class_outer_class.xml +++ b/contrib/neo_doxygen/tests/inner-class/xml/class_outer_class.xml @@ -4,9 +4,9 @@ OuterClass OuterClass::InnerClass - +A class with an inner class. -A class with an inner class. + diff --git a/contrib/neo_doxygen/tests/inner-class/xml/class_outer_class_1_1_inner_class.xml b/contrib/neo_doxygen/tests/inner-class/xml/class_outer_class_1_1_inner_class.xml index fdabf85..570babb 100644 --- a/contrib/neo_doxygen/tests/inner-class/xml/class_outer_class_1_1_inner_class.xml +++ b/contrib/neo_doxygen/tests/inner-class/xml/class_outer_class_1_1_inner_class.xml @@ -3,9 +3,9 @@ OuterClass::InnerClass - +An instance (non-static) inner class. -An instance (non-static) inner class. + diff --git a/contrib/neo_doxygen/tests/java-project/Doxyfile b/contrib/neo_doxygen/tests/java-project/Doxyfile index bd06324..46601c2 100644 --- a/contrib/neo_doxygen/tests/java-project/Doxyfile +++ b/contrib/neo_doxygen/tests/java-project/Doxyfile @@ -187,7 +187,7 @@ SHORT_NAMES = NO # description.) # The default value is: NO. -JAVADOC_AUTOBRIEF = NO +JAVADOC_AUTOBRIEF = YES # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first # line (until the first dot) of a Qt-style comment as the brief description. If diff --git a/contrib/neo_doxygen/tests/java-project/xml/classorg_1_1example_1_1foo_1_1_a.xml b/contrib/neo_doxygen/tests/java-project/xml/classorg_1_1example_1_1foo_1_1_a.xml index 4475075..b380cf7 100644 --- a/contrib/neo_doxygen/tests/java-project/xml/classorg_1_1example_1_1foo_1_1_a.xml +++ b/contrib/neo_doxygen/tests/java-project/xml/classorg_1_1example_1_1foo_1_1_a.xml @@ -18,9 +18,9 @@ y - +Does something... -Does something... + diff --git a/contrib/neo_doxygen/tests/java-project/xml/classorg_1_1example_1_1foo_1_1_b.xml b/contrib/neo_doxygen/tests/java-project/xml/classorg_1_1example_1_1foo_1_1_b.xml index eb1fd6c..b01966b 100644 --- a/contrib/neo_doxygen/tests/java-project/xml/classorg_1_1example_1_1foo_1_1_b.xml +++ b/contrib/neo_doxygen/tests/java-project/xml/classorg_1_1example_1_1foo_1_1_b.xml @@ -49,9 +49,9 @@ baz baz - +Some overriden documentation. -Some overriden documentation. + diff --git a/contrib/neo_doxygen/tests/java-project/xml/classorg_1_1example_1_1foo_1_1_empty_class.xml b/contrib/neo_doxygen/tests/java-project/xml/classorg_1_1example_1_1foo_1_1_empty_class.xml index 9aa6aa2..04854de 100644 --- a/contrib/neo_doxygen/tests/java-project/xml/classorg_1_1example_1_1foo_1_1_empty_class.xml +++ b/contrib/neo_doxygen/tests/java-project/xml/classorg_1_1example_1_1foo_1_1_empty_class.xml @@ -3,9 +3,9 @@ org::example::foo::EmptyClass - +This class is empty and is only visible in this package. -This class is empty and is only visible in this package. + diff --git a/contrib/neo_doxygen/tests/java-project/xml/interfaceorg_1_1example_1_1foo_1_1_c.xml b/contrib/neo_doxygen/tests/java-project/xml/interfaceorg_1_1example_1_1foo_1_1_c.xml index aec6243..09b577a 100644 --- a/contrib/neo_doxygen/tests/java-project/xml/interfaceorg_1_1example_1_1foo_1_1_c.xml +++ b/contrib/neo_doxygen/tests/java-project/xml/interfaceorg_1_1example_1_1foo_1_1_c.xml @@ -11,9 +11,9 @@ THE_ANSWER = 42L - +“Answer to the Ultimate Question of Life, the Universe, and Everything. -“Answer to the Ultimate Question of Life, the Universe, and Everything.“ +“ @@ -27,18 +27,18 @@ baz baz - +A function with implicit modifiers. -A function with implicit modifiers. + - +An interface. -An interface + diff --git a/contrib/neo_doxygen/tests/root-namespace/Doxyfile b/contrib/neo_doxygen/tests/root-namespace/Doxyfile index bd06324..46601c2 100644 --- a/contrib/neo_doxygen/tests/root-namespace/Doxyfile +++ b/contrib/neo_doxygen/tests/root-namespace/Doxyfile @@ -187,7 +187,7 @@ SHORT_NAMES = NO # description.) # The default value is: NO. -JAVADOC_AUTOBRIEF = NO +JAVADOC_AUTOBRIEF = YES # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first # line (until the first dot) of a Qt-style comment as the brief description. If diff --git a/contrib/neo_doxygen/tests/root-namespace/xml/class_foo.xml b/contrib/neo_doxygen/tests/root-namespace/xml/class_foo.xml index 3ee1155..86405c8 100644 --- a/contrib/neo_doxygen/tests/root-namespace/xml/class_foo.xml +++ b/contrib/neo_doxygen/tests/root-namespace/xml/class_foo.xml @@ -3,9 +3,9 @@ Foo - +A class in the root namespace. -A class in the root namespace + diff --git a/lib/html/html.nit b/lib/html/html.nit index 83ff255..8d2de2b 100644 --- a/lib/html/html.nit +++ b/lib/html/html.nit @@ -84,10 +84,13 @@ class HTMLPage end end +# An HTML element. class HTMLTag super Streamable - # HTML tagname: 'div' for
+ # HTML element type. + # + # `"div"` for `
`. var tag: String init do self.is_void = (once ["area", "base", "br", "col", "command", "embed", "hr", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr"]).has(tag) @@ -99,6 +102,7 @@ class HTMLTag # assert (new HTMLTag("p")).is_void == false var is_void: Bool is noinit + # Create a HTML elements with the specifed type and attributes. init with_attrs(tag: String, attrs: Map[String, String]) do self.tag = tag self.attrs = attrs diff --git a/tests/nitg-g.skip b/tests/nitg-g.skip index d25129d..0d0961d 100644 --- a/tests/nitg-g.skip +++ b/tests/nitg-g.skip @@ -1,6 +1,8 @@ nitc nitdoc nitlight +neo_doxygen_descriptions +neo_doxygen_doc_module_class neo_doxygen_dump neo_doxygen_file_compound neo_doxygen_graph_empty_project diff --git a/tests/sav/neo_doxygen_descriptions.res b/tests/sav/neo_doxygen_descriptions.res new file mode 100644 index 0000000..e69de29 diff --git a/tests/sav/neo_doxygen_doc_module_class.res b/tests/sav/neo_doxygen_doc_module_class.res new file mode 100644 index 0000000..e69de29 diff --git a/tests/sav/neo_doxygen_dump_args4.res b/tests/sav/neo_doxygen_dump_args4.res index 3a3c933..0d6a211 100644 --- a/tests/sav/neo_doxygen_dump_args4.res +++ b/tests/sav/neo_doxygen_dump_args4.res @@ -242,8 +242,8 @@ Edge 3:foo 7:MEntity 7:MModule -=properties=JsonObject(2): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:1,1--1,1","name":"C"} +=properties=JsonObject(3): +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:1,1--1,1","name":"C","mdoc":["An interface."]} Edge @@ -256,8 +256,8 @@ Edge 3:foo 7:MEntity 7:MModule -=properties=JsonObject(2): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:1,1--1,1","name":"C"} +=properties=JsonObject(3): +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:1,1--1,1","name":"C","mdoc":["An interface."]} ---- =to=Entity#36:interfaceorg_1_1example_1_1foo_1_1_c =labels=Array(3): @@ -265,7 +265,7 @@ Edge 7:MEntity 6:MClass =properties=JsonObject(5): -{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","mdoc":["An interface"]} +{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","mdoc":["An interface."]} Edge @@ -278,8 +278,8 @@ Edge 3:foo 7:MEntity 7:MModule -=properties=JsonObject(2): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:1,1--1,1","name":"C"} +=properties=JsonObject(3): +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:1,1--1,1","name":"C","mdoc":["An interface."]} ---- =to=Entity#0: =labels=Array(3): @@ -287,7 +287,7 @@ Edge 7:MEntity 9:MClassDef =properties=JsonObject(4): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface"]} +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]} Edge @@ -308,8 +308,8 @@ Edge 3:foo 7:MEntity 7:MModule -=properties=JsonObject(2): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:1,1--1,1","name":"EmptyClass"} +=properties=JsonObject(3): +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:1,1--1,1","name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]} Edge @@ -322,8 +322,8 @@ Edge 3:foo 7:MEntity 7:MModule -=properties=JsonObject(2): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:1,1--1,1","name":"EmptyClass"} +=properties=JsonObject(3): +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:1,1--1,1","name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]} ---- =to=Entity#42:classorg_1_1example_1_1foo_1_1_empty_class =labels=Array(3): @@ -344,8 +344,8 @@ Edge 3:foo 7:MEntity 7:MModule -=properties=JsonObject(2): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:1,1--1,1","name":"EmptyClass"} +=properties=JsonObject(3): +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:1,1--1,1","name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]} ---- =to=Entity#0: =labels=Array(3): @@ -1457,7 +1457,7 @@ Edge 8:MPropDef 13:MAttributeDef =properties=JsonObject(5): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:25,1---1,1","visibility":"public","name":"THE_ANSWER","mdoc":["\u000e2\u00080\u0009cAnswer to the Ultimate Question of Life, the Universe, and Everything.\u000e2\u00080\u0009c"],"is_intro":true} +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:25,1---1,1","visibility":"public","name":"THE_ANSWER","mdoc":["\u000e2\u00080\u0009cAnswer to the Ultimate Question of Life, the Universe, and Everything.","\u000e2\u00080\u0009c"],"is_intro":true} ---- =to=Entity#0: =labels=Array(4): @@ -1481,7 +1481,7 @@ Edge 8:MPropDef 13:MAttributeDef =properties=JsonObject(5): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:25,1---1,1","visibility":"public","name":"THE_ANSWER","mdoc":["\u000e2\u00080\u0009cAnswer to the Ultimate Question of Life, the Universe, and Everything.\u000e2\u00080\u0009c"],"is_intro":true} +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:25,1---1,1","visibility":"public","name":"THE_ANSWER","mdoc":["\u000e2\u00080\u0009cAnswer to the Ultimate Question of Life, the Universe, and Everything.","\u000e2\u00080\u0009c"],"is_intro":true} ---- =to=Entity#0: =labels=Array(4): @@ -1576,7 +1576,7 @@ Edge 7:MEntity 6:MClass =properties=JsonObject(5): -{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","mdoc":["An interface"]} +{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","mdoc":["An interface."]} ---- =to=Entity#0: =labels=Array(4): @@ -1608,7 +1608,7 @@ Edge 7:MEntity 6:MClass =properties=JsonObject(5): -{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","mdoc":["An interface"]} +{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","mdoc":["An interface."]} Edge @@ -1622,7 +1622,7 @@ Edge 7:MEntity 9:MClassDef =properties=JsonObject(4): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface"]} +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]} ---- =to=Entity#0: =labels=Array(4): @@ -1645,7 +1645,7 @@ Edge 7:MEntity 9:MClassDef =properties=JsonObject(4): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface"]} +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]} ---- =to=Entity#36:interfaceorg_1_1example_1_1foo_1_1_c =labels=Array(3): @@ -1653,7 +1653,7 @@ Edge 7:MEntity 6:MClass =properties=JsonObject(5): -{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","mdoc":["An interface"]} +{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","mdoc":["An interface."]} Edge @@ -1667,7 +1667,7 @@ Edge 7:MEntity 9:MClassDef =properties=JsonObject(4): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface"]} +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]} ---- =to=Entity#0: =labels=Array(4): @@ -1699,7 +1699,7 @@ Edge 7:MEntity 9:MClassDef =properties=JsonObject(4): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface"]} +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]} Edge @@ -1713,7 +1713,7 @@ Edge 7:MEntity 9:MClassDef =properties=JsonObject(4): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface"]} +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]} ---- =to=Entity#71:interfaceorg_1_1example_1_1foo_1_1_c_1a4e97061eb40b045e820de05b33c43d21 =labels=Array(4): @@ -1722,7 +1722,7 @@ Edge 8:MPropDef 13:MAttributeDef =properties=JsonObject(5): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:25,1---1,1","visibility":"public","name":"THE_ANSWER","mdoc":["\u000e2\u00080\u0009cAnswer to the Ultimate Question of Life, the Universe, and Everything.\u000e2\u00080\u0009c"],"is_intro":true} +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:25,1---1,1","visibility":"public","name":"THE_ANSWER","mdoc":["\u000e2\u00080\u0009cAnswer to the Ultimate Question of Life, the Universe, and Everything.","\u000e2\u00080\u0009c"],"is_intro":true} Edge @@ -1736,7 +1736,7 @@ Edge 7:MEntity 9:MClassDef =properties=JsonObject(4): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface"]} +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]} ---- =to=Entity#0: =labels=Array(4): @@ -1768,7 +1768,7 @@ Edge 7:MEntity 9:MClassDef =properties=JsonObject(4): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface"]} +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]} Edge @@ -1782,7 +1782,7 @@ Edge 7:MEntity 9:MClassDef =properties=JsonObject(4): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface"]} +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]} ---- =to=Entity#71:interfaceorg_1_1example_1_1foo_1_1_c_1a28ac7ce349ebb3e4a7747a8dd951582b =labels=Array(4): diff --git a/tests/sav/neo_doxygen_dump_args5.res b/tests/sav/neo_doxygen_dump_args5.res index 95633f3..70cda4d 100644 --- a/tests/sav/neo_doxygen_dump_args5.res +++ b/tests/sav/neo_doxygen_dump_args5.res @@ -242,8 +242,8 @@ Edge 3:foo 7:MEntity 7:MModule -=properties=JsonObject(2): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:1,1--1,1","name":"C"} +=properties=JsonObject(3): +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:1,1--1,1","name":"C","mdoc":["An interface."]} Edge @@ -256,8 +256,8 @@ Edge 3:foo 7:MEntity 7:MModule -=properties=JsonObject(2): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:1,1--1,1","name":"C"} +=properties=JsonObject(3): +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:1,1--1,1","name":"C","mdoc":["An interface."]} ---- =to=Entity#36:interfaceorg_1_1example_1_1foo_1_1_c =labels=Array(3): @@ -265,7 +265,7 @@ Edge 7:MEntity 6:MClass =properties=JsonObject(5): -{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","mdoc":["An interface"]} +{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","mdoc":["An interface."]} Edge @@ -278,8 +278,8 @@ Edge 3:foo 7:MEntity 7:MModule -=properties=JsonObject(2): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:1,1--1,1","name":"C"} +=properties=JsonObject(3): +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:1,1--1,1","name":"C","mdoc":["An interface."]} ---- =to=Entity#0: =labels=Array(3): @@ -287,7 +287,7 @@ Edge 7:MEntity 9:MClassDef =properties=JsonObject(4): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface"]} +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]} Edge @@ -308,8 +308,8 @@ Edge 3:foo 7:MEntity 7:MModule -=properties=JsonObject(2): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:1,1--1,1","name":"EmptyClass"} +=properties=JsonObject(3): +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:1,1--1,1","name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]} Edge @@ -322,8 +322,8 @@ Edge 3:foo 7:MEntity 7:MModule -=properties=JsonObject(2): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:1,1--1,1","name":"EmptyClass"} +=properties=JsonObject(3): +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:1,1--1,1","name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]} ---- =to=Entity#42:classorg_1_1example_1_1foo_1_1_empty_class =labels=Array(3): @@ -344,8 +344,8 @@ Edge 3:foo 7:MEntity 7:MModule -=properties=JsonObject(2): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:1,1--1,1","name":"EmptyClass"} +=properties=JsonObject(3): +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/EmptyClass.java:1,1--1,1","name":"EmptyClass","mdoc":["This class is empty and is only visible in this package."]} ---- =to=Entity#0: =labels=Array(3): @@ -1457,7 +1457,7 @@ Edge 8:MPropDef 13:MAttributeDef =properties=JsonObject(5): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:25,1---1,1","visibility":"public","name":"THE_ANSWER","mdoc":["\u000e2\u00080\u0009cAnswer to the Ultimate Question of Life, the Universe, and Everything.\u000e2\u00080\u0009c"],"is_intro":true} +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:25,1---1,1","visibility":"public","name":"THE_ANSWER","mdoc":["\u000e2\u00080\u0009cAnswer to the Ultimate Question of Life, the Universe, and Everything.","\u000e2\u00080\u0009c"],"is_intro":true} ---- =to=Entity#0: =labels=Array(4): @@ -1481,7 +1481,7 @@ Edge 8:MPropDef 13:MAttributeDef =properties=JsonObject(5): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:25,1---1,1","visibility":"public","name":"THE_ANSWER","mdoc":["\u000e2\u00080\u0009cAnswer to the Ultimate Question of Life, the Universe, and Everything.\u000e2\u00080\u0009c"],"is_intro":true} +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:25,1---1,1","visibility":"public","name":"THE_ANSWER","mdoc":["\u000e2\u00080\u0009cAnswer to the Ultimate Question of Life, the Universe, and Everything.","\u000e2\u00080\u0009c"],"is_intro":true} ---- =to=Entity#0: =labels=Array(4): @@ -1576,7 +1576,7 @@ Edge 7:MEntity 6:MClass =properties=JsonObject(5): -{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","mdoc":["An interface"]} +{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","mdoc":["An interface."]} ---- =to=Entity#0: =labels=Array(4): @@ -1608,7 +1608,7 @@ Edge 7:MEntity 6:MClass =properties=JsonObject(5): -{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","mdoc":["An interface"]} +{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","mdoc":["An interface."]} Edge @@ -1622,7 +1622,7 @@ Edge 7:MEntity 9:MClassDef =properties=JsonObject(4): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface"]} +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]} ---- =to=Entity#0: =labels=Array(4): @@ -1645,7 +1645,7 @@ Edge 7:MEntity 9:MClassDef =properties=JsonObject(4): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface"]} +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]} ---- =to=Entity#36:interfaceorg_1_1example_1_1foo_1_1_c =labels=Array(3): @@ -1653,7 +1653,7 @@ Edge 7:MEntity 6:MClass =properties=JsonObject(5): -{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","mdoc":["An interface"]} +{"kind":"interface","visibility":"public","name":"C","location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","mdoc":["An interface."]} Edge @@ -1667,7 +1667,7 @@ Edge 7:MEntity 9:MClassDef =properties=JsonObject(4): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface"]} +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]} ---- =to=Entity#0: =labels=Array(4): @@ -1699,7 +1699,7 @@ Edge 7:MEntity 9:MClassDef =properties=JsonObject(4): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface"]} +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]} Edge @@ -1713,7 +1713,7 @@ Edge 7:MEntity 9:MClassDef =properties=JsonObject(4): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface"]} +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]} ---- =to=Entity#71:interfaceorg_1_1example_1_1foo_1_1_c_1a4e97061eb40b045e820de05b33c43d21 =labels=Array(4): @@ -1722,7 +1722,7 @@ Edge 8:MPropDef 13:MAttributeDef =properties=JsonObject(5): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:25,1---1,1","visibility":"public","name":"THE_ANSWER","mdoc":["\u000e2\u00080\u0009cAnswer to the Ultimate Question of Life, the Universe, and Everything.\u000e2\u00080\u0009c"],"is_intro":true} +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:25,1---1,1","visibility":"public","name":"THE_ANSWER","mdoc":["\u000e2\u00080\u0009cAnswer to the Ultimate Question of Life, the Universe, and Everything.","\u000e2\u00080\u0009c"],"is_intro":true} Edge @@ -1736,7 +1736,7 @@ Edge 7:MEntity 9:MClassDef =properties=JsonObject(4): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface"]} +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]} ---- =to=Entity#0: =labels=Array(4): @@ -1768,7 +1768,7 @@ Edge 7:MEntity 9:MClassDef =properties=JsonObject(4): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface"]} +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]} Edge @@ -1782,7 +1782,7 @@ Edge 7:MEntity 9:MClassDef =properties=JsonObject(4): -{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface"]} +{"location":"%SOURCE_DIRECTORY%\/org\/example\/foo\/C.java:21,1--31,1","is_intro":true,"name":"C","mdoc":["An interface."]} ---- =to=Entity#71:interfaceorg_1_1example_1_1foo_1_1_c_1a28ac7ce349ebb3e4a7747a8dd951582b =labels=Array(4): diff --git a/tests/sav/neo_doxygen_dump_args6.res b/tests/sav/neo_doxygen_dump_args6.res index 5436c24..c59297e 100644 --- a/tests/sav/neo_doxygen_dump_args6.res +++ b/tests/sav/neo_doxygen_dump_args6.res @@ -59,7 +59,7 @@ Edge 7:MEntity 6:MClass =properties=JsonObject(5): -{"kind":"class","visibility":"package","name":"Foo","location":"%SOURCE_DIRECTORY%\/Foo.java:19,1--19,1","mdoc":["A class in the root namespace"]} +{"kind":"class","visibility":"package","name":"Foo","location":"%SOURCE_DIRECTORY%\/Foo.java:19,1--19,1","mdoc":["A class in the root namespace."]} ---- =to=Entity#0: =labels=Array(4): @@ -91,7 +91,7 @@ Edge 7:MEntity 6:MClass =properties=JsonObject(5): -{"kind":"class","visibility":"package","name":"Foo","location":"%SOURCE_DIRECTORY%\/Foo.java:19,1--19,1","mdoc":["A class in the root namespace"]} +{"kind":"class","visibility":"package","name":"Foo","location":"%SOURCE_DIRECTORY%\/Foo.java:19,1--19,1","mdoc":["A class in the root namespace."]} Edge @@ -105,7 +105,7 @@ Edge 7:MEntity 9:MClassDef =properties=JsonObject(4): -{"location":"%SOURCE_DIRECTORY%\/Foo.java:19,1--19,1","is_intro":true,"name":"Foo","mdoc":["A class in the root namespace"]} +{"location":"%SOURCE_DIRECTORY%\/Foo.java:19,1--19,1","is_intro":true,"name":"Foo","mdoc":["A class in the root namespace."]} ---- =to=Entity#0: =labels=Array(4): @@ -128,7 +128,7 @@ Edge 7:MEntity 9:MClassDef =properties=JsonObject(4): -{"location":"%SOURCE_DIRECTORY%\/Foo.java:19,1--19,1","is_intro":true,"name":"Foo","mdoc":["A class in the root namespace"]} +{"location":"%SOURCE_DIRECTORY%\/Foo.java:19,1--19,1","is_intro":true,"name":"Foo","mdoc":["A class in the root namespace."]} ---- =to=Entity#9:class_foo =labels=Array(3): @@ -136,7 +136,7 @@ Edge 7:MEntity 6:MClass =properties=JsonObject(5): -{"kind":"class","visibility":"package","name":"Foo","location":"%SOURCE_DIRECTORY%\/Foo.java:19,1--19,1","mdoc":["A class in the root namespace"]} +{"kind":"class","visibility":"package","name":"Foo","location":"%SOURCE_DIRECTORY%\/Foo.java:19,1--19,1","mdoc":["A class in the root namespace."]} Edge @@ -157,8 +157,8 @@ Edge 14:root-namespace 7:MEntity 7:MModule -=properties=JsonObject(2): -{"location":"%SOURCE_DIRECTORY%\/Foo.java:1,1--1,1","name":"Foo"} +=properties=JsonObject(3): +{"location":"%SOURCE_DIRECTORY%\/Foo.java:1,1--1,1","name":"Foo","mdoc":["A class in the root namespace."]} Edge @@ -171,8 +171,8 @@ Edge 14:root-namespace 7:MEntity 7:MModule -=properties=JsonObject(2): -{"location":"%SOURCE_DIRECTORY%\/Foo.java:1,1--1,1","name":"Foo"} +=properties=JsonObject(3): +{"location":"%SOURCE_DIRECTORY%\/Foo.java:1,1--1,1","name":"Foo","mdoc":["A class in the root namespace."]} ---- =to=Entity#9:class_foo =labels=Array(3): @@ -180,7 +180,7 @@ Edge 7:MEntity 6:MClass =properties=JsonObject(5): -{"kind":"class","visibility":"package","name":"Foo","location":"%SOURCE_DIRECTORY%\/Foo.java:19,1--19,1","mdoc":["A class in the root namespace"]} +{"kind":"class","visibility":"package","name":"Foo","location":"%SOURCE_DIRECTORY%\/Foo.java:19,1--19,1","mdoc":["A class in the root namespace."]} Edge @@ -193,8 +193,8 @@ Edge 14:root-namespace 7:MEntity 7:MModule -=properties=JsonObject(2): -{"location":"%SOURCE_DIRECTORY%\/Foo.java:1,1--1,1","name":"Foo"} +=properties=JsonObject(3): +{"location":"%SOURCE_DIRECTORY%\/Foo.java:1,1--1,1","name":"Foo","mdoc":["A class in the root namespace."]} ---- =to=Entity#0: =labels=Array(3): @@ -202,7 +202,7 @@ Edge 7:MEntity 9:MClassDef =properties=JsonObject(4): -{"location":"%SOURCE_DIRECTORY%\/Foo.java:19,1--19,1","is_intro":true,"name":"Foo","mdoc":["A class in the root namespace"]} +{"location":"%SOURCE_DIRECTORY%\/Foo.java:19,1--19,1","is_intro":true,"name":"Foo","mdoc":["A class in the root namespace."]} ---===DONE===--- diff --git a/tests/sav/neo_doxygen_file_compound.res b/tests/sav/neo_doxygen_file_compound.res index 9b16eb8..740393b 100644 --- a/tests/sav/neo_doxygen_file_compound.res +++ b/tests/sav/neo_doxygen_file_compound.res @@ -186,8 +186,8 @@ Edge 3:foo 7:MEntity 7:MModule -=properties=JsonObject(2): -{"location":"a\/b\/Bar.java:1,1--1,1","name":"Bar"} +=properties=JsonObject(3): +{"location":"a\/b\/Bar.java:1,1--1,1","name":"Bar","mdoc":["The first file."]} Edge =type=10:INTRODUCES @@ -199,8 +199,8 @@ Edge 3:foo 7:MEntity 7:MModule -=properties=JsonObject(2): -{"location":"a\/b\/Bar.java:1,1--1,1","name":"Bar"} +=properties=JsonObject(3): +{"location":"a\/b\/Bar.java:1,1--1,1","name":"Bar","mdoc":["The first file."]} ---- =to=Entity#12:classa_b_bar =labels=Array(3): @@ -220,8 +220,8 @@ Edge 3:foo 7:MEntity 7:MModule -=properties=JsonObject(2): -{"location":"a\/b\/Bar.java:1,1--1,1","name":"Bar"} +=properties=JsonObject(3): +{"location":"a\/b\/Bar.java:1,1--1,1","name":"Bar","mdoc":["The first file."]} ---- =to=Entity#0: =labels=Array(3): @@ -762,8 +762,8 @@ Edge 3:foo 7:MEntity 7:MModule -=properties=JsonObject(2): -{"location":"a\/b\/Bar.java:1,1--1,1","name":"Bar"} +=properties=JsonObject(3): +{"location":"a\/b\/Bar.java:1,1--1,1","name":"Bar","mdoc":["The first file."]} Edge =type=10:INTRODUCES @@ -775,8 +775,8 @@ Edge 3:foo 7:MEntity 7:MModule -=properties=JsonObject(2): -{"location":"a\/b\/Bar.java:1,1--1,1","name":"Bar"} +=properties=JsonObject(3): +{"location":"a\/b\/Bar.java:1,1--1,1","name":"Bar","mdoc":["The first file."]} ---- =to=Entity#12:classa_b_bar =labels=Array(3): @@ -796,8 +796,8 @@ Edge 3:foo 7:MEntity 7:MModule -=properties=JsonObject(2): -{"location":"a\/b\/Bar.java:1,1--1,1","name":"Bar"} +=properties=JsonObject(3): +{"location":"a\/b\/Bar.java:1,1--1,1","name":"Bar","mdoc":["The first file."]} ---- =to=Entity#0: =labels=Array(3): @@ -1167,8 +1167,8 @@ Edge 3:foo 7:MEntity 7:MModule -=properties=JsonObject(2): -{"location":"a\/b\/Bar.java:1,1--1,1","name":"Bar"} +=properties=JsonObject(3): +{"location":"a\/b\/Bar.java:1,1--1,1","name":"Bar","mdoc":["The first file."]} Edge =type=10:INTRODUCES @@ -1180,8 +1180,8 @@ Edge 3:foo 7:MEntity 7:MModule -=properties=JsonObject(2): -{"location":"a\/b\/Bar.java:1,1--1,1","name":"Bar"} +=properties=JsonObject(3): +{"location":"a\/b\/Bar.java:1,1--1,1","name":"Bar","mdoc":["The first file."]} ---- =to=Entity#8:classbaz =labels=Array(3): @@ -1201,8 +1201,8 @@ Edge 3:foo 7:MEntity 7:MModule -=properties=JsonObject(2): -{"location":"a\/b\/Bar.java:1,1--1,1","name":"Bar"} +=properties=JsonObject(3): +{"location":"a\/b\/Bar.java:1,1--1,1","name":"Bar","mdoc":["The first file."]} ---- =to=Entity#0: =labels=Array(3): diff --git a/tests/sav/neo_doxygen_namespace_members.res b/tests/sav/neo_doxygen_namespace_members.res index c785591..753a400 100644 --- a/tests/sav/neo_doxygen_namespace_members.res +++ b/tests/sav/neo_doxygen_namespace_members.res @@ -51,8 +51,8 @@ Edge 3:foo 7:MEntity 6:MGroup -=properties=JsonObject(1): -{"name":"foo"} +=properties=JsonObject(2): +{"name":"foo","mdoc":["A documented namespace."]} ---- =to=Entity#0: =labels=Array(3): @@ -80,8 +80,8 @@ Edge 3:foo 7:MEntity 6:MGroup -=properties=JsonObject(1): -{"name":"foo"} +=properties=JsonObject(2): +{"name":"foo","mdoc":["A documented namespace."]} Edge =type=8:DECLARES @@ -93,16 +93,16 @@ Edge 3:foo 7:MEntity 6:MGroup -=properties=JsonObject(1): -{"name":"foo"} +=properties=JsonObject(2): +{"name":"foo","mdoc":["A documented namespace."]} ---- =to=Entity#0: =labels=Array(3): 3:foo 7:MEntity 7:MModule -=properties=JsonObject(2): -{"location":"\/dev\/null:1,1--1,1","name":"foo"} +=properties=JsonObject(3): +{"location":"\/dev\/null:1,1--1,1","name":"foo","mdoc":["A documented namespace."]} Edge =type=10:INTRODUCES @@ -114,16 +114,16 @@ Edge 3:foo 7:MEntity 7:MModule -=properties=JsonObject(2): -{"location":"\/dev\/null:1,1--1,1","name":"foo"} +=properties=JsonObject(3): +{"location":"\/dev\/null:1,1--1,1","name":"foo","mdoc":["A documented namespace."]} ---- =to=Entity#0: =labels=Array(3): 3:foo 7:MEntity 6:MClass -=properties=JsonObject(4): -{"kind":"class","visibility":"public","name":"(self)","location":"\/dev\/null:1,1--1,1"} +=properties=JsonObject(5): +{"kind":"class","visibility":"public","name":"(self)","mdoc":["A documented namespace."],"location":"\/dev\/null:1,1--1,1"} Edge =type=7:DEFINES @@ -135,16 +135,16 @@ Edge 3:foo 7:MEntity 7:MModule -=properties=JsonObject(2): -{"location":"\/dev\/null:1,1--1,1","name":"foo"} +=properties=JsonObject(3): +{"location":"\/dev\/null:1,1--1,1","name":"foo","mdoc":["A documented namespace."]} ---- =to=Entity#0: =labels=Array(3): 3:foo 7:MEntity 9:MClassDef -=properties=JsonObject(3): -{"location":"\/dev\/null:1,1--1,1","is_intro":true,"name":"(self)"} +=properties=JsonObject(4): +{"location":"\/dev\/null:1,1--1,1","is_intro":true,"name":"(self)","mdoc":["A documented namespace."]} Edge =type=7:DEFINES @@ -179,8 +179,8 @@ Edge 3:foo 7:MEntity 6:MGroup -=properties=JsonObject(1): -{"name":"foo"} +=properties=JsonObject(2): +{"name":"foo","mdoc":["A documented namespace."]} ---- =to=Node =labels=Array(3): @@ -200,8 +200,8 @@ Edge 3:foo 7:MEntity 6:MClass -=properties=JsonObject(4): -{"kind":"class","visibility":"public","name":"(self)","location":"\/dev\/null:1,1--1,1"} +=properties=JsonObject(5): +{"kind":"class","visibility":"public","name":"(self)","mdoc":["A documented namespace."],"location":"\/dev\/null:1,1--1,1"} ---- =to=Entity#0: =labels=Array(4): @@ -231,8 +231,8 @@ Edge 3:foo 7:MEntity 6:MClass -=properties=JsonObject(4): -{"kind":"class","visibility":"public","name":"(self)","location":"\/dev\/null:1,1--1,1"} +=properties=JsonObject(5): +{"kind":"class","visibility":"public","name":"(self)","mdoc":["A documented namespace."],"location":"\/dev\/null:1,1--1,1"} Edge =type=9:BOUNDTYPE @@ -244,8 +244,8 @@ Edge 3:foo 7:MEntity 9:MClassDef -=properties=JsonObject(3): -{"location":"\/dev\/null:1,1--1,1","is_intro":true,"name":"(self)"} +=properties=JsonObject(4): +{"location":"\/dev\/null:1,1--1,1","is_intro":true,"name":"(self)","mdoc":["A documented namespace."]} ---- =to=Entity#0: =labels=Array(4): @@ -266,16 +266,16 @@ Edge 3:foo 7:MEntity 9:MClassDef -=properties=JsonObject(3): -{"location":"\/dev\/null:1,1--1,1","is_intro":true,"name":"(self)"} +=properties=JsonObject(4): +{"location":"\/dev\/null:1,1--1,1","is_intro":true,"name":"(self)","mdoc":["A documented namespace."]} ---- =to=Entity#0: =labels=Array(3): 3:foo 7:MEntity 6:MClass -=properties=JsonObject(4): -{"kind":"class","visibility":"public","name":"(self)","location":"\/dev\/null:1,1--1,1"} +=properties=JsonObject(5): +{"kind":"class","visibility":"public","name":"(self)","mdoc":["A documented namespace."],"location":"\/dev\/null:1,1--1,1"} Edge =type=10:INTRODUCES @@ -287,8 +287,8 @@ Edge 3:foo 7:MEntity 9:MClassDef -=properties=JsonObject(3): -{"location":"\/dev\/null:1,1--1,1","is_intro":true,"name":"(self)"} +=properties=JsonObject(4): +{"location":"\/dev\/null:1,1--1,1","is_intro":true,"name":"(self)","mdoc":["A documented namespace."]} ---- =to=Entity#0: =labels=Array(4): @@ -318,8 +318,8 @@ Edge 3:foo 7:MEntity 9:MClassDef -=properties=JsonObject(3): -{"location":"\/dev\/null:1,1--1,1","is_intro":true,"name":"(self)"} +=properties=JsonObject(4): +{"location":"\/dev\/null:1,1--1,1","is_intro":true,"name":"(self)","mdoc":["A documented namespace."]} Edge =type=8:DECLARES @@ -331,8 +331,8 @@ Edge 3:foo 7:MEntity 9:MClassDef -=properties=JsonObject(3): -{"location":"\/dev\/null:1,1--1,1","is_intro":true,"name":"(self)"} +=properties=JsonObject(4): +{"location":"\/dev\/null:1,1--1,1","is_intro":true,"name":"(self)","mdoc":["A documented namespace."]} ---- =to=Entity#0: =labels=Array(4):