Commit c811e2d
committed
Add command palette plugin (Ctrl+P)
Fuzzy-searchable modal listing every registered tool and action. Opens
via Ctrl+P, arrow keys to navigate, Enter to execute, Escape to close.
- New renzora_command_palette plugin crate, consumes only existing SDK
surfaces (ToolbarRegistry, ShortcutRegistry, KeyBindings).
- Tools are filtered by their visible predicate so context-sensitive
ones (terrain brushes, Join Selected) appear only when relevant.
- All EditorAction enum entries are surfaced too, with current
keybindings displayed. Hold-based camera movement actions are
filtered out.
To fire built-in actions without touching the 35 existing just_pressed
call sites, added an Arc<Mutex<HashSet>> dispatch channel on KeyBindings:
- KeyBindings::dispatch(action) / dispatch_plugin(id) — programmatic
trigger, no keyboard press required.
- just_pressed() now returns true if the action was dispatched this
frame, transparent to existing consumers.
- clear_dispatched_actions system runs in Last to drain the set each
frame so dispatches don't leak.
- Plugin shortcut dispatcher honors is_plugin_dispatched the same way.
Any future feature (macro recording, scripting bridge, remote control)
can fire editor actions through this same channel.1 parent 9b97ee6 commit c811e2d
6 files changed
Lines changed: 488 additions & 2 deletions
File tree
- crates
- core/renzora_core/src
- editor
- renzora_command_palette
- src
- renzora_editor/src
- renzora_keybindings/src
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
15 | 16 | | |
16 | 17 | | |
17 | 18 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
| 8 | + | |
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
| |||
273 | 274 | | |
274 | 275 | | |
275 | 276 | | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
276 | 287 | | |
277 | 288 | | |
278 | 289 | | |
| |||
343 | 354 | | |
344 | 355 | | |
345 | 356 | | |
| 357 | + | |
| 358 | + | |
346 | 359 | | |
347 | 360 | | |
348 | 361 | | |
| |||
357 | 370 | | |
358 | 371 | | |
359 | 372 | | |
360 | | - | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
361 | 376 | | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
362 | 380 | | |
363 | 381 | | |
364 | 382 | | |
| |||
375 | 393 | | |
376 | 394 | | |
377 | 395 | | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
378 | 418 | | |
379 | 419 | | |
380 | 420 | | |
| |||
403 | 443 | | |
404 | 444 | | |
405 | 445 | | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
406 | 457 | | |
407 | 458 | | |
408 | 459 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
0 commit comments