code_formatting_standards
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
code_formatting_standards [2009/11/04 17:33] – created dbw2 | code_formatting_standards [2022/02/10 13:34] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 3: | Line 3: | ||
===== General Conventions ===== | ===== General Conventions ===== | ||
As a general rule, Evergreen contributions should follow these basic conventions. | As a general rule, Evergreen contributions should follow these basic conventions. | ||
- | * Code | + | * Indents - tabs vs. spaces |
- | * Indents should be 4 spaces | + | * The general rule for all files needing indentation is 4 space indents, no literal tabs |
- | * Lines should be kept at 80 characters or less if possible | + | * The following file types are **exceptions** to this rule |
- | * Tokens should be separated by whitespace (i.e '$this = 1' not ' | + | - Code written in C |
- | * Opening braces should be on the same line as the corresponding token < | + | - Database schema/code files (.sql files) |
+ | - Makefiles | ||
+ | - Plain text files | ||
+ | | ||
+ | * Opening braces should be on the same line as the corresponding token and ' | ||
if ($this) { | if ($this) { | ||
that(); | that(); | ||
+ | } else { | ||
+ | something(); | ||
}</ | }</ | ||
if ($this) | if ($this) | ||
{ | { | ||
that(); | that(); | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | something() | ||
}</ | }</ | ||
+ | * Control structures should be followed by spaces, function names should not (see ' | ||
+ | |||
+ | ===== Tool Specifics ===== | ||
+ | ==== Vim ==== | ||
+ | The following Vim options or something similar (often set via .vimrc) will help with proper indentation:< | ||
+ | set tabstop=4 | ||
+ | set softtabstop=4 | ||
+ | set shiftwidth=4 | ||
+ | set expandtab | ||
+ | set backspace=indent, | ||
+ | autocmd BufEnter ? | ||
+ | </ | ||
+ | In addition, the following VIM options have been recommended by a prominent Evergreen developer but are not actually format related :-) :< | ||
+ | set hlsearch | ||
+ | vnoremap < <gv | ||
+ | vnoremap > >gv | ||
+ | set nobk | ||
+ | set whichwrap=b, | ||
+ | set smartcase | ||
+ | filetype on | ||
+ | syntax enable | ||
+ | au BufNewFile, | ||
+ | au BufNewFile, | ||
+ | au BufNewFile, | ||
+ | set bg=dark | ||
+ | let loaded_matchparen = 1 | ||
+ | </ | ||
+ | |||
+ | ==== GNU Emacs ==== | ||
+ | |||
+ | Add the following lines to your .emacs file and your code will meet the above standards for Perl. | ||
+ | |||
+ | < | ||
+ | ; Use cperl-mode by default | ||
+ | (defalias ' | ||
+ | |||
+ | ; cperl-mode doesn' | ||
+ | ; style in a defun. | ||
+ | (defun evergreen-perl-style () | ||
+ | "Set cperl-mode for Evergreen coding guidelines." | ||
+ | (setq cperl-indent-level | ||
+ | cperl-brace-offset 0 | ||
+ | cperl-continued-brace-offset 0 | ||
+ | cperl-label-offset -4 | ||
+ | cperl-continued-statement-offset 4 | ||
+ | cperl-close-paren-offset -4 | ||
+ | cperl-indent-parens-as-block t | ||
+ | cperl-tab-always-indent t | ||
+ | cperl-merge-trailing-else t | ||
+ | cperl-left-aligned-indent-comments t | ||
+ | indent-tabs-mode nil)) | ||
+ | | ||
+ | ; cperl-mode hook | ||
+ | (add-hook ' | ||
+ | (lambda () | ||
+ | (evergreen-perl-style))) | ||
+ | </ | ||
+ | The above will use these style guidelines on all of your Perl sources. More advanced users might want to configure other styles for different projects and check buffer-file-name to switch styles on a per-buffer basis. You might also want to look into setting many of the cperl-electric-* variables or cperl-hairy. They add a lot of neat features for automatic code completion in Perl. | ||
+ | ==== perltidy ==== | ||
+ | The following options are recommended when using perltidy to format your Perl code: | ||
+ | * -b : Backup and modify in place | ||
+ | * -ce : Enable the " | ||
+ | Example: < |
code_formatting_standards.1257373982.txt.gz · Last modified: 2022/02/10 13:33 (external edit)