Commit graph

13 commits

Author SHA1 Message Date
James Westman
bbfa90177a
WIP 2022-07-23 20:35:28 -05:00
James Westman
6fdb12fd5d
WIP: Add gir.PartialClass 2022-07-23 15:10:42 -05:00
James Westman
762a29b705
gir: Allow looking up basic types by name 2022-07-23 15:10:28 -05:00
James Westman
0a0389b1f8
grammar: Create an AST node for type names 2022-07-09 16:05:10 -05:00
James Westman
68610a7dba
typelib: Use GIRepository to find typelib path 2022-06-28 23:58:48 -05:00
James Westman
c5f2e4ed4b
gir: Gracefully handle missing .gir files
They aren't required for compilation anymore, and not being able to show
documentation on hover is probably not worth crashing the language
server over.
2022-06-25 00:15:20 -05:00
James Westman
06f54c8ff8
Use typelib instead of XML
For normal compilation, use .typelib files rather than .gir XML files.
This is much faster.

Rather than using libgirepository, which would try to actually load the
libraries, we use a custom parser.

The language server will still read XML because it needs to access
documentation, which is not in the typelib, but that's generally fine
because it's a long lived process and only has to do that once.
2022-06-25 00:15:20 -05:00
James Westman
99e428d93c validation: Disallow instantiating abstract classes 2022-04-28 23:35:34 -05:00
James Westman
f78478bea1 validation: Writable/construct-only properties
Add two new errors, one for non-writable properties and another for
binding construct-only properties.
2022-04-28 22:52:30 -05:00
James Westman
f197e68589 Use cached_property instead of a custom decorator 2022-03-28 14:38:05 -05:00
James Westman
85150d397b
gir: Fix assignable_to for interface implementations
Part of #29
2022-01-11 22:37:24 -06:00
James Westman
8e4433a487
Create an interactive porting tool
`blueprint-compiler port` interactively ports a project to blueprint.
It will create the subproject wrap file, add it to .gitignore, decompile
your GtkBuilder XML files, emit code to copy and paste into your
meson.build file, and update POTFILES.in.

It can't quite handle all of the features the forward compiler can, so
it will skip those files.
2021-12-01 23:38:28 -06:00
James Westman
544d152fb6
Rename to blueprint-compiler
This isn't an official GTK project so better to avoid using "GTK" in the
name.
2021-12-01 15:35:58 -06:00
Renamed from gtkblueprinttool/gir.py (Browse further)