Repository navigation
Releases: EngBlock/zcode
Release list
zcode 0.1.4
Full Changelog: v0.1.3...v0.1.4
zcode 0.1.3
Live previews of Markdown and SVG files.
See a Markdown or SVG file rendered while you edit it. Editor ▸ Open Preview (⇧⌘V) opens a preview tab in the same pane. Open Preview to the Side (⌃⇧⌘V) opens it in the pane next to the editor, or in a new one on the right. The tab is named after the file, for example "README.md (Preview)". It works for .md, .markdown and .mdx files (MDX is read as plain Markdown) and for .svg files.
- Follows your typing. The preview shows what's in the editor, saved or not, and updates moments after you stop typing. A change made on disk shows up too.
- Markdown in the editor's theme: headings, lists, tables, code blocks with syntax colors, and images. Images and links with relative paths are found next to the file (a path starting with
/is read from the project's folder). Clicking a link to a file opens it in zcode, and web and mail links open in your browser or mail app. - Scrolls with the editor. A Markdown preview beside its editor keeps the part you're looking at in view. Scroll the editor and the preview follows, and moving the cursor to a part the preview isn't showing scrolls it there.
- SVGs drawn for the pane. An SVG is drawn to fill its pane, and again at the new size when you resize it. If an edit breaks the SVG, the last good drawing stays and the footer shows the error.
- The file's own tab stays the file's. Opening the file shows its editor, not its preview. A preview keeps working after you close the file's editor. Closing that editor still asks about unsaved changes, and Don't Save puts the saved text back. Renaming the file keeps its previews under the new name, moving it to the Trash closes them, and they come back when you reopen the project.
Not yet:
- Images from the web don't load in a Markdown preview.
- Raw HTML (
<img>,<details>) isn't rendered as a browser would. - Links to a heading (
#section) go nowhere. - Scrolling the preview doesn't move the editor.
- Text inside an SVG isn't drawn.
- The Editor menu's preview items stay enabled for files they don't apply to, where they do nothing. Quick Actions offers them only for Markdown and SVG files.
Full Changelog: v0.1.2...v0.1.3
zcode 0.1.2
Images open in zcode.
Image files open in a tab instead of failing. Opening a PNG used to fail with "is not a UTF-8 text file". Images now open in their own tab from the navigator, Open Quickly, zcode <file> or MCP's OpenFile. Supported: PNG, JPEG, GIF, TIFF, BMP, WebP, ICO, ICNS, HEIC/HEIF, JPEG 2000, and PDF (the first page).
- Sized to fit. An image is scaled down to fit the pane but never drawn bigger than its own size, so a small icon stays small. Images larger than 8192 pixels on a side are scaled down when decoded, and a PDF page is drawn at up to 2048 pixels.
- A footer with the details. It shows the format, the size in pixels (points for a PDF) and the file size, for example
PNG · 980 × 198 pixels · 16.1 KB. - Kept current. If the file changes on disk, it's read again when you come back to its tab.
- Decoded in the background, so a large image doesn't hold up the editor, and its memory is freed when you close the tab.
- A broken file says so. One that can't be decoded shows "Can't show this image" with the reason, instead of an error.
Not yet: SVGs still open as text, since they're source you edit. Animated GIFs show only their first frame. There's no zoom. Comparing a changed image in Code Review still reports it as not UTF-8 text.
Also new: scripts/default-app.sh makes zcode the app Finder opens Xcode projects, workspaces and Swift sources with. --restore gives them back to Xcode and --print shows what opens each one now. On macOS 26.4 and later, macOS asks you to confirm the first time a type changes.
Full Changelog: v0.1.1...v0.1.2
zcode 0.1.1
Mostly memory fixes.
An idle window no longer holds ~230 MB it doesn't need. A focused editor's caret blinked forever. Each blink redraws the window, and while a window keeps drawing, macOS charges it about 230 MB of graphics memory. The caret now stops blinking 10 seconds after your last key or click and stays shown. An idle window with an editor open now holds 28 MB of graphics memory instead of 260 MB. With 20 tabs open, zcode's own memory dropped from 475 MB to 233 MB.
The status bar's language server figure is now zcode's alone. It used to add up every SourceKitService on the Mac, so having Xcode open inflated it: 1.32 GB for a small package, which is really 29 MB.
sourcekit-lsp keeps fewer files open. A tab you aren't looking at is closed at the language server, unless it's one of the four you looked at last or has unsaved changes. That cuts the language server's live memory by about 0.6 GB with 10 to 40 tabs. Activity Monitor won't always show the drop right away, because macOS takes the freed memory back in its own time.
The cost: when you go back to a closed tab, sourcekit-lsp has to analyze it again. For a 5,000-line file that takes about a second. Its errors and syntax colors stay on screen meanwhile, but Quick Help and completion in that file wait. A closed file's issues also don't change until you show it again.
Fixed: a file opened after zcode started watching the project wasn't reloaded when something outside zcode changed it, for up to 30 seconds. It now reloads in about 0.2 seconds.
Full Changelog: v0.1.0...v0.1.1
zcode 0.1.0
What's Changed
- Releases by tag: build, sign, notarize and publish on v* tags by @NathanBeddoeWebDev in #1
New Contributors
- @NathanBeddoeWebDev made their first contribution in #1
Full Changelog: https://github.com/EngBlock/zcode/commits/v0.1.0