Come rimuovere automaticamente lo spazio vuoto finale in Eclipse?

La domanda ha due parti, una delle quali ho già una risposta.

  1. Come rimuovere automaticamente gli spazi bianchi finali dall’intero file che si sta modificando ? -> Risposta: usa il plugin AnyEdit , che può essere impostato per farlo su qualsiasi salvataggio nel file.
  2. Come rimuovere automaticamente gli spazi bianchi finali dalle righe che ho modificato ? -> Questo non lo so e apprezzerei qualsiasi aiuto.

  1. Rimozione di spazi bianchi dall’intero file in corso di modifica :

Preferenze -> Java -> Editor -> Salva azioni -> seleziona Esegui le azioni selezionate al salvataggio -> seleziona Azioni aggiuntive -> fai clic su Configura .. -> vai alla scheda di organizzazione del codice -> seleziona Rimuovi spazi bianchi finali -> seleziona Tutte le linee .

  1. Rimuovere gli spazi bianchi solo dalle righe che ho modificato :

Preferenze -> Java -> Editor -> Salva azioni -> selezionaEsegui le azioni selezionate al salvataggio -> seleziona Formatta codice sorgente -> seleziona Formato linee modificate .

Nota che non è necessario fare clic su Configura le impostazioni del formattatore sulla pagina Formatter : tutti gli stili di codice includono automaticamente la rimozione degli spazi bianchi finali. Almeno non sono riuscito a trovare un’impostazione per questo nella configurazione di Formatter, e ha funzionato immediatamente per gli standard Java Conventions, Eclipse, Eclipse 2.1 e GoogleStyle .

Quando si utilizza questo set-up, è ovviamente necessario distriggersre anche la soluzione alla prima parte della domanda.

Eclipse version checked: 4.5.2 

Presumo che le tue domande riguardino il codice Java. In questo caso, non è necessario alcun plug-in aggiuntivo per eseguire 1). Puoi semplicemente andare su Preferenze -> Java -> Editor -> Salva azioni e configurarlo per rimuovere gli spazi bianchi finali .

Dai suoni di questo vuoi anche fare di tutto questo un ambiente a livello di squadra, giusto? Per semplificarti la vita ed evitare di doverlo ricordare ogni volta che hai un nuovo spazio di lavoro, puoi impostare l’azione di salvataggio come preferenza specifica del progetto che viene archiviata nel tuo SCM insieme al codice.

Per fare ciò, fare clic con il tasto destro del mouse sul progetto e andare su Proprietà -> Editor Java -> Salva azioni . Da lì è ansible abilitare le impostazioni specifiche del progetto e configurarlo per rimuovere gli spazi bianchi finali (tra le altre cose utili).

NB : questa opzione è stata rimossa in Eclipse Kepler (4.3) e nelle versioni successive.

NB # 2: L’opzione sembra essere tornata in Eclipse Luna – Luna Service Release 1a (4.4.1)

Non hai bisogno di alcun plugin per farlo. Ad esempio, se si codifica JAVA, è ansible cancellare spazi bianchi finali configurando azioni di salvataggio:

Eclipse 3.6

Preferenze -> Java -> Editor -> Salva azioni -> Verifica Esegui le azioni selezionate al salvataggio -> Controlla azioni aggiuntive -> Fai clic sul pulsante Configura ...

Nella scheda di organizzazione del codice , seleziona Rimuovi spazi bianchi finali

PyDev può farlo Ctrl + Shift + F se hai impostato l’opzione di formattazione del codice per farlo, o durante il salvataggio :

Eclipse -> Finestra -> Preferenze -> PyDev -> Editor -> Stile codice -> Formattatore codice :

Io uso almeno questi:

  • Formato automatico prima del salvataggio
  • Linee di taglio giuste?
  • Aggiungi una nuova riga alla fine del file

Fai quanto segue:

Preferenze -> Java -> Editor -> Salva azioni

inserisci la descrizione dell'immagine qui

