Commit graph

167 commits

Author SHA1 Message Date
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
James Westman
8ef65196f3
Change property binding syntax
Use `<name>: bind <value>;` instead of `<name> := <value>;` for clarity
2021-10-26 10:54:32 -05:00
James Westman
55a117a5b7
lsp: Show docs on hover
Also:
- Install the script to <prefix>/bin
- Fix a bug in XmlReader that would cause "uninteresting" tags to not be
  fully ignored
- Other minor improvements
2021-10-26 10:54:32 -05:00
James Westman
8fc0efb642
lsp: Code cleanup 2021-10-26 10:54:32 -05:00
James Westman
49658c634e
Support property binding flags 2021-10-26 10:54:32 -05:00
James Westman
7cf3c0bfb1
Support menus and object properties 2021-10-26 10:54:32 -05:00