Commit graph

272 commits

Author SHA1 Message Date
James Westman
7cab7da4bb
Allow \' in strings 2021-11-25 18:27:53 -06:00
James Westman
0afa62654d
Fix error handling on keyword blocks
Some blocks (menu, layout, etc) would emit an error if they didn't find
an opening brace, which would fail if, for example, you had an object
with ID "menu" and tried to use it as a property value.
2021-11-24 21:43:45 -06:00
James Westman
097c7df326
Fix issue with menus
Trying to use a menu as an object would fail because it didn't have a
gir_class.
2021-11-24 21:35:01 -06:00
James Westman
5c0fd46ebe
Add input directory argument to batch-compile
This allows it to maintain the directory structure of the input files.
2021-11-24 21:30:12 -06:00
James Westman
0e33ce190d
Support translation contexts 2021-11-24 21:17:59 -06:00
James Westman
b0a8f3e2f5
Fix mypy warning 2021-11-24 20:06:55 -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
b4d4877e07
Fix bugs in the tokenizer
- Fix bug where empty strings were not recognized
- Add an end index to the tokenizer's compile error
2021-11-12 09:42:48 -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
d511b3f1e3
lsp: Add code actions
"Did you mean" hints are automatically converted into code actions.
2021-11-11 22:59:49 -06:00
James Westman
d89f2356b4
Validate object types 2021-11-05 00:44:33 -05:00
James Westman
a0ba59af77
ci: Integrate coverage with GitLab CI 2021-11-04 00:19:07 -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
dfb09b9357
lsp: Implement semantic tokens 2021-11-01 23:55:26 -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
53ad4ec69d
ast: Separate validation from properties 2021-10-31 22:51:48 -05:00
James Westman
bfd9daf6a9
Reorganize the parser/AST code
The code is now organized by syntax: `menu {}` in one file, `style` in
another, etc. This should make it easier to add syntax in the future.
2021-10-31 21:42:41 -05:00
James Westman
dc7c0cabd8
Clean up AST code 2021-10-31 16:44:34 -05:00
James Westman
d7a8a21b8e
lsp: Add signatures to hover docs 2021-10-30 22:37:06 -05:00
James Westman
b2b50c6288
Improve completions
If the completion cursor is in the middle of an identifier, start the
completion matching before that token. GNOME Builder does this before
sending us a cursor position, but VS Code does not.
2021-10-30 22:37:06 -05:00
James Westman
54237d7976
Preserve child ordering in toplevel
The order of elements sometimes matters, so don't sort children by type.
2021-10-30 22:37:06 -05:00
James Westman
c79d8dc396
Better error handling for incomplete syntax 2021-10-30 22:37:05 -05:00
James Westman
c155ba7b15
Add layouts 2021-10-30 22:37:05 -05:00
James Westman
cc3ee76dc2
Add default values to AST constructors 2021-10-30 19:20:19 -05:00
James Westman
89ff88881b
ci: Fix dependencies 2021-10-30 18:49:38 -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
c576fdf211
docs: Add Setup page 2021-10-27 12:59:48 -05:00
James Westman
c443009261
Add batch-compile command
This makes it easier to use gtk-blueprint-tool from meson because you
only need one custom_target().
2021-10-27 12:40:10 -05:00
James Westman
69fbd07fac
fix type check 2021-10-27 12:39:40 -05:00
James Westman
c1ee4151d0
ci: Build and publish docs 2021-10-27 11:28:47 -05:00
James Westman
55e08e4f52
docs: Add examples 2021-10-27 00:31:49 -05:00
James Westman
f2f6bcc198
Run mypy in CI 2021-10-26 23:14:33 -05:00
James Westman
b9068e24ab
Fix type checker errors 2021-10-26 23:13:31 -05:00
James Westman
b387d4114f
Support C class names that ignore GIR
By writing `.MyAppComponent` instead of `MyApp.Component`, the compiler
will ignore GIR validation for that class and assume it's
application-defined.
2021-10-26 22:47:54 -05:00