When <function> contains <replaceable>, skip link/parentheses
processing in format_function_text() and output plain text instead.
Uses the role stack pattern already established by format_constant().
Fixesphp/phd#171
Add links to constants with replaceable tags by processing them when the constant tag is being closed.
Add a test.
Co-authored-by: haszi <haszika80@gmail.com>
PhD's ObjectStorage::attach() method does not respect the declared
return type from its parent class (SplObjectStorage): the latter
declares the return type as void.
It is currently mitigated via the #[\ReturnTypeWillChange] attribute.
This commit removes that attribute and instead aligns the return type
declaration (to return void), with associated fixes to not return
anything and not try to use a return value.
Since declaring a void return type is only allowed as of PHP 7.1.0, this
raises the minimum required PHP version for phd to that version. Since
PHP 7.1 is super ancient and even PHP 7.3 will become EOL in a few weeks
(at the time of writing) I'm making the executive decision that
requiring 7.1 is fine. :-)
Union types can get pretty long, so it may make sense to split them
over multiple lines[1]; however, that adds undesired whitespace within
or at the end of the union type. Thus, we supress this whitespace
generally.
[1] <https://github.com/php/doc-en/pull/783>
Closes GH-46.
This patch adds some missing newlines and trims multiple redundant
newlines into a single newline.
According to POSIX, a line is a sequence of zero or more non-' <newline>'
characters plus a terminating '<newline>' character. [1] Files should
normally have at least one final newline character.
C89 [2] and later standards [3] mention a final newline:
"A source file that is not empty shall end in a new-line character,
which shall not be immediately preceded by a backslash character."
Although it is not mandatory for all files to have a final newline
fixed, a more consistent and homogeneous approach brings less of commit
differences issues and a better development experience in certain text
editors and IDEs.
[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
[2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2
[3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
Initially only supports <?phpdoc print-version-for="foobar"?>
where `foobar` is an item in the aggregated version.xml file.
print-version-for will go through the same mechanism as all
refpages to generate version information, and therefore
fallback to "may only be in svn" if no found.