James Westman
a4b31f2cb0
Add more tests
2021-11-04 00:05:38 -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
408f3ebce5
lsp: Support completions
2021-10-30 17:49:14 -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
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
James Westman
b00401d53f
Add issue tracker link to compiler bug message
2021-10-26 10:54:32 -05:00
James Westman
bef92f2879
Add support for CSS styles
2021-10-23 00:59:10 -05:00
James Westman
75a05fe5ce
Remove an unused file
2021-10-23 00:35:24 -05:00
James Westman
15591cda45
Move tests out of main package
2021-10-22 23:35:29 -05:00
James Westman
b3c28ce3d4
Use "using" instead of "gtk" and "import"
...
- Having one keyword for both is less syntax to remember
- I might use "include" as a keyword in the future, which would make
"import" confusing, so use "using" instead
2021-10-22 22:31:26 -05:00
James Westman
78a9481631
lsp: Implement textDocument/didClose
2021-10-22 22:01:40 -05:00
James Westman
572db893d9
Remove @ directives
...
I liked how they made keywords stand out, but they're kinda ugly and I
think syntax highlighting will do a better job anyway.
2021-10-22 21:57:37 -05:00
James Westman
b553fc357c
Add a basic language server
2021-10-22 21:47:05 -05:00
James Westman
e553e5db29
Add GObject Introspection integration
...
- Parse .gir files
- Validate class, property, and signal names
2021-10-22 21:14:30 -05:00
James Westman
2ad2f1c54a
Add CI
2021-10-18 12:46:49 -05:00
James Westman
d98b7d5891
Add tokenizer tests
2021-10-18 12:37:05 -05:00
James Westman
cf2f5215c8
Add setup.py
2021-10-17 23:45:24 -05:00
James Westman
3a4b7c6dc3
Initial commit
2021-10-17 15:26:34 -05:00