Difference between revisions of "DesignGuidelines"

From Lazarus wiki
m (Reverted edit of Vincent, changed back to last version by Smace)
Line 3: Line 3:
 
This is for lazarus developers:
 
This is for lazarus developers:
  
'''Coding style:'''
+
'''Coding style:'''
 
* Since one style is easier to read, Lazarus follows the Borland Coding style guide lines. Of course, almost anyone will find some points there, that are arguable less readable than other styles. That's ok, just try to follow at least 90%.  
 
* Since one style is easier to read, Lazarus follows the Borland Coding style guide lines. Of course, almost anyone will find some points there, that are arguable less readable than other styles. That's ok, just try to follow at least 90%.  
 
* Avoid unit circles. This makes it easier to navigate and when unit is growing allows to split it.
 
* Avoid unit circles. This makes it easier to navigate and when unit is growing allows to split it.

Revision as of 20:23, 22 February 2005

Coding Guidelines for Lazarus

This is for lazarus developers:

Coding style:

  • Since one style is easier to read, Lazarus follows the Borland Coding style guide lines. Of course, almost anyone will find some points there, that are arguable less readable than other styles. That's ok, just try to follow at least 90%.
  • Avoid unit circles. This makes it easier to navigate and when unit is growing allows to split it.

Comments

  • Add comments in the start of each procedure/function or long/confusing routines. Of course, basic routines should not be commented.

Identation

  • The source code must not contain TABS, all identation must be done using SPACES and 2 spaces for each level, for example, 2,4,6,8,... etc

New files

  • Every file should start with a header containing the license and a few lines describing the content.
  • All file names must be in lowercase.

Include files

  • should start with the {%MainUnit } directive

Packages

  • Should have an .lpl entry in packager/globallinks/

Dialogs (modal forms)

  • Close on Escape (if key not used otherwise)
  • Define default button and Return activates it (if key not used)
  • Medium to complex dialogs should be resizable and size is stored

Main Menu Items

  • Should have a key in keymapping.pp