Skip to content

Commit 10a267b

Browse files
authored
Merge pull request #80 from rzk-lang/release-v0.6.1
Release v0.6.1
2 parents e6b73e6 + a48491e commit 10a267b

7 files changed

Lines changed: 380 additions & 5 deletions

File tree

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,23 @@ All notable changes to the "rzk-1-experimental-highlighting" extension will be d
44

55
Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
66

7+
## v0.6.1 - 2026-07-25
8+
9+
This release updates the grammar to match `rzk` v0.11.1, which adds higher
10+
inductive types. The minimum supported `rzk` version is unchanged (v0.11.0);
11+
an extension-managed `rzk` picks up v0.11.1 on its own, since it always
12+
updates to the latest release the extension supports.
13+
14+
- Highlight the re-ascription clauses `eliminate with` and `compute with`,
15+
which replace the `eliminator` clause of `rzk` v0.11.0. Both are matched as
16+
two-word sequences, as `let mod` already was, because `compute` on its own
17+
is a plausible identifier and only the pair is a keyword.
18+
- The `into` motive of a modal `let mod` (new in `rzk` v0.11.1) needs no
19+
grammar change: `into` was already a keyword for `match`.
20+
- Cover the new syntax in the tests: the circle with a path constructor and
21+
both re-ascription clauses, taken from the `rzk` documentation and checked
22+
against `rzk` v0.11.1, is added to the snapshot fixtures.
23+
724
## v0.6.0 - 2026-07-21
825

926
This release accompanies `rzk` v0.11.0 and pins the extension to it: the

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"displayName": "Rzk",
44
"description": "Interactive theorem proving support in VS Code for Rzk, a proof assistant for synthetic ∞-categories",
55
"icon": "images/icon.png",
6-
"version": "0.6.0",
6+
"version": "0.6.1",
77
"repository": "https://github.com/rzk-lang/vscode-rzk",
88
"publisher": "NikolaiKudasovfizruk",
99
"main": "./out/extension.js",

syntaxes/rzk.tmLanguage.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,11 @@
138138
},
139139
{
140140
"name": "keyword.control.rzk",
141-
"match": "(?<=^|[.\\\\;,#\"\\]\\[)(}{><|\\s])(match|into|eliminator)(?=$|[.\\\\;,#\"\\]\\[)(}{><|\\s])"
141+
"match": "(?<=^|[.\\\\;,#\"\\]\\[)(}{><|\\s])(match|into)(?=$|[.\\\\;,#\"\\]\\[)(}{><|\\s])"
142+
},
143+
{
144+
"name": "keyword.control.rzk",
145+
"match": "(?<=^|[.\\\\;,#\"\\]\\[)(}{><|\\s])(eliminate|compute)\\s+(with)(?=$|[.\\\\;,#\"\\]\\[)(}{><|\\s])"
142146
},
143147
{
144148
"name": "keyword.control.as.rzk",

syntaxes/rzk.tmLanguage.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,12 @@ repository:
7070
- name: support.function.rzk
7171
match: (?<=^|[.\\;,#"\]\[)(}{><|\s])(recOR|recBOT|idJ|refl|first|second|π₁|π₂|unit|sup|inf|invᵒᵖ|uninvᵒᵖ|flipᵒᵖ|unflipᵒᵖ|inv_op|uninv_op|flip_op|unflip_op)((?=$|[.\\;,#"\]\[)(}{><|\s])|(?=_{))
7272
- name: keyword.control.rzk
73-
match: (?<=^|[.\\;,#"\]\[)(}{><|\s])(match|into|eliminator)(?=$|[.\\;,#"\]\[)(}{><|\s])
73+
match: (?<=^|[.\\;,#"\]\[)(}{><|\s])(match|into)(?=$|[.\\;,#"\]\[)(}{><|\s])
74+
# The re-ascription clauses of a #data body. Matched as two-word
75+
# sequences, as `let mod` is below: `compute` on its own is a plausible
76+
# identifier, and only the pair is a keyword.
77+
- name: keyword.control.rzk
78+
match: (?<=^|[.\\;,#"\]\[)(}{><|\s])(eliminate|compute)\s+(with)(?=$|[.\\;,#"\]\[)(}{><|\s])
7479
- name: keyword.control.as.rzk
7580
match: (?<=^|[.\\;,#"\]\[)(}{><|\s])as(?=$|[.\\;,#"\]\[)(}{><|\s])
7681
- name: keyword.control.rzk

tests/colorize/inductive.rzk

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,17 @@ match
1919
into
2020
-- <-- keyword.control.rzk
2121

22-
-- the eliminator re-ascription clause of a #data body
23-
eliminator
22+
-- the re-ascription clauses of a #data body (rzk v0.11.1)
23+
eliminate with
2424
-- <-- keyword.control.rzk
2525

26+
compute with
27+
-- <-- keyword.control.rzk
28+
29+
-- neither word is a keyword on its own
30+
compute
31+
-- <-- source.rzk
32+
2633
-- ASCII lattice operations are builtin functions
2734
sup
2835
-- <-- support.function.rzk

tests/fixtures/inductive.rzk

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,32 @@
3232

3333
#define join-unicode (a b : 𝕀) : 𝕀
3434
:= a ⊔ (a ⊓ b)
35+
36+
#define transport
37+
( A : U) (C : A → U) (x y : A) (p : x =_{A} y) (u : C x)
38+
: C y
39+
:= idJ (A , x , \ y' _ → C x → C y' , \ v → v , y , p) u
40+
41+
#define ap
42+
( A B : U) (f : A → B) (x y : A) (p : x =_{A} y)
43+
: f x =_{B} f y
44+
:= idJ (A , x , \ y' _ → f x =_{B} f y' , refl , y , p)
45+
46+
#data circle
47+
:=
48+
pt
49+
| turn : pt =_{circle} pt
50+
eliminate with ind-circle
51+
: ( C : circle → U)
52+
→ ( b : C pt)
53+
→ ( ℓ : transport circle C pt pt turn b = b)
54+
→ ( x : circle)
55+
→ C x
56+
compute with compute-rec-circle-turn
57+
: ( C : U)
58+
→ ( b : C)
59+
→ ( ℓ : b = b)
60+
→ ap circle C (rec-circle C b ℓ) pt pt turn = ℓ
61+
62+
#define circle-id (x : circle) : circle
63+
:= match x (pt ⇒ pt | turn ⇒ turn)

0 commit comments

Comments
 (0)