-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Code style guide
These are the code style guidelines that should be followed when contributing to fluxion.
Indent = two spaces
Not hard tabs. Not four spaces. Not however many spaces you feel like. 2 spaces.
Be reasonable. Keeping within 80 characters is recommended, 120 is the maximum.
- Use existing functions whenever possible to avoid pollution.
- Identify functions using snake-case.
- Prefix identifiers with the lowercased script name defining them.
For example, "fluxion_set_language"
This function is prefixed with "fluxion" to signify it belongs to the fluxion script. We use camel-case because identifiers look more like regular commands.
- Limit the scope of variables to local if within a function.
- Wrap your variables in ${curly} ${braces} for clarity.
- Use existing variables whenever possible to avoid pollution.
- Identify variables using camel-case.
- Prefix identifiers with the capitalized script name defining them.
For example, the global "FluxionLanguage"
This global is prefixed with "Fluxion" to signify it belongs to the fluxion script. Using camel-case makes it clear it's not a subroutine.
- Limit the scope of constants to local if within a function.
- Wrap your constants in ${curly} ${braces} for clarity.
- Use existing constants whenever possible to avoid pollution.
- Identify constants using camel-case.
- Prefix identifiers with the uppercased script name defining them.
For example, "FLUXIONVersion"
This global is prefixed with "FLUXION" to signify it belongs to the fluxion script. This makes it clear a constant was defined because it's uppercase-prefixed similar to old C constants.
Use built-in globals when possible to avoid having to create sub-shells and save resources.
Bad
$(pwd)
$(whoami)
Good
${USER}
${PWD}
Place ; do ; then on the same line as while, for, and if.
Bad
while true
do ...
...
done
Good
while true; do
...
done
Use POSIX syntax:
foo() {
print 'bar'
}
NOTE: There are some exceptions but in general use POSIX.
Do NOT use backticks (`command`) to execute something in a subshell.
Bad:
now=`date`
Good:
now=$(date)
FLUXION WIKI