From 54b8faabe9c6329b2677b991b8af7f73f7b1be18 Mon Sep 17 00:00:00 2001 From: Flaviu Tamas Date: Sun, 11 Jan 2015 13:33:41 -0500 Subject: [PATCH] Updated NEP 1 : Style Guide for Nim Code (markdown) --- NEP 1 : Style Guide for Nim Code.md | 30 ++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/NEP 1 : Style Guide for Nim Code.md b/NEP 1 : Style Guide for Nim Code.md index 6fd1ce1..1d12f7f 100644 --- a/NEP 1 : Style Guide for Nim Code.md +++ b/NEP 1 : Style Guide for Nim Code.md @@ -13,7 +13,6 @@ sense in certain contexts. Furthermore, just as [Python's style guide](http://legacy.python.org/dev/peps/pep-0008/) changes over time, this style guide will too. -

Style Guidelines ================ ### Spacing and Whitespace Conventions ### @@ -43,7 +42,6 @@ Style Guidelines LongLongPtr* = ptr LongLong ``` -

### Naming Conventions ### Note: While the rules outlined below are the *current* naming conventions, @@ -55,12 +53,12 @@ changed, there are many places in the standard library which still use this convention. Such style remains in place purely for legacy reasons, and will be changed in the future. -- Type identifiers should be in CamelCase. All other identifiers should be in - pascalCase with the exception of constants which **may** use CamelCase but +- Type identifiers should be in camelCase. All other identifiers should be in + CamelCase with the exception of constants which **may** use PascalCase but are not required to. ```nimrod const aConstant = 42 - const FOO_BAR = 4.2 + const FooBar = 4.2 var aVariable = "Meep" @@ -92,9 +90,15 @@ be changed in the future. pcFile pcLinkToFile ``` - Non-pure enum values should use pascalCase whereas pure enum values should use CamelCase. + Non-pure enum values should use camelCase whereas pure enum values should use PascalCase. + ```nimrod + type PathComponent {.pure.} = enum + Dir + LinkToDir + File + LinkToFile + ``` -

### Coding Conventions ### - The 'return' statement should only be used when it's control-flow properties are required. Use a procedures implicit 'result' variable instead. This improves @@ -111,7 +115,7 @@ be changed in the future. variables remain immutable, and gives those who read the code a better idea of the code's purpose. -

+ ### Conventions for multi-line statements and expressions ### - Any tuple type declarations that are longer than one line should use the regular object type layout instead. This enhances the readability of the @@ -132,7 +136,7 @@ be changed in the future. ```nimrod type EventCallback = proc ( - timeRecieved: TTime + timeRecieved: Time errorCode: int event: Event ) @@ -146,7 +150,7 @@ be changed in the future. consider renaming your procedure). ```nimrod proc lotsOfArguments(argOne: string, argTwo: int, argThree:float - argFour: proc(), argFive:bool): int + argFour: proc(), argFive: bool): int ``` - Multi-line procedure calls should either have one argument per line @@ -165,8 +169,8 @@ be changed in the future. watchSubdir.WinBool, filterFlags, cast[ptr dword](nil), - cast[POverlapped](ol), - cast[LPOverlappedCompletionRoutine](nil) + cast[Overlapped](ol), + cast[OverlappedCompletionRoutine](nil) ) @@ -174,4 +178,4 @@ be changed in the future. # Best suited for 'simple' procedure calls startProcess(nimExecutable, currentDirectory, compilerArguments environment, processOptions) - ``` \ No newline at end of file + ```