Daniel Kolesa
6a284e48c9
eolian: eolian_* -> eolian_state_*, Eolian -> Eolian_State
2018-02-27 16:12:35 +01:00
Davide Andreoli
0af53f4bc6
Pyolian: improve a bit the namespace generation
...
I still think that namespaces should be directly exposed by eolian.
Currently pyolian provide a namespace implementation but it's
hard to get it right, and it should be really shared between
all eolian users.
2018-02-18 09:35:53 +01:00
Davide Andreoli
7255954ccc
pyolian: improve a bit the 2 example templates
2018-01-25 22:51:42 +01:00
Davide Andreoli
94b6ad8448
pyolian: improve the doc generation
2018-01-24 22:26:40 +01:00
Davide Andreoli
8bbc16bf7e
pyolian test: just rename the main eolian state
2018-01-23 21:32:28 +01:00
Davide Andreoli
9160bfe901
Pyolian: fix and tests for recent changes
...
q66: please leave the pyolian updating work to me,
it's harder for me to fix wrong stuff instead of just
implement myself ;)
2018-01-16 20:53:20 +01:00
Daniel Kolesa
d47610a732
eolian: do not require unit when stringifying types
...
As it is no longer necessary to pass unit when evaluating exprs,
it is not necessary to pass it here either. Convert all the APIs
to the new style and update all instances in our tree.
2018-01-16 16:39:05 +01:00
Daniel Kolesa
dd2e579fec
eolian: do not require unit for expr eval APIs
...
The necessary information is now stored directly in the expr
during database validation.
Also enable expr validation for params.
2018-01-16 16:37:52 +01:00
Davide Andreoli
0179d34f0f
Pyolian: add tests for recently added funcs
2018-01-14 12:05:33 +01:00
Andy Williams
8a71ac57ab
docs: Show when classes really are top level EFL namespace
2018-01-14 00:05:59 +00:00
Daniel Kolesa
c6436337a4
eolian: aliased_base_get funcs don't need unit
2018-01-12 18:05:13 +01:00
Daniel Kolesa
19c16b671e
eolian: type_typedecl_get doesn't need a unit
2018-01-12 18:05:13 +01:00
Daniel Kolesa
707ed05d58
eolian: do not require unit for type_class_get
2018-01-12 18:05:13 +01:00
Davide Andreoli
f003c6702d
Pyolian: cache classes and properties
...
This give an overrall speed up of aroud 50% in the full doc generation.
2018-01-05 12:48:28 +01:00
Davide Andreoli
6421ea6d3c
doc generator: show params and return type for functions
2018-01-04 11:06:06 +01:00
Davide Andreoli
2f69ba27d3
Put in a new (experimental) doc generator built only by templates
...
This is (in my mind) meant to replace the current elua generator.
Currently the generated output is pratically identical to the elua
one, just some little difference here and there, some for thecnical
reasons and some just for my preference.
I consider this work just a starting point, extending the
templates we can now easily improve our docs. Whithout the need
to touch a single line of code.
Really I think this is a great improvements, and this are some
numbers to prove it:
Current elua implementation:
4185 lines of code in 7 lua files
generation time: ~ 7 seconds
New generator:
115 lines of python + 513 lines of templates
generation time: ~ 8 seconds (can be optimizd ALOT)
To generate the full Efl.* docs just run "./gendoc.py -v" in this folder.
...will wait for reviews (in particular from @andy and @q66)
2018-01-03 16:54:51 +01:00
Davide Andreoli
ee53d64dcb
Pyolian: quite complete documentation for usage and template syntax
...
The same content is available in phab wiki at:
https://phab.enlightenment.org/w/pyolian/
2018-01-03 14:00:33 +01:00
Davide Andreoli
a2b24d0948
Pyolian: fix segfault on shutdown
...
also improve abit all_namespaces performance by using a set (hashable)
2018-01-02 21:52:57 +01:00
Davide Andreoli
b9ed84f4ed
Pyolian: implement an utility class: Namspace
...
Update tests and generator to use this new feature
2018-01-02 15:44:43 +01:00
Davide Andreoli
3388077bc3
Pyolian: implemented doc tokenizer
2018-01-02 13:58:08 +01:00
Davide Andreoli
e7a26af330
Pyolian: better equality test, new hierarchy prop and some tests
2018-01-01 08:37:13 +01:00
Davide Andreoli
dd97383887
Pyolian: a fix and some new utils
2018-01-01 08:37:13 +01:00
Davide Andreoli
77fba4119b
Pyolian generator: also make the classes visible in the template ctx
2018-01-01 08:37:13 +01:00
Davide Andreoli
b5e3853e9d
pyolian: make the library and the generator importable from another folder
2018-01-01 08:37:13 +01:00
Davide Andreoli
15c7bbf5fa
Pyolian template-based generator.
...
This is a really powerfull tool that can be used to generate anything eolian
releted just providing a template file. You can then render the template
with the wanted scope (class, namespace, enum, etc)
For example give a try at this (from the src/srcipts/pyolian folder):
./generator.py test_gen_class.template --cls Efl.Loop.Timer
or ./generator.py -h for the full help
Next step: maybe generate the new efl API doc using this tool?
@andy I think this will make your life much easier :)
2017-12-28 16:10:04 +01:00
Davide Andreoli
455f241463
New python bindings for eolian
...
This are manually written ctype bindings for eolian, that means they
run on the standard python library (nothing to install) and can run
without any build step (in fact ctypes just open the so/dll file at runtime)
Next step will be (soon) a template based generator for eolian that will
be a lot of fun :)
2017-12-28 13:53:54 +01:00
Andy Williams
46fbbef13a
docs: Group our API landing page by namespace
2017-12-22 17:30:52 +00:00
Andy Williams
99f9789902
docs: Output correct signature for class method first parameter
2017-12-20 15:00:18 +00:00
Andy Williams
4202dca002
docs: Note class scope for method listings
2017-12-20 14:33:54 +00:00
Andy Williams
2a0e077416
docs: Correct sig for eolian lua calls
2017-12-20 14:31:56 +00:00
Daniel Kolesa
18e18ca74c
eolian: remove remaining global state (+ modify APIs accordingly)
2017-12-15 17:11:11 +01:00
Daniel Kolesa
011bbfdc93
Revert "docs: remove resolved FIXMEs"
...
This reverts commit b8b183bfcb
.
The FIXMEs are not resolved, just worked around.
2017-12-14 15:53:27 +01:00
Andy Williams
ed307bda40
docs: Move inherited items to tables
...
Lots of refactoring required to make sense of the generator
2017-12-13 18:10:57 +00:00
Andy Williams
f8889239b6
docs: Sort the data before rendering
...
Better on memory and saves on intermediate buffers
2017-12-13 18:10:57 +00:00
Andy Williams
e747e1ec2a
docs: Don't display any inheritance info if we do not inherit
2017-12-13 10:08:21 +00:00
Andy Williams
d5d130085a
docs: Remove the somewhat unreadable graphs from web output
2017-12-13 10:08:21 +00:00
Andy Williams
b3f575fd43
docs: Fix description position for property pages
2017-12-12 17:52:46 +00:00
Andy Williams
92c9ec33e7
docs: Save a few kB by stripping spaces from newlines
2017-12-12 16:54:15 +00:00
Andy Williams
86b37828d9
docs: Group our inherited members and events by class
...
That's the closest class that extends, not the originating class.
Also realised that "inherited from" is not needed this deep,
so keep it succinct.
2017-12-12 16:35:20 +00:00
Andy Williams
33a4050048
docs: Keep description at the top and code snippets at the bottom
2017-12-12 16:35:20 +00:00
Andy Williams
7fa99824a0
docs: Reverse the described relationships in our API docs site
...
This means that "<ns><method> [Overridden from <parentns>]" is
preferred to "<parentns><method> [Overridden in <ns>]".
This also means that "Overriden here" becomes
"Overridden from <parentns>"
2017-12-12 16:35:20 +00:00
Andy Williams
dc13197895
docs: Strip duplicate inherited events
2017-12-11 22:30:25 +00:00
Andy Williams
5ce17ae60a
docs: We no longer have class type in URLs
2017-12-11 17:25:50 +00:00
Andy Williams
87900f49b0
docs: Include Eina in the allowable Unified API namespaces
2017-12-11 17:25:28 +00:00
Andy Williams
6757fd504e
docs: Remove the details for inherited members and events
...
Also fix the headings so "Members" and "Events" is always visible
as it makes for a better Table of Contents.
Layout could be improved, just playing with the minimal
information presentation for now.
2017-12-11 16:50:47 +00:00
Andy Williams
5b6d3bb538
docs: Compact and lay out the header of API docs
...
Add an inheritance summary (following the primary class heirarchy).
Move the full heirarchy to a folded section.
Put the description at the top where it belongs.
2017-12-11 16:50:47 +00:00
Andy Williams
0c744c6c1c
docs: Filter the public API to just Efl.*
2017-12-11 16:50:47 +00:00
Andy Williams
b8b183bfcb
docs: remove resolved FIXMEs
2017-12-08 18:23:06 +00:00
Andy Williams
42368d16e8
docs: Complete removal of object type from API URLs
...
We still have the subtypes for now, that is less
likely to cause user confusion as they are unlikely to browse
method names in the address bar.
2017-12-08 18:16:51 +00:00
Andy Williams
3cccf56795
docs: Strip class type from URLs, avoid user confusion
2017-12-08 16:39:05 +00:00
Andy Williams
da29942989
docs: Don't confuse with dokuwiki user namespace
2017-12-08 16:39:05 +00:00
Andy Williams
8093546521
docs: Use more meaningful titles for when we only inherit
2017-12-08 16:39:05 +00:00
Daniel Kolesa
324e3dedea
docs: always pass eos unit in gendoc
2017-12-08 13:18:38 +01:00
Andy Williams
dc821546ad
gendoc: Allow script to be run from other directories
2017-12-08 11:00:50 +00:00
Andy Williams
6cdcaf846b
gendoc: Update to latest eolian syntax
2017-12-08 11:00:50 +00:00
Daniel Kolesa
8a1f93f698
eolian: pass state where necessary
...
This modifies the API so that global state removal is made
possible. It's still used internally for now but externally
the state is contained.
2017-12-05 16:41:42 +01:00
Daniel Kolesa
40214e16c7
elua: correctly wrap gettext funcs
...
Now, we cannot directly register funcs defined by a different
signature than the lua standard (int (*)(lua_State *)) so we
have to correctly wrap those with proper conversions etc.
2017-11-24 10:55:46 +01:00
Andy Williams
93995b0093
docgen: Correct title plugin usage
2017-11-22 09:59:52 +00:00
Daniel Kolesa
a5d77546a8
docgen: better space out includes
2017-11-02 14:36:00 +01:00
Daniel Kolesa
e46d6d41d2
docgen: fix generation and generate notes correctly
2017-11-02 14:29:20 +01:00
Andy Williams
a7bb770e69
Generate docs into /develop/api/*
...
Also move root doc to start.txt for a better entry point
2017-10-25 18:17:25 +01:00
Daniel Kolesa
4f8a9b50f4
eolian: make inherits_get return a list of classes, not strings
...
Most of the time you need to retrieve the class from the string
anyway, so remove this relic of old Eolian and gain some small
performance benefits and extra convenience.
Subtly breaks API but everything should be updated.
2017-10-25 16:25:41 +02:00
Andy Williams
549f167002
Docs location moved
2017-10-21 16:39:07 +01:00
Daniel Kolesa
c48cde4aed
docs: move write_include out of the writer backend
...
This is a large chunk shared between backends.
2017-10-20 14:29:04 +02:00
Daniel Kolesa
dbf48bf9f5
docs: prepare for markdown gendoc backend
2017-10-20 14:17:10 +02:00
Daniel Kolesa
1577c576e6
eolian: remove static_array and terminated_array
...
These types are of questionable value and the API was not entirely
thought out - remove for now, and if a legitimate use is found
later, they may be readded (with a better API), but typically it
seems best to redesign the bad APIs around safe containers...
2017-09-22 18:01:15 +02:00
Daniel Kolesa
4bae2a7385
eolian: merge REGULAR and COMPLEX types
2017-09-22 17:46:02 +02:00
Daniel Kolesa
60d6aeeb2d
elua: update for new eolian ownership system
2017-09-15 17:52:38 +02:00
Daniel Kolesa
e55ab81835
eolian: always implicitly validate database and remove its API
2017-09-13 23:58:47 +02:00
Daniel Kolesa
8b5d555cf5
elua: update eolian bindings and make docgen work again
2017-08-30 19:46:41 +02:00
Daniel Kolesa
10fd3c32e8
eolian: remove c_only
...
Unused and of questionable value.
2017-08-30 19:46:41 +02:00
Daniel Kolesa
e38418dd9d
elua: update eolian bindings with c type serialization change
2017-08-10 12:19:59 +02:00
Daniel Kolesa
a72cac2223
docgen: stub out units so the generator works again
2017-05-30 17:15:54 +02:00
Daniel Kolesa
bf2ac6c937
elua: update for unit api usage
2017-05-30 17:15:53 +02:00
Daniel Kolesa
7da0549970
eolian: make eolian_file_parse return unit
2017-05-30 17:15:53 +02:00
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