gpui-action
Definiuj akcje i skróty klawiszowe w GPUI — steruj interfejsem za pomocą klawiatury
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Skill do pracy z akcjami i skrótami klawiszowymi w GPUI. Umożliwia deklaratywne definiowanie interakcji sterowanych klawiaturą, wiązanie klawiszy z akcjami oraz obsługę zdarzeń w kontekście interfejsu. Użyj go, gdy implementujesz nowe akcje, przypisujesz skróty klawiszowe lub tworzysz powiązania klawiszy w komponentach GPUI.
Jak używać
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.