summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/hooks/useCompletion.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cli/src/ui/hooks/useCompletion.ts')
-rw-r--r--packages/cli/src/ui/hooks/useCompletion.ts11
1 files changed, 9 insertions, 2 deletions
diff --git a/packages/cli/src/ui/hooks/useCompletion.ts b/packages/cli/src/ui/hooks/useCompletion.ts
index dc45222d..10724c21 100644
--- a/packages/cli/src/ui/hooks/useCompletion.ts
+++ b/packages/cli/src/ui/hooks/useCompletion.ts
@@ -638,10 +638,17 @@ export function useCompletion(
// Determine the base path of the command.
// - If there's a trailing space, the whole command is the base.
// - If it's a known parent path, the whole command is the base.
+ // - If the last part is a complete argument, the whole command is the base.
// - Otherwise, the base is everything EXCEPT the last partial part.
+ const lastPart = parts.length > 0 ? parts[parts.length - 1] : '';
+ const isLastPartACompleteArg =
+ lastPart.startsWith('--') && lastPart.includes('=');
+
const basePath =
- hasTrailingSpace || isParentPath ? parts : parts.slice(0, -1);
- const newValue = `/${[...basePath, suggestion].join(' ')}`;
+ hasTrailingSpace || isParentPath || isLastPartACompleteArg
+ ? parts
+ : parts.slice(0, -1);
+ const newValue = `/${[...basePath, suggestion].join(' ')} `;
buffer.setText(newValue);
} else {