James Westman
31e37ca258
decompiler: Support GtkFileFilter tags
2021-12-14 20:25:28 -06:00
Tijder
168b87bb4a
Add bind for bidirectional
2021-12-14 19:59:09 +00:00
James Westman
6800601d94
docs: Fix inline code
...
I keep forgetting this isn't markdown
2021-12-06 12:26:34 -06:00
James Westman
d23c06b8fd
lsp: Fix text encoding issue
...
Content-Length is the number of bytes in the message, but the JSONRPC
code was interpreting it as a number of characters (when both reading and
writing), which caused it to fail on multibyte UTF-8 characters.
2021-12-06 11:46:33 -06:00
James Westman
08f7a4ebbd
Update completion snippets
2021-12-06 10:26:53 -06:00
James Westman
5ac1c85082
remove accidentally committed file
2021-12-04 22:31:10 -06:00
James Westman
1f677725d8
interactive_port: Ignore "_build" and "build" dirs
...
Fixes #15
2021-12-04 19:14:04 -06:00
James Westman
d0cf13b2c4
Fix link
2021-12-02 17:47:24 -06:00
James Westman
8e4433a487
Create an interactive porting tool
...
`blueprint-compiler port` interactively ports a project to blueprint.
It will create the subproject wrap file, add it to .gitignore, decompile
your GtkBuilder XML files, emit code to copy and paste into your
meson.build file, and update POTFILES.in.
It can't quite handle all of the features the forward compiler can, so
it will skip those files.
2021-12-01 23:38:28 -06:00
James Westman
84dfe74755
Fix rename
2021-12-01 23:38:08 -06:00
James Westman
544d152fb6
Rename to blueprint-compiler
...
This isn't an official GTK project so better to avoid using "GTK" in the
name.
2021-12-01 15:35:58 -06:00
James Westman
be3c0de670
Remove some semicolons
...
Remove semicolons everywhere except 'using' statements, properties,
attributes, and signals.
This should be the last breaking change to the syntax.
2021-11-30 21:04:35 -06:00
James Westman
878ff1b37b
Change menu item shorthand syntax
...
I'm changing the syntax a bit because I want it to be more general in
the future.
2021-11-28 23:01:51 -06:00
James Westman
2130c78da9
Accept string literals for parseable types
...
GtkBuilder knows some class-specific parsing methods, so we can use
string literals for these types and pass them straight to the XML.
2021-11-25 18:43:37 -06:00
James Westman
3804d91118
tokenizer: Fix multiline comment regex
2021-11-25 18:43:33 -06:00
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