2012-03-26 12 views
26

Se per esempio digito "Intero". quindi premi CTRL + SPAZIO e ora scegli "valueOf" dall'elenco, Eclipse aggiunge sempre "()" dopo il nome della funzione. Questo è davvero fastidioso per me perché spesso ho una dichiarazione già esistente e voglio avvolgere una funzione attorno ad essa.Come fermare Eclipse dall'aggiunta automatica delle parentesi?

Esempio: voglio cambiare

String x = "hello world"; 

a

String x = StringManipulator.uppercase("hello world"); 

Se scrivo

String x = StringManipulator."hello world"; 

e premere Ctrl + Spazio sul carattere punto, inserisce

String x = StringManipulator.uppercase()"hello world"; 

C'è un modo per risolvere questo comportamento? Non ho bisogno della chiusura automatica dei genitori, ma fermare Eclipse dall'inserirli automaticamente mi aiuterebbe molto.

+3

Come può questa domanda possibilmente avere meno di 100 uptotes? – mafu

risposta

9

Vai a Preferenze in eclissi -> nel tipo di casella di ricerca: "parent" -> deseleziona le opzioni che non ti piacciono. Questo è ciò che cerca in quel pasticcio (le preferenze di Eclipse).

+1

Grazie! Con la ricerca di un genitore l'ho trovato in Editor-> Typing. Edit:. Non ha aiutato :-(io non selezionati "Automaticamente chiuso ... '(parentesi) ...', ma ancora li crea –

+0

Prova a riavviare Eclipse e assicuratevi di incontrollato nella sezione di destra (Java, C/C++ ecc). dovrebbe funzionare a meno che alcuni dei vostri plugin è pasticciano con esso. – AoeAoe

4

Chiude automaticamente le parentesi quando si apre una parentesi in questo caso si sta completando automaticamente un metodo, in questo caso quando il metodo che si sta chiamando ha argomenti verrà autocreata le parentesi e i blocchi in cui verranno posizionati gli argomenti, lì c'è modo di completare automaticamente solo il metodo senza le parentesi, ma si potrebbe creare un modello di completamento automatico:

  1. Vai a Preferenze: Java => Editor => template
  2. Nuova
  3. scrivere qualsiasi nome rilevante
  4. Nel contesto scegliere le istruzioni Java
  5. Dentro pattern write: StringManipulator.uppercase ($ {line_selection} $ {cursor});
  6. OK e OK di nuovo
  7. Ora, quando si desidera aggiungere la funzione basta selezionare il testo da circondare, premete Alt + Maiusc + Z, e scegliere il modello creato in precedenza

Speranza che aiuta

+3

Grazie! E 'rassicurante che questo esiste ma è troppo complicato da fare per tutti i metodi API di Java :-) –

+0

credo che questa sia la risposta corretta. ci sembra non esserci modo di dire Eclipse per non creare '();' quando l'auto-completamento di un metodo di meno che, come @pescamillam, detto lo fai per ogni metodo Questa è una rottura – KevinO

8

Trovo che questa impostazione non correlata faccia una grande differenza, quindi ne parlerò.

La funzione di completamento automatico in eclissi funziona in modo leggermente diverso se si seleziona "Overbase completamento" invece di "Inserimenti completamento" nelle preferenze "Assistente contenuto".

wrappingMoriginalMethod()

con il cursore dopo "GM" al di sopra di accettare la proposta di completamento dà:

wrappingMethod()

wrappingM (originalMethod()

con il cursore dopo "GM" al di sopra di accettare la proposta di completamento dà:

wrappingMethod (originalMethod()

Avviso ho dovuto aggiungere le parentesi aperte per evitare che la sovrascrittura, ma senza parentesi extra.

wrappingM originalMethod()

con il cursore dopo "GM" al di sopra di accettare la proposta di completamento dà:

wrappingMethod (parameterGuess) originalMethod()

Trovo questo la scelta più comoda finora. Penso che sarebbe bello se ci fosse una funzione di inserimento "intelligente" delle parentesi che NON inserirà il paren se si sta completando proprio prima di un paren esistente e poiché anch'io lo desidero ... sarebbe ancora più bello se potesse controllare quelli esistenti per vedere se hanno gli argomenti che sto cercando o no e fare qualcosa di intelligente O controllare il metodo dopo il mio punto di inserimento per vedere se dovrebbe essere un argomento per il mio completamento e basta andare avanti e FARE quello e mettere un colsing Paren dopo di esso e PRIMA del punto e virgola se ce n'era già uno.

che ancora una volta, se l'IDE scrive tutto il mio codice di poi mi annoio abbastanza rapidamente.

+0

Nice one e concordato -...! è strano che con la consapevolezza che Eclipse ha del mio codice sorgente, non funziona che c'è già "()" presente: / – cs94njw

Problemi correlati