Toolverse
All skills

gpui-action

by longbridge

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

Quick info

Category
Frontend
Views
8

About this skill

Action definitions and keyboard shortcuts in GPUI. Use when implementing actions, keyboard shortcuts, or key bindings.

How to use

  1. Zaimportuj makro actions! z biblioteki GPUI i zdefiniuj listę akcji, które chcesz obsługiwać — na przykład actions!(editor, [MoveUp, MoveDown, Save, Quit]). Każda akcja to nazwa, którą będziesz wiązać ze skrótem klawiszowym.

  2. 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.

  3. 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.

  4. 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.

  5. 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().

  6. Dla akcji wymagających parametrów użyj atrybutu #[derive(Action)] na strukturze zawierającej dane — na przykład InsertText { text: String } — i powiąż je w bind_keys() z konkretnymi wartościami.

Related skills