Commit graph

76 commits

Author SHA1 Message Date
gregorni
3730e2e726 Add isort to CI and run on files 2023-07-09 14:26:37 +00:00
James Westman
3ebe5c72c1 Fix templates in bind-property 2023-05-16 17:42:53 -05:00
James Westman
b5eca8b0b3 tests: Add another template test 2023-05-16 17:37:52 -05:00
James Westman
e4bad039b0 Fix simple bindings with template soure 2023-05-16 17:14:34 -05:00
James Westman
5a782c653b Add Gtk.Scale mark syntax 2023-05-13 20:19:29 -05:00
James Westman
83d11ccb8c tests: Auto-discover test files 2023-05-13 20:16:58 -05:00
James Westman
60f9173421 Add type to BuilderListItemFactory extension
Makes it a little clearer how it works.
2023-05-13 16:49:48 -05:00
James Westman
04509e4b2e Change template syntax
Templates now use a TypeName instead of an identifier, which makes it
clearer that it's an extern symbol (or that it's a Gtk.ListItem).
2023-05-13 16:49:48 -05:00
James Westman
8fcd08c835 Add Adw.Breakpoint custom syntax 2023-05-08 10:11:40 -05:00
James Westman
71f52d350a Refactor child types
Didn't change the actual syntax, but changed the rules around to be less
confusing.
2023-04-29 21:52:20 -05:00
James Westman
9dcd06de51 Make builder template factories use a subscope 2023-04-28 20:49:22 -05:00
James Westman
88f5b4f1c7
Fix template types 2023-04-08 20:10:16 -05:00
Cameron Dehning
a2fb86bc31 Builder list factory 2023-04-08 01:34:47 +00:00
James Westman
0cf9a8e4fc
Add Adw.MessageDialog responses extension 2023-03-28 12:43:53 -05:00
James Westman
749ee03e86 Fix misleading error message for missing semicolon
Fixes #105.
2023-03-28 10:10:37 -05:00
James Westman
bc605c5df8
Reduce errors when a namespace is not found
When the typelib for a namespace is not found, don't emit "namespace not
imported" errors. Just emit the one error on the import statement.
2023-03-21 11:31:02 -05:00
James Westman
98ba7d467a Improve expression type checking 2023-03-12 16:12:16 -05:00
James Westman
9fcb63a013
typelib: Fix crash when handling array types 2023-02-16 20:43:17 -06:00
James Westman
1df46b5a06
Change the way values work
Change the parsing for values to make them more reusable, in particular
for when I implement extensions.
2023-01-12 15:49:19 -06:00
James Westman
b6ee649458
Simplify error & warning handling 2023-01-12 15:49:19 -06:00
James Westman
0b402db4d5
language: Change extern type syntax
Use a '$' instead of a '.' to indicate a type provided in application
code.

The reason for the change is to have a consistent "extern" symbol that
isn't widely used elsewhere and isn't ambiguous in expressions.
2023-01-12 15:49:19 -06:00
James Westman
59aa054c4c
language: Add closure expressions 2022-12-25 14:04:41 -06:00
James Westman
5cf9b63547
language: Add cast expressions 2022-12-25 14:04:40 -06:00
James Westman
6c67e1fc5a
xml: Fix flags and enums
GtkBuilder XML uses enum nicknames, full names, or integer values, but
we accept GIR names, so passing those through doesn't work if the name
has an underscore (which traditionally turns into a dash in the
nickname). Avoid the problem by always writing the integer value of the
enum member.
2022-12-19 15:15:25 -06:00
James Westman
51d8969ced
Fix menus
- Menus require an ID
- The top level menu block can't have attributes
2022-12-19 15:15:25 -06:00
James Westman
8758bac40a
tests: Test XML outputs
Load the outputs of the tests in Gtk.Builder and make sure they work.
Some of them don't and need to be fixed. Others will require a bit more
work to set up callbacks, templates, etc.
2022-12-19 13:53:52 -06:00
James Westman
8fee46ec68
Format using black 2022-12-19 11:52:59 -06:00
James Westman
a24f16109f
Separate output into its own module 2022-10-15 19:40:47 -05:00
James Westman
447785ec8c language: Remove inline menus
Inline menus didn't work anyway--menus have to be referenced by ID
(though, curiously, you *can* put the <menu> within the <property> tag
and immediately reference it--but that's a hack, and not what
blueprint-compiler was doing).
2022-10-14 22:12:56 -05: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
664fa2250b
Validate that an object can have children
Fixes #32.
2022-07-09 16:40:02 -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
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
824476bda1
Add errors for duplicate properties and blocks 2022-06-08 23:08:15 -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
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
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
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
ee5f32622f reorganization: Finish moving parsing and AST 2022-01-26 22:37:51 -06:00
Gleb Smirnov
492b73bc47 tests: add tests for signal's object attribute 2022-01-17 05:37:17 +00:00