Warning, /network/kget/HACKING is written in an unsupported language. File is not indexed.

0001 This file has been copied from the kicker HACKING file from Aaron Seigo.
0002 
0003 While you may notice that there are many discrepencies between
0004 the code and this document, all new development should
0005 follow the coding style as described below amd one day the codebase will 
0006 actually be consistent!
0007 
0008 Naming Conventions
0009 ------------------
0010 Class names start with a capital letter, member variables begin with m_.
0011 Methods and functions start with a lower case letter.
0012 
0013 
0014 Indenting
0015 ---------
0016 Tabstop is 4 spaces. No tabs, only spaces.
0017 
0018 Try to keep lines under 80 characters in width. When wrapping a single
0019 logical line of code across multiple lines, new lines should be indented
0020 at least once and should preferably line up with parentheses, if any, on
0021 the line above. e.g.:
0022 
0023     someMethod(parameterOne, parameterTwo,
0024                parameterThree, parameterFour);
0025 
0026 If a boolean expression is spread out over several lines, the boolean
0027 operator is always the last item on the line, e.g.:
0028 
0029     if ((condition1 || condition2) &&
0030         condition3 &&
0031         (condition4 || condition5))
0032     {
0033 
0034 Switch statements should have the case line indented and the case block
0035 itsel further indented, e.g.:
0036 
0037     switch (condition)
0038     {
0039         case 1:
0040             ...
0041             break;
0042         case 2:
0043             ...
0044             break;
0045         default:
0046             ...;
0047     }
0048 
0049 Spaces
0050 ------
0051 A single space should appear between keywords and parentheses, eg:
0052 
0053     if (
0054     while (
0055     for (
0056 
0057 No spaces appear between function/method names and parentheses:
0058 
0059     function(
0060     someObject->method(
0061 
0062 No spaces appear between opening closing parens and the arguments:
0063 
0064     for (int i = 0; i < count; ++i)
0065 
0066 Spaces appear between operators, e.g.:
0067 
0068     int i = i + 3;
0069     someObject.setValue(someObject.currentValue() + 1)
0070 
0071 
0072 Braces
0073 ------
0074 Braces always appear on a line by themself, indented to align with the
0075 above keyword:
0076 
0077     if (foo)
0078     {
0079         ...
0080     }
0081     else
0082     {
0083         ...
0084     }
0085 
0086 Unless it uglifies the code, use braces even for one-liner conditionals:
0087 
0088     if (foo)
0089     {
0090         return 1;
0091     }
0092 
0093 Always use braces if the conditional expression wraps across multiple
0094 physical lines.
0095 
0096 Braces around case blocks in switch statements are optional.
0097 
0098 
0099 Constructors
0100 ------------
0101 Constructors are written as:
0102 
0103     MyClass::MyClass(...)
0104         : SuperClass(...),
0105           m_member1(...),
0106           m_member2(...),
0107           ...
0108     {
0109 
0110 
0111 Class Definitions
0112 -----------------
0113 Class definitions will follow the following order:
0114 
0115     class <name> : <scope> <superclass>
0116     {
0117         public:
0118             <ctors>
0119             <dtors>
0120             <operators>
0121             <other methods>
0122 
0123             <members>
0124 
0125         public slots:
0126             <methods>
0127 
0128         signals:
0129             <methods>
0130 
0131         protected:
0132             <ctors>
0133             <dtors>
0134             <operators>
0135 
0136             <members>
0137 
0138         protected slots:
0139             <methods>
0140 
0141         private:
0142             <ctors>
0143             <dtors>
0144             <operators>
0145 
0146             <members>
0147 
0148         private slots:
0149             <methods>
0150     };