Two issues were fixed in the split regex:
1. Special characters before `.` were ignored:
The old regex only split on `.` when directly preceded by a word
character (\w), causing splits to be missed when `.` was preceded
by special characters like whitespace, / or $.
Result before: `foo /.bar.one` => `['foo /.bar', 'one']`
Result after: `foo /.bar.one` => `['foo /', 'bar', 'one']`
2. Brackets mid-word were incorrectly split:
The old regex split before any `[`, causing keys like `con[0]cat` to be
split incorrectly.
Resulti before: `con[0]cat` => `['con', '[0]cat']`
Now splits before `[` only when it's a standalone array index — meaning
`]` is followed by `.`, another `[`, or end of string.
Result after: `con[0]cat` => `['con', '[0]', 'cat']`
- Keep bracketed state labels as text inside plugin output (state-ball
replacements)
- Hide the text visually while preserving the existing state-ball
styling
Nice when copy&pasting plugin output to a code agent.
---------
Co-authored-by: Fabian Salomon <4098510+fsalomon@users.noreply.github.com>
Since PHP 8.4 implicitly nullable parameter types are deprecated.
Normalize scoped PHPDoc for nullable-parameter updates: use `?Type` instead of
`Type|null` and remove column alignment.
Co-authored-by: "Eric Lippmann <eric.lippmann@icinga.com>"
This avoids several sub queries where just one is sufficient.
Before: `(a=b|c=d|e=f)|(g=h|i=j|k=l)|(m=n|o=p)`
After: `(a=b|c=d|e=f|g=h|i=j|k=l|m=n|o=p)`
Whether this has a real advantage needs to be seen, but I
think it helps the query optimizers to better optimize :D
If the shorten output contained (not properly closed) HTML element, it merged the next list-item into the same html tag, because the closing tag was missing.
So we therefor shorten the output by characterLimit before proccessing it