mirror of
https://github.com/tailix/libkernaux.git
synced 2024-11-13 11:04:27 -05:00
Alex Kotov
02aca9a464
* Upgrade submodule `vendor/mruby` * Remove Stivale 2 as it is deprecated (closes #4) * Add copyrights * Edit `CONTRIBUTING.md`
107 lines
2.8 KiB
Markdown
107 lines
2.8 KiB
Markdown
Common
|
|
------
|
|
|
|
* Add your name to [COPYING](/COPYING).
|
|
* **Don't** add your name to `AUTHORS` - it's for maintainers.
|
|
* Add copyright notice in the beginning of changed files except the headers.
|
|
* If you change the behavior (even just fix a bug) of **libkernaux** (stable) or
|
|
[libc](/libc), add a record to [ChangeLog](/ChangeLog).
|
|
|
|
|
|
|
|
C language
|
|
----------
|
|
|
|
* Name regular functions (*not methods*) and variables in lower snake case
|
|
(example: `foo_bar`).
|
|
* Name macros in upper snake case (example: `FOO_BAR`).
|
|
* Name types (*structures, unions, enumerations and type definitions*) in Pascal
|
|
case (example: `FooBar`).
|
|
* Name nested types in Pascal case and with the prefix of the surrounding type
|
|
in Pascal case, separate type names with underscores (example:
|
|
`FooBar_CarCdr`).
|
|
* Name methods (*functions that belong to a specific type*) in lower snake case
|
|
and with the prefix of the type name in Pascal case (example:
|
|
`FooBar_car_cdr`).
|
|
|
|
* Name public (*defined in the headers and exported as symbols*) regular
|
|
functions (*not methods*) and variables with the prefix `kernaux_` (example:
|
|
`kernaux_foo_bar`).
|
|
* Name public (*defined in the headers*) macros with the prefix `KERNAUX_`
|
|
(example: `KERNAUX_FOO_BAR`).
|
|
* Name public (*defined in the headers*) types with the prefix `KernAux_`
|
|
(example: `KernAux_FooBar`).
|
|
* Name public (*defined in the headers*) with the prefix `KernAux_` and with the
|
|
prefix of the surrounding type, separate type names with underscore (example:
|
|
`KernAux_FooBar_CarCdr`).
|
|
* Name public (*defined in the headers*) methods with the prefix `KernAux_` and
|
|
with the prefix of the type name (example: `KernAux_FooBar_car_cdr`).
|
|
|
|
* Create `typedef`s with the names of related `struct`s. Use this name with a
|
|
prefix `struct` to declare the data itself, withoth the prefix to declare
|
|
a pointer or an array:
|
|
|
|
```c
|
|
typedef struct FooBar { int car; } *FooBar;
|
|
|
|
static struct FooBar FooBar_create();
|
|
static void FooBar FooBar_init(FooBar foobar);
|
|
|
|
static void FooBar_do_something(FooBar foobar);
|
|
|
|
// Initialize:
|
|
struct FooBar foobar = FooBar_create();
|
|
// or
|
|
struct FooBar foobar;
|
|
FooBar_init(&foobar);
|
|
|
|
// Use:
|
|
FooBar foobar_ptr = &foobar;
|
|
FooBar_do_something(&foobar);
|
|
```
|
|
|
|
```c
|
|
typedef struct FooBar { int car; } FooBar[1];
|
|
|
|
static struct FooBar FooBar_create();
|
|
static void FooBar FooBar_init(FooBar foobar);
|
|
|
|
static void FooBar_do_something(FooBar foobar);
|
|
|
|
// Initialize:
|
|
FooBar foobar = { FooBar_create() };
|
|
// or
|
|
FooBar foobar;
|
|
FooBar_init(foobar);
|
|
|
|
// Use:
|
|
FooBar_do_something(foobar);
|
|
```
|
|
|
|
|
|
|
|
Python
|
|
------
|
|
|
|
Nothing here yet.
|
|
|
|
|
|
|
|
Ruby
|
|
----
|
|
|
|
### Matz's Ruby interpreter
|
|
|
|
Use **RuboCop**. See [bindings/ruby/.rubocop.yml](/bindings/ruby/.rubocop.yml)
|
|
|
|
### mruby
|
|
|
|
Use **RuboCop**. See [bindings/mruby/.rubocop.yml](/bindings/mruby/.rubocop.yml)
|
|
|
|
|
|
|
|
Rust
|
|
----
|
|
|
|
Use **rustfmt** and **Clippy**.
|
|
See [bindings/rust/rustfmt.toml](/bindings/rust/rustfmt.toml)
|