Better documentation for type constructors.
GitOrigin-RevId: e41a742ced36e42205190572501c4f02b075bbba
This commit is contained in:
parent
c2991967ca
commit
1c78b6994a
@ -158,9 +158,10 @@ EOT
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getFunctionReturnTypeDescription($return_type)
|
protected function getFunctionReturnTypeDescription($return_type, $for_constructor)
|
||||||
{
|
{
|
||||||
return "\r\n/// <para>Returns <see cref=\"".substr($return_type, 0, -1).'"/>.</para>';
|
$shift = $for_constructor ? ' ' : '';
|
||||||
|
return "\r\n$shift/// <para>Returns <see cref=\"".substr($return_type, 0, -1).'"/>.</para>';
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function addClassDocumentation($class_name, $base_class_name, $description)
|
protected function addClassDocumentation($class_name, $base_class_name, $description)
|
||||||
@ -189,17 +190,17 @@ EOT
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function addDefaultConstructorDocumentation($class_name)
|
protected function addDefaultConstructorDocumentation($class_name, $class_description)
|
||||||
{
|
{
|
||||||
$this->addDocumentation(" $class_name();", <<<EOT
|
$this->addDocumentation(" $class_name();", <<<EOT
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Default constructor.
|
/// $class_description
|
||||||
/// </summary>
|
/// </summary>
|
||||||
EOT
|
EOT
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function addFullConstructorDocumentation($class_name, $known_fields, $info)
|
protected function addFullConstructorDocumentation($class_name, $class_description, $known_fields, $info)
|
||||||
{
|
{
|
||||||
$full_constructor = " $class_name(";
|
$full_constructor = " $class_name(";
|
||||||
$colon = '';
|
$colon = '';
|
||||||
@ -216,7 +217,7 @@ EOT
|
|||||||
|
|
||||||
$full_doc = <<<EOT
|
$full_doc = <<<EOT
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Constructor for initialization of all fields.
|
/// $class_description
|
||||||
/// </summary>
|
/// </summary>
|
||||||
EOT;
|
EOT;
|
||||||
foreach ($known_fields as $name => $type) {
|
foreach ($known_fields as $name => $type) {
|
||||||
|
@ -196,7 +196,7 @@ EOT
|
|||||||
$this->addDocumentation('object_ptr<ToType> move_object_as(FromType &&from) {', <<<EOT
|
$this->addDocumentation('object_ptr<ToType> move_object_as(FromType &&from) {', <<<EOT
|
||||||
/**
|
/**
|
||||||
* A function to cast a wrapped in td::td_api::object_ptr TDLib API object to its subclass or superclass.
|
* A function to cast a wrapped in td::td_api::object_ptr TDLib API object to its subclass or superclass.
|
||||||
* Casting an object to an incorrect type will lead to undefined bejaviour.
|
* Casting an object to an incorrect type will lead to undefined behaviour.
|
||||||
* Usage example:
|
* Usage example:
|
||||||
* \\code
|
* \\code
|
||||||
* td::td_api::object_ptr<td::td_api::callState> call_state = ...;
|
* td::td_api::object_ptr<td::td_api::callState> call_state = ...;
|
||||||
@ -321,9 +321,10 @@ EOT
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getFunctionReturnTypeDescription($return_type)
|
protected function getFunctionReturnTypeDescription($return_type, $for_constructor)
|
||||||
{
|
{
|
||||||
return PHP_EOL.' *'.PHP_EOL." * Returns $return_type.";
|
$shift = $for_constructor ? ' ' : ' ';
|
||||||
|
return PHP_EOL.$shift.'*'.PHP_EOL.$shift."* Returns $return_type.";
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function addClassDocumentation($class_name, $base_class_name, $description)
|
protected function addClassDocumentation($class_name, $base_class_name, $description)
|
||||||
@ -344,17 +345,17 @@ EOT
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function addDefaultConstructorDocumentation($class_name)
|
protected function addDefaultConstructorDocumentation($class_name, $class_description)
|
||||||
{
|
{
|
||||||
$this->addDocumentation(" $class_name();", <<<EOT
|
$this->addDocumentation(" $class_name();", <<<EOT
|
||||||
/**
|
/**
|
||||||
* Default constructor. All fields will be value-initilaized.
|
* $class_description
|
||||||
*/
|
*/
|
||||||
EOT
|
EOT
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function addFullConstructorDocumentation($class_name, $known_fields, $info)
|
protected function addFullConstructorDocumentation($class_name, $class_description, $known_fields, $info)
|
||||||
{
|
{
|
||||||
$explicit = count($known_fields) === 1 ? 'explicit ' : '';
|
$explicit = count($known_fields) === 1 ? 'explicit ' : '';
|
||||||
$full_constructor = " $explicit$class_name(";
|
$full_constructor = " $explicit$class_name(";
|
||||||
@ -367,7 +368,7 @@ EOT
|
|||||||
|
|
||||||
$full_doc = <<<EOT
|
$full_doc = <<<EOT
|
||||||
/**
|
/**
|
||||||
* Constructor for initialization of all fields.
|
* $class_description
|
||||||
*
|
*
|
||||||
|
|
||||||
EOT;
|
EOT;
|
||||||
|
@ -190,9 +190,10 @@ EOT
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getFunctionReturnTypeDescription($return_type)
|
protected function getFunctionReturnTypeDescription($return_type, $for_constructor)
|
||||||
{
|
{
|
||||||
return PHP_EOL.' *'.PHP_EOL." * <p> Returns {@link $return_type $return_type} </p>";
|
$shift = $for_constructor ? ' ' : ' ';
|
||||||
|
return PHP_EOL.$shift.'*'.PHP_EOL.$shift."* <p> Returns {@link $return_type $return_type} </p>";
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function addClassDocumentation($class_name, $base_class_name, $description)
|
protected function addClassDocumentation($class_name, $base_class_name, $description)
|
||||||
@ -219,17 +220,17 @@ EOT
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function addDefaultConstructorDocumentation($class_name)
|
protected function addDefaultConstructorDocumentation($class_name, $class_description)
|
||||||
{
|
{
|
||||||
$this->addDocumentation(" public $class_name() {", <<<EOT
|
$this->addDocumentation(" public $class_name() {", <<<EOT
|
||||||
/**
|
/**
|
||||||
* Default constructor.
|
* $class_description
|
||||||
*/
|
*/
|
||||||
EOT
|
EOT
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function addFullConstructorDocumentation($class_name, $known_fields, $info)
|
protected function addFullConstructorDocumentation($class_name, $class_description, $known_fields, $info)
|
||||||
{
|
{
|
||||||
$full_constructor = " public $class_name(";
|
$full_constructor = " public $class_name(";
|
||||||
$colon = '';
|
$colon = '';
|
||||||
@ -241,7 +242,7 @@ EOT
|
|||||||
|
|
||||||
$full_doc = <<<EOT
|
$full_doc = <<<EOT
|
||||||
/**
|
/**
|
||||||
* Constructor for initialization of all fields.
|
* $class_description
|
||||||
*
|
*
|
||||||
|
|
||||||
EOT;
|
EOT;
|
||||||
|
@ -87,15 +87,15 @@ abstract class TlDocumentationGenerator
|
|||||||
|
|
||||||
abstract protected function addAbstractClassDocumentation($class_name, $value);
|
abstract protected function addAbstractClassDocumentation($class_name, $value);
|
||||||
|
|
||||||
abstract protected function getFunctionReturnTypeDescription($return_type);
|
abstract protected function getFunctionReturnTypeDescription($return_type, $for_constructor);
|
||||||
|
|
||||||
abstract protected function addClassDocumentation($class_name, $base_class_name, $description);
|
abstract protected function addClassDocumentation($class_name, $base_class_name, $description);
|
||||||
|
|
||||||
abstract protected function addFieldDocumentation($class_name, $field_name, $type_name, $field_info, $may_be_null);
|
abstract protected function addFieldDocumentation($class_name, $field_name, $type_name, $field_info, $may_be_null);
|
||||||
|
|
||||||
abstract protected function addDefaultConstructorDocumentation($class_name);
|
abstract protected function addDefaultConstructorDocumentation($class_name, $class_description);
|
||||||
|
|
||||||
abstract protected function addFullConstructorDocumentation($class_name, $known_fields, $info);
|
abstract protected function addFullConstructorDocumentation($class_name, $class_description, $known_fields, $info);
|
||||||
|
|
||||||
public function generate($tl_scheme_file, $source_file)
|
public function generate($tl_scheme_file, $source_file)
|
||||||
{
|
{
|
||||||
@ -237,7 +237,7 @@ abstract class TlDocumentationGenerator
|
|||||||
$base_class_name = $current_class ?: $this->getBaseClassName($is_function);
|
$base_class_name = $current_class ?: $this->getBaseClassName($is_function);
|
||||||
$class_description = $info['description'];
|
$class_description = $info['description'];
|
||||||
if ($is_function) {
|
if ($is_function) {
|
||||||
$class_description .= $this->getFunctionReturnTypeDescription($this->getTypeName($type));
|
$class_description .= $this->getFunctionReturnTypeDescription($this->getTypeName($type), false);
|
||||||
}
|
}
|
||||||
$this->addClassDocumentation($class_name, $base_class_name, $class_description);
|
$this->addClassDocumentation($class_name, $base_class_name, $class_description);
|
||||||
|
|
||||||
@ -246,10 +246,19 @@ abstract class TlDocumentationGenerator
|
|||||||
$this->addFieldDocumentation($class_name, $this->getFieldName($name, $class_name), $this->getTypeName($type), $info[$name], $may_be_null);
|
$this->addFieldDocumentation($class_name, $this->getFieldName($name, $class_name), $this->getTypeName($type), $info[$name], $may_be_null);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->addDefaultConstructorDocumentation($class_name);
|
if ($is_function) {
|
||||||
|
$default_constructor_prefix = 'Default constructor for a function, which ';
|
||||||
|
$full_constructor_prefix = 'Creates a function, which ';
|
||||||
|
$class_description = lcfirst($info['description']);
|
||||||
|
$class_description .= $this->getFunctionReturnTypeDescription($this->getTypeName($type), true);
|
||||||
|
} else {
|
||||||
|
$default_constructor_prefix = '';
|
||||||
|
$full_constructor_prefix = '';
|
||||||
|
}
|
||||||
|
$this->addDefaultConstructorDocumentation($class_name, $default_constructor_prefix.$class_description);
|
||||||
|
|
||||||
if ($known_fields) {
|
if ($known_fields) {
|
||||||
$this->addFullConstructorDocumentation($class_name, $known_fields, $info);
|
$this->addFullConstructorDocumentation($class_name, $full_constructor_prefix.$class_description, $known_fields, $info);
|
||||||
}
|
}
|
||||||
|
|
||||||
$description = '';
|
$description = '';
|
||||||
|
Reference in New Issue
Block a user