2011-08-05 11 views
10

Mój java-mode w emacs chce wciąć argumenty funkcyjne tak:Java-Mode Argument Wcięcia w Emacs

someLongFunctionName(
        argumentNumberOne, 
        argumentNumberTwo, 
        argumentNumberThree, 
        argumentNumberFour 
        ); 

Istnieją dwa problemy tutaj. Po pierwsze, chce ustawić początek argumentów końcem nazwy funkcji. Po drugie, chce traktować szafę w szafie jak argument, a tym samym układa ją z wszystkimi innymi argumentami. Nie lubię żadnego z tych zachowań.

Chętniej to wcięcie mój kod tak:

someLongFunctionName(
    argumentNumberOne, 
    argumentNumberTwo, 
    argumentNumberThree, 
    argumentNumberFour 
); 

c-mode ma znacznie lepszą pracę to domyślnie i chciałbym przenieść zachowanie Java-mode, jeśli to możliwe .

Nadal muszę się nauczyć, jak działa silnik do wciskania emacsa, aw tej chwili naprawdę nie znam nawet tak wiele seplenienia. Te dwa ćwiczenia są zdecydowanie na moim talerzu, ale w tej chwili szybkie kopiowanie i wklejanie byłoby naprawdę niesamowite.

Odpowiedz

13

Spróbuj

(defun my-indent-setup() 
    (c-set-offset 'arglist-intro '+)) 
(add-hook 'java-mode-hook 'my-indent-setup) 

Od http://www.emacswiki.org/emacs/IndentingC

+0

niesamowite, że pracował. Nie mogę nawet zgadywać, dlaczego jest miejsce po słowie arglist-intro i przed końcowym cytatem, lub dlaczego po +; ale działa. Nadal wciska parenkę w głupi sposób, ale myślę, że mogę z tym żyć, c-mode też robi głupie zamknięcie i żyję z tym od lat. W każdym razie, dzięki milionowi; oznaczając to jako odpowiedź. –

+1

heh, nie znam zbyt wielu selekcji ale zwykle ufam emacswiki, nie ma za co: D –

+0

Co ciekawe, to nie jest końcowy cytat. Jest to cytat z +, więc można go przekazać jako nazwę, a nie oceniać od razu. – db48x

Powiązane problemy