Commit graph

2197 commits

Author SHA1 Message Date
Olivier Goffart
cbf252f73b Online editor: go back to hello world if no demo is selected 2020-10-12 12:25:34 +02:00
Olivier Goffart
0845b4ab85 Online editor: Add a timeout 2020-10-12 12:22:49 +02:00
Simon Hausmann
e374fd35c4 Ignore the generated pkg/ directory 2020-10-12 11:26:15 +02:00
Olivier Goffart
69b07eee53 Revert the changes to the hello world in the code editor
These were not meant to be commited
2020-10-10 15:46:38 +02:00
Olivier Goffart
e57554a71d Missing license header 2020-10-10 13:20:13 +02:00
Olivier Goffart
8ec820cb9f Online editor syntax highliting 2020-10-10 13:00:14 +02:00
Olivier Goffart
29f4910cbd Some changes to the online editor
- Set a small hello world by default
 - add a permalink
 - allow to load an URL
2020-10-09 13:14:30 +02:00
Olivier Goffart
18881cfcad Online editor don't ship with support for other languages 2020-10-09 12:48:56 +02:00
Simon Hausmann
67f387e628 Prepare for relative resource loading from the web
Pass the base url as path to the interpreter
2020-10-08 20:42:46 +02:00
Olivier Goffart
47ee896b57 Online editor: Ability to open any snippet passed in the query 2020-10-07 15:33:04 +02:00
Olivier Goffart
117e1d3389 Online-editor: Add a compilation button
Fixes #76
2020-10-07 15:12:38 +02:00
Olivier Goffart
f592a04f3d Online code editor: load the demo from github 2020-10-06 13:03:51 +02:00
Olivier Goffart
c9d60d3575 Online editor: clear errors 2020-10-06 11:50:49 +02:00
Olivier Goffart
1f50e8c85e Highlight the error in the online editor 2020-10-06 11:33:44 +02:00
Simon Hausmann
2041144f45 Fix a warning on start-up about freezing the UI
The console log would show

  "Could not create web worker(s). Falling back to loading web worker code
  in main thread, which might cause UI freezes. Please see
  https://github.com/Microsoft/monaco-editor#faq"

and

  "VM3793 simpleWorker.js:29 You must define a function
  MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker"

when loading. This is fixed by using the monaco editor webpack plugin, which
ensures that the workers are loaded via async script tags.
2020-10-06 10:21:15 +02:00
Simon Hausmann
94fcb725b4 Separate release and dev builds of the online editor
Let `npm run build` do a release build and `npm run start` be used for
development.
2020-10-05 16:45:29 +02:00
Simon Hausmann
79150a9b20 Apply the same license (check) as for .js files 2020-10-05 16:06:14 +02:00
Simon Hausmann
5d392db2cf Use the local wasm interpreter for the online editor 2020-10-05 15:38:07 +02:00
Simon Hausmann
f74ae174b6 Ported the online editor across into this repo
This now uses npm and webpack to pull in Monaco as external dependency.
2020-10-05 15:05:55 +02:00
Olivier Goffart
8134fe5088 Support for named type as property 2020-09-17 13:14:01 +02:00
Simon Hausmann
ff9c118e07 Propagate warnings to the end of the compilation step and print them 2020-09-04 20:34:20 +02:00
Olivier Goffart
f1ad78bc25 Qt style support for the rust backend
Need to set the SIXTYFPS_STYLE=native env variable while compiling
2020-09-01 12:25:11 +02:00
Olivier Goffart
6d41b1981d Move the Qt style to a new backend: the Qt backend
Currently the Qt backend still redirect everything to the GL backend,
but the goal is to use QPainter and QWindow

This also adds a "default" backend, whose goal is to select the proper
backend at compile time
2020-08-31 17:26:04 +02:00
Olivier Goffart
d28e34eef6 Don't enable the display diagnostic feature in the interpreter 2020-08-26 19:12:28 +02:00
Olivier Goffart
58cdaeb8dd Update license header to mention that commertial option are available 2020-08-26 13:23:42 +02:00
Olivier Goffart
ea1f215367 Some polishinbg of the .toml files
- Give all the sixtyfps-* create a 0.0.1 version
 - Make sure that the internal dependences are using the exact same version
   (so "=0.0.1")
 - Add the description/homepage/repository fields in the .toml files
 - Set publish=false  to crates that are not meant to be published on crates.io
