Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can you replace user's input when using CompletionProposal? #1097

Open
yaharga opened this issue Jun 26, 2024 · 0 comments
Open

Can you replace user's input when using CompletionProposal? #1097

yaharga opened this issue Jun 26, 2024 · 0 comments
Labels
status/need-triage Team needs to triage and take a first look

Comments

@yaharga
Copy link

yaharga commented Jun 26, 2024

Let's say the options are an enum of DayOfWeek; and each day has an associated number and color (just for the sake of an example).

public enum DayOfWeek {
    MONDAY(0, "yellow"),
    TUESDAY(1, "blue"),
    WEDNESDAY(2, "pink"),
    THURSDAY(3, "purple"),
    FRIDAY(4, "orange"),
    SATURDAY(5, "green"),
    SUNDAY(6, "red");

    public int num;
    public String color;

    public DayOfWeek(int num, String color) {
        this.num = num;
        this.color = color;
    }

    public static List<CompletionProposal> completion() {
        return Arrays.stream(values()).map(Enum::name).map(CompletionProposal::new).toList();
    }
}

I want the user to get autocomplete with all the properties, in addition to the enum name.

If I give the List<CompletionProposal> of the names of the enum constants, this will work:
MON -> MONDAY

What if I want the user to type gre or green and then have it change to SATURDAY?

Even if that is not possible, what if I type satur? It won't autocomplete to SATURDAY or saturday, unless I include the day twice as upper and lower cases, which is confusing to the user.

The only way I can think of showing it to the user is to use the displayText, category, or description method to the user, but it's still a chore to type exactly the words.

In my case I have IDs of a huge list, and the user won't remember the entire IDs of the list, so I would like them to autocomplete with a sort of a "search" feature. Let's say I type "Mark Twain" or "Tom Sawyer", I want to get "94782293" to replace the words I typed, since the final value will be an ID, but the other words help search. So far I'm using displayText as Tom Sawyer by Mark Twain: 94782293, but the value is 94782293, which is obscuring what's happening to the user.

@github-actions github-actions bot added the status/need-triage Team needs to triage and take a first look label Jun 26, 2024
@yaharga yaharga changed the title Can you replace user's text when completing? Can you replace user's input when completing? Jun 26, 2024
@yaharga yaharga changed the title Can you replace user's input when completing? Can you replace user's input when using CompletionProposal? Jun 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status/need-triage Team needs to triage and take a first look
Projects
None yet
Development

No branches or pull requests

1 participant