harakit/STYLE

69 lines
2.1 KiB
Plaintext
Raw Normal View History

0. Braces are mandatory for all control flow, as it improves the visibility of
scope.
1. Nested indentation should be kept to a minimum.
2. Empty lines should be placed between different kinds of statements:
2024-07-13 23:47:50 -06:00
int t;
2024-07-13 23:47:50 -06:00
assert(io->bufuse > 0);
assert(io->bufuse <= io->bs);
2024-07-13 23:47:50 -06:00
if ((t = write(io->fd, io->buf, io->bufuse)) < 0) {
io->error = errno;
t = 0;
} else if (t > 0) {
memmove(io->buf, &(io->buf)[t], (io->bufuse -= t));
}
2024-07-13 23:47:50 -06:00
io->bytes += t;
io->prec += (t > 0 && io->bufuse > 0);
io->rec += (t > 0 && io->bufuse == 0);
2024-07-13 23:47:50 -06:00
return io;
2024-07-13 23:47:50 -06:00
3. Cases in switch statements and matches in match statements should be indented
one level
4. In C, spaces should be placed in control flow statements after the keyword
and before the opening brace:
2024-07-13 23:47:50 -06:00
for (i = 2; i < argc; ++i) {
2024-07-13 23:47:50 -06:00
5. If a function, a C control flow statement, or a Rust macro has arguments that
cause the statement to be broken into multiple lines, this should be done by
placing the arguments on a new line inside the parentheses:
2024-07-13 23:47:50 -06:00
let usage = format!(
"Usage: {} [-d delimiter] index command [args...]",
argv[0],
);
2024-07-13 23:47:50 -06:00
6. If Rust function arguments or fields are on their own lines, they should
always have a trailing comma:
2024-07-13 23:47:50 -06:00
return Err(EvaluationError {
message: format!("{}: Invalid token", i),
code: EX_DATAERR,
})
2024-07-13 23:47:50 -06:00
7. If text is on the same line as a brace, spaces should be placed after an
opening curly brace and before a closing one:
2024-07-13 23:47:50 -06:00
use sysexits::{ EX_DATAERR, EX_IOERR, EX_UNAVAILABLE, EX_USAGE };
2024-07-13 23:47:50 -06:00
8. If a control flow statement is short enough to be easily understood in a
glance, it may be placed on a single line:
if (!argc < 0) { usage(program_name); }
9. In C, note everything you use from a library in a comment subsequent to its
#include statement:
#include <unistd.h> /* close(2), getopt(3), lseek(2), read(2), write(2),
* optarg, optind, STDIN_FILENO, STDOUT_FILENO */
2024-07-14 02:15:07 -06:00
2024-07-13 23:47:50 -06:00
--
Copyright © 2024 Emma Tebibyte <emma@tebibyte.media>
This work is licensed under CC BY-SA 4.0. To view a copy of this license, visit
<http://creativecommons.org/licenses/by-sa/4.0/>.