Olivier Goffart
0968880ea9
Fix panic when parsing invalid states
2021-05-12 08:50:39 +02:00
Olivier Goffart
7293129fe1
Simplify a loop
...
Following the suggestion from Simon's review
2021-05-11 14:59:57 +02:00
Olivier Goffart
6530518dd6
Some fixups after review
2021-05-11 14:59:57 +02:00
Olivier Goffart
203c27c5e3
Properly visit the repeater_index expression in a Expression::LayoutCacheAccess
2021-05-11 14:59:57 +02:00
Olivier Goffart
ba1aff84d0
Layout refactoring: C++ part
2021-05-11 14:59:57 +02:00
Olivier Goffart
539a78e807
Rust: implement enough of PathLayout so that the tests passes
...
(does not implement the repeater case)
2021-05-11 14:59:57 +02:00
Olivier Goffart
f99d7de5ad
Fixup layout in rust
2021-05-11 14:59:57 +02:00
Olivier Goffart
b01884f3b9
Layout refactor: do the rust part
2021-05-11 14:59:57 +02:00
Olivier Goffart
f6b71b36a7
Interpreter: fix layout_info for repeated component
...
We need to look at the layout_info_prop of the root element
2021-05-11 14:59:57 +02:00
Olivier Goffart
8da6c8cdb3
Lower PathLayout
...
As part of the layout refactoring, most of the path layout lowering
was gone. Add it back
2021-05-11 14:59:57 +02:00
Olivier Goffart
e7d7589538
Decent default binding for the materialized constraints
2021-05-11 14:59:57 +02:00
Olivier Goffart
a990e01cd8
Apply the layout restrictions to the parent element
2021-05-11 14:59:57 +02:00
Olivier Goffart
81473c2541
Remove implicit_size from the Item vtable
...
Use the preferred size in the layouting_info instead.
2021-05-11 14:59:57 +02:00
Olivier Goffart
c6103aa9ce
Fix image geometry in layout
...
since the layout now sets an explicit width and height, we check the priority
to see the difference between something explicitly set, and something set by the layout
2021-05-11 14:59:57 +02:00
Olivier Goffart
f06bf8d5a7
Fix repeater in box layout
2021-05-11 14:59:57 +02:00
Olivier Goffart
a43c2bb50a
Component pretty print with indentation
2021-05-11 14:59:57 +02:00
Olivier Goffart
b463e3cca4
WIP refactor layout
...
This commit add support for the box layout
2021-05-11 14:59:57 +02:00
Olivier Goffart
21a80f4562
WIP: Layout refactoring
...
Instead of using a solve_layout function in the component, use property to hold
a layout cache.
This commit only implement the GridLayout and only the interpreter part
2021-05-11 14:59:57 +02:00
Simon Hausmann
5d6c8e7ee1
Make the export of the vtable getter functions conditional
...
We only need the create these getter functions and export them on Windows
for ffi enabled builds.
2021-05-11 08:03:50 +02:00
Simon Hausmann
c6a4841cd4
Simplify item vtable retrieval in C++
...
Use a macro instead of a template function to make the getter vs. global
symbol choice.
2021-05-11 07:55:51 +02:00
Simon Hausmann
28701d2f90
Fix item vtable usage on Windows
...
The item tree is intended to be initialized with pointers to the item
vtables, which are implemented using data relocation records that
resolve to the symbols exported by the sixtyfps_cpp shared library.
On windows, according to
https://docs.microsoft.com/en-us/cpp/c-language/rules-and-limitations-for-dllimport-dllexport?view=msvc-160
such data relocations are not supported, so this patch implements the
fallback through getter functions.
2021-05-10 22:54:06 +02:00
Simon Hausmann
4198513832
Add a dummy indirection in C++ for the item vtable access
...
This will allow for a compile-time decision in the future whether
to use the vtable symbol or getter function.
2021-05-10 22:54:06 +02:00
Olivier Goffart
d7d9badc93
Fix panic when using some value from an invalid component in a imported file
2021-05-07 18:28:23 +02:00
Olivier Goffart
e074d7ce89
Fix panic when aliases are merged with property in another component
2021-05-07 17:15:45 +02:00
Olivier Goffart
1106f6f201
Fix conversion of some units
2021-05-07 17:13:38 +02:00
Olivier Goffart
e163794549
Fix panic when a non-element type is used as an element
2021-05-07 15:36:10 +02:00
Olivier Goffart
51836a9457
Attempt to fix a stack overflow in debug
...
The function that initialize all the bindings is huge, and its framz size is
too big. Put each binding evaluation in its own function seems to help
to avoid the stack overflow
Hopefully fixes #133
2021-05-05 22:01:06 +02:00
Simon Hausmann
ecaa55832f
Use hover for the ugly style combo box as well
...
This appears to be more consistent with how most combo boxes behave
2021-04-30 15:14:10 +02:00
Olivier Goffart
a677cb7402
Fix the ugly list view
2021-04-27 11:29:43 +02:00
Simon Hausmann
7240f5c5e9
Fix loading of relative paths on Windows
...
We use std::fs::canonicalize() and that may produce paths like
`\\\\?\\C:\\foobar\\baz.60`
where the leading `\?` disables all parsing.
When `baz.60` imports another `.60` file using a relative path `../fob.60`,
we call `Path::join()`, which really just appends strings, producing
``\\\\?\\C:\\foobar\\../fob.60`
When calling `canonicalize()` again on this path, the function fails,
because any parsing was disabled,
so neither the forward slash nor the .. are resolved.
So while the forward slash handling could be solved with `components()` we
still run into
https://users.rust-lang.org/t/unable-to-parse-relative-directories-in-windows-unc-paths/8164
To circumvent all this, use the dunce crate to canonicalize in a way on Windows
that avoids UNC paths.
2021-04-27 11:02:23 +02:00
Olivier Goffart
0083bd8d23
Fix return statement in the C++ generated code
...
The template parameter of the ReturnWrapper could be deduced to
a wrong type (eg: int instead of float) so we must add it explicitly
2021-04-27 10:17:09 +02:00
Olivier Goffart
3380383787
Bump version number
...
(Does not include docs and README yet)
2021-04-26 13:16:48 +02:00
Olivier Goffart
f620351cbf
Go to definition of structs
...
Also add the struct in the outline
2021-04-24 15:06:58 +02:00
Olivier Goffart
847f3b26e4
Hide internal type in auto-completions
2021-04-23 15:06:37 +02:00
Olivier Goffart
14772a9b58
Handle reduction of logical lenght when the units are more complex
2021-04-21 17:15:19 +02:00
Olivier Goffart
3b73c96c37
Adjust the syntax_tests to the change of length
2021-04-21 17:15:19 +02:00
Olivier Goffart
91ed04a72c
Make length
(still the default for all property) be the logical length
...
And a new `physical_length` is now the physical_length unit
Note: this does not change the runtime part yet
2021-04-21 17:15:19 +02:00
Olivier Goffart
7ae850d564
Rename Type::Length -> Type::PhysicalLength
2021-04-21 17:15:19 +02:00
Olivier Goffart
66e44d3467
fix test compilation
2021-04-19 08:06:20 +02:00
Olivier Goffart
59654472d2
LSP: color providers
2021-04-18 23:27:14 +02:00
Olivier Goffart
3f3a4c4ec9
Store the actual property declaration node
...
so that the goto definition can go to the right location
2021-04-18 14:19:38 +02:00
Olivier Goffart
59695bb3cf
Fix cargo fmt
2021-04-17 09:34:47 +02:00
Olivier Goffart
b94ea38965
LSP: completion in second level of expressions
2021-04-17 08:31:17 +02:00
Olivier Goffart
7d6bcc40be
LSP: Use the recently refactored lookup system
2021-04-16 23:41:59 +02:00
Olivier Goffart
069b5aa1a1
Refactor lookup
...
Share some code so we can eaily list all possibilities and we will use that
in the LSP for the completion
2021-04-16 23:41:59 +02:00
Olivier Goffart
ad298a309f
WIP: LSP autocompletion of expression
2021-04-16 23:41:59 +02:00
Olivier Goffart
702b3fc67a
Jump to definition of a property
2021-04-16 08:59:33 +02:00
Olivier Goffart
87f4a363cf
Add support for opacity property
2021-04-15 15:05:09 +02:00
Olivier Goffart
e34b88d658
Fix panic in invalid export
2021-04-15 11:46:05 +02:00
Olivier Goffart
49477724c6
Fix panic when invalid property
2021-04-15 11:24:49 +02:00