Skip to content

Commit

Permalink
Merge pull request #85 from tiktok/fix-completion
Browse files Browse the repository at this point in the history
Fix completion
  • Loading branch information
chengcyber authored Aug 27, 2024
2 parents 623882d + 250f2c5 commit fa688a5
Show file tree
Hide file tree
Showing 5 changed files with 54 additions and 8 deletions.
11 changes: 4 additions & 7 deletions apps/sparo-lib/src/services/ArgvService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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());
Expand Down Expand Up @@ -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[] {
Expand Down
13 changes: 12 additions & 1 deletion apps/website/build.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,18 @@
const { spawnSync } = require('child_process');

function runCommand(command, args) {
const result = spawnSync(command, args, { stdio: 'inherit', shell: true });
const result = spawnSync(command, args, {
stdio: 'inherit',
shell: true,
env: {
...process.env,
// Suppress the "Browserslist: caniuse-lite is outdated" warning. Although the warning is
// potentially useful, the check is performed in a way that is nondeterministic and can cause
// Rush pipelines to fail. Moreover, the outdated version is often irrelevant and/or nontrivial
// to upgrade. See this thread for details: https://github.com/microsoft/rushstack/issues/2981
BROWSERSLIST_IGNORE_OLD_DATA: '1'
}
});
if (result.error) {
console.log(result.error.message);
process.exitCode = 1;
Expand Down
Original file line number Diff line number Diff line change
@@ -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
5 changes: 5 additions & 0 deletions build-tests/sparo-completion-test/src/start-test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand Down
10 changes: 10 additions & 0 deletions common/changes/sparo/fix-completion_2024-08-27-05-07.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"changes": [
{
"packageName": "sparo",
"comment": "Fix an edge case for shell completion",
"type": "none"
}
],
"packageName": "sparo"
}

1 comment on commit fa688a5

@tiktok-service
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀 Deployment Information

The website has been deployed at 2024-08-27 10:43:48 PDT

Please sign in to comment.