Szablon Intellij Live

81

Czy istnieje sposób na użycie domyślnej wartości tokenu w Intellij Live templates? Na przykład mam następujący szablon na żywo, który deklaruje prywatną zmienną, którą chciałbym utworzyć prawie dla każdej klasy:

private static final Logger logger = Logger.getLogger($CLASS$.class)

Wydaje się niepotrzebne wpisywanie za $CLASS$każdym razem, gdy używany jest ten aktywny szablon, ponieważ może on pochodzić z klasy w zakresie lub z nazwy pliku. Zastanawiałem się, czy możliwe jest użycie tokenów zdefiniowanych w środowisku w szablonach na żywo jako domyślnych?

Leonid
źródło

Odpowiedzi:

54

log4j:

private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger($CLASS_NAME$.class);

slf4j:

private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger($CLASS_NAME$.class);

Upewnij się, że ustawiłeś odpowiedni kontekst na Java i skróć nazwy FQ i pomiń, jeśli zdefiniowane są włączone.

Nowaker
źródło
3
Podoba mi się dodatek, o którym wspomniano w tym artykule, służący do konfigurowania wyrażenia w celu wypełnienia zmiennej rozsądną wartością domyślną. coderwall.com/p/hzmhbw
Snekse
@Snekse To dobry dodatek. Zapraszam do poprawienia mojej odpowiedzi poprzez jej edycję.
Nowaker
Ta odpowiedź tak naprawdę nie odpowiada na pytanie zadającego pytanie: aby automatycznie wypełnić $CLASS_NAME$zmienną nazwą klasy, należy ustawić „Wyrażenie” powiązane ze $CLASS_NAME$zmienną, która ma być className(). Zobacz odpowiedź CrazyCodera na zrzut ekranu.
Adil Hussain
3

log4j 2:

private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger($CLASS_NAME$.class);
bruno.do.amaral
źródło
Ta odpowiedź w rzeczywistości nie odpowiada na pytanie zadającego pytanie: aby automatycznie wypełnić $CLASS_NAME$zmienną nazwą klasy, należy ustawić „Wyrażenie” powiązane ze $CLASS_NAME$zmienną, która ma być className(). Zobacz odpowiedź CrazyCodera na zrzut ekranu.
Adil Hussain