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?

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.


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);

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.