You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@thrift.apache.org by Gonzalo Aguilar Delgado <ga...@aguilardelgado.com> on 2017/03/24 10:44:24 UTC

Documentation on thrift IDL is really parsed?

Hello,

I'm trying to make thrift spit documentation with the objects when
generating. Code.

I'm testing the HTML generation that's also quite nice already.

But something like:

/*

    Comment line 2
    id: test
   
    */
struct MvcCustomerDTO
 {
             /* Comment line 1*/
          1 : i32 id,
          2 : MvcCustomerStatusDTO mvcCustomerStatusDTO,
          3 : string firstname,
          4 : string lastname,
          5 : i64 dateCreated,
          6 : i64 dateUpdated,
          7 : string fullName,
          8 : string customerCode,
   }



Doesn't spit anything on output. No comment for the struct and no
comment for the field.

It's nasty cause the generator has the code in to handle everything.

  f_out_ << "<table class=\"table-bordered table-striped
table-condensed\">";
  f_out_ <<
"<thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</"
            "th><th>Default value</th></thead>" << endl;
  for (; mem_iter != members.end(); mem_iter++) {
    f_out_ << "<tr><td>" << (*mem_iter)->get_key() << "</td><td>";
    f_out_ << (*mem_iter)->get_name();
    f_out_ << "</td><td>";
    print_type((*mem_iter)->get_type());
    f_out_ << "</td><td>";
    f_out_ << escape_html((*mem_iter)->get_doc());
    f_out_ << "</td><td>";
    if ((*mem_iter)->get_req() == t_field::T_OPTIONAL) {
      f_out_ << "optional";
    } else if ((*mem_iter)->get_req() == t_field::T_REQUIRED) {
      f_out_ << "required";
    } else {
      f_out_ << "default";
    }
    f_out_ << "</td><td>";
    t_const_value* default_val = (*mem_iter)->get_value();
    if (default_val != NULL) {
      f_out_ << "<code>";
      print_const_value((*mem_iter)->get_type(), default_val);
      f_out_ << "</code>";
    }
    f_out_ << "</td></tr>" << endl;


And the output has the field to be filled in.



      Struct: MvcClientDTO

Key 	Field 	Type 	Description 	Requiredness 	Default value
1 	id 	|i32| 	
	default 	
2 	firstname 	|string| 	
	default 	
3 	lastname 	|string| 	
	default 	
4 	status 	|string| 	
	default 	
5 	dateCreated 	|i64| 	
	default 	
6 	dateUpdated 	|i64| 	
	default 	
7 	fullName 	|string| 	
	default 	
8 	clientCode 	|string| 	
	default 	


So I suppose it's just a matter of doing the comments right. But what's
the exact format?




Re: Documentation on thrift IDL is really parsed?

Posted by Gajanan H <gr...@gmail.com>.
Hi,

Looks like the comments are not in the right format. You can follow the
below link for generating good looking documentation.

https://github.com/nathanmarz/thrift-dev/blob/master/test/DocTest.thrift

​Cheers
,
Gajanan

On Fri, Mar 24, 2017 at 4:14 PM, Gonzalo Aguilar Delgado <
gaguilar@aguilardelgado.com> wrote:

> Hello,
>
> I'm trying to make thrift spit documentation with the objects when
> generating. Code.
>
> I'm testing the HTML generation that's also quite nice already.
>
> But something like:
>
> /*
>
>     Comment line 2
>     id: test
>
>     */
> struct MvcCustomerDTO
>  {
>              /* Comment line 1*/
>           1 : i32 id,
>           2 : MvcCustomerStatusDTO mvcCustomerStatusDTO,
>           3 : string firstname,
>           4 : string lastname,
>           5 : i64 dateCreated,
>           6 : i64 dateUpdated,
>           7 : string fullName,
>           8 : string customerCode,
>    }
>
>
>
> Doesn't spit anything on output. No comment for the struct and no
> comment for the field.
>
> It's nasty cause the generator has the code in to handle everything.
>
>   f_out_ << "<table class=\"table-bordered table-striped
> table-condensed\">";
>   f_out_ <<
> "<thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>
> Requiredness</"
>             "th><th>Default value</th></thead>" << endl;
>   for (; mem_iter != members.end(); mem_iter++) {
>     f_out_ << "<tr><td>" << (*mem_iter)->get_key() << "</td><td>";
>     f_out_ << (*mem_iter)->get_name();
>     f_out_ << "</td><td>";
>     print_type((*mem_iter)->get_type());
>     f_out_ << "</td><td>";
>     f_out_ << escape_html((*mem_iter)->get_doc());
>     f_out_ << "</td><td>";
>     if ((*mem_iter)->get_req() == t_field::T_OPTIONAL) {
>       f_out_ << "optional";
>     } else if ((*mem_iter)->get_req() == t_field::T_REQUIRED) {
>       f_out_ << "required";
>     } else {
>       f_out_ << "default";
>     }
>     f_out_ << "</td><td>";
>     t_const_value* default_val = (*mem_iter)->get_value();
>     if (default_val != NULL) {
>       f_out_ << "<code>";
>       print_const_value((*mem_iter)->get_type(), default_val);
>       f_out_ << "</code>";
>     }
>     f_out_ << "</td></tr>" << endl;
>
>
> And the output has the field to be filled in.
>
>
>
>       Struct: MvcClientDTO
>
> Key     Field   Type    Description     Requiredness    Default value
> 1       id      |i32|
>         default
> 2       firstname       |string|
>         default
> 3       lastname        |string|
>         default
> 4       status  |string|
>         default
> 5       dateCreated     |i64|
>         default
> 6       dateUpdated     |i64|
>         default
> 7       fullName        |string|
>         default
> 8       clientCode      |string|
>         default
>
>
> So I suppose it's just a matter of doing the comments right. But what's
> the exact format?
>
>
>
>