2013-05-14 10 views
6

Emacs 24 modalità Java non rientro della nuova try-with-resource costrutto correttamente.Perché tentano-con-le risorse pausa rientro in Emacs?"

class X{ 
    void foo() { 
     try { 
      check(); // ((statement-block-intro 35)) 
     } 
    } 

    void bar() { 
     try (Lock l = bar()) { 
       check(); // ((substatement 140) (statement-block-intro 140)) 
      } 
    } 
} 

Come visto in precedenza, le dichiarazioni all'interno di tale blocco try sono rientrato da un supplemento di 4 spazi, il valore della c-basic-indent, tra parentesi graffa di chiusura.

una differenza tra try e try-with-resource che ho individuato il sintattico-informazione per la prima istruzione nel blocco, quest'ultimo avendo un extra (substatement) alla testa. Potrebbe essere questa la ragione per cui si rompe?

Se elimino manualmente 4 spazi dalla prima riga, il resto delle righe rientra correttamente, ad eccezione della parentesi di chiusura, che continua ad essere rientrata con spazi aggiuntivi.

Questo mi sta facendo impazzire. Se risolvendolo, la mia modifica c-guess-basic-syntax non è banale, forse una soluzione alternativa che consiglia?

risposta

1

Sebbene il thread http://osdir.com/ml/emacs-diffs-gnu/2013-07/msg00350.html abbia effettivamente una correzione, non è ancora nell'ultima modalità cc. Ho preso l'ultima modalità cc e l'ho installata, quindi ho afferrato il diff e l'ho applicato (non si applicava più pulito, ma era breve e facile da eseguire a mano). Rientranza corretta! Molto più fastidioso di quello che dovrebbe essere, ma ho provato correttamente i blocchi provati, quindi sono felice.

+0

Grazie per il follow-up. Con la mia versione attuale '24.4.1' il rientro sembra funzionare correttamente anche con' emacs -q' –