Commit Graph

5473 Commits

Author SHA1 Message Date
Michał Wawrzyniec Urbańczyk
175212bf4c
File Manager Client Libary for Rust (#454)
ref #423
2020-01-25 02:38:59 +01:00
Ara Adkins
053df2ac2b
Upgrade the graph macros (#456) 2020-01-24 18:56:52 +00:00
Maciej Mikołajek
222b132aee Enso-Doc: Changes to style & HTML generator (#428) 2020-01-24 03:44:44 +01:00
Marcin Kostrzewa
3b29bc3483 Add value caching for nodes (#438) 2020-01-22 17:04:55 +00:00
Paul Kapustin
b2edfbbc28 Minor language improvements (https://github.com/enso-org/ide/pull/120)
Original commit: 2696f77d04
2020-01-22 16:01:11 +01:00
Wojciech Daniło
22785293c2 Renderpasses (https://github.com/enso-org/ide/pull/114)
Original commit: 25bb702b48
2020-01-22 15:38:24 +01:00
Marcin Kostrzewa
e80667a487
Function call instrumentation (#433) 2020-01-21 15:01:52 +01:00
Danilo Guanabara
4fb53686ad Animation Manager (aka EasingAnimator) (https://github.com/enso-org/ide/pull/108)
* HTMLScene and HTMLObject implementation

* Added HTMLRenderer and Camera objects

* Adding rlib as crate-type to make basegl available in tests

*  HTMLRenderer tests and code cleanup

* Fixed transformations and adapted Quaternion euler transformation order from XYZ to YXZ (like threejs)

* Added knowledge comments

* Recovering original lib.rs (with world demo)

* Added shrinkwraprs

* Formatted files

* Improved opt_vec test coverage

* Fixes based on clippy and rustfmt

* Remove unused WeakSet :)

* Added documentation

* Improved HTMLObject::from_html_string and beautified the code fmt

* Created StyleSetter and AttributeSetter to deal with panics

* Fixed code chars limits

* Matrix code cleanup and more code style guidelines fixes

* More alignment fixes

* Some more fixes and refactoring

* Refactored IntoCSSMatrix

* Refactoring

* Removed examples/02-html

* More refactoring

* Derived rendering structs from Debug

* Refactoring (https://github.com/enso-org/ide/pull/50)

* Comments on HTMLRenderer tests

* Removed unwanted console_log

* Recovered missed css matrix3d code

* Added  attribute to invalid doc codes

* Clippy lints fixes

* Fixed function access

* Added AnimationFrameLoop

* Custom web benchmarks implementation

* Added #[web_test] and #[web_bench] procedural macros

* Added documentation

* Lints

* Removed unused benchmark

* Removed unused test

* HTMLRenderer optimizations ;)

* resize_observe should return the index

* ResizeObserve for Scene & HTMLScene

* Lints

* Using array.join

* Added test scenario where OptVec has empty indices

* Made HTMLScene.objects private and provided accessors to it

* HTMLScene properties renaming

* Added unit test for Matrix4 memory layout

* Renamed packages author to Enso Team

* Improved benchmark readability

* Made IntoFloat32Array trait safe

* Refactored HTMLRenderer

* Lints

* Better code style

* Qualified Float32ArrayView as unsafe

* Usage example for web_test

* Style fixes

* Scene::add_resize_callback abstraction

* Spacing

* Major refactoring!

* Some minor fixes

* Comments for IntoFloat32ArrayView usage

* Navigation without smoothed movement

* Intersection Observer and navigator impl

* Intersection Observer and navigator impl

* Navigator with orthographic projection

* Camera refactoring

* Removed unecessary source note now that the code is self explanatory

* Smoothed camera navigation

* Refactored event_handler and navigator

* Linter fixes

* Fixed invalid_container test

* Included MouseEvent in system::web's Cargo.toml

* Code cleanup (unwraps refactoring) and documentation

* Adding Event and MouseEvent to basegl-system-web

* Added EventTarget to basegl-system-web

* Fixed navigation test

* Small fixes from review feedback

* Small fixes from review feedback

* Introduction of MouseManager

* Better physics with PhysicsSimulator and overshooting avoidance with AnimationManager

* Clippy fixes

* Disabling html_renderer test to verify CI failure

* Putting back html_renderer test. It looks like headless web testing is broken

* 60 steps per second Physics Simulator (Kinematics, Spring, Air Dragging)

* Style fix

* Review refactoring

* Moved mass to Kinematics

* Linter fixes

* Vertical alignemnt update

* Removing std::mem::forget from physics test

* Physically correct interpolated simulator

* PhysicsSimulator using Stokes' drag equation

* Created camera navigation example

* Refactored camera animation system

* Progress from reviews

* More progress on reviews

* Linter fixes

* Added fixme comment

* MouseManager refactoring

* Removed naked refcells

* Switched some usages of Rc to Weak

* New file hierarchy

* Fixed names

* Linter

* Breaking things and adding comments.

* Fixed touchpad panning

* Preventing default wheel event

* Zooming at constant speed

* Fixes

* Linter and test fixes

* Debug

* Removed debug

* Zoom clamping

* Better physics submodule name

* Animators now takes AnimationFrameLoop as a parameter and Bencher exposes it so we can reuse it

* Linter fixes

* Animation Manager with examples

* Removed FIXME comment from animation.rs

* Updates based on review

* Changed point size

* lint fix

* Manually merging master

* Adding position to animation

* Fixed tests

* Removed unused variables from text test

* Code cleanup

* Refactored code with EventLoop

* Code refactoring with EventLoop

* Removed old callback impl

* Removed old event_loop file

* Fixing bencher.rs

* Linter

* First round of feedback impl

* Added more docs

* Better callback guard naming

* A little bit more docs

* EasingAnimator now can be used with any object implementing Interpolable

* Review fixes

* Refactoring

* Time values are now f64

* Fixed callback names

* Got rid of unecessary muts

* Re-exporting EventLoop and better easing function macro

* Moar refactoring

* PhysicsSimulator is now using the same callback-based design of other animators

Co-authored-by: Wojciech Daniło <wojciech.danilo@gmail.com>
Co-authored-by: Adam Obuchowicz <obuchowiczadam@gmail.com>


Original commit: 1dc496d504
2020-01-18 23:31:13 -03:00
Danilo Guanabara
7fba387683 Using Firefox for headless web tests (https://github.com/enso-org/ide/pull/113)
* Using Firefox for headless web tests

* Fixing headless web test command

* Remove unecessary  GitHub Action step


Original commit: 35941c4a68
2020-01-18 22:55:14 -03:00
Michał Wawrzyniec Urbańczyk
dbecb2c871
JSON-RPC Client Support Library for Rust (#429)
This PR adds `json-rpc` crate — a library facilitating writing clients using JSON-RPC 2.0 protocol.

This library is meant to be used in implementation of File Manager and, in future, of Language Server clients.

The library is agnostic about `Transport` — but the interface has been designed in compliance with web-sys websockets, as this will be primary platform. 

The RPC clients implemented on top of this library are expected to provide Future-based asynchronous API.

Client is designed to work in a single-thread environment,

Implements #426.
2020-01-18 03:45:38 +01:00
Wojciech Daniło
9d785ef3f1 Update style-guide.md
Original commit: 3d92c1096f
2020-01-18 02:23:29 +01:00
Wojciech Daniło
45a3ef5f01 Update style-guide.md
Original commit: 2de7a766eb
2020-01-18 02:21:22 +01:00
Dmytro Mitin
498587e271
Stub Out Gateway and Language Server Akka Services, Implement a Starting Subset of LSP (beginning) (#418)
* Rename language-server -> runner, add language-server, gateway

* Add entry point --lsp

* Add Gateway, LanguageServer

* Add stab for Initialize

* Add stubs for Initialize, Initialized

* Add GatewayTest

* fix PR

* increase timeout

* merge with master

* fix compilation after merge

* reformat with scalafmt

* Add TODOs

* Add doc for gateway

* Update CONTRIBUTING.md

* Refactor code for PR

* Add Request#response(..)

* Make Initialize, Initialized extractor objects

* Refactor for -> map

* Fix docs

* Remove DerivationConfig

* Make Request, Notification polymorphic

* Add Param.Array, Params.Array

* Replace Decoder#apply -> tryDecode

* Refactor code

* Add docs

* Refactor code

* Refactor code

* Refactor code

* Make gateway a pure actor

* Add client capabilities

* Add server capabilities

* Add docs for capabilities

* Add docs

* Add docs

* Fix Server.Config

* Update doc for Server

* Improve PR

* Rename Protocol -> JsonRpcController

* Add docs

* Fix identation.

* Fix identation

* Fix identation

* Fix identation

* Fix docs
2020-01-17 17:35:44 +02:00
Adam Obuchowicz
29e66af802 Texture rendering (https://github.com/enso-org/ide/pull/112)
Original commit: c4fd0b0908
2020-01-17 14:36:38 +01:00
Wojciech Daniło
d9d4b8b702 Cleaning codebase + initial texture support (https://github.com/enso-org/ide/pull/110)
Original commit: 1b37638dfb
2020-01-15 15:47:44 +01:00
Josef
a29cadbd48
Add CI For Rust. (#410) 2020-01-15 11:56:42 +01:00
Ara Adkins
f0d0495b27
Record decisions about the return value of = (#427) 2020-01-15 10:01:56 +00:00
Adam Obuchowicz
1b6094a126 Cursor navigation (https://github.com/enso-org/ide/pull/106)
Original commit: 9d1b18d681
2020-01-10 16:17:40 +01:00
Marcin Kostrzewa
37e383b430
Polyglot API & module-level expression eval (#424) 2020-01-10 15:53:46 +01:00
Ara Adkins
34abad6fe4
Add design docs for caching and re-evaluation (#422) 2020-01-09 13:43:44 +00:00
Danilo Guanabara
65a687b911 Camera Animation System (https://github.com/enso-org/ide/pull/60)
* HTMLScene and HTMLObject implementation

* Added HTMLRenderer and Camera objects

* Adding rlib as crate-type to make basegl available in tests

*  HTMLRenderer tests and code cleanup

* Fixed transformations and adapted Quaternion euler transformation order from XYZ to YXZ (like threejs)

* Added knowledge comments

* Recovering original lib.rs (with world demo)

* Added shrinkwraprs

* Formatted files

* Improved opt_vec test coverage

* Fixes based on clippy and rustfmt

* Remove unused WeakSet :)

* Added documentation

* Improved HTMLObject::from_html_string and beautified the code fmt

* Created StyleSetter and AttributeSetter to deal with panics

* Fixed code chars limits

* Matrix code cleanup and more code style guidelines fixes

* More alignment fixes

* Some more fixes and refactoring

* Refactored IntoCSSMatrix

* Refactoring

* Removed examples/02-html

* More refactoring

* Derived rendering structs from Debug

* Refactoring (https://github.com/enso-org/ide/pull/50)

* Comments on HTMLRenderer tests

* Removed unwanted console_log

* Recovered missed css matrix3d code

* Added  attribute to invalid doc codes

* Clippy lints fixes

* Fixed function access

* Added AnimationFrameLoop

* Custom web benchmarks implementation

* Added #[web_test] and #[web_bench] procedural macros

* Added documentation

* Lints

* Removed unused benchmark

* Removed unused test

* HTMLRenderer optimizations ;)

* resize_observe should return the index

* ResizeObserve for Scene & HTMLScene

* Lints

* Using array.join

* Added test scenario where OptVec has empty indices

* Made HTMLScene.objects private and provided accessors to it

* HTMLScene properties renaming

* Added unit test for Matrix4 memory layout

* Renamed packages author to Enso Team

* Improved benchmark readability

* Made IntoFloat32Array trait safe

* Refactored HTMLRenderer

* Lints

* Better code style

* Qualified Float32ArrayView as unsafe

* Usage example for web_test

* Style fixes

* Scene::add_resize_callback abstraction

* Spacing

* Major refactoring!

* Some minor fixes

* Comments for IntoFloat32ArrayView usage

* Navigation without smoothed movement

* Intersection Observer and navigator impl

* Intersection Observer and navigator impl

* Navigator with orthographic projection

* Camera refactoring

* Removed unecessary source note now that the code is self explanatory

* Smoothed camera navigation

* Refactored event_handler and navigator

* Linter fixes

* Fixed invalid_container test

* Included MouseEvent in system::web's Cargo.toml

* Code cleanup (unwraps refactoring) and documentation

* Adding Event and MouseEvent to basegl-system-web

* Added EventTarget to basegl-system-web

* Fixed navigation test

* Small fixes from review feedback

* Small fixes from review feedback

* Introduction of MouseManager

* Better physics with PhysicsSimulator and overshooting avoidance with AnimationManager

* Clippy fixes

* Disabling html_renderer test to verify CI failure

* Putting back html_renderer test. It looks like headless web testing is broken

* 60 steps per second Physics Simulator (Kinematics, Spring, Air Dragging)

* Style fix

* Review refactoring

* Moved mass to Kinematics

* Linter fixes

* Vertical alignemnt update

* Removing std::mem::forget from physics test

* Physically correct interpolated simulator

* PhysicsSimulator using Stokes' drag equation

* Created camera navigation example

* Refactored camera animation system

* Progress from reviews

* More progress on reviews

* Linter fixes

* Added fixme comment

* MouseManager refactoring

* Removed naked refcells

* Switched some usages of Rc to Weak

* New file hierarchy

* Fixed names

* Linter

* Breaking things and adding comments.

* Fixed touchpad panning

* Preventing default wheel event

* Zooming at constant speed

* Fixes

* Linter and test fixes

* Debug

* Removed debug

* Zoom clamping

* Better physics submodule name

* Animators now takes AnimationFrameLoop as a parameter and Bencher exposes it so we can reuse it

* Linter fixes

* Removed FIXME comment from animation.rs

* Updates based on review

* lint fix

* Manually merging master

* Adding position to animation

* Fixed tests

* Removed unused variables from text test

Co-authored-by: Wojciech Daniło <wojciech.danilo@gmail.com>
Co-authored-by: Adam Obuchowicz <obuchowiczadam@gmail.com>


Original commit: d1fcf4548b
2020-01-09 03:17:39 -03:00
Wojciech Daniło
af276039eb Shapes EDSL (https://github.com/enso-org/ide/pull/105)
Original commit: 31f5dcbaa5
2020-01-08 15:26:36 +01:00
Mateusz Czapliński
50593f6093 Fix paths in ide/README (#420)
Previously, paths in markdown links were incorrectly pointing to non-existent directories at repo root. This commit fixes them to link to existing subdirectories relative to the Readme file they're in.
2020-01-08 09:50:05 +00:00
Michał Wawrzyniec Urbańczyk
2f015c70de
HasSpan and HasRepr implementation for AST (#416)
Provides implementation of `HasSpan` and (newly introduced) `HasRepr` for all relevant Ast types.
Implements #379.

Wherever feasible, I tried to reduce boilerplate with macros. Certainly more can be done in that regard but that'd require spending more time on this task than we allocated.
2020-01-08 00:51:59 +01:00
Marcin Kostrzewa
05118016e1
Implement value extraction from scopes (#419) 2020-01-07 17:38:49 +01:00
Marcin Kostrzewa
4f177aa0f5
Fix uncached flows, refactor and document the function call flow (#417) 2020-01-07 13:39:07 +01:00
Adam Obuchowicz
74e24e62ca Cursors in text (https://github.com/enso-org/ide/pull/93)
Original commit: 73b8fff6c7
2020-01-03 15:52:20 +01:00
Wojciech Daniło
2cebd28a8d Update README.md
Original commit: 73d7e72ad0
2020-01-03 14:48:54 +01:00
Wojciech Daniło
67a471591e Update README.md
Original commit: 7220d9bd24
2020-01-03 14:48:00 +01:00
Wojciech Daniło
1e0de6fc24 Update style-guide.md (https://github.com/enso-org/ide/pull/92)
Original commit: c9c496b2e2
2020-01-03 14:46:27 +01:00
Wojciech Daniło
5af7a0fd2f Performance fine-tuning & monitoring (https://github.com/enso-org/ide/pull/95)
Original commit: 4351c60828
2020-01-03 14:29:57 +01:00
Danilo Guanabara
cd95b281e8 60 steps per second Physics Simulator (Kinematics, Spring, Air Dragging) (https://github.com/enso-org/ide/pull/91)
* 60 steps per second Physics Simulator (Kinematics, Spring, Air Dragging)

* Style fix

* Review refactoring

* Moved mass to Kinematics

* Linter fixes

* Vertical alignemnt update

* Removing std::mem::forget from physics test

* Physically correct interpolated simulator

* PhysicsSimulator implementation only with one Animator

* Added source commcents

* Safer Physics mod setters

* Removed use of performance.now() in set_time


Original commit: 0596cc5097
2019-12-26 13:53:25 -03:00
Wojciech Daniło
df8321d9da Refactoring file structure. (https://github.com/enso-org/ide/pull/94)
Original commit: 17ee3dba94
2019-12-24 09:29:10 +01:00
Wojciech Daniło
6e07e795d3 Material manager. (https://github.com/enso-org/ide/pull/90)
Original commit: 9e51ce8357
2019-12-22 00:46:13 +01:00
Michał Wawrzyniec Urbańczyk
192440bedd
derive(Iterator) support for structs with fields of dependent types (#412)
This adds support for using `derive(Iterator)` to iterate over such structures like 
```rust 
struct Foo<T> { 
    a:(T,U,T), 
    b:Option<T> 
}
```
i.e. where fields are dependent over last type argument, however they do not store it directly.

Dependent types like `Option<T>` are required to provide a compatible `iter` method.

Implements #407.
2019-12-21 03:55:39 +01:00
Ara Adkins
83efbdfd6f
Organise the design documentation (#415) 2019-12-20 16:42:54 +00:00
Adam Obuchowicz
74ed8b36c8 Text editing (https://github.com/enso-org/ide/pull/88)
Added operation for editing text in text component, which does the minimal 
required buffer refresh.

Original commit: 2ece0ca13b
2019-12-20 16:57:52 +01:00
Marcin Kostrzewa
1eed651728
Interpreter lifecycle & Module changes (#414) 2019-12-20 16:02:34 +01:00
Ara Adkins
d24577c565
Update design docs for engine services (#411) 2019-12-19 14:13:20 +00:00
Adam Obuchowicz
99e08bbe75 Text scrolling (https://github.com/enso-org/ide/pull/84)
TextComponent supports scrolling now. During scroll we try to refresh a minimum
number of buffer fragments to make a uncovered lines actually displayed.

Original commit: a10bba9776
2019-12-19 12:06:48 +01:00
Dmytro Mitin
f4480354c9 Update CONTRIBUTING.md (#391) 2019-12-19 10:57:41 +00:00
Wojciech Daniło
901cca37f7 Display Objects, Camera management, Shaders Generator (https://github.com/enso-org/ide/pull/89)
Original commit: 5c37d3c9bc
2019-12-19 01:37:41 +01:00
Michał Wawrzyniec Urbańczyk
3455d75101
derive(Iterator) support for enum types (#387)
This PR extends `derive(Iterator)` proc macro to support enumeration type when they have variants with a single unnamed field, that implements `IntoIterator`.
Thanks to that, it is now finally possible to derive iterator for the `Shape` type and similar enum types used in AST.
Implements #385
2019-12-18 14:30:46 +01:00
Josef
0b9664de60
Integrating Scala Parser Into Rust. (#362) 2019-12-17 14:33:21 +01:00
Marcin Kostrzewa
1cbe3d3534
Update engine-services.md 2019-12-17 11:26:20 +01:00
Ara Adkins
96fabb91f4
Sync Rust style guide with BaseGL repo 2019-12-17 10:21:59 +00:00
Ara Adkins
2bf9fea172
Add an initial design doc for engine services (#386) 2019-12-16 17:34:24 +00:00
Ara Adkins
f2aa6b6b26
Update scala-style-guide.md 2019-12-16 13:35:26 +00:00
Ara Adkins
b9ae90ba34
Update java-style-guide.md 2019-12-16 13:35:14 +00:00
Michał Wawrzyniec Urbańczyk
68c6ceff40
Completing Rust AST data structures (#378)
This pull request adjusts AST data structures in Scala and Rust to be compatible, while also fixing a number of JSON format mismatches find along the way. This implements #336.
2019-12-16 14:03:59 +01:00