diff options
Diffstat (limited to 'language-web/src/main')
-rw-r--r-- | language-web/src/main/js/index.tsx | 22 | ||||
-rw-r--r-- | language-web/src/main/js/language/indentation.ts | 2 | ||||
-rw-r--r-- | language-web/src/main/js/language/problemLanguageSupport.ts | 5 |
3 files changed, 16 insertions, 13 deletions
diff --git a/language-web/src/main/js/index.tsx b/language-web/src/main/js/index.tsx index 13a62af0..595498fc 100644 --- a/language-web/src/main/js/index.tsx +++ b/language-web/src/main/js/index.tsx | |||
@@ -9,27 +9,27 @@ import { ThemeProvider } from './theme/ThemeProvider'; | |||
9 | import '../css/index.scss'; | 9 | import '../css/index.scss'; |
10 | 10 | ||
11 | const initialValue = `class Family { | 11 | const initialValue = `class Family { |
12 | contains Person[] members | 12 | contains Person[] members |
13 | } | 13 | } |
14 | 14 | ||
15 | class Person { | 15 | class Person { |
16 | Person[] children opposite parent | 16 | Person[] children opposite parent |
17 | Person[0..1] parent opposite children | 17 | Person[0..1] parent opposite children |
18 | int age | 18 | int age |
19 | TaxStatus taxStatus | 19 | TaxStatus taxStatus |
20 | } | 20 | } |
21 | 21 | ||
22 | enum TaxStatus { | 22 | enum TaxStatus { |
23 | child, student, adult, retired | 23 | child, student, adult, retired |
24 | } | 24 | } |
25 | 25 | ||
26 | % A child cannot have any dependents. | 26 | % A child cannot have any dependents. |
27 | pred invalidTaxStatus(Person p) <-> | 27 | pred invalidTaxStatus(Person p) <-> |
28 | taxStatus(p, child), | 28 | taxStatus(p, child), |
29 | children(p, _q) | 29 | children(p, _q) |
30 | ; taxStatus(p, retired), | 30 | ; taxStatus(p, retired), |
31 | parent(p, q), | 31 | parent(p, q), |
32 | !taxStatus(q, retired). | 32 | !taxStatus(q, retired). |
33 | 33 | ||
34 | unique family. | 34 | unique family. |
35 | Family(family). | 35 | Family(family). |
diff --git a/language-web/src/main/js/language/indentation.ts b/language-web/src/main/js/language/indentation.ts index b2f0134b..973b4a80 100644 --- a/language-web/src/main/js/language/indentation.ts +++ b/language-web/src/main/js/language/indentation.ts | |||
@@ -78,7 +78,7 @@ export function indentDeclaration(context: TreeIndentContext): number { | |||
78 | export function indentPredicate(context: TreeIndentContext): number { | 78 | export function indentPredicate(context: TreeIndentContext): number { |
79 | const clauseIndent = indentDeclarationStrategy(context, 1); | 79 | const clauseIndent = indentDeclarationStrategy(context, 1); |
80 | if (/^\s+(;|\.)/.exec(context.textAfter) !== null) { | 80 | if (/^\s+(;|\.)/.exec(context.textAfter) !== null) { |
81 | return clauseIndent - context.unit; | 81 | return clauseIndent - 2; |
82 | } | 82 | } |
83 | return clauseIndent; | 83 | return clauseIndent; |
84 | } | 84 | } |
diff --git a/language-web/src/main/js/language/problemLanguageSupport.ts b/language-web/src/main/js/language/problemLanguageSupport.ts index c9e61b31..80d25d71 100644 --- a/language-web/src/main/js/language/problemLanguageSupport.ts +++ b/language-web/src/main/js/language/problemLanguageSupport.ts | |||
@@ -3,6 +3,7 @@ import { | |||
3 | foldInside, | 3 | foldInside, |
4 | foldNodeProp, | 4 | foldNodeProp, |
5 | indentNodeProp, | 5 | indentNodeProp, |
6 | indentUnit, | ||
6 | LanguageSupport, | 7 | LanguageSupport, |
7 | LRLanguage, | 8 | LRLanguage, |
8 | } from '@codemirror/language'; | 9 | } from '@codemirror/language'; |
@@ -79,5 +80,7 @@ const problemLanguage = LRLanguage.define({ | |||
79 | }); | 80 | }); |
80 | 81 | ||
81 | export function problemLanguageSupport(): LanguageSupport { | 82 | export function problemLanguageSupport(): LanguageSupport { |
82 | return new LanguageSupport(problemLanguage); | 83 | return new LanguageSupport(problemLanguage, [ |
84 | indentUnit.of(' '), | ||
85 | ]); | ||
83 | } | 86 | } |