diff options
author | Michael James Gratton <mike@vee.net> | 2018-01-09 12:30:50 +1100 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2018-01-10 20:46:30 +0100 |
commit | bf7fd434616d21422755f7ec5cddd0b0865d1e7a (patch) | |
tree | efd08a1555edd76847475014d6487c949b7bffd0 /libvaladoc/documentation | |
parent | 6f40447623f5baecc86743da0adff04cde4394e3 (diff) | |
download | vala-bf7fd434616d21422755f7ec5cddd0b0865d1e7a.tar.gz |
libvaladoc: Add support for single line documentation comments
This is useful for example in annotating properties:
/** Returns the current state of the frobnocator. */
public State frob { get; set; };
* libvaladoc/documentation/documentationparser.vala
(DocumentationParser.init_valadoc_rules): Split Comment rule up into
single and multi-line versions. Duplication Paragraph creation and
cleanup for single-line comments.
https://bugzilla.gnome.org/show_bug.cgi?id=736483
Diffstat (limited to 'libvaladoc/documentation')
-rw-r--r-- | libvaladoc/documentation/documentationparser.vala | 37 |
1 files changed, 27 insertions, 10 deletions
diff --git a/libvaladoc/documentation/documentationparser.vala b/libvaladoc/documentation/documentationparser.vala index a03480c73..4a9c0c9bd 100644 --- a/libvaladoc/documentation/documentationparser.vala +++ b/libvaladoc/documentation/documentationparser.vala @@ -548,6 +548,16 @@ public class Valadoc.DocumentationParser : Object, ResourceLocator { // Block rules + Rule.Action reduce_paragraph = () => { + var head = (Paragraph) pop (); + ((BlockContent) peek ()).content.add (head); + + Text last_element = head.content.last () as Text; + if (last_element != null) { + last_element.content._chomp (); + } + }; + Rule paragraph = Rule.seq ({ Rule.option ({ @@ -563,15 +573,7 @@ public class Valadoc.DocumentationParser : Object, ResourceLocator { }) .set_name ("Paragraph") .set_start (() => { push (_factory.create_paragraph ()); }) - .set_reduce (() => { - var head = (Paragraph) pop (); - ((BlockContent) peek ()).content.add (head); - - Text last_element = head.content.last () as Text; - if (last_element != null) { - last_element.content._chomp (); - } - }); + .set_reduce (reduce_paragraph); Rule warning = Rule.seq ({ @@ -876,7 +878,7 @@ public class Valadoc.DocumentationParser : Object, ResourceLocator { ((Comment) peek ()).taglets.add (head); }); - Rule comment = + Rule ml_comment = Rule.seq ({ TokenType.EOL, Rule.option ({ @@ -886,6 +888,21 @@ public class Valadoc.DocumentationParser : Object, ResourceLocator { Rule.many ({ taglet }) }) }) + .set_name ("MultiLineComment"); + + Rule sl_comment = + Rule.seq ({ + run + }) + .set_start (() => { push (_factory.create_paragraph ()); }) + .set_reduce (reduce_paragraph) + .set_name ("SingleLineComment"); + + Rule comment = + Rule.one_of ({ + ml_comment, + sl_comment + }) .set_name ("Comment") .set_start (() => { push (_factory.create_comment ()); }); |