Release 0.5.2: Archify menu section at the bottom, commands named "Archify | …" #18
+2
-1
@@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
- **Right-click menus:** Archify commands (New Diagram Archify…, Open Preview, Render to HTML File…, Open in Archify HTML Viewer) now sit in their own section at the bottom of the Explorer and editor-tab menus, instead of between New File, New Folder and the other built-in entries.
|
- **Right-click menus:** Archify commands (Archify | New Diagram…, Open Preview, Render to HTML File…, Open in Archify HTML Viewer) now sit in their own section at the bottom of the Explorer and editor-tab menus, instead of between New File, New Folder and the other built-in entries.
|
||||||
|
- The new-diagram command is renamed **Archify | New Diagram…** (was *New Diagram Archify…*).
|
||||||
|
|
||||||
## 0.5.1 — 2026-10-07
|
## 0.5.1 — 2026-10-07
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ New diagrams should be `.archify` files; everything below describes them unless
|
|||||||
|
|
||||||
## Quick start
|
## 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:
|
To write one by hand:
|
||||||
|
|
||||||
@@ -59,7 +59,7 @@ The Archify CLI and the AI agents that use it write diagrams as JSON, named `nam
|
|||||||
|
|
||||||
## Features
|
## 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.
|
- **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=…`).
|
- **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 **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.
|
||||||
@@ -68,7 +68,7 @@ The Archify CLI and the AI agents that use it write diagrams as JSON, named `nam
|
|||||||
- **Schema help**: completion and hover from Archify's own schemas, through the YAML extension for `.archify` files.
|
- **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.
|
- **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.
|
- **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
|
## Source evidence
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -41,7 +41,7 @@
|
|||||||
"commands": [
|
"commands": [
|
||||||
{
|
{
|
||||||
"command": "archify.newDiagram",
|
"command": "archify.newDiagram",
|
||||||
"title": "New Diagram Archify\u2026",
|
"title": "Archify | New Diagram\u2026",
|
||||||
"icon": "$(new-file)"
|
"icon": "$(new-file)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
+3
-3
@@ -119,7 +119,7 @@ export function activate(context: vscode.ExtensionContext): void {
|
|||||||
vscode.commands.registerCommand('archify.newDiagram', async (arg?: unknown) => {
|
vscode.commands.registerCommand('archify.newDiagram', async (arg?: unknown) => {
|
||||||
const template = await vscode.window.showQuickPick(
|
const template = await vscode.window.showQuickPick(
|
||||||
TEMPLATES.map((item) => ({ label: item.label, description: item.description, template: item })),
|
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;
|
if (!template) return;
|
||||||
const { file, defaultName } = template.template;
|
const { file, defaultName } = template.template;
|
||||||
@@ -128,7 +128,7 @@ export function activate(context: vscode.ExtensionContext): void {
|
|||||||
let target: vscode.Uri | undefined;
|
let target: vscode.Uri | undefined;
|
||||||
if (folder) {
|
if (folder) {
|
||||||
const name = await vscode.window.showInputBox({
|
const name = await vscode.window.showInputBox({
|
||||||
title: 'New Diagram Archify',
|
title: 'Archify | New Diagram',
|
||||||
prompt: `File name in ${vscode.workspace.asRelativePath(folder, true)}`,
|
prompt: `File name in ${vscode.workspace.asRelativePath(folder, true)}`,
|
||||||
value: defaultName,
|
value: defaultName,
|
||||||
validateInput: async (value) =>
|
validateInput: async (value) =>
|
||||||
@@ -140,7 +140,7 @@ export function activate(context: vscode.ExtensionContext): void {
|
|||||||
} else {
|
} else {
|
||||||
// No workspace: let the user choose where to save.
|
// No workspace: let the user choose where to save.
|
||||||
target = await vscode.window.showSaveDialog({
|
target = await vscode.window.showSaveDialog({
|
||||||
title: 'New Diagram Archify',
|
title: 'Archify | New Diagram',
|
||||||
filters: { 'Archify Diagram': ['archify'] },
|
filters: { 'Archify Diagram': ['archify'] },
|
||||||
saveLabel: 'Create',
|
saveLabel: 'Create',
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -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}`);
|
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.
|
// 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 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');
|
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);
|
assert.equal(newDiagram?.category, undefined);
|
||||||
const folder = workspaceFile('.');
|
const folder = workspaceFile('.');
|
||||||
// Stub the template pick and the name prompt; check the name validation on the way.
|
// Stub the template pick and the name prompt; check the name validation on the way.
|
||||||
|
|||||||
Reference in New Issue
Block a user