James Westman
4e02c34a5b
Minor performance optimizations
2023-06-13 19:01:33 -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
c95195197d
Fix template IDs in a couple more places
2023-05-16 19:59:25 -05:00
James Westman
46e467bbfb
Fix 'template' keyword in list item factories
2023-05-13 20:24:31 -05:00
James Westman
5a782c653b
Add Gtk.Scale mark syntax
2023-05-13 20:19:29 -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
aebf8be278
Fix a bug found by the fuzzer
2023-05-13 14:56:38 -05:00
James Westman
26072500c8
Fix Gio.File properties
2023-05-11 13:18:24 -05:00
James Westman
43fbf8cf8e
Add warning for confusing object IDs
2023-05-08 15:23:46 +00:00
James Westman
8fcd08c835
Add Adw.Breakpoint custom syntax
2023-05-08 10:11:40 -05:00
James Westman
d4c2bb34eb
Remove trailing commas in Translated
2023-05-06 15:30:18 -05:00
James Westman
5b50090b65
Minor code cleanup
2023-05-06 15:30:18 -05:00
James Westman
a9f6bf8d89
Remove unused imports and code
2023-05-06 15:30:18 -05:00
James Westman
10806bce1e
language: Rename extension classes
...
Rename extension classes to match the syntax reference.
2023-05-06 15:30:18 -05:00
James Westman
9e82a2fb2a
language: Rename expression classes
...
Rename the expression classes to match the documentation.
2023-05-06 15:30:18 -05:00
James Westman
3c1941a17e
Simplify Translated
...
Remove the TranslatedWithContext and TranslatedWithoutContext rules and
just use Translated.
2023-04-29 21:57:33 -05:00
James Westman
779e27d7ac
menus: Simplify grammar a bit
...
Again no syntax changes, just refactoring the rules.
2023-04-29 21:52:20 -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
a2eaaa26fe
Rename property to avoid conflict
...
TranslatedWithContext.context conflicted with AstNode.context
2023-04-28 20:49:22 -05:00
James Westman
ec844b10ca
Add ScopeCtx instead of root.objects_by_id
...
This allows us to introduce new scopes, such as in
GtkBuilderListItemFactory templates.
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
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
Cameron Dehning
7e20983b44
Lsp hotfix
2023-03-24 16:27:22 +00: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
402677f687
performance: Cache some properties
2023-03-20 13:34:17 -05:00
James Westman
90001bd885
Fix mypy errors & other bugs
2023-03-12 21:49:36 -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
0f5f08ade9
Fix flag syntax
...
Unlike commas, no trailing "|" is allowed.
2023-03-11 21:24:52 -06:00
James Westman
8874cf60b3
parse_tree: Remove Pratt parser
...
It isn't actually needed; the way we parse expressions as a prefix
followed by zero or more suffixes is enough.
2023-03-11 21:05:27 -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
6938267952
Add properties to AST types
...
I want to have a cleaner API that relies less on the specifics of the
grammar and parser.
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
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
2033bd9e16
types: Add UncheckedType
...
This allows us to remember information about an external type, such as
its name, while still marking it as unchecked.
2022-12-25 14:04:36 -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
8fee46ec68
Format using black
2022-12-19 11:52:59 -06:00
James Westman
0b8012b8e1
Support Python 3.9
...
Remove the '|' syntax for type unions, since it's a 3.10 feature, and
set mypy to check with version 3.9.
2022-10-27 13:16:18 -05:00