feat: Make the analyzer's colour carry meaning too

The browser reads its values by data-type family; the analyzer had only
inherited the two bands. Now the three places it puts information on
screen say what that information is.

A verdict is coloured by what it means: a defect red, a clean round trip
green, and a skip or a filtered packet muted, because those are not
findings and must not read as though they were. That distinction is the
one the demo exists to show, and until now the column stated it in words
alone. The two directions get colours as well as glyphs, so an exchange
can be followed down the column rather than a row at a time.

Getting there meant building each row from styled cells rather than
styling the row as a whole, which is the same change the browser's
message table needed and for the same reason: a terminal ends a style at
the next reset, so a row styled as a whole loses its styling at the first
cell that colours itself. The verdict keeps its colour even on the
selected row -- it is the answer the tool exists to give, and five other
cells plus the marker already say which row is selected.

A hex dump is three things on one line: where you are, what is there,
and what it reads as in text. Only the middle is the data, and drawing
all three alike made the row a wall to parse before anything could be
looked up. The offset and the text pane are now context.

And plc4x renders its parse trees as nested boxes, which is what makes
them readable at all -- but undifferentiated the frames outweigh what is
inside them and a screenful reads as texture rather than structure. The
frames drop to the chrome colour. Only the Unicode box-drawing block is
dimmed, deliberately: the ASCII characters a box could be drawn from
occur in payload text too, and dimming those would dim data.

Every assertion was checked against a mutation of the code it covers,
and the existing NO_COLOR guard already covers the lot: none of this
reaches a terminal that asked for no colour.
4 files changed
tree: f69f0d26dda198b003243e1ab03303112a6fe3d0
  1. .github/
  2. .mvn/
  3. media/
  4. plc4c/
  5. plc4go/
  6. plc4j/
  7. .asf.yaml
  8. .editorconfig
  9. .gitignore
  10. CHANGELOG.md
  11. LICENSE
  12. mvnw
  13. mvnw.cmd
  14. NOTICE
  15. pom.xml
  16. README.md
  17. RELEASE_NOTES
README.md

Building PLC4X Extras

For building all parts of PLC4X-Extras ensure you‘re running at least Java 21. Maven 4.0.0-rc-6 or newer is required to build, so be sure it’s installed and available on your system (the bundled Maven-Wrapper takes care of this automatically when using ./mvnw or mvnw instead of the normal mvn command).

Run the following command:

./mvnw -P with-c,with-go,with-java install

Licensing

Apache PLC4X is released under the Apache License Version 2.0.