@runa-cmd/completions 0.2.0-beta.6 → 0.2.0-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/dist/generators/bash.d.ts.map +1 -1
- package/dist/generators/bash.js +39 -7
- package/dist/generators/bash.js.map +1 -1
- package/dist/generators/fish.d.ts.map +1 -1
- package/dist/generators/fish.js +7 -3
- package/dist/generators/fish.js.map +1 -1
- package/dist/generators/negation.d.ts +8 -0
- package/dist/generators/negation.d.ts.map +1 -0
- package/dist/generators/negation.js +7 -0
- package/dist/generators/negation.js.map +1 -0
- package/dist/generators/zsh.d.ts.map +1 -1
- package/dist/generators/zsh.js +18 -7
- package/dist/generators/zsh.js.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @runa-cmd/completions
|
|
2
2
|
|
|
3
|
+
## 0.2.0-beta.7
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 6d58adf: TAB keeps completing after a positional or an option's value. `greet hello Ana --lang <TAB>` offered nothing in bash and zsh, nor did `greet hello --times 2 --l<TAB>`: bash took `Ana` and `2` as part of the command, and zsh didn't know where to place `Ana`. Now bash only follows words that name a command, and skips an option's value, so `--lang plain` never leads to a command named `plain`. zsh declares each command's positionals. fish already worked. Regenerate the script to get it: `my-tool completions bash`.
|
|
8
|
+
- cd18a6d: In fish, TAB after an enum option offers only its values. It also listed the files of the current folder next to them, as `CHANGELOG.md` and `src/` after `--lang`. An option that takes text still completes file names, since its value may be a path.
|
|
9
|
+
- ff89521: Help and errors without noise:
|
|
10
|
+
|
|
11
|
+
- A boolean whose default is `true` shows as `--[no-]cache`, so people see how to turn it off.
|
|
12
|
+
- An empty list as a default no longer shows `(default: )`.
|
|
13
|
+
- A value that breaks a rule of its schema names the flag in plain words: `Invalid value for --limit: must be greater than 0`, instead of `limit: Too small: expected number to be >0`.
|
|
14
|
+
- Shell completions offer `--no-x` only for a boolean that starts on: `--no-help`, `--no-version` and `--no-mcp` are gone.
|
|
15
|
+
- The custom renderer example of the help README compiles, and handles the help of a command too.
|
|
16
|
+
|
|
17
|
+
- 6592957: Each plugin requires the `@runa-cmd/core` it was released with. The peer of `help` was `^0.2.0-beta.1`, so npm could install it with an older `core` where `defaultDescription` and the `GLOBAL OPTIONS` section did nothing, without a warning. Until 1.0, the peer is always core's current version.
|
|
18
|
+
|
|
3
19
|
## 0.2.0-beta.6
|
|
4
20
|
|
|
5
21
|
## 0.2.0-beta.5
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../src/generators/bash.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAA+B,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../src/generators/bash.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAA+B,MAAM,gBAAgB,CAAC;AA2I7E;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CA6ElF"}
|
package/dist/generators/bash.js
CHANGED
|
@@ -5,14 +5,15 @@
|
|
|
5
5
|
* Uses raw COMP_WORDS/COMP_CWORD — no dependency on bash-completion package.
|
|
6
6
|
*/
|
|
7
7
|
import { escapeBash } from './escape.js';
|
|
8
|
+
import { offersNegation } from './negation.js';
|
|
8
9
|
/** Replace non-identifier characters with underscores */
|
|
9
10
|
function safeName(name) {
|
|
10
11
|
return name.replace(/[^a-zA-Z0-9_]/g, '_');
|
|
11
12
|
}
|
|
12
|
-
/** Build --long option names for an option, including --no-* for
|
|
13
|
+
/** Build --long option names for an option, including --no-* for a boolean that starts on */
|
|
13
14
|
function optionFlags(opt) {
|
|
14
15
|
const flags = [`--${opt.flag}`];
|
|
15
|
-
if (opt
|
|
16
|
+
if (offersNegation(opt)) {
|
|
16
17
|
flags.push(`--no-${opt.flag}`);
|
|
17
18
|
}
|
|
18
19
|
if (opt.alias) {
|
|
@@ -102,6 +103,26 @@ function collectCases(commands, globalOptions, prefix) {
|
|
|
102
103
|
}
|
|
103
104
|
return entries;
|
|
104
105
|
}
|
|
106
|
+
/** Every command path, as the case patterns name them: `_group _group_add-tag`. */
|
|
107
|
+
function commandPaths(commands, prefix = '') {
|
|
108
|
+
return commands.flatMap((cmd) => {
|
|
109
|
+
const path = `${prefix}_${cmd.name}`;
|
|
110
|
+
return [path, ...commandPaths(cmd.subcommands ?? [], path)];
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
/** The flags whose next word is their value, not a command: all but booleans. */
|
|
114
|
+
function valueFlags(commands, globalOptions) {
|
|
115
|
+
const options = [
|
|
116
|
+
...globalOptions,
|
|
117
|
+
...commands.flatMap(function all(cmd) {
|
|
118
|
+
return [...cmd.options, ...(cmd.subcommands ?? []).flatMap(all)];
|
|
119
|
+
}),
|
|
120
|
+
];
|
|
121
|
+
const flags = options
|
|
122
|
+
.filter((opt) => opt.type !== 'boolean')
|
|
123
|
+
.flatMap((opt) => [`--${opt.flag}`, ...(opt.alias ?? [])]);
|
|
124
|
+
return [...new Set(flags)];
|
|
125
|
+
}
|
|
105
126
|
/**
|
|
106
127
|
* Generate a complete bash completion script from a CLISchema.
|
|
107
128
|
*
|
|
@@ -131,16 +152,27 @@ export function generateBashCompletions(schema, binName) {
|
|
|
131
152
|
// biome-ignore lint/suspicious/noTemplateCurlyInString: bash variable
|
|
132
153
|
lines.push(' local prev="${COMP_WORDS[COMP_CWORD-1]}"');
|
|
133
154
|
lines.push('');
|
|
134
|
-
|
|
155
|
+
// A word joins the path only if it names a command there: a positional, or
|
|
156
|
+
// the value of an option, as in `hello Ana --lang <TAB>`, is not one (T-240).
|
|
157
|
+
// Strings, not arrays, so it runs on the bash 3.2 of macOS.
|
|
158
|
+
lines.push(' # Build the command path from COMP_WORDS, past positionals and values');
|
|
159
|
+
lines.push(` local paths=" ${commandPaths(commands).join(' ')} "`);
|
|
160
|
+
lines.push(` local value_flags=" ${valueFlags(commands, globalOptions).join(' ')} "`);
|
|
135
161
|
lines.push(' local cmd_path=""');
|
|
162
|
+
lines.push(' local skip=0');
|
|
136
163
|
lines.push(' local i=1');
|
|
137
164
|
lines.push(' while [[ $i -lt $COMP_CWORD ]]; do');
|
|
138
165
|
// biome-ignore lint/suspicious/noTemplateCurlyInString: bash variable
|
|
139
|
-
lines.push('
|
|
140
|
-
lines.push('
|
|
166
|
+
lines.push(' local word="${COMP_WORDS[i]}"');
|
|
167
|
+
lines.push(' if [[ $skip -eq 1 ]]; then');
|
|
168
|
+
lines.push(' skip=0');
|
|
169
|
+
lines.push(' elif [[ "$word" == -* ]]; then');
|
|
170
|
+
lines.push(' [[ "$word" != *=* && "$value_flags" == *" $word "* ]] && skip=1');
|
|
171
|
+
// biome-ignore lint/suspicious/noTemplateCurlyInString: bash variable
|
|
172
|
+
lines.push(' elif [[ "$paths" == *" ${cmd_path}_${word} "* ]]; then');
|
|
141
173
|
// biome-ignore lint/suspicious/noTemplateCurlyInString: bash variable
|
|
142
|
-
lines.push('
|
|
143
|
-
lines.push('
|
|
174
|
+
lines.push(' cmd_path="${cmd_path}_${word}"');
|
|
175
|
+
lines.push(' fi');
|
|
144
176
|
lines.push(' ((i++))');
|
|
145
177
|
lines.push(' done');
|
|
146
178
|
lines.push('');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bash.js","sourceRoot":"","sources":["../../src/generators/bash.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"bash.js","sourceRoot":"","sources":["../../src/generators/bash.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fish.d.ts","sourceRoot":"","sources":["../../src/generators/fish.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAA+B,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"fish.d.ts","sourceRoot":"","sources":["../../src/generators/fish.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAA+B,MAAM,gBAAgB,CAAC;AAkF7E;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CA4BlF"}
|
package/dist/generators/fish.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* Uses __fish_use_subcommand and __fish_seen_subcommand_from for context.
|
|
6
6
|
*/
|
|
7
7
|
import { escapeFish, escapeFishValue } from './escape.js';
|
|
8
|
+
import { offersNegation } from './negation.js';
|
|
8
9
|
/** Generate complete directives for a single option */
|
|
9
10
|
function optionDirectives(binName, opt, condition) {
|
|
10
11
|
const lines = [];
|
|
@@ -17,14 +18,17 @@ function optionDirectives(binName, opt, condition) {
|
|
|
17
18
|
if (opt.type === 'boolean') {
|
|
18
19
|
// Boolean flags don't take values — no -r
|
|
19
20
|
lines.push(`complete -c ${binName}${condPart}` + ` -l ${opt.flag}${shortFlag}${desc}`);
|
|
20
|
-
// --no-* variant
|
|
21
|
-
|
|
21
|
+
// --no-* variant, only for a boolean that starts on
|
|
22
|
+
if (offersNegation(opt)) {
|
|
23
|
+
lines.push(`complete -c ${binName}${condPart}` + ` -l no-${opt.flag}${desc}`);
|
|
24
|
+
}
|
|
22
25
|
}
|
|
23
26
|
else if (opt.enumValues?.length) {
|
|
24
27
|
const vals = opt.enumValues.map((v) => escapeFishValue(v)).join(' ');
|
|
28
|
+
// -x is -r and -f: an enum is a closed list, so no file names next to its values
|
|
25
29
|
lines.push(`complete -c ${binName}${condPart}` +
|
|
26
30
|
` -l ${opt.flag}${shortFlag}${desc}` +
|
|
27
|
-
` -
|
|
31
|
+
` -x -a '${vals}'`);
|
|
28
32
|
}
|
|
29
33
|
else {
|
|
30
34
|
// string, number, array — require argument
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fish.js","sourceRoot":"","sources":["../../src/generators/fish.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"fish.js","sourceRoot":"","sources":["../../src/generators/fish.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { OptionSchema } from '@runa-cmd/core';
|
|
2
|
+
/**
|
|
3
|
+
* Whether TAB offers `--no-<flag>`. Only a boolean that starts on has anything
|
|
4
|
+
* to turn off: `--no-cache` does, and `--no-force`, `--no-help` or `--no-mcp`
|
|
5
|
+
* would be choices that change nothing (T-227).
|
|
6
|
+
*/
|
|
7
|
+
export declare const offersNegation: (opt: OptionSchema) => boolean;
|
|
8
|
+
//# sourceMappingURL=negation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"negation.d.ts","sourceRoot":"","sources":["../../src/generators/negation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;;;GAIG;AACH,eAAO,MAAM,cAAc,QAAS,YAAY,KAAG,OACC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether TAB offers `--no-<flag>`. Only a boolean that starts on has anything
|
|
3
|
+
* to turn off: `--no-cache` does, and `--no-force`, `--no-help` or `--no-mcp`
|
|
4
|
+
* would be choices that change nothing (T-227).
|
|
5
|
+
*/
|
|
6
|
+
export const offersNegation = (opt) => opt.type === 'boolean' && opt.defaultValue === true;
|
|
7
|
+
//# sourceMappingURL=negation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"negation.js","sourceRoot":"","sources":["../../src/generators/negation.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAiB,EAAW,EAAE,CAC5D,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zsh.d.ts","sourceRoot":"","sources":["../../src/generators/zsh.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAA+B,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"zsh.d.ts","sourceRoot":"","sources":["../../src/generators/zsh.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAA+B,MAAM,gBAAgB,CAAC;AAqJ7E;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CA+DjF"}
|
package/dist/generators/zsh.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* machine dispatch. One function per command level.
|
|
6
6
|
*/
|
|
7
7
|
import { escapeZsh, escapeZshExplanation, escapeZshValue } from './escape.js';
|
|
8
|
+
import { offersNegation } from './negation.js';
|
|
8
9
|
/** Replace non-identifier characters with underscores */
|
|
9
10
|
function safeName(name) {
|
|
10
11
|
return name.replace(/[^a-zA-Z0-9_]/g, '_');
|
|
@@ -25,12 +26,13 @@ function formatOptionSpec(opt) {
|
|
|
25
26
|
// Boolean with alias
|
|
26
27
|
if (shortAlias) {
|
|
27
28
|
specs.push(`'(${shortAlias} --${opt.flag})'` + `{${shortAlias},--${opt.flag}}` + `'[${desc}]'`);
|
|
28
|
-
specs.push(`'--no-${opt.flag}[${desc}]'`);
|
|
29
29
|
}
|
|
30
30
|
else {
|
|
31
31
|
specs.push(`'--${opt.flag}[${desc}]'`);
|
|
32
|
-
specs.push(`'--no-${opt.flag}[${desc}]'`);
|
|
33
32
|
}
|
|
33
|
+
// Only a boolean that starts on has a --no- worth offering
|
|
34
|
+
if (offersNegation(opt))
|
|
35
|
+
specs.push(`'--no-${opt.flag}[${desc}]'`);
|
|
34
36
|
}
|
|
35
37
|
else if (opt.type === 'enum' && opt.enumValues?.length) {
|
|
36
38
|
const vals = opt.enumValues.map((v) => escapeZshValue(v)).join(' ');
|
|
@@ -61,6 +63,14 @@ function buildArgSpecs(options, globalOptions) {
|
|
|
61
63
|
const all = [...globalOptions, ...options];
|
|
62
64
|
return all.flatMap(formatOptionSpec);
|
|
63
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* A spec per positional. Without them, _arguments takes `Ana` in
|
|
68
|
+
* `hello Ana --lang <TAB>` as a word it can't place, and stops completing
|
|
69
|
+
* (T-240). Their values are T-232's: here they only take their place.
|
|
70
|
+
*/
|
|
71
|
+
function positionalSpecs(cmd) {
|
|
72
|
+
return cmd.args.map((arg, index) => arg.isVariadic ? `'*:${safeName(arg.name)}:'` : `'${index + 1}:${safeName(arg.name)}:'`);
|
|
73
|
+
}
|
|
64
74
|
/**
|
|
65
75
|
* Recursively generate zsh functions for a command tree.
|
|
66
76
|
* Returns an array of function definition strings.
|
|
@@ -106,12 +116,13 @@ function generateCommandFunctions(commands, globalOptions, parentFunc) {
|
|
|
106
116
|
lines.push(' esac');
|
|
107
117
|
}
|
|
108
118
|
else {
|
|
109
|
-
// Leaf command —
|
|
110
|
-
|
|
119
|
+
// Leaf command — _arguments with its options and its positionals
|
|
120
|
+
const leafSpecs = [...argSpecs, ...positionalSpecs(cmd)];
|
|
121
|
+
if (leafSpecs.length > 0) {
|
|
111
122
|
lines.push(' _arguments \\');
|
|
112
|
-
for (let i = 0; i <
|
|
113
|
-
const suffix = i <
|
|
114
|
-
lines.push(` ${
|
|
123
|
+
for (let i = 0; i < leafSpecs.length; i++) {
|
|
124
|
+
const suffix = i < leafSpecs.length - 1 ? ' \\' : '';
|
|
125
|
+
lines.push(` ${leafSpecs[i]}${suffix}`);
|
|
115
126
|
}
|
|
116
127
|
}
|
|
117
128
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zsh.js","sourceRoot":"","sources":["../../src/generators/zsh.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"zsh.js","sourceRoot":"","sources":["../../src/generators/zsh.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@runa-cmd/completions",
|
|
3
|
-
"version": "0.2.0-beta.
|
|
3
|
+
"version": "0.2.0-beta.7",
|
|
4
4
|
"description": "Shell completion script generation for Runa CLIs. Auto-generate bash, zsh, and fish completions from your Zod schemas.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {
|
|
26
|
-
"@runa-cmd/core": "^0.2.0-beta.
|
|
26
|
+
"@runa-cmd/core": "^0.2.0-beta.7",
|
|
27
27
|
"zod": "^4.0.0"
|
|
28
28
|
},
|
|
29
29
|
"engines": {
|
|
@@ -50,12 +50,12 @@
|
|
|
50
50
|
"@types/node": "^24.19.2",
|
|
51
51
|
"typescript": "^7.0.2",
|
|
52
52
|
"zod": "^4.6.7",
|
|
53
|
-
"@runa-cmd/core": "0.2.0-beta.
|
|
53
|
+
"@runa-cmd/core": "0.2.0-beta.7"
|
|
54
54
|
},
|
|
55
55
|
"scripts": {
|
|
56
56
|
"build": "tsc",
|
|
57
57
|
"dev": "tsc --watch --preserveWatchOutput",
|
|
58
|
-
"typecheck": "tsc --noEmit",
|
|
58
|
+
"typecheck": "tsc --noEmit && tsc -p tsconfig.test.json",
|
|
59
59
|
"test": "vitest run",
|
|
60
60
|
"test:watch": "vitest",
|
|
61
61
|
"lint": "biome check .",
|