2020-08-24 16:28:11 +02:00
Simon Hausmann
7f1d9f5252 Commit correct license tags to Cargo.toml
For now that's GPL-3.0 only, but this can be changed :-)
2020-08-18 10:12:59 +02:00
Simon Hausmann
2823f32692 Apply license headers to all non-binary/non-json sources 2020-08-17 17:55:20 +02:00
Simon Hausmann
aafb96cb93 Get rid of abi::datastructures::WindowProperties
Instead, pass a reference to the root item when mapping the window,
at which point we can downcast to the new Window item. If we have one,
then we'll read its width/height (for initial values) and install
bindings to keep them up-to-date.
2020-08-12 09:44:42 +02:00
Simon Hausmann
f2eec61968 Add a window to the top-level component
This means that we always have a window and for the C++
API we don't require this ComponentWindow use anymore.
2020-08-11 13:38:38 +02:00
Simon Hausmann
6c5d423cd4 Rename sixtyfps_corelib to sixtyfps-corelib 2020-08-03 10:01:58 +02:00
Simon Hausmann
09cae799d3 Fix return type of compile_syntax_node
All call sites are only interested in the root component, so might
as well return that.
2020-07-28 09:21:32 +02:00
Olivier Goffart
d77d7cddc3 The viewer can use the Qt style with --style qt 2020-07-24 18:06:55 +02:00
Simon Hausmann
a9b0d84a72 Improve source file propagation
Instead of doing the SyntaxNodeWithSourceFile construction as late as
possible (in Document::from_node), we can do it as early as possible.
That'll reduce the chances of missing out the source file and prepares
for dependency loading just based on a SNWS :)

This also makes the source_file optional in the SNWS, but that's
consistent with what the diagnostics expect.
2020-07-22 16:10:02 +02:00
Simon Hausmann
2f0718bffa Add include path options to the viewer and compiler
This allows specifying additional component locations. It works for
simple structs, but not yet for more complex types due to a bug yet to
be fixed :-)
2020-07-17 15:26:35 +02:00
Simon Hausmann
732a56259f Simplify compilation call sites further
Move run_passes into the library compilation function. That way the
FileDiagnostics are created by the parser, can be passed on to the library
compilation function and after that we don't need them anymore and can
replace them with future BuildDiagnostics for example.
2020-07-16 18:53:59 +02:00
Simon Hausmann
c3aae7648a Further simplify compilation call sites
Remove the need to construct the type registry at all the call sites by
offering a compile_syntax_node function in the compiler library.
2020-07-16 09:25:26 +02:00
Simon Hausmann
64a4e749b7 Simplify path setup in the Diagnostics
Pass the path to the parse function, as that's easier at most call sites.
Also offer a convenience parse_file function.
2020-07-15 19:21:25 +02:00
Simon Hausmann
ddc4fb6e1f WIP: window size
Just playing around with propagating the width/height of the window.
2020-07-15 17:52:14 +02:00
Simon Hausmann
8e047d3761 Simplify compiler diagnostics API
Don't require the callers to hold on to the source code string until an
eventual diagnostics code path is hit. Instead it turns out it's
simpler to let the parser consume the source code as string, where
internally after tokenizing it can be moved into the diagnostics and
from there into the code map if needed.

There are a few places where we now clone the source code, but that's
only in cases where we also extract stuff separately (test code) or the
syntax updater.
2020-07-15 17:34:11 +02:00
Simon Hausmann
5b43962bb2 Split up TypeRegistry
For a .60 files the locally defined components are now stored in a separate
per-document TypeRegistry instance that falls back to the global registry
for lookups.
2020-07-15 13:09:43 +02:00
Olivier Goffart
952ddda7c4 Force duration to have an unit 2020-07-14 16:18:12 +02:00
Simon Hausmann
ba15a768d6 Add the ability to output rust code to the compiler cli 2020-06-29 09:00:35 +02:00
Simon Hausmann
9df888578f Expose a ComponentWindow type in Rust
This comes with a factory function that re-directs to the backend and a
run member function to replace
sixtyfps_runtime_run_component_with_gl_renderer. For now it's all still
hidden in the generated run() method.
2020-06-17 19:15:18 +02:00
Olivier Goffart
e95d7da888 Parser: typed syntax node accessor 2020-06-11 17:50:28 +02:00
Olivier Goffart
300cb26208 Rename the interpreter crate to sixtyfps_interpreter 2020-06-10 08:41:49 +02:00
Simon Hausmann
1404cb73ae Add support for embedding resources in the rust generator
This is relatively straight-forward via a pass in the compiler to
collect the resources to embed and then use include_bytes! (once per
resource).

What's really annoying is that the rust resource enum can't store a
&'static [u8] because cbindgen doesn't represent that, probably because
the slice representation isn't guaranteed to stay as it is. So instead
this, for now, uses raw pointers.
2020-06-09 22:54:29 +02:00
Simon Hausmann
afd7319ae5 Rename corelib to sixtyfps_corelib
This is consistent with the other packages and since corelib is now also
a cdylib, libsixtyfps_corelib.so looks much better than libcorelib.so
:-)
2020-06-09 13:27:18 +02:00
Olivier Goffart
3651885d87 Move the compiler binary in tools/
And rename sixtyfps_compiler to sixtyfps_compilerlib
2020-06-05 09:23:38 +02:00
Simon Hausmann
a2c5e66bee Rename gl renderer backend package
Use a full prefixed name (sixtyfps_rendering_backend_gl) to ensure that
the created static lib can be installed without file conflicts (libgl is
not a unique name).
2020-06-04 15:30:41 +02:00