2014-10-15 25 views
6

Używam IntelliJ IDEA 13.1.5 do pisania kodu Java, który używa płynnych interfejsów API i zauważyłem, że kiedy zamykam blok wokół "płynnej" części kodu, IDEA automatycznie spłaszcza się "płynny" kod w jedną linię.Jak zatrzymać spłaszczanie interfejsów API w IntelliJ

Na przykład, jeśli mam tej metody:

public int sendMessage(Message message) { 
    Response response = JerseyClientHelper.target(serverUrl) 
      .header("User-Agent", userAgent) 
      .post(Entity.entity(message)); 
    return response.getStatus(); 
} 

i staram się zawinąć go w nowy „czy” blok, to bym wpisać jeśli warunek i otworzyć blok:

public int sendMessage(Message message) { 
    if (message != null) { 
    Response response = JerseyClientHelper.target(serverUrl) 
       .header("User-Agent", userAgent) 
       .post(Entity.entity(message)); 
    return response.getStatus(); 
    // Didn't type the '}' to close the block yet 
} 

ale jak tylko wpisać } aby zamknąć blok, IntelliJ spłaszcza kod w jednej linii:

public int sendMessage(Message message) { 
    if (message != null) { 
    Response response = JerseyClientHelper.target(serverUrl).header("User-Agent", userAgent).post(Entity.entity(message)); 
    return response.getStatus(); 
    } 
} 

Czy istnieje sposób na wyłączenie automatycznego spłaszczania płynnych interfejsów API? Zajrzałem do sekcji "Styl kodu -> Java" i "Styl kodu -> Ogólne", ale nie znalazłem niczego, co byłoby z tym związane.

+1

Jak to się stało, że nie dostał 769 głosów? !! Czy jestem jedynym, który korzysta z API Stream? ;-) – Vitaliy

Odpowiedz

14

Ustawienia> style code> Jawa> owijania i szelki> przykuty metoda nazywa

(w wersji 14)

wygląda to

myInstance.call() 
      .again() 
      .eclipseIsRubbish(true) 
      .cestfin(); 
+0

Och, "łańcuchowe wywoływanie metod" :) Dzięki! –

+0

Mimo że to działa, wydaje się, że "wcięcie kontynuacyjne" jest zbyt głupie, aby uświadomić sobie sposób łączenia łańcuchów, więc musiałem nacisnąć "zakładkę zmiany" lub "zmienić kod" podczas łączenia metod. Na razie ustawiłem wcięcie kontynuacji na 0, co też jest denerwujące. Jestem ciekaw, czy inni mają ten problem. –

+0

@AdamGent Używam wersji 14, działa perfekcyjnie ... wszędzie tam, gdzie rozpoczyna się pierwsze wywołanie metody, każde połączenie jest bezpośrednio pod ... zobacz moją aktualizację – NimChimpsky