Commit graph

137 commits

Author SHA1 Message Date
James Westman
b915c227f8
Fix type declaration 2022-11-26 17:10:53 -06:00
James Westman
86b07ef0ae
Fix new mypy errors 2022-11-26 16:22:34 -06:00
James Westman
0b8012b8e1
Support Python 3.9
Remove the '|' syntax for type unions, since it's a 3.10 feature, and
set mypy to check with version 3.9.
2022-10-27 13:16:18 -05:00
FeRD (Frank Dana)
d6c6a66c15 port: Fix directory recursion 2022-10-18 20:49:16 +00:00
James Westman
a8a209550b
typelib: Fix big-endian architectures 2022-10-18 15:04:55 -05:00
James Westman
a24f16109f
Separate output into its own module 2022-10-15 19:40:47 -05:00
James Westman
8cf793023d
Fix crash in language server 2022-10-15 11:47:42 -05:00
James Westman
b3783b9c6a
lsp: Log to stderr rather than a file 2022-10-15 11:26:18 -05:00
James Westman
447785ec8c language: Remove inline menus
Inline menus didn't work anyway--menus have to be referenced by ID
(though, curiously, you *can* put the <menu> within the <property> tag
and immediately reference it--but that's a hack, and not what
blueprint-compiler was doing).
2022-10-14 22:12:56 -05:00
James Westman
c0c40b1577
language: Support boxed types and GType
- Add support for type checking boxed types
- Remove support for converting string and number literals
- Add the `typeof()` operator for GType literals
2022-10-06 13:03:33 -05:00
Sonny Piers
50db59f2d2 lsp: Report error hints 2022-07-25 00:52:05 +02:00
James Westman
30f0deea34
Exit with error code when a bug is reported 2022-07-23 15:06:38 -05:00
James Westman
08da6f79c7
Fix referencing template by ID 2022-07-16 21:16:45 -05:00
James Westman
664fa2250b
Validate that an object can have children
Fixes #32.
2022-07-09 16:40:02 -05:00
James Westman
0a0389b1f8
grammar: Create an AST node for type names 2022-07-09 16:05:10 -05:00
Sonny Piers
2da6be7618 lsp: Fix crash when import version missing
The issue is specific to the language server, since it's trying to use
an AST that contains errors. The test would not fail but was added
anyway.
2022-07-09 20:00:10 +00:00
James Westman
b9fdc5a5f1
Fix action widgets in templates
Fixes #69.
2022-07-09 14:48:33 -05:00
James Westman
68610a7dba
typelib: Use GIRepository to find typelib path 2022-06-28 23:58:48 -05:00
James Westman
c5f2e4ed4b
gir: Gracefully handle missing .gir files
They aren't required for compilation anymore, and not being able to show
documentation on hover is probably not worth crashing the language
server over.
2022-06-25 00:15:20 -05:00
James Westman
06f54c8ff8
Use typelib instead of XML
For normal compilation, use .typelib files rather than .gir XML files.
This is much faster.

Rather than using libgirepository, which would try to actually load the
libraries, we use a custom parser.

The language server will still read XML because it needs to access
documentation, which is not in the typelib, but that's generally fine
because it's a long lived process and only has to do that once.
2022-06-25 00:15:20 -05:00
James Westman
75475d1a45
tokenizer: Fix number parsing (again) 2022-06-25 00:08:24 -05:00
James Westman
4fefa0bd73
Add lookup expressions 2022-06-24 23:16:15 -05:00
James Westman
c094743e84
Fix compiling empty file 2022-06-17 11:12:21 -05:00
James Westman
7eb0c1ae0d
decompiler: Fix Adwaita version 2022-06-11 02:15:56 -05:00
James Westman
4b7fda4f43
action widgets: Fix grammar 2022-06-08 23:55:22 -05:00
James Westman
d319cb11c1
Use the new duplicate validator for templates 2022-06-08 23:10:27 -05:00
James Westman
22edcf0c67
Remove obsolete commented-out code 2022-06-08 23:08:33 -05:00
James Westman
aca8dd794b
lsp: Set diagnostic relatedInformation 2022-06-08 23:08:15 -05:00
James Westman
d987b15374
Add references to error messages
That way, errors can reference other parts of the code, like duplicate
properties.
2022-06-08 23:08:15 -05:00
James Westman
824476bda1
Add errors for duplicate properties and blocks 2022-06-08 23:08:15 -05:00
James Westman
f18c8b7a2d
port: Lock version number
When writing the subproject file, set the tag to the current version if
known.
2022-06-08 22:25:22 -05:00
James Westman
65691dfac6
Include version number in lsp and cli
Fixes #61.
2022-06-08 22:25:22 -05:00
James Westman
cebd9ecadc
Remove references to gtk-blueprint-tool
It's blueprint-compiler now
2022-05-27 12:25:56 -05:00
James Westman
42aa91d4d9 Detect when gobject-introspection is missing
Instead of a compiler bug error, show a proper error message that asks
whether gobject-introspection is installed.

Fixes #58.
2022-05-27 16:21:18 +00:00
James Westman
d09ee2a62b
tokenizer: Fix operator tokenization 2022-04-30 16:41:46 -05:00
James Westman
0da0c9399f
xml: Convert GirType to type name automatically
Makes some of the emit_xml code a bit simpler.
2022-04-30 16:41:45 -05:00
James Westman
f479e2bac5 tokenizer: Fix number parsing 2022-04-28 23:53:05 -05:00
James Westman
99e428d93c validation: Disallow instantiating abstract classes 2022-04-28 23:35:34 -05:00
James Westman
f78478bea1 validation: Writable/construct-only properties
Add two new errors, one for non-writable properties and another for
binding construct-only properties.
2022-04-28 22:52:30 -05:00
James Westman
4e2501c7d7
Fix number parsing 2022-04-18 20:22:29 -05:00
James Westman
e76bff9291
Fix crash in parser
The Until parse node would return True if it reached EOF, which was not
correct and could cause other parse nodes to run past the end of the
token list and crash.
2022-04-18 17:34:02 -05:00
James Westman
417f163a5a
Fix crash in flags value for unchecked classes 2022-04-18 15:42:55 -05:00
James Westman
3f8b38d219
Fix crash in action widget syntax 2022-04-18 15:35:19 -05:00
James Westman
4cf966eafa tests: Add GTK directive error tests 2022-03-28 14:38:05 -05:00
James Westman
f197e68589 Use cached_property instead of a custom decorator 2022-03-28 14:38:05 -05:00
James Westman
a4ffdd944f language: a11y: Fix property names
Blueprint uses underscores in property/state/relation names, but
GtkBuilder expects dashes because it uses the glib names from the
GtkAccessible* enums.
2022-03-28 14:38:05 -05:00
James Westman
d73c83aa63 decompiler: Allow and ignore <placeholder/>
Some existing files contain <placeholder/> tags, which should be
permitted but ignored.
2022-03-28 14:34:27 -05:00
James Westman
3f37380c25
tests: Test that docs & completions don't crash 2022-03-19 18:16:25 -05:00
James Westman
6576e02837
lsp: Report warnings correctly
Previously all diagnostics had the "error" severity, now warnings are
correctly reported as such
2022-03-15 23:06:45 -05:00
James Westman
93f2a27e35
completions: Add Gtk class completions
Fixes #49
2022-03-12 18:00:01 -06:00