2009-09-17 4 views
6

Chciałbym móc stworzyć szablon na żywo w Idea Jetbrain, który zarejestruje argumenty metody. Nazwijmy to "larg". To działa tak:Idea Live Template to Log Method Args

public void get(String one, String two) { 
    larg<tab> 

stworzyć

public void get(String one, String two) { 
    log.info("get: one = " + one + " two = " + two); 

jestem zadowolony z coraz nazwę metody in, ale nie zorientowali się, jak wyciągnąć w argumentach metod. Jakieś pomysły?

Odpowiedz

11

jestem 4 lata późno, ale predefiniowany szablon soutp dość dużo robi to przy użyciu zmiennej groovyscript.

Oto Groovy skrypt, który robi to, co szukasz

groovyScript("'\"' + _1.collect { it + ' = [\" + ' + it + ' + \"]'}.join(', ') + '\"'", methodParameters()) 
+1

Nie było dla mnie jasne, że to działało w Javie. Jeśli przejdziesz do [Live Templates] -> [output] -> [soutp], zobaczysz ten skrypt w akcji i na pewno działa. Dzięki! – BoredAndroidDeveloper

+0

Czy to działa również dla javascript? Próbowałem bez powodzenia, może coś przeoczyłem. –

+0

Proste, ale powiązane: aby uzyskać dostęp tylko do pierwszego, drugiego, trzeciego itd. Parametru z _1, po prostu użyj '_1 [0]', '_1 [1]', itp. – Voy

0

Wygląda na to, że nie jest obecnie możliwe dzięki szablonowi na żywo.

Z Jetbrain's forum:

There is no predefined live template function to do this for you automatically. 
You can write a plugin that would provide such a function.