fix: online completion

This commit is contained in:
Cheng Liu 2024-08-26 22:07:37 -07:00
parent 623882dbfb
commit 4ac9bdc838
No known key found for this signature in database
GPG key ID: EEC8452F7DB85CD6
3 changed files with 32 additions and 7 deletions

View file

@ -108,10 +108,7 @@ export class ArgvService {
const finalCommandNameSet: Set<string> = new Set<string>(finalCommands.map((x) => x.name));
const userInputCmdName: string = argv._[1] || '';
if (current.includes('sparo')) {
// top level completion
done(finalCommands.map(({ name, description }) => `${name}:${description}`));
} else if (finalCommandNameSet.has(userInputCmdName)) {
if (finalCommandNameSet.has(userInputCmdName)) {
switch (current) {
case 'add': {
done(this._getFileCompletions());
@ -159,14 +156,14 @@ export class ArgvService {
break;
}
}
} else if (current) {
} else {
const prefix: string = current === 'sparo' ? '' : current;
done(
finalCommands
.filter(({ name }) => name.startsWith(current))
.filter(({ name }) => name.startsWith(prefix))
.map(({ name, description }) => `${name}:${description}`)
);
}
done([]);
};
private _getFileCompletions(partial: string = ''): string[] {

View file

@ -0,0 +1,23 @@
Running "sparo --get-yargs-completions sparo ":
auto-config:Automatic setup optimized git config
list-profiles:List all available profiles or query profiles that contain the specified project name
init-profile:Initialize a new profile.
clone:Clone a repository into a new directory
checkout:Updates files in the working tree to match the version in the index or the specified tree. If no pathspec was given, git checkout will also update HEAD to set the specified branch as the current branch.
fetch:fetch remote branch to local
pull:Incorporates changes from a remote repository into the current branch.
git-clone:original git clone command
git-checkout:original git checkout command
git-fetch:original git fetch command
git-pull:original git pull command
add:add file contents to the index
branch:list, create, or delete branches
commit:record changes to the repository
diff:show changes between commits, commit and working tree, etc
log:show commit logs
merge:join two or more development histories together
push:update remote refs along with associated objects
rebase:forward-port local commits to the updated upstream head
reset:reset current HEAD to the specified state
restore:restore working tree files
status:show the working tree status

View file

@ -25,6 +25,11 @@ export async function runAsync(runScriptOptions: IRunScriptOptions): Promise<voi
name: 'sparo-top-level-completion',
args: prefixArgs.concat([])
},
{
kind: 'sparo-command',
name: 'sparo-top-level-2-completion',
args: prefixArgs.concat([''])
},
// auto-config
{
kind: 'sparo-command',