Come limiti le differenze di spazio bianco per gli sviluppatori che utilizzano IDE / ambienti diversi?

3

Ho usato UltraEdit per anni e non ho mai avuto problemi con la condivisione del codice con gli altri sviluppatori, indipendentemente dal fatto che funzionassero su Windows, Mac, Linux, Eclipse, Visual Studio - che cosa hai ...

Ma ora sono in un ufficio dove alcuni sviluppatori usano emacs e si lamentano profusamente delle differenze di spazio bianco che il mio codice "introduce". Ho UltraEdit impostato per scrivere su file in stile UNIX (non restituisce Windows), ma sembra che lo spazio bianco sia diverso per gli sviluppatori di emacs.

Dal momento che non uso emacs (o vi), è un problema per me provare a capire perché questo sta avendo un impatto su di loro, ma io lo voglio ancora di più per farli scappare! lol

Questo sta causando problemi in SVN / Diff!

Qualche idea su come risolvere questo problema?

Dimentica tutti quelli che usano Emacs perché questo non succederà lol.

    
posta qodeninja 15.12.2011 - 22:17
fonte

6 risposte

13

Risolvi questo problema creando una guida di stile standard per il codice della tua organizzazione. Ognuno quindi configura i propri editor per abbinare quella guida di stile. Ad esempio, si scelgono le schede o gli spazi per il rientro e quanto dovrebbero essere ampi i rientri. Ciò elimina le incongruenze e lo rende così non c'è discussione sulla formattazione del codice, perché la risposta dovrebbe essere nella guida di stile. Idealmente, avresti anche uno strumento che garantisce che il codice corrisponda alle linee guida di stile prima di essere archiviato. Per un esempio, vedi Guida di stile C ++

    
risposta data 16.12.2011 - 03:49
fonte
4

A supposizione - perché ci sono stato un paio di volte - vorrei controllare quali impostazioni stai usando per tabulazioni, larghezza tab e indentazione in UltraEdit.

Alcuni editor tendono ad essere intelligenti e comprimere gli spazi in schede durante la modifica o al salvataggio di un file. Se non si hanno le stesse impostazioni per il salvataggio di tabulazioni / spazi e larghezza del tabulatore come i tuoi colleghi sviluppatori, ciò può causare ogni sorta di comportamento divertente, sia quando si tratta di visualizzare il file in un editor diverso che in uno strumento diff. Ho alcuni esempi principali qui in un codice che è stato modificato da qualcuno che non si è preso la briga di disattivare la conversione della scheda space- > in save.

    
risposta data 16.12.2011 - 02:58
fonte
2

Gli strumenti a tua disposizione dipendono dall'IDE che stai utilizzando. VS e / o ReSharper nel mondo .NET possono applicare e convertire automaticamente differenze di spazio bianco o altre formattazioni "non conformi", come intercettare "schede" e sostituirle con 4 spazi e convertire le schede esistenti nel codice. Sono sicuro che UltraEdit ha funzionalità simili se è, come affermano, "il miglior editor esadecimale del mondo". In caso contrario, dovrebbe esserci un plug-in in grado di normalizzare la formattazione degli spazi bianchi.

E penso davvero che il suggerimento di Bernard sia la soluzione migliore; regola di maggioranza, scegliere un singolo ambiente di sviluppo e standardizzare il set di strumenti.

    
risposta data 15.12.2011 - 22:26
fonte
2

Probabilmente hai configurato l'IDE errato per il tuo ambiente di lavoro. Dato che non hai standard su cui lavorare, e l'anarchia regna sovrana (implicita dall'esistenza di questa domanda) devi configurare il tuo IDE per lasciare tutto da solo, tranne le righe che modifichi. Mi aspetto che uno strumento come Multiedit abbia questa capacità.

È tua responsabilità non cambiare lo spazio bianco inutilmente. Ho imparato (nel modo più duro) ciò richiede disciplina e attenzione ai dettagli, oltre alla capacità di lasciare le cose da sole che sono brutte, ma non spezzate. Non è l'ideale, ma senza uno standard guida, tutto ciò che vi entrerà è un inutile, distruttivo dibattito religioso su ciò che è giusto o sbagliato.

Nella grande base di codice (su più milioni di linee) su cui lavoro, di regola cambiare codice che non ha bisogno di modifiche è sbagliato, e questo è tutto nel file - tab, fine riga, spazi di fine riga. La quantità di conflitti di unione che si verificano quando si verificano cambiamenti inutili (spazio bianco, layout, commenti, ecc.) È un dispendioso spreco di tempo e fatica. Puoi, con strumenti decenti, attenuarlo in una certa misura, ma mai completamente.

In definitiva, prova ad accettare un formato standard e anche una parte di migrazione verso lo standard per il codice legacy. Utilizzare preferibilmente strumenti per supportare (se non applicare) lo standard scelto. (Non siamo stati in grado di accettare questo, gli uomini di denaro preferirebbero pagare per i costi nascosti di non farlo)

    
risposta data 16.12.2011 - 03:21
fonte
1

La soluzione migliore è utilizzare il formattatore del codice al momento del check-in. Rimuovi gli spazi vuoti finali, sostituisci gli spazi con le schede.

Ide semina sempre scompiglio. Ma non usarne uno, IMHO, è al giorno d'oggi produttivo.

    
risposta data 15.12.2011 - 22:32
fonte
1

Puoi prendere in considerazione l'utilizzo di emacs esclusivamente per l'indentazione e la formattazione dopo aver eseguito tutte le altre modifiche. L'ho fatto prima di me stesso, perché mi piace davvero il modo in cui i rientri di emacs. Vorrei apportare tutte le modifiche al mio IDE (Qt Creator, Kate o KDevelop), quindi lo aprirò in emacs e selezionerò tutto e inserirò un comando per far rientrare automaticamente tutto. Non ricordo i comandi, ma se è qualcosa che sei disposto a fare, sono sicuro che i tuoi amici di emacs sarebbero lieti di aiutarti con i comandi.

    
risposta data 16.12.2011 - 16:49
fonte

Leggi altre domande sui tag