2013-09-04 10 views
6

Quando lavoro con alcuni tipi di file, come ad esempio: il file Java, file HTML o un file Jasmine test posso generare alcuni frammenti di codice utili utilizzando Code > Generate opzione, ad esempio:L'aggiunta di generatore di codice personalizzato

  • se io sto lavorando con file di Java Code > Generate mi permette di inserire getter, setter, costruttore ecc
  • se sto lavorando con file HTML Code > Generate mi permette di inserire un tag XML
  • se sto lavorando con Jasmine file di testo Code > Generate mi permette di inserire un'impalcatura di una tuta o di un caso di test singa

Mi chiedevo se (e come) posso aggiungere il mio "generatore". So di poter utilizzare i modelli dinamici, ma mi piace il fatto che lo standard Code > Generate mi fornisca un rapido elenco di tutti i generatori disponibili.

risposta

8

Sì, è possibile farlo scrivendo un plugin IntelliJ ed estendendo questa classe:

com.intellij.openapi.actionSystem.Action 

Se si crea un progetto di plug-in IntelliJ (solo google intellij plugin development per informazioni su come iniziare), ha colpito Alt- entra da qualche parte nell'albero dei sorgenti del tuo progetto e seleziona Action, riceverai una finestra di dialogo che ti permetterà di configurare dove dovrebbe apparire la tua azione.

Si desidera posizionarlo in relazione a un'altra azione già esistente, ad esempio proprio sotto di essa. Nel tuo caso, dai un'occhiata al gruppo di menu chiamato GenerateGroup (Generate).

Una volta definita l'azione in questo modo nel file plugin.xml, creare ed eseguire il plug-in nella sandbox.

Ora, quando viene attivato l'azione, il AnActionEvent saranno licenziati, che contiene i riferimenti a tutte le informazioni che ti servono (progetto in corso, di file, la posizione del cursore all'interno del file, albero psi, ecc).

Cerca di far funzionare tutto questo fino ad ora e torna con domande specifiche.

Buona fortuna!