Skip to content

Commit d6a69ee

Browse files
committed
feat: rename VS Code extension language ID and files from zon to zonf, update syntax highlighting rules, and add a developer experience section to the README.
1 parent b2a1b59 commit d6a69ee

File tree

6 files changed

+450
-71
lines changed

6 files changed

+450
-71
lines changed

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,12 @@ For nested objects and arrays, ZON omits the redundant colon, creating a cleaner
354354
user{name:Alice,roles[admin,dev]}
355355
```
356356
(Note: `user{...}` instead of `user:{...}`)
357+
358+
### Developer Experience
359+
ZON treats the format as a first-class language:
360+
- **VS Code Extension**: Syntax highlighting makes `.zonf` files readable.
361+
- **CLI**: `zon stats` gives immediate feedback on compression savings.
362+
- **Formatter**: `zon format` canonicalizes output for consistent diffs.
357363
- 💾 **Most Token-Efficient**: 4-15% fewer tokens than TOON across all tokenizers
358364
- 🎯 **JSON Data Model**: Encodes the same objects, arrays, and primitives as JSON with deterministic, lossless round-trips
359365
- 📐 **Minimal Syntax**: Explicit headers (`@(N)` for count, column list) eliminate ambiguity for LLMs

benchmarks/scripts/comprehensive-benchmark.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -133,19 +133,19 @@ for (const [categoryName, datasets] of Object.entries(categories)) {
133133
console.log(`\\n📈 ${categoryName}:`);
134134

135135
const avgGPT = {
136-
zonWins: datasets.filter(d => results.byDataset[d].gpt4o.zon < results.byDataset[d].gpt4o.toon).length,
136+
zonWins: datasets.filter(d => results.byDataset[d].gpt4o.zonf < results.byDataset[d].gpt4o.toon).length,
137137
avgSavingsVsTOON: datasets.reduce((sum, d) => sum + results.byDataset[d].gpt4o.savingsVsTOON, 0) / datasets.length,
138138
avgSavingsVsJSON: datasets.reduce((sum, d) => sum + results.byDataset[d].gpt4o.savingsVsJSON, 0) / datasets.length
139139
};
140140

141141
const avgClaude = {
142-
zonWins: datasets.filter(d => results.byDataset[d].claude.zon < results.byDataset[d].claude.toon).length,
142+
zonWins: datasets.filter(d => results.byDataset[d].claude.zonf < results.byDataset[d].claude.toon).length,
143143
avgSavingsVsTOON: datasets.reduce((sum, d) => sum + results.byDataset[d].claude.savingsVsTOON, 0) / datasets.length,
144144
avgSavingsVsJSON: datasets.reduce((sum, d) => sum + results.byDataset[d].claude.savingsVsJSON, 0) / datasets.length
145145
};
146146

147147
const avgLlama = {
148-
zonWins: datasets.filter(d => results.byDataset[d].llama.zon < results.byDataset[d].llama.toon).length,
148+
zonWins: datasets.filter(d => results.byDataset[d].llama.zonf < results.byDataset[d].llama.toon).length,
149149
avgSavingsVsTOON: datasets.reduce((sum, d) => sum + results.byDataset[d].llama.savingsVsTOON, 0) / datasets.length,
150150
avgSavingsVsJSON: datasets.reduce((sum, d) => sum + results.byDataset[d].llama.savingsVsJSON, 0) / datasets.length
151151
};
@@ -159,19 +159,19 @@ console.log(`\\n\\n📊 OVERALL PERFORMANCE:`);
159159

160160
const allDatasets = datasetNames;
161161
const overallGPT = {
162-
zonWins: allDatasets.filter(d => results.byDataset[d].gpt4o.zon < results.byDataset[d].gpt4o.toon).length,
162+
zonWins: allDatasets.filter(d => results.byDataset[d].gpt4o.zonf < results.byDataset[d].gpt4o.toon).length,
163163
avgSavingsVsTOON: allDatasets.reduce((sum, d) => sum + results.byDataset[d].gpt4o.savingsVsTOON, 0) / allDatasets.length,
164164
avgSavingsVsJSON: allDatasets.reduce((sum, d) => sum + results.byDataset[d].gpt4o.savingsVsJSON, 0) / allDatasets.length
165165
};
166166

167167
const overallClaude = {
168-
zonWins: allDatasets.filter(d => results.byDataset[d].claude.zon < results.byDataset[d].claude.toon).length,
168+
zonWins: allDatasets.filter(d => results.byDataset[d].claude.zonf < results.byDataset[d].claude.toon).length,
169169
avgSavingsVsTOON: allDatasets.reduce((sum, d) => sum + results.byDataset[d].claude.savingsVsTOON, 0) / allDatasets.length,
170170
avgSavingsVsJSON: allDatasets.reduce((sum, d) => sum + results.byDataset[d].claude.savingsVsJSON, 0) / allDatasets.length
171171
};
172172

173173
const overallLlama = {
174-
zonWins: allDatasets.filter(d => results.byDataset[d].llama.zon < results.byDataset[d].llama.toon).length,
174+
zonWins: allDatasets.filter(d => results.byDataset[d].llama.zonf < results.byDataset[d].llama.toon).length,
175175
avgSavingsVsTOON: allDatasets.reduce((sum, d) => sum + results.byDataset[d].llama.savingsVsTOON, 0) / allDatasets.length,
176176
avgSavingsVsJSON: allDatasets.reduce((sum, d) => sum + results.byDataset[d].llama.savingsVsJSON, 0) / allDatasets.length
177177
};

0 commit comments

Comments
 (0)