Opened 2 years ago
Last modified 23 months ago
#22006 new enhancement
Feature: Search for actions/commands
Reported by: | hiddewie | Owned by: | team |
---|---|---|---|
Priority: | minor | Milestone: | |
Component: | Core | Version: | |
Keywords: | Cc: |
Description
This ticket is inspired by a similar feature in many IDEs (like VSCode, IntelliJ, etc.) and Spotlight in MacOS.
This ticket is a UI feature, and does not impact functionality of JOSM itself.
What
I link to https://www.jetbrains.com/help/idea/searching-everywhere.html#search_actions which shows some screenshots of such a feature in IntelliJ.
When the user presses a certain keyboard shortcut, a modal window pops up, and shows a search field. The user can type a (non-complete) search string, and the modal will show a (short) list of results.
The results are influenced by the current context of the user, because not all actions/commands are applicable at all times. Just like the menu items which are greyed out in the application menu.
Upon selecting the action, it is executed directly, or opens the window where the user can perform the action.
Some examples:
- 'New layer' would create a new layer.
- 'Reverse ways' reverts ways.
- 'Address' opens the preset window to add the Address preset to the selected objects.
- 'Tags for selected objects' toggles if the tags panel is shown in the UI.
- 'Report bug' opens the browser with relevant debugging information in a new ticket.
In the most commonly used actions, the keyboard shortcut would be quicker to execute the action, but the user may have forgotten the keyboard shortcut.
Why
After using this feature in other IDEs for many years, I found the following benefits:
- It makes features discoverable, by searching for the name of the feature.
- It makes features accessible quickly without searching for the correct menu item or UI modal.
- It reduces the use of the mouse, even when performing complex actions in JOSM.
- It allows assigning keyboard shortcuts quickly to commonly used actions.
- It makes explaining features to other users of JOSM easier, by describing the name of the action instead of the entire flow of menu-items and UI dialogs/modals.
How
- A global list of actions/commands within JOSM should be composed at startup, or when a plugin is loaded.
- The names and possible keyboard shortcuts
- Searching should happen in a 'fuzzy' manner: typing 'nonws' should find the action 'Non-branching way sequences'.
- (optional) Toggles for boolean application settings
- Plugins may add a list of actions for searching/discovering by the user (just like plugins may add menu items)
Attachments (1)
Change History (5)
by , 2 years ago
Attachment: | Screenshot from 2022-04-10 12-16-06.png added |
---|
comment:1 by , 2 years ago
Not exactly what you describe but Help/Action/SearchMenuItems is quite close.
follow-up: 3 comment:2 by , 2 years ago
Thanks, 'Search Menu Items' is very close. I was not aware of that feature and it will help me a lot in discovering JOSM features!
Some things are still missing:
- Single place for 'everything', including presets, modal components (for example the delete button within the Tags window to delete a tag),
- Searching for, and toggling (boolean) preferences
- Assigning shortcuts
comment:3 by , 2 years ago
Replying to hiddewie:
Thanks, 'Search Menu Items' is very close. I was not aware of that feature and it will help me a lot in discovering JOSM features!
You are welcome.
Some things are still missing:
- Single place for 'everything', including presets, modal components (for example the delete button within the Tags window to delete a tag),
I am not sure about that as there are many "delete" buttons among other actions with identical names.
For presets there is a similar action available in the presets menu.
Meanwhile F1
might help you, leading to the help pages.
- Searching for, and toggling (boolean) preferences
A search is available under Advanced Preferences
- Assigning shortcuts
Assigning shortscuts is so far only limited, see Keyboard Shortcuts
comment:4 by , 23 months ago
Status: | assigned → new |
---|
screenshot of intellij