From 804fee4db042a443b457975f4a4124edecf07fdf Mon Sep 17 00:00:00 2001 From: Riccardo Azzolini Date: Mon, 12 Aug 2019 18:40:17 +0200 Subject: [PATCH] Use tab-expanded column numbers when formatting DSL errors --- .../math/rules/dsl/errorutils/FilesErrorsFormatter.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/it/cavallium/warppi/math/rules/dsl/errorutils/FilesErrorsFormatter.java b/core/src/main/java/it/cavallium/warppi/math/rules/dsl/errorutils/FilesErrorsFormatter.java index 129d6fd8..906e7343 100644 --- a/core/src/main/java/it/cavallium/warppi/math/rules/dsl/errorutils/FilesErrorsFormatter.java +++ b/core/src/main/java/it/cavallium/warppi/math/rules/dsl/errorutils/FilesErrorsFormatter.java @@ -42,7 +42,11 @@ public class FilesErrorsFormatter { final List spannedLines = lines.getSpannedLines(error.getPosition(), error.getLength()); final LineMap.Line firstLine = spannedLines.get(0); - final int column = error.getPosition() - firstLine.getStartPosition() + 1; + + final int positionInFirstLine = error.getPosition() - firstLine.getStartPosition(); + final TabExpandedString expandedFirstLine = new TabExpandedString(firstLine.getText(), TAB_WIDTH); + // When computing the column number, each tab character is counted as the number of spaces it expands to + final int column = 1 + expandedFirstLine.substringLength(0, positionInFirstLine); builder.append(filePath).append(":") .append(firstLine.getNumber()).append(":")