$ rome rage --summary
Environment Variables
Object {
COLORTERM: "truecolor"
LANG: "en_US.UTF-8"
PATH: "/Users/wantedly215/.anyenv/envs/nodenv/versions/12.16.2/bin:/Users/wantedly215/.anyenv/envs/nodenv/libexec:/Users/wantedly215/.anyenv/envs/nodenv/plugins/nodenv-vars/bin:/Users/wantedly215/.anyenv/envs/nodenv/plugins/nodenv-default-packages/bin:/Users/wantedly215/.anyenv/envs/nodenv/plugins/node-build/bin:/Users/wantedly215/.anyenv/envs/rbenv/shims:/Users/wantedly215/.anyenv/envs/pyenv/shims:/Users/wantedly215/.anyenv/envs/nodenv/shims:.:/Users/wantedly215/.opam/default/bin:/usr/local/sbin:/Users/wantedly215/.anyenv/bin:/Users/wantedly215/.anyenv/envs/rbenv/shims:/Users/wantedly215/.anyenv/envs/pyenv/libexec/pyenv:/Users/wantedly215/.anyenv/envs/pyenv/libexec:/Users/wantedly215/.anyenv/envs/pyenv/shims:/Users/wantedly215/.anyenv/envs/pyenv/bin:/Users/wantedly215/.anyenv/envs/nodenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/wantedly215/.anyenv/envs/rbenv/shims:/Users/wantedly215/.anyenv/envs/pyenv/shims:/Users/wantedly215/.anyenv/envs/nodenv/shims:.:/Users/wantedly215/.anyenv/envs/pyenv/libexec/pyenv:/Users/wantedly215/.anyenv/envs/pyenv/libexec:/Users/wantedly215/.anyenv/envs/pyenv/bin:/Users/wantedly215/.anyenv/envs/nodenv/bin:/Users/wantedly215/.anyenv/envs/rbenv/bin:/Users/wantedly215/.cargo/bin:/Users/wantedly215/dev/bin:/Users/wantedly215/.deno/bin:/Users/wantedly215/.wantedly/bin:/Users/wantedly215/.anyenv/bin:/Users/wantedly215/.anyenv/envs/nodenv/bin:/Users/wantedly215/.anyenv/envs/pyenv/bin:/Users/wantedly215/.anyenv/envs/rbenv/bin:/Users/wantedly215/.cargo/bin:/Users/wantedly215/dev/bin:/Users/wantedly215/.deno/bin:/Users/wantedly215/.wantedly/bin:/Users/wantedly215/.anyenv/envs/nodenv/bin:/Users/wantedly215/.anyenv/envs/pyenv/bin:/Users/wantedly215/.anyenv/envs/rbenv/bin"
TERM: "screen-256color"
TMUX: "/private/tmp/tmux-501/default,2441,2"
USER: "wantedly215"
}
User Config
unset
Rome Version
10.0.3-beta
Node Version
12.16.2
Platform
darwin x64 19.3.0
Terminal Features
Object {
background: "unknown"
colorDepth: 8
columns: 256
cursor: true
hyperlinks: true
isTTY: true
unicode: true
}
Client Flags
Object {
clientName: "cli"
cwd: "/Users/wantedly215/dev/src/github.com/yamadayuki/rome"
realCwd: "/Users/wantedly215/dev/src/github.com/yamadayuki/rome"
silent: false
}
Server Status
Object {
server: Object {
heapTotal: 451_989_504
pid: 38_714
uptime: 1_996.49758669
}
projects: Array [
Object {id: 0}
Object {id: 1}
Object {id: 2}
Object {id: 3}
Object {id: 4}
Object {id: 5}
Object {id: 6}
]
workers: Array [
Object {
astCacheSize: 476
heapTotal: 78_737_408
ownedBytes: 1_553_312
ownedFileCount: 602
pid: 38_818
uptime: 1_976.086273595
}
Object {
astCacheSize: 451
heapTotal: 89_452_544
ownedBytes: 1_553_384
ownedFileCount: 534
pid: 38_819
uptime: 1_975.580905857
}
Object {
astCacheSize: 318
heapTotal: 52_228_096
ownedBytes: 1_553_572
ownedFileCount: 324
pid: 38_820
uptime: 1_975.187024593
}
Object {
astCacheSize: 451
heapTotal: 79_654_912
ownedBytes: 1_640_393
ownedFileCount: 509
pid: 38_821
uptime: 1_974.796003722
}
]
}
Invoke rome --log-shell-completions fish
> rome --log-shell-completions fish
complete -c rome -f
complete -c rome -n '__fish_use_subcommand' -a 'start' -d '[object Object]'
complete -c rome -n '__fish_use_subcommand' -a 'develop' -d '[object Object]'
complete -c rome -n '__fish_use_subcommand' -a 'stop' -d '[object Object]'
...
Meaningful description is set if the subcommand's description exists.
> rome --log-shell-completions fish
complete -c rome -f
complete -c rome -n '__fish_use_subcommand' -a 'start' -d 'start daemon (if none running)'
complete -c rome -n '__fish_use_subcommand' -a 'develop' -d 'TODO'
complete -c rome -n '__fish_use_subcommand' -a 'stop' -d 'stop a running daemon if one exists'
...
The root cause located at genFishCompletions function in internal/cli-flags/Parser.ts. The meta.description is an object as AnyMarkup. But in this case, the interpolation is only template literal not in a markup tagged template string. So the meta.description object was called with toString (I suppose).
I found the mitigation for this issue. You can prints the fish completions with calling readMarkup function against meta.description.
@@ -783,7 +789,13 @@ export default class Parser<T> {
// add command completions
for (let [subcmd, meta] of this.commands.entries()) {
- script += `${scriptPre} -n '__fish_use_subcommand' -a '${subcmd}' -d '${meta.description}'\n`;
+ // add command description if exists
+ let description = "";
+ if (meta.description) {
+ description += ` -d '${readMarkup(meta.description)}'`;
+ }
+
+ script += `${scriptPre} -n '__fish_use_subcommand' -a '${subcmd}'${description}\n`;
}
// add flag completions
Can I send a PR?
Go ahead!! Thank you!
Thanks! I made a PR https://github.com/romefrontend/rome/pull/1036