Code style guidelines

From Minetest Developer Wiki
Revision as of 18:29, 9 March 2013 by Kwolekr (talk | contribs) (Created page with "=== General Guidelines === For everybody elses' sanity, please just use something that resembles [https://www.kernel.org/doc/Documentation/CodingStyle the Linux Kernel code st...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

General Guidelines

For everybody elses' sanity, please just use something that resembles the Linux Kernel code style, with the exception that cases in switch statements are indented a level. Much of the already existing code is somewhat weird looking, do not try to replicate that. Use your best judgement for C++ specific syntax.

Do NOT use spaces for indentation

Do add spaces between operators so they line up (when appropriate)

Don't be too C++y

  • Don't use references when they're not necessary. They are rather inflexible and can be misleading.
  • Don't use initializer lists unless absolutely necessary (initializing an object inside a class, or initializing a reference)
  • Try to avoid operator overloading
  • Avoid iterators like the plague

Use headers the way they are supposed to be used

  • Don't put actual code in header files, unless it's a 3-liner or an inline function
  • Class definitions should go in header files, define substantial methods outside of the class

Use STL, avoid Irrlicht containers

Don't let things get too large

  • Functions should not be over 200 LoC - if you are concerned with having to pass too many parameters to child functions, make whatever it is into a class
  • Don't let files get too large (over 1500 LoC)
  • Currently existing huge files (game.cpp, server.cpp, etc.) are in the slow process of being cleaned up