Description
I got an issue report on my project phpDocumentor/ReflectionDocBlock#365 where we found an issue in this parser. Summarized the users are facing an issue with tag descriptions containing empty lines.
/**
* @param string $myParam this is a description of the param
*
* And this line also belongs to $myParam.
* @param array $other this is a new param.
*/
Newlines in tag descriptions are possible, but when the newline is detected the parser stops consuming new tokens. While if should only stop when a new tag starts. Other reported issues are more or less out of scope of this issue and I can workaround them. But the situation with the newlines cannot be patched from the outside. To prove the solution I made an ugly hack in our code to see if we can overcome this issue by just adjusting a single method.
phpDocumentor/ReflectionDocBlock#369
The POC shows that the method getSkippedHorizontalWhiteSpaceIfAny is not working when the detected token is processed as a newline token. As a result the leading whitespace between param
and And
in my example is removed by the parser.
I would be able to create a PR to solve this issue. But before I invest more time I would like to see if other solutions are already available.