-gobject-minor-mode
+gnome-c-style
======
-In the C coding style commonly used in GNOME, identifiers are written
-in camel case and function arguments are aligned to the right end.
-That makes it a bit cumbersome to keep your code consistent with the
-style, even with align.el or plugins like yasnippet.
-
-gobject-minor-mode is an Emacs minor mode intended to help editing C
-source code in that style. It mainly provides two features: text
-alignment and snippet insersion.
+gnome-c-style is an Emacs minor mode for editing C source code in [GNOME C coding style](https://developer.gnome.org/programming-guidelines/stable/c-coding-style.html.en). In particular, it is useful to properly line-up [function arguments](https://developer.gnome.org/programming-guidelines/stable/c-coding-style.html.en#functions) and [function declarations in header files](https://developer.gnome.org/programming-guidelines/stable/c-coding-style.html.en#functions).
Install
------
-* Type "make"
-* Copy .elc files somewhere in your load-path
+* M-x package-install gnome-c-style
* Add the following lines to ~/.emacs/init.el:
```
-(autoload 'gobject-minor-mode "gobject-minor-mode" "GObject minor mode" t)
-(add-hook 'c-mode-hook 'gobject-minor-mode)
+(add-hook 'c-mode-hook 'gnome-c-style-mode)
```
Usage
------
-| Key | Command |
---------------|---------------------------------------------------|
-| C-c C-g g | Compute alignment columns from the current region |
-| C-c C-g s | Set alignment column to the current point |
-| C-c C-g a | Align argument list at the current point |
-| C-c C-g r | Align function declarations in the current region |
-| C-c C-g c | Insert ```module_object``` |
-| C-c C-g C | Insert ```MODULE_OBJECT``` |
-| C-c C-g C-c | Insert ```ModuleObject``` |
-| C-c C-g s | Insert custom snippet |
+| Key | Command |
+--------------|-----------------------------------------------------------|
+| C-c C-g a | Align argument list at the current point |
+| C-c C-g r | Align function declarations in the current region |
+| C-c C-g C-g | Compute optimal alignment columns from the current region |
+| C-c C-g g | Guess alignment columns from the current region |
+| C-c C-g s | Set alignment column to the current point |
+| C-c C-g c | Insert ```module_object``` |
+| C-c C-g C | Insert ```MODULE_OBJECT``` |
+| C-c C-g C-c | Insert ```ModuleObject``` |
+| C-c C-g s | Insert custom snippet |
Example
------
void g_gpg_ctx_clear_signers (GGpgCtx *ctx);
```
-Mark the region, type ```C-c C-g g```, and you will see the optimum
+Mark the region, type ```C-c C-g C-g```, and you will see the optimum
alignment columns:
```