You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2026/06/02 11:06:53 UTC
(camel) 11/15: Fix ANSI coloring for multiple external nodes on the same row
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch topology-external-endpoints
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 3bc920effa008f0a52fa2a78d465e903a1d7538c
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Jun 2 11:57:38 2026 +0200
Fix ANSI coloring for multiple external nodes on the same row
Sort counter positions right-to-left (descending column) within each row
before applying ANSI escape codes. This prevents insertions from shifting
character offsets for subsequent positions on the same line.
Co-Authored-By: Claude Opus 4.6 <no...@anthropic.com>
---
.../main/java/org/apache/camel/diagram/TopologyAsciiRenderer.java | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/components/camel-diagram/src/main/java/org/apache/camel/diagram/TopologyAsciiRenderer.java b/components/camel-diagram/src/main/java/org/apache/camel/diagram/TopologyAsciiRenderer.java
index 5f49104308c1..84bbbd065f2f 100644
--- a/components/camel-diagram/src/main/java/org/apache/camel/diagram/TopologyAsciiRenderer.java
+++ b/components/camel-diagram/src/main/java/org/apache/camel/diagram/TopologyAsciiRenderer.java
@@ -18,6 +18,7 @@ package org.apache.camel.diagram;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Comparator;
import java.util.List;
import org.apache.camel.diagram.TopologyLayoutEngine.TopologyLayoutEdge;
@@ -364,7 +365,10 @@ public class TopologyAsciiRenderer {
return plain;
}
String[] lines = plain.split("\n", -1);
- for (CounterPos cp : counterPositions) {
+ List<CounterPos> sorted = new ArrayList<>(counterPositions);
+ sorted.sort(
+ Comparator.comparingInt(CounterPos::row).thenComparing(Comparator.comparingInt(CounterPos::col).reversed()));
+ for (CounterPos cp : sorted) {
if (cp.row >= 0 && cp.row < lines.length) {
String line = lines[cp.row];
if (cp.col >= 0 && cp.col + cp.length <= line.length()) {