Move whitespace formatting to generic XHTML format #95
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Move whitespace formatting from
Render.php
to the generic XHTML format and add the option for each format to control their own whitespace formatting. Add a test to ensure XHTML formatting is correct.The current way of handling this in
Render.php
not only applies to all formats (XHTML, PDF, Manpage, etc.), it also does not allow formats to control the output of significant whitespace. With this PR, formats can implement theformat_whitespace()
method and override default whitespace output.This PR also moves the existing conditional whitespace formatting to the generic XHTML format as I assumed this was specifically added for rendering the documentation in XHTML format.
Note:
this also corrects a minor inconvenience in formatting where whitespace after the very first
<methodsynopsis>
,<constructorsynopsis>
or<destructorsynopsis>
is printed. This was due to a non-existent$elementStack[$currentDepth]
inin_array($elementStack[$currentDepth] ?? "", ["methodname", "methodparam", "type", "void"], true)
.Because of this fix, existing tests will need a minor update if this PR is merged which I will take care of.