b4712bfcab
These items should probably go to the issues section…
58 lines
1.5 KiB
Markdown
58 lines
1.5 KiB
Markdown
# GobGen
|
||
|
||
Generate boilerplate code for a GObject descendant in Emacs.
|
||
|
||
## Usage
|
||
|
||
1. Execute `M-x gobgen`
|
||
2. Specify a class name in snake_case
|
||
3. Specify a parent class name in snake_case
|
||
3. If the guessed prefixes are not OK, fix them
|
||
4. Check GLib >= 2.38 if you are building for new(ish) GLib
|
||
versions. This puts some optimalizations in the code, like makes
|
||
use of macros like `g_object_get_private`
|
||
5. Check Has private members if you want to add a private struct to
|
||
your object
|
||
|
||
## Installation
|
||
|
||
1. Clone this repository and add it to your `load-path`
|
||
2. `(require 'gobgen)`
|
||
|
||
## Contributing
|
||
|
||
If you have a feature idea or find a bug, feel free to issue a pull
|
||
request. If you need any help with the code, find me on Matrix
|
||
as
|
||
[@gergely.polonkai.eu](https://riot.im/app/#/user/@gergely:polonkai.eu)
|
||
|
||
## Credits
|
||
|
||
This package is heavily based on Gustavo Sverzut
|
||
Barieri’s
|
||
[gobject-class.el](https://www.emacswiki.org/emacs/gobject-class.el).
|
||
|
||
## Future plans
|
||
|
||
There are tons of features I plan, here is a brief list:
|
||
|
||
* Properties
|
||
* Signals
|
||
* Pre-define methods, virtual or not
|
||
* Add GTK-Doc blocks for for the generated code
|
||
* Widget specialization
|
||
** Standalone with custom `render()` method
|
||
** Composite
|
||
** Templated composite, that should also create a `GtkBuilder`
|
||
template
|
||
* Add some help text for fields
|
||
* GLib requirement check (if 2.38 is turned on)
|
||
* Possibly add a `GET_PRIV` macro for 2.38+
|
||
|
||
## Requirements
|
||
|
||
`gobgen.el` depends only on the Emacs widget library.
|
||
|
||
Tested on Emacs 24.3 and 25.1, please report if you succeed (or fail)
|
||
on other versions!
|