Modify

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)

Screenshot from 2022-04-10 12-16-06.png (255.2 KB ) - added by hiddewie 2 years ago.
screenshot of intellij

Download all attachments as: .zip

Change History (5)

by hiddewie, 2 years ago

screenshot of intellij

comment:1 by skyper, 2 years ago

Not exactly what you describe but Help/Action/SearchMenuItems is quite close.

comment:2 by hiddewie, 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

in reply to:  2 comment:3 by skyper, 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 skyper, 23 months ago

Status: assignednew

Modify Ticket

Change Properties
Set your email in Preferences
Action
as new The owner will remain team.
as The resolution will be set. Next status will be 'closed'.
to The owner will be changed from team to the specified user.
Next status will be 'needinfo'. The owner will be changed from team to hiddewie.
as duplicate The resolution will be set to duplicate. Next status will be 'closed'. The specified ticket will be cross-referenced with this ticket.
The owner will be changed from team to anonymous. Next status will be 'assigned'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.