diff options
| author | Michael Williamson <mike@zwobble.org> | 2025-01-01 10:56:32 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2025-01-01 10:56:32 +0000 |
| commit | 7ff404bab52df237606f2018ccab722b05beb955 (patch) | |
| tree | ca5f4e25d5ba63aae1e28c97420f6da692ca6d30 /src/test/java | |
| parent | 26f165d9c04ecd8bd57a39641e9df4f01112de8d (diff) | |
Highlight ranges in source description
Diffstat (limited to 'src/test/java')
4 files changed, 86 insertions, 13 deletions
diff --git a/src/test/java/org/shedlang/compiler/config/BinConfigTests.java b/src/test/java/org/shedlang/compiler/config/BinConfigTests.java index d909bb84..eb6514d1 100644 --- a/src/test/java/org/shedlang/compiler/config/BinConfigTests.java +++ b/src/test/java/org/shedlang/compiler/config/BinConfigTests.java @@ -52,6 +52,6 @@ public class BinConfigTests { assertThat(error.source().describe(), equalTo(""" <string>:3:20 mainNamespace: "A.B", - ^""")); + ^^^^^""")); } } diff --git a/src/test/java/org/shedlang/compiler/config/ProjectConfigTests.java b/src/test/java/org/shedlang/compiler/config/ProjectConfigTests.java index f0deac1e..e710dcc6 100644 --- a/src/test/java/org/shedlang/compiler/config/ProjectConfigTests.java +++ b/src/test/java/org/shedlang/compiler/config/ProjectConfigTests.java @@ -95,7 +95,7 @@ public class ProjectConfigTests { assertThat(error.source().describe(), equalTo(""" <string>:1:8 {bins: true} - ^""" + ^^^^""" )); } @@ -161,7 +161,7 @@ public class ProjectConfigTests { assertThat(error.source().describe(), equalTo(""" <string>:1:12 {examples: true} - ^""" + ^^^^""" )); } @@ -227,7 +227,7 @@ public class ProjectConfigTests { assertThat(error.source().describe(), equalTo(""" <string>:1:12 {profiles: true} - ^""" + ^^^^""" )); } diff --git a/src/test/java/org/shedlang/compiler/config/json/Json5ObjectWithSourceTests.java b/src/test/java/org/shedlang/compiler/config/json/Json5ObjectWithSourceTests.java index ad7f7c1c..4dc1a117 100644 --- a/src/test/java/org/shedlang/compiler/config/json/Json5ObjectWithSourceTests.java +++ b/src/test/java/org/shedlang/compiler/config/json/Json5ObjectWithSourceTests.java @@ -41,7 +41,7 @@ public class Json5ObjectWithSourceTests { assertThat(error.source().describe(), equalTo(""" <string>:5:13 {}, - ^""" + ^^""" )); } @@ -74,7 +74,7 @@ public class Json5ObjectWithSourceTests { assertThat(error.source().describe(), equalTo(""" <string>:5:17 {x: true}, - ^""" + ^^^^""" )); } @@ -107,7 +107,7 @@ public class Json5ObjectWithSourceTests { assertThat(error.source().describe(), equalTo(""" <string>:5:17 {x: 1.2}, - ^""" + ^^^""" )); } @@ -189,7 +189,7 @@ public class Json5ObjectWithSourceTests { assertThat(error.source().describe(), equalTo(""" <string>:5:17 {x: true}, - ^""" + ^^^^""" )); } @@ -247,7 +247,7 @@ public class Json5ObjectWithSourceTests { assertThat(error.source().describe(), equalTo(""" <string>:5:13 {}, - ^""" + ^^""" )); } @@ -280,7 +280,7 @@ public class Json5ObjectWithSourceTests { assertThat(error.source().describe(), equalTo(""" <string>:5:20 {name: true}, - ^""" + ^^^^""" )); } @@ -311,7 +311,7 @@ public class Json5ObjectWithSourceTests { """ <string>:5:20 {name: "two"}, - ^""" + ^^^^^""" )); } @@ -369,7 +369,7 @@ public class Json5ObjectWithSourceTests { assertThat(error.source().describe(), equalTo(""" <string>:5:20 {name: true}, - ^""" + ^^^^""" )); } @@ -400,7 +400,7 @@ public class Json5ObjectWithSourceTests { """ <string>:5:20 {name: "two"}, - ^""" + ^^^^^""" )); } } diff --git a/src/test/java/org/shedlang/compiler/sources/FileFragmentSourceTests.java b/src/test/java/org/shedlang/compiler/sources/FileFragmentSourceTests.java index c0d7684a..0c1df6ac 100644 --- a/src/test/java/org/shedlang/compiler/sources/FileFragmentSourceTests.java +++ b/src/test/java/org/shedlang/compiler/sources/FileFragmentSourceTests.java @@ -111,6 +111,79 @@ public class FileFragmentSourceTests { } @Test + public void whenSourceIsZeroLengthThenPointerPointsToNextCharacter() { + var source = new FileFragmentSource( + "<filename>", + """ + abcdef + ghijkl + mnopqr""", + 9, + 9 + ); + + assertThat(source.describe(), equalTo(""" + <filename>:2:3 + ghijkl + ^""")); + } + + @Test + public void whenSourceIsOneCharacterThenPointerPointsToCharacter() { + var source = new FileFragmentSource( + "<filename>", + """ + abcdef + ghijkl + mnopqr""", + 9, + 9 + ); + + assertThat(source.describe(), equalTo(""" + <filename>:2:3 + ghijkl + ^""")); + } + + @Test + public void whenSourceIsMultipleCharactersOnSameLineThenPointerPointsToAllCharacters() { + var source = new FileFragmentSource( + "<filename>", + """ + abcdef + ghijkl + mnopqr""", + 9, + 12 + ); + + assertThat(source.describe(), equalTo(""" + <filename>:2:3 + ghijkl + ^^^""")); + } + + @Test + public void whenSourceIsMultipleCharactersOnMultipleLinesThenPointerPointsToFirstCharacter() { + // TODO: show multiple lines + var source = new FileFragmentSource( + "<filename>", + """ + abcdef + ghijkl + mnopqr""", + 9, + 14 + ); + + assertThat(source.describe(), equalTo(""" + <filename>:2:3 + ghijkl + ^""")); + } + + @Test public void atReturnsSubsectionOfCompleteSource() { var source = FileFragmentSource.file("<filename>", "abcdefg"); |
