James Westman
ee5f32622f
reorganization: Finish moving parsing and AST
2022-01-26 22:37:51 -06:00
James Westman
8f9de81e24
reorganization: Move hooks to common.py
...
This allows them to be referenced before they are filled, helping avoid
circular dependencies.
2022-01-26 14:50:36 -06:00
James Westman
34f525beaa
reorganization: Rename extensions -> language
...
I want all language elements to be defined in the same folder, rather
than having the "core" language split by parsing/AST/completions and the rest
split by language element.
2022-01-26 14:10:39 -06:00
James Westman
76f7befd68
parser: Shorter code for groups
...
Add a "grammar" property on AstNode types so they can be used in grammar
expressions as groups
2022-01-24 14:43:00 -06:00
James Westman
8d587b62a0
parser: Simplify parser construction
...
- Replace several different parse nodes with Match, which matches the
exact text of a token but not the token type
- Allow arrays to be used in place of Sequence
2022-01-24 14:42:44 -06:00
Gleb Smirnov
ad6a2cf538
docs: add docs for binding flags
2022-01-24 20:35:31 +00:00
Gleb Smirnov
f8c96abfc5
tests: add test for inverted
binding flag
2022-01-24 20:35:31 +00:00
Gleb Smirnov
e4283ed0c1
fix: replace non-existing bind flag with existing one
...
Replace non-existing `after` binding flag with `invert-boolean` flag. Use `inverted` name for convenience.
2022-01-24 20:35:31 +00:00
Gleb Smirnov
cc8a555f97
tests: add tests for internal children
2022-01-22 09:43:14 +03:00
Gleb Smirnov
8a545d596b
feat: add support of internal children
2022-01-22 09:42:49 +03:00
Gleb Smirnov
1bd7c37061
fix: replace underscore with dash in XML attributes
2022-01-22 09:34:41 +03:00
Gleb Smirnov
98bb9e3008
fix: don't check on confusing object ID in signal node
2022-01-17 05:37:17 +00:00
Gleb Smirnov
c0c4ae3fc9
docs: add example for signal's object attribute
2022-01-17 05:37:17 +00:00
Gleb Smirnov
492b73bc47
tests: add tests for signal's object attribute
2022-01-17 05:37:17 +00:00
Gleb Smirnov
4d3c2569c4
decompiler: add support for signal
's object
attribute
2022-01-17 05:37:17 +00:00
Gleb Smirnov
bce852020c
feat: add support for signal
's object
attribute
...
Closes a half of #26
2022-01-17 05:37:17 +00:00
James Westman
8ba4742efe
ci: Add regression testing
...
Fixes #19
2022-01-16 22:34:36 -06:00
James Westman
a74779326b
ci: Use a custom image
...
Use a custom image for CI to reduce build times.
2022-01-16 22:02:00 -06:00
Gabriele Musco
69d00357da
Add readme section about editor plugins, with both vim syntax highlighting plugins listed
2022-01-17 03:14:09 +00:00
James Westman
6b78338d1a
Make template parent optional
...
Not recommended, since you lose some type checking.
2022-01-16 21:08:16 -06:00
James Westman
1897478480
tests: Exclude lines from coverage
...
Exclude things like "raise NotImplementedError" and compiler bug
handlers.
2022-01-16 20:59:11 -06:00
James Westman
85150d397b
gir: Fix assignable_to for interface implementations
...
Part of #29
2022-01-11 22:37:24 -06:00
James Westman
0e3280fcc5
docs: Link to vim syntax highlighting plugin
2022-01-11 22:22:22 -06:00
James Westman
c1dadff50a
docs: Add a homepage for the documentation
...
Fixes #20
2021-12-17 00:24:37 -06:00
James Westman
8e1a9f72dd
parser: Merge consecutive "Unexpected tokens" errors
...
Fixes #24
2021-12-16 23:18:31 -06:00
James Westman
5b76a3b8dd
Clean up some unused code
2021-12-16 22:08:04 -06:00
James Westman
5a4cf58e0e
docs: Add widget-specific items
2021-12-15 11:56:33 -06:00
James Westman
34e78de338
decompiler: Support GtkFileFilter tags
2021-12-15 11:32:33 -06:00
James Westman
3ab2fbe5a0
yet another docs fix
2021-12-14 20:26:37 -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