Commit Graph

3102 Commits

Author SHA1 Message Date
Adam Obuchowicz
0fe5b0fe8e TextField keyboard input. (https://github.com/enso-org/ide/pull/170)
Implemented the reactions of TextField for keyboard events.

It includes change for Fonts - now we don't have to pass
reference to FontRegistry on each text operation.

Original commit: e6e44ad827
2020-02-13 10:26:42 +01:00
Michał Wawrzyniec Urbańczyk
dc1ce292b0 Make JSON-RPC handler more async-compatible (https://github.com/enso-org/ide/pull/172)
Original commit: 0dd46b3013
2020-02-13 03:16:38 +01:00
Michał Wawrzyniec Urbańczyk
10f78ec5c3 JSON-RPC uses params, not input (https://github.com/enso-org/ide/pull/173)
Original commit: ecd09ab2ac
2020-02-12 23:42:30 +01:00
Michał Wawrzyniec Urbańczyk
e184719b95 Fixes and Improvements for File Manager Mock Server (https://github.com/enso-org/ide/pull/174)
Original commit: 08525ce337
2020-02-12 22:40:21 +01:00
Marcin Kostrzewa
a288ecaa5c
JSON RPC base actor (#482) 2020-02-12 17:41:20 +01:00
Michał Wawrzyniec Urbańczyk
91f3703663 Mock File Manager Server (https://github.com/enso-org/ide/pull/167)
Ref #2106 

Original commit: a6569fefa7
2020-02-12 02:54:21 +01:00
Wojciech Daniło
b3c8d954de Update README.md
Original commit: 27adb447dc
2020-02-11 23:52:44 +01:00
Wojciech Daniło
ecda629e98 Node shapes part 1, build time optimization, lazy WASM loader. (https://github.com/enso-org/ide/pull/162)
Implements #2117
The application is now distributed to WASM binary (gzipped, not processed by webpack) and JS helpers bundle (gzipped, processed by webpack).
There is a new loader implementation that starts downloading the bundles and as soon as it finishes downloading the helper bundle, it starts online WASM compilation (before the WASM binary finishes downloading).
The loader displays a nice progress bar to the user.
The top-level examples folder was renamed to app and changed significantly. It is meant now to be the base for our cloud and native app. When you run it, please navigate to http://localhost:8080/debug to get the list of debug demo scenes.

Implements #2118
Please use ./scripts/watch.sh --dev. After changing any example scene, the time between hitting ctrl+s and seeing new results in the browser dropped from 45s to 3s.

Implements #2110

Original commit: f21998f4f2
2020-02-11 00:47:03 +01:00
Adam Obuchowicz
d6d59d224d Moving cursors after each edit (https://github.com/enso-org/ide/pull/160)
Before, all edits did not adjust the cursor positions, but they remained with their selection in the same location. 

Original commit: 57cdbbf588
2020-02-10 18:20:47 +01:00
Adam Obuchowicz
81d0bb555b Wip/ao/clipboard (https://github.com/enso-org/ide/pull/154)
The implementation of clipboard operations on TextField.

Original commit: cee54a7614
2020-02-10 14:04:52 +01:00
Michał Wawrzyniec Urbańczyk
1879b97b57 Utilities for safe usage of handles with RefCell values. (https://github.com/enso-org/ide/pull/156)
Original commit: 23ea51b92d
2020-02-07 04:02:18 +01:00
Danilo Guanabara
685c6d0c37 World Integration 🌎🕊️ to Css3dSystem (https://github.com/enso-org/ide/pull/133)
CSS 3D System x World integration

Original commit: 7c47432a09
2020-02-06 13:09:29 -03:00
Danilo Guanabara
692432e498 File size checking 📏 (https://github.com/enso-org/ide/pull/148)
File size checking

Original commit: cce31b31ae
2020-02-06 07:13:07 -03:00
Wojciech Daniło
ca2b242a33 Create CODEOWNERS
Original commit: b80f1d9643
2020-02-06 03:49:42 +01:00
Wojciech Daniło
adf6a10fb9 Implementation of optimization passes to the FRP engine. (https://github.com/enso-org/ide/pull/135)
Original commit: 675039a37d
2020-02-05 22:13:37 +01:00
Adam Obuchowicz
3c95b1502f New Text Component (https://github.com/enso-org/ide/pull/132)
Refactored TextComponent to use the sprites and glyph system, and renamed it to TextField. Also do much refactoring stuff and add missing documentation.

Original commit: 49efefad2c
2020-02-04 20:07:08 +01:00
Michał Wawrzyniec Urbańczyk
e6642e8df3 fixed accidental replace (https://github.com/enso-org/ide/pull/131)
Original commit: 568fa87533
2020-02-01 02:33:49 +01:00
Adam Obuchowicz
df1d78dd74 Glyph system (https://github.com/enso-org/ide/pull/121)
Original commit: afcaff970c
2020-02-01 02:31:31 +01:00
Ara Adkins
ba84ee7e6e
Implement the primitive core entities (#463) 2020-01-31 16:58:35 +00:00
Michał Wawrzyniec Urbańczyk
e49daec321 Run wasm-pack test on Windows and macOS (https://github.com/enso-org/ide/pull/127)
Original commit: 862ff6938d
2020-01-30 15:00:58 +01:00
Wojciech Daniło
152a14f1c3 Fixing global state (https://github.com/enso-org/ide/pull/130)
Original commit: 17b0d32159
2020-01-30 10:07:17 +01:00
Michał Wawrzyniec Urbańczyk
4533780d1f
Remove IDE Code From This Repository (#461)
* removed IDE code

* updated readme, removed ide dir

* typo

* Update README.md

Co-Authored-By: Ara Adkins <iamrecursion@users.noreply.github.com>

* flatten common/scala to scala

Co-authored-by: Ara Adkins <iamrecursion@users.noreply.github.com>
2020-01-29 23:35:03 +01:00
Michał Wawrzyniec Urbańczyk
db977692f7 Add IDE Code From enso Repository (https://github.com/enso-org/ide/pull/128)
As per https://github.com/luna/enso/issues/431

Original commit: 8f993cc1d2
2020-01-29 21:30:09 +01:00
Marcin Kostrzewa
a2703bb296
Language Server files interface (#462) 2020-01-29 16:17:36 +01:00
Danilo Guanabara
ebfc075938 Adding lints to the codebase (https://github.com/enso-org/ide/pull/126)
Addings lints to the codebase

Original commit: cf45cd64ac
2020-01-28 23:25:22 -03:00
Wojciech Daniło
d068dfb829 Initial FRP engine implementation. (https://github.com/enso-org/ide/pull/122)
Original commit: cf25c22bb1
2020-01-28 15:50:15 +01:00
Danilo Guanabara
8478df259b Integration of WebGL and CSS scenes and renderers (https://github.com/enso-org/ide/pull/119)
* Removed web's Camera. We are now using Camera2d

* Fixed camera set_screen and set_position order

* Added screen dimensions to Camera2d constructor

* Removed the need for UniformScope in Camera2d's constructor and exposed an 'add_zoom_update_callback' method

* Lints

* Removed dom's transform and dom's object

* Making use of DisplayObject in HTMLObject and HTMLScene

* Unified HTMLRenderer with DisplayObject logic

* Changes from farmaazon's feedback

* Changes from reviews

* More changes from reviews

* Fixed trigonometric function

* Using Navigator on examples

* Minor fixes

* Lints

* Stylistic renaming

* Some more fixes

* Simplified API without event_loop and dom_id

* Camera2d alignments

* Removed IntersectionObserver

* &loggers

* Minor fixes

* More fixes :P

* Fixed CloneRef impls


Original commit: e35fa857f6
2020-01-27 23:09:59 -03:00
Michał Wawrzyniec Urbańczyk
6838023ba7
Publish scala-parser.js as a build artifact (#457)
ref #430
2020-01-27 17:42:40 +01:00
Dmytro Mitin
3412606e2a
Subset of LSP - Part 1 (#453)
* 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

* Add requests, notifications and params

* Improve PR

* Rename Protocol -> JsonRpcController

* Add docs

* Add requests and notifications

* Fix Result

* Add requests and notifications

* Add WillSaveTextDocumentWaitUntil request params and result

* Add params

* Add tests for requests

* Add textDocumentSync.willSaveWaitUntil server capability

* Handle text id

* Fix Edit workspace client capability

* Clean up

* Add initialize, initialized, shutdown, exit

* Add docs

* Fix identation

* Fix identation

* Refactor code

* Add docs

* Improve PR

* Add tests

* Fix docs for RequestExtractor

* Fix docs
2020-01-27 13:23:32 +02:00
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