Open Source Integrated Library System
About Us FAQs Documentation Blog Chat Mailing Lists Evergreen Blogs Download
 

Code Formatting Standards

FIXME This page is a work in progress and currently NOT official! FIXME

General Conventions

As a general rule, Evergreen contributions should follow these basic conventions.

  • Indents - tabs vs. spaces
    • The general rule for all files needing indentation is 4 space indents, no literal tabs
    • The following file types are exceptions to this rule
      1. Code written in C
      2. Database schema/code files (.sql files)
      3. Makefiles
      4. Plain text files
  • Tokens should be separated by whitespace (i.e '$this = 1' not '$this=1')
  • Opening braces should be on the same line as the corresponding token and 'else' should be “cuddled”
    if ($this) {
        that();
    } else {
        something();
    }

    not

    if ($this)
    {
        that();
    }
    else
    {
        something()
    }
  • Control structures should be followed by spaces, function names should not (see 'if' vs 'that' above)

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,eol,start
autocmd BufEnter ?akefile*,*txt,*out,*csv,*.c,*.h,*.sql set noet "use real tabs in Makefiles, text files, C code, and SQL files

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,s,<,>,[,]
set smartcase
filetype on
syntax enable
au BufNewFile,BufRead *.xhtml setf html
au BufNewFile,BufRead *.bsh setf java
au BufNewFile,BufRead *.ftl setf html
set bg=dark
let loaded_matchparen = 1

perltidy

The following options are recommended when using perltidy to format your Perl code:

  • -b : Backup and modify in place
  • -ce : Enable the “cuddled else” style

Example:

perltidy -ce -b Object.pm

This will tidy Object.pm and move your original to Object.pm.bak. Note that this will clobber an existing Object.pm.bak file!

 
code_formatting_standards.txt · Last modified: 2010/03/16 15:08 by dbw2
 
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Debian Driven by DokuWiki