-
Notifications
You must be signed in to change notification settings - Fork 8
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
Support for finding commands via additional keywords #8
Comments
Thanks for the details, here's some thoughts of mine
I had no idea about
That was the idea behind the
Child commands cannot have The alternative would be to allow any command in the tree to have a
These are great points, I think 'breadcrumbs' or something to denote where you are is a good idea, especially for the "Change Language" example.
I don't agree that the command should match any child command from the top level. This would mean you get possibly hundreds of results which aren't specific to the current level you're on. Example: if I type I guess I see the "Command Palette" as a filter, rather than a search. You only filter what's in the list you can scroll.
Not exactly sure what you mean here ^ the command matches according to the In my experience, the best systems have a single top-level command layer which have keyboard shortcuts and all child commands are accessible from that top level. This is important for many reasons:
Sorry for the rant 😅 |
No problem at all. It was less rant and more background perspective. Now you can read my rant 8-).
The problem I see/have had is lack of search result context for the match. I might not be thinking "Contact" in terms of email, but say Contact in terms of paper[1]. This is why people do card sorting exercises to understand a term's context. [1]: shelf liner or whatever it's called in your neck of the woods. If I see Being able to view the description would add context in situations like this. This is why in #30 the user gets feedback on the "most likely" fuzzy alias match. To deal with the Kongo result, there could be another parameter, a user/developer defined cutoff so terms like Kongo that score higher (0 perfect match 1, bad match) are filtered from the result set.
Fair enough. The discovery issue is real. I don't use VScode, you can pry emacs out of my cold dead hands 8-). Just as a counterpoint, menus have shortcut keys at the lower levels. Granted menus rarely exceed three levels. E.g.
Well it should just execute a nested command. Which actually brings up another point. Why does command-pal display itself when activating a hotkey? Is that another vscode thing? If I use a hotkey for example in [warning random aside ahead] I doubt this would be useful for hotkey discovery though 8-). If the hotkey opens the command-pal nested menu, then displaying the top level command palette and moving to the submenu makes sense.
It could add a small breadcrumb in the header above the search box
Another way to look at command palette is a searchable omnipotent menu. Also wouldn't this depend on usage. For example take a top level menu with If I type:
I could create top level commands named Also regarding the nested menu, how do I go up a level? Ninja-Keys uses backspace when invoked in an
Given my explanation of search result context above, does 4 make more sense? Not displaying the description leaves the user wondering why the result is shown. In any case using a nested list is not right for my use case.
All laudable goals. Footnotes
|
Hello:
I was looking for a command palette to add to my roundup issue tracker tracker template. It looks like command-pal and ninja-keys are the only two implementations that work with vanilla JS.
Fuzzy search works well for typos, but suppose I want a search for email to find the "Contact" command in my palette?
Obviously fuzzy search won't handle that. Is there an alias/keyword array property that fuzzy search will look at to select the Contact field? I envision something like:
I suppose I could create child commands:
but that seems suboptimal for a few reasons:
Thoughts?
The text was updated successfully, but these errors were encountered: