James Westman
05f65a86a5
WIP: Support GSettings bindings
...
Fixes #66 .
2022-07-09 15:58:49 -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
c094743e84
Fix compiling empty file
2022-06-17 11:12:21 -05:00
James Westman
4b7fda4f43
action widgets: Fix grammar
2022-06-08 23:55:22 -05:00
James Westman
824476bda1
Add errors for duplicate properties and blocks
2022-06-08 23:08:15 -05:00
James Westman
6f4d458855
build: Install to datadir
...
Install the python module to the data directory, not the python install
directory that meson gives us. Then, in the main script, try to find the
module and add it to the path by assuming the script is installed to
(prefix)/bin. Hopefully this will fix the ModuleNotFound errors.
2022-06-07 11:52:55 -05:00
James Westman
d09ee2a62b
tokenizer: Fix operator tokenization
2022-04-30 16:41:46 -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
9144ac67f0
tests: Add fuzz test
2022-04-18 20:22:31 -05:00
James Westman
4e2501c7d7
Fix number parsing
2022-04-18 20:22:29 -05:00
James Westman
417f163a5a
Fix crash in flags value for unchecked classes
2022-04-18 15:42:55 -05:00
James Westman
3d4aae79c4
tests: Test unchecked classes
2022-04-08 14:56:10 -05:00
James Westman
4cf966eafa
tests: Add GTK directive error tests
2022-03-28 14:38:05 -05:00
James Westman
1c1a5e3266
tests: Fix child_type test
...
The test passed, but the XML produced an error when loaded by GtkBuilder.
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
d73c83aa63
decompiler: Allow and ignore <placeholder/>
...
Some existing files contain <placeholder/> tags, which should be
permitted but ignored.
2022-03-28 14:34:27 -05:00
James Westman
3f37380c25
tests: Test that docs & completions don't crash
2022-03-19 18:16:25 -05: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
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