Support escaping spaces in file paths. (#241)

This commit is contained in:
Jacob Richman
2025-05-01 18:02:04 -07:00
committed by GitHub
parent ca53565240
commit 53ac7952c7
5 changed files with 138 additions and 25 deletions

View File

@@ -8,6 +8,7 @@ import React, { useCallback } from 'react';
import { Text, Box, useInput, useFocus, Key } from 'ink';
import TextInput from 'ink-text-input';
import { Colors } from '../colors.js';
import { Suggestion } from './SuggestionsDisplay.js';
interface InputPromptProps {
query: string;
@@ -16,7 +17,7 @@ interface InputPromptProps {
setInputKey: React.Dispatch<React.SetStateAction<number>>;
onSubmit: (value: string) => void;
showSuggestions: boolean;
suggestions: string[];
suggestions: Suggestion[]; // Changed to Suggestion[]
activeSuggestionIndex: number;
navigateUp: () => void;
navigateDown: () => void;
@@ -63,7 +64,7 @@ export const InputPrompt: React.FC<InputPromptProps> = ({
base = query.substring(0, atIndex + 1 + lastSlashIndexInPath + 1);
}
const newValue = base + selectedSuggestion;
const newValue = base + selectedSuggestion.value;
setQuery(newValue);
resetCompletion(); // Hide suggestions after selection
setInputKey((k) => k + 1); // Increment key to force re-render and cursor reset

View File

@@ -6,9 +6,12 @@
import React from 'react';
import { Box, Text } from 'ink';
export interface Suggestion {
label: string;
value: string;
}
interface SuggestionsDisplayProps {
suggestions: string[];
suggestions: Suggestion[];
activeIndex: number;
isLoading: boolean;
width: number;
@@ -62,7 +65,7 @@ export function SuggestionsDisplay({
color={isActive ? 'black' : 'white'}
backgroundColor={isActive ? 'blue' : undefined}
>
{suggestion}
{suggestion.label}
</Text>
);
})}