Difference between revisions of "Code style"

From PioneerWiki
Jump to: navigation, search
(Remove obsolete Code Style page (merged with Coding Conventions))
(Tag: New redirect)
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This page describes some of the code style used in Pioneer. Its probably incomplete, but it should be correct. If you see something in the code that doesn't match what's described here, this guide takes precedence (and please submit a patch to fix it!)
+
#REDIRECT [[Coding Conventions]]
  
== Licensing ==
+
This page has been merged with [[Coding Conventions]].
 
 
Engine and Lua code is [http://www.gnu.org/licenses/gpl.html GPL 3]. Assets (include Lua-based data files like ship defs) are [http://creativecommons.org/licenses/by-sa/3.0/ CC-BY-SA 3]
 
 
 
Include these two lines at the top of each file (suitably commented):
 
 
 
    Copyright © 2008-2013 Pioneer Developers. See AUTHORS.txt for details
 
    Licensed under the terms of the GPL v3. See licenses/GPL-3.txt
 
 
 
    Copyright © 2008-2013 Pioneer Developers. See AUTHORS.txt for details
 
    Licensed under the terms of CC-BY-SA 3.0. See licenses/CC-BY-SA-3.0.txt
 
 
 
== Tabs & spacing ==
 
 
 
* Hard tabs, 4-space aligned.
 
* Inner spaces after tabs to align arguments on multiple lines, etc
 
 
 
== Constants ==
 
 
 
* Prefer <tt>static const</tt> over <tt>#define</tt> wherever possible
 
 
 
== Name style ==
 
 
 
* Classes: FooBar
 
* Methods: FooBar
 
* Class members: m_fooBar
 
* Static members: s_fooBar
 
* Constants: FOO_BAR
 
 
 
== Include guards ==
 
 
 
Header include guards should be named for the filename of the header, capitalised, with slashes converted to underscores:
 
 
 
* Ship.h
 
    #ifndef SHIP_H
 
 
 
* WorldView.h
 
    #ifndef WORLDVIEW_H
 
 
 
* graphics/Renderer.h
 
    #ifndef GRAPHICS_RENDERER_H
 
 
 
== Enum types ==
 
 
 
Enums are effectively global constants, so should be in full caps. They're prefixed with the name of the enum.
 
 
 
Avoid assigning explicit integer values. Also avoid values that aren't actually valid for whatever the enum is (though *_MAX to mark the last valid value is usually acceptable). If these don't work, chances are what you're trying to do would be better served by multiple enums or even a whole class.
 
 
 
    enum Thing {
 
        THING_FOO,
 
        THING_BAR,
 
        THING_BAZ,
 
 
 
        THING_MAX
 
    };
 

Latest revision as of 02:46, 11 May 2020

Redirect to:

This page has been merged with Coding Conventions.