gobgen.el/README.md

58 lines
1.5 KiB
Markdown
Raw Permalink Normal View History

2016-09-27 09:05:03 +00:00
# GobGen
2014-10-04 19:11:52 +00:00
2016-09-27 09:05:03 +00:00
Generate boilerplate code for a GObject descendant in Emacs.
2014-10-04 19:11:52 +00:00
2016-09-27 09:05:03 +00:00
## Usage
2014-10-04 19:11:52 +00:00
2016-09-27 09:05:03 +00:00
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
2014-10-04 19:11:52 +00:00
2016-09-27 09:05:03 +00:00
## Installation
2014-10-04 19:11:52 +00:00
2016-09-27 09:05:03 +00:00
1. Clone this repository and add it to your `load-path`
2. `(require 'gobgen)`
2014-10-04 19:11:52 +00:00
2016-09-27 09:05:03 +00:00
## Contributing
2014-10-04 19:11:52 +00:00
2016-09-27 09:05:03 +00:00
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
Barieris
[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
2016-09-27 09:05:03 +00:00
* 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+
2016-09-27 09:05:03 +00:00
## 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!