È sconsiderato posizionare le impostazioni dell'editor nei file di codice?

6

So che questa è una specie di domanda soggettiva, ma sono curioso di sapere se ci sono buone ragioni per posizionare (o non posizionare) le impostazioni dell'editor nei file di codice. Sto pensando in vi modelines , ma è possibile che questo si applichi ad altri editor.

In breve, una modeline vi è una linea all'interno di un file che indica a vi come comportarsi (rientro con spazi o tabulazioni, imposta tabwidth su X, autoindent per impostazione predefinita o no, ...) che viene posizionato all'interno di un commento, quindi non influenzerà il programma / il compilatore durante l'esecuzione. In un file .c potrebbe essere simile a

// vim: noai:ts=4:sw=4

Da un lato, penso che questo non dovrebbe essere all'interno del file, in quanto è un'impostazione dell'editor e quindi appartiene a un file o una proprietà di configurazione di un editor. D'altra parte, per progetti che coinvolgono sviluppatori esterni a un'azienda (che non sono imposti un editor / impostazioni) o collaboratori su github / bitbucket / ... è un modo semplice per evitare di rompere lo stile del codice (tabulazioni vs spazi per esempio) , ma solo per quelli che usano quell'editor però.

Non vedo alcun motivo abbastanza potente per decidere a favore o contro questa pratica, quindi sono in dubbio su cosa fare.

    
posta Carlos Campderrós 07.09.2012 - 10:04
fonte

3 risposte

2

Direi che è sconsiderato. Le impostazioni dell'editor non dovrebbero avere alcun impatto sull'eseguibile compilato (eccetto nei casi in cui le impostazioni dell'editor influenzano cose come i valori letterali delle stringhe su più righe). Ho scelto le impostazioni dell'editor che ho perché mi piacciono in questo modo . Se controllo un file code e improvvisamente il mio editore si comporta in un modo a cui non sono abituato, non sarò affatto felice. Come ti sentiresti in una situazione simile, se le mie impostazioni di editor non familiari annullano in modo anomalo le tue?

Penso che se vuoi controllare le impostazioni dell'editor, la cosa migliore sarebbe averli in un file separato e rendere molto chiaro che il file cambierà le impostazioni correnti dell'utente e che è opzionale per utilizzare questo file.

Se sei preoccupato per le nuove persone che seguono uno standard consolidato di gruppo per la formattazione del codice, puoi chiedere a tutti di formattare il codice in base allo standard al momento del check-in. Penso che alcuni sistemi di controllo del codice sorgente possano supportare automaticamente tale formato automatico, ma non ne sono sicuro.

    
risposta data 07.09.2012 - 17:21
fonte
2

Questo è molto utile nei casi in cui la pratica standard non è quella delle schede, ma un tipo di file (ad esempio un Makefile) richiede schede. Non lo userei per forzare le mie preferenze di editor personale su altre persone però. Finché il tuo codice non richiede impostazioni strane, cosa che non dovrebbe, le altre persone possono prendersi cura di se stesse quando si tratta delle impostazioni dell'editor.

    
risposta data 07.09.2012 - 11:03
fonte
2

Non ci avevo mai pensato, ma direi:

  • Le cose che dovrebbero essere sempre le stesse per questo file, è buono (ma inusuale) specificare all'interno del file. Per esempio. la maggior parte dei progetti dovrebbe avere una guida che i file usano sempre spazi, o sempre usano le schede, quindi se è specificato nel file può solo aiutare.

  • Qualsiasi cosa che sia una preferenza personale per gli sviluppatori NON dovrebbe essere in un file condiviso. Non importa quanto A sviluppatore gradisca l'auto-indent, non sa se ad altre persone non piace o ha una buona ragione per non usarlo. Ma non fare una grande puzza, basta rimuoverlo e / o chiedere allo sviluppatore A se va bene - potrebbero non averlo notato.

  • È improbabile, ma se uno sviluppatore vuole davvero impostazioni diverse per file e sviluppatori B diversi, non ha bisogno di parlarsi e arrivare a un compromesso che permetta a entrambi di ottenere ciò che vogliono. Potrebbero non aver capito che c'è un problema.

risposta data 07.09.2012 - 11:54
fonte

Leggi altre domande sui tag