James Westman
e128b49069
Merge branch 'fix-72' into 'main'
...
port: Show error when Gtk typelib is missing
Closes #72
See merge request jwestman/blueprint-compiler!54
2022-10-09 15:31:21 +00:00
James Westman
c0c40b1577
language: Support boxed types and GType
...
- Add support for type checking boxed types
- Remove support for converting string and number literals
- Add the `typeof()` operator for GType literals
2022-10-06 13:03:33 -05:00
James Westman
08da6f79c7
Fix referencing template by ID
2022-07-16 21:16:45 -05:00
James Westman
664fa2250b
Validate that an object can have children
...
Fixes #32 .
2022-07-09 16:40:02 -05:00
James Westman
0a0389b1f8
grammar: Create an AST node for type names
2022-07-09 16:05:10 -05:00
James Westman
0a1c9da2ec
port: Show error when Gtk typelib is missing
...
Fixes #72 by showing a proper error message rather than crashing.
2022-07-09 16:01:16 -05:00
Sonny Piers
2da6be7618
lsp: Fix crash when import version missing
...
The issue is specific to the language server, since it's trying to use
an AST that contains errors. The test would not fail but was added
anyway.
2022-07-09 20:00:10 +00:00
James Westman
b9fdc5a5f1
Fix action widgets in templates
...
Fixes #69 .
2022-07-09 14:48:33 -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
4fefa0bd73
Add lookup expressions
2022-06-24 23:16:15 -05:00
James Westman
4b7fda4f43
action widgets: Fix grammar
2022-06-08 23:55:22 -05:00
James Westman
d319cb11c1
Use the new duplicate validator for templates
2022-06-08 23:10:27 -05:00
James Westman
22edcf0c67
Remove obsolete commented-out code
2022-06-08 23:08:33 -05:00
James Westman
824476bda1
Add errors for duplicate properties and blocks
2022-06-08 23:08:15 -05:00
James Westman
42aa91d4d9
Detect when gobject-introspection is missing
...
Instead of a compiler bug error, show a proper error message that asks
whether gobject-introspection is installed.
Fixes #58 .
2022-05-27 16:21:18 +00:00
James Westman
0da0c9399f
xml: Convert GirType to type name automatically
...
Makes some of the emit_xml code a bit simpler.
2022-04-30 16:41:45 -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
417f163a5a
Fix crash in flags value for unchecked classes
2022-04-18 15:42:55 -05:00
James Westman
3f8b38d219
Fix crash in action widget syntax
2022-04-18 15:35:19 -05:00
James Westman
4cf966eafa
tests: Add GTK directive error tests
2022-03-28 14:38:05 -05:00
James Westman
a4ffdd944f
language: a11y: Fix property names
...
Blueprint uses underscores in property/state/relation names, but
GtkBuilder expects dashes because it uses the glib names from the
GtkAccessible* enums.
2022-03-28 14:38:05 -05:00
James Westman
3f37380c25
tests: Test that docs & completions don't crash
2022-03-19 18:16:25 -05:00
James Westman
e6ad51c682
Show docs for flag values
2022-03-04 15:06:13 -06:00
James Westman
8ea06e8a78
Add validation for flag values
2022-03-02 14:06:57 -06:00
James Westman
bebe784d1d
Fix type check for flags when only one is present
...
When only one flag is specified, it's parsed as an IdentValue rather
than a FlagsValue, so IdentValue needs to be able to type check flags
(aka bitfields) properly.
Fixes #47
2022-03-02 13:57:30 -06:00
James Westman
4b42016837
Fix bug with inline menus
...
Fixes #44
2022-02-21 14:12:56 -06:00
Gleb Smirnov
cfa7278568
perf: cache action widgets to don't recalculate it
2022-02-19 12:59:42 +03:00
Gleb Smirnov
bb3f87ae51
fix: use cached_property
instead of cache
and property
2022-02-19 12:52:34 +03:00
Gleb Smirnov
4103ad3e71
fix: allow adding action widgets to GtkInfoBar
2022-02-19 12:51:34 +03:00
Gleb Smirnov
736681a841
feat: add syntax for GtkDialog
's action widgets
2022-02-18 19:03:41 +03:00
James Westman
9873a2072b
Add warning for sync-create
2022-02-09 15:39:02 -06:00
James Westman
32d4769f65
Change sync-create to no-sync-create
...
Fixes #31
2022-02-09 15:39:02 -06:00
James Westman
bac008296a
fix imports
2022-01-29 21:08:55 -06:00
James Westman
cb35acad17
Fix mypy issues
2022-01-28 14:07:29 -06:00
James Westman
1150ae1a09
reorganization: Move decompilers
2022-01-26 22:55:27 -06:00
James Westman
ee5f32622f
reorganization: Finish moving parsing and AST
2022-01-26 22:37:51 -06:00
James Westman
8f9de81e24
reorganization: Move hooks to common.py
...
This allows them to be referenced before they are filled, helping avoid
circular dependencies.
2022-01-26 14:50:36 -06:00
James Westman
34f525beaa
reorganization: Rename extensions -> language
...
I want all language elements to be defined in the same folder, rather
than having the "core" language split by parsing/AST/completions and the rest
split by language element.
2022-01-26 14:10:39 -06:00