Skip to content

Commit 20aabb6

Browse files
authored
Implement Custom Messages (#56)
1 parent 56c6394 commit 20aabb6

File tree

9 files changed

+37
-9
lines changed

9 files changed

+37
-9
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ To set up the extension locally, install the LiquidJava extension in the [VS Cod
2525
<dependency>
2626
<groupId>io.github.liquid-java</groupId>
2727
<artifactId>liquidjava-api</artifactId>
28-
<version>0.0.3</version>
28+
<version>0.0.4</version>
2929
</dependency>
3030
```
3131

@@ -36,7 +36,7 @@ repositories {
3636
}
3737
3838
dependencies {
39-
implementation 'io.github.liquid-java:liquidjava-api:0.0.3'
39+
implementation 'io.github.liquid-java:liquidjava-api:0.0.4'
4040
}
4141
```
4242

client/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Additionally, to use LiquidJava in your project, you'll need the following depen
2222
<dependency>
2323
<groupId>io.github.liquid-java</groupId>
2424
<artifactId>liquidjava-api</artifactId>
25-
<version>0.0.3</version>
25+
<version>0.0.4</version>
2626
</dependency>
2727
```
2828

@@ -33,7 +33,7 @@ repositories {
3333
}
3434
3535
dependencies {
36-
implementation 'io.github.liquid-java:liquidjava-api:0.0.3'
36+
implementation 'io.github.liquid-java:liquidjava-api:0.0.4'
3737
}
3838
```
3939

7.52 KB
Binary file not shown.

client/src/types/diagnostics.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ export type RefinementError = BaseDiagnostic & {
6767
translationTable: TranslationTable;
6868
expected: ValDerivationNode;
6969
found: ValDerivationNode;
70+
customMessage: string;
7071
}
7172

7273
export type StateConflictError = BaseDiagnostic & {
@@ -82,6 +83,7 @@ export type StateRefinementError = BaseDiagnostic & {
8283
translationTable: TranslationTable;
8384
expected: string;
8485
found: string;
86+
customMessage: string;
8587
}
8688

8789
export type ArgumentMismatchError = BaseDiagnostic & {

client/src/webview/views/verification/errors.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,12 @@ export function renderErrors(errors: LJError[], expandedErrors: Set<number>): st
3030

3131
const errorContentRenderers: Partial<Record<LJError['type'], (error: LJError) => string>> = {
3232
'refinement-error': (e: RefinementError) => /*html*/`
33+
${e.customMessage ? renderSection('Message', e.customMessage) : ''}
3334
${renderSection('Expected', e.expected.value)}
3435
${renderCustomSection('Found', renderDerivationNode(e, e.found))}
3536
`,
3637
'state-refinement-error': (e: StateRefinementError) => /*html*/`
38+
${e.customMessage ? renderSection('Message', e.customMessage) : ''}
3739
${renderSection('Expected', e.expected)}
3840
${renderSection('Found', e.found)}
3941
`,

client/syntaxes/liquidjava.json

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,18 @@
99
"end": "\\)",
1010
"name": "meta.annotation.refinement.liquidjava",
1111
"patterns": [
12+
{
13+
"begin": "\\b(msg)\\s*=\\s*(\")",
14+
"beginCaptures": {
15+
"1": { "name": "variable.parameter.annotation.liquidjava" },
16+
"2": { "name": "string.quoted.double.java" }
17+
},
18+
"end": "\"",
19+
"endCaptures": {
20+
"0": { "name": "string.quoted.double.java" }
21+
},
22+
"contentName": "string.quoted.double.java"
23+
},
1224
{
1325
"begin": "\"",
1426
"end": "\"",
@@ -33,6 +45,18 @@
3345
"match": "\\b(from|to)\\b",
3446
"name": "variable.parameter.annotation.liquidjava"
3547
},
48+
{
49+
"begin": "\\b(msg)\\s*=\\s*(\")",
50+
"beginCaptures": {
51+
"1": { "name": "variable.parameter.annotation.liquidjava" },
52+
"2": { "name": "string.quoted.double.java" }
53+
},
54+
"end": "\"",
55+
"endCaptures": {
56+
"0": { "name": "string.quoted.double.java" }
57+
},
58+
"contentName": "string.quoted.double.java"
59+
},
3660
{
3761
"begin": "\"",
3862
"end": "\"",

server/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@
179179
<dependency>
180180
<groupId>io.github.liquid-java</groupId>
181181
<artifactId>liquidjava-verifier</artifactId>
182-
<version>0.0.11</version>
182+
<version>0.0.12</version>
183183
</dependency>
184184
<dependency>
185185
<groupId>tools.aqua</groupId>

server/src/main/java/dtos/errors/RefinementErrorDTO.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@
99
* DTO for serializing RefinementError instances to JSON
1010
*/
1111
public record RefinementErrorDTO(String category, String type, String title, String message, String file, ErrorPosition position,
12-
TranslationTableDTO translationTable, ValDerivationNode expected, ValDerivationNode found) {
12+
TranslationTableDTO translationTable, ValDerivationNode expected, ValDerivationNode found, String customMessage) {
1313

1414
public static RefinementErrorDTO from(RefinementError error) {
1515
return new RefinementErrorDTO("error", "refinement-error", error.getTitle(), error.getMessage(), error.getFile(),
16-
error.getPosition(), TranslationTableDTO.from(error.getTranslationTable()), error.getExpected(), error.getFound());
16+
error.getPosition(), TranslationTableDTO.from(error.getTranslationTable()), error.getExpected(), error.getFound(), error.getCustomMessage());
1717
}
1818
}

server/src/main/java/dtos/errors/StateRefinementErrorDTO.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88
* DTO for serializing StateRefinementError instances to JSON
99
*/
1010
public record StateRefinementErrorDTO(String category, String type, String title, String message, String file, ErrorPosition position,
11-
TranslationTableDTO translationTable, String expected, String found) {
11+
TranslationTableDTO translationTable, String expected, String found, String customMessage) {
1212

1313
public static StateRefinementErrorDTO from(StateRefinementError error) {
1414
return new StateRefinementErrorDTO("error", "state-refinement-error", error.getTitle(), error.getMessage(), error.getFile(),
1515
error.getPosition(), TranslationTableDTO.from(error.getTranslationTable()), error.getExpected(),
16-
error.getFound());
16+
error.getFound(), error.getCustomMessage());
1717
}
1818
}

0 commit comments

Comments
 (0)