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)