Domanda
Java-mode sembra essere rimozione dell'indentazione piuttosto che il rientro dopo una dichiarazione del metodo.
Con questo intendo che mi aspetto di vedere questo:
class GoodExample {
public void method() {
allNicelyIndented();
noProblemsHere();
}
}
Ma invece ottenere questo:
class CrazyIndenting {
public void method() { // ((inclass 134) (topmost-intro 326))
whyIsThisUnindented(); // ((defun-block-intro 379))
itsMessingWithMyHead(); // ((statement 454))
}
}
M-x c-set-style RET java
e conferma quindi C-x h C-M-\
che sta utilizzando lo stile java per l'intero buffer.
Uso cc-modalità caratteristiche interattive , C-c C-s
dà i simboli che ho messo nei commenti dopo il codice errato formattato, e C-c C-o
suggerisce valori di default che sembrano sensibile. (0, + e 0 per dichiarazione decrescente)
Guardando attraverso le mie .emacs, non riesco a vedere tutto ciò che potrebbe essere pasticciano con cc-mode, quindi sono un po 'bloccato per le direzioni per indagare successivo. L'Unindent per l'istruzione è inferiore al rientro per la dichiarazione di metodo (2 "spazi" invece di 4), quindi forse c'è una certa confusione scheda / spazio?
Versioni:. Emacs 22.2.1, JDE 2.3.5.1 e CC-mode 5.31.5
Soluzione
Anche se io non sono sicuro di quello che sta causando i vostri problemi con JDEE, posso suggerire di provare malabar -mode . E 'l'unico modo di Java in Emacs che sta incorporando roba moderna (come ad esempio l'integrazione con Maven e Groovy) ed è in fase di sviluppo attivo ...
Oltre a questo - Sono abbastanza sicuro che il rientro di base Java funziona bene con JDEE (e anche con il java-mode più vecchio), quindi il problema è causato probabilmente da voi Config (configurazione di cc-mode, in particolare, credo) .