doc/coding_style.dox
author hegyi
Mon, 21 Nov 2005 18:03:20 +0000
changeset 1823 cb082cdf3667
parent 1083 8043b93e5973
child 2157 f9171bfc7ebb
permissions -rw-r--r--
NewMapWin has become Dialog instead of Window. Therefore it is created dynamically, when there is need for it, instead of keeping one instance in memory. This solution is slower, but more correct than before.
alpar@507
     1
/*!
alpar@507
     2
alpar@921
     3
\page coding_style LEMON Coding Style 
alpar@507
     4
alpar@811
     5
\section naming_conv Naming Conventions
alpar@507
     6
alpar@667
     7
In order to make development easier we have made some conventions
alpar@667
     8
according to coding style. These include names of types, classes,
alpar@667
     9
functions, variables, constants and exceptions. If these conventions
alpar@667
    10
are met in one's code then it is easier to read and maintain
alpar@667
    11
it. Please comply with these conventions if you want to contribute
alpar@921
    12
developing LEMON library.
athos@603
    13
alpar@955
    14
\warning In some cases we diverge from these rules.
alpar@955
    15
This primary done because STL uses different naming convention and
alpar@955
    16
in certain cases
alpar@955
    17
it is beneficial to provide STL compatible interface.
alpar@955
    18
alpar@955
    19
\subsection cs-files File Names
alpar@955
    20
alpar@955
    21
The header file names should look like the following.
alpar@955
    22
alpar@955
    23
\code
alpar@955
    24
header_file.h
alpar@955
    25
\endcode
alpar@955
    26
alpar@1083
    27
Note that all standard LEMON headers are located in the \c lemon subdirectory,
alpar@955
    28
so you should include them from C++ source like this:
alpar@955
    29
alpar@955
    30
\code
alpar@955
    31
#include <lemon/header_file.h>
alpar@955
    32
\endcode
alpar@955
    33
alpar@955
    34
The source code files use the same style and they have '.cc' extension.
alpar@955
    35
alpar@955
    36
\code
alpar@955
    37
source_code.cc
alpar@955
    38
\endcode
alpar@955
    39
alpar@614
    40
\subsection cs-class Classes and other types
athos@603
    41
alpar@955
    42
The name of a class or any type should look like the following.
alpar@507
    43
alpar@507
    44
\code
alpar@507
    45
AllWordsCapitalizedWithoutUnderscores 
alpar@507
    46
\endcode
alpar@507
    47
alpar@614
    48
\subsection cs-func Methods and other functions
athos@603
    49
alpar@955
    50
The name of a function should look like the following.
alpar@507
    51
alpar@507
    52
\code
alpar@507
    53
firstWordLowerCaseRestCapitalizedWithoutUnderscores 
alpar@507
    54
\endcode
alpar@507
    55
alpar@614
    56
\subsection cs-funcs Constants, Macros
athos@603
    57
alpar@955
    58
The names of constants and macros should look like the following.
alpar@507
    59
alpar@507
    60
\code
alpar@507
    61
ALL_UPPER_CASE_WITH_UNDERSCORES 
alpar@507
    62
\endcode
alpar@507
    63
alpar@614
    64
\subsection cs-loc-var Class and instance member variables, auto variables 
alpar@507
    65
alpar@955
    66
The names of class and instance member variables and auto variables (=variables used locally in methods) should look like the following.
alpar@507
    67
alpar@507
    68
\code
alpar@507
    69
all_lower_case_with_underscores 
alpar@507
    70
\endcode
alpar@507
    71
alpar@614
    72
\subsection cs-excep Exceptions
alpar@507
    73
alpar@955
    74
When writing exceptions please comply the following naming conventions.
athos@603
    75
alpar@507
    76
\code
alpar@507
    77
ClassNameEndsWithException
alpar@507
    78
\endcode
alpar@507
    79
deba@1788
    80
or
deba@1788
    81
deba@1788
    82
\code
deba@1788
    83
ClassNameEndsWithError
deba@1788
    84
\endcode
deba@1788
    85
alpar@991
    86
\section header-template Template Header File
alpar@991
    87
alpar@1083
    88
Each LEMON header file should look like this:
alpar@991
    89
alpar@991
    90
\include template.h
alpar@991
    91
alpar@507
    92
*/