2009-01-04 13 views
14

Sto lavorando per un'azienda che ha linee guida rigorose per lo stile di codifica ma non uno strumento automatico per convalidarle. Mi sono guardato intorno e gli unici strumenti che ho trovato erano strumenti simili a quelli che sembravano mirati a verificare il funzionamento del codice e a prevenire i bug e non a verificare che lo stile di codifica fosse corretto.Controllo stile di codifica per C

Quale strumento dovremmo usare, se non del tutto?

NOTA: Sto cercando qualcosa per il codice C, anche se qualcosa che funziona per C++ sarebbe buona.

risposta

12

Il beautifier tradizionale indent, disponibile su ogni macchina Unix. La versione trovata su alcuni è GNU indent, che può essere compilata e installata su ogni macchina. GNU trattino in grado di leggere una serie di regole dal file ~/.indent.pro, per esempio:

--original --dont-format-first-column-comments --no-blank-lines-after-commas --parameter-indentation 8 --indent-level 8 --line-length 85 --no-space-after-parentheses --no-comment-delimiters-on-blank-lines 

Quindi, solo in esecuzione trattino prima commettere garanzie uniformità della presentazione. Se si desidera che applichino, definire un hook di pre-commit nel sistema di controllo versione utilizzato, che eseguirà il rientro e rifiuterà il commit se la versione commessa è diversa da quella indentata.

10

Siete alla ricerca di un 'code beautifier'. Uncrustify è gratis.

Devi solo essere in grado di descrivere il tuo stile di codifica nel file di configurazione, ed assicureremo ogni file si adatta allo stile descritto.

2

Vorrei discutere contro l'utilizzo di uno strumento formale qui. La migliore applicazione degli standard di codifica è la pressione dei pari. La pressione dei compagni e il rispetto reciproco tra i membri del team sono elementi chiave di quell'ambiente di team building .... non è diverso il fatto che le molestie buone sono necessarie quando qualcuno inavvertitamente "rompe la build", ecc.

Revisione dei membri del team più recenti "Il codice è una parte fondamentale del processo di apprendimento e l'integrazione nel team e l'apprendimento degli standard di codifica, ecc. Se lo standard di codifica è troppo complicato o sottile da raccogliere in questo modo, allora invece di cercare uno strumento per convalidare il standard, dovresti cercare un nuovo standard di codifica.

+1

Ecco perché suggerisco invece un abbellitore che otterrà i file nello stile richiesto invece di un validatore che non farà nulla di buono. Puoi codificare in qualsiasi stile tu voglia e prima di effettuare il check-in, esegui l'abbellitore che si adatta ai requisiti. –

+0

@Vinko - Potresti farlo e potrebbe essere utile collaborare part-time o importare codice esterno, ma per i membri del team a tempo pieno, credo davvero che vuoi che siano tutti "a pensare nello standard di codifica" in modo da ottenere il vero vantaggio di avere uno standard di codifica in primo luogo. –

+1

Non posso essere più d'accordo. La revisione del codice e gli standard di codifica ben definiti dovrebbero fare il lavoro. – Ilya

4

Ci sono (o sono stati) numerosi strumenti per questo. Una delle più antiche è cb (C Beautifier), che era in giro in antiche versioni di Unix - significato, in questo caso, Unix versione 7:

CB (1) UNIX Programmer’s Manual CB (1) 

NAME 
    cb – C program beautifier 
SYNOPSIS 
    cb 
DESCRIPTION 
    Cb places a copy of the C program from the standard input on the standard 
    output with spacing and indentation that displays the structure of the 
    program. 
BUGS 

GNU indent è una bestia molto più complessa e configurabile. C'erano anche degli strumenti commerciali. Ad esempio, Abraxas Software fornisce uno strumento CodeCheck, ad esempio; l'abbiamo usato brevemente a metà degli anni '90, ma i cambiamenti che volevamo che facessimo erano (molto necessari, ma) troppo intrusivi per la gestione.

9

AStyle fa ciò che si vuole:

stile artistico è un codice sorgente di penetratore, formattatore, e beautifier per la C, C++, C# e linguaggi di programmazione Java.

C'è uno AStyle Plugin disponibile per Eclipse.

Eclipse dispone anche di un programma di formattazione del codice, ma non sono sicuro che funzioni in CDT.

2

Da una domanda simile: Vera++: "Vera ++ può essere utilizzato per trovare lo stile di codifica e le violazioni delle convenzioni." C'è una Community Edition gratuita e "tutte le sue regole sono implementate come script (Tcl) che possono essere modificati o aggiunti dall'utente".

-7

Si prega di utilizzare VIM e godersi la facilità. È possibile eseguire qualsiasi operazione relativa alla programmazione dell'origine mediante semplici comandi. Inoltre, è possibile rendere VIM più affidabile e potente modificando il file .vimrc. L'aiuto in esso ti aiuterà molto.

/g renjith

+2

Si sta eseguendo il downvot perché la domanda originale riguardava la stampante piuttosto carina o un controllo di stile. E stai rispondendo con un editor di testo. La differenza è che l'editor di testo è il punto in cui si scrive il codice e un controllo dello stile controlla il formato del codice sorgente indipendentemente dall'editor di testo utilizzato. per esempio questo è un controllo di stile: https://en.wikipedia.org/wiki/Checkstyle – elviejo79

2

Prova UniversalIndentGUI, che è un wrapper GUI attorno penetratori popolari/abbellitori quali Uncrustify, stile artistico, e GNU rientro. La sua GUI e la funzione di anteprima dal vivo rendono molto facile provare diversi indenters, e una volta trovato un indenter e una configurazione che ti piace, puoi esportare la configurazione o anche esportare uno script di shell. Ottimo se stai ancora provando.