# Coding Style in tlx This file should document some of the C++ coding style used in tlx. ## 80 Columns Rule All source must **strictly** adhere to the 80 column limit. This may seem overly short considered today's wide high-resolution screens, but there are some good reasons. - Sporadic long lines require more eye movement than a denser code packed for top-down reading. - A shorter limit allow to arrange more than one column of code, e.g. for reading side-by-side or diffs. For a fun read on the history of "Why 80 columns?", see ## Naming of Types, Methods, Functions, Variables. - Styles: `ThisIsWrittenInCamelCase` or `this_is_written_in_snake_case`. - All types, e.g. classes or typedef/usings are CamelCase, with the following exceptions: - All STL-style types which end with `_type`, `_traits`, or `iterator` are snake_case. - STL-style container or functor classes are granted an exception or may define an alias, e.g. `simple_vector`. - All variables are written in snake_case. Attributes of classes have a tailing underscore_. - Some exceptions are granted, e.g. the `debug` variable cannot have a tailing underscore. - Constant variables may alternatively be written as `kCamelCase` without underscore. - Structs used mainly to store fields may optionally omit the tailing underscore on all members. - Functions and class methods are written as snake_case. - currently no exceptions ## Formatting - Ignore formatting while writing code. Uncrustify will be run and fix nearly all formatting.