James Westman
98ba7d467a
Improve expression type checking
2023-03-12 16:12:16 -05:00
James Westman
b636d9ed71
Fix bugs in number literals
2023-03-12 14:58:35 -05:00
James Westman
fad3b35531
types: Remove g* type names
...
They aren't used in GIR parsing anymore since we use typelibs, and
blueprint files should use the non-prefixed names.
2023-03-11 21:37:26 -06:00
James Westman
0f5f08ade9
Fix flag syntax
...
Unlike commas, no trailing "|" is allowed.
2023-03-11 21:24:52 -06:00
James Westman
8874cf60b3
parse_tree: Remove Pratt parser
...
It isn't actually needed; the way we parse expressions as a prefix
followed by zero or more suffixes is enough.
2023-03-11 21:05:27 -06:00
James Westman
9fcb63a013
typelib: Fix crash when handling array types
2023-02-16 20:43:17 -06:00
James Westman
1df46b5a06
Change the way values work
...
Change the parsing for values to make them more reusable, in particular
for when I implement extensions.
2023-01-12 15:49:19 -06:00
James Westman
6938267952
Add properties to AST types
...
I want to have a cleaner API that relies less on the specifics of the
grammar and parser.
2023-01-12 15:49:19 -06:00
James Westman
0b7dbaf90d
Add some type hints
2023-01-12 15:49:19 -06:00
James Westman
b6ee649458
Simplify error & warning handling
2023-01-12 15:49:19 -06:00
James Westman
122b049ce9
language: Use new extern syntax in signal handlers
2023-01-12 15:49:19 -06:00
James Westman
0b402db4d5
language: Change extern type syntax
...
Use a '$' instead of a '.' to indicate a type provided in application
code.
The reason for the change is to have a consistent "extern" symbol that
isn't widely used elsewhere and isn't ambiguous in expressions.
2023-01-12 15:49:19 -06:00
James Westman
be284de879
parse_tree: Fix Warning node
2023-01-12 15:49:18 -06:00
James Westman
7ef314ff94
Fix diagnostic location reporting
...
Text positions at the beginning of a line were being shown on the
previous line.
2023-01-12 15:49:15 -06:00
Sonny Piers
40f493b378
cli: Print compile errors to stderr
2023-01-05 12:30:26 +01:00
James Westman
59aa054c4c
language: Add closure expressions
2022-12-25 14:04:41 -06:00
James Westman
5cf9b63547
language: Add cast expressions
2022-12-25 14:04:40 -06:00
James Westman
2033bd9e16
types: Add UncheckedType
...
This allows us to remember information about an external type, such as
its name, while still marking it as unchecked.
2022-12-25 14:04:36 -06:00
Sonny Piers
f7aa7d0be2
lsp: Support change events with no range
...
range is optional
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocumentContentChangeEvent
2022-12-25 18:09:57 +01:00
James Westman
6c67e1fc5a
xml: Fix flags and enums
...
GtkBuilder XML uses enum nicknames, full names, or integer values, but
we accept GIR names, so passing those through doesn't work if the name
has an underscore (which traditionally turns into a dash in the
nickname). Avoid the problem by always writing the integer value of the
enum member.
2022-12-19 15:15:25 -06:00
James Westman
51d8969ced
Fix menus
...
- Menus require an ID
- The top level menu block can't have attributes
2022-12-19 15:15:25 -06:00
James Westman
8fee46ec68
Format using black
2022-12-19 11:52:59 -06:00
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