mirror of
				https://gitlab.com/freepascal.org/lazarus/lazarus.git
				synced 2025-11-04 01:19:47 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
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%.
 | 
						|
- Try to avoid unit circles. This makes it easier to navigate and when unit is
 | 
						|
  growing allows to split it.
 | 
						|
- Minimize the number of calls from Interfaces to LCL, when performing an
 | 
						|
  action requested by the LCL. The interfaces only notify the LCL, never forces
 | 
						|
  something. The LCL decides.
 | 
						|
  Naming convention:
 | 
						|
    Notifications for TControl decendants should be named CNxxx.
 | 
						|
- All code must work with all checks (range, io, overflow, stack) on. Beside
 | 
						|
  that this helps debugging, some users put these checks into their fpc.cfg, so
 | 
						|
  they are applied to whole lazarus. Including packages and examples.
 | 
						|
 | 
						|
 | 
						|
New files:
 | 
						|
- Every file should start with a header containing the license and a few lines
 | 
						|
  describing the content.
 | 
						|
- pascal sources should have lowercase filenames (.pas, .pp, .inc, .lfm, .lrs)
 | 
						|
 | 
						|
Include files:
 | 
						|
- should start with the {%MainUnit } directive
 | 
						|
 | 
						|
Packages:
 | 
						|
- should have an .lpl entry in packager/globallinks/
 | 
						|
  You can use "./tools/lplupdate -c" to find missing/outdated lpl files.
 | 
						|
- must have all fields in "Description"
 | 
						|
 | 
						|
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
 | 
						|
 |