Compare commits

...
Author SHA1 Message Date
root-at-skic 0b536f3e10 Name all commands "Archify | …", keep the menu section last; 0.5.2
All eight commands drop the Archify category and carry the prefix in the
title, so menus, the editor title bar and the Command Palette read the
same. The right-click group is zzz_archify: VS Code has a built-in
z_commands group that would otherwise sort after it.
2026-10-10 15:04:52 +03:00
root-at-skic bc294dc6bd Rename the new-diagram command to Archify | New Diagram… 2026-10-10 13:49:27 +03:00
root-at-skic 1a5482b4bf Put Archify right-click entries in their own section at the bottom
Explorer and editor-tab context menus: the Archify commands used the
built-in navigation group and were mixed with New File, New Folder and
the rest. They now use a z_archify group, which VS Code sorts last and
separates with a divider.
2026-10-10 13:47:57 +03:00
root-at-skic ac9200ccdd Merge pull request 'Release 0.5.1: describe .archify (YAML) as the diagram format everywhere' (#17) from docs/clarify-formats into main 2026-10-07 02:55:37 -07:00
6 changed files with 31 additions and 33 deletions

No files matched your search

+5
View File
@@ -1,5 +1,10 @@
# Changelog
## 0.5.2 — 2026-10-10
- **Right-click menus:** the Archify commands (Archify | New Diagram…, Archify | Open Preview, Archify | Render to HTML File…, Archify | Open in HTML Viewer) now sit in their own section at the very bottom of the Explorer and editor-tab menus, instead of between New File, New Folder and the other built-in entries.
- **All commands are named "Archify | …"**, the same in right-click menus, the editor title bar and the Command Palette: Archify | New Diagram… (was *New Diagram Archify…*), Archify | Open Preview, Archify | Open Preview to the Side, Archify | Render to HTML File…, Archify | Open in HTML Viewer, Archify | Open in Browser, Archify | Refresh Preview, Archify | Show Source.
## 0.5.1 — 2026-10-07
- **Clearer descriptions:** the Marketplace description, README and messages now say plainly that diagrams are `.archify` files in YAML. Archify's own JSON files (`*.architecture.json`, …) and rendered HTML are described as also supported, in their own section.
+5 -5
View File
@@ -18,7 +18,7 @@ New diagrams should be `.archify` files; everything below describes them unless
## Quick start
The fastest start: right-click a folder in the Explorer and choose **New Diagram Archify…** (also in *File → New File…* and the Command Palette). Pick a kind of diagram (Architecture, Workflow, Sequence, Data Flow, Lifecycle or Everyday Plan), give it a name, and a small working `.archify` file is created and opened. Change its YAML to fit your case.
The fastest start: right-click a folder in the Explorer and choose **Archify | New Diagram…** (also in *File → New File…* and the Command Palette). Pick a kind of diagram (Architecture, Workflow, Sequence, Data Flow, Lifecycle or Everyday Plan), give it a name, and a small working `.archify` file is created and opened. Change its YAML to fit your case.
To write one by hand:
@@ -59,22 +59,22 @@ The Archify CLI and the AI agents that use it write diagrams as JSON, named `nam
## Features
- **New diagram from a template**: *New Diagram Archify…* creates a starter `.archify` file for any of the five diagram kinds, or an everyday plan, in the chosen folder.
- **New diagram from a template**: *Archify | New Diagram…* creates a starter `.archify` file for any of the five diagram kinds, or an everyday plan, in the chosen folder.
- **Diagram editor**: `.archify` files open as the rendered diagram. **Show Source** opens the YAML beside it, and edits re-render live.
- **Live updates**: the diagram re-renders as you edit, and keeps the focus and route you selected (`#focus=…`, `#route=…`).
- **HTML viewer**: right-click a rendered `.html` file and choose **Open in Archify HTML Viewer**, or use *Reopen Editor With… → Archify HTML Viewer*. For Archify HTML already open as text, a button appears in the editor title. The viewer reloads when the file changes on disk.
- **HTML viewer**: right-click a rendered `.html` file and choose **Archify | Open in HTML Viewer**, or use *Reopen Editor With… → Archify HTML Viewer*. For Archify HTML already open as text, a button appears in the editor title. The viewer reloads when the file changes on disk.
- **Problems**: YAML syntax errors, plus `archify validate`'s schema, layout and evidence problems, appear at the matching line of the `.archify` file.
- **Brand logos**: after `brand:` the editor suggests Archify's built-in brand IDs (PostgreSQL, Redis, Kafka, Docker, …). Typing an alias or product name finds them too, so `kafka` offers `apache-kafka`. An unknown brand is reported on its own line.
- **Schema help**: completion and hover from Archify's own schemas, through the YAML extension for `.archify` files.
- **Source links**: in source-backed diagrams, clicking a source reference opens that file and line range in the editor. If the file is not in the workspace, the web link opens instead.
- **Export**: the diagram's own Export menu (PNG, SVG, share card, …) saves through a VS Code save dialog.
- **Commands**: *New Diagram Archify…*, *Archify: Render to HTML File…*, *Archify: Open in Browser*, *Archify: Refresh Preview*, *Archify: Show Source*.
- **Commands**: *Archify | New Diagram…*, *Archify | Render to HTML File…*, *Archify | Open in Browser*, *Archify | Refresh Preview*, *Archify | Show Source*.
## Source evidence
A diagram that declares `meta.repository` and `sources` is verified against a local Git checkout whose `origin` and pinned commit match. The extension uses the Git top-level directory of the diagram file, or `archify.repoRoot` when set.
When verification fails, the default (`archify.sourceEvidence: "fallback"`) still shows the diagram without source links, explains why in a notice, and reports the reason as a warning. Set it to `"strict"` to treat this as an error, as the Archify CLI does. *Render to HTML File…* always verifies strictly and asks before rendering without source links.
When verification fails, the default (`archify.sourceEvidence: "fallback"`) still shows the diagram without source links, explains why in a notice, and reports the reason as a warning. Set it to `"strict"` to treat this as an error, as the Archify CLI does. *Archify | Render to HTML File…* always verifies strictly and asks before rendering without source links.
## Settings
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "archify-vscode-ext",
"version": "0.5.1",
"version": "0.5.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "archify-vscode-ext",
"version": "0.5.1",
"version": "0.5.2",
"license": "MIT",
"dependencies": {
"yaml": "^2.9.1"
+14 -21
View File
@@ -2,7 +2,7 @@
"name": "archify-vscode-ext",
"displayName": "Archify Diagram Viewer",
"description": "Archify diagrams in VS Code. Write diagrams as .archify files in YAML: they open as the interactive diagram, with live updates, validation, templates and completion. Also previews Archify's own JSON files (*.architecture.json, \u2026) and opens rendered Archify HTML.",
"version": "0.5.1",
"version": "0.5.2",
"publisher": "root-at-skic",
"license": "MIT",
"icon": "media/icon.png",
@@ -41,49 +41,42 @@
"commands": [
{
"command": "archify.newDiagram",
"title": "New Diagram Archify\u2026",
"title": "Archify | New Diagram\u2026",
"icon": "$(new-file)"
},
{
"command": "archify.showPreview",
"title": "Open Preview",
"category": "Archify",
"title": "Archify | Open Preview",
"icon": "$(open-preview)"
},
{
"command": "archify.showPreviewToSide",
"title": "Open Preview to the Side",
"category": "Archify",
"title": "Archify | Open Preview to the Side",
"icon": "$(open-preview)"
},
{
"command": "archify.openHtmlViewer",
"title": "Open in Archify HTML Viewer",
"category": "Archify",
"title": "Archify | Open in HTML Viewer",
"icon": "$(open-preview)"
},
{
"command": "archify.renderToHtml",
"title": "Render to HTML File\u2026",
"category": "Archify",
"title": "Archify | Render to HTML File\u2026",
"icon": "$(file-code)"
},
{
"command": "archify.openInBrowser",
"title": "Open in Browser",
"category": "Archify",
"title": "Archify | Open in Browser",
"icon": "$(globe)"
},
{
"command": "archify.refreshPreview",
"title": "Refresh Preview",
"category": "Archify",
"title": "Archify | Refresh Preview",
"icon": "$(refresh)"
},
{
"command": "archify.showSource",
"title": "Show Source",
"category": "Archify",
"title": "Archify | Show Source",
"icon": "$(go-to-file)"
}
],
@@ -154,29 +147,29 @@
{
"command": "archify.newDiagram",
"when": "explorerResourceIsFolder",
"group": "navigation@10"
"group": "zzz_archify@1"
},
{
"command": "archify.showPreview",
"when": "resourceFilename =~ /(\\.archify|\\.(architecture|workflow|sequence|dataflow|lifecycle)\\.json)$/",
"group": "navigation@20"
"group": "zzz_archify@2"
},
{
"command": "archify.renderToHtml",
"when": "resourceFilename =~ /(\\.archify|\\.(architecture|workflow|sequence|dataflow|lifecycle)\\.json)$/",
"group": "navigation@21"
"group": "zzz_archify@3"
},
{
"command": "archify.openHtmlViewer",
"when": "resourceExtname == .html",
"group": "navigation@20"
"group": "zzz_archify@2"
}
],
"editor/title/context": [
{
"command": "archify.showPreview",
"when": "resourceFilename =~ /(\\.archify|\\.(architecture|workflow|sequence|dataflow|lifecycle)\\.json)$/",
"group": "1_open"
"group": "zzz_archify@1"
}
],
"file/newFile": [
+3 -3
View File
@@ -119,7 +119,7 @@ export function activate(context: vscode.ExtensionContext): void {
vscode.commands.registerCommand('archify.newDiagram', async (arg?: unknown) => {
const template = await vscode.window.showQuickPick(
TEMPLATES.map((item) => ({ label: item.label, description: item.description, template: item })),
{ title: 'New Diagram Archify', placeHolder: 'Kind of diagram' },
{ title: 'Archify | New Diagram', placeHolder: 'Kind of diagram' },
);
if (!template) return;
const { file, defaultName } = template.template;
@@ -128,7 +128,7 @@ export function activate(context: vscode.ExtensionContext): void {
let target: vscode.Uri | undefined;
if (folder) {
const name = await vscode.window.showInputBox({
title: 'New Diagram Archify',
title: 'Archify | New Diagram',
prompt: `File name in ${vscode.workspace.asRelativePath(folder, true)}`,
value: defaultName,
validateInput: async (value) =>
@@ -140,7 +140,7 @@ export function activate(context: vscode.ExtensionContext): void {
} else {
// No workspace: let the user choose where to save.
target = await vscode.window.showSaveDialog({
title: 'New Diagram Archify',
title: 'Archify | New Diagram',
filters: { 'Archify Diagram': ['archify'] },
saveLabel: 'Create',
});
+2 -2
View File
@@ -97,11 +97,11 @@ export async function run(): Promise<void> {
assert.ok(diagnostics[0].range.start.line >= 2, `reported on line ${diagnostics[0].range.start.line + 1}`);
});
await check('New Diagram Archify creates a .archify file from a template and opens the diagram', async () => {
await check('Archify | New Diagram creates a .archify file from a template and opens the diagram', async () => {
// Menus show the bare title, so it must name Archify by itself.
const commands = vscode.extensions.getExtension(EXTENSION_ID)?.packageJSON.contributes.commands as { command: string; title: string; category?: string }[];
const newDiagram = commands.find((item) => item.command === 'archify.newDiagram');
assert.equal(newDiagram?.title, 'New Diagram Archify…');
assert.equal(newDiagram?.title, 'Archify | New Diagram…');
assert.equal(newDiagram?.category, undefined);
const folder = workspaceFile('.');
// Stub the template pick and the name prompt; check the name validation on the way.