È ansible mappare una chiave in Eclipse per rimuovere manualmente spazi bianchi finali nell’intero file, ma solo su richiesta anziché automaticamente al salvataggio. (Preference / Keys e quindi mappare un set di tasti su File / Remove Trailing Whitespace) Questo può essere utile se si desidera disinfettare tutti i nuovi file, ma mantenere intatto il codice legacy.

Un’altra strategia è quella di triggersre la visualizzazione visiva degli spazi bianchi, quindi almeno saprai quando aggiungerai degli spazi bianchi finali. Per quanto ne so, non c’è modo di visualizzare solo spazi bianchi finali, ma sarò lieto di essere smentito.

In un pizzico, per quegli editor che non supportano la rimozione degli spazi bianchi finali (ad es. L’editor XML), puoi rimuoverlo da tutte le linee eseguendo un find e replace, abilitando le espressioni regolari, quindi trovando “[\ t] + $ “e sostituendolo con” “(vuoto). Probabilmente c’è una regex migliore per farlo, ma funziona per me senza bisogno di installare AnyEdit.

Direi anche AnyEdit. Non fornisce queste funzionalità specifiche. Tuttavia, se tu e il tuo team utilizzate le funzionalità AnyEdit in ogni azione di salvataggio, quando aprite un file, non deve contenere spazi bianchi finali.

Quindi, se si modifica questo file e se si aggiungono nuovi spazi finali, durante l’operazione di salvataggio AnyEdit rimuoverà solo questi nuovi spazi, poiché sono gli unici spazi finali di questo file.

Se, per qualche ragione, hai bisogno di mantenere gli spazi finali sulle linee che non sono state modificate da te, allora non ho una risposta per te, e non sono sicuro che questo tipo di funzionalità esista in qualsiasi plugin di Eclipse …

È imansible farlo in Eclipse in modo generico in questo momento, ma può essere modificato con una conoscenza di base di Java e un po ‘di tempo libero per aggiungere il supporto di base per questo https://bugs.eclipse.org/bugs/show_bug.cgi? id = 180349

Il problema dipendente: https://bugs.eclipse.org/bugs/show_bug.cgi?id=311173

Per php c’è anche un’opzione: inserisci la descrizione dell'immagine qui

C’è un modo davvero semplice per farlo con sed, lo strumento da riga di comando di Unix. Probabilmente potresti creare una macro in Eclipse per eseguire questo:

 sed -i 's/[[:space:]]*$//'  

Come ha detto @Malvineous, non è professionale, ma un modo per aggirare l’utilizzo del metodo Trova / Sostituisci per rimuovere lo spazio finale (sotto la scheda U + 0009 e lo spazio bianco U + 0020).
Basta premere Ctrl + F (o comando + F)

  1. Trova [\t ][\t ]*$
  2. Sostituisci con una stringa vuota
  3. Usa espressioni regolari
  4. Sostituisci tutto

extra:
Per rimuovere lo spazio iniziale, cerca ^[\t ][\t ]* invece di [\t ][\t ]*$
Per rimuovere le righe vuote, trovare ^\s*$\r?\n

Non sono a conoscenza di alcuna soluzione per la seconda parte della tua domanda. Il motivo è che non è chiaro come definire che ho cambiato . Cambiato quando? Solo tra 2 salvataggi o tra commit … Fondamentalmente – dimenticalo.

Presumo che ti piacerebbe attenersi ad alcune linee guida, ma non toccare il resto del codice. Ma la linea guida dovrebbe essere usata in generale, e non per morsi e pezzi. Quindi il mio suggerimento è: cambiare tutto il codice sulla linea guida: è un’operazione una tantum, ma assicurati che tutti i tuoi sviluppatori abbiano lo stesso plugin (AnyEdit) con le stesse impostazioni per il progetto.

Ho usato questo comando per git: git config --global core.whitespace cr-at-eol

Rimuove i caratteri ^M che seguono.