James Westman
a6d57cebec
language: Add not-swapped flag for signals
...
This is needed because GtkBuilder defaults to swapped when you specify
the object attribute.
2024-12-23 02:46:52 +00:00
James Westman
9b9fab832b
Add tests, remove unused code, fix bugs
...
- Added tests for more error messages
- Test the "go to reference" feature at every character index of every
test case
- Delete unused code and imports
- Fix some bugs I found along the way
2024-12-22 18:00:39 -06:00
James Westman
6acf0fe5a0
tests: Test deprecations separately
...
Libraries can add new deprecations, or the environment you're running
the tests in might have old libraries where the things we test aren't
deprecated yet. Move the deprecations test into its own module with its
own code, so it can check library versions and skip the test if it won't
work.
2024-12-09 19:06:10 -06:00
James Westman
3bf8fc151a
tests: Ignore deprecation warnings
...
Ignore deprecation warnings in the error handling tests, except in the
test specifically for deprecations. This prevents them from breaking if
libraries introduce new deprecations.
Fixes #178 .
2024-11-03 14:40:36 -06:00
Julian Schmidhuber
3dfce3bbe0
Allow for multiple a11y properties
2024-08-18 13:17:41 +02:00
Diego Augusto
da5b9909fc
Support array type
2024-07-04 22:02:51 +00:00
James Westman
07e824d8e7
lang: Also allow Gtk.ListHeader in factory template
2024-05-04 12:27:12 -05:00
James Westman
988e69ab25
lang: Allow ColumnView widgets to be built
...
Allow BuilderListItemFactory to contain Gtk.ColumnViewRow or
Gtk.ColumnViewCell templates, in addition to Gtk.ListItem templates.
This is necessary for people to use Gtk.ColumnView idiomatically in
Blueprint.
Fixes #157 .
2024-05-02 20:19:00 -05:00
James Westman
6a078ee075
Add warning for unused imports
2024-04-06 14:33:20 -05:00
Sonny Piers
ba8b492134
Add support for Adw.AlertDialog
2024-02-02 11:03:16 +01:00
James Westman
ea92838cf3
Parse escape sequences instead of using replace
...
That way we can warn about invalid sequences. Also, the previous code had at least one subtle bug (`\\\\'`).
2023-09-28 17:18:45 -05:00
James Westman
94db929f74
Emit deprecation warnings
2023-07-23 18:09:29 -05:00
James Westman
0a4b5d07a1
Remove PropertyBinding rule, just use Binding
2023-07-20 18:46:45 -05:00
James Westman
6ac798ea6f
More errors for duplicates
2023-05-17 10:41:45 -05:00
James Westman
64da41b268
ExtAdwMessageDialog: Duplicate flag errors
2023-05-17 09:58:51 -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
dd3c75d2c7
Update menu syntax
...
Sections and submenus can have IDs. Also, change the code to better
reflect the documented grammar.
2023-04-12 21:44:07 -05:00
James Westman
75055ac967
Move bindings out of the Value syntax
...
They're only valid in properties, so they should just be there. Same
with object values.
2023-04-12 21:44:07 -05:00
James Westman
ac2a7d9282
Add StringValue
...
Makes the grammar more specific in a few places that take only a string
literal or translated string.
2023-04-12 21:44:07 -05:00
James Westman
02796fd830
Use <> instead of () for casts & typeof
...
This makes it clearer that they aren't functions, and it eliminates
syntactic ambiguity with closure expressions.
2023-04-10 09:39:34 -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
b636d9ed71
Fix bugs in number literals
2023-03-12 14:58:35 -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
122b049ce9
language: Use new extern syntax in signal handlers
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
7ef314ff94
Fix diagnostic location reporting
...
Text positions at the beginning of a line were being shown on the
previous line.
2023-01-12 15:49:15 -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
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
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
James Westman
0a0389b1f8
grammar: Create an AST node for type names
2022-07-09 16:05:10 -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
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
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