mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	Merge pull request #919 from yuriks/styleguide
Update style rules with to better match current practice.
This commit is contained in:
		
						commit
						8c70b1b8b5
					
				
					 1 changed files with 16 additions and 22 deletions
				
			
		|  | @ -7,19 +7,14 @@ Citra is a brand new project, so we have a great opportunity to keep things clea | ||||||
| * Don't ever introduce new external dependencies into Core | * Don't ever introduce new external dependencies into Core | ||||||
| * Don't use any platform specific code in Core | * Don't use any platform specific code in Core | ||||||
| * Use namespaces often | * Use namespaces often | ||||||
|  | * Avoid the use of C-style casts and instead prefer C++-style `static_cast` and `reinterpret_cast`. Never use `const_cast` or `dynamic_cast` (we build with RTTI disabled). The only exception to this rule is for casting between two numeric types, where C-style casts are encouraged for brevity and readability. | ||||||
| 
 | 
 | ||||||
| ### Naming Rules | ### Naming Rules | ||||||
| * Functions | * Functions: `PascalCase` | ||||||
|  * PascalCase, "_" may also be used for clarity (e.g. ARM_InitCore) | * Variables: `lower_case_underscored`. Prefix with `g_` if global. | ||||||
| * Variables | * Classes: `PascalCase` | ||||||
|  * lower_case_underscored | * Files and Directories: `lower_case_underscored` | ||||||
|  * Prefix "g_" if global | * Namespaces: `PascalCase`, `_` may also be used for clarity (e.g. `ARM_InitCore`) | ||||||
| * Classes |  | ||||||
|  * PascalCase, "_" may also be used for clarity (e.g. OGL_VideoInterface) |  | ||||||
| * Files/Folders |  | ||||||
|  * lower_case_underscored |  | ||||||
| * Namespaces |  | ||||||
|  * PascalCase, "_" may also be used for clarity (e.g. ARM_InitCore) |  | ||||||
| 
 | 
 | ||||||
| ### Indentation/Whitespace Style | ### Indentation/Whitespace Style | ||||||
| Follow the indentation/whitespace style shown below. Do not use tabs, use 4-spaces instead. | Follow the indentation/whitespace style shown below. Do not use tabs, use 4-spaces instead. | ||||||
|  | @ -36,25 +31,25 @@ namespace Example { | ||||||
| 
 | 
 | ||||||
| // Declare globals at the top | // Declare globals at the top | ||||||
| int g_foo = 0; | int g_foo = 0; | ||||||
| char* g_some_pointer; // Notice the position of the * | char* g_some_pointer; // Pointer * and reference & stick to the type name | ||||||
| 
 | 
 | ||||||
| /// A colorful enum. | /// A colorful enum. | ||||||
| enum SomeEnum { | enum SomeEnum { | ||||||
|     COLOR_RED,   ///< The color of fire. |     COLOR_RED,   ///< The color of fire. | ||||||
|     COLOR_GREEN, ///< The color of grass. |     COLOR_GREEN, ///< The color of grass. | ||||||
|     COLOR_BLUE   ///< Not actually the color of water. |     COLOR_BLUE,  ///< Not actually the color of water. | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * Very important struct that does a lot of stuff. |  * Very important struct that does a lot of stuff. | ||||||
|  * Note that the asterisks are indented by one space. |  * Note that the asterisks are indented by one space to align to the first line. | ||||||
|  */ |  */ | ||||||
| struct Position { | struct Position { | ||||||
|     int x, y; |     int x, y; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| // Use "typename" rather than "class" here, just to be consistent | // Use "typename" rather than "class" here | ||||||
| template | template <typename T> | ||||||
| void FooBar() { | void FooBar() { | ||||||
|     int some_array[] = { |     int some_array[] = { | ||||||
|         5, |         5, | ||||||
|  | @ -72,7 +67,7 @@ void FooBar() { | ||||||
|     // Comment directly above code when possible |     // Comment directly above code when possible | ||||||
|     if (some_condition) single_statement(); |     if (some_condition) single_statement(); | ||||||
| 
 | 
 | ||||||
|     // Place a single space after the for loop semicolons |     // Place a single space after the for loop semicolons, prefer pre-increment | ||||||
|     for (int i = 0; i != 25; ++i) { |     for (int i = 0; i != 25; ++i) { | ||||||
|         // This is how we write loops |         // This is how we write loops | ||||||
|     } |     } | ||||||
|  | @ -83,6 +78,9 @@ void FooBar() { | ||||||
|     if (this || condition_takes_up_multiple && |     if (this || condition_takes_up_multiple && | ||||||
|         lines && like && this || everything || |         lines && like && this || everything || | ||||||
|         alright || then) { |         alright || then) { | ||||||
|  | 
 | ||||||
|  |         // Leave a blank space before the if block body if the condition was continued across | ||||||
|  |         // several lines. | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     switch (var) { |     switch (var) { | ||||||
|  | @ -101,11 +99,7 @@ void FooBar() { | ||||||
|         break; |         break; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     std::vector |     std::vector<T> you_can_declare, a_few, variables, like_this; | ||||||
|         you_can_declare, |  | ||||||
|         a_few, |  | ||||||
|         variables, |  | ||||||
|         like_this; |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue