diff --git a/documentation/17.05/eiffel/Coding_Standards/Eiffel-Coding-Standard.wiki b/documentation/17.05/eiffel/Coding_Standards/Eiffel-Coding-Standard.wiki index a0b16070..918fa046 100644 --- a/documentation/17.05/eiffel/Coding_Standards/Eiffel-Coding-Standard.wiki +++ b/documentation/17.05/eiffel/Coding_Standards/Eiffel-Coding-Standard.wiki @@ -1,4 +1,88 @@ [[Property:uuid|0CD0A1B2-42F8-48E0-B419-61B4DC076C1B]] [[Property:weight|2]] [[Property:title|Eiffel Coding Standard]] -[https://dev.eiffel.com/Eiffel_Coding_Standard|target="blank"|Eiffel Coding Standard] \ No newline at end of file + +==Language consideration== +* Do not put a blank line between +:* '''create''' and creation instructions +:* '''inherit''' and parent clauses +* Do not use assertion clauses without tag names. + +A sample of proper formatting of code: +note + description: "Descr...." + date: "$date: $" + +class A + +inherit + B + rename + f as g + end + +create + make + +feature {NONE} -- Initialization + + make (a: INTEGER) + -- Initialize Current with `a'. + do + end + +invariant + a_positive: a > 0 + +end + +==Style== +* If instructions: +if expr1 then + ... +elseif expr2 then + ... +else + ... +end + +If expressions are very long, break them on conjunctions as in: +if + expr1 or else + expr2 +then + ... +end + +* Loop instructions: +from + ... +until + ... +loop + ... +end + +* Inspect instructions: +inspect expr +when val1 then .... +else + ... +end + +or + +inspect + expr +when val1 then + ... +else + ... +end + +* For punctuation, we always have a space before '''(''' and a space after ''')''', ''',''', ''':''', or ''';''': +require + a_tag: query (a, b, c) or other_query (c, d) +local + i: INTEGER; j: INTEGER +