Skip to content

Commit 97d7b62

Browse files
liangmiQwQfengmk2
andauthored
feat(cli): use Unicode tree glyphs in toolchain output (#2442)
#2111 introduces `vp toolchain` command. However, its output and connector chars are all old ASCII-style. Considering other parts of Vite+ uses unicode a lot, I don't think it is an intentional design for compatibility. Unicode-style (`├──`, `└──`, and `│`) is more modern and feels like more professional. So this PR updates it to this style 🤖 Generated with Codex Co-authored-by: MK (fengmk2) <fengmk2@gmail.com>
1 parent 5a9fd2b commit 97d7b62

7 files changed

Lines changed: 100 additions & 100 deletions

File tree

crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_toolchain/snapshots/toolchain_filters.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ a tool filter keeps its ownership and engine chain
88
Vite+ toolchain (local)
99
1010
vite-plus@<version>
11-
`-- depends on @voidzero-dev/vite-plus-core@<version>
12-
`-- bundles vite@<version>
13-
`-- uses rolldown@<version>
14-
|-- compiles oxc@<version>
15-
`-- compiles oxc-resolver@<version>
11+
└── depends on @voidzero-dev/vite-plus-core@<version>
12+
└── bundles vite@<version>
13+
└── uses rolldown@<version>
14+
├── compiles oxc@<version>
15+
└── compiles oxc-resolver@<version>
1616
```
1717

1818
## `vp toolchain vite vitest`
@@ -23,12 +23,12 @@ multiple filters return a stable union
2323
Vite+ toolchain (local)
2424
2525
vite-plus@<version>
26-
|-- depends on @voidzero-dev/vite-plus-core@<version>
27-
| `-- bundles vite@<version>
28-
| `-- uses rolldown@<version>
29-
| |-- compiles oxc@<version>
30-
| `-- compiles oxc-resolver@<version>
31-
`-- depends on vitest@<version>
26+
├── depends on @voidzero-dev/vite-plus-core@<version>
27+
└── bundles vite@<version>
28+
└── uses rolldown@<version>
29+
├── compiles oxc@<version>
30+
└── compiles oxc-resolver@<version>
31+
└── depends on vitest@<version>
3232
```
3333

3434
## `vp toolchain vite-plus-core tsgolint vite-task`
@@ -39,7 +39,7 @@ stable IDs and declared aliases resolve
3939
Vite+ toolchain (local)
4040
4141
vite-plus@<version>
42-
|-- depends on @voidzero-dev/vite-plus-core@<version>
43-
|-- depends on oxlint-tsgolint@<version>
44-
`-- compiles vite-task (built <build-time>, revision <revision>)
42+
├── depends on @voidzero-dev/vite-plus-core@<version>
43+
├── depends on oxlint-tsgolint@<version>
44+
└── compiles vite-task (built <build-time>, revision <revision>)
4545
```

crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_toolchain/snapshots/toolchain_full_global.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,18 @@ The global flag reads the manifest paired with the global binary.
88
Vite+ toolchain (global)
99
1010
vite-plus@<version>
11-
|-- depends on @voidzero-dev/vite-plus-core@<version>
12-
| |-- bundles vite@<version>
13-
| | `-- uses rolldown@<version>
14-
| | |-- compiles oxc@<version>
15-
| | `-- compiles oxc-resolver@<version>
16-
| |-- bundles rolldown@<version>
17-
| | |-- compiles oxc@<version>
18-
| | `-- compiles oxc-resolver@<version>
19-
| `-- bundles tsdown@<version>
20-
|-- depends on vitest@<version>
21-
|-- depends on oxlint@<version>
22-
|-- depends on oxlint-tsgolint@<version>
23-
|-- depends on oxfmt@<version>
24-
`-- compiles vite-task (built <build-time>, revision <revision>)
11+
├── depends on @voidzero-dev/vite-plus-core@<version>
12+
├── bundles vite@<version>
13+
└── uses rolldown@<version>
14+
├── compiles oxc@<version>
15+
└── compiles oxc-resolver@<version>
16+
├── bundles rolldown@<version>
17+
├── compiles oxc@<version>
18+
└── compiles oxc-resolver@<version>
19+
└── bundles tsdown@<version>
20+
├── depends on vitest@<version>
21+
├── depends on oxlint@<version>
22+
├── depends on oxlint-tsgolint@<version>
23+
├── depends on oxfmt@<version>
24+
└── compiles vite-task (built <build-time>, revision <revision>)
2525
```

crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_toolchain/snapshots/toolchain_full_local.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,18 @@ The local CLI reads the manifest shipped in its vite-plus package.
88
Vite+ toolchain (local)
99
1010
vite-plus@<version>
11-
|-- depends on @voidzero-dev/vite-plus-core@<version>
12-
| |-- bundles vite@<version>
13-
| | `-- uses rolldown@<version>
14-
| | |-- compiles oxc@<version>
15-
| | `-- compiles oxc-resolver@<version>
16-
| |-- bundles rolldown@<version>
17-
| | |-- compiles oxc@<version>
18-
| | `-- compiles oxc-resolver@<version>
19-
| `-- bundles tsdown@<version>
20-
|-- depends on vitest@<version>
21-
|-- depends on oxlint@<version>
22-
|-- depends on oxlint-tsgolint@<version>
23-
|-- depends on oxfmt@<version>
24-
`-- compiles vite-task (built <build-time>, revision <revision>)
11+
├── depends on @voidzero-dev/vite-plus-core@<version>
12+
├── bundles vite@<version>
13+
└── uses rolldown@<version>
14+
├── compiles oxc@<version>
15+
└── compiles oxc-resolver@<version>
16+
├── bundles rolldown@<version>
17+
├── compiles oxc@<version>
18+
└── compiles oxc-resolver@<version>
19+
└── bundles tsdown@<version>
20+
├── depends on vitest@<version>
21+
├── depends on oxlint@<version>
22+
├── depends on oxlint-tsgolint@<version>
23+
├── depends on oxfmt@<version>
24+
└── compiles vite-task (built <build-time>, revision <revision>)
2525
```

crates/vp_cli_snapshots/tests/cli_snapshots/fixtures/command_toolchain/snapshots/toolchain_old_local_routing.md

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -37,20 +37,20 @@ a package without a runnable local CLI uses the global toolchain
3737
Vite+ toolchain (global)
3838
3939
vite-plus@<version>
40-
|-- depends on @voidzero-dev/vite-plus-core@<version>
41-
| |-- bundles vite@<version>
42-
| | `-- uses rolldown@<version>
43-
| | |-- compiles oxc@<version>
44-
| | `-- compiles oxc-resolver@<version>
45-
| |-- bundles rolldown@<version>
46-
| | |-- compiles oxc@<version>
47-
| | `-- compiles oxc-resolver@<version>
48-
| `-- bundles tsdown@<version>
49-
|-- depends on vitest@<version>
50-
|-- depends on oxlint@<version>
51-
|-- depends on oxlint-tsgolint@<version>
52-
|-- depends on oxfmt@<version>
53-
`-- compiles vite-task (built <build-time>, revision <revision>)
40+
├── depends on @voidzero-dev/vite-plus-core@<version>
41+
├── bundles vite@<version>
42+
└── uses rolldown@<version>
43+
├── compiles oxc@<version>
44+
└── compiles oxc-resolver@<version>
45+
├── bundles rolldown@<version>
46+
├── compiles oxc@<version>
47+
└── compiles oxc-resolver@<version>
48+
└── bundles tsdown@<version>
49+
├── depends on vitest@<version>
50+
├── depends on oxlint@<version>
51+
├── depends on oxlint-tsgolint@<version>
52+
├── depends on oxfmt@<version>
53+
└── compiles vite-task (built <build-time>, revision <revision>)
5454
```
5555

5656
## `vp why vite`
@@ -71,18 +71,18 @@ Run `vp toolchain vite` to show these versions and relationships.
7171
Vite+ toolchain (global)
7272
7373
vite-plus@<version>
74-
|-- depends on @voidzero-dev/vite-plus-core@<version>
75-
| |-- bundles vite@<version>
76-
| | `-- uses rolldown@<version>
77-
| | |-- compiles oxc@<version>
78-
| | `-- compiles oxc-resolver@<version>
79-
| |-- bundles rolldown@<version>
80-
| | |-- compiles oxc@<version>
81-
| | `-- compiles oxc-resolver@<version>
82-
| `-- bundles tsdown@<version>
83-
|-- depends on vitest@<version>
84-
|-- depends on oxlint@<version>
85-
|-- depends on oxlint-tsgolint@<version>
86-
|-- depends on oxfmt@<version>
87-
`-- compiles vite-task (built <build-time>, revision <revision>)
74+
├── depends on @voidzero-dev/vite-plus-core@<version>
75+
├── bundles vite@<version>
76+
└── uses rolldown@<version>
77+
├── compiles oxc@<version>
78+
└── compiles oxc-resolver@<version>
79+
├── bundles rolldown@<version>
80+
├── compiles oxc@<version>
81+
└── compiles oxc-resolver@<version>
82+
└── bundles tsdown@<version>
83+
├── depends on vitest@<version>
84+
├── depends on oxlint@<version>
85+
├── depends on oxlint-tsgolint@<version>
86+
├── depends on oxfmt@<version>
87+
└── compiles vite-task (built <build-time>, revision <revision>)
8888
```

crates/vp_cli_snapshots/tests/redact_unit.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -308,11 +308,11 @@ fn masks_toolchain_build_time_in_human_and_json_output() {
308308
fn masks_toolchain_versions_and_revisions_in_human_hint_and_json_output() {
309309
let revision = "ebe583739b0b1e7828199b9ee9dd52273fa2fd20";
310310
let human = format!(
311-
"Vite+ toolchain (global)\n\nvite-plus@0.2.8\n|-- bundles vite@8.2.1\n`-- compiles vite-task (revision {revision})\n"
311+
"Vite+ toolchain (global)\n\nvite-plus@0.2.8\n├── bundles vite@8.2.1\n└── compiles vite-task (revision {revision})\n"
312312
);
313313
assert_eq!(
314314
redact_output(human, &[], true),
315-
"Vite+ toolchain (global)\n\nvite-plus@<version>\n|-- bundles vite@<version>\n`-- compiles vite-task (revision <revision>)\n"
315+
"Vite+ toolchain (global)\n\nvite-plus@<version>\n├── bundles vite@<version>\n└── compiles vite-task (revision <revision>)\n"
316316
);
317317

318318
let hint = "Vite+ also provides vite@8.2.1 through its toolchain.\n".to_owned();

crates/vp_toolchain/src/lib.rs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,7 @@ fn render_children<'a>(
384384
};
385385
for (index, edge) in edges.iter().enumerate() {
386386
let is_last = index + 1 == edges.len();
387-
let connector = if is_last { "`-- " } else { "|-- " };
387+
let connector = if is_last { "└── " } else { "├── " };
388388
let Some(node) = nodes.get(edge.to.as_str()) else {
389389
continue;
390390
};
@@ -396,7 +396,7 @@ fn render_children<'a>(
396396
output.push('\n');
397397

398398
if path.insert(node.id.as_str()) {
399-
let child_prefix = vt_str::format!("{prefix}{}", if is_last { " " } else { "| " });
399+
let child_prefix = vt_str::format!("{prefix}{}", if is_last { " " } else { " " });
400400
render_children(output, node.id.as_str(), child_prefix.as_str(), nodes, children, path);
401401
path.remove(node.id.as_str());
402402
}
@@ -579,15 +579,15 @@ mod tests {
579579
"Vite+ toolchain (local)\n\
580580
\n\
581581
vite-plus@1.0.0\n\
582-
|-- depends on @scope/core@1.0.0\n\
583-
| |-- bundles vite@8.0.0\n\
584-
| | `-- uses rolldown@1.0.0\n\
585-
| | |-- compiles oxc@0.1.0\n\
586-
| | `-- compiles oxc-resolver@1.0.0\n\
587-
| `-- bundles rolldown@1.0.0\n\
588-
| |-- compiles oxc@0.1.0\n\
589-
| `-- compiles oxc-resolver@1.0.0\n\
590-
`-- depends on vitest@4.0.0\n"
582+
├── depends on @scope/core@1.0.0\n\
583+
├── bundles vite@8.0.0\n\
584+
└── uses rolldown@1.0.0\n\
585+
├── compiles oxc@0.1.0\n\
586+
└── compiles oxc-resolver@1.0.0\n\
587+
└── bundles rolldown@1.0.0\n\
588+
├── compiles oxc@0.1.0\n\
589+
└── compiles oxc-resolver@1.0.0\n\
590+
└── depends on vitest@4.0.0\n"
591591
);
592592
}
593593

rfcs/toolchain-command.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -155,18 +155,18 @@ The command prints an ownership tree with relationship labels:
155155
Vite+ toolchain (local)
156156
157157
vite-plus@0.2.4
158-
|-- depends on @voidzero-dev/vite-plus-core@0.2.4
159-
| |-- bundles vite@8.1.3
160-
| | `-- uses rolldown@1.1.4
161-
| |-- bundles rolldown@1.1.4
162-
| | |-- compiles oxc@0.138.0
163-
| | `-- compiles oxc-resolver@11.22.0
164-
| `-- bundles tsdown@0.22.3
165-
|-- depends on vitest@4.1.10
166-
|-- depends on oxlint@1.72.0
167-
|-- depends on oxlint-tsgolint@0.24.0
168-
|-- depends on oxfmt@0.57.0
169-
`-- compiles vite-task (built 2026-08-06T09:30:00Z, revision <revision>)
158+
├── depends on @voidzero-dev/vite-plus-core@0.2.4
159+
├── bundles vite@8.1.3
160+
└── uses rolldown@1.1.4
161+
├── bundles rolldown@1.1.4
162+
├── compiles oxc@0.138.0
163+
└── compiles oxc-resolver@11.22.0
164+
└── bundles tsdown@0.22.3
165+
├── depends on vitest@4.1.10
166+
├── depends on oxlint@1.72.0
167+
├── depends on oxlint-tsgolint@0.24.0
168+
├── depends on oxfmt@0.57.0
169+
└── compiles vite-task (built 2026-08-06T09:30:00Z, revision <revision>)
170170
```
171171

172172
These versions show the repository state when this RFC was written. They are
@@ -190,11 +190,11 @@ $ vp toolchain vite
190190
Vite+ toolchain (local)
191191
192192
vite-plus@0.2.4
193-
`-- depends on @voidzero-dev/vite-plus-core@0.2.4
194-
`-- bundles vite@8.1.3
195-
`-- uses rolldown@1.1.4
196-
|-- compiles oxc@0.138.0
197-
`-- compiles oxc-resolver@11.22.0
193+
└── depends on @voidzero-dev/vite-plus-core@0.2.4
194+
└── bundles vite@8.1.3
195+
└── uses rolldown@1.1.4
196+
├── compiles oxc@0.138.0
197+
└── compiles oxc-resolver@11.22.0
198198
```
199199

200200
For multiple filters, the command returns the union of those nodes and edges.

0 commit comments

Comments
 (0)