Commit Graph

159 Commits

Author SHA1 Message Date
Daniel Kolesa bf7b3e5dfc docgen: include C usage snippet on event pages 2017-03-07 17:15:24 +01:00
Daniel Kolesa 2b02dd56fd docgen: better event C info, show private/protected in listing 2017-03-07 16:42:22 +01:00
Daniel Kolesa 3d3ea8dd92 docgen: run types/vars together with classes in parallel script 2017-03-03 17:51:50 +01:00
Daniel Kolesa 0a252c4463 docgen: add a simple script that does doc generation in parallel 2017-03-03 17:46:40 +01:00
Daniel Kolesa bfeddb8e09 docgen: only parse the necessary class when generating only one 2017-03-03 17:34:40 +01:00
Daniel Kolesa 7ef2e4dfd4 docgen: do not generate foreign classes' functions and events
Only generate the classes' own funcs/events (and overridden). Let other
classes generate their own stuff. This prevents some files from being
generated multiple times, which more than halves generation time.
2017-03-03 16:36:47 +01:00
Daniel Kolesa 81c84999fd docgen: add a pass to generate individual classes 2017-03-03 16:35:03 +01:00
Daniel Kolesa bc7561d8d5 docgen: add clist pass to list all classes 2017-03-03 16:18:21 +01:00
Daniel Kolesa ea436e49d1 docgen: initial support for multipass gen 2017-03-03 16:16:05 +01:00
Daniel Kolesa 79f10fc0a0 docgen: move stats and keyref build into later stage
That way we can multipass the doc build without worrying about stats.
2017-03-03 15:53:59 +01:00
Daniel Kolesa 3f5e1b4e1e docgen: add info about protected/private methods/properties in listing 2017-03-02 16:34:22 +01:00
Daniel Kolesa 4f540c1a7c docgen: fix broken inheritance graphs 2017-02-24 17:17:52 +01:00
Daniel Kolesa 4f9c3e0679 docgen: more useful event listing 2017-02-24 17:12:28 +01:00
Daniel Kolesa 9124f1f8c6 docgen: disregard override info for displaying property get/set 2017-02-24 16:24:36 +01:00
Daniel Kolesa 5cf08ef1a9 docgen: minor speed optimizations and cleanups 2017-02-24 16:10:00 +01:00
Daniel Kolesa 3f92a51b9a docgen: merge overridden and other categories for methods/properties 2017-02-24 15:47:25 +01:00
Daniel Kolesa 4405d1fc7e docgen: initial support for inherited events listing 2017-02-23 18:17:22 +01:00
Daniel Kolesa dcac79d5b6 docgen: add "Others" section with all remaining callables to class pages 2017-02-23 17:09:32 +01:00
Daniel Kolesa 96c1c30db4 docgen: merge methods and properties in listing 2017-02-23 17:09:32 +01:00
Daniel Kolesa 8e65011a4b docgen: properly handle overridden property docs 2017-02-23 17:09:32 +01:00
Daniel Kolesa 7249dd94ab docgen: add a way to get numerical id of a function 2017-02-22 18:29:18 +01:00
Daniel Kolesa 967af33da2 docgen: more useful function listings in class pages
Now there are C signatures visible.
2017-02-22 18:29:18 +01:00
Daniel Kolesa d8a0daaf58 docgen: inherit overridden method/property brief descriptions on class pages 2017-02-21 16:48:52 +01:00
Daniel Kolesa cbe7859d1c docgen: add -p to print what exactly is being generated currently 2017-02-16 17:29:23 +01:00
Daniel Kolesa f297454ac0 docgen: make sure all class retrievals are cached 2017-02-16 17:20:00 +01:00
Daniel Kolesa 0dfb6516a1 docgen: cache function instantiations 2017-02-16 17:12:43 +01:00
Daniel Kolesa b9090529e5 docgen: cache class retrievals for performance 2017-02-16 16:06:56 +01:00
Daniel Kolesa 9540e96107 docs: avoid possible duplicates when figuring out all impls of a func 2017-02-09 16:04:59 +01:00
Daniel Kolesa 5e50c9d52b docs: list all existing implements of a method/property 2017-02-09 15:58:52 +01:00
Daniel Kolesa 051f277be2 docs: reverse inheritance hierarchy api in doctree 2017-02-09 15:58:52 +01:00
Daniel Kolesa 995b1e480c docgen: link to the method an overriden one overrides 2017-01-26 17:52:00 +01:00
Daniel Kolesa ff8688e169 docgen: autodocument inherited methods/properties 2017-01-26 17:52:00 +01:00
Daniel Kolesa 3090e9c3ae docs: WIP overridden method/property documentation support in docgen 2017-01-20 17:20:28 +01:00
Daniel Kolesa c2b6fbccbc docs: use new implement based doc API 2017-01-20 15:32:00 +01:00
Daniel Kolesa 8207fd9cc5 docs: remove some duplicate doctree methods 2017-01-20 15:15:50 +01:00
Daniel Kolesa ab7b6815e0 docs: add implement to doctree 2017-01-20 15:10:23 +01:00
Daniel Kolesa 95181f2d36 eolian: move base function doc API into implements
This allows us to unify retrieval of docs for both regular and
overridden funcs without having two separate APIs. It's currently
missing validation and docgen is still not adjusted properly for
it either, but at least there's this. Enables retrieval of docs
for overridden funcs by default as well.
2017-01-19 15:09:07 +01:00
Daniel Kolesa 35c5e89269 eolian: remove/add APIs and clean up implements system
As there is no need to have separate is_auto, is_empty and
is_pure_virtual for functions and implements (each function has
its own base implement by default) I removed the function ones.
Instead, I added a way to retrieve a function's base implement
so that you can instead do the checks on the implement even when
you only have the function.

I also moved base implement build directly into the parser instead
of the database filler. That allows for significant cleanup. I
also removed distinction of implement pointers in Eolian_Function
for get and set as implements now always contain an entire thing
so the pointer was always the same anyway.

Things should still behave more or less the same, but ordering
of generated functions has changed because ordering of implements
has changed.
2017-01-16 15:55:06 +01:00
Daniel Kolesa 8146db3b77 docs: generate correct eolian function signatures
Now signatures don't contain full class name, just func name.
2017-01-13 15:46:18 +01:00
Daniel Kolesa cb3f8304e0 eolian: change eo file syntax @virtual_pure -> @pure_virtual 2017-01-13 15:44:09 +01:00
Daniel Kolesa 692ae7adb6 eolian: use consistent pure_virtual naming in API
Previously one API used just virtual (incorrect) and one used
virtual_pure (which just sounds weird). So unify with a single
name, pure_virtual, similar as in other lanugages.

This does not change eo file syntax yet.
2017-01-13 15:40:29 +01:00
Daniel Kolesa a70645e154 eolian: consistent and cleaner error values from APIs
Now all error/unknown/etc values returned from APIs are zero,
previously it was a mix of zeroes and minus ones. Also, some
enums that had no error/invalid value before have one now, which
allows for better distinction between what is an error and what
is an intended result.
2017-01-13 15:26:05 +01:00
Daniel Kolesa 2f5db8c7d5 docgen: migrate to new Eolian-provided tokenizer 2016-12-09 17:19:03 +01:00
Gustavo Sverzut Barbieri 678e8dfdc3 eo_debug: add lifecycle debug options, allow run-in-tree and use eina_btlog.
As usual with our code, EFL_RUN_IN_TREE=1 will lead to usage of
binaries from the current build dir instead of system.

To make user life easier, add -l/--lifecycle-debug and
-L/--lifecycle-no-debug options, as well as -h/--help. The
lifecycle-debug option will export the correct environment variables,
such as EO_LIFECYCLE_DEBUG, EO_LIFECYCLE_NO_DEBUG and
EINA_LOG_LEVELS=eo_lifecycle:4 if no such level was set for that
domain.

Last but not least, pass all command's stderr thru eina_btlog so
backtraces are automatically translated to function names, files and
lines. This one was a bit trickier to respect colors and stdout/stderr
contents, see comments in the script.
2016-12-06 14:06:54 -02:00
Daniel Kolesa 8002b3b24e eolian: remove parsing of pointers and the corresponding APIs
Everything should be done via the new ptr() system now.
2016-11-10 16:20:19 +01:00
Stefan Schmidt 299338a550 elua: docgen: follow is_ref to is_ptr rename
Docgen was broken after this rename.
2016-11-10 15:14:42 +01:00
Daniel Kolesa 6ecd3c040d docs: support for documenting variables 2016-10-21 16:01:03 +02:00
Tom Hacohen b242f50626 Eo: introducing libeo_dbg.so.
This has been in the making for a very long time. Thanks to Marcel for
reminding me to do it.

What is it?
This is a tool to help application developers debug their apps with
everything Eo. Eo is strict, but not as strict as it can be. Many strict
tests and debug are very expensive to implement, and we have so many
hot-paths that even basic "ifs" to check if debugging is enabled  will
add significant overhead to normal running applications. This is why I
created this library. All the expensive tests and bookkeeping should be
wrapped around with "#ifdef EO_DEBUG". With this change, libeo.so is
compiled twice, once normally, and once with this define set (as
libeo_dbg.so). This means that normal eo code will not be affected, but
if you decide to debug your application, all you need to do is:

LD_PRELOAD=/path/to/libeo_dbg.so ./app

Or use the convenient wrapper:
eo_debug ./app

Which will load the debug heavy version.

What's currently there: at the moment, EO_DEBUG enables xref and
data_xref and stricter tests when fetching object data.
In the future, I also plan introducing "zombie objects", which
essentially mean that objects are never really deleted, so you can query
them long after they are gone to get more information on what they were.
So if for example you have an object id that you want to query after the
object has been deleted, you can.

I also plan on having a way to disable/enable certain debug mode
features via env vars, and maybe make the test suite link against this
one instead of the normal one, and possibly add more internal hooks for
the test suite to better inspect internal state?

P.S: The amount of errors spewed out when running it on elementary_test
makes me wish I wrote this earlier. :(

@feature
2016-09-22 13:59:46 +01:00
Daniel Kolesa 8b948b779c docs: fix editable section writer erasing wrong fields 2016-09-09 14:48:33 +02:00
Daniel Kolesa f89fc6c968 docs: add editable sections where possible 2016-09-09 14:43:02 +02:00