Commit graph

53 commits

Author SHA1 Message Date
James Westman
af03c2ac0f cleanup: Format using black 2022-02-23 14:40:09 -06:00
James Westman
4b42016837 Fix bug with inline menus
Fixes #44
2022-02-21 14:12:56 -06:00
Gleb Smirnov
4103ad3e71
fix: allow adding action widgets to GtkInfoBar 2022-02-19 12:51:34 +03:00
Gleb Smirnov
d9ef1d4df9
tests: add tests for action widget syntax 2022-02-18 19:04:08 +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
3bdcc83c4e tokenizer: Remove redundant token types 2022-02-09 15:24:56 -06:00
James Westman
ee5f32622f reorganization: Finish moving parsing and AST 2022-01-26 22:37:51 -06:00
Gleb Smirnov
f8c96abfc5 tests: add test for inverted binding flag 2022-01-24 20:35:31 +00:00
Gleb Smirnov
cc8a555f97
tests: add tests for internal children 2022-01-22 09:43:14 +03:00
Gleb Smirnov
492b73bc47 tests: add tests for signal's object attribute 2022-01-17 05:37:17 +00:00
James Westman
6b78338d1a
Make template parent optional
Not recommended, since you lose some type checking.
2022-01-16 21:08:16 -06:00
James Westman
1897478480
tests: Exclude lines from coverage
Exclude things like "raise NotImplementedError" and compiler bug
handlers.
2022-01-16 20:59:11 -06:00
James Westman
85150d397b
gir: Fix assignable_to for interface implementations
Part of #29
2022-01-11 22:37:24 -06:00
James Westman
8e1a9f72dd
parser: Merge consecutive "Unexpected tokens" errors
Fixes #24
2021-12-16 23:18:31 -06:00
James Westman
34e78de338
decompiler: Support GtkFileFilter tags 2021-12-15 11:32:33 -06:00
James Westman
5ac1c85082
remove accidentally committed file 2021-12-04 22:31:10 -06:00
James Westman
1f677725d8
interactive_port: Ignore "_build" and "build" dirs
Fixes #15
2021-12-04 19:14:04 -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
James Westman
be3c0de670
Remove some semicolons
Remove semicolons everywhere except 'using' statements, properties,
attributes, and signals.

This should be the last breaking change to the syntax.
2021-11-30 21:04:35 -06:00
James Westman
878ff1b37b
Change menu item shorthand syntax
I'm changing the syntax a bit because I want it to be more general in
the future.
2021-11-28 23:01:51 -06:00
James Westman
2130c78da9
Accept string literals for parseable types
GtkBuilder knows some class-specific parsing methods, so we can use
string literals for these types and pass them straight to the XML.
2021-11-25 18:43:37 -06:00
James Westman
3804d91118
tokenizer: Fix multiline comment regex 2021-11-25 18:43:33 -06:00
James Westman
7cab7da4bb
Allow \' in strings 2021-11-25 18:27:53 -06:00
James Westman
0e33ce190d
Support translation contexts 2021-11-24 21:17:59 -06:00
James Westman
c4beb6841c
Fix enums with "-"/"_" in the name 2021-11-24 14:57:34 -06:00
James Westman
f2b7d3bd95
Fix uint properties 2021-11-24 14:46:49 -06:00
James Westman
3f55aae7de
Fix bindings with no flags 2021-11-24 14:12:37 -06:00
James Westman
2a18273c80
Add string lists 2021-11-12 19:01:20 -06:00
James Westman
aa447466c0
Add GtkComboBoxText items 2021-11-12 18:40:26 -06:00
James Westman
f1e1811e1f
Improved validation 2021-11-12 18:01:56 -06:00
James Westman
981c2e3b7d
Remove the ':' in a few places
Changed my mind, I think it's more confusing to use the colon for
properties when they aren't really properties.
2021-11-12 17:47:09 -06:00
James Westman
e759569c3f
Validate parent object for accessibility and layout 2021-11-12 17:10:30 -06:00
James Westman
2224f0958c
Add Gtk.SizeGroup 2021-11-12 16:59:51 -06:00
James Westman
f8478adf3a
Use array-like syntax for styles, file filters
These are now pseudo-properties with brackets around the array items,
for consistency with more familiar languages.
2021-11-12 09:39:47 -06:00
James Westman
ebfa72d94f
Add GtkFileFilter properties 2021-11-12 09:23:25 -06:00
James Westman
b776163cd7
Add accessibility properties 2021-11-12 00:51:01 -06:00
James Westman
d89f2356b4
Validate object types 2021-11-05 00:44:33 -05:00
James Westman
a4b31f2cb0
Add more tests 2021-11-04 00:05:38 -05:00
James Westman
08a74acb37
ci: Generate test coverage report 2021-11-03 23:30:04 -05:00
James Westman
43d442a6df
tests: Add some error handling tests 2021-11-03 23:03:43 -05:00
James Westman
241668fb94
Report duplicate object IDs 2021-11-03 14:58:33 -05:00
James Westman
7a65956195
Bug fix, new test 2021-11-01 22:15:49 -05:00
James Westman
80b5698533
Improve value parsing
Parse values as different AST nodes rather than just strings. This
allows for better validation and will eventually make expressions
possible.
2021-11-01 21:51:25 -05:00
James Westman
5f0eef5f2e
Add compilation tests
Added a set of test inputs and expected outputs, for regression testing.
2021-10-31 23:36:20 -05:00
James Westman
dc7c0cabd8
Clean up AST code 2021-10-31 16:44:34 -05:00
James Westman
408f3ebce5
lsp: Support completions 2021-10-30 17:49:14 -05:00
James Westman
afecd744ca
Fix tests 2021-10-28 00:13:46 -05:00
James Westman
7cf3c0bfb1
Support menus and object properties 2021-10-26 10:54:32 -05:00