code_formatting_standards
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
code_formatting_standards [2009/11/04 18:09] – dbw2 | code_formatting_standards [2011/11/28 11:03] – [GNU Emacs] add missing ) dyrcona | ||
---|---|---|---|
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 and ' | + | - 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(); | ||
Line 21: | Line 25: | ||
something() | something() | ||
}</ | }</ | ||
- | | + | |
- | * XML files | + | |
- | * FIXME (4 space indents as well?) | + | |
- | * Text files | + | |
- | * Basic text files may use actual tab characters as needed | + | |
===== Tool Specifics ===== | ===== Tool Specifics ===== | ||
Line 35: | Line 35: | ||
set expandtab | set expandtab | ||
set backspace=indent, | set backspace=indent, | ||
- | autocmd BufEnter ? | + | autocmd BufEnter ?akefile*,*txt,*out,*csv, |
- | autocmd BufEnter | + | |
- | autocmd BufEnter | + | |
- | autocmd BufEnter | + | |
</ | </ | ||
In addition, the following VIM options have been recommended by a prominent Evergreen developer but are not actually format related :-) :< | In addition, the following VIM options have been recommended by a prominent Evergreen developer but are not actually format related :-) :< | ||
Line 55: | Line 52: | ||
let loaded_matchparen = 1 | 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 ==== | ==== perltidy ==== | ||
- | The following options are recommended | + | The following options are recommended |
* -b : Backup and modify in place | * -b : Backup and modify in place | ||
* -ce : Enable the " | * -ce : Enable the " | ||
Example: < | Example: < |
code_formatting_standards.txt · Last modified: 2022/02/10 13:34 by 127.0.0.1