gpui-action
Action definitions and keyboard shortcuts in GPUI. Use when implementing actions, keyboard shortcuts, or key bindings.
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Action definitions and keyboard shortcuts in GPUI. Use when implementing actions, keyboard shortcuts, or key bindings.
How to use
Zaimportuj makro
actions!z biblioteki GPUI i zdefiniuj listę akcji, które chcesz obsługiwać — na przykładactions!(editor, [MoveUp, MoveDown, Save, Quit]). Każda akcja to nazwa, którą będziesz wiązać ze skrótem klawiszowym.Utwórz stałą tekstową reprezentującą kontekst, w którym akcje będą aktywne — na przykład
const CONTEXT: &str = "Editor". Kontekst pozwala na warunkowe aktywowanie akcji w zależności od stanu interfejsu.W funkcji inicjalizacji aplikacji powiąż klawisze z akcjami za pomocą
cx.bind_keys(), przekazując listęKeyBinding. Każde powiązanie określa kombinację klawiszy (np. "up", "cmd-s"), akcję oraz kontekst, w którym ma być aktywne.W metodzie
render()komponentu dodaj kontekst do elementu za pomocą.key_context(CONTEXT)i zarejestruj handlery akcji za pomocą.on_action(), przekazując słuchacze zdefiniowane w strukturze komponentu.Zaimplementuj metody obsługujące każdą akcję — na przykład
move_up(),move_down(),save(). Każda metoda otrzymuje referencję do akcji i kontekst, w którym może zmienić stan komponentu i powiadomić interfejs o zmianach za pomocącx.notify().Dla akcji wymagających parametrów użyj atrybutu
#[derive(Action)]na strukturze zawierającej dane — na przykładInsertText { text: String }— i powiąż je wbind_keys()z konkretnymi wartościami.