Editing Octave style guide
Jump to navigation
Jump to search
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 11: | Line 11: | ||
=== Line Length === | === Line Length === | ||
Keep the length of source lines to 79 characters or less, for maximum | |||
readability in the widest range of environments. This is inherited from | |||
the [https://www.gnu.org/prep/standards/standards.html#Formatting GNU Coding Standards]. | |||
=== Indentation === | === Indentation === | ||
Line 19: | Line 19: | ||
Use only spaces, and indent 2 spaces at a time. | Use only spaces, and indent 2 spaces at a time. | ||
Absolutely | We use spaces for indentation. Absolutely do not use tabs in your code. | ||
You should probably set your editor to emit spaces when you hit the tab key. | |||
=== Whitespace === | === Whitespace === | ||
When calling functions, put spaces after commas and before the calling | When calling functions, put spaces after commas and before the calling | ||
parentheses, like this: | parentheses, like this: | ||
<pre>x = max (sin (y + 3), 2);</pre> | <pre>x = max (sin (y+3), 2);</pre> | ||
An exception are matrix or cell constructors: | An exception are matrix or cell constructors: | ||
Line 37: | Line 36: | ||
</pre> | </pre> | ||
Here, putting spaces after {{codeline|sin}}, {{codeline|cos}} would result in a | Here, putting spaces after {{codeline|sin}}}, {{codeline|cos}}} would result in a | ||
parse error. | parse error. | ||
For indexing expressions, do ''not'' put a space after the | For indexing expressions, do ''not'' put a space after the | ||
Line 52: | Line 49: | ||
<pre>A([1:i-1;i+1:n], XI(:,2:n-1))</pre> | <pre>A([1:i-1;i+1:n], XI(:,2:n-1))</pre> | ||
When constructing matrices, prefer using the comma rather than the space to | When constructing matrices, prefer using the comma rather than the space to | ||
Line 63: | Line 58: | ||
</pre> | </pre> | ||
However, if the matrix is large or the indentation makes it clear | However, if the matrix is large or the indentation makes it clear the comma | ||
may be dropped. | may be dropped. | ||
Line 70: | Line 65: | ||
44.04 55.05 6.06]; | 44.04 55.05 6.06]; | ||
</pre> | </pre> | ||
== Naming == | == Naming == | ||
=== General naming functions === | === General naming functions === | ||
Line 122: | Line 72: | ||
=== Function names === | === Function names === | ||
For most public functions we are limited by Matlab compatibility. Use whatever name Matlab | For most public functions we are limited by Matlab compatibility. Use | ||
whatever name Matlab choose. | |||
There are exceptions to this: | For functions that are not present in Matlab favour the use of underscores. | ||
For example, {{codeline|base64_decode}}, {{codeline|common_size}}, or | |||
{{codeline|compare_versions}}. There are exceptions to this: | |||
; Matching C functions | ; Matching C functions | ||
Line 136: | Line 86: | ||
=== Variable names === | === Variable names === | ||
== Comments == | == Comments == | ||
Line 208: | Line 91: | ||
=== # or % === | === # or % === | ||
Always use {{Codeline|#}} to write comments | Always use {{Codeline|#}} to write comments. | ||
Absolutely do not use {{codeline|%#}} or mix {{codeline|%}} and {{codeline|#}} | Absolutely do not use {{codeline|%#}} or mix {{codeline|%}} and {{codeline|#}} | ||
Line 217: | Line 100: | ||
Use a single {{codeline|#}} for inline comments. Use double {{codeline|##}} | Use a single {{codeline|#}} for inline comments. Use double {{codeline|##}} | ||
for block comments. | for block comments. | ||
=== Commenting out code === | === Commenting out code === | ||
Line 245: | Line 105: | ||
Do not comment code out. If the code is no longer used, remove it. We use | Do not comment code out. If the code is no longer used, remove it. We use | ||
version control, we can always bring it back. | version control, we can always bring it back. | ||