Commit Graph

305 Commits

Author SHA1 Message Date
Michał Wawrzyniec Urbańczyk
6f21f6505e Reorder nodes when connecting, if needed. (https://github.com/enso-org/ide/pull/403)
Co-authored-by: Adam Obuchowicz <adam.obuchowicz@luna-lang.org>

Original commit: e1df22ee6d
2020-05-06 15:35:15 +02:00
Danilo Guanabara
8bafe983a5 File Manager Client (https://github.com/enso-org/ide/pull/391)
Co-authored-by: mwu <mwu-tow@gazeta.pl>
Co-authored-by: Adam Obuchowicz <adam.obuchowicz@luna-lang.org>

Original commit: 24fc48f48b
2020-05-06 01:23:41 +02:00
Danilo Guanabara
817fd766c6 Project manager client (https://github.com/enso-org/ide/pull/366)
Original commit: 5bc3b7b3a3
2020-05-04 20:59:43 +02:00
Adam Obuchowicz
8abda0e5b8 Add endpoints to GraphEditor (https://github.com/enso-org/ide/pull/394)
Original commit: 86856b6332
2020-05-04 11:09:59 +02:00
Michael Mauderer
b63ba0c8e3 Update Contributing Guide to address test suite requirements. (https://github.com/enso-org/ide/pull/294)
Original commit: 73ee3a53f8
2020-05-01 00:35:46 +02:00
Wojciech Daniło
28386025b5 Adding vis docs (https://github.com/enso-org/ide/pull/397)
Original commit: 04b10ca9c8
2020-05-01 00:30:51 +02:00
Michał Wawrzyniec Urbańczyk
45b21c5b07 Connection Operations Refactoring (https://github.com/enso-org/ide/pull/395)
Co-authored-by: Adam Obuchowicz <adam.obuchowicz@luna-lang.org>

Original commit: 26ab3c623e
2020-04-30 21:23:41 +02:00
Adam Obuchowicz
4b5a0dc0c0 Fix crashes on IDE startup (https://github.com/enso-org/ide/pull/393)
Original commit: e4904224c5
2020-04-30 14:42:18 +02:00
Adam Obuchowicz
ef5cb279a3 Generating SpanTree from macros (https://github.com/enso-org/ide/pull/389)
Before during SpanTree generation we treated macros as a leaves. Now we properly look into them, get all the AST nodes in their patterns and generate children of these SpanTree nodes from them.

Original commit: aeff31f2d8
2020-04-30 12:23:19 +02:00
Michał Wawrzyniec Urbańczyk
bc2551daf6 Alias analysis support for macros (https://github.com/enso-org/ide/pull/388)
Extends alias analysis support for macro-using code, including special support for lambda expressions.
Also, it fixes already standing omission where definition body identifier usage was not properly covered in the results. (We had assumed that we won't need it for connections — and we haven't for connections per se, but we need for utilities for connection ops).

Also, as I encountered a number of issues with parser, I've made sure that they are reported and created a test cases for them to easily keep track as we fix them.

Co-authored-by: Adam Obuchowicz <adam.obuchowicz@luna-lang.org>

Original commit: 761e2691bb
2020-04-29 19:29:37 +02:00
Wojciech Daniło
d4b4a211c2 Fixing blurred shapes on MacOS
Original commit: e7afdb245b
2020-04-29 05:32:43 +02:00
Wojciech Daniło
1bb1a5f8de Theme manager (https://github.com/enso-org/ide/pull/386)
Original commit: ddf6fab49f
2020-04-29 04:09:45 +02:00
Adam Obuchowicz
e6a0461674 Double Representation Connection operations (https://github.com/enso-org/ide/pull/387)
Original commit: 1d8c282344
2020-04-28 17:48:06 +02:00
Adam Obuchowicz
de7683c2a9 Span Tree Operations (https://github.com/enso-org/ide/pull/383)
Implemented Set and Erase operations on SpanTree. Also modified SpanTree, that it have much more Empty nodes, and those empty nodes now are used for inserting.

Note: Because we're approaching deadline, functions added to chains have not unit tests for their own, although they're covered by spantree operations tests.

Original commit: a2701a0cdd
2020-04-28 12:52:40 +02:00
Josef
3194dd93a2 Crumb implementation for Match and Ambiguous. (https://github.com/enso-org/ide/pull/381)
Original commit: abd6dab38e
2020-04-24 17:15:54 +02:00
Michael Mauderer
3e2c8bef84 Enable alpha blending for ID pass (https://github.com/enso-org/ide/pull/364)
* Enable working alpha blending for ID pass via bit encoding of IDs in a RGB8 texture..
* Add facilities to change texture parameters.

Original commit: b46012e3fa
2020-04-24 13:12:40 +02:00
Adam Obuchowicz
c1a399804f Fix failing CI (https://github.com/enso-org/ide/pull/378)
We don't want to set up releases right now, so the publishing is disabled.

I managed to do it with CLI option. In theory it should be done by configuration options - but those didn't work. So, for know I leave one what works.

Original commit: 9ad8a51dcb
2020-04-24 08:52:26 +02:00
Wojciech Daniło
23cb61d611 Style manager (https://github.com/enso-org/ide/pull/382)
Original commit: 03bac5867a
2020-04-23 23:06:17 +02:00
Danilo Guanabara
e1973c3ae9 Added MacOS specific shortcuts (https://github.com/enso-org/ide/pull/353)
Original commit: 9ce0e35053
2020-04-21 22:03:36 -03:00
Wojciech Daniło
ef0562d148 Update README.md
Original commit: 0c8052d28e
2020-04-21 21:48:13 +02:00
Wojciech Daniło
0f2dd1cd57 Update README.md
Original commit: 359b20b87d
2020-04-21 21:41:58 +02:00
Wojciech Daniło
336eeaa9db Update README.md
Original commit: b3ae62d170
2020-04-21 21:36:41 +02:00
Wojciech Daniło
54480c2342 Update README.md
Original commit: bde2de9e2b
2020-04-21 21:34:06 +02:00
Josef
dcd245da5c Flexer: Automata implementation. (https://github.com/enso-org/ide/pull/347)
Original commit: 5ea54b473e
2020-04-21 20:59:33 +02:00
Adam Obuchowicz
95cc8b8d47 Span Tree (https://github.com/enso-org/ide/pull/358)
Created a new SpanTree crate in IDE. The structure itself is quite straightforward. To generate span-tree from AST you may use method generate_tree from generator::SpanTreeGenerator trait.

Original commit: 194caafd09
2020-04-21 15:33:46 +02:00
Michał Wawrzyniec Urbańczyk
6f3a328c23 Connection Discovery (https://github.com/enso-org/ide/pull/380)
ref #2203

Original commit: c1c68bf6a0
2020-04-20 21:42:05 +02:00
Wojciech Daniło
5a8d1a9c05 FRP Improvements. (https://github.com/enso-org/ide/pull/365)
Original commit: 896c08aab7
2020-04-18 04:14:23 +02:00
Michael Mauderer
03f6183244 Port Drawing (https://github.com/enso-org/ide/pull/333)
* Add dummy scaffolding for port drawing capabilities to nodes.
* Add abstractions for trigonometric functions on types.
* Add Registry to handle port creation and layouting.
* Freeze `math::algebra` exports to prelude.
* Add zoom adjustments for port shapes.
* Allow setting of positions and add dummy ports.

Original commit: d24dd5e053
2020-04-16 17:55:20 +02:00
Michael Mauderer
98b5fe197b Add a debug view that renders shape IDs (https://github.com/enso-org/ide/pull/356)
* Add display mode that can visualise shape IDs.
* Add key toggle on "2" to switch to debug view.

Original commit: 3a868ea282
2020-04-16 17:02:51 +02:00
Wojciech Daniło
7621c36db2 FRP 2.0 (improved component model, and better keyboard management) (https://github.com/enso-org/ide/pull/348)
Original commit: 4cd9dc5676
2020-04-15 23:52:15 +02:00
Michał Wawrzyniec Urbańczyk
bc424c2a98 Alias analysis (https://github.com/enso-org/ide/pull/363)
Original commit: 7718d6a348
2020-04-15 21:01:08 +02:00
Danilo Guanabara
5dc8973a05 async sleep function (https://github.com/enso-org/ide/pull/357)
Original commit: 9b1cc066f9
2020-04-15 10:46:22 -03:00
Danilo Guanabara
8ebb17d538 Fixed PageUp and PageDown (https://github.com/enso-org/ide/pull/340)
Original commit: 87c1628448
2020-04-15 10:10:10 -03:00
Wojciech Daniło
ad6fd9321e Update contributing.md
Original commit: b1a5b34b67
2020-04-08 11:29:01 +02:00
Wojciech Daniło
ca7ac0d5c5 Update contributing.md
Original commit: fdaa86fabb
2020-04-08 11:16:32 +02:00
Wojciech Daniło
d601a09273 Update contributing.md
Original commit: ff64c11d8f
2020-04-08 11:14:35 +02:00
Wojciech Daniło
a28a2e3dcd Update contributing.md
Original commit: b9ec34180b
2020-04-08 11:13:58 +02:00
Ara Adkins
c94325b395 Update documentation to refer to new domain (https://github.com/enso-org/ide/pull/352)
Original commit: b6b914acbd
2020-04-07 07:04:45 +02:00
Wojciech Daniło
05d1e3c13d Node Model (https://github.com/enso-org/ide/pull/268)
Original commit: 169b3d145a
2020-04-03 13:18:22 +02:00
Michał Wawrzyniec Urbańczyk
0c5b5b8081 #[derive(CloneRef)] also works on types with type-level bounds. (https://github.com/enso-org/ide/pull/323)
Original commit: b9f9c37d96
2020-04-03 08:16:52 +02:00
Danilo Guanabara
546aeb4ec0 Create crumbs for missing Shapes (https://github.com/enso-org/ide/pull/313)
Original commit: f746857cc9
2020-04-01 21:50:16 -03:00
Adam Obuchowicz
97c146fbdc Fix problems with tests run in parallel (https://github.com/enso-org/ide/pull/332)
Global spawner was made thread local.

Original commit: 8931df9b44
2020-04-01 17:33:04 +02:00
Adam Obuchowicz
160811f506 IDE controllers refactoring (https://github.com/enso-org/ide/pull/314)
This change refactor controllers such way, that use RefCells only 
when it is necessary, and do some more code cleanup.


Original commit: 56ae2d48a4
2020-03-31 18:37:36 +02:00
Josef
4d92869db2 Cache dependencies for CI. (https://github.com/enso-org/ide/pull/277)
Original commit: 4e55dc5a9c
2020-03-31 14:10:37 +02:00
Michał Wawrzyniec Urbańczyk
c2ef15c0bf Fix #[derive(CloneRef)] for generic types with more than one type parameter. (https://github.com/enso-org/ide/pull/316)
Original commit: 7f8541ad54
2020-03-29 01:29:10 +01:00
Michał Wawrzyniec Urbańczyk
f39686e152 Proc macro for #[derive(CloneRef)] (https://github.com/enso-org/ide/pull/315)
Original commit: 6378d9ef11
2020-03-28 02:10:09 +01:00
Michał Wawrzyniec Urbańczyk
fd269d2457 Node Operations (https://github.com/enso-org/ide/pull/298)
Original commit: cf01ebf061
2020-03-27 23:59:02 +01:00
Danilo Guanabara
6552176247 CI fails on error (https://github.com/enso-org/ide/pull/291)
Original commit: 1de3c3413a
2020-03-27 09:25:55 -03:00
Adam Obuchowicz
4af19c5745 Fix drawing instance with empty buffers (https://github.com/enso-org/ide/pull/292)
This code was developed as a fix for occuring "crashes" on Windows, 
which were in fact a "contextLost" events of WebGl.


Original commit: 92b95df814
2020-03-25 15:29:36 +01:00
Michael Mauderer
1b573988a7 Fix instructions to set up toolchain for project build. Fixes #2179. (https://github.com/enso-org/ide/pull/284)
Original commit: cad50bb093
2020-03-23 21:26:30 +01:00
Josef
248a1caace Graph API - Node position in metadata (https://github.com/enso-org/ide/pull/274)
authored-by: Josef <j.f.vonasek@gmail.com>

Original commit: e4a9d7742a
2020-03-20 08:37:28 +01:00
Danilo Guanabara
cac0dfc0c3 Cursor word step tests fix (https://github.com/enso-org/ide/pull/278)
Original commit: 6d3fe6472d
2020-03-18 17:29:45 -03:00
Adam Obuchowicz
cd31d690b3 Mac and Windows shortcuts fixes (https://github.com/enso-org/ide/pull/273)
* Fix pasting on Mac
* Fix AltGraph handling on Windows

Original commit: c077e466b2
2020-03-18 16:09:11 +01:00
Josef
81ad282d84 removed idmap (https://github.com/enso-org/ide/pull/276)
Original commit: b6ce9ef2ea
2020-03-18 10:40:39 +01:00
Adam Obuchowicz
32a4cc37ea Improve cursor blinking (https://github.com/enso-org/ide/pull/271)
Before blinking cursor was done by setting width to 0.0, but this leaves a very-thin line instead of disappearing cursor entirely.

This fixes this, and make the blinking by setting color to transparent instead of setting width.

Original commit: d01523fb21
2020-03-18 09:19:12 +01:00
Michał Wawrzyniec Urbańczyk
83c66d265a Graph and Node controllers stub and mock implementations (https://github.com/enso-org/ide/pull/262)
For early design / API review.
Authored by michal.urbanczyk@luna-lang.org

Original commit: 461e6ae780
2020-03-18 08:43:52 +01:00
Danilo Guanabara
ef070434f3 Make the extra cursor navigation operations in TextField (https://github.com/enso-org/ide/pull/241)
Original commit: 3a9ed82efd
2020-03-17 19:50:45 -03:00
Adam Obuchowicz
46d0376c81 Fix build script (https://github.com/enso-org/ide/pull/269)
See https://doc.rust-lang.org/cargo/reference/build-scripts.html#rerun-if-changed for reference

Original commit: a342ecfea4
2020-03-17 17:30:43 +01:00
Adam Obuchowicz
b4ad324cf5 Fix stuck keymask after alt-tabbing (https://github.com/enso-org/ide/pull/270)
After pressing Alt-tab editor did not received keyup events so the keymask was stuck with pressed-alt state. To fix that, we clear the mask each time window lose focus.

Original commit: 29f3226f11
2020-03-17 17:06:12 +01:00
Wojciech Daniło
0a2164110d Update README.md
Original commit: 0d33957957
2020-03-17 03:56:07 +01:00
Wojciech Daniło
4f95075f2f Improving Electron App (https://github.com/enso-org/ide/pull/263)
Original commit: da0872f05a
2020-03-17 03:44:27 +01:00
Adam Obuchowicz
e207e0afa9 Fix text selection (https://github.com/enso-org/ide/pull/265)
Original commit: ada57d9078
2020-03-16 11:56:53 +01:00
Wojciech Daniło
6009caa205 Making tests on CI faster by running them in parallel (https://github.com/enso-org/ide/pull/264)
Original commit: 44df1d6706
2020-03-16 11:16:16 +01:00
Wojciech Daniło
500c8c21ed Update README.md
Original commit: d8b7dc348f
2020-03-16 04:29:03 +01:00
Wojciech Daniło
e10fc464a8 Refactoring file structure (https://github.com/enso-org/ide/pull/260)
Original commit: c38ca0d5a4
2020-03-16 03:58:00 +01:00
Michał Wawrzyniec Urbańczyk
757b4cbe7d Shape now implements Clone and Ast allows setting/removing id. (https://github.com/enso-org/ide/pull/261)
Original commit: 79e886c3de
2020-03-14 03:44:35 +01:00
Josef
a013563ce2 Metadata storage for module controller. (https://github.com/enso-org/ide/pull/237)
Original commit: c93076e7cf
2020-03-13 21:34:15 +01:00
Adam Obuchowicz
f26d88593c Implemented notification about text&graph changes brokering (https://github.com/enso-org/ide/pull/231)
Add possibility to subscribe for notifications about changes of one of module representations. Today, the notifications are sent after applying code changes (there are no other operations implemented yet).

Original commit: 68b63f2891
2020-03-13 17:52:41 +01:00
Wojciech Daniło
4fd137bfc3 Refactoring & Performance Improvements (https://github.com/enso-org/ide/pull/255)
Original commit: b2ee9388e4
2020-03-13 05:10:08 +01:00
Michał Wawrzyniec Urbańczyk
17f729874e Node Discovery (https://github.com/enso-org/ide/pull/250)
This PR introduces node discovery logic in `double_representation/node.rs`.
The parser dependency has been bumped, due to #2154.
Improvements in definition discovery — fixed previous issue where first line in block was ignored.


Original commit: 1370aaf431
2020-03-10 17:54:28 +01:00
Wojciech Daniło
619eb4fabd Fixing node version (https://github.com/enso-org/ide/pull/251)
Original commit: af54d2876c
2020-03-10 15:33:02 +01:00
Wojciech Daniło
c57c57d7f1 Update README.md
Original commit: 54c4d6393f
2020-03-07 21:16:14 +01:00
Wojciech Daniło
7631be9951 Update README.md
Original commit: 5e3f07d5de
2020-03-07 21:15:06 +01:00
Wojciech Daniło
02cea5ddee Update README.md
Original commit: 54edd76976
2020-03-07 20:25:57 +01:00
Wojciech Daniło
28a5644090 Update README.md
Original commit: 7b25827351
2020-03-06 21:05:07 +01:00
Wojciech Daniło
a52cf702ad Update README.md
Original commit: c939b175a8
2020-03-06 21:04:13 +01:00
Wojciech Daniło
2706c6f008 Update README.md
Original commit: e9444e4267
2020-03-06 21:01:55 +01:00
Wojciech Daniło
a3789aab2d Update README.md
Original commit: 6b37483b93
2020-03-06 20:58:21 +01:00
Wojciech Daniło
0335721b80 Update README.md
Original commit: 5079cad2f6
2020-03-06 20:56:32 +01:00
Wojciech Daniło
ee727745fc Update README.md
Original commit: a853dceff3
2020-03-06 20:53:46 +01:00
Wojciech Daniło
d3f782ea9d Update README.md
Original commit: e54672e192
2020-03-06 20:33:35 +01:00
Wojciech Daniło
51bb59421d Fixing wrong npm LTS version.
Original commit: 87e71f60f1
2020-03-06 16:50:17 +01:00
Michał Wawrzyniec Urbańczyk
23425718ff Definition Discovery (https://github.com/enso-org/ide/pull/225)
Original commit: 41895d7a94
2020-03-06 14:05:59 +01:00
Wojciech Daniło
d2a70667fc Cleaning codebase (https://github.com/enso-org/ide/pull/235)
Original commit: 820113e061
2020-03-05 20:00:47 +01:00
Wojciech Daniło
7d197fd5cf Update README.md
Original commit: 2f4eb02c1b
2020-03-05 18:39:51 +01:00
Wojciech Danilo
48c262f007 Fixing electron internal path bug.
Original commit: 11cdeadf66
2020-03-05 06:55:13 +01:00
Wojciech Daniło
b38bcac15a Fixing documentation links.
Original commit: 56992d239f
2020-03-05 06:29:34 +01:00
Wojciech Daniło
68601ba9e9 Electron support (https://github.com/enso-org/ide/pull/223)
Original commit: d0b71bb46c
2020-03-05 06:25:00 +01:00
Josef
f0075eba50 Generate idmap from AST. (https://github.com/enso-org/ide/pull/215)
Authored by josev

Original commit: 6614e2ab1e
2020-03-04 15:00:49 +01:00
Danilo Guanabara
ce9a1d7f5f Keep cursor positions on text refresh (https://github.com/enso-org/ide/pull/232)
Original commit: 0b8efa24fd
2020-03-04 05:06:38 -03:00
Danilo Guanabara
dac19291dc Selecting word occurrences (https://github.com/enso-org/ide/pull/224)
Original commit: d83b53e1c6
2020-03-03 10:05:21 -03:00
Adam Obuchowicz
58e12104b0 Minimal Text API for Double Representation (https://github.com/enso-org/ide/pull/221)
Implemented Text API which updates id_map and ast on each code change.

This PR contains also an implementation for actual opening and initializing Module Controller.
Added a "Text changed" callback to TextField which is fired on every user edit.


Original commit: b027517b34
2020-02-28 19:29:37 +01:00
Wojciech Daniło
8b3eba16b0 Initial shape of collapsed nodes + progress bar.
Original commit: 19d6b6636b
2020-02-28 00:06:22 +01:00
Danilo Guanabara
81a7147387 View x Controller integration (https://github.com/enso-org/ide/pull/219)
Original commit: ff80159116
2020-02-26 16:12:38 -03:00
Josef
edebe6b661 Pass IDMap to scala parser. (https://github.com/enso-org/ide/pull/212)
Original commit: ae92ae1a96
2020-02-26 14:11:40 +01:00
Danilo Guanabara
5c3f1dadec Using Chrome in ./script/test.sh (https://github.com/enso-org/ide/pull/171)
Original commit: b9b9c510f0
2020-02-24 02:56:32 -03:00
Michał Wawrzyniec Urbańczyk
5a9c32360e File Manager Integration (https://github.com/enso-org/ide/pull/203)
This PR brings code necessary to fully integrate file manager and properly use it.
Two most important parts are:
* executor that can be integrated with basegl's event loop;
* implementation of the `Transport` trait based on `web_sys::WebSocket`.

I've also added some glue code to put the file manager connection into the project view.

Implements #2105.

Original commit: 64c06632e1
2020-02-21 16:54:42 +01:00
Danilo Guanabara
5c4e444e4e Navigator refactoring and other improvements on the new MouseManager (https://github.com/enso-org/ide/pull/201)
Original commit: f4e3f13f5c
2020-02-20 00:36:55 -03:00
Adam Obuchowicz
1a796a2e07 Text controller implementation (https://github.com/enso-org/ide/pull/180)
This contains an initial TextController implementation, which can read and store the file content, and is obtainable from ProjectController.

Original commit: 66f4dfd0fa
2020-02-18 21:06:37 +01:00
Danilo Guanabara
a9f2de5b00 Initial Project View (https://github.com/enso-org/ide/pull/159)
Original commit: bfe5377ba5
2020-02-18 14:40:24 -03:00
Michał Wawrzyniec Urbańczyk
6897884a9e fixes for rendering on windows/chrome (https://github.com/enso-org/ide/pull/183)
Original commit: ef6fdb59d4
2020-02-18 14:01:59 +01:00
Adam Obuchowicz
ca9497e879 TextField mouse input (https://github.com/enso-org/ide/pull/175)
Implemented FRP graph handling mouse events for TextField. Alt+Shift click add new cursor, enabling multicursor edit.

Original commit: 1f5a8257b4
2020-02-14 17:08:47 +01:00
Danilo Guanabara
8527741ad3 Fix renderer & navigator resizing (https://github.com/enso-org/ide/pull/165)
Original commit: fb3ad45f8c
2020-02-13 10:02:18 -03:00
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
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
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
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
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
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
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
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
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
Adam Obuchowicz
1b6094a126 Cursor navigation (https://github.com/enso-org/ide/pull/106)
Original commit: 9d1b18d681
2020-01-10 16:17:40 +01: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
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
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
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
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
Adam Obuchowicz
070d264dbb Text clipping (https://github.com/enso-org/ide/pull/75)
Text in text component is clipped to specified area on screen. Only visible 
part of text have its data in opengl buffers. The buffer management was
somewhat adapted to quick scrolling with minimum buffer data refreshing.

Original commit: 0b39d6f89a
2019-12-11 13:27:44 +01:00
Adam Obuchowicz
ebe9db1b74 Implemented newlines (https://github.com/enso-org/ide/pull/67)
TextComponent will properly display text containing newline characters.

Code of the TextComponent was somewhat prepared for optimal clipping text and scrolling; each line of text have an own fixed-size buffer fragment, so the lines should be easily extended and fragments reused.

Original commit: 647430f1d8
2019-12-09 14:24:21 +01:00