From 74fd7b769d5ce6dd031ee1e64e11564e568b9112 Mon Sep 17 00:00:00 2001 From: Chris Daley Date: Fri, 24 Nov 2017 10:35:03 -0800 Subject: [PATCH] added support for doc tags --- dbusgen/valadbusgen.vala | 1 + dbusgen/valadbusparser.vala | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/dbusgen/valadbusgen.vala b/dbusgen/valadbusgen.vala index ad65f8697..33205bb47 100644 --- a/dbusgen/valadbusgen.vala +++ b/dbusgen/valadbusgen.vala @@ -98,6 +98,7 @@ public class Vala.DBusGen { CodeContext.push (context); context.set_target_profile (Profile.GOBJECT); + context.vapi_comments = true; if (packages != null) { foreach (string package in packages) { diff --git a/dbusgen/valadbusparser.vala b/dbusgen/valadbusparser.vala index 2872317e1..9a1890dba 100644 --- a/dbusgen/valadbusparser.vala +++ b/dbusgen/valadbusparser.vala @@ -355,13 +355,31 @@ public class Vala.DBusParser : CodeVisitor { private void parse_doc () { start_element ("doc:doc"); + string comment = ""; + SourceReference start_loc = get_current_src (); + while (true) { next (); + + if (current_token == MarkupTokenType.TEXT) { + SourceReference source = get_current_src (); + comment += source.file.get_source_line (source.begin.line).strip (); + } + if (current_token == MarkupTokenType.END_ELEMENT && reader.name == "doc:doc") { break; } } + if (comment.length > 0) { + comment = "*\n * %s\n*".printf (comment); + Comment doc = new Comment (comment, start_loc); + Symbol node = current_node as Symbol; + if (node != null) { + node.comment = doc; + } + } + end_element ("doc:doc"); } -- 2.47.2