2013-09-04 15 views
6

Kiedy pracuję z niektórych rodzajów plików, takich jak: plik Java, pliku HTML lub pliku Jasmine test może wygenerować kilka użytecznych fragmentów kodu przy użyciu Code > Generate opcji, na przykład:Dodawanie niestandardowego kodu generator

  • gdybym pracuję z pliku Java Code > Generate pozwala mi wkładać getter, seter, konstruktor etc
  • jeśli pracuję z pliku HTML Code > Generate pozwala mi wstawić tag XML
  • jeśli pracuję z Jasmine pliku tekstowego Code > Generate pozwala mi wkładać rusztowanie kombinezonu testowego lub pojedynczego przypadku testowego

Zastanawiam się, czy (i jak) mogę dodać własny "generator". Wiem, że mogę używać szablonów na żywo, ale podoba mi się to, że Code > Generate daje mi szybką listę wszystkich dostępnych generatorów.

Odpowiedz

8

Tak, można to zrobić poprzez pisanie plugin IntelliJ i rozszerzenie tej klasy:

com.intellij.openapi.actionSystem.Action 

Jeśli utworzyć projekt plugin IntelliJ (tylko google intellij plugin development informacji na temat jak zacząć), uderzył Alt wpisz gdzieś w drzewie źródłowym projektu i wybierz Action, pojawi się okno dialogowe, które pozwoli ci skonfigurować miejsce, w którym powinna pojawić się twoja akcja.

Chcesz umieścić go w odniesieniu do innej akcji, która już istnieje, na przykład tuż pod nią. W twoim przypadku - spójrz na grupę menu o nazwie GenerateGroup (Generate).

Po zdefiniowaniu czynności w ten sposób w pliku plugin.xml, skompiluj i uruchom wtyczkę w piaskownicy.

Teraz, po uruchomieniu akcji, zostanie uruchomione AnActionEvent, które zawiera odniesienia do wszystkich potrzebnych informacji (bieżący projekt, plik, pozycja kursora w pliku, drzewo psi itd.).

Postaraj się, aby to zadziałało do tej pory i wróć z konkretnymi pytaniami.

Powodzenia!