2013-02-21 12 views
9

Czy IDEA lub jedna z jej wtyczek jest w stanie wyrównać kod do znaków specjalnych?Formatowanie kodu: Jak wyrównać kod wielowierszowy do znaków specjalnych?

To znaczy tak, że kod

Map(
    'name -> "Peter", 
    'age -> 27, 
    'company -> "Foobar" 
) 

przekształca się

Map(
    'name -> "Peter", 
    'age  -> 27, 
    'company -> "Foobar" 
) 

przyklad2:

execute("x", true, 27) 
execute("foobar", false, 0) 

przekształcone

execute("x"  , true , 27) 
execute("foobar", false, 0) 
+0

Nie ma ogólnego rozwiązania dla wszystkich języków i części kodu, każdy przypadek wymaga wsparcia ze specyficznego dla języka formatera. Opcja nazywa się [wyrównaj, gdy multilinią] (http://img13.imageshack.us/img13/2453/20130221161759.png). Jeśli nie jest jeszcze obsługiwany w Twoim języku lub przypadku użycia, [prześlij żądanie funkcji] (http://youtrack.jetbrains.net/issues/IDEA) i może zostać zaimplementowany w przyszłych wydaniach. – CrazyCoder

+0

Jestem z tobą, Stefano, ale uważam, że robienie tego ręcznie nie jest dużą przeszkodą w kodowaniu, ponieważ spędza się dużo więcej czasu tylko na myśleniu o prawidłowym doborze algorytmów i struktur. Jednak ... Bez wdów i sierocych nawiasów, OK? –

+0

Jeśli otworzysz zapytanie o funkcję, opublikuj ją tutaj, abyśmy mogli wykonać awans. To byłaby z pewnością wspaniała funkcja, cały czas używam tego rodzaju formatowania i nie cierpię robić tego ręcznie. –

Odpowiedz

1

W IDEA 12, jeśli używasz wtyczki Scala, możesz skonfigurować opcję "Wyrównaj, gdy multilinię" dla wielu rzeczy, w tym nawiasów metod. Twój konkretny przykład wielu wywołań w osobnych liniach nie jest jednak obsługiwany.

4

można wyrównać oświadczenia przypadku jednak:

value match { 
    case s: String => Some(java.lang.Long.parseLong(s)) 
    case bi: BigInt => Some(bi.longValue) 
    case _ => None 
} 

tak:

value match { 
    case s: String => Some(java.lang.Long.parseLong(s)) 
    case bi: BigInt => Some(bi.longValue) 
    case _   => None 
} 

Używaj opcji:

Ustawienia -> Code Style -> Scala => Pakowanie i Szelki - > Instrukcje "dopasuj" i "case" -> Dopasuj kolumny "skrzyń" gałęzi

+0

Czy można zastosować ten styl do częściowych funkcji? – kisileno

+0

Tak, jest to możliwe i działa. Miałem puste linie między instrukcjami "case", dlatego nie działa. – kisileno

0

Formater kodu wydaje się być solution.

+0

To wygląda obiecująco. Niestety nie mogłem go uruchomić w IDEA. –

+0

Działa idealnie dla mnie. Zajęło mi to 5 minut, żeby to ustawić. – jhegedus

+0

OK, mam to działa. Niektóre myśli wyglądają naprawdę dobrze. Z drugiej strony brakuje mi dwóch ważnych funkcji: obsługi kart i inteligentnych kart oraz obsługi częściowego formatowania plików w oparciu o wybór. Ponadto mój "Przykład 2" nie jest obsługiwany przez skalafmt. W każdym razie wygląda bardzo obiecująco i może być dobrym rozwiązaniem dla wielu osób. –

Powiązane problemy