vscode: remove .z extension, tweaks

This commit is contained in:
Steven Hugg committed 2026-09-29 15:34:52 +02:00
1 parent 5b7aa38cb9
commit 8f3d5a4870
6 files changed
+23 -12

No files matched your search

+6 -2
View File
@@ -13,8 +13,12 @@ First preview.
- Toolchains download on first use, checked against built-in hashes.
- Compiler and emulator crashes send an error report to 8bitworkshop.com,
following VS Code's `telemetry.telemetryLevel` setting. See the README.
- The Atari 2600 now stops at breakpoints and steps by instruction, not by
frame, and can step back.
- Debugging with <kbd>F5</kbd>: breakpoints on lines, functions and
conditions; step, step over, step out, step back and reverse continue;
a timeline to scrub through the recording while paused.
- Debug views: registers, the machine's internal state (the IDE's Debug
Tree), symbols, a call stack walked from return addresses, and
disassembly. Memory opens in VS Code's Hex Editor.
- `.s`, `.asm`, `.inc` and `.a` files in a project get the highlighting
for the platform's CPU. `.acme` files get 6502 highlighting.
- An `8bws` command in the integrated terminal builds and runs programs
+8 -2
View File
@@ -258,7 +258,7 @@ is; a `.c` file anywhere else sees nothing from us.
**Rule 2: claim a language ID only where nobody else does.**
- *Extensions only 8bitworkshop uses* (`.dasm`, `.ca65`, `.acme`, `.xa`,
`.nesasm`, `.z`, `.xasm`, `.lwasm`, `.vasm`, `.wiz`, `.ecs`, `.bb`,
`.nesasm`, `.zmac`, `.xasm`, `.lwasm`, `.vasm`, `.wiz`, `.ecs`, `.bb`,
`.cc2600`, `.cc7800`, ...): list them in
`contributes.languages[].extensions`, generated from `toolmeta.ts`.
Before each release, check the Marketplace for collisions.
@@ -1453,6 +1453,12 @@ vicdual, williams, zx. Since then (2026-09-26), vcs and arm32 work too. These do
| `vector-*` | no frames | Vector video isn't forwarded; the webview needs line drawing (`VectorVideo.drawLine` ops). |
| `kim1` | no frames | LED display, no raster video; needs its own view. |
**TODO: hidden until they run** (2026-09-29). `vector-z80color`,
`vector-ataricolor` (no frames) and `williams-z80` (`Worker is not
defined`) are in `SKIP_PLATFORMS` in `scripts/presetindex.ts`, so New
Project and Open Example don't offer them. Take each out of that list once
the survey shows it producing frames.
Also:
- **Start timeout.** A platform whose `start()` never settles leaves the
panel blank with no error (the CLI already reports "never finished
@@ -2379,7 +2385,7 @@ do them when a platform is the priority (VCS needs 3–4).
share; `scripts/syntaxes.ts` writes `out/syntaxes/`. `test/syntaxes.test.ts`
tokenizes with `vscode-textmate` and checks `package.json` against
`makeContributions()`. Only extensions no one else uses are claimed
(`.dasm .ca65 .xa .nesasm .z .zmac .sgb .xasm .lwasm`); `.s .asm .inc .a`
(`.dasm .ca65 .xa .nesasm .zmac .sgb .xasm .lwasm`); `.s .asm .inc .a`
wait for per-project language assignment (Rule 2).
- Decided: no C grammar of our own. C goes to clangd/cpptools with our
headers, defines and shims (`cheaders.ts`, §4 "C: feed clangd and
-1
View File
@@ -386,7 +386,6 @@
"Z80"
],
"extensions": [
".z",
".zmac",
".sgb"
],
+4 -5
View File
@@ -6,12 +6,11 @@
//
// writes <outDir>/8bitworkshop-<pack>-<ideVersion>-<hash>.tar.br and
// out/assets.json. Upload the packs to the asset server (ASSET_URLS in
// extension.ts). --quality trades size for speed: 11 (the default, for
// releases) takes minutes; 5 takes seconds.
// extension.ts). --quality trades size for speed: 11 (the default)
// takes minutes; 8 is nearly as small and much faster.
//
// `npm run package` packs a quick (quality 5) bundle so dev installs work;
// the release scripts (`npm run package:release`, `npm run vsce-publish`,
// `npm run ovsx-publish`) pack at full quality first. `vscode:prepublish`
// `npm run package` packs at quality 8, which we ship; `npm run
// package:release`, `vsce-publish` and `ovsx-publish` pack at 11. `vscode:prepublish`
// only builds, so vsce never repacks the assets on its own.
import * as fs from 'fs';
+4 -1
View File
@@ -21,7 +21,10 @@ import type { PresetIndex, TemplateInfo } from '../src/presettypes';
// families from the IDE's platform menu that the extension can't run
const SKIP_FAMILIES = ['MAME/Other', 'Interpreters'];
// platforms we never offer in the extension, even if the menu lists them
const SKIP_PLATFORMS = ['x86', 'vectrex', 'exidy', 'arm32'];
// TODO: vector-* need vector video in the webview, williams-z80 a headless
// sound Worker (notes/PLAN.md, "platforms that don't run in the extension")
const SKIP_PLATFORMS = ['x86', 'vectrex', 'exidy', 'arm32',
'vector-z80color', 'vector-ataricolor', 'williams-z80'];
const rootDir = path.resolve(process.argv[2] || path.join(__dirname, '../..'));
const outFile = path.resolve(process.argv[3] || path.join(__dirname, 'presets.json'));
+1 -1
View File
@@ -49,7 +49,7 @@ export const ASM_LANGUAGES: AsmLanguage[] = [
{
id: '8bws-z80', cpu: 'z80',
aliases: ['Z80 Assembly', 'Z80'],
extensions: ['.z', '.zmac', '.sgb'],
extensions: ['.zmac', '.sgb'],
opcodes: uniq([...K.opcodesZ80, ...K.opcodesGBZ80]),
registers: K.registersZ80,
conditions: K.conditionsZ80,