diff --git a/gui/.github/CODEOWNERS b/gui/.github/CODEOWNERS
index deeb1b8985e..131bb3d9adc 100644
--- a/gui/.github/CODEOWNERS
+++ b/gui/.github/CODEOWNERS
@@ -1 +1,2 @@
* @wdanilo
+src/rust/ide @farmaazon
diff --git a/gui/.github/ISSUE_TEMPLATE/bug-report.md b/gui/.github/ISSUE_TEMPLATE/bug-report.md
index d10463ab24c..a3ba1d3b4ee 100644
--- a/gui/.github/ISSUE_TEMPLATE/bug-report.md
+++ b/gui/.github/ISSUE_TEMPLATE/bug-report.md
@@ -1,6 +1,6 @@
---
name: Bug Report
-about: Report a bug in BaseGL.
+about: Report a bug in Enso IDE.
title: ''
labels: 'Type: Bug'
assignees: ''
@@ -8,7 +8,7 @@ assignees: ''
---
@@ -35,5 +35,5 @@ Please list the reproduction steps for your bug.
### Enso Version
diff --git a/gui/.github/ISSUE_TEMPLATE/epic.md b/gui/.github/ISSUE_TEMPLATE/epic.md
index 9bfd5f127c5..53bf81fd39a 100644
--- a/gui/.github/ISSUE_TEMPLATE/epic.md
+++ b/gui/.github/ISSUE_TEMPLATE/epic.md
@@ -1,6 +1,6 @@
---
name: Epic
-about: Create a new epic for BaseGL development.
+about: Create a new epic for Enso IDE development.
title: ''
labels: ''
assignees: ''
diff --git a/gui/.github/ISSUE_TEMPLATE/feature-request.md b/gui/.github/ISSUE_TEMPLATE/feature-request.md
index 6360ee4b8a6..beeeb0e2d1a 100644
--- a/gui/.github/ISSUE_TEMPLATE/feature-request.md
+++ b/gui/.github/ISSUE_TEMPLATE/feature-request.md
@@ -1,6 +1,6 @@
---
name: Feature Request
-about: Request a new feature in BaseGL.
+about: Request a new feature in Enso IDE.
title: ''
labels: 'Type: Enhancement'
assignees: ''
@@ -8,7 +8,7 @@ assignees: ''
---
@@ -19,6 +19,6 @@ has been implemented.
### Motivation
diff --git a/gui/.github/ISSUE_TEMPLATE/task.md b/gui/.github/ISSUE_TEMPLATE/task.md
index d97b3c62b1a..8bd1d01e40b 100644
--- a/gui/.github/ISSUE_TEMPLATE/task.md
+++ b/gui/.github/ISSUE_TEMPLATE/task.md
@@ -1,6 +1,6 @@
---
name: Task
-about: Create a new development task for BaseGL.
+about: Create a new development task for Enso IDE.
title: ''
labels: ''
assignees: ''
diff --git a/gui/.github/workflows/build.yml b/gui/.github/workflows/build.yml
index 0074b9804ca..9ff1000a4cf 100644
--- a/gui/.github/workflows/build.yml
+++ b/gui/.github/workflows/build.yml
@@ -14,19 +14,98 @@ jobs:
strategy:
matrix:
os: [windows-latest, macOS-latest, ubuntu-latest]
+ fail-fast: false
steps:
- uses: actions/checkout@v1
- - name: Install Rust Nightly Toolchain
+ - name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: nightly-2019-11-04
override: true
- - name: Run cargo check
+ - name: Install wasm-pack
uses: actions-rs/cargo@v1
with:
- command: check
+ command: install
+ args: wasm-pack --version 0.8.1
+
+ - name: Install Node
+ uses: actions/setup-node@v1
+ with:
+ node-version: '12.16.1'
+
+ - name: Build
+ run: node ./run dist
+
+ - name: Upload Artifacts (Ubuntu, AppImage)
+ uses: actions/upload-artifact@v1
+ with:
+ name: Enso IDE (Linux, AppImage)
+ path: dist/client/Enso Studio-2.0.0-alpha.0.AppImage
+ if: matrix.os == 'ubuntu-latest'
+
+ - name: Upload Artifacts (Ubuntu, not packed)
+ uses: actions/upload-artifact@v1
+ with:
+ name: Enso IDE (Linux, not packed)
+ path: dist/client/linux-unpacked
+ if: matrix.os == 'ubuntu-latest'
+
+ - name: Upload Artifacts (Windows, Installer)
+ uses: actions/upload-artifact@v1
+ if: matrix.os == 'windows-latest'
+ with:
+ name: Enso IDE (Windows, installer)
+ path: dist/client/Enso Studio Setup 2.0.0-alpha.0.exe
+
+ - name: Upload Artifacts (Windows, not packed)
+ uses: actions/upload-artifact@v1
+ if: matrix.os == 'windows-latest'
+ with:
+ name: Enso IDE (Windows, not packed)
+ path: dist/client/win-unpacked
+
+ - name: Upload Artifacts (macOS, dmg)
+ uses: actions/upload-artifact@v1
+ if: matrix.os == 'macos-latest'
+ with:
+ name: Enso IDE (macOS, dmg)
+ path: dist/client/Enso Studio-2.0.0-alpha.0.dmg
+
+ - name: Upload Artifacts (macOS, app)
+ uses: actions/upload-artifact@v1
+ if: matrix.os == 'macos-latest'
+ with:
+ name: Enso IDE (macOS, app)
+ path: dist/client/mac/Enso Studio.app
+
+
+ lint:
+ name: Lint
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [windows-latest, macOS-latest, ubuntu-latest]
+ steps:
+ - uses: actions/checkout@v1
+
+ - name: Install Rust
+ uses: actions-rs/toolchain@v1
+ with:
+ toolchain: nightly-2019-11-04
+ override: true
+
+ - name: Install Clippy
+ run: rustup component add clippy
+
+ - name: Install Node
+ uses: actions/setup-node@v1
+ with:
+ node-version: '12.16.1'
+
+ - name: Building Rust Sources
+ run: node ./run lint
test:
@@ -38,7 +117,8 @@ jobs:
steps:
- uses: actions/checkout@v1
- - uses: actions-rs/toolchain@v1
+ - name: Install Rust
+ uses: actions-rs/toolchain@v1
with:
toolchain: nightly-2019-11-04
override: true
@@ -49,112 +129,56 @@ jobs:
command: install
args: wasm-pack --version 0.8.1
+ - name: Install Node
+ uses: actions/setup-node@v1
+ with:
+ node-version: '12.16.1'
+
- name: Run tests
- uses: actions-rs/cargo@v1
- with:
- command: test
-
- - name: Run wasm-pack tests
- uses: actions-rs/cargo@v1
- with:
- command: run
- args: >
- --manifest-path=build/rust/Cargo.toml
- --bin test-all
- -- --headless --chrome
+ run: node ./run test
- size:
- name: Check size
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v1
-
- - name: Install Rust Nightly Toolchain
- uses: actions-rs/toolchain@v1
- with:
- toolchain: nightly-2019-11-04
- override: true
-
- - name: Install wasm-pack
- uses: actions-rs/cargo@v1
- with:
- command: install
- args: wasm-pack --version 0.8.1
-
- - uses: actions/setup-node@v1
- with:
- node-version: '12.16.1'
-
- - name: check npm
- run: npm --version
-
- - name: Compile to WASM
- run: ./run build
-
- - name: Check WASM size
- run: ./build/assert_max_wasm_size.sh
+ # TODO: enable after fixing https://github.com/actions-rs/grcov/issues/50
+ # coverage:
+ # name: Coverage
+ # runs-on: ubuntu-latest
+ # steps:
+ # - uses: actions/checkout@v1
+ #
+ # - name: Install Rust
+ # uses: actions-rs/toolchain@v1
+ # with:
+ # toolchain: nightly-2019-11-04
+ # override: true
+ #
+ # - name: Install Node
+ # uses: actions/setup-node@v1
+ # with:
+ # node-version: '12.16.1'
+ #
+ # - name: Generate test profile
+ # working-directory: src/rust
+ # run: cargo test --all-features --no-fail-fast
+ # env:
+ # 'CARGO_INCREMENTAL': '0'
+ # 'RUSTFLAGS': '-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Zno-landing-pads'
+ #
+ # - name: Generate coverage report
+ # id: coverage
+ # uses: actions-rs/grcov@v0.1
+ #
+ # - name: Show the coverage report
+ # run: cat ${{ steps.coverage.outputs.report }}
+ #
+ # - name: Upload the coverage report
+ # uses: codecov/codecov-action@v1.0.2
+ # with:
+ # token: ${{ secrets.CODECOV_TOKEN }}
+ # file: ./lcov.info
- clippy:
- name: Linter
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v1
-
- - uses: actions-rs/toolchain@v1
- with:
- toolchain: nightly-2019-11-04
- override: true
-
- - run: rustup component add clippy
-
- - uses: actions-rs/cargo@v1
- with:
- command: clippy
- args: -- -D warnings
-
-
- coverage:
- name: Coverage
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v1
-
- - name: Install Rust Nightly Toolchain
- uses: actions-rs/toolchain@v1
- with:
- toolchain: nightly-2019-11-04
- override: true
-
- - name: Generate test profile
- uses: actions-rs/cargo@v1
- with:
- command: test
- args: --all-features --no-fail-fast
- env:
- 'CARGO_INCREMENTAL': '0'
- 'RUSTFLAGS': '-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Zno-landing-pads'
-
- - name: Generate coverage report
- id: coverage
- uses: actions-rs/grcov@v0.1
-
- - name: list all /tmp files
- run: ls -la /tmp
-
- - name: show the coverage report
- run: cat ${{ steps.coverage.outputs.report }}
-
- - name: Upload coverage report
- uses: codecov/codecov-action@v1.0.2
- with:
- token: ${{ secrets.CODECOV_TOKEN }}
- file: ./lcov.info
-
-
- package:
- name: Package
+ build-fm:
+ name: Build File Manager Server Mock
runs-on: ${{ matrix.os }}
strategy:
matrix:
@@ -163,108 +187,33 @@ jobs:
steps:
- uses: actions/checkout@v1
- - uses: actions-rs/toolchain@v1
- with:
- toolchain: nightly-2019-11-04
- override: true
-
- - name: Install wasm-pack
- uses: actions-rs/cargo@v1
- with:
- command: install
- args: wasm-pack --version 0.8.1
-
- - uses: actions/setup-node@v1
- with:
- node-version: '12.16.1'
-
- - name: check npm
- run: npm --version
-
- - name: Build Enso IDE
- run: node run dist --no-validation
-
- - uses: actions/upload-artifact@v1
- name: Upload Artifacts (Ubuntu, AppImage)
- with:
- name: Enso IDE (Linux, AppImage)
- path: app/dist/native/Enso Studio-1.0.0.AppImage
- if: matrix.os == 'ubuntu-latest'
-
- - uses: actions/upload-artifact@v1
- name: Upload Artifacts (Ubuntu, not packed)
- with:
- name: Enso IDE (Linux, not packed)
- path: app/dist/native/linux-unpacked
- if: matrix.os == 'ubuntu-latest'
-
- - uses: actions/upload-artifact@v1
- name: Upload Artifacts (Windows, Installer)
- if: matrix.os == 'windows-latest'
- with:
- name: Enso IDE (Windows, installer)
- path: app/dist/native/Enso Studio Setup 1.0.0.exe
-
- - uses: actions/upload-artifact@v1
- name: Upload Artifacts (Windows, not packed)
- if: matrix.os == 'windows-latest'
- with:
- name: Enso IDE (Windows, not packed)
- path: app/dist/native/win-unpacked
-
- - uses: actions/upload-artifact@v1
- name: Upload Artifacts (macOS, dmg)
- if: matrix.os == 'macos-latest'
- with:
- name: Enso IDE (macOS, dmg)
- path: app/dist/native/Enso Studio-1.0.0.dmg
-
- - uses: actions/upload-artifact@v1
- name: Upload Artifacts (macOS, app)
- if: matrix.os == 'macos-latest'
- with:
- name: Enso IDE (macOS, app)
- path: app/dist/native/mac/Enso Studio.app
-
-
- package-fm:
- name: Package mock File Manager Server
- runs-on: ${{ matrix.os }}
- strategy:
- matrix:
- os: [windows-latest, macOS-latest, ubuntu-latest]
- fail-fast: false
- steps:
- - uses: actions/checkout@v1
-
- - uses: actions-rs/toolchain@v1
+ - name: Install Rust
+ uses: actions-rs/toolchain@v1
with:
toolchain: nightly-2019-11-04
override: true
- name: Build File Manager Server
- uses: actions-rs/cargo@v1
- with:
- command: build
- args: --release --bin file-manager-server
+ working-directory: src/rust
+ run: cargo build --release --bin file-manager-server
- - uses: actions/upload-artifact@v1
- name: Upload Artifacts (Ubuntu)
+ - name: Upload Artifacts (Ubuntu)
+ uses: actions/upload-artifact@v1
with:
name: File Manager Server (Linux)
- path: target/release/file-manager-server
+ path: src/rust/target/release/file-manager-server
if: matrix.os == 'ubuntu-latest'
- - uses: actions/upload-artifact@v1
- name: Upload Artifacts (macOS)
+ - name: Upload Artifacts (macOS)
+ uses: actions/upload-artifact@v1
with:
name: File Manager Server (macOS)
- path: target/release/file-manager-server
+ path: src/rust/target/release/file-manager-server
if: matrix.os == 'macos-latest'
- - uses: actions/upload-artifact@v1
- name: Upload Artifacts (Ubuntu)
+ - name: Upload Artifacts (Ubuntu)
+ uses: actions/upload-artifact@v1
with:
name: File Manager Server (Windows)
- path: target/release/file-manager-server.exe
+ path: src/rust/target/release/file-manager-server.exe
if: matrix.os == 'windows-latest'
diff --git a/gui/.gitignore b/gui/.gitignore
index 1d96c47f011..19008410da4 100644
--- a/gui/.gitignore
+++ b/gui/.gitignore
@@ -1,3 +1,5 @@
+dist
+
# Rust
/target
/build/rust/target/
@@ -9,7 +11,7 @@ wasm-pack.log
.idea/
*.iml
-# VisualStudio Code
+# Visual Studio Code
.vscode/
# A thirdparty downloaded js
diff --git a/gui/README.md b/gui/README.md
index 6b521cda94b..6503a318004 100644
--- a/gui/README.md
+++ b/gui/README.md
@@ -38,11 +38,11 @@
alt="License">
-
-
diff --git a/gui/app/package.json b/gui/app/package.json
deleted file mode 100644
index ace41942c21..00000000000
--- a/gui/app/package.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "name": "root",
- "version": "2.0.0-alpha.0",
- "private": true,
- "devDependencies": {
- "lerna": "^3.20.2",
- "webpack": "^4.42.0",
- "webpack-cli": "^3.3.11",
- "webpack-dev-server": "^3.1.5"
- },
- "scripts": {
- "build": "lerna run build --stream",
- "clean": "rm -Rf node_modules && rm -Rf dist && lerna clean -y && lerna run clean",
- "dist": "lerna run build --stream && lerna run dist --stream",
- "install": "npm install lerna && lerna bootstrap",
- "start": "npm run build && lerna run start --stream -- -- ",
- "watch": "lerna run watch --stream"
- }
-}
diff --git a/gui/app/packages/client/package.json b/gui/app/packages/client/package.json
deleted file mode 100644
index f9444b530b3..00000000000
--- a/gui/app/packages/client/package.json
+++ /dev/null
@@ -1,82 +0,0 @@
-{
- "name": "enso-studio-client",
- "description": "The standalone client part of the IDE.",
- "version": "1.0.0",
- "author": {
- "name": "Enso Team",
- "email": "contact@luna-lang.org"
- },
- "homepage": "https://github.com/luna/basegl",
- "repository": {
- "type": "git",
- "url": "git@github.com:luna/basegl.git"
- },
- "bugs": {
- "url": "https://github.com/luna/basegl/issues"
- },
-
-
- "main": "index.js",
- "build": {
- "appId": "org.enso.studio",
- "productName": "Enso Studio",
- "copyright": "Copyright © 2020 ${author}.",
- "mac": {
- "icon": "dist/icons/icon.icns",
- "category": "public.app-category.developer-tools",
- "darkModeSupport": true,
- "type": "distribution"
- },
- "win": {
- "icon": "dist/icons/icon.ico"
- },
- "linux": {
- "icon": "dist/icons/png",
- "category": "Development"
- },
- "files": [
- { "from": "dist/unpacked" , "to": "." }
- ],
- "fileAssociations": [
- {
- "ext": "enso",
- "name": "Enso Source File",
- "role": "Editor"
- },
- {
- "ext": "enso-studio",
- "name": "Enso Studio Project",
- "role": "Editor"
- }
- ],
- "directories": {
- "output": "../../dist/native"
- }
- },
-
-
- "dependencies": {
- "enso-studio-content": "1.0.0",
- "enso-studio-common": "1.0.0",
- "enso-studio-icons": "1.0.0",
- "copy-webpack-plugin": "^5.1.1",
- "create-servers": "^3.1.0",
- "electron-is-dev": "^1.1.0"
- },
- "devDependencies": {
- "compression-webpack-plugin": "^3.1.0",
- "copy-webpack-plugin": "^5.1.1",
- "devtron": "^1.4.0",
- "electron": "8.0.2",
- "electron-builder": "^22.3.2"
- },
-
-
- "scripts": {
- "clean": "rm -Rf dist",
- "start": "electron dist/unpacked -- ",
- "build": "webpack ",
- "dist": "electron-builder",
- "dist:crossplatform": "electron-builder --mac --win --linux"
- }
-}
diff --git a/gui/app/packages/client/webpack.config.js b/gui/app/packages/client/webpack.config.js
deleted file mode 100644
index a7e4b711c54..00000000000
--- a/gui/app/packages/client/webpack.config.js
+++ /dev/null
@@ -1,40 +0,0 @@
-const Copy = require('copy-webpack-plugin')
-
-const path = require('path')
-const root = path.resolve(__dirname)
-
-module.exports = {
- entry: {
- index: path.resolve(root,'src','index.js'),
- },
- mode: 'production',
- target: "electron-main",
- output: {
- path: path.resolve(root,'dist','unpacked'),
- filename: '[name].js',
- },
- plugins: [
- new Copy([
- {
- from : path.resolve(root,'..','content','dist','assets'),
- to : path.resolve(root,'dist','unpacked','assets')
- },
- {
- from : path.resolve(root,'..','icons','dist'),
- to : path.resolve(root,'dist','icons')
- },
- {
- from : path.resolve('package.json'),
- to : path.resolve(root,'dist','unpacked','package.json')
- },
- {
- from : path.resolve('src/preload.js'),
- to : path.resolve(root,'dist','unpacked','preload.js')
- }
- ]),
- ],
- performance: {
- hints: false,
- },
- stats: 'minimal',
-}
diff --git a/gui/app/packages/common/package.json b/gui/app/packages/common/package.json
deleted file mode 100644
index b15b09c1aaf..00000000000
--- a/gui/app/packages/common/package.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "name": "enso-studio-common",
- "version": "1.0.0",
- "author": {
- "name": "Enso Team",
- "email": "contact@luna-lang.org"
- },
- "homepage": "https://github.com/luna/basegl",
- "repository": {
- "type": "git",
- "url": "git@github.com:luna/basegl.git"
- },
- "bugs": {
- "url": "https://github.com/luna/basegl/issues"
- },
- "dependencies": {
- "copy-webpack-plugin": "^5.1.1"
- },
- "devDependencies": {
- "compression-webpack-plugin": "^3.1.0",
- "copy-webpack-plugin": "^5.1.1"
- },
-
- "scripts": {
- "clean": "rm -Rf dist"
- }
-}
diff --git a/gui/app/packages/content/package.json b/gui/app/packages/content/package.json
deleted file mode 100644
index f7342fbcf5a..00000000000
--- a/gui/app/packages/content/package.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "name": "enso-studio-content",
- "version": "1.0.0",
- "author": {
- "name": "Enso Team",
- "email": "contact@luna-lang.org"
- },
- "homepage": "https://github.com/luna/basegl",
- "repository": {
- "type": "git",
- "url": "git@github.com:luna/basegl.git"
- },
- "bugs": {
- "url": "https://github.com/luna/basegl/issues"
- },
- "scripts": {
- "clean": "rm -Rf dist",
- "build": "webpack",
- "watch": "webpack-dev-server"
- },
- "dependencies": {
- "enso-studio-common": "1.0.0",
- "copy-webpack-plugin": "^5.1.1"
- },
- "devDependencies": {
- "compression-webpack-plugin": "^3.1.0",
- "copy-webpack-plugin": "^5.1.1"
- }
-}
diff --git a/gui/app/packages/icons/package.json b/gui/app/packages/icons/package.json
deleted file mode 100644
index 0586cae6d13..00000000000
--- a/gui/app/packages/icons/package.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "name": "enso-studio-icons",
- "version": "1.0.0",
- "author": {
- "name": "Enso Team",
- "email": "contact@luna-lang.org"
- },
- "homepage": "https://github.com/luna/basegl",
- "repository": {
- "type": "git",
- "url": "git@github.com:luna/basegl.git"
- },
- "bugs": {
- "url": "https://github.com/luna/basegl/issues"
- },
- "scripts": {
- "clean": "rm -Rf dist",
- "build": "node src/index.js"
- },
- "devDependencies": {
- "sharp": "^0.24.1",
- "to-ico": "^1.1.5"
- }
-}
diff --git a/gui/app/packages/server/package.json b/gui/app/packages/server/package.json
deleted file mode 100644
index 3d65e7b3f47..00000000000
--- a/gui/app/packages/server/package.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "name": "enso-studio-server",
- "version": "1.0.0",
- "author": {
- "name": "Enso Team",
- "email": "contact@luna-lang.org"
- },
- "homepage": "https://github.com/luna/basegl",
- "repository": {
- "type": "git",
- "url": "git@github.com:luna/basegl.git"
- },
- "bugs": {
- "url": "https://github.com/luna/basegl/issues"
- },
- "scripts": {
- "clean": "rm -Rf dist"
- },
- "dependencies": {
- "copy-webpack-plugin": "^5.1.1"
- },
- "devDependencies": {
- "compression-webpack-plugin": "^3.1.0",
- "copy-webpack-plugin": "^5.1.1"
- }
-}
diff --git a/gui/build/assert_max_wasm_size.sh b/gui/build/assert_max_wasm_size.sh
deleted file mode 100755
index 82a7ab3de62..00000000000
--- a/gui/build/assert_max_wasm_size.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-
-echoerr() { echo "$@" 1>&2; }
-
-current_size=$(./build/minimize_wasm.sh)
-current_size_len=$((${#current_size} - 1))
-current_size="${current_size:0:current_size_len}"
-
-max_size=2.3 # MiB
-echo "Current size: ${current_size}MiB. Expected maximum size: ${max_size}MiB"
-if (( $(echo "$current_size <= $max_size" |bc -l) ));
-then
- echo OK
-else
- echoerr FAIL
- exit 1
-fi
diff --git a/gui/build/lib/cmd.js b/gui/build/cmd.js
similarity index 97%
rename from gui/build/lib/cmd.js
rename to gui/build/cmd.js
index 84835f78f78..27ade5d73d3 100644
--- a/gui/build/lib/cmd.js
+++ b/gui/build/cmd.js
@@ -1,6 +1,5 @@
let spawn = require('child_process').spawn
-let exec = require('child_process').exec
-
+let exec = require('child_process').exec
function section(title) {
let border = '-'.repeat(8 + title.length)
diff --git a/gui/build/minimize_wasm.sh b/gui/build/minimize_wasm.sh
deleted file mode 100755
index 0fd10248df5..00000000000
--- a/gui/build/minimize_wasm.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-cd target/web || exit 1
-
-cmd=$(command -v wasm-opt)
-cmd_len=${#cmd}
-
-if [ $cmd_len -eq 0 ]
-then
- npm install binaryen
-fi
-
-npx wasm-opt -O3 -o gui_opt.wasm gui.wasm
-gzip --best --force gui_opt.wasm
-du -h gui_opt.wasm.gz | awk '{ print $1 }'
diff --git a/gui/build/package-lock.json b/gui/build/package-lock.json
index 2617d9c5a6b..b102ea5177f 100644
--- a/gui/build/package-lock.json
+++ b/gui/build/package-lock.json
@@ -23,6 +23,25 @@
"color-convert": "^2.0.1"
}
},
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ },
+ "binaryen": {
+ "version": "91.0.0",
+ "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-91.0.0.tgz",
+ "integrity": "sha512-IPeiSHceT5/VXOQ9W4f9k/ryoA1QGdCvpeyFPKsIZQvctN8e1xgvVFK5HHxgfAPf2gWy+plrFdJK5xSe4W8cFQ=="
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
"camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
@@ -51,6 +70,11 @@
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
"decamelize": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
@@ -70,11 +94,43 @@
"path-exists": "^4.0.0"
}
},
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
"get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
},
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
"is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
@@ -88,16 +144,27 @@
"p-locate": "^4.1.0"
}
},
- "minimist": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
},
"ncp": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz",
"integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M="
},
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
"p-limit": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
@@ -124,6 +191,11 @@
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
},
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
+ },
"require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@@ -172,6 +244,11 @@
"strip-ansi": "^6.0.0"
}
},
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ },
"y18n": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
diff --git a/gui/build/package.json b/gui/build/package.json
index 37fa60d86f0..d84782ba295 100644
--- a/gui/build/package.json
+++ b/gui/build/package.json
@@ -4,6 +4,8 @@
"description": "Build Scripts",
"repository": "git@github.com:luna/ide.git",
"dependencies": {
+ "binaryen": "^91.0.0",
+ "glob": "^7.1.6",
"ncp": "^2.0.0",
"yargs": "^15.3.0"
},
diff --git a/gui/build/paths.js b/gui/build/paths.js
new file mode 100644
index 00000000000..8f8af230e3f
--- /dev/null
+++ b/gui/build/paths.js
@@ -0,0 +1,39 @@
+const path = require('path')
+
+
+
+// =============
+// === Paths ===
+// =============
+
+let paths = {}
+
+paths.root = path.dirname(__dirname)
+
+paths.script = {}
+paths.script.main = path.join(paths.root,'run')
+paths.script.root = path.join(paths.root,'build')
+paths.script.run = path.join(paths.script.root,'run')
+
+paths.dist = {}
+paths.dist.root = path.join(paths.root,'dist')
+paths.dist.client = path.join(paths.dist.root,'client')
+paths.dist.content = path.join(paths.dist.root,'content')
+paths.dist.init = path.join(paths.dist.root,'init')
+paths.dist.buildInfo = path.join(paths.dist.root,'build.json')
+
+paths.dist.wasm = {}
+paths.dist.wasm.root = path.join(paths.dist.root,'wasm')
+paths.dist.wasm.main = path.join(paths.dist.wasm.root,'gui.wasm')
+paths.dist.wasm.mainRaw = path.join(paths.dist.wasm.root,'gui_bg.wasm')
+paths.dist.wasm.glue = path.join(paths.dist.wasm.root,'gui.js')
+paths.dist.wasm.mainOpt = path.join(paths.dist.wasm.root,'gui_opt.wasm')
+paths.dist.wasm.mainOptGz = path.join(paths.dist.wasm.root,'gui_opt.wasm.gz')
+
+paths.js = {}
+paths.js.root = path.join(paths.root,'src','js')
+
+paths.rust = {}
+paths.rust.root = path.join(paths.root,'src','rust')
+
+module.exports = paths
diff --git a/gui/build/run.js b/gui/build/run.js
index f999effcbe1..9dc04329acf 100755
--- a/gui/build/run.js
+++ b/gui/build/run.js
@@ -1,17 +1,33 @@
-let fss = require('fs')
-let fs = require('fs').promises
-let cmd = require('./lib/cmd')
-let ncp = require('ncp').ncp
-let yargs = require('yargs')
+const cmd = require('./cmd')
+const fs = require('fs').promises
+const fss = require('fs')
+const glob = require('glob')
+const ncp = require('ncp').ncp
+const path = require('path')
+const paths = require('./paths')
+const stream = require('stream');
+const yargs = require('yargs')
+const zlib = require('zlib');
+
+process.on('unhandledRejection', error => { throw(error) })
+process.chdir(paths.root)
+
+
+const { promisify } = require('util')
+const pipe = promisify(stream.pipeline)
+
+async function gzip(input, output) {
+ const gzip = zlib.createGzip()
+ const source = fss.createReadStream(input)
+ const destination = fss.createWriteStream(output)
+ await pipe(source,gzip,destination)
+}
-// ====================
-// === Global Setup ===
-// ====================
-
-let root = __dirname + '/..'
-process.chdir(root)
+// ========================
+// === Global Variables ===
+// ========================
/// Arguments passed to sub-processes called from this script. This variable is set to a specific
/// value after the command line args get parsed.
@@ -61,14 +77,13 @@ let commands = {}
commands.clean = command(`Clean all build artifacts`)
commands.clean.js = async function() {
- await cmd.with_cwd('app', async () => {
+ await cmd.with_cwd(paths.js.root, async () => {
await run('npm',['run','clean'])
})
- try { await fs.unlink('.initialized') } catch {}
+ try { await fs.unlink(paths.dist.init) } catch {}
}
commands.clean.rust = async function() {
- try { await fs.rmdir('app/generated') } catch {}
await run('cargo',['clean'])
}
@@ -86,22 +101,33 @@ commands.check.rust = async function() {
commands.build = command(`Build the sources in release mode`)
commands.build.js = async function() {
console.log(`Building JS target.`)
- await cmd.with_cwd('app', async () => {
- await run('npm',['run','build'])
- })
+ await run('npm',['run','build'])
}
-commands.build.rust = async function() {
+commands.build.rust = async function(argv) {
console.log(`Building WASM target.`)
- await run('wasm-pack',['build','--target','web','--no-typescript','--out-dir','../../target/web','lib/gui'])
- await patch_file('target/web/gui.js', js_workaround_patcher)
- await fs.rename('target/web/gui_bg.wasm','target/web/gui.wasm')
+ let args = ['build','--target','web','--no-typescript','--out-dir',paths.dist.wasm.root,'lib/debug-scenes']
+ if (argv.dev) { args.push('--dev') }
+ await run('wasm-pack',args)
+ await patch_file(paths.dist.wasm.glue, js_workaround_patcher)
+ await fs.rename(paths.dist.wasm.mainRaw, paths.dist.wasm.main)
+ if (!argv.dev) {
+ // TODO: Enable after updating wasm-pack
+ // https://github.com/rustwasm/wasm-pack/issues/696
+ // console.log('Optimizing the WASM binary.')
+ // await cmd.run('npx',['wasm-opt','-O3','-o',paths.dist.wasm.mainOpt,paths.dist.wasm.main])
- /// We build to provisional location and patch files there before copying, so the backpack don't
- /// get errors from processing unpatched files. Also, here we copy into (overwriting), without
- /// removing old files. Backpack on Windows does not tolerate removing files it watches.
- await fs.mkdir('app/generated', {recursive:true})
- await copy('target/web','app/generated/wasm')
+ console.log('Minimizing the WASM binary.')
+ await gzip(paths.dist.wasm.main,paths.dist.wasm.mainOptGz) // TODO main -> mainOpt
+
+ console.log('Checking the resulting WASM size.')
+ let stats = fss.statSync(paths.dist.wasm.mainOptGz)
+ let limit = 2.4
+ let size = Math.round(100 * stats.size / 1024 / 1024) / 100
+ if (size > limit) {
+ throw(`Output file size exceeds the limit (${size}MB > ${limit}MB).`)
+ }
+ }
}
/// Workaround fix by wdanilo, see: https://github.com/rustwasm/wasm-pack/issues/790
@@ -124,13 +150,13 @@ async function patch_file(path,patcher) {
// === Start ===
commands.start = command(`Build and start desktop client`)
-commands.start.rust = async function() {
- await commands.build.rust()
+commands.start.rust = async function(argv) {
+ await commands.build.rust(argv)
}
commands.start.js = async function() {
console.log(`Building JS target.`)
- await cmd.with_cwd('app', async () => {
+ await cmd.with_cwd(paths.js.root, async () => {
await run('npm',['run','start','--'].concat(targetArgs))
})
}
@@ -140,12 +166,12 @@ commands.start.js = async function() {
commands.test = command(`Run test suites`)
commands.test.rust = async function() {
- console.log(`Running WASM test suite.`)
+ console.log(`Running Rust test suite.`)
await run('cargo',['test'])
- console.log(`Running WASM visual test suite.`)
- await run('cargo',['run','--manifest-path=build/rust/Cargo.toml','--bin','test-all',
- '--','--headless','--chrome'])
+ console.log(`Running Rust visual test suite.`)
+ let args = ['run','--manifest-path=test/Cargo.toml','--bin','test_all','--','--headless','--chrome']
+ await run('cargo',args)
}
@@ -162,13 +188,15 @@ commands.lint.rust = async function() {
commands.watch = command(`Start a file-watch utility and run interactive mode`)
commands.watch.parallel = true
commands.watch.rust = async function() {
- let target = '"' + 'node ./run build --no-js -- --dev ' + subProcessArgs.join(" ") + '"'
- let args = ['watch','--watch','lib','-s',`${target}`]
- await cmd.run('cargo',args)
+ let target = '"' + `node ${paths.script.main} build --no-js --dev -- ` + subProcessArgs.join(" ") + '"'
+ let args = ['watch','--watch','lib','-s',`${target}`]
+ await cmd.with_cwd(paths.rust.root, async () => {
+ await cmd.run('cargo',args)
+ })
}
commands.watch.js = async function() {
- await cmd.with_cwd('app', async () => {
+ await cmd.with_cwd(paths.js.root, async () => {
await run('npm',['run','watch'])
})
}
@@ -177,12 +205,12 @@ commands.watch.js = async function() {
// === Dist ===
commands.dist = command(`Build the sources and create distribution packages`)
-commands.dist.rust = async function() {
- await commands.build.rust()
+commands.dist.rust = async function(argv) {
+ await commands.build.rust(argv)
}
commands.dist.js = async function() {
- await cmd.with_cwd('app', async () => {
+ await cmd.with_cwd(paths.js.root, async () => {
await run('npm',['run','dist'])
})
}
@@ -219,37 +247,63 @@ optParser.options('js', {
default : true
})
+optParser.options('release', {
+ describe : "Enable all optimizations",
+ type : 'bool',
+})
+
+optParser.options('dev', {
+ describe : "Optimize for fast builds",
+ type : 'bool',
+})
+
let commandList = Object.keys(commands)
commandList.sort()
for (let command of commandList) {
let config = commands[command]
- optParser.command(command,config.docs,(args) => {}, function (argv) {
- subProcessArgs = argv['--']
- if(subProcessArgs === undefined) { subProcessArgs = [] }
- let index = subProcessArgs.indexOf('--')
- if (index == -1) {
- targetArgs = []
- }
- else {
- targetArgs = subProcessArgs.slice(index + 1)
- subProcessArgs = subProcessArgs.slice(0,index)
- }
- let runner = async function () {
- let do_rust = argv.rust && config.rust
- let do_js = argv.js && config.js
- if(config.parallel) {
- let promises = []
- if (do_rust) { promises.push(config.rust(argv)) }
- if (do_js) { promises.push(config.js(argv)) }
- await Promise.all(promises)
- } else {
- if (do_rust) { await config.rust(argv) }
- if (do_js) { await config.js(argv) }
- }
- }
- cmd.section(command)
- runner()
- })
+ optParser.command(command,config.docs)
+}
+
+
+
+// ======================
+// === Package Config ===
+// ======================
+
+function defaultConfig() {
+ return {
+ version: "2.0.0-alpha.0",
+ author: {
+ name: "Enso Team",
+ email: "contact@luna-lang.org"
+ },
+ homepage: "https://github.com/luna/ide",
+ repository: {
+ type: "git",
+ url: "git@github.com:luna/ide.git"
+ },
+ bugs: {
+ url: "https://github.com/luna/ide/issues"
+ },
+ }
+}
+
+async function processPackageConfigs() {
+ let files = []
+ files = files.concat(glob.sync(paths.js.root + "/package.js", {cwd:paths.root}))
+ files = files.concat(glob.sync(paths.js.root + "/lib/*/package.js", {cwd:paths.root}))
+ for (file of files) {
+ let dirPath = path.dirname(file)
+ let outPath = path.join(dirPath,'package.json')
+ let src = await fs.readFile(file,'utf8')
+ let modSrc = `module = {}\n${src}\nreturn module.exports`
+ let fn = new Function('require','paths',modSrc)
+ let mod = fn(require,paths)
+ let config = mod.config
+ if (!config) { throw(`Package config '${file}' do not export 'module.config'.`) }
+ config = Object.assign(defaultConfig(),config)
+ fs.writeFile(outPath,JSON.stringify(config,undefined,4))
+ }
}
@@ -260,8 +314,7 @@ for (let command of commandList) {
async function updateBuildVersion () {
let config = {}
- let generatedPath = root + '/app/generated'
- let configPath = generatedPath + '/build.json'
+ let configPath = paths.dist.buildInfo
let exists = fss.existsSync(configPath)
if(exists) {
let configFile = await fs.readFile(configPath)
@@ -271,14 +324,65 @@ async function updateBuildVersion () {
let commitHash = commitHashCmd.trim()
if (config.buildVersion != commitHash) {
config.buildVersion = commitHash
- await fs.mkdir(generatedPath,{recursive:true})
+ await fs.mkdir(paths.dist.root,{recursive:true})
await fs.writeFile(configPath,JSON.stringify(config,undefined,2))
}
}
+async function installJsDeps() {
+ let initialized = fss.existsSync(paths.dist.init)
+ if (!initialized) {
+ console.log('Installing application dependencies')
+ await cmd.with_cwd(paths.js.root, async () => {
+ await cmd.run('npm',['run','install'])
+ })
+ await fs.mkdir(paths.dist.root, {recursive:true})
+ await fs.open(paths.dist.init,'w')
+ }
+}
+
+async function runCommand(command,argv) {
+ let config = commands[command]
+ subProcessArgs = argv['--']
+ if(subProcessArgs === undefined) { subProcessArgs = [] }
+ let index = subProcessArgs.indexOf('--')
+ if (index == -1) {
+ targetArgs = []
+ }
+ else {
+ targetArgs = subProcessArgs.slice(index + 1)
+ subProcessArgs = subProcessArgs.slice(0,index)
+ }
+ let runner = async function () {
+ let do_rust = argv.rust && config.rust
+ let do_js = argv.js && config.js
+ let rustCmd = () => cmd.with_cwd(paths.rust.root, async () => await config.rust(argv))
+ let jsCmd = () => cmd.with_cwd(paths.js.root , async () => await config.js(argv))
+ if(config.parallel) {
+ let promises = []
+ if (do_rust) { promises.push(rustCmd()) }
+ if (do_js) { promises.push(jsCmd()) }
+ await Promise.all(promises)
+ } else {
+ if (do_rust) { await rustCmd() }
+ if (do_js) { await jsCmd() }
+ }
+ }
+ cmd.section(command)
+ runner()
+}
+
async function main () {
+ await processPackageConfigs()
updateBuildVersion()
- optParser.argv
+ let argv = optParser.parse()
+ let command = argv._[0]
+ if(command == 'clean') {
+ try { await fs.unlink(paths.dist.init) } catch {}
+ } else {
+ await installJsDeps()
+ }
+ await runCommand(command,argv)
}
main()
diff --git a/gui/docs/contributing.md b/gui/docs/contributing.md
index 01ecc901224..a753f54fb63 100644
--- a/gui/docs/contributing.md
+++ b/gui/docs/contributing.md
@@ -32,7 +32,7 @@ need the following setup:
## Working with sources
Please note that you should not use a code auto-formatter in this codebase. Please read the following
documents to learn more about reasons behind this decision and the recommended code style guide.
-Be sure to carefully read the [Rust style guide 1](https://github.com/luna/basegl/blob/master/docs/style-guide.md)
+Be sure to carefully read the [Rust style guide 1](https://github.com/luna/ide/blob/master/docs/style-guide.md)
and the [Rust style guide 2](https://github.com/luna/enso/blob/master/doc/rust-style-guide.md) before
contributing to the codebase.
diff --git a/gui/lib/core/msdf-sys/Cargo.toml b/gui/lib/core/msdf-sys/Cargo.toml
deleted file mode 100644
index c8630b4efd1..00000000000
--- a/gui/lib/core/msdf-sys/Cargo.toml
+++ /dev/null
@@ -1,22 +0,0 @@
-[package]
-name = "basegl-core-msdf-sys"
-version = "0.1.0"
-authors = ["Enso Team "]
-edition = "2018"
-
-[lib]
-crate-type = ["cdylib", "rlib"]
-
-[dependencies]
-wasm-bindgen = { version = "=0.2.58" }
-js-sys = { version = "0.3.30" }
-nalgebra = { version = "0.19.0" }
-enso-prelude = { version = "0.1.0", path="../../prelude" }
-
-[dev-dependencies]
-wasm-bindgen-test = { version = "0.3.8" }
-futures = { version = "0.3.1" }
-basegl-core-embedded-fonts = { version = "0.1.0", path="../embedded-fonts" }
-
-[build-dependencies]
-basegl-build-utilities = { version = "0.1.0", path="../../../build/utilities" }
\ No newline at end of file
diff --git a/gui/lib/ide/parser/Cargo.toml b/gui/lib/ide/parser/Cargo.toml
deleted file mode 100644
index 84fe06c998d..00000000000
--- a/gui/lib/ide/parser/Cargo.toml
+++ /dev/null
@@ -1,36 +0,0 @@
-[package]
-name = "parser"
-version = "0.1.0"
-authors = ["Enso Team "]
-edition = "2018"
-build = "build.rs"
-
-[lib]
-crate-type = ["cdylib", "rlib"]
-
-[dependencies]
-ast = { version = "0.1.0", path = "../ast/impl" }
-data = { version = "0.1.0", path = "../../data" }
-enso-prelude = { version = "0.1.0", path = "../../prelude" }
-utils = { version = "0.1.0", path = "../utils" }
-
-console_error_panic_hook = { version = "0.1.6" }
-failure = { version = "0.1" }
-js-sys = { version = "0.3" }
-matches = { version = "0.1" }
-serde = { version = "1.0" , features = ["derive"] }
-serde_json = { version = "1.0" }
-shrinkwraprs = { version = "0.2.1" }
-uuid = { version = "0.8" , features = ["serde", "v5", "wasm-bindgen"] }
-wasm-bindgen = { version = "=0.2.58" }
-wasm-bindgen-test = { version = "0.3.8" }
-
-[build-dependencies]
-basegl-build-utilities = { version = "0.1.0", path = "../../../build/utilities" }
-bytes = { version = "0.5.4" }
-futures = { version = "0.3.1" }
-reqwest = { version = "0.10.1" }
-tokio = { version = "0.2.10", features = ["macros"] }
-
-[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
-websocket = "0.23.0"
diff --git a/gui/run b/gui/run
index 65b203db244..18e53c67daa 100755
--- a/gui/run
+++ b/gui/run
@@ -1,7 +1,11 @@
#!/usr/bin/env node
-let cmd = require('./build/lib/cmd')
-let fss = require('fs')
-let fs = require('fs').promises
+
+const cmd = require('./build/cmd')
+const fs = require('fs').promises
+const fss = require('fs')
+const paths = require('./build/paths')
+
+process.on('unhandledRejection', error => { throw(error) })
let args = process.argv.slice(2)
@@ -10,33 +14,24 @@ async function init () {
if(!args.includes(no_validation)) {
await cmd.check_version('npm','6.13.4',{silent:true})
await cmd.check_version('node','v12.16.1',{silent:true})
- await cmd.check_version('rustc','1.40.0-nightly',{preprocess:(v)=>v.substring(6,20),silent:true})
+ await cmd.check_version('rustc','1.40.0-nightly',{
+ preprocess:(v)=>v.substring(6,20),silent:true
+ })
}
- let initialized = fss.existsSync('target/.initialized')
+ let initialized = fss.existsSync(paths.dist.init)
if (!initialized) {
cmd.section('Initialization')
console.log('Installing build script dependencies.')
await cmd.with_cwd('build', async () => {
await cmd.run('npm',['install'])
})
-
- if(args[0] == 'clean') {
- try { await fs.unlink('target/.initialized') } catch {}
- } else {
- console.log('Installing application dependencies')
- await cmd.with_cwd('app', async () => {
- await cmd.run('npm',['run','install'])
- })
- await fs.mkdir('target', {recursive:true})
- await fs.open('target/.initialized','w')
- }
}
}
async function main() {
await init()
- cmd.run('node',['./build/run'].concat(args))
+ cmd.run('node',[paths.script.run].concat(args))
}
main()
diff --git a/gui/app/.gitignore b/gui/src/js/.gitignore
similarity index 79%
rename from gui/app/.gitignore
rename to gui/src/js/.gitignore
index 02eeeaad643..080fca58ebe 100644
--- a/gui/app/.gitignore
+++ b/gui/src/js/.gitignore
@@ -1,5 +1,5 @@
node_modules
dist
-generated
lerna-debug.log
*.lerna_backup
+package.json
diff --git a/gui/app/lerna.json b/gui/src/js/lerna.json
similarity index 86%
rename from gui/app/lerna.json
rename to gui/src/js/lerna.json
index 9485adfaf0a..9279db0c7ba 100644
--- a/gui/app/lerna.json
+++ b/gui/src/js/lerna.json
@@ -5,7 +5,7 @@
}
},
"packages": [
- "packages/*"
+ "lib/*"
],
"version": "0.0.0"
}
diff --git a/gui/src/js/lib/client/package.js b/gui/src/js/lib/client/package.js
new file mode 100644
index 00000000000..636bcdb8102
--- /dev/null
+++ b/gui/src/js/lib/client/package.js
@@ -0,0 +1,68 @@
+let config = {
+ name: "enso-studio-client",
+ description: "The standalone client for the Enso IDE.",
+ main: "index.js",
+
+ dependencies: {
+ "enso-studio-content": "2.0.0-alpha.0",
+ "enso-studio-common": "2.0.0-alpha.0",
+ "enso-studio-icons": "2.0.0-alpha.0",
+ "copy-webpack-plugin": "^5.1.1",
+ "create-servers": "^3.1.0",
+ "electron-is-dev": "^1.1.0"
+ },
+
+ devDependencies: {
+ "compression-webpack-plugin": "^3.1.0",
+ "copy-webpack-plugin": "^5.1.1",
+ "devtron": "^1.4.0",
+ "electron": "8.0.2",
+ "electron-builder": "^22.3.2"
+ },
+
+ scripts: {
+ "start": `electron ${paths.dist.content} -- `,
+ "build": "webpack ",
+ "dist": "electron-builder",
+ "dist:crossplatform": "electron-builder --mac --win --linux"
+ }
+}
+
+config.build = {
+ appId: "org.enso.studio",
+ productName: "Enso Studio",
+ copyright: "Copyright © 2020 ${author}.",
+ mac: {
+ icon: `${paths.dist.root}/icons/icon.icns`,
+ category: "public.app-category.developer-tools",
+ darkModeSupport: true,
+ type: "distribution"
+ },
+ win: {
+ icon: `${paths.dist.root}/icons/icon.ico`,
+ },
+ linux: {
+ icon: `${paths.dist.root}/icons/png`,
+ category: "Development"
+ },
+ files: [
+ { from: paths.dist.content, to: "." }
+ ],
+ fileAssociations: [
+ {
+ ext: "enso",
+ name: "Enso Source File",
+ role: "Editor"
+ },
+ {
+ ext: "enso-studio",
+ name: "Enso Studio Project",
+ role: "Editor"
+ }
+ ],
+ directories: {
+ "output": paths.dist.client
+ }
+}
+
+module.exports = {config}
diff --git a/gui/app/packages/client/src/index.js b/gui/src/js/lib/client/src/index.js
similarity index 99%
rename from gui/app/packages/client/src/index.js
rename to gui/src/js/lib/client/src/index.js
index 00d7152dc00..cab3a72d7e6 100644
--- a/gui/app/packages/client/src/index.js
+++ b/gui/src/js/lib/client/src/index.js
@@ -6,7 +6,7 @@ import * as minimist from 'minimist'
import * as path from 'path'
import * as pkg from '../package.json'
import * as rootCfg from '../../../package.json'
-import * as buildCfg from '../../../generated/build.json'
+import * as buildCfg from '../../../../../dist/build.json'
import * as Server from 'enso-studio-common/src/server'
diff --git a/gui/app/packages/client/src/preload.js b/gui/src/js/lib/client/src/preload.js
similarity index 100%
rename from gui/app/packages/client/src/preload.js
rename to gui/src/js/lib/client/src/preload.js
diff --git a/gui/src/js/lib/client/webpack.config.js b/gui/src/js/lib/client/webpack.config.js
new file mode 100644
index 00000000000..480ebb96832
--- /dev/null
+++ b/gui/src/js/lib/client/webpack.config.js
@@ -0,0 +1,34 @@
+const Copy = require('copy-webpack-plugin')
+const path = require('path')
+
+const thisPath = path.resolve(__dirname)
+const root = path.resolve(thisPath,'..','..','..','..')
+const distPath = path.resolve(root,'dist')
+
+module.exports = {
+ entry: {
+ index: path.resolve(thisPath,'src','index.js'),
+ },
+ mode: 'production',
+ target: "electron-main",
+ output: {
+ path: path.resolve(distPath,'content'),
+ filename: '[name].js',
+ },
+ plugins: [
+ new Copy([
+ {
+ from : path.resolve(thisPath,'package.json'),
+ to : path.resolve(distPath,'content','package.json')
+ },
+ {
+ from : path.resolve(thisPath,'src','preload.js'),
+ to : path.resolve(distPath,'content','preload.js')
+ }
+ ]),
+ ],
+ performance: {
+ hints: false,
+ },
+ stats: 'minimal',
+}
diff --git a/gui/src/js/lib/common/package.js b/gui/src/js/lib/common/package.js
new file mode 100644
index 00000000000..6b476adb58e
--- /dev/null
+++ b/gui/src/js/lib/common/package.js
@@ -0,0 +1,5 @@
+let config = {
+ name: "enso-studio-common",
+}
+
+module.exports = {config}
diff --git a/gui/app/packages/common/src/animation.js b/gui/src/js/lib/common/src/animation.js
similarity index 100%
rename from gui/app/packages/common/src/animation.js
rename to gui/src/js/lib/common/src/animation.js
diff --git a/gui/app/packages/common/src/html_utils.js b/gui/src/js/lib/common/src/html_utils.js
similarity index 100%
rename from gui/app/packages/common/src/html_utils.js
rename to gui/src/js/lib/common/src/html_utils.js
diff --git a/gui/app/packages/common/src/loader.js b/gui/src/js/lib/common/src/loader.js
similarity index 100%
rename from gui/app/packages/common/src/loader.js
rename to gui/src/js/lib/common/src/loader.js
diff --git a/gui/app/packages/common/src/math.js b/gui/src/js/lib/common/src/math.js
similarity index 100%
rename from gui/app/packages/common/src/math.js
rename to gui/src/js/lib/common/src/math.js
diff --git a/gui/app/packages/common/src/server.js b/gui/src/js/lib/common/src/server.js
similarity index 100%
rename from gui/app/packages/common/src/server.js
rename to gui/src/js/lib/common/src/server.js
diff --git a/gui/app/packages/common/src/svg.js b/gui/src/js/lib/common/src/svg.js
similarity index 100%
rename from gui/app/packages/common/src/svg.js
rename to gui/src/js/lib/common/src/svg.js
diff --git a/gui/src/js/lib/content/package.js b/gui/src/js/lib/content/package.js
new file mode 100644
index 00000000000..44c73f271cb
--- /dev/null
+++ b/gui/src/js/lib/content/package.js
@@ -0,0 +1,17 @@
+let config = {
+ name: "enso-studio-content",
+ scripts: {
+ "build": "webpack",
+ "watch": "webpack-dev-server"
+ },
+ dependencies: {
+ "enso-studio-common": "2.0.0-alpha.0",
+ "copy-webpack-plugin": "^5.1.1"
+ },
+ devDependencies: {
+ "compression-webpack-plugin": "^3.1.0",
+ "copy-webpack-plugin": "^5.1.1"
+ }
+}
+
+module.exports = {config}
diff --git a/gui/app/packages/content/src/index.html b/gui/src/js/lib/content/src/index.html
similarity index 100%
rename from gui/app/packages/content/src/index.html
rename to gui/src/js/lib/content/src/index.html
diff --git a/gui/app/packages/content/src/index.js b/gui/src/js/lib/content/src/index.js
similarity index 100%
rename from gui/app/packages/content/src/index.js
rename to gui/src/js/lib/content/src/index.js
diff --git a/gui/app/packages/content/src/wasm_imports.js b/gui/src/js/lib/content/src/wasm_imports.js
similarity index 100%
rename from gui/app/packages/content/src/wasm_imports.js
rename to gui/src/js/lib/content/src/wasm_imports.js
diff --git a/gui/app/packages/content/webpack.config.js b/gui/src/js/lib/content/webpack.config.js
similarity index 57%
rename from gui/app/packages/content/webpack.config.js
rename to gui/src/js/lib/content/webpack.config.js
index a6aad5d9b72..f2b298e655a 100644
--- a/gui/app/packages/content/webpack.config.js
+++ b/gui/src/js/lib/content/webpack.config.js
@@ -1,16 +1,19 @@
const CopyWebpackPlugin = require('copy-webpack-plugin')
const CompressionPlugin = require('compression-webpack-plugin')
+const path = require('path')
-const path = require('path')
-const root = path.resolve(__dirname)
+const thisPath = path.resolve(__dirname)
+const root = path.resolve(thisPath,'..','..','..','..')
+const distPath = path.resolve(root,'dist')
+const wasmPath = path.resolve(distPath,'wasm')
module.exports = {
entry: {
- index: path.resolve(root,'src','index.js'),
+ index: path.resolve(thisPath,'src','index.js'),
wasm_imports: './src/wasm_imports.js',
},
output: {
- path: path.resolve(root,'dist','assets'),
+ path: path.resolve(root,'dist','content','assets'),
filename: '[name].js',
libraryTarget: 'umd',
},
@@ -20,8 +23,8 @@ module.exports = {
plugins: [
new CompressionPlugin(),
new CopyWebpackPlugin([
- path.resolve(root,'src','index.html'),
- path.resolve(root,'..','..','generated','wasm','gui.wasm'),
+ path.resolve(thisPath,'src','index.html'),
+ path.resolve(wasmPath,'gui.wasm'),
]),
],
devServer: {
@@ -32,7 +35,7 @@ module.exports = {
},
resolve: {
alias: {
- wasm_rust_glue$: path.resolve(root,'..','..','generated','wasm','gui.js')
+ wasm_rust_glue$: path.resolve(wasmPath,'gui.js')
}
},
performance: {
diff --git a/gui/src/js/lib/icons/package.js b/gui/src/js/lib/icons/package.js
new file mode 100644
index 00000000000..fd1331c2574
--- /dev/null
+++ b/gui/src/js/lib/icons/package.js
@@ -0,0 +1,12 @@
+let config = {
+ name: "enso-studio-icons",
+ scripts: {
+ "build": "node src/index.js"
+ },
+ devDependencies: {
+ "sharp": "^0.24.1",
+ "to-ico": "^1.1.5"
+ }
+}
+
+module.exports = {config}
diff --git a/gui/app/packages/icons/src/index.js b/gui/src/js/lib/icons/src/index.js
similarity index 91%
rename from gui/app/packages/icons/src/index.js
rename to gui/src/js/lib/icons/src/index.js
index 59ea0960ec4..45363615b15 100644
--- a/gui/app/packages/icons/src/index.js
+++ b/gui/src/js/lib/icons/src/index.js
@@ -308,23 +308,29 @@ const exec = require('child_process').exec;
const spawn = require('child_process').spawn;
const toIco = require('to-ico')
const sharp = require("sharp")
+const path = require('path')
+
+const thisPath = path.resolve(__dirname)
+const root = path.resolve(thisPath,'..','..','..','..','..')
+const distPath = path.resolve(root,'dist','icons')
+const donePath = path.resolve(distPath,'init')
async function genIcons() {
let sizes = [16,32,64,128,256,512,1024]
let win_sizes = [16,32,64,128,256]
- if(fss.existsSync('dist/.initialized')) {
- console.log("The 'dist/.initialized' file exists. Icons will not be regenerated.")
+ if(fss.existsSync(donePath)) {
+ console.log(`The ${donePath} file exists. Icons will not be regenerated.`)
return
}
console.log("Generating SVG icons.")
- await fs.mkdir('dist/svg', {recursive:true})
- await fs.mkdir('dist/png', {recursive:true})
+ await fs.mkdir(path.resolve(distPath,'svg'), {recursive:true})
+ await fs.mkdir(path.resolve(distPath,'png'), {recursive:true})
for (let size of sizes) {
let name = `icon_${size}x${size}.svg`
- await fs.writeFile(`dist/svg/${name}`,exports.generateMinimalWhiteLogo(size,true))
+ await fs.writeFile(`${distPath}/svg/${name}`,exports.generateMinimalWhiteLogo(size,true))
}
/// Please note that this function converts the SVG to PNG
@@ -335,36 +341,36 @@ async function genIcons() {
for (let size of sizes) {
let inName = `icon_${size}x${size}.svg`
let outName = `icon_${size}x${size}.png`
- await sharp(`dist/svg/${inName}`,{density:144}).png().resize({
+ await sharp(`${distPath}/svg/${inName}`,{density:144}).png().resize({
width : size,
kernel : sharp.kernel.mitchell
- }).toFile(`dist/png/${outName}`)
+ }).toFile(`${distPath}/png/${outName}`)
}
for (let size of sizes.slice(1)) {
let size2 = size / 2
let inName = `icon_${size}x${size}.svg`
let outName = `icon_${size2}x${size2}@2x.png`
- await sharp(`dist/svg/${inName}`,{density:144}).png().resize({
+ await sharp(`${distPath}/svg/${inName}`,{density:144}).png().resize({
width : size,
kernel : sharp.kernel.mitchell
- }).toFile(`dist/png/${outName}`)
+ }).toFile(`${distPath}/png/${outName}`)
}
console.log("Generating ICNS.")
- exec(`cp -R dist/png dist/png.iconset`)
- exec(`iconutil --convert icns --output dist/icon.icns dist/png.iconset`)
+ exec(`cp -R ${distPath}/png ${distPath}/png.iconset`)
+ exec(`iconutil --convert icns --output ${distPath}/icon.icns ${distPath}/png.iconset`)
console.log("Generating ICO.")
let files = []
for (let size of win_sizes) {
let inName = `icon_${size}x${size}.png`
- let data = await fs.readFile(`dist/png/${inName}`)
+ let data = await fs.readFile(`${distPath}/png/${inName}`)
files.push(data)
}
- toIco(files).then(buf => { fss.writeFileSync('dist/icon.ico', buf) })
+ toIco(files).then(buf => { fss.writeFileSync(`${distPath}/icon.ico`, buf) })
- await fs.open('dist/.initialized','w')
+ await fs.open(donePath,'w')
}
genIcons()
diff --git a/gui/app/package-lock.json b/gui/src/js/package-lock.json
similarity index 99%
rename from gui/app/package-lock.json
rename to gui/src/js/package-lock.json
index 01b54e82d70..7817abd6ef6 100644
--- a/gui/app/package-lock.json
+++ b/gui/src/js/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "root",
- "version": "1.0.0",
+ "version": "2.0.0-alpha.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -3398,9 +3398,9 @@
}
},
"minimist": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.4.tgz",
- "integrity": "sha512-wTiNDqe4D2rbTJGZk1qcdZgFtY0/r+iuE6GDT7V0/+Gu5MLpIDm4+CssDECR79OJs/OxLPXMzdxy153b5Qy3hg==",
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
"dev": true
},
"readable-stream": {
@@ -4094,9 +4094,9 @@
},
"dependencies": {
"@types/node": {
- "version": "12.12.29",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.29.tgz",
- "integrity": "sha512-yo8Qz0ygADGFptISDj3pOC9wXfln/5pQaN/ysDIzOaAWXt73cNHmtEC8zSO2Y+kse/txmwIAJzkYZ5fooaS5DQ=="
+ "version": "12.12.30",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.30.tgz",
+ "integrity": "sha512-sz9MF/zk6qVr3pAnM0BSQvYIBK44tS75QC5N+VbWSE4DjCV/pJ+UzCW/F+vVnl7TkOPcuwQureKNtSSwjBTaMg=="
}
}
},
@@ -5859,9 +5859,9 @@
}
},
"minimist": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.4.tgz",
- "integrity": "sha512-wTiNDqe4D2rbTJGZk1qcdZgFtY0/r+iuE6GDT7V0/+Gu5MLpIDm4+CssDECR79OJs/OxLPXMzdxy153b5Qy3hg==",
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
"dev": true
},
"parse-json": {
@@ -6021,9 +6021,9 @@
}
},
"minimist": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.4.tgz",
- "integrity": "sha512-wTiNDqe4D2rbTJGZk1qcdZgFtY0/r+iuE6GDT7V0/+Gu5MLpIDm4+CssDECR79OJs/OxLPXMzdxy153b5Qy3hg==",
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
"dev": true
}
}
@@ -6074,9 +6074,9 @@
}
},
"minimist": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.4.tgz",
- "integrity": "sha512-wTiNDqe4D2rbTJGZk1qcdZgFtY0/r+iuE6GDT7V0/+Gu5MLpIDm4+CssDECR79OJs/OxLPXMzdxy153b5Qy3hg==",
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
"dev": true
}
}
@@ -8088,9 +8088,9 @@
"dev": true
},
"node-fetch-npm": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz",
- "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.3.tgz",
+ "integrity": "sha512-DgwoKEsqLnFZtk3ap7GWBHcHwnUhsNmQqEDcdjfQ8GofLEFJ081NAd4Uin3R7RFZBWVJCwHISw1oaEqPgSLloA==",
"dev": true,
"requires": {
"encoding": "^0.1.11",
@@ -8969,9 +8969,9 @@
},
"dependencies": {
"minimist": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.4.tgz",
- "integrity": "sha512-wTiNDqe4D2rbTJGZk1qcdZgFtY0/r+iuE6GDT7V0/+Gu5MLpIDm4+CssDECR79OJs/OxLPXMzdxy153b5Qy3hg=="
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
}
}
},
@@ -9210,9 +9210,9 @@
},
"dependencies": {
"minimist": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.4.tgz",
- "integrity": "sha512-wTiNDqe4D2rbTJGZk1qcdZgFtY0/r+iuE6GDT7V0/+Gu5MLpIDm4+CssDECR79OJs/OxLPXMzdxy153b5Qy3hg=="
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
}
}
},
@@ -9261,9 +9261,9 @@
}
},
"minimist": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.4.tgz",
- "integrity": "sha512-wTiNDqe4D2rbTJGZk1qcdZgFtY0/r+iuE6GDT7V0/+Gu5MLpIDm4+CssDECR79OJs/OxLPXMzdxy153b5Qy3hg=="
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
}
}
},
@@ -10708,9 +10708,9 @@
},
"dependencies": {
"minimist": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.4.tgz",
- "integrity": "sha512-wTiNDqe4D2rbTJGZk1qcdZgFtY0/r+iuE6GDT7V0/+Gu5MLpIDm4+CssDECR79OJs/OxLPXMzdxy153b5Qy3hg==",
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
"dev": true
}
}
@@ -12213,9 +12213,9 @@
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
},
"yargs": {
- "version": "14.2.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.2.tgz",
- "integrity": "sha512-/4ld+4VV5RnrynMhPZJ/ZpOCGSCeghMykZ3BhdFBDa9Wy/RH6uEGNWDJog+aUlq+9OM1CFTgtYRW5Is1Po9NOA==",
+ "version": "14.2.3",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz",
+ "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==",
"dev": true,
"requires": {
"cliui": "^5.0.0",
@@ -12228,7 +12228,7 @@
"string-width": "^3.0.0",
"which-module": "^2.0.0",
"y18n": "^4.0.0",
- "yargs-parser": "^15.0.0"
+ "yargs-parser": "^15.0.1"
},
"dependencies": {
"ansi-regex": {
@@ -12266,9 +12266,9 @@
}
},
"yargs-parser": {
- "version": "15.0.0",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.0.tgz",
- "integrity": "sha512-xLTUnCMc4JhxrPEPUYD5IBR1mWCK/aT6+RJ/K29JY2y1vD+FhtgKK0AXRWvI262q3QSffAQuTouFIKUuHX89wQ==",
+ "version": "15.0.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz",
+ "integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==",
"dev": true,
"requires": {
"camelcase": "^5.0.0",
diff --git a/gui/src/js/package.js b/gui/src/js/package.js
new file mode 100644
index 00000000000..32a56f7e03c
--- /dev/null
+++ b/gui/src/js/package.js
@@ -0,0 +1,21 @@
+let config = {
+ name: "root",
+ version: "2.0.0-alpha.0",
+ private: true,
+ devDependencies: {
+ "lerna": "^3.20.2",
+ "webpack": "^4.42.0",
+ "webpack-cli": "^3.3.11",
+ "webpack-dev-server": "^3.1.5"
+ },
+ scripts: {
+ "build": "lerna run build --stream",
+ "clean": "rm -Rf node_modules && lerna clean -y",
+ "dist": "lerna run build --stream && lerna run dist --stream",
+ "install": "npm install lerna && lerna bootstrap",
+ "start": "npm run build && lerna run start --stream -- -- ",
+ "watch": "lerna run watch --stream"
+ }
+}
+
+module.exports = {config}
diff --git a/gui/src/rust/.gitignore b/gui/src/rust/.gitignore
new file mode 100644
index 00000000000..f2d8d134a5e
--- /dev/null
+++ b/gui/src/rust/.gitignore
@@ -0,0 +1,7 @@
+# Rust
+target
+**/*.rs.bk
+
+# A thirdparty downloaded js
+/ensogl/msdf-sys/msdfgen_wasm.js
+/ide/parser/pkg/
diff --git a/gui/Cargo.lock b/gui/src/rust/Cargo.lock
similarity index 99%
rename from gui/Cargo.lock
rename to gui/src/rust/Cargo.lock
index bfee3d30ef8..38d853338e7 100644
--- a/gui/Cargo.lock
+++ b/gui/src/rust/Cargo.lock
@@ -138,89 +138,6 @@ name = "base64"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-[[package]]
-name = "basegl"
-version = "0.1.0"
-dependencies = [
- "Inflector 0.11.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "basegl-core-embedded-fonts 0.1.0",
- "basegl-core-msdf-sys 0.1.0",
- "basegl-system-web 0.1.0",
- "bit_field 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "code-builder 0.1.0",
- "console_error_panic_hook 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "data 0.1.0",
- "enso-frp 0.1.0",
- "enso-prelude 0.1.0",
- "enum_dispatch 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "eval-tt 0.1.0",
- "failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "itertools 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "js-sys 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)",
- "logger 0.1.0",
- "nalgebra 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "num_enum 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "optics 0.1.0",
- "palette 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "paste 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "rustc-hash 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "shapely 0.1.0",
- "shrinkwraprs 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "smallvec 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "typenum 1.11.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "wasm-bindgen 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
- "wasm-bindgen-test 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "web-sys 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)",
- "web-test 0.1.0",
-]
-
-[[package]]
-name = "basegl-build-utilities"
-version = "0.1.0"
-dependencies = [
- "download-lp 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "path-clean 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "basegl-core-embedded-fonts"
-version = "0.1.0"
-dependencies = [
- "basegl-build-utilities 0.1.0",
- "enso-prelude 0.1.0",
- "zip 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "basegl-core-msdf-sys"
-version = "0.1.0"
-dependencies = [
- "basegl-build-utilities 0.1.0",
- "basegl-core-embedded-fonts 0.1.0",
- "enso-prelude 0.1.0",
- "futures 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "js-sys 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)",
- "nalgebra 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "wasm-bindgen 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
- "wasm-bindgen-test 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "basegl-system-web"
-version = "0.1.0"
-dependencies = [
- "console_error_panic_hook 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "data 0.1.0",
- "enso-prelude 0.1.0",
- "failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "js-sys 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)",
- "logger 0.1.0",
- "nalgebra 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "wasm-bindgen 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
- "wasm-bindgen-test 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "web-sys 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
[[package]]
name = "bit_field"
version = "0.10.0"
@@ -565,8 +482,8 @@ dependencies = [
name = "enso-frp"
version = "0.1.0"
dependencies = [
- "basegl-system-web 0.1.0",
"enso-prelude 0.1.0",
+ "ensogl-system-web 0.1.0",
"keyboard-types 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
"percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"rust-dense-bitset 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -592,6 +509,89 @@ dependencies = [
"weak-table 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
]
+[[package]]
+name = "ensogl"
+version = "0.1.0"
+dependencies = [
+ "Inflector 0.11.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "bit_field 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "code-builder 0.1.0",
+ "console_error_panic_hook 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "data 0.1.0",
+ "enso-frp 0.1.0",
+ "enso-prelude 0.1.0",
+ "ensogl-core-embedded-fonts 0.1.0",
+ "ensogl-core-msdf-sys 0.1.0",
+ "ensogl-system-web 0.1.0",
+ "enum_dispatch 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "eval-tt 0.1.0",
+ "failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "itertools 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "js-sys 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)",
+ "logger 0.1.0",
+ "nalgebra 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num_enum 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "optics 0.1.0",
+ "palette 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "paste 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc-hash 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "shapely 0.1.0",
+ "shrinkwraprs 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "smallvec 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "typenum 1.11.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "wasm-bindgen 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
+ "wasm-bindgen-test 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "web-sys 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)",
+ "web-test 0.1.0",
+]
+
+[[package]]
+name = "ensogl-build-utilities"
+version = "0.1.0"
+dependencies = [
+ "download-lp 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "path-clean 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "ensogl-core-embedded-fonts"
+version = "0.1.0"
+dependencies = [
+ "enso-prelude 0.1.0",
+ "ensogl-build-utilities 0.1.0",
+ "zip 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "ensogl-core-msdf-sys"
+version = "0.1.0"
+dependencies = [
+ "enso-prelude 0.1.0",
+ "ensogl-build-utilities 0.1.0",
+ "ensogl-core-embedded-fonts 0.1.0",
+ "futures 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "js-sys 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)",
+ "nalgebra 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "wasm-bindgen 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
+ "wasm-bindgen-test 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "ensogl-system-web"
+version = "0.1.0"
+dependencies = [
+ "console_error_panic_hook 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "data 0.1.0",
+ "enso-prelude 0.1.0",
+ "failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "js-sys 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)",
+ "logger 0.1.0",
+ "nalgebra 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "wasm-bindgen 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
+ "wasm-bindgen-test 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "web-sys 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
[[package]]
name = "enum_dispatch"
version = "0.2.1"
@@ -861,11 +861,11 @@ dependencies = [
name = "gui"
version = "0.1.0"
dependencies = [
- "basegl 0.1.0",
- "basegl-core-msdf-sys 0.1.0",
- "basegl-system-web 0.1.0",
"enso-frp 0.1.0",
"enso-prelude 0.1.0",
+ "ensogl 0.1.0",
+ "ensogl-core-msdf-sys 0.1.0",
+ "ensogl-system-web 0.1.0",
"ide 0.1.0",
"js-sys 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)",
"nalgebra 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1068,13 +1068,13 @@ name = "ide"
version = "0.1.0"
dependencies = [
"ast 0.1.0",
- "basegl 0.1.0",
- "basegl-core-msdf-sys 0.1.0",
- "basegl-system-web 0.1.0",
"console_error_panic_hook 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
"data 0.1.0",
"enso-frp 0.1.0",
"enso-prelude 0.1.0",
+ "ensogl 0.1.0",
+ "ensogl-core-msdf-sys 0.1.0",
+ "ensogl-system-web 0.1.0",
"failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
"file-manager-client 0.1.0",
"flo_stream 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1660,11 +1660,11 @@ name = "parser"
version = "0.1.0"
dependencies = [
"ast 0.1.0",
- "basegl-build-utilities 0.1.0",
"bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)",
"console_error_panic_hook 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
"data 0.1.0",
"enso-prelude 0.1.0",
+ "ensogl-build-utilities 0.1.0",
"failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
"futures 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
"js-sys 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2935,9 +2935,9 @@ dependencies = [
name = "web-test"
version = "0.1.0"
dependencies = [
- "basegl 0.1.0",
- "basegl-system-web 0.1.0",
"enso-prelude 0.1.0",
+ "ensogl 0.1.0",
+ "ensogl-system-web 0.1.0",
"js-sys 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)",
"shrinkwraprs 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"wasm-bindgen 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)",
diff --git a/gui/Cargo.toml b/gui/src/rust/Cargo.toml
similarity index 62%
rename from gui/Cargo.toml
rename to gui/src/rust/Cargo.toml
index ea742d06762..48ba516200c 100644
--- a/gui/Cargo.toml
+++ b/gui/src/rust/Cargo.toml
@@ -1,23 +1,24 @@
[workspace]
members = [
- "build/utilities",
+ "build",
+ "ensogl",
+ "ensogl/embedded-fonts",
+ "ensogl/msdf-sys",
+ "ide",
+ "ide/ast/impl",
+ "ide/ast/macros",
+ "ide/file-manager",
+ "ide/file-manager/mock-server",
+ "ide/json-rpc",
+ "ide/parser",
+ "ide/utils",
+
"lib/code-builder",
- "lib/core",
- "lib/core/embedded-fonts",
- "lib/core/msdf-sys",
"lib/data",
+ "lib/debug-scenes",
"lib/eval-tt",
"lib/frp",
- "lib/gui",
- "lib/ide/ast/impl",
- "lib/ide/ast/macros",
- "lib/ide/file-manager",
- "lib/ide/file-manager/mock-server",
- "lib/ide/",
- "lib/ide/json-rpc",
- "lib/ide/parser",
- "lib/ide/utils",
"lib/logger",
"lib/macro-utils",
"lib/optics",
diff --git a/gui/build/utilities/Cargo.toml b/gui/src/rust/build/Cargo.toml
similarity index 82%
rename from gui/build/utilities/Cargo.toml
rename to gui/src/rust/build/Cargo.toml
index da98c637454..348799a29e2 100644
--- a/gui/build/utilities/Cargo.toml
+++ b/gui/src/rust/build/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "basegl-build-utilities"
+name = "ensogl-build-utilities"
version = "0.1.0"
authors = ["Enso Team "]
edition = "2018"
diff --git a/gui/build/utilities/src/lib.rs b/gui/src/rust/build/src/lib.rs
similarity index 100%
rename from gui/build/utilities/src/lib.rs
rename to gui/src/rust/build/src/lib.rs
diff --git a/gui/lib/core/Cargo.toml b/gui/src/rust/ensogl/Cargo.toml
similarity index 59%
rename from gui/lib/core/Cargo.toml
rename to gui/src/rust/ensogl/Cargo.toml
index 6c1dcd8a1bc..1b8f95e433c 100644
--- a/gui/lib/core/Cargo.toml
+++ b/gui/src/rust/ensogl/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "basegl"
+name = "ensogl"
version = "0.1.0"
authors = ["Enso Team "]
edition = "2018"
@@ -13,36 +13,36 @@ statistics = []
no_unboxed_callbacks = []
[dependencies]
-basegl-core-embedded-fonts = { version = "0.1.0" , path = "embedded-fonts" }
-basegl-core-msdf-sys = { version = "0.1.0" , path = "msdf-sys" }
-enso-prelude = { version = "0.1.0" , path = "../prelude" }
-basegl-system-web = { version = "0.1.0" , path = "../system/web" }
-code-builder = { version = "0.1.0" , path = "../code-builder" }
-data = { version = "0.1.0" , path = "../data" }
-enso-frp = { version = "0.1.0" , path = "../frp" }
-eval-tt = { version = "0.1.0" , path = "../eval-tt" }
-logger = { version = "0.1.0" , path = "../logger" }
-optics = { version = "0.1.0" , path = "../optics" }
-shapely = { version = "0.1.0" , path = "../shapely/impl" }
+ensogl-core-embedded-fonts = { version = "0.1.0" , path = "embedded-fonts" }
+ensogl-core-msdf-sys = { version = "0.1.0" , path = "msdf-sys" }
+enso-prelude = { version = "0.1.0" , path = "../lib/prelude" }
+ensogl-system-web = { version = "0.1.0" , path = "../lib/system/web" }
+code-builder = { version = "0.1.0" , path = "../lib/code-builder" }
+data = { version = "0.1.0" , path = "../lib/data" }
+enso-frp = { version = "0.1.0" , path = "../lib/frp" }
+eval-tt = { version = "0.1.0" , path = "../lib/eval-tt" }
+logger = { version = "0.1.0" , path = "../lib/logger" }
+optics = { version = "0.1.0" , path = "../lib/optics" }
+shapely = { version = "0.1.0" , path = "../lib/shapely/impl" }
-bit_field = { version = "0.10.0" }
-console_error_panic_hook = { version = "0.1.6" }
-enum_dispatch = { version = "0.2.0" }
-failure = { version = "0.1.5" }
-Inflector = { version = "0.11.4" }
-itertools = { version = "0.8" }
-js-sys = { version = "0.3.28" }
-nalgebra = { version = "0.19.0" }
-num_enum = { version = "0.4.2" }
-paste = { version = "0.1.6" }
-palette = { version = "0.5.0" }
-rustc-hash = { version = "1.0.1" }
-shrinkwraprs = { version = "0.3.0" }
-smallvec = { version = "1.0.0" }
-typenum = { version = "1.11.2" }
-# We require exact version of wasm-bindgen because we do patching final js in our build process, and this is vulnerable
-# to any wasm-bindgen version change.
-wasm-bindgen = { version = "=0.2.58" , features = ["nightly"] }
+bit_field = { version = "0.10.0" }
+console_error_panic_hook = { version = "0.1.6" }
+enum_dispatch = { version = "0.2.0" }
+failure = { version = "0.1.5" }
+Inflector = { version = "0.11.4" }
+itertools = { version = "0.8" }
+js-sys = { version = "0.3.28" }
+nalgebra = { version = "0.19.0" }
+num_enum = { version = "0.4.2" }
+paste = { version = "0.1.6" }
+palette = { version = "0.5.0" }
+rustc-hash = { version = "1.0.1" }
+shrinkwraprs = { version = "0.3.0" }
+smallvec = { version = "1.0.0" }
+typenum = { version = "1.11.2" }
+# We require exact version of wasm-bindgen because we do patching final js in our build process,
+# and this is vulnerable to any wasm-bindgen version change.
+wasm-bindgen = { version = "=0.2.58" , features = ["nightly"] }
[dependencies.web-sys]
version = "0.3.4"
@@ -82,5 +82,5 @@ features = [
]
[dev-dependencies]
-wasm-bindgen-test = { version = "0.3.8" }
-web-test = { version = "0.1.0", path = "../web-test" }
+wasm-bindgen-test = { version = "0.3.8" }
+web-test = { version = "0.1.0", path = "../lib/web-test" }
diff --git a/gui/lib/core/build.rs b/gui/src/rust/ensogl/build.rs
similarity index 100%
rename from gui/lib/core/build.rs
rename to gui/src/rust/ensogl/build.rs
diff --git a/gui/lib/core/embedded-fonts/Cargo.toml b/gui/src/rust/ensogl/embedded-fonts/Cargo.toml
similarity index 61%
rename from gui/lib/core/embedded-fonts/Cargo.toml
rename to gui/src/rust/ensogl/embedded-fonts/Cargo.toml
index d0326391db3..8e6e7c2bc06 100644
--- a/gui/lib/core/embedded-fonts/Cargo.toml
+++ b/gui/src/rust/ensogl/embedded-fonts/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "basegl-core-embedded-fonts"
+name = "ensogl-core-embedded-fonts"
version = "0.1.0"
authors = ["Enso Team "]
edition = "2018"
@@ -10,8 +10,8 @@ crate-type = ["cdylib", "rlib"]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
-enso-prelude = { version = "0.1.0", path="../../prelude"}
+enso-prelude = { version = "0.1.0", path="../../lib/prelude"}
[build-dependencies]
-basegl-build-utilities = { version = "0.1.0", path="../../../build/utilities" }
+ensogl-build-utilities = { version = "0.1.0", path="../../build" }
zip = "0.5"
diff --git a/gui/lib/core/embedded-fonts/build.rs b/gui/src/rust/ensogl/embedded-fonts/build.rs
similarity index 98%
rename from gui/lib/core/embedded-fonts/build.rs
rename to gui/src/rust/ensogl/embedded-fonts/build.rs
index 329949f3203..1bd327fd1d8 100644
--- a/gui/lib/core/embedded-fonts/build.rs
+++ b/gui/src/rust/ensogl/embedded-fonts/build.rs
@@ -38,7 +38,7 @@ mod deja_vu {
use crate::FillMapRsFile;
use std::path;
- use basegl_build_utilities::GithubRelease;
+ use ensogl_build_utilities::GithubRelease;
pub const PACKAGE : GithubRelease<&str> = GithubRelease {
project_url : "https://github.com/dejavu-fonts/dejavu-fonts/",
diff --git a/gui/lib/core/embedded-fonts/src/lib.rs b/gui/src/rust/ensogl/embedded-fonts/src/lib.rs
similarity index 100%
rename from gui/lib/core/embedded-fonts/src/lib.rs
rename to gui/src/rust/ensogl/embedded-fonts/src/lib.rs
diff --git a/gui/src/rust/ensogl/msdf-sys/Cargo.toml b/gui/src/rust/ensogl/msdf-sys/Cargo.toml
new file mode 100644
index 00000000000..4001e0a4fd0
--- /dev/null
+++ b/gui/src/rust/ensogl/msdf-sys/Cargo.toml
@@ -0,0 +1,22 @@
+[package]
+name = "ensogl-core-msdf-sys"
+version = "0.1.0"
+authors = ["Enso Team "]
+edition = "2018"
+
+[lib]
+crate-type = ["cdylib", "rlib"]
+
+[dependencies]
+wasm-bindgen = { version = "=0.2.58" }
+js-sys = { version = "0.3.30" }
+nalgebra = { version = "0.19.0" }
+enso-prelude = { version = "0.1.0", path="../../lib/prelude" }
+
+[dev-dependencies]
+wasm-bindgen-test = { version = "0.3.8" }
+futures = { version = "0.3.1" }
+ensogl-core-embedded-fonts = { version = "0.1.0", path="../embedded-fonts" }
+
+[build-dependencies]
+ensogl-build-utilities = { version = "0.1.0", path="../../build" }
\ No newline at end of file
diff --git a/gui/lib/core/msdf-sys/build.rs b/gui/src/rust/ensogl/msdf-sys/build.rs
similarity index 97%
rename from gui/lib/core/msdf-sys/build.rs
rename to gui/src/rust/ensogl/msdf-sys/build.rs
index 674a0be8884..1eceeb3fb83 100644
--- a/gui/lib/core/msdf-sys/build.rs
+++ b/gui/src/rust/ensogl/msdf-sys/build.rs
@@ -1,6 +1,6 @@
mod msdfgen_wasm {
- use basegl_build_utilities::GithubRelease;
+ use ensogl_build_utilities::GithubRelease;
use std::{path,fs};
use std::io::Write;
diff --git a/gui/lib/core/msdf-sys/src/emscripten_data.rs b/gui/src/rust/ensogl/msdf-sys/src/emscripten_data.rs
similarity index 100%
rename from gui/lib/core/msdf-sys/src/emscripten_data.rs
rename to gui/src/rust/ensogl/msdf-sys/src/emscripten_data.rs
diff --git a/gui/lib/core/msdf-sys/src/internal.rs b/gui/src/rust/ensogl/msdf-sys/src/internal.rs
similarity index 100%
rename from gui/lib/core/msdf-sys/src/internal.rs
rename to gui/src/rust/ensogl/msdf-sys/src/internal.rs
diff --git a/gui/lib/core/msdf-sys/src/lib.rs b/gui/src/rust/ensogl/msdf-sys/src/lib.rs
similarity index 99%
rename from gui/lib/core/msdf-sys/src/lib.rs
rename to gui/src/rust/ensogl/msdf-sys/src/lib.rs
index 27d612ca6ee..d477f903d80 100644
--- a/gui/lib/core/msdf-sys/src/lib.rs
+++ b/gui/src/rust/ensogl/msdf-sys/src/lib.rs
@@ -213,7 +213,7 @@ impl Drop for MultichannelSignedDistanceField {
mod tests {
use super::*;
- use basegl_core_embedded_fonts::EmbeddedFonts;
+ use ensogl_core_embedded_fonts::EmbeddedFonts;
use nalgebra::Vector2;
use wasm_bindgen_test::wasm_bindgen_test;
use wasm_bindgen_test::wasm_bindgen_test_configure;
diff --git a/gui/lib/core/src/animation.rs b/gui/src/rust/ensogl/src/animation.rs
similarity index 100%
rename from gui/lib/core/src/animation.rs
rename to gui/src/rust/ensogl/src/animation.rs
diff --git a/gui/lib/core/src/animation/animator.rs b/gui/src/rust/ensogl/src/animation/animator.rs
similarity index 100%
rename from gui/lib/core/src/animation/animator.rs
rename to gui/src/rust/ensogl/src/animation/animator.rs
diff --git a/gui/lib/core/src/animation/animator/continuous.rs b/gui/src/rust/ensogl/src/animation/animator/continuous.rs
similarity index 100%
rename from gui/lib/core/src/animation/animator/continuous.rs
rename to gui/src/rust/ensogl/src/animation/animator/continuous.rs
diff --git a/gui/lib/core/src/animation/animator/easing.rs b/gui/src/rust/ensogl/src/animation/animator/easing.rs
similarity index 100%
rename from gui/lib/core/src/animation/animator/easing.rs
rename to gui/src/rust/ensogl/src/animation/animator/easing.rs
diff --git a/gui/lib/core/src/animation/animator/fixed_step.rs b/gui/src/rust/ensogl/src/animation/animator/fixed_step.rs
similarity index 100%
rename from gui/lib/core/src/animation/animator/fixed_step.rs
rename to gui/src/rust/ensogl/src/animation/animator/fixed_step.rs
diff --git a/gui/lib/core/src/animation/easing.rs b/gui/src/rust/ensogl/src/animation/easing.rs
similarity index 100%
rename from gui/lib/core/src/animation/easing.rs
rename to gui/src/rust/ensogl/src/animation/easing.rs
diff --git a/gui/lib/core/src/animation/physics.rs b/gui/src/rust/ensogl/src/animation/physics.rs
similarity index 100%
rename from gui/lib/core/src/animation/physics.rs
rename to gui/src/rust/ensogl/src/animation/physics.rs
diff --git a/gui/lib/core/src/animation/physics/inertia.rs b/gui/src/rust/ensogl/src/animation/physics/inertia.rs
similarity index 100%
rename from gui/lib/core/src/animation/physics/inertia.rs
rename to gui/src/rust/ensogl/src/animation/physics/inertia.rs
diff --git a/gui/lib/core/src/control.rs b/gui/src/rust/ensogl/src/control.rs
similarity index 100%
rename from gui/lib/core/src/control.rs
rename to gui/src/rust/ensogl/src/control.rs
diff --git a/gui/lib/core/src/control/callback.rs b/gui/src/rust/ensogl/src/control/callback.rs
similarity index 100%
rename from gui/lib/core/src/control/callback.rs
rename to gui/src/rust/ensogl/src/control/callback.rs
diff --git a/gui/lib/core/src/control/event_loop.rs b/gui/src/rust/ensogl/src/control/event_loop.rs
similarity index 100%
rename from gui/lib/core/src/control/event_loop.rs
rename to gui/src/rust/ensogl/src/control/event_loop.rs
diff --git a/gui/lib/core/src/control/io.rs b/gui/src/rust/ensogl/src/control/io.rs
similarity index 100%
rename from gui/lib/core/src/control/io.rs
rename to gui/src/rust/ensogl/src/control/io.rs
diff --git a/gui/lib/core/src/control/io/keyboard.rs b/gui/src/rust/ensogl/src/control/io/keyboard.rs
similarity index 100%
rename from gui/lib/core/src/control/io/keyboard.rs
rename to gui/src/rust/ensogl/src/control/io/keyboard.rs
diff --git a/gui/lib/core/src/control/io/keyboard/listener.rs b/gui/src/rust/ensogl/src/control/io/keyboard/listener.rs
similarity index 100%
rename from gui/lib/core/src/control/io/keyboard/listener.rs
rename to gui/src/rust/ensogl/src/control/io/keyboard/listener.rs
diff --git a/gui/lib/core/src/control/io/mouse.rs b/gui/src/rust/ensogl/src/control/io/mouse.rs
similarity index 100%
rename from gui/lib/core/src/control/io/mouse.rs
rename to gui/src/rust/ensogl/src/control/io/mouse.rs
diff --git a/gui/lib/core/src/control/io/mouse/button.rs b/gui/src/rust/ensogl/src/control/io/mouse/button.rs
similarity index 100%
rename from gui/lib/core/src/control/io/mouse/button.rs
rename to gui/src/rust/ensogl/src/control/io/mouse/button.rs
diff --git a/gui/lib/core/src/control/io/mouse/event.rs b/gui/src/rust/ensogl/src/control/io/mouse/event.rs
similarity index 100%
rename from gui/lib/core/src/control/io/mouse/event.rs
rename to gui/src/rust/ensogl/src/control/io/mouse/event.rs
diff --git a/gui/lib/core/src/data.rs b/gui/src/rust/ensogl/src/data.rs
similarity index 100%
rename from gui/lib/core/src/data.rs
rename to gui/src/rust/ensogl/src/data.rs
diff --git a/gui/lib/core/src/data/color.rs b/gui/src/rust/ensogl/src/data/color.rs
similarity index 100%
rename from gui/lib/core/src/data/color.rs
rename to gui/src/rust/ensogl/src/data/color.rs
diff --git a/gui/lib/core/src/data/container.rs b/gui/src/rust/ensogl/src/data/container.rs
similarity index 100%
rename from gui/lib/core/src/data/container.rs
rename to gui/src/rust/ensogl/src/data/container.rs
diff --git a/gui/lib/core/src/data/dirty.rs b/gui/src/rust/ensogl/src/data/dirty.rs
similarity index 100%
rename from gui/lib/core/src/data/dirty.rs
rename to gui/src/rust/ensogl/src/data/dirty.rs
diff --git a/gui/lib/core/src/data/function.rs b/gui/src/rust/ensogl/src/data/function.rs
similarity index 100%
rename from gui/lib/core/src/data/function.rs
rename to gui/src/rust/ensogl/src/data/function.rs
diff --git a/gui/lib/core/src/data/function/callback.rs b/gui/src/rust/ensogl/src/data/function/callback.rs
similarity index 100%
rename from gui/lib/core/src/data/function/callback.rs
rename to gui/src/rust/ensogl/src/data/function/callback.rs
diff --git a/gui/lib/core/src/data/function/procedure.rs b/gui/src/rust/ensogl/src/data/function/procedure.rs
similarity index 100%
rename from gui/lib/core/src/data/function/procedure.rs
rename to gui/src/rust/ensogl/src/data/function/procedure.rs
diff --git a/gui/lib/core/src/data/seq.rs b/gui/src/rust/ensogl/src/data/seq.rs
similarity index 100%
rename from gui/lib/core/src/data/seq.rs
rename to gui/src/rust/ensogl/src/data/seq.rs
diff --git a/gui/lib/core/src/data/seq/observable.rs b/gui/src/rust/ensogl/src/data/seq/observable.rs
similarity index 100%
rename from gui/lib/core/src/data/seq/observable.rs
rename to gui/src/rust/ensogl/src/data/seq/observable.rs
diff --git a/gui/lib/core/src/data/theme.rs b/gui/src/rust/ensogl/src/data/theme.rs
similarity index 100%
rename from gui/lib/core/src/data/theme.rs
rename to gui/src/rust/ensogl/src/data/theme.rs
diff --git a/gui/lib/core/src/debug.rs b/gui/src/rust/ensogl/src/debug.rs
similarity index 100%
rename from gui/lib/core/src/debug.rs
rename to gui/src/rust/ensogl/src/debug.rs
diff --git a/gui/lib/core/src/debug/monitor.rs b/gui/src/rust/ensogl/src/debug/monitor.rs
similarity index 100%
rename from gui/lib/core/src/debug/monitor.rs
rename to gui/src/rust/ensogl/src/debug/monitor.rs
diff --git a/gui/lib/core/src/debug/stats.rs b/gui/src/rust/ensogl/src/debug/stats.rs
similarity index 100%
rename from gui/lib/core/src/debug/stats.rs
rename to gui/src/rust/ensogl/src/debug/stats.rs
diff --git a/gui/lib/core/src/display.rs b/gui/src/rust/ensogl/src/display.rs
similarity index 100%
rename from gui/lib/core/src/display.rs
rename to gui/src/rust/ensogl/src/display.rs
diff --git a/gui/lib/core/src/display/camera.rs b/gui/src/rust/ensogl/src/display/camera.rs
similarity index 100%
rename from gui/lib/core/src/display/camera.rs
rename to gui/src/rust/ensogl/src/display/camera.rs
diff --git a/gui/lib/core/src/display/camera/camera2d.rs b/gui/src/rust/ensogl/src/display/camera/camera2d.rs
similarity index 100%
rename from gui/lib/core/src/display/camera/camera2d.rs
rename to gui/src/rust/ensogl/src/display/camera/camera2d.rs
diff --git a/gui/lib/core/src/display/layout.rs b/gui/src/rust/ensogl/src/display/layout.rs
similarity index 100%
rename from gui/lib/core/src/display/layout.rs
rename to gui/src/rust/ensogl/src/display/layout.rs
diff --git a/gui/lib/core/src/display/layout/alignment.rs b/gui/src/rust/ensogl/src/display/layout/alignment.rs
similarity index 100%
rename from gui/lib/core/src/display/layout/alignment.rs
rename to gui/src/rust/ensogl/src/display/layout/alignment.rs
diff --git a/gui/lib/core/src/display/navigation.rs b/gui/src/rust/ensogl/src/display/navigation.rs
similarity index 100%
rename from gui/lib/core/src/display/navigation.rs
rename to gui/src/rust/ensogl/src/display/navigation.rs
diff --git a/gui/lib/core/src/display/navigation/navigator.rs b/gui/src/rust/ensogl/src/display/navigation/navigator.rs
similarity index 100%
rename from gui/lib/core/src/display/navigation/navigator.rs
rename to gui/src/rust/ensogl/src/display/navigation/navigator.rs
diff --git a/gui/lib/core/src/display/navigation/navigator/events.rs b/gui/src/rust/ensogl/src/display/navigation/navigator/events.rs
similarity index 100%
rename from gui/lib/core/src/display/navigation/navigator/events.rs
rename to gui/src/rust/ensogl/src/display/navigation/navigator/events.rs
diff --git a/gui/lib/core/src/display/object.rs b/gui/src/rust/ensogl/src/display/object.rs
similarity index 100%
rename from gui/lib/core/src/display/object.rs
rename to gui/src/rust/ensogl/src/display/object.rs
diff --git a/gui/lib/core/src/display/object/transform.rs b/gui/src/rust/ensogl/src/display/object/transform.rs
similarity index 100%
rename from gui/lib/core/src/display/object/transform.rs
rename to gui/src/rust/ensogl/src/display/object/transform.rs
diff --git a/gui/lib/core/src/display/render.rs b/gui/src/rust/ensogl/src/display/render.rs
similarity index 100%
rename from gui/lib/core/src/display/render.rs
rename to gui/src/rust/ensogl/src/display/render.rs
diff --git a/gui/lib/core/src/display/render/composer.rs b/gui/src/rust/ensogl/src/display/render/composer.rs
similarity index 100%
rename from gui/lib/core/src/display/render/composer.rs
rename to gui/src/rust/ensogl/src/display/render/composer.rs
diff --git a/gui/lib/core/src/display/render/passes.rs b/gui/src/rust/ensogl/src/display/render/passes.rs
similarity index 100%
rename from gui/lib/core/src/display/render/passes.rs
rename to gui/src/rust/ensogl/src/display/render/passes.rs
diff --git a/gui/lib/core/src/display/render/passes/pixel_read.rs b/gui/src/rust/ensogl/src/display/render/passes/pixel_read.rs
similarity index 100%
rename from gui/lib/core/src/display/render/passes/pixel_read.rs
rename to gui/src/rust/ensogl/src/display/render/passes/pixel_read.rs
diff --git a/gui/lib/core/src/display/render/passes/screen.rs b/gui/src/rust/ensogl/src/display/render/passes/screen.rs
similarity index 100%
rename from gui/lib/core/src/display/render/passes/screen.rs
rename to gui/src/rust/ensogl/src/display/render/passes/screen.rs
diff --git a/gui/lib/core/src/display/render/passes/symbols.rs b/gui/src/rust/ensogl/src/display/render/passes/symbols.rs
similarity index 100%
rename from gui/lib/core/src/display/render/passes/symbols.rs
rename to gui/src/rust/ensogl/src/display/render/passes/symbols.rs
diff --git a/gui/lib/core/src/display/render/pipeline.rs b/gui/src/rust/ensogl/src/display/render/pipeline.rs
similarity index 100%
rename from gui/lib/core/src/display/render/pipeline.rs
rename to gui/src/rust/ensogl/src/display/render/pipeline.rs
diff --git a/gui/lib/core/src/display/scene.rs b/gui/src/rust/ensogl/src/display/scene.rs
similarity index 100%
rename from gui/lib/core/src/display/scene.rs
rename to gui/src/rust/ensogl/src/display/scene.rs
diff --git a/gui/lib/core/src/display/scene/dom.rs b/gui/src/rust/ensogl/src/display/scene/dom.rs
similarity index 100%
rename from gui/lib/core/src/display/scene/dom.rs
rename to gui/src/rust/ensogl/src/display/scene/dom.rs
diff --git a/gui/lib/core/src/display/shape.rs b/gui/src/rust/ensogl/src/display/shape.rs
similarity index 100%
rename from gui/lib/core/src/display/shape.rs
rename to gui/src/rust/ensogl/src/display/shape.rs
diff --git a/gui/lib/core/src/display/shape/compound.rs b/gui/src/rust/ensogl/src/display/shape/compound.rs
similarity index 100%
rename from gui/lib/core/src/display/shape/compound.rs
rename to gui/src/rust/ensogl/src/display/shape/compound.rs
diff --git a/gui/lib/core/src/display/shape/compound/.gitkeep b/gui/src/rust/ensogl/src/display/shape/compound/.gitkeep
similarity index 100%
rename from gui/lib/core/src/display/shape/compound/.gitkeep
rename to gui/src/rust/ensogl/src/display/shape/compound/.gitkeep
diff --git a/gui/lib/core/src/display/shape/primitive.rs b/gui/src/rust/ensogl/src/display/shape/primitive.rs
similarity index 100%
rename from gui/lib/core/src/display/shape/primitive.rs
rename to gui/src/rust/ensogl/src/display/shape/primitive.rs
diff --git a/gui/lib/core/src/display/shape/primitive/def.rs b/gui/src/rust/ensogl/src/display/shape/primitive/def.rs
similarity index 100%
rename from gui/lib/core/src/display/shape/primitive/def.rs
rename to gui/src/rust/ensogl/src/display/shape/primitive/def.rs
diff --git a/gui/lib/core/src/display/shape/primitive/def/class.rs b/gui/src/rust/ensogl/src/display/shape/primitive/def/class.rs
similarity index 100%
rename from gui/lib/core/src/display/shape/primitive/def/class.rs
rename to gui/src/rust/ensogl/src/display/shape/primitive/def/class.rs
diff --git a/gui/lib/core/src/display/shape/primitive/def/modifier.rs b/gui/src/rust/ensogl/src/display/shape/primitive/def/modifier.rs
similarity index 100%
rename from gui/lib/core/src/display/shape/primitive/def/modifier.rs
rename to gui/src/rust/ensogl/src/display/shape/primitive/def/modifier.rs
diff --git a/gui/lib/core/src/display/shape/primitive/def/primitive.rs b/gui/src/rust/ensogl/src/display/shape/primitive/def/primitive.rs
similarity index 100%
rename from gui/lib/core/src/display/shape/primitive/def/primitive.rs
rename to gui/src/rust/ensogl/src/display/shape/primitive/def/primitive.rs
diff --git a/gui/lib/core/src/display/shape/primitive/def/unit.rs b/gui/src/rust/ensogl/src/display/shape/primitive/def/unit.rs
similarity index 100%
rename from gui/lib/core/src/display/shape/primitive/def/unit.rs
rename to gui/src/rust/ensogl/src/display/shape/primitive/def/unit.rs
diff --git a/gui/lib/core/src/display/shape/primitive/def/var.rs b/gui/src/rust/ensogl/src/display/shape/primitive/def/var.rs
similarity index 100%
rename from gui/lib/core/src/display/shape/primitive/def/var.rs
rename to gui/src/rust/ensogl/src/display/shape/primitive/def/var.rs
diff --git a/gui/lib/core/src/display/shape/primitive/glsl/color.glsl b/gui/src/rust/ensogl/src/display/shape/primitive/glsl/color.glsl
similarity index 100%
rename from gui/lib/core/src/display/shape/primitive/glsl/color.glsl
rename to gui/src/rust/ensogl/src/display/shape/primitive/glsl/color.glsl
diff --git a/gui/lib/core/src/display/shape/primitive/glsl/debug.glsl b/gui/src/rust/ensogl/src/display/shape/primitive/glsl/debug.glsl
similarity index 100%
rename from gui/lib/core/src/display/shape/primitive/glsl/debug.glsl
rename to gui/src/rust/ensogl/src/display/shape/primitive/glsl/debug.glsl
diff --git a/gui/lib/core/src/display/shape/primitive/glsl/fragment_runner.glsl b/gui/src/rust/ensogl/src/display/shape/primitive/glsl/fragment_runner.glsl
similarity index 100%
rename from gui/lib/core/src/display/shape/primitive/glsl/fragment_runner.glsl
rename to gui/src/rust/ensogl/src/display/shape/primitive/glsl/fragment_runner.glsl
diff --git a/gui/lib/core/src/display/shape/primitive/glsl/math.glsl b/gui/src/rust/ensogl/src/display/shape/primitive/glsl/math.glsl
similarity index 100%
rename from gui/lib/core/src/display/shape/primitive/glsl/math.glsl
rename to gui/src/rust/ensogl/src/display/shape/primitive/glsl/math.glsl
diff --git a/gui/lib/core/src/display/shape/primitive/glsl/overload.js b/gui/src/rust/ensogl/src/display/shape/primitive/glsl/overload.js
similarity index 100%
rename from gui/lib/core/src/display/shape/primitive/glsl/overload.js
rename to gui/src/rust/ensogl/src/display/shape/primitive/glsl/overload.js
diff --git a/gui/lib/core/src/display/shape/primitive/glsl/shape.glsl b/gui/src/rust/ensogl/src/display/shape/primitive/glsl/shape.glsl
similarity index 100%
rename from gui/lib/core/src/display/shape/primitive/glsl/shape.glsl
rename to gui/src/rust/ensogl/src/display/shape/primitive/glsl/shape.glsl
diff --git a/gui/lib/core/src/display/shape/primitive/shader.rs b/gui/src/rust/ensogl/src/display/shape/primitive/shader.rs
similarity index 100%
rename from gui/lib/core/src/display/shape/primitive/shader.rs
rename to gui/src/rust/ensogl/src/display/shape/primitive/shader.rs
diff --git a/gui/lib/core/src/display/shape/primitive/shader/builder.rs b/gui/src/rust/ensogl/src/display/shape/primitive/shader/builder.rs
similarity index 100%
rename from gui/lib/core/src/display/shape/primitive/shader/builder.rs
rename to gui/src/rust/ensogl/src/display/shape/primitive/shader/builder.rs
diff --git a/gui/lib/core/src/display/shape/primitive/shader/canvas.rs b/gui/src/rust/ensogl/src/display/shape/primitive/shader/canvas.rs
similarity index 100%
rename from gui/lib/core/src/display/shape/primitive/shader/canvas.rs
rename to gui/src/rust/ensogl/src/display/shape/primitive/shader/canvas.rs
diff --git a/gui/lib/core/src/display/shape/primitive/shader/overload.rs b/gui/src/rust/ensogl/src/display/shape/primitive/shader/overload.rs
similarity index 100%
rename from gui/lib/core/src/display/shape/primitive/shader/overload.rs
rename to gui/src/rust/ensogl/src/display/shape/primitive/shader/overload.rs
diff --git a/gui/lib/core/src/display/shape/primitive/system.rs b/gui/src/rust/ensogl/src/display/shape/primitive/system.rs
similarity index 100%
rename from gui/lib/core/src/display/shape/primitive/system.rs
rename to gui/src/rust/ensogl/src/display/shape/primitive/system.rs
diff --git a/gui/lib/core/src/display/shape/text.rs b/gui/src/rust/ensogl/src/display/shape/text.rs
similarity index 100%
rename from gui/lib/core/src/display/shape/text.rs
rename to gui/src/rust/ensogl/src/display/shape/text.rs
diff --git a/gui/lib/core/src/display/shape/text/glyph.rs b/gui/src/rust/ensogl/src/display/shape/text/glyph.rs
similarity index 100%
rename from gui/lib/core/src/display/shape/text/glyph.rs
rename to gui/src/rust/ensogl/src/display/shape/text/glyph.rs
diff --git a/gui/lib/core/src/display/shape/text/glyph/font.rs b/gui/src/rust/ensogl/src/display/shape/text/glyph/font.rs
similarity index 97%
rename from gui/lib/core/src/display/shape/text/glyph/font.rs
rename to gui/src/rust/ensogl/src/display/shape/text/glyph/font.rs
index bb31a7833a7..3e5dd97c2f3 100644
--- a/gui/lib/core/src/display/shape/text/glyph/font.rs
+++ b/gui/src/rust/ensogl/src/display/shape/text/glyph/font.rs
@@ -6,8 +6,8 @@ use crate::display::shape::text::glyph::msdf::MsdfTexture;
use crate::display::shape::text::glyph::msdf::convert_msdf_translation;
use crate::display::shape::text::glyph::msdf::x_distance_from_msdf_value;
-use basegl_core_msdf_sys as msdf_sys;
-use basegl_core_embedded_fonts::EmbeddedFonts;
+use ensogl_core_msdf_sys as msdf_sys;
+use ensogl_core_embedded_fonts::EmbeddedFonts;
use msdf_sys::MsdfParameters;
use msdf_sys::MultichannelSignedDistanceField;
use nalgebra::Vector2;
@@ -285,7 +285,7 @@ mod tests {
use super::*;
use crate::display::shape::text::glyph::msdf::MsdfTexture;
- use basegl_core_embedded_fonts::EmbeddedFonts;
+ use ensogl_core_embedded_fonts::EmbeddedFonts;
use wasm_bindgen_test::wasm_bindgen_test;
use wasm_bindgen_test::wasm_bindgen_test_configure;
@@ -303,7 +303,7 @@ mod tests {
#[wasm_bindgen_test(async)]
async fn empty_font_render_info() {
- basegl_core_msdf_sys::initialized().await;
+ ensogl_core_msdf_sys::initialized().await;
let font_render_info = create_test_font_render_info();
assert_eq!(TEST_FONT_NAME, font_render_info.name);
@@ -313,7 +313,7 @@ mod tests {
#[wasm_bindgen_test(async)]
async fn loading_glyph_info() {
- basegl_core_msdf_sys::initialized().await;
+ ensogl_core_msdf_sys::initialized().await;
let font_render_info = create_test_font_render_info();
font_render_info.get_glyph_info('A');
@@ -341,7 +341,7 @@ mod tests {
#[wasm_bindgen_test(async)]
async fn getting_or_creating_char() {
- basegl_core_msdf_sys::initialized().await;
+ ensogl_core_msdf_sys::initialized().await;
let font_render_info = create_test_font_render_info();
{
diff --git a/gui/lib/core/src/display/shape/text/glyph/glyph.glsl b/gui/src/rust/ensogl/src/display/shape/text/glyph/glyph.glsl
similarity index 100%
rename from gui/lib/core/src/display/shape/text/glyph/glyph.glsl
rename to gui/src/rust/ensogl/src/display/shape/text/glyph/glyph.glsl
diff --git a/gui/lib/core/src/display/shape/text/glyph/msdf.rs b/gui/src/rust/ensogl/src/display/shape/text/glyph/msdf.rs
similarity index 98%
rename from gui/lib/core/src/display/shape/text/glyph/msdf.rs
rename to gui/src/rust/ensogl/src/display/shape/text/glyph/msdf.rs
index 0ac9a6e433e..1913c21c767 100644
--- a/gui/lib/core/src/display/shape/text/glyph/msdf.rs
+++ b/gui/src/rust/ensogl/src/display/shape/text/glyph/msdf.rs
@@ -2,7 +2,7 @@
use crate::prelude::*;
-use basegl_core_msdf_sys as msdf_sys;
+use ensogl_core_msdf_sys as msdf_sys;
use msdf_sys::MultichannelSignedDistanceField;
use nalgebra::clamp;
@@ -134,7 +134,7 @@ mod test {
#[wasm_bindgen_test(async)]
async fn msdf_translation_converting() {
- basegl_core_msdf_sys::initialized().await;
+ ensogl_core_msdf_sys::initialized().await;
let mut msdf = MultichannelSignedDistanceField::mock_results();
msdf.translation = Vector2::new(16.0, 4.0);
diff --git a/gui/lib/core/src/display/shape/text/glyph/pen.rs b/gui/src/rust/ensogl/src/display/shape/text/glyph/pen.rs
similarity index 98%
rename from gui/lib/core/src/display/shape/text/glyph/pen.rs
rename to gui/src/rust/ensogl/src/display/shape/text/glyph/pen.rs
index 09bbb543e9a..6194ad4fe22 100644
--- a/gui/lib/core/src/display/shape/text/glyph/pen.rs
+++ b/gui/src/rust/ensogl/src/display/shape/text/glyph/pen.rs
@@ -83,7 +83,7 @@ mod tests {
#[wasm_bindgen_test(async)]
async fn moving_pen(){
- basegl_core_msdf_sys::initialized().await;
+ ensogl_core_msdf_sys::initialized().await;
let font = FontHandle::new(FontRenderInfo::mock_font("Test font".to_string()));
mock_a_glyph_info(font.clone_ref());
mock_w_glyph_info(font.clone_ref());
diff --git a/gui/lib/core/src/display/shape/text/glyph/system.rs b/gui/src/rust/ensogl/src/display/shape/text/glyph/system.rs
similarity index 100%
rename from gui/lib/core/src/display/shape/text/glyph/system.rs
rename to gui/src/rust/ensogl/src/display/shape/text/glyph/system.rs
diff --git a/gui/lib/core/src/display/shape/text/text_field.rs b/gui/src/rust/ensogl/src/display/shape/text/text_field.rs
similarity index 99%
rename from gui/lib/core/src/display/shape/text/text_field.rs
rename to gui/src/rust/ensogl/src/display/shape/text/text_field.rs
index ca09ae5bf4a..67df2995577 100644
--- a/gui/lib/core/src/display/shape/text/text_field.rs
+++ b/gui/src/rust/ensogl/src/display/shape/text/text_field.rs
@@ -1,4 +1,4 @@
-//! A module defining TextField. TextField is a basegl component displaying editable block of text.
+//! A module defining TextField. TextField is a ensogl component displaying editable block of text.
pub mod content;
pub mod cursor;
diff --git a/gui/lib/core/src/display/shape/text/text_field/content.rs b/gui/src/rust/ensogl/src/display/shape/text/text_field/content.rs
similarity index 99%
rename from gui/lib/core/src/display/shape/text/text_field/content.rs
rename to gui/src/rust/ensogl/src/display/shape/text/text_field/content.rs
index 4b7d0b265dc..e14ed841b28 100644
--- a/gui/lib/core/src/display/shape/text/text_field/content.rs
+++ b/gui/src/rust/ensogl/src/display/shape/text/text_field/content.rs
@@ -379,7 +379,7 @@ pub(crate) mod test {
use crate::display::shape::text::glyph::font::FontRenderInfo;
- use basegl_core_msdf_sys as msdf_sys;
+ use ensogl_core_msdf_sys as msdf_sys;
use nalgebra::Vector2;
use nalgebra::Vector4;
use wasm_bindgen_test::wasm_bindgen_test;
diff --git a/gui/lib/core/src/display/shape/text/text_field/content/line.rs b/gui/src/rust/ensogl/src/display/shape/text/text_field/content/line.rs
similarity index 98%
rename from gui/lib/core/src/display/shape/text/text_field/content/line.rs
rename to gui/src/rust/ensogl/src/display/shape/text/text_field/content/line.rs
index 592fe804982..9ecc13b3bd3 100644
--- a/gui/lib/core/src/display/shape/text/text_field/content/line.rs
+++ b/gui/src/rust/ensogl/src/display/shape/text/text_field/content/line.rs
@@ -189,7 +189,7 @@ mod test {
#[wasm_bindgen_test(async)]
async fn getting_chars_x_position() {
- basegl_core_msdf_sys::initialized().await;
+ ensogl_core_msdf_sys::initialized().await;
let mut line = Line::new("ABA");
let mut line_ref = LineFullInfo {
line : &mut line,
@@ -210,7 +210,7 @@ mod test {
#[wasm_bindgen_test(async)]
async fn finding_char_by_x_position() {
- basegl_core_msdf_sys::initialized().await;
+ ensogl_core_msdf_sys::initialized().await;
let mut line = Line::new("ABBA");
let mut line_ref = LineFullInfo {
line : &mut line,
@@ -245,7 +245,7 @@ mod test {
#[wasm_bindgen_test(async)]
async fn finding_char_by_x_position_in_empty_line() {
- basegl_core_msdf_sys::initialized().await;
+ ensogl_core_msdf_sys::initialized().await;
let mut line = Line::new("");
let mut line_ref = LineFullInfo {
line : &mut line,
@@ -261,7 +261,7 @@ mod test {
#[wasm_bindgen_test(async)]
async fn modifying_line() {
- basegl_core_msdf_sys::initialized().await;
+ ensogl_core_msdf_sys::initialized().await;
let mut line = Line::new("AB");
let mut line_ref = LineFullInfo {
line : &mut line,
diff --git a/gui/lib/core/src/display/shape/text/text_field/content/location.rs b/gui/src/rust/ensogl/src/display/shape/text/text_field/content/location.rs
similarity index 100%
rename from gui/lib/core/src/display/shape/text/text_field/content/location.rs
rename to gui/src/rust/ensogl/src/display/shape/text/text_field/content/location.rs
diff --git a/gui/lib/core/src/display/shape/text/text_field/cursor.rs b/gui/src/rust/ensogl/src/display/shape/text/text_field/cursor.rs
similarity index 99%
rename from gui/lib/core/src/display/shape/text/text_field/cursor.rs
rename to gui/src/rust/ensogl/src/display/shape/text/text_field/cursor.rs
index b7e45e8725f..27f40f7960b 100644
--- a/gui/lib/core/src/display/shape/text/text_field/cursor.rs
+++ b/gui/src/rust/ensogl/src/display/shape/text/text_field/cursor.rs
@@ -416,7 +416,7 @@ mod test {
use super::*;
use Step::*;
- use basegl_core_msdf_sys as msdf_sys;
+ use ensogl_core_msdf_sys as msdf_sys;
use crate::display::shape::text::glyph::font::FontRegistry;
use crate::display::shape::text::text_field::content::TextFieldContent;
@@ -430,7 +430,7 @@ mod test {
#[wasm_bindgen_test(async)]
async fn moving_cursors() {
- basegl_core_msdf_sys::initialized().await;
+ ensogl_core_msdf_sys::initialized().await;
let text = "FirstLine.\nSecondLine\nThirdLine";
let initial_cursors = vec!
[ Cursor::new(TextLocation {line:0, column:0 })
@@ -468,7 +468,7 @@ mod test {
#[wasm_bindgen_test(async)]
async fn moving_without_select() {
- basegl_core_msdf_sys::initialized().await;
+ ensogl_core_msdf_sys::initialized().await;
let text = "FirstLine\nSecondLine";
let initial_cursor = Cursor {
position : TextLocation {line:1, column:0},
@@ -492,7 +492,7 @@ mod test {
#[wasm_bindgen_test(async)]
async fn moving_with_select() {
- basegl_core_msdf_sys::initialized().await;
+ ensogl_core_msdf_sys::initialized().await;
let text = "FirstLine\nSecondLine";
let initial_loc = TextLocation {line:0,column:1};
let initial_cursors = vec![Cursor::new(initial_loc)];
@@ -513,7 +513,7 @@ mod test {
#[wasm_bindgen_test(async)]
async fn merging_selection_after_moving() {
- basegl_core_msdf_sys::initialized().await;
+ ensogl_core_msdf_sys::initialized().await;
let make_char_loc = |(line,column):(usize,usize)| TextLocation {line,column};
let cursor_on_left = |range:&Range<(usize,usize)>| Cursor {
position : make_char_loc(range.start),
diff --git a/gui/lib/core/src/display/shape/text/text_field/frp.rs b/gui/src/rust/ensogl/src/display/shape/text/text_field/frp.rs
similarity index 100%
rename from gui/lib/core/src/display/shape/text/text_field/frp.rs
rename to gui/src/rust/ensogl/src/display/shape/text/text_field/frp.rs
diff --git a/gui/lib/core/src/display/shape/text/text_field/frp/keyboard.rs b/gui/src/rust/ensogl/src/display/shape/text/text_field/frp/keyboard.rs
similarity index 100%
rename from gui/lib/core/src/display/shape/text/text_field/frp/keyboard.rs
rename to gui/src/rust/ensogl/src/display/shape/text/text_field/frp/keyboard.rs
diff --git a/gui/lib/core/src/display/shape/text/text_field/frp/mouse.rs b/gui/src/rust/ensogl/src/display/shape/text/text_field/frp/mouse.rs
similarity index 100%
rename from gui/lib/core/src/display/shape/text/text_field/frp/mouse.rs
rename to gui/src/rust/ensogl/src/display/shape/text/text_field/frp/mouse.rs
diff --git a/gui/lib/core/src/display/shape/text/text_field/render.rs b/gui/src/rust/ensogl/src/display/shape/text/text_field/render.rs
similarity index 100%
rename from gui/lib/core/src/display/shape/text/text_field/render.rs
rename to gui/src/rust/ensogl/src/display/shape/text/text_field/render.rs
diff --git a/gui/lib/core/src/display/shape/text/text_field/render/assignment.rs b/gui/src/rust/ensogl/src/display/shape/text/text_field/render/assignment.rs
similarity index 99%
rename from gui/lib/core/src/display/shape/text/text_field/render/assignment.rs
rename to gui/src/rust/ensogl/src/display/shape/text/text_field/render/assignment.rs
index 13b213ad854..06835e4ec88 100644
--- a/gui/lib/core/src/display/shape/text/text_field/render/assignment.rs
+++ b/gui/src/rust/ensogl/src/display/shape/text/text_field/render/assignment.rs
@@ -317,7 +317,7 @@ mod tests {
#[wasm_bindgen_test(async)]
async fn initial_assignment() {
- basegl_core_msdf_sys::initialized().await;
+ ensogl_core_msdf_sys::initialized().await;
let properties = mock_properties();
let mut content = TextFieldContent::new("AAABBB\nBAABAB\n\nA\nA",&properties);
@@ -344,7 +344,7 @@ mod tests {
#[wasm_bindgen_test(async)]
async fn lines_reassignment() {
- basegl_core_msdf_sys::initialized().await;
+ ensogl_core_msdf_sys::initialized().await;
let properties = mock_properties();
let mut content = TextFieldContent::new("AAABBB\nBAABAB\n\nA\nA\nAB",&properties);
@@ -397,7 +397,7 @@ mod tests {
#[wasm_bindgen_test(async)]
async fn marking_dirty_after_x_scrolling() {
- basegl_core_msdf_sys::initialized().await;
+ ensogl_core_msdf_sys::initialized().await;
let properties = mock_properties();
let mut content = TextFieldContent::new("AAABBB\nBAABAB\nBBABAB\nA\nA",&properties);
@@ -428,7 +428,7 @@ mod tests {
#[wasm_bindgen_test(async)]
async fn update_after_text_edit() {
- basegl_core_msdf_sys::initialized().await;
+ ensogl_core_msdf_sys::initialized().await;
let properties = mock_properties();
let mut assignment = GlyphLinesAssignment::new(3, 4, 10.0);
diff --git a/gui/lib/core/src/display/shape/text/text_field/render/selection.rs b/gui/src/rust/ensogl/src/display/shape/text/text_field/render/selection.rs
similarity index 100%
rename from gui/lib/core/src/display/shape/text/text_field/render/selection.rs
rename to gui/src/rust/ensogl/src/display/shape/text/text_field/render/selection.rs
diff --git a/gui/lib/core/src/display/shape/text/text_field/word_occurrence.rs b/gui/src/rust/ensogl/src/display/shape/text/text_field/word_occurrence.rs
similarity index 99%
rename from gui/lib/core/src/display/shape/text/text_field/word_occurrence.rs
rename to gui/src/rust/ensogl/src/display/shape/text/text_field/word_occurrence.rs
index 4595c7013cc..7e793cf212d 100644
--- a/gui/lib/core/src/display/shape/text/text_field/word_occurrence.rs
+++ b/gui/src/rust/ensogl/src/display/shape/text/text_field/word_occurrence.rs
@@ -188,7 +188,7 @@ mod test {
use super::*;
use crate::display::shape::text::text_field::content::test::mock_properties;
- use basegl_core_msdf_sys as msdf_sys;
+ use ensogl_core_msdf_sys as msdf_sys;
use wasm_bindgen_test::wasm_bindgen_test;
#[wasm_bindgen_test(async)]
diff --git a/gui/lib/core/src/display/symbol.rs b/gui/src/rust/ensogl/src/display/symbol.rs
similarity index 100%
rename from gui/lib/core/src/display/symbol.rs
rename to gui/src/rust/ensogl/src/display/symbol.rs
diff --git a/gui/lib/core/src/display/symbol/dom.rs b/gui/src/rust/ensogl/src/display/symbol/dom.rs
similarity index 100%
rename from gui/lib/core/src/display/symbol/dom.rs
rename to gui/src/rust/ensogl/src/display/symbol/dom.rs
diff --git a/gui/lib/core/src/display/symbol/gpu.rs b/gui/src/rust/ensogl/src/display/symbol/gpu.rs
similarity index 100%
rename from gui/lib/core/src/display/symbol/gpu.rs
rename to gui/src/rust/ensogl/src/display/symbol/gpu.rs
diff --git a/gui/lib/core/src/display/symbol/gpu/geometry.rs b/gui/src/rust/ensogl/src/display/symbol/gpu/geometry.rs
similarity index 100%
rename from gui/lib/core/src/display/symbol/gpu/geometry.rs
rename to gui/src/rust/ensogl/src/display/symbol/gpu/geometry.rs
diff --git a/gui/lib/core/src/display/symbol/gpu/geometry/compound.rs b/gui/src/rust/ensogl/src/display/symbol/gpu/geometry/compound.rs
similarity index 100%
rename from gui/lib/core/src/display/symbol/gpu/geometry/compound.rs
rename to gui/src/rust/ensogl/src/display/symbol/gpu/geometry/compound.rs
diff --git a/gui/lib/core/src/display/symbol/gpu/geometry/compound/screen.rs b/gui/src/rust/ensogl/src/display/symbol/gpu/geometry/compound/screen.rs
similarity index 100%
rename from gui/lib/core/src/display/symbol/gpu/geometry/compound/screen.rs
rename to gui/src/rust/ensogl/src/display/symbol/gpu/geometry/compound/screen.rs
diff --git a/gui/lib/core/src/display/symbol/gpu/geometry/compound/sprite.rs b/gui/src/rust/ensogl/src/display/symbol/gpu/geometry/compound/sprite.rs
similarity index 100%
rename from gui/lib/core/src/display/symbol/gpu/geometry/compound/sprite.rs
rename to gui/src/rust/ensogl/src/display/symbol/gpu/geometry/compound/sprite.rs
diff --git a/gui/lib/core/src/display/symbol/gpu/geometry/primitive.rs b/gui/src/rust/ensogl/src/display/symbol/gpu/geometry/primitive.rs
similarity index 100%
rename from gui/lib/core/src/display/symbol/gpu/geometry/primitive.rs
rename to gui/src/rust/ensogl/src/display/symbol/gpu/geometry/primitive.rs
diff --git a/gui/lib/core/src/display/symbol/gpu/geometry/primitive/mesh.rs b/gui/src/rust/ensogl/src/display/symbol/gpu/geometry/primitive/mesh.rs
similarity index 100%
rename from gui/lib/core/src/display/symbol/gpu/geometry/primitive/mesh.rs
rename to gui/src/rust/ensogl/src/display/symbol/gpu/geometry/primitive/mesh.rs
diff --git a/gui/lib/core/src/display/symbol/gpu/material.rs b/gui/src/rust/ensogl/src/display/symbol/gpu/material.rs
similarity index 100%
rename from gui/lib/core/src/display/symbol/gpu/material.rs
rename to gui/src/rust/ensogl/src/display/symbol/gpu/material.rs
diff --git a/gui/lib/core/src/display/symbol/gpu/registry.rs b/gui/src/rust/ensogl/src/display/symbol/gpu/registry.rs
similarity index 100%
rename from gui/lib/core/src/display/symbol/gpu/registry.rs
rename to gui/src/rust/ensogl/src/display/symbol/gpu/registry.rs
diff --git a/gui/lib/core/src/display/symbol/gpu/shader.rs b/gui/src/rust/ensogl/src/display/symbol/gpu/shader.rs
similarity index 100%
rename from gui/lib/core/src/display/symbol/gpu/shader.rs
rename to gui/src/rust/ensogl/src/display/symbol/gpu/shader.rs
diff --git a/gui/lib/core/src/display/symbol/gpu/shader/builder.rs b/gui/src/rust/ensogl/src/display/symbol/gpu/shader/builder.rs
similarity index 100%
rename from gui/lib/core/src/display/symbol/gpu/shader/builder.rs
rename to gui/src/rust/ensogl/src/display/symbol/gpu/shader/builder.rs
diff --git a/gui/lib/core/src/display/world.rs b/gui/src/rust/ensogl/src/display/world.rs
similarity index 100%
rename from gui/lib/core/src/display/world.rs
rename to gui/src/rust/ensogl/src/display/world.rs
diff --git a/gui/lib/core/src/display/world/stats.rs b/gui/src/rust/ensogl/src/display/world/stats.rs
similarity index 100%
rename from gui/lib/core/src/display/world/stats.rs
rename to gui/src/rust/ensogl/src/display/world/stats.rs
diff --git a/gui/lib/core/src/lib.rs b/gui/src/rust/ensogl/src/lib.rs
similarity index 96%
rename from gui/lib/core/src/lib.rs
rename to gui/src/rust/ensogl/src/lib.rs
index 68bbc3dafea..d814226527f 100644
--- a/gui/lib/core/src/lib.rs
+++ b/gui/src/rust/ensogl/src/lib.rs
@@ -1,4 +1,4 @@
-//! BaseGL is a blazing fast 2D vector rendering engine with a rich set of primitives and a GUI
+//! ensogl is a blazing fast 2D vector rendering engine with a rich set of primitives and a GUI
//! component library. It is able to display millions of shapes 60 frames per second in a web
//! browser on a modern laptop hardware. This is the main entry point to the library.
diff --git a/gui/lib/core/src/math.rs b/gui/src/rust/ensogl/src/math.rs
similarity index 100%
rename from gui/lib/core/src/math.rs
rename to gui/src/rust/ensogl/src/math.rs
diff --git a/gui/lib/core/src/math/topology.rs b/gui/src/rust/ensogl/src/math/topology.rs
similarity index 100%
rename from gui/lib/core/src/math/topology.rs
rename to gui/src/rust/ensogl/src/math/topology.rs
diff --git a/gui/lib/core/src/math/topology/unit.rs b/gui/src/rust/ensogl/src/math/topology/unit.rs
similarity index 100%
rename from gui/lib/core/src/math/topology/unit.rs
rename to gui/src/rust/ensogl/src/math/topology/unit.rs
diff --git a/gui/lib/core/src/math/types.rs b/gui/src/rust/ensogl/src/math/types.rs
similarity index 100%
rename from gui/lib/core/src/math/types.rs
rename to gui/src/rust/ensogl/src/math/types.rs
diff --git a/gui/lib/core/src/system.rs b/gui/src/rust/ensogl/src/system.rs
similarity index 100%
rename from gui/lib/core/src/system.rs
rename to gui/src/rust/ensogl/src/system.rs
diff --git a/gui/lib/core/src/system/gpu.rs b/gui/src/rust/ensogl/src/system/gpu.rs
similarity index 100%
rename from gui/lib/core/src/system/gpu.rs
rename to gui/src/rust/ensogl/src/system/gpu.rs
diff --git a/gui/lib/core/src/system/gpu/data.rs b/gui/src/rust/ensogl/src/system/gpu/data.rs
similarity index 100%
rename from gui/lib/core/src/system/gpu/data.rs
rename to gui/src/rust/ensogl/src/system/gpu/data.rs
diff --git a/gui/lib/core/src/system/gpu/data/attribute.rs b/gui/src/rust/ensogl/src/system/gpu/data/attribute.rs
similarity index 100%
rename from gui/lib/core/src/system/gpu/data/attribute.rs
rename to gui/src/rust/ensogl/src/system/gpu/data/attribute.rs
diff --git a/gui/lib/core/src/system/gpu/data/buffer.rs b/gui/src/rust/ensogl/src/system/gpu/data/buffer.rs
similarity index 100%
rename from gui/lib/core/src/system/gpu/data/buffer.rs
rename to gui/src/rust/ensogl/src/system/gpu/data/buffer.rs
diff --git a/gui/lib/core/src/system/gpu/data/buffer/item.rs b/gui/src/rust/ensogl/src/system/gpu/data/buffer/item.rs
similarity index 100%
rename from gui/lib/core/src/system/gpu/data/buffer/item.rs
rename to gui/src/rust/ensogl/src/system/gpu/data/buffer/item.rs
diff --git a/gui/lib/core/src/system/gpu/data/buffer/usage.rs b/gui/src/rust/ensogl/src/system/gpu/data/buffer/usage.rs
similarity index 100%
rename from gui/lib/core/src/system/gpu/data/buffer/usage.rs
rename to gui/src/rust/ensogl/src/system/gpu/data/buffer/usage.rs
diff --git a/gui/lib/core/src/system/gpu/data/default.rs b/gui/src/rust/ensogl/src/system/gpu/data/default.rs
similarity index 100%
rename from gui/lib/core/src/system/gpu/data/default.rs
rename to gui/src/rust/ensogl/src/system/gpu/data/default.rs
diff --git a/gui/lib/core/src/system/gpu/data/gl_enum.rs b/gui/src/rust/ensogl/src/system/gpu/data/gl_enum.rs
similarity index 100%
rename from gui/lib/core/src/system/gpu/data/gl_enum.rs
rename to gui/src/rust/ensogl/src/system/gpu/data/gl_enum.rs
diff --git a/gui/lib/core/src/system/gpu/data/prim.rs b/gui/src/rust/ensogl/src/system/gpu/data/prim.rs
similarity index 100%
rename from gui/lib/core/src/system/gpu/data/prim.rs
rename to gui/src/rust/ensogl/src/system/gpu/data/prim.rs
diff --git a/gui/lib/core/src/system/gpu/data/sized.rs b/gui/src/rust/ensogl/src/system/gpu/data/sized.rs
similarity index 100%
rename from gui/lib/core/src/system/gpu/data/sized.rs
rename to gui/src/rust/ensogl/src/system/gpu/data/sized.rs
diff --git a/gui/lib/core/src/system/gpu/data/texture.rs b/gui/src/rust/ensogl/src/system/gpu/data/texture.rs
similarity index 100%
rename from gui/lib/core/src/system/gpu/data/texture.rs
rename to gui/src/rust/ensogl/src/system/gpu/data/texture.rs
diff --git a/gui/lib/core/src/system/gpu/data/texture/class.rs b/gui/src/rust/ensogl/src/system/gpu/data/texture/class.rs
similarity index 100%
rename from gui/lib/core/src/system/gpu/data/texture/class.rs
rename to gui/src/rust/ensogl/src/system/gpu/data/texture/class.rs
diff --git a/gui/lib/core/src/system/gpu/data/texture/storage.rs b/gui/src/rust/ensogl/src/system/gpu/data/texture/storage.rs
similarity index 100%
rename from gui/lib/core/src/system/gpu/data/texture/storage.rs
rename to gui/src/rust/ensogl/src/system/gpu/data/texture/storage.rs
diff --git a/gui/lib/core/src/system/gpu/data/texture/storage/gpu_only.rs b/gui/src/rust/ensogl/src/system/gpu/data/texture/storage/gpu_only.rs
similarity index 100%
rename from gui/lib/core/src/system/gpu/data/texture/storage/gpu_only.rs
rename to gui/src/rust/ensogl/src/system/gpu/data/texture/storage/gpu_only.rs
diff --git a/gui/lib/core/src/system/gpu/data/texture/storage/owned.rs b/gui/src/rust/ensogl/src/system/gpu/data/texture/storage/owned.rs
similarity index 100%
rename from gui/lib/core/src/system/gpu/data/texture/storage/owned.rs
rename to gui/src/rust/ensogl/src/system/gpu/data/texture/storage/owned.rs
diff --git a/gui/lib/core/src/system/gpu/data/texture/storage/remote_image.rs b/gui/src/rust/ensogl/src/system/gpu/data/texture/storage/remote_image.rs
similarity index 100%
rename from gui/lib/core/src/system/gpu/data/texture/storage/remote_image.rs
rename to gui/src/rust/ensogl/src/system/gpu/data/texture/storage/remote_image.rs
diff --git a/gui/lib/core/src/system/gpu/data/texture/types.rs b/gui/src/rust/ensogl/src/system/gpu/data/texture/types.rs
similarity index 100%
rename from gui/lib/core/src/system/gpu/data/texture/types.rs
rename to gui/src/rust/ensogl/src/system/gpu/data/texture/types.rs
diff --git a/gui/lib/core/src/system/gpu/data/texture/types/format.rs b/gui/src/rust/ensogl/src/system/gpu/data/texture/types/format.rs
similarity index 100%
rename from gui/lib/core/src/system/gpu/data/texture/types/format.rs
rename to gui/src/rust/ensogl/src/system/gpu/data/texture/types/format.rs
diff --git a/gui/lib/core/src/system/gpu/data/texture/types/gl_enums.rs b/gui/src/rust/ensogl/src/system/gpu/data/texture/types/gl_enums.rs
similarity index 100%
rename from gui/lib/core/src/system/gpu/data/texture/types/gl_enums.rs
rename to gui/src/rust/ensogl/src/system/gpu/data/texture/types/gl_enums.rs
diff --git a/gui/lib/core/src/system/gpu/data/texture/types/internal_format.rs b/gui/src/rust/ensogl/src/system/gpu/data/texture/types/internal_format.rs
similarity index 100%
rename from gui/lib/core/src/system/gpu/data/texture/types/internal_format.rs
rename to gui/src/rust/ensogl/src/system/gpu/data/texture/types/internal_format.rs
diff --git a/gui/lib/core/src/system/gpu/data/texture/types/item_type.rs b/gui/src/rust/ensogl/src/system/gpu/data/texture/types/item_type.rs
similarity index 100%
rename from gui/lib/core/src/system/gpu/data/texture/types/item_type.rs
rename to gui/src/rust/ensogl/src/system/gpu/data/texture/types/item_type.rs
diff --git a/gui/lib/core/src/system/gpu/data/texture/types/relations.rs b/gui/src/rust/ensogl/src/system/gpu/data/texture/types/relations.rs
similarity index 100%
rename from gui/lib/core/src/system/gpu/data/texture/types/relations.rs
rename to gui/src/rust/ensogl/src/system/gpu/data/texture/types/relations.rs
diff --git a/gui/lib/core/src/system/gpu/data/texture/types/sampler.rs b/gui/src/rust/ensogl/src/system/gpu/data/texture/types/sampler.rs
similarity index 100%
rename from gui/lib/core/src/system/gpu/data/texture/types/sampler.rs
rename to gui/src/rust/ensogl/src/system/gpu/data/texture/types/sampler.rs
diff --git a/gui/lib/core/src/system/gpu/data/uniform.rs b/gui/src/rust/ensogl/src/system/gpu/data/uniform.rs
similarity index 100%
rename from gui/lib/core/src/system/gpu/data/uniform.rs
rename to gui/src/rust/ensogl/src/system/gpu/data/uniform.rs
diff --git a/gui/lib/core/src/system/gpu/data/uniform/upload.rs b/gui/src/rust/ensogl/src/system/gpu/data/uniform/upload.rs
similarity index 100%
rename from gui/lib/core/src/system/gpu/data/uniform/upload.rs
rename to gui/src/rust/ensogl/src/system/gpu/data/uniform/upload.rs
diff --git a/gui/lib/core/src/system/gpu/shader.rs b/gui/src/rust/ensogl/src/system/gpu/shader.rs
similarity index 100%
rename from gui/lib/core/src/system/gpu/shader.rs
rename to gui/src/rust/ensogl/src/system/gpu/shader.rs
diff --git a/gui/lib/core/src/system/gpu/shader/glsl.rs b/gui/src/rust/ensogl/src/system/gpu/shader/glsl.rs
similarity index 100%
rename from gui/lib/core/src/system/gpu/shader/glsl.rs
rename to gui/src/rust/ensogl/src/system/gpu/shader/glsl.rs
diff --git a/gui/lib/core/src/system/js.rs b/gui/src/rust/ensogl/src/system/js.rs
similarity index 100%
rename from gui/lib/core/src/system/js.rs
rename to gui/src/rust/ensogl/src/system/js.rs
diff --git a/gui/lib/core/src/system/js/typed_array.rs b/gui/src/rust/ensogl/src/system/js/typed_array.rs
similarity index 100%
rename from gui/lib/core/src/system/js/typed_array.rs
rename to gui/src/rust/ensogl/src/system/js/typed_array.rs
diff --git a/gui/lib/core/src/system/web.rs b/gui/src/rust/ensogl/src/system/web.rs
similarity index 86%
rename from gui/lib/core/src/system/web.rs
rename to gui/src/rust/ensogl/src/system/web.rs
index aa368229330..73d15a204b0 100644
--- a/gui/lib/core/src/system/web.rs
+++ b/gui/src/rust/ensogl/src/system/web.rs
@@ -3,7 +3,7 @@
pub mod dom;
pub mod text_input;
-pub use basegl_system_web::*;
+pub use ensogl_system_web::*;
pub use web_sys::HtmlElement;
pub use web_sys::HtmlDivElement;
pub use wasm_bindgen::JsValue;
diff --git a/gui/lib/core/src/system/web/dom.rs b/gui/src/rust/ensogl/src/system/web/dom.rs
similarity index 100%
rename from gui/lib/core/src/system/web/dom.rs
rename to gui/src/rust/ensogl/src/system/web/dom.rs
diff --git a/gui/lib/core/src/system/web/dom/shape.rs b/gui/src/rust/ensogl/src/system/web/dom/shape.rs
similarity index 100%
rename from gui/lib/core/src/system/web/dom/shape.rs
rename to gui/src/rust/ensogl/src/system/web/dom/shape.rs
diff --git a/gui/lib/core/src/system/web/text_input.rs b/gui/src/rust/ensogl/src/system/web/text_input.rs
similarity index 100%
rename from gui/lib/core/src/system/web/text_input.rs
rename to gui/src/rust/ensogl/src/system/web/text_input.rs
diff --git a/gui/lib/core/src/system/web/text_input/text_input.js b/gui/src/rust/ensogl/src/system/web/text_input/text_input.js
similarity index 100%
rename from gui/lib/core/src/system/web/text_input/text_input.js
rename to gui/src/rust/ensogl/src/system/web/text_input/text_input.js
diff --git a/gui/lib/core/tests/bench_test.js b/gui/src/rust/ensogl/tests/bench_test.js
similarity index 100%
rename from gui/lib/core/tests/bench_test.js
rename to gui/src/rust/ensogl/tests/bench_test.js
diff --git a/gui/lib/core/tests/css3d_system.rs b/gui/src/rust/ensogl/tests/css3d_system.rs
similarity index 94%
rename from gui/lib/core/tests/css3d_system.rs
rename to gui/src/rust/ensogl/tests/css3d_system.rs
index c5a369ca565..8eebc069b27 100644
--- a/gui/lib/core/tests/css3d_system.rs
+++ b/gui/src/rust/ensogl/tests/css3d_system.rs
@@ -18,18 +18,18 @@ extern "C" {
#[cfg(test)]
mod tests {
- use basegl::display;
- use basegl::display::DomScene;
- use basegl::system::web::StyleSetter;
+ use ensogl::display;
+ use ensogl::display::DomScene;
+ use ensogl::system::web::StyleSetter;
use web_test::*;
use web_sys::Performance;
use nalgebra::Vector3;
- use basegl::system::web;
- use basegl::display::world::{WorldData, World};
- use basegl::display::navigation::navigator::Navigator;
- use basegl::traits::*;
+ use ensogl::system::web;
+ use ensogl::display::world::{WorldData, World};
+ use ensogl::display::navigation::navigator::Navigator;
+ use ensogl::traits::*;
use nalgebra::Vector2;
- use basegl::system::web::get_element_by_id;
+ use ensogl::system::web::get_element_by_id;
use web_sys::HtmlElement;
use wasm_bindgen::JsCast;
diff --git a/gui/lib/core/tests/physics_simulator.rs b/gui/src/rust/ensogl/tests/physics_simulator.rs
similarity index 81%
rename from gui/lib/core/tests/physics_simulator.rs
rename to gui/src/rust/ensogl/tests/physics_simulator.rs
index b6b74905a2f..df254d0dcd3 100644
--- a/gui/lib/core/tests/physics_simulator.rs
+++ b/gui/src/rust/ensogl/tests/physics_simulator.rs
@@ -6,25 +6,25 @@ web_configure!(run_in_browser);
#[cfg(test)]
mod tests {
- use basegl::traits::*;
+ use ensogl::traits::*;
- use basegl::system::web::StyleSetter;
- use basegl::animation::physics::inertia::DragProperties;
- use basegl::animation::physics::inertia::SpringProperties;
- use basegl::animation::physics::inertia::KinematicsProperties;
- use basegl::animation::physics::inertia::PhysicsSimulator;
- use basegl::animation::physics::inertia::PhysicsProperties;
- use basegl::animation::animator::fixed_step::FixedStepAnimator;
- use basegl::display::DomSymbol;
+ use ensogl::system::web::StyleSetter;
+ use ensogl::animation::physics::inertia::DragProperties;
+ use ensogl::animation::physics::inertia::SpringProperties;
+ use ensogl::animation::physics::inertia::KinematicsProperties;
+ use ensogl::animation::physics::inertia::PhysicsSimulator;
+ use ensogl::animation::physics::inertia::PhysicsProperties;
+ use ensogl::animation::animator::fixed_step::FixedStepAnimator;
+ use ensogl::display::DomSymbol;
use web_test::*;
use nalgebra::{zero, Vector3};
use js_sys::Math::random;
- use basegl::display::world::WorldData;
- use basegl::system::web::get_element_by_id;
+ use ensogl::display::world::WorldData;
+ use ensogl::system::web::get_element_by_id;
use web_sys::HtmlElement;
use nalgebra::Vector2;
- use basegl::system::web::set_stdout;
- use basegl::system::web;
+ use ensogl::system::web::set_stdout;
+ use ensogl::system::web;
use wasm_bindgen::JsCast;
#[web_test]
diff --git a/gui/lib/core/webdriver.json b/gui/src/rust/ensogl/webdriver.json
similarity index 100%
rename from gui/lib/core/webdriver.json
rename to gui/src/rust/ensogl/webdriver.json
diff --git a/gui/lib/ide/Cargo.toml b/gui/src/rust/ide/Cargo.toml
similarity index 63%
rename from gui/lib/ide/Cargo.toml
rename to gui/src/rust/ide/Cargo.toml
index faf33d8aee0..bee3bbc368e 100644
--- a/gui/lib/ide/Cargo.toml
+++ b/gui/src/rust/ide/Cargo.toml
@@ -8,30 +8,31 @@ edition = "2018"
crate-type = ["cdylib", "rlib"]
[dependencies]
-ast = { version = "0.1.0" , path = "ast/impl" }
-basegl = { version = "0.1.0" , path = "../core" }
-basegl-core-msdf-sys = { version = "0.1.0" , path = "../core/msdf-sys" }
-basegl-system-web = { version = "0.1.0" , path = "../system/web" }
-data = { version = "0.1.0" , path = "../data" }
-enso-frp = { version = "0.1.0" , path = "../frp" }
-enso-prelude = { version = "0.1.0" , path = "../prelude" }
-file-manager-client = { version = "0.1.0" , path = "file-manager" }
-json-rpc = { version = "0.1.0" , path = "json-rpc" }
-parser = { version = "0.1.0" , path = "parser" }
-shapely = { version = "0.1.0" , path = "../shapely/impl" }
-utils = { version = "0.1.0" , path = "utils" }
+ensogl = { version = "0.1.0" , path = "../ensogl" }
+ensogl-core-msdf-sys = { version = "0.1.0" , path = "../ensogl/msdf-sys" }
+ensogl-system-web = { version = "0.1.0" , path = "../lib/system/web" }
+data = { version = "0.1.0" , path = "../lib/data" }
+enso-frp = { version = "0.1.0" , path = "../lib/frp" }
+enso-prelude = { version = "0.1.0" , path = "../lib/prelude" }
+shapely = { version = "0.1.0" , path = "../lib/shapely/impl" }
-console_error_panic_hook = { version = "0.1.6" }
-failure = { version = "0.1.6" }
-flo_stream = { version = "0.4.0" }
-futures = { version = "0.3.1" }
-nalgebra = { version = "0.19.0" }
-js-sys = { version = "0.3.35" }
-serde = { version = "1.0", features = ["derive"] }
-serde_json = { version = "1.0" }
-uuid = { version = "0.8", features = ["serde", "v5"] }
-wasm-bindgen = { version = "=0.2.58" }
-wasm-bindgen-test = { version = "0.3.8" }
+ast = { version = "0.1.0" , path = "ast/impl" }
+file-manager-client = { version = "0.1.0" , path = "file-manager" }
+json-rpc = { version = "0.1.0" , path = "json-rpc" }
+parser = { version = "0.1.0" , path = "parser" }
+utils = { version = "0.1.0" , path = "utils" }
+
+console_error_panic_hook = { version = "0.1.6" }
+failure = { version = "0.1.6" }
+flo_stream = { version = "0.4.0" }
+futures = { version = "0.3.1" }
+nalgebra = { version = "0.19.0" }
+js-sys = { version = "0.3.35" }
+serde = { version = "1.0", features = ["derive"] }
+serde_json = { version = "1.0" }
+uuid = { version = "0.8", features = ["serde", "v5"] }
+wasm-bindgen = { version = "=0.2.58" }
+wasm-bindgen-test = { version = "0.3.8" }
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
websocket = "0.23.0"
diff --git a/gui/lib/ide/ast/impl/Cargo.toml b/gui/src/rust/ide/ast/impl/Cargo.toml
similarity index 66%
rename from gui/lib/ide/ast/impl/Cargo.toml
rename to gui/src/rust/ide/ast/impl/Cargo.toml
index 1e3484df4c8..6d2261d0ec2 100644
--- a/gui/lib/ide/ast/impl/Cargo.toml
+++ b/gui/src/rust/ide/ast/impl/Cargo.toml
@@ -17,8 +17,8 @@ serde_json = { version = "1.0" }
shrinkwraprs = { version = "0.2.1" }
uuid = { version = "0.8.1", features = ["serde", "v4"] }
-ast-macros = { version = "0.1.0", path = "../macros" }
-data = { version = "0.1.0", path = "../../../data" }
-enso-prelude = { version = "0.1.0", path = "../../../prelude" }
-shapely = { version = "0.1.0", path = "../../../shapely/impl" }
-utils = { version = "0.1.0", path = "../../utils" }
+ast-macros = { version = "0.1.0", path = "../macros" }
+data = { version = "0.1.0", path = "../../../lib/data" }
+enso-prelude = { version = "0.1.0", path = "../../../lib/prelude" }
+shapely = { version = "0.1.0", path = "../../../lib/shapely/impl" }
+utils = { version = "0.1.0", path = "../../utils" }
diff --git a/gui/lib/ide/ast/impl/src/assoc.rs b/gui/src/rust/ide/ast/impl/src/assoc.rs
similarity index 100%
rename from gui/lib/ide/ast/impl/src/assoc.rs
rename to gui/src/rust/ide/ast/impl/src/assoc.rs
diff --git a/gui/lib/ide/ast/impl/src/internal.rs b/gui/src/rust/ide/ast/impl/src/internal.rs
similarity index 100%
rename from gui/lib/ide/ast/impl/src/internal.rs
rename to gui/src/rust/ide/ast/impl/src/internal.rs
diff --git a/gui/lib/ide/ast/impl/src/known.rs b/gui/src/rust/ide/ast/impl/src/known.rs
similarity index 100%
rename from gui/lib/ide/ast/impl/src/known.rs
rename to gui/src/rust/ide/ast/impl/src/known.rs
diff --git a/gui/lib/ide/ast/impl/src/lib.rs b/gui/src/rust/ide/ast/impl/src/lib.rs
similarity index 100%
rename from gui/lib/ide/ast/impl/src/lib.rs
rename to gui/src/rust/ide/ast/impl/src/lib.rs
diff --git a/gui/lib/ide/ast/impl/src/opr.rs b/gui/src/rust/ide/ast/impl/src/opr.rs
similarity index 100%
rename from gui/lib/ide/ast/impl/src/opr.rs
rename to gui/src/rust/ide/ast/impl/src/opr.rs
diff --git a/gui/lib/ide/ast/impl/src/prefix.rs b/gui/src/rust/ide/ast/impl/src/prefix.rs
similarity index 100%
rename from gui/lib/ide/ast/impl/src/prefix.rs
rename to gui/src/rust/ide/ast/impl/src/prefix.rs
diff --git a/gui/lib/ide/ast/impl/src/repr.rs b/gui/src/rust/ide/ast/impl/src/repr.rs
similarity index 100%
rename from gui/lib/ide/ast/impl/src/repr.rs
rename to gui/src/rust/ide/ast/impl/src/repr.rs
diff --git a/gui/lib/ide/ast/impl/src/test_utils.rs b/gui/src/rust/ide/ast/impl/src/test_utils.rs
similarity index 100%
rename from gui/lib/ide/ast/impl/src/test_utils.rs
rename to gui/src/rust/ide/ast/impl/src/test_utils.rs
diff --git a/gui/lib/ide/ast/macros/Cargo.toml b/gui/src/rust/ide/ast/macros/Cargo.toml
similarity index 71%
rename from gui/lib/ide/ast/macros/Cargo.toml
rename to gui/src/rust/ide/ast/macros/Cargo.toml
index 8e3158b74a6..c198d9daaef 100644
--- a/gui/lib/ide/ast/macros/Cargo.toml
+++ b/gui/src/rust/ide/ast/macros/Cargo.toml
@@ -15,8 +15,8 @@ proc-macro2 = "1.0"
quote = "1.0"
Inflector = "0.11.4"
-macro-utils = { version = "0.1.0" , path = "../../../macro-utils" }
-enso-prelude = { version = "0.1.0" , path = "../../../prelude" }
+macro-utils = { version = "0.1.0" , path = "../../../lib/macro-utils" }
+enso-prelude = { version = "0.1.0" , path = "../../../lib/prelude" }
[dependencies.syn]
version = "1.0"
diff --git a/gui/lib/ide/ast/macros/src/lib.rs b/gui/src/rust/ide/ast/macros/src/lib.rs
similarity index 100%
rename from gui/lib/ide/ast/macros/src/lib.rs
rename to gui/src/rust/ide/ast/macros/src/lib.rs
diff --git a/gui/lib/ide/ast/macros/src/token.rs b/gui/src/rust/ide/ast/macros/src/token.rs
similarity index 100%
rename from gui/lib/ide/ast/macros/src/token.rs
rename to gui/src/rust/ide/ast/macros/src/token.rs
diff --git a/gui/lib/ide/file-manager/Cargo.toml b/gui/src/rust/ide/file-manager/Cargo.toml
similarity index 64%
rename from gui/lib/ide/file-manager/Cargo.toml
rename to gui/src/rust/ide/file-manager/Cargo.toml
index eac48a080d1..8f693694ef0 100644
--- a/gui/lib/ide/file-manager/Cargo.toml
+++ b/gui/src/rust/ide/file-manager/Cargo.toml
@@ -8,10 +8,10 @@ edition = "2018"
crate-type = ["cdylib", "rlib"]
[dependencies]
-json-rpc = { version = "0.1.0" , path = "../json-rpc" }
-enso-prelude = { version = "0.1.0" , path = "../../prelude" }
-shapely = { version = "0.1.0" , path = "../../shapely/impl" }
-utils = { version = "0.1.0" , path = "../utils" }
+json-rpc = { version = "0.1.0" , path = "../json-rpc" }
+enso-prelude = { version = "0.1.0" , path = "../../lib/prelude" }
+shapely = { version = "0.1.0" , path = "../../lib/shapely/impl" }
+utils = { version = "0.1.0" , path = "../utils" }
chrono = { version = "0.4" , features = ["serde"] }
futures = { version = "0.3.1" }
diff --git a/gui/lib/ide/file-manager/README.md b/gui/src/rust/ide/file-manager/README.md
similarity index 100%
rename from gui/lib/ide/file-manager/README.md
rename to gui/src/rust/ide/file-manager/README.md
diff --git a/gui/lib/ide/file-manager/mock-server/.gitignore b/gui/src/rust/ide/file-manager/mock-server/.gitignore
similarity index 100%
rename from gui/lib/ide/file-manager/mock-server/.gitignore
rename to gui/src/rust/ide/file-manager/mock-server/.gitignore
diff --git a/gui/lib/ide/file-manager/mock-server/Cargo.toml b/gui/src/rust/ide/file-manager/mock-server/Cargo.toml
similarity index 77%
rename from gui/lib/ide/file-manager/mock-server/Cargo.toml
rename to gui/src/rust/ide/file-manager/mock-server/Cargo.toml
index 36724841ef6..6293df3faaa 100644
--- a/gui/lib/ide/file-manager/mock-server/Cargo.toml
+++ b/gui/src/rust/ide/file-manager/mock-server/Cargo.toml
@@ -15,7 +15,7 @@ chrono = { version = "0.4" , features = ["serde"] }
serde = { version = "1.0" , features = ["derive"] }
uuid = { version = "0.8" , features = ["serde", "v5"] }
-file-manager-client = { version = "0.1.0" , path = ".." }
-json-rpc = { version = "0.1.0" , path = "../../json-rpc" }
-enso-prelude = { version = "0.1.0" , path = "../../../prelude" }
-utils = { version = "0.1.0" , path = "../../utils" }
+file-manager-client = { version = "0.1.0" , path = ".." }
+json-rpc = { version = "0.1.0" , path = "../../json-rpc" }
+enso-prelude = { version = "0.1.0" , path = "../../../lib/prelude" }
+utils = { version = "0.1.0" , path = "../../utils" }
diff --git a/gui/lib/ide/file-manager/mock-server/README.md b/gui/src/rust/ide/file-manager/mock-server/README.md
similarity index 100%
rename from gui/lib/ide/file-manager/mock-server/README.md
rename to gui/src/rust/ide/file-manager/mock-server/README.md
diff --git a/gui/lib/ide/file-manager/mock-server/src/main.rs b/gui/src/rust/ide/file-manager/mock-server/src/main.rs
similarity index 100%
rename from gui/lib/ide/file-manager/mock-server/src/main.rs
rename to gui/src/rust/ide/file-manager/mock-server/src/main.rs
diff --git a/gui/lib/ide/file-manager/src/lib.rs b/gui/src/rust/ide/file-manager/src/lib.rs
similarity index 100%
rename from gui/lib/ide/file-manager/src/lib.rs
rename to gui/src/rust/ide/file-manager/src/lib.rs
diff --git a/gui/lib/ide/json-rpc/Cargo.toml b/gui/src/rust/ide/json-rpc/Cargo.toml
similarity index 72%
rename from gui/lib/ide/json-rpc/Cargo.toml
rename to gui/src/rust/ide/json-rpc/Cargo.toml
index c1746ccd67e..3fdb91cb7db 100644
--- a/gui/lib/ide/json-rpc/Cargo.toml
+++ b/gui/src/rust/ide/json-rpc/Cargo.toml
@@ -8,8 +8,8 @@ edition = "2018"
crate-type = ["cdylib", "rlib"]
[dependencies]
-enso-prelude = { version = "0.1.0" , path = "../../prelude" }
-shapely = { version = "0.1.0" , path = "../../shapely/impl" }
+enso-prelude = { version = "0.1.0" , path = "../../lib/prelude" }
+shapely = { version = "0.1.0" , path = "../../lib/shapely/impl" }
utils = { version = "0.1.0" , path = "../utils" }
serde = { version = "1.0", features = ["derive"] }
futures = "0.3.1"
diff --git a/gui/lib/ide/json-rpc/src/api.rs b/gui/src/rust/ide/json-rpc/src/api.rs
similarity index 100%
rename from gui/lib/ide/json-rpc/src/api.rs
rename to gui/src/rust/ide/json-rpc/src/api.rs
diff --git a/gui/lib/ide/json-rpc/src/error.rs b/gui/src/rust/ide/json-rpc/src/error.rs
similarity index 100%
rename from gui/lib/ide/json-rpc/src/error.rs
rename to gui/src/rust/ide/json-rpc/src/error.rs
diff --git a/gui/lib/ide/json-rpc/src/handler.rs b/gui/src/rust/ide/json-rpc/src/handler.rs
similarity index 100%
rename from gui/lib/ide/json-rpc/src/handler.rs
rename to gui/src/rust/ide/json-rpc/src/handler.rs
diff --git a/gui/lib/ide/json-rpc/src/lib.rs b/gui/src/rust/ide/json-rpc/src/lib.rs
similarity index 100%
rename from gui/lib/ide/json-rpc/src/lib.rs
rename to gui/src/rust/ide/json-rpc/src/lib.rs
diff --git a/gui/lib/ide/json-rpc/src/messages.rs b/gui/src/rust/ide/json-rpc/src/messages.rs
similarity index 100%
rename from gui/lib/ide/json-rpc/src/messages.rs
rename to gui/src/rust/ide/json-rpc/src/messages.rs
diff --git a/gui/lib/ide/json-rpc/src/test_util/mod.rs b/gui/src/rust/ide/json-rpc/src/test_util/mod.rs
similarity index 100%
rename from gui/lib/ide/json-rpc/src/test_util/mod.rs
rename to gui/src/rust/ide/json-rpc/src/test_util/mod.rs
diff --git a/gui/lib/ide/json-rpc/src/test_util/transport/mock.rs b/gui/src/rust/ide/json-rpc/src/test_util/transport/mock.rs
similarity index 100%
rename from gui/lib/ide/json-rpc/src/test_util/transport/mock.rs
rename to gui/src/rust/ide/json-rpc/src/test_util/transport/mock.rs
diff --git a/gui/lib/ide/json-rpc/src/test_util/transport/mod.rs b/gui/src/rust/ide/json-rpc/src/test_util/transport/mod.rs
similarity index 100%
rename from gui/lib/ide/json-rpc/src/test_util/transport/mod.rs
rename to gui/src/rust/ide/json-rpc/src/test_util/transport/mod.rs
diff --git a/gui/lib/ide/json-rpc/src/transport.rs b/gui/src/rust/ide/json-rpc/src/transport.rs
similarity index 100%
rename from gui/lib/ide/json-rpc/src/transport.rs
rename to gui/src/rust/ide/json-rpc/src/transport.rs
diff --git a/gui/lib/ide/json-rpc/tests/test.rs b/gui/src/rust/ide/json-rpc/tests/test.rs
similarity index 100%
rename from gui/lib/ide/json-rpc/tests/test.rs
rename to gui/src/rust/ide/json-rpc/tests/test.rs
diff --git a/gui/src/rust/ide/parser/Cargo.toml b/gui/src/rust/ide/parser/Cargo.toml
new file mode 100644
index 00000000000..2fa400b372f
--- /dev/null
+++ b/gui/src/rust/ide/parser/Cargo.toml
@@ -0,0 +1,36 @@
+[package]
+name = "parser"
+version = "0.1.0"
+authors = ["Enso Team "]
+edition = "2018"
+build = "build.rs"
+
+[lib]
+crate-type = ["cdylib", "rlib"]
+
+[dependencies]
+ast = { version = "0.1.0", path = "../ast/impl" }
+data = { version = "0.1.0", path = "../../lib/data" }
+enso-prelude = { version = "0.1.0", path = "../../lib/prelude" }
+utils = { version = "0.1.0", path = "../utils" }
+
+console_error_panic_hook = { version = "0.1.6" }
+failure = { version = "0.1" }
+js-sys = { version = "0.3" }
+matches = { version = "0.1" }
+serde = { version = "1.0" , features = ["derive"] }
+serde_json = { version = "1.0" }
+shrinkwraprs = { version = "0.2.1" }
+uuid = { version = "0.8" , features = ["serde", "v5", "wasm-bindgen"] }
+wasm-bindgen = { version = "=0.2.58" }
+wasm-bindgen-test = { version = "0.3.8" }
+
+[build-dependencies]
+ensogl-build-utilities = { version = "0.1.0", path = "../../build" }
+bytes = { version = "0.5.4" }
+futures = { version = "0.3.1" }
+reqwest = { version = "0.10.1" }
+tokio = { version = "0.2.10", features = ["macros"] }
+
+[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
+websocket = "0.23.0"
diff --git a/gui/lib/ide/parser/build.rs b/gui/src/rust/ide/parser/build.rs
similarity index 76%
rename from gui/lib/ide/parser/build.rs
rename to gui/src/rust/ide/parser/build.rs
index 9bf065f83ea..1094e7806a1 100644
--- a/gui/lib/ide/parser/build.rs
+++ b/gui/src/rust/ide/parser/build.rs
@@ -4,10 +4,11 @@
#![feature(option_result_contains)]
-use basegl_build_utilities::PathRef;
-use basegl_build_utilities::absolute_path;
-use basegl_build_utilities::targeting_wasm;
+use ensogl_build_utilities::PathRef;
+use ensogl_build_utilities::absolute_path;
+use ensogl_build_utilities::targeting_wasm;
+use std::fs;
use std::fs::File;
use std::fs::create_dir_all;
use std::io::prelude::*;
@@ -67,8 +68,8 @@ impl ParserVersion {
/// Stores information which parser version should be provided where.
///
-/// Implementation provides methods that download desired parser version, patch
-/// it and store to the file, so parser can be consumed by `wasm_bindgen`.
+/// Implementation provides methods that download desired parser version, patch it and store to the
+/// file, so parser can be consumed by `wasm_bindgen`.
struct ParserProvider {
/// Required parser version.
version : ParserVersion,
@@ -107,19 +108,29 @@ impl ParserProvider {
/// Ensures that target's parent directory exists.
pub fn prepare_target_location(&self) {
- if let Some(parent_directory) = self.parser_path.parent() {
- let create_dir_error = format!(
- "Failed to create directory: {}.",
- parent_directory.display());
- create_dir_all(parent_directory).expect(&create_dir_error);
- }
+ let parent_directory = self.parser_path.parent().expect("Unable to access parent directory.");
+ let create_dir_error = format!(
+ "Failed to create directory: {}.",
+ parent_directory.display());
+ create_dir_all(parent_directory).expect(&create_dir_error);
}
/// Places required parser version in the target location.
pub async fn run(&self) {
self.prepare_target_location();
- let parser_js = self.download().await;
- self.patch_and_store(parser_js);
+ let parent_directory = self.parser_path.parent().expect("Unable to access parent directory.");
+ let fingerprint = parent_directory.join("parser.fingerprint");
+ let opt_version = fs::read_to_string(&fingerprint);
+ let changed = match opt_version {
+ Err(_) => true,
+ Ok(hash) => hash != PARSER_COMMIT
+ };
+ if changed {
+ println!("cargo:warning=Parser version changed. Rebuilding.");
+ let parser_js = self.download().await;
+ self.patch_and_store(parser_js);
+ fs::write(&fingerprint,PARSER_COMMIT).expect("Unable to write parser fingerprint.");
+ }
}
}
@@ -134,7 +145,7 @@ async fn main() -> std::result::Result<(), Box> {
if targeting_wasm() {
let required_version = ParserVersion::required();
let parser_path = absolute_path(PARSER_PATH)?;
- let provider = ParserProvider::new(required_version,&parser_path);
+ let provider = ParserProvider::new(required_version,&parser_path);
provider.run().await;
}
Ok(())
diff --git a/gui/lib/ide/parser/src/api.rs b/gui/src/rust/ide/parser/src/api.rs
similarity index 100%
rename from gui/lib/ide/parser/src/api.rs
rename to gui/src/rust/ide/parser/src/api.rs
diff --git a/gui/lib/ide/parser/src/jsclient.rs b/gui/src/rust/ide/parser/src/jsclient.rs
similarity index 100%
rename from gui/lib/ide/parser/src/jsclient.rs
rename to gui/src/rust/ide/parser/src/jsclient.rs
diff --git a/gui/lib/ide/parser/src/lib.rs b/gui/src/rust/ide/parser/src/lib.rs
similarity index 100%
rename from gui/lib/ide/parser/src/lib.rs
rename to gui/src/rust/ide/parser/src/lib.rs
diff --git a/gui/lib/ide/parser/src/main.rs b/gui/src/rust/ide/parser/src/main.rs
similarity index 100%
rename from gui/lib/ide/parser/src/main.rs
rename to gui/src/rust/ide/parser/src/main.rs
diff --git a/gui/lib/ide/parser/src/wsclient.rs b/gui/src/rust/ide/parser/src/wsclient.rs
similarity index 100%
rename from gui/lib/ide/parser/src/wsclient.rs
rename to gui/src/rust/ide/parser/src/wsclient.rs
diff --git a/gui/lib/ide/parser/tests/ast.rs b/gui/src/rust/ide/parser/tests/ast.rs
similarity index 100%
rename from gui/lib/ide/parser/tests/ast.rs
rename to gui/src/rust/ide/parser/tests/ast.rs
diff --git a/gui/lib/ide/parser/tests/parsing.rs b/gui/src/rust/ide/parser/tests/parsing.rs
similarity index 100%
rename from gui/lib/ide/parser/tests/parsing.rs
rename to gui/src/rust/ide/parser/tests/parsing.rs
diff --git a/gui/lib/ide/parser/tests/web.rs b/gui/src/rust/ide/parser/tests/web.rs
similarity index 100%
rename from gui/lib/ide/parser/tests/web.rs
rename to gui/src/rust/ide/parser/tests/web.rs
diff --git a/gui/lib/ide/src/controller.rs b/gui/src/rust/ide/src/controller.rs
similarity index 100%
rename from gui/lib/ide/src/controller.rs
rename to gui/src/rust/ide/src/controller.rs
diff --git a/gui/lib/ide/src/controller/module.rs b/gui/src/rust/ide/src/controller/module.rs
similarity index 100%
rename from gui/lib/ide/src/controller/module.rs
rename to gui/src/rust/ide/src/controller/module.rs
diff --git a/gui/lib/ide/src/controller/notification.rs b/gui/src/rust/ide/src/controller/notification.rs
similarity index 100%
rename from gui/lib/ide/src/controller/notification.rs
rename to gui/src/rust/ide/src/controller/notification.rs
diff --git a/gui/lib/ide/src/controller/project.rs b/gui/src/rust/ide/src/controller/project.rs
similarity index 100%
rename from gui/lib/ide/src/controller/project.rs
rename to gui/src/rust/ide/src/controller/project.rs
diff --git a/gui/lib/ide/src/controller/text.rs b/gui/src/rust/ide/src/controller/text.rs
similarity index 100%
rename from gui/lib/ide/src/controller/text.rs
rename to gui/src/rust/ide/src/controller/text.rs
diff --git a/gui/lib/ide/src/double_representation.rs b/gui/src/rust/ide/src/double_representation.rs
similarity index 100%
rename from gui/lib/ide/src/double_representation.rs
rename to gui/src/rust/ide/src/double_representation.rs
diff --git a/gui/lib/ide/src/double_representation/definition.rs b/gui/src/rust/ide/src/double_representation/definition.rs
similarity index 100%
rename from gui/lib/ide/src/double_representation/definition.rs
rename to gui/src/rust/ide/src/double_representation/definition.rs
diff --git a/gui/lib/ide/src/double_representation/graph.rs b/gui/src/rust/ide/src/double_representation/graph.rs
similarity index 100%
rename from gui/lib/ide/src/double_representation/graph.rs
rename to gui/src/rust/ide/src/double_representation/graph.rs
diff --git a/gui/lib/ide/src/double_representation/node.rs b/gui/src/rust/ide/src/double_representation/node.rs
similarity index 100%
rename from gui/lib/ide/src/double_representation/node.rs
rename to gui/src/rust/ide/src/double_representation/node.rs
diff --git a/gui/lib/ide/src/double_representation/text.rs b/gui/src/rust/ide/src/double_representation/text.rs
similarity index 100%
rename from gui/lib/ide/src/double_representation/text.rs
rename to gui/src/rust/ide/src/double_representation/text.rs
diff --git a/gui/lib/ide/src/executor.rs b/gui/src/rust/ide/src/executor.rs
similarity index 100%
rename from gui/lib/ide/src/executor.rs
rename to gui/src/rust/ide/src/executor.rs
diff --git a/gui/lib/ide/src/executor/global.rs b/gui/src/rust/ide/src/executor/global.rs
similarity index 100%
rename from gui/lib/ide/src/executor/global.rs
rename to gui/src/rust/ide/src/executor/global.rs
diff --git a/gui/lib/ide/src/executor/test_utils.rs b/gui/src/rust/ide/src/executor/test_utils.rs
similarity index 100%
rename from gui/lib/ide/src/executor/test_utils.rs
rename to gui/src/rust/ide/src/executor/test_utils.rs
diff --git a/gui/lib/ide/src/executor/web.rs b/gui/src/rust/ide/src/executor/web.rs
similarity index 96%
rename from gui/lib/ide/src/executor/web.rs
rename to gui/src/rust/ide/src/executor/web.rs
index 8ea6a8cf532..ffafcfeedf7 100644
--- a/gui/lib/ide/src/executor/web.rs
+++ b/gui/src/rust/ide/src/executor/web.rs
@@ -3,16 +3,16 @@
use crate::prelude::*;
-use basegl::control::callback::CallbackHandle;
-use basegl::control::EventLoop;
-use basegl::control::EventLoopCallback;
+use ensogl::control::callback::CallbackHandle;
+use ensogl::control::EventLoop;
+use ensogl::control::EventLoopCallback;
use futures::task::LocalSpawn;
use futures::task::LocalFutureObj;
use futures::task::SpawnError;
use futures::executor::LocalPool;
use futures::executor::LocalSpawner;
-/// Executor. Uses a single-threaded `LocalPool` underneath, relying on basegl's
+/// Executor. Uses a single-threaded `LocalPool` underneath, relying on ensogl's
/// `EventLoop` to do as much progress as possible on every animation frame.
#[derive(Debug)]
pub struct EventLoopExecutor {
diff --git a/gui/lib/ide/src/lib.rs b/gui/src/rust/ide/src/lib.rs
similarity index 99%
rename from gui/lib/ide/src/lib.rs
rename to gui/src/rust/ide/src/lib.rs
index 4ff0e540cb5..0466d500c74 100644
--- a/gui/lib/ide/src/lib.rs
+++ b/gui/src/rust/ide/src/lib.rs
@@ -21,7 +21,7 @@ pub mod view;
/// Common types that should be visible across the whole IDE crate.
pub mod prelude {
- pub use basegl::prelude::*;
+ pub use ensogl::prelude::*;
pub use enso_prelude::*;
pub use wasm_bindgen::prelude::*;
diff --git a/gui/lib/ide/src/transport.rs b/gui/src/rust/ide/src/transport.rs
similarity index 100%
rename from gui/lib/ide/src/transport.rs
rename to gui/src/rust/ide/src/transport.rs
diff --git a/gui/lib/ide/src/transport/test_utils.rs b/gui/src/rust/ide/src/transport/test_utils.rs
similarity index 100%
rename from gui/lib/ide/src/transport/test_utils.rs
rename to gui/src/rust/ide/src/transport/test_utils.rs
diff --git a/gui/lib/ide/src/transport/web.rs b/gui/src/rust/ide/src/transport/web.rs
similarity index 98%
rename from gui/lib/ide/src/transport/web.rs
rename to gui/src/rust/ide/src/transport/web.rs
index 01253f59c87..b9d6c909fac 100644
--- a/gui/lib/ide/src/transport/web.rs
+++ b/gui/src/rust/ide/src/transport/web.rs
@@ -2,8 +2,8 @@
use crate::prelude::*;
-use basegl_system_web::closure::storage::OptionalFmMutClosure;
-use basegl_system_web::js_to_string;
+use ensogl_system_web::closure::storage::OptionalFmMutClosure;
+use ensogl_system_web::js_to_string;
use failure::Error;
use futures::channel::mpsc;
use json_rpc::Transport;
diff --git a/gui/lib/ide/src/view.rs b/gui/src/rust/ide/src/view.rs
similarity index 100%
rename from gui/lib/ide/src/view.rs
rename to gui/src/rust/ide/src/view.rs
diff --git a/gui/lib/ide/src/view/layout.rs b/gui/src/rust/ide/src/view/layout.rs
similarity index 99%
rename from gui/lib/ide/src/view/layout.rs
rename to gui/src/rust/ide/src/view/layout.rs
index 430ff6a5781..fa3bb0970e7 100644
--- a/gui/lib/ide/src/view/layout.rs
+++ b/gui/src/rust/ide/src/view/layout.rs
@@ -7,7 +7,7 @@ use crate::view::temporary_panel::TemporaryPadding;
use crate::view::temporary_panel::TemporaryPanel;
use crate::view::text_editor::TextEditor;
-use basegl::display::world::World;
+use ensogl::display::world::World;
use enso_frp::io::KeyboardActions;
use enso_frp::io::KeyMask;
use nalgebra::zero;
diff --git a/gui/lib/ide/src/view/project.rs b/gui/src/rust/ide/src/view/project.rs
similarity index 94%
rename from gui/lib/ide/src/view/project.rs
rename to gui/src/rust/ide/src/view/project.rs
index f7397ce0a04..87f4f3505dc 100644
--- a/gui/lib/ide/src/view/project.rs
+++ b/gui/src/rust/ide/src/view/project.rs
@@ -6,11 +6,11 @@ use crate::prelude::*;
use crate::view::layout::ViewLayout;
use crate::controller::FallibleResult;
-use basegl::control::callback::CallbackHandle;
-use basegl::control::io::keyboard::listener::KeyboardFrpBindings;
-use basegl::display::world::WorldData;
-use basegl::display::world::World;
-use basegl::system::web;
+use ensogl::control::callback::CallbackHandle;
+use ensogl::control::io::keyboard::listener::KeyboardFrpBindings;
+use ensogl::display::world::WorldData;
+use ensogl::display::world::World;
+use ensogl::system::web;
use enso_frp::Keyboard;
use enso_frp::KeyboardActions;
use file_manager_client::Path;
diff --git a/gui/lib/ide/src/view/temporary_panel.rs b/gui/src/rust/ide/src/view/temporary_panel.rs
similarity index 100%
rename from gui/lib/ide/src/view/temporary_panel.rs
rename to gui/src/rust/ide/src/view/temporary_panel.rs
diff --git a/gui/lib/ide/src/view/text_editor.rs b/gui/src/rust/ide/src/view/text_editor.rs
similarity index 96%
rename from gui/lib/ide/src/view/text_editor.rs
rename to gui/src/rust/ide/src/view/text_editor.rs
index 106a9dd7fc5..48b1e516102 100644
--- a/gui/lib/ide/src/view/text_editor.rs
+++ b/gui/src/rust/ide/src/view/text_editor.rs
@@ -1,15 +1,15 @@
//! This module contains TextEditor, an UiComponent to edit Enso Modules or Text Files.
-use basegl::traits::*;
+use ensogl::traits::*;
use crate::prelude::*;
use crate::view::temporary_panel::TemporaryPadding;
use crate::view::temporary_panel::TemporaryPanel;
-use basegl::display::shape::text::glyph::font::FontRegistry;
-use basegl::display::shape::text::text_field::TextField;
-use basegl::display::shape::text::text_field::TextFieldProperties;
-use basegl::display::world::*;
+use ensogl::display::shape::text::glyph::font::FontRegistry;
+use ensogl::display::shape::text::text_field::TextField;
+use ensogl::display::shape::text::text_field::TextFieldProperties;
+use ensogl::display::world::*;
use data::text::TextChange;
use enso_frp::io::KeyboardActions;
use enso_frp::io::KeyMask;
@@ -18,6 +18,7 @@ use nalgebra::zero;
use utils::channel::process_stream_with_handle;
+
// ==================
// === TextEditor ===
// ==================
diff --git a/gui/lib/ide/utils/Cargo.toml b/gui/src/rust/ide/utils/Cargo.toml
similarity index 77%
rename from gui/lib/ide/utils/Cargo.toml
rename to gui/src/rust/ide/utils/Cargo.toml
index 532f91cbb0c..2c9b103c767 100644
--- a/gui/lib/ide/utils/Cargo.toml
+++ b/gui/src/rust/ide/utils/Cargo.toml
@@ -8,7 +8,7 @@ edition = "2018"
crate-type = ["cdylib", "rlib"]
[dependencies]
-enso-prelude = { version = "0.1.0" , path = "../../prelude" }
+enso-prelude = { version = "0.1.0" , path = "../../lib/prelude" }
failure = "0.1.5"
futures = "0.3.1"
diff --git a/gui/lib/ide/utils/src/channel.rs b/gui/src/rust/ide/utils/src/channel.rs
similarity index 100%
rename from gui/lib/ide/utils/src/channel.rs
rename to gui/src/rust/ide/utils/src/channel.rs
diff --git a/gui/lib/ide/utils/src/env.rs b/gui/src/rust/ide/utils/src/env.rs
similarity index 100%
rename from gui/lib/ide/utils/src/env.rs
rename to gui/src/rust/ide/utils/src/env.rs
diff --git a/gui/lib/ide/utils/src/lib.rs b/gui/src/rust/ide/utils/src/lib.rs
similarity index 100%
rename from gui/lib/ide/utils/src/lib.rs
rename to gui/src/rust/ide/utils/src/lib.rs
diff --git a/gui/lib/ide/utils/src/test.rs b/gui/src/rust/ide/utils/src/test.rs
similarity index 100%
rename from gui/lib/ide/utils/src/test.rs
rename to gui/src/rust/ide/utils/src/test.rs
diff --git a/gui/lib/code-builder/Cargo.toml b/gui/src/rust/lib/code-builder/Cargo.toml
similarity index 100%
rename from gui/lib/code-builder/Cargo.toml
rename to gui/src/rust/lib/code-builder/Cargo.toml
diff --git a/gui/lib/code-builder/src/lib.rs b/gui/src/rust/lib/code-builder/src/lib.rs
similarity index 100%
rename from gui/lib/code-builder/src/lib.rs
rename to gui/src/rust/lib/code-builder/src/lib.rs
diff --git a/gui/lib/data/Cargo.toml b/gui/src/rust/lib/data/Cargo.toml
similarity index 100%
rename from gui/lib/data/Cargo.toml
rename to gui/src/rust/lib/data/Cargo.toml
diff --git a/gui/lib/data/src/lib.rs b/gui/src/rust/lib/data/src/lib.rs
similarity index 100%
rename from gui/lib/data/src/lib.rs
rename to gui/src/rust/lib/data/src/lib.rs
diff --git a/gui/lib/data/src/opt_vec.rs b/gui/src/rust/lib/data/src/opt_vec.rs
similarity index 100%
rename from gui/lib/data/src/opt_vec.rs
rename to gui/src/rust/lib/data/src/opt_vec.rs
diff --git a/gui/lib/data/src/text.rs b/gui/src/rust/lib/data/src/text.rs
similarity index 100%
rename from gui/lib/data/src/text.rs
rename to gui/src/rust/lib/data/src/text.rs
diff --git a/gui/lib/gui/Cargo.toml b/gui/src/rust/lib/debug-scenes/Cargo.toml
similarity index 72%
rename from gui/lib/gui/Cargo.toml
rename to gui/src/rust/lib/debug-scenes/Cargo.toml
index 3da16481888..c4d52fab321 100644
--- a/gui/lib/gui/Cargo.toml
+++ b/gui/src/rust/lib/debug-scenes/Cargo.toml
@@ -8,14 +8,14 @@ edition = "2018"
crate-type = ["cdylib"]
[dependencies]
-basegl = { version = "0.1.0" , path = "../core" }
-basegl-core-msdf-sys = { version = "0.1.0" , path = "../core/msdf-sys" }
-basegl-system-web = { version = "0.1.0" , path = "../system/web" }
-enso-frp = { version = "0.1.0" , path = "../frp" }
-ide = { version = "0.1.0" , path = "../ide" }
+ensogl = { version = "0.1.0" , path = "../../ensogl" }
+ensogl-core-msdf-sys = { version = "0.1.0" , path = "../../ensogl/msdf-sys" }
+ensogl-system-web = { version = "0.1.0" , path = "../system/web" }
+enso-frp = { version = "0.1.0" , path = "../frp" }
+ide = { version = "0.1.0" , path = "../../ide" }
-enso-prelude = { version = "0.1.0" , path = "../prelude" }
-wasm-bindgen = { version = "=0.2.58" , features = ["nightly"] }
+enso-prelude = { version = "0.1.0" , path = "../prelude" }
+wasm-bindgen = { version = "=0.2.58" , features = ["nightly"] }
nalgebra = { version = "0.19.0" }
js-sys = { version = "0.3.28" }
diff --git a/gui/lib/gui/src/benchmarks.rs b/gui/src/rust/lib/debug-scenes/src/benchmarks.rs
similarity index 91%
rename from gui/lib/gui/src/benchmarks.rs
rename to gui/src/rust/lib/debug-scenes/src/benchmarks.rs
index 5f935348f15..0599e4f830c 100644
--- a/gui/lib/gui/src/benchmarks.rs
+++ b/gui/src/rust/lib/debug-scenes/src/benchmarks.rs
@@ -4,16 +4,16 @@
//! This file is under a heavy development. It contains commented lines of code and some code may
//! be of poor quality. Expect drastic changes.
//!
-use basegl::traits::*;
+use ensogl::traits::*;
-use basegl::display::camera::Camera2d;
-use basegl::display::symbol::geometry::Sprite;
-use basegl::display::symbol::geometry::SpriteSystem;
-use basegl::display::world::*;
-use basegl::prelude::*;
-use basegl::system::web::forward_panic_hook_to_console;
-use basegl::system::web::set_stdout;
-use basegl::system::web;
+use ensogl::display::camera::Camera2d;
+use ensogl::display::symbol::geometry::Sprite;
+use ensogl::display::symbol::geometry::SpriteSystem;
+use ensogl::display::world::*;
+use ensogl::prelude::*;
+use ensogl::system::web::forward_panic_hook_to_console;
+use ensogl::system::web::set_stdout;
+use ensogl::system::web;
use nalgebra::Vector2;
use nalgebra::Vector3;
use wasm_bindgen::prelude::*;
diff --git a/gui/lib/gui/src/dom_symbols.rs b/gui/src/rust/lib/debug-scenes/src/dom_symbols.rs
similarity index 88%
rename from gui/lib/gui/src/dom_symbols.rs
rename to gui/src/rust/lib/debug-scenes/src/dom_symbols.rs
index 82a33c2fbb8..88717feeccb 100644
--- a/gui/lib/gui/src/dom_symbols.rs
+++ b/gui/src/rust/lib/debug-scenes/src/dom_symbols.rs
@@ -1,17 +1,17 @@
#![allow(missing_docs)]
-use basegl::traits::*;
+use ensogl::traits::*;
-use basegl::system::web;
-use basegl::system::web::NodeInserter;
-use basegl::display::symbol::DomSymbol;
+use ensogl::system::web;
+use ensogl::system::web::NodeInserter;
+use ensogl::display::symbol::DomSymbol;
use web::StyleSetter;
-use basegl::display::symbol::geometry::Sprite;
-use basegl::display::symbol::geometry::SpriteSystem;
-use basegl::display::world::*;
-use basegl::display::navigation::navigator::Navigator;
-use basegl::prelude::*;
-use basegl::animation::animator::fixed_step::FixedStepAnimator;
+use ensogl::display::symbol::geometry::Sprite;
+use ensogl::display::symbol::geometry::SpriteSystem;
+use ensogl::display::world::*;
+use ensogl::display::navigation::navigator::Navigator;
+use ensogl::prelude::*;
+use ensogl::animation::animator::fixed_step::FixedStepAnimator;
use nalgebra::Vector2;
use nalgebra::Vector3;
diff --git a/gui/lib/gui/src/easing_animator.rs b/gui/src/rust/lib/debug-scenes/src/easing_animator.rs
similarity index 95%
rename from gui/lib/gui/src/easing_animator.rs
rename to gui/src/rust/lib/debug-scenes/src/easing_animator.rs
index 9816300c418..ae2bb758bbd 100644
--- a/gui/lib/gui/src/easing_animator.rs
+++ b/gui/src/rust/lib/debug-scenes/src/easing_animator.rs
@@ -2,16 +2,16 @@
use crate::prelude::*;
-use basegl::animation::animator::continuous::ContinuousAnimator;
-use basegl::animation::animator::easing::EasingAnimator;
-use basegl::animation::animator::fixed_step::FixedStepAnimator;
-use basegl::animation::easing::*;
-use basegl::system::web::AttributeSetter;
-use basegl::system::web::create_element;
-use basegl::system::web::get_element_by_id;
-use basegl::system::web::NodeInserter;
-use basegl::system::web::StyleSetter;
-use basegl::system::web;
+use ensogl::animation::animator::continuous::ContinuousAnimator;
+use ensogl::animation::animator::easing::EasingAnimator;
+use ensogl::animation::animator::fixed_step::FixedStepAnimator;
+use ensogl::animation::easing::*;
+use ensogl::system::web::AttributeSetter;
+use ensogl::system::web::create_element;
+use ensogl::system::web::get_element_by_id;
+use ensogl::system::web::NodeInserter;
+use ensogl::system::web::StyleSetter;
+use ensogl::system::web;
use js_sys::Math;
use nalgebra::Vector2;
use nalgebra::zero;
diff --git a/gui/lib/gui/src/glyph_system.rs b/gui/src/rust/lib/debug-scenes/src/glyph_system.rs
similarity index 80%
rename from gui/lib/gui/src/glyph_system.rs
rename to gui/src/rust/lib/debug-scenes/src/glyph_system.rs
index 67a501fe40a..6aa0986a0ca 100644
--- a/gui/lib/gui/src/glyph_system.rs
+++ b/gui/src/rust/lib/debug-scenes/src/glyph_system.rs
@@ -1,12 +1,12 @@
//! An example showing usage of GlyphSystem.
-use basegl::traits::*;
+use ensogl::traits::*;
-use basegl::display::shape::text::glyph::font::FontRegistry;
-use basegl::display::shape::text::glyph::system::GlyphSystem;
-use basegl::display::world::*;
-use basegl::system::web;
-use basegl_core_msdf_sys::run_once_initialized;
+use ensogl::display::shape::text::glyph::font::FontRegistry;
+use ensogl::display::shape::text::glyph::system::GlyphSystem;
+use ensogl::display::world::*;
+use ensogl::system::web;
+use ensogl_core_msdf_sys::run_once_initialized;
use nalgebra::Vector4;
use wasm_bindgen::prelude::*;
diff --git a/gui/lib/gui/src/ide.rs b/gui/src/rust/lib/debug-scenes/src/ide.rs
similarity index 87%
rename from gui/lib/gui/src/ide.rs
rename to gui/src/rust/lib/debug-scenes/src/ide.rs
index 32a756ae1b4..2848710b0e3 100644
--- a/gui/lib/gui/src/ide.rs
+++ b/gui/src/rust/lib/debug-scenes/src/ide.rs
@@ -2,7 +2,7 @@
use wasm_bindgen::prelude::*;
-use basegl::system::web;
+use ensogl::system::web;
use ide::run_ide;
/// IDE startup function.
@@ -13,7 +13,7 @@ pub fn run_example_ide() {
web::set_stdout();
// FIXME: This code is temporary. It's used to remove the loader UI.
- basegl_core_msdf_sys::run_once_initialized(|| {
+ ensogl_core_msdf_sys::run_once_initialized(|| {
web::get_element_by_id("loader").map(|t| {
t.parent_node().map(|p| {
p.remove_child(&t).unwrap()
diff --git a/gui/lib/gui/src/lib.rs b/gui/src/rust/lib/debug-scenes/src/lib.rs
similarity index 100%
rename from gui/lib/gui/src/lib.rs
rename to gui/src/rust/lib/debug-scenes/src/lib.rs
diff --git a/gui/lib/gui/src/shapes.rs b/gui/src/rust/lib/debug-scenes/src/shapes.rs
similarity index 95%
rename from gui/lib/gui/src/shapes.rs
rename to gui/src/rust/lib/debug-scenes/src/shapes.rs
index de237a3e9bb..b6da09d8b39 100644
--- a/gui/lib/gui/src/shapes.rs
+++ b/gui/src/rust/lib/debug-scenes/src/shapes.rs
@@ -4,17 +4,17 @@
//! This file is under a heavy development. It contains commented lines of code and some code may
//! be of poor quality. Expect drastic changes.
-use basegl::traits::*;
+use ensogl::traits::*;
-use basegl::data::color::*;
-use basegl::display::navigation::navigator::Navigator;
-use basegl::display::shape::*;
-use basegl::display::shape::primitive::system::ShapeSystem;
-use basegl::display::shape::Var;
-use basegl::display::symbol::geometry::Sprite;
-use basegl::display::world::*;
-use basegl::prelude::*;
-use basegl::system::web;
+use ensogl::data::color::*;
+use ensogl::display::navigation::navigator::Navigator;
+use ensogl::display::shape::*;
+use ensogl::display::shape::primitive::system::ShapeSystem;
+use ensogl::display::shape::Var;
+use ensogl::display::symbol::geometry::Sprite;
+use ensogl::display::world::*;
+use ensogl::prelude::*;
+use ensogl::system::web;
use nalgebra::Vector2;
use wasm_bindgen::prelude::*;
@@ -135,8 +135,6 @@ fn nodes3() -> AnyShape {
fn init(world: &World) {
-
-
let scene = world.scene();
let camera = scene.camera();
let screen = camera.screen();
diff --git a/gui/lib/gui/src/sprite_system.rs b/gui/src/rust/lib/debug-scenes/src/sprite_system.rs
similarity index 88%
rename from gui/lib/gui/src/sprite_system.rs
rename to gui/src/rust/lib/debug-scenes/src/sprite_system.rs
index aeb6bbc8c4c..ad9d641cf34 100644
--- a/gui/lib/gui/src/sprite_system.rs
+++ b/gui/src/rust/lib/debug-scenes/src/sprite_system.rs
@@ -1,16 +1,16 @@
#![allow(missing_docs)]
-use basegl::traits::*;
+use ensogl::traits::*;
-use basegl::display::camera::Camera2d;
-use basegl::display::navigation::navigator::Navigator;
-use basegl::display::symbol::geometry::Sprite;
-use basegl::display::symbol::geometry::SpriteSystem;
-use basegl::display::world::*;
-use basegl::prelude::*;
-use basegl::system::web::forward_panic_hook_to_console;
-use basegl::system::web::set_stdout;
-use basegl::system::web;
+use ensogl::display::camera::Camera2d;
+use ensogl::display::navigation::navigator::Navigator;
+use ensogl::display::symbol::geometry::Sprite;
+use ensogl::display::symbol::geometry::SpriteSystem;
+use ensogl::display::world::*;
+use ensogl::prelude::*;
+use ensogl::system::web::forward_panic_hook_to_console;
+use ensogl::system::web::set_stdout;
+use ensogl::system::web;
use nalgebra::Vector2;
use nalgebra::Vector3;
use wasm_bindgen::prelude::*;
diff --git a/gui/lib/gui/src/text_field.rs b/gui/src/rust/lib/debug-scenes/src/text_field.rs
similarity index 80%
rename from gui/lib/gui/src/text_field.rs
rename to gui/src/rust/lib/debug-scenes/src/text_field.rs
index 134f1be90f9..b227e7832a8 100644
--- a/gui/lib/gui/src/text_field.rs
+++ b/gui/src/rust/lib/debug-scenes/src/text_field.rs
@@ -1,13 +1,13 @@
#![allow(missing_docs)]
-use basegl::traits::*;
+use ensogl::traits::*;
-use basegl::display::world::WorldData;
-use basegl::display::shape::text::glyph::font::FontRegistry;
-use basegl::display::shape::text::text_field::TextField;
-use basegl::display::shape::text::text_field::TextFieldProperties;
-use basegl::display::world::*;
-use basegl::system::web;
+use ensogl::display::world::WorldData;
+use ensogl::display::shape::text::glyph::font::FontRegistry;
+use ensogl::display::shape::text::text_field::TextField;
+use ensogl::display::shape::text::text_field::TextFieldProperties;
+use ensogl::display::world::*;
+use ensogl::system::web;
use nalgebra::Vector2;
use nalgebra::Vector4;
use wasm_bindgen::prelude::*;
@@ -31,7 +31,7 @@ Devoutly to be wish'd.";
pub fn run_example_text_field() {
web::forward_panic_hook_to_console();
web::set_stdout();
- basegl_core_msdf_sys::run_once_initialized(|| {
+ ensogl_core_msdf_sys::run_once_initialized(|| {
let world = &WorldData::new(&web::get_html_element_by_id("root").unwrap());
let mut fonts = FontRegistry::new();
let font = fonts.get_or_load_embedded_font("DejaVuSansMono").unwrap();
diff --git a/gui/lib/gui/src/text_typing.rs b/gui/src/rust/lib/debug-scenes/src/text_typing.rs
similarity index 85%
rename from gui/lib/gui/src/text_typing.rs
rename to gui/src/rust/lib/debug-scenes/src/text_typing.rs
index 8a146cc729a..fd276d286f6 100644
--- a/gui/lib/gui/src/text_typing.rs
+++ b/gui/src/rust/lib/debug-scenes/src/text_typing.rs
@@ -2,13 +2,13 @@
use wasm_bindgen::prelude::*;
-use basegl::traits::*;
+use ensogl::traits::*;
-use basegl::display::shape::text::glyph::font::FontRegistry;
-use basegl::display::shape::text::text_field::TextField;
-use basegl::display::shape::text::text_field::TextFieldProperties;
-use basegl::display::world::*;
-use basegl::system::web;
+use ensogl::display::shape::text::glyph::font::FontRegistry;
+use ensogl::display::shape::text::text_field::TextField;
+use ensogl::display::shape::text::text_field::TextFieldProperties;
+use ensogl::display::world::*;
+use ensogl::system::web;
use nalgebra::Vector2;
use nalgebra::Vector4;
@@ -18,7 +18,7 @@ use nalgebra::Vector4;
pub fn run_example_text_typing() {
web::forward_panic_hook_to_console();
web::set_stdout();
- basegl_core_msdf_sys::run_once_initialized(|| {
+ ensogl_core_msdf_sys::run_once_initialized(|| {
let world = &WorldData::new(&web::get_html_element_by_id("root").unwrap());
let mut fonts = FontRegistry::new();
let font = fonts.get_or_load_embedded_font("DejaVuSansMono").unwrap();
@@ -37,7 +37,7 @@ pub fn run_example_text_typing() {
let now = js_sys::Date::now();
let animation_start = now + 3000.0;
let start_scrolling = animation_start + 10000.0;
- let mut chars = typed_character_list(animation_start,include_str!("../../core/src/lib.rs"));
+ let mut chars = typed_character_list(animation_start,include_str!("text_typing.rs"));
world.on_frame(move |_| {
animate_text_component(&mut text_field,&mut chars,start_scrolling)
}).forget();
diff --git a/gui/lib/eval-tt/Cargo.toml b/gui/src/rust/lib/eval-tt/Cargo.toml
similarity index 100%
rename from gui/lib/eval-tt/Cargo.toml
rename to gui/src/rust/lib/eval-tt/Cargo.toml
diff --git a/gui/lib/eval-tt/src/lib.rs b/gui/src/rust/lib/eval-tt/src/lib.rs
similarity index 100%
rename from gui/lib/eval-tt/src/lib.rs
rename to gui/src/rust/lib/eval-tt/src/lib.rs
diff --git a/gui/lib/frp/Cargo.toml b/gui/src/rust/lib/frp/Cargo.toml
similarity index 86%
rename from gui/lib/frp/Cargo.toml
rename to gui/src/rust/lib/frp/Cargo.toml
index d68f556b8ca..9e48883c885 100644
--- a/gui/lib/frp/Cargo.toml
+++ b/gui/src/rust/lib/frp/Cargo.toml
@@ -8,7 +8,7 @@ edition = "2018"
[dependencies]
enso-prelude = { version = "0.1.0" , path = "../prelude" }
-basegl-system-web = { version = "0.1.0" , path = "../system/web" }
+ensogl-system-web = { version = "0.1.0" , path = "../system/web" }
percent-encoding = { version = "2.1.0" }
rust-dense-bitset = { version = "0.1.1" }
keyboard-types = { version = "0.5.0" }
diff --git a/gui/lib/frp/src/core.rs b/gui/src/rust/lib/frp/src/core.rs
similarity index 100%
rename from gui/lib/frp/src/core.rs
rename to gui/src/rust/lib/frp/src/core.rs
diff --git a/gui/lib/frp/src/core/node.rs b/gui/src/rust/lib/frp/src/core/node.rs
similarity index 100%
rename from gui/lib/frp/src/core/node.rs
rename to gui/src/rust/lib/frp/src/core/node.rs
diff --git a/gui/lib/frp/src/core/node/class.rs b/gui/src/rust/lib/frp/src/core/node/class.rs
similarity index 100%
rename from gui/lib/frp/src/core/node/class.rs
rename to gui/src/rust/lib/frp/src/core/node/class.rs
diff --git a/gui/lib/frp/src/core/node/id.rs b/gui/src/rust/lib/frp/src/core/node/id.rs
similarity index 100%
rename from gui/lib/frp/src/core/node/id.rs
rename to gui/src/rust/lib/frp/src/core/node/id.rs
diff --git a/gui/lib/frp/src/core/node/label.rs b/gui/src/rust/lib/frp/src/core/node/label.rs
similarity index 100%
rename from gui/lib/frp/src/core/node/label.rs
rename to gui/src/rust/lib/frp/src/core/node/label.rs
diff --git a/gui/lib/frp/src/core/node/wrapper.rs b/gui/src/rust/lib/frp/src/core/node/wrapper.rs
similarity index 100%
rename from gui/lib/frp/src/core/node/wrapper.rs
rename to gui/src/rust/lib/frp/src/core/node/wrapper.rs
diff --git a/gui/lib/frp/src/core/nodes.rs b/gui/src/rust/lib/frp/src/core/nodes.rs
similarity index 100%
rename from gui/lib/frp/src/core/nodes.rs
rename to gui/src/rust/lib/frp/src/core/nodes.rs
diff --git a/gui/lib/frp/src/core/nodes/dynamic.rs b/gui/src/rust/lib/frp/src/core/nodes/dynamic.rs
similarity index 100%
rename from gui/lib/frp/src/core/nodes/dynamic.rs
rename to gui/src/rust/lib/frp/src/core/nodes/dynamic.rs
diff --git a/gui/lib/frp/src/core/nodes/inference.rs b/gui/src/rust/lib/frp/src/core/nodes/inference.rs
similarity index 100%
rename from gui/lib/frp/src/core/nodes/inference.rs
rename to gui/src/rust/lib/frp/src/core/nodes/inference.rs
diff --git a/gui/lib/frp/src/core/nodes/lambda.rs b/gui/src/rust/lib/frp/src/core/nodes/lambda.rs
similarity index 100%
rename from gui/lib/frp/src/core/nodes/lambda.rs
rename to gui/src/rust/lib/frp/src/core/nodes/lambda.rs
diff --git a/gui/lib/frp/src/core/nodes/prim.rs b/gui/src/rust/lib/frp/src/core/nodes/prim.rs
similarity index 100%
rename from gui/lib/frp/src/core/nodes/prim.rs
rename to gui/src/rust/lib/frp/src/core/nodes/prim.rs
diff --git a/gui/lib/frp/src/data.rs b/gui/src/rust/lib/frp/src/data.rs
similarity index 100%
rename from gui/lib/frp/src/data.rs
rename to gui/src/rust/lib/frp/src/data.rs
diff --git a/gui/lib/frp/src/debug.rs b/gui/src/rust/lib/frp/src/debug.rs
similarity index 100%
rename from gui/lib/frp/src/debug.rs
rename to gui/src/rust/lib/frp/src/debug.rs
diff --git a/gui/lib/frp/src/debug/graphviz.rs b/gui/src/rust/lib/frp/src/debug/graphviz.rs
similarity index 100%
rename from gui/lib/frp/src/debug/graphviz.rs
rename to gui/src/rust/lib/frp/src/debug/graphviz.rs
diff --git a/gui/lib/frp/src/io.rs b/gui/src/rust/lib/frp/src/io.rs
similarity index 100%
rename from gui/lib/frp/src/io.rs
rename to gui/src/rust/lib/frp/src/io.rs
diff --git a/gui/lib/frp/src/io/keyboard.rs b/gui/src/rust/lib/frp/src/io/keyboard.rs
similarity index 100%
rename from gui/lib/frp/src/io/keyboard.rs
rename to gui/src/rust/lib/frp/src/io/keyboard.rs
diff --git a/gui/lib/frp/src/io/mouse.rs b/gui/src/rust/lib/frp/src/io/mouse.rs
similarity index 100%
rename from gui/lib/frp/src/io/mouse.rs
rename to gui/src/rust/lib/frp/src/io/mouse.rs
diff --git a/gui/lib/frp/src/lib.rs b/gui/src/rust/lib/frp/src/lib.rs
similarity index 98%
rename from gui/lib/frp/src/lib.rs
rename to gui/src/rust/lib/frp/src/lib.rs
index c53b8f9af88..2ccd0aec56d 100644
--- a/gui/lib/frp/src/lib.rs
+++ b/gui/src/rust/lib/frp/src/lib.rs
@@ -32,7 +32,7 @@ pub use macros::*;
pub use crate::core::*;
use enso_prelude as prelude;
-use basegl_system_web as web;
+use ensogl_system_web as web;
diff --git a/gui/lib/frp/src/macros.rs b/gui/src/rust/lib/frp/src/macros.rs
similarity index 100%
rename from gui/lib/frp/src/macros.rs
rename to gui/src/rust/lib/frp/src/macros.rs
diff --git a/gui/lib/logger/Cargo.toml b/gui/src/rust/lib/logger/Cargo.toml
similarity index 100%
rename from gui/lib/logger/Cargo.toml
rename to gui/src/rust/lib/logger/Cargo.toml
diff --git a/gui/lib/logger/src/lib.rs b/gui/src/rust/lib/logger/src/lib.rs
similarity index 100%
rename from gui/lib/logger/src/lib.rs
rename to gui/src/rust/lib/logger/src/lib.rs
diff --git a/gui/lib/macro-utils/Cargo.toml b/gui/src/rust/lib/macro-utils/Cargo.toml
similarity index 100%
rename from gui/lib/macro-utils/Cargo.toml
rename to gui/src/rust/lib/macro-utils/Cargo.toml
diff --git a/gui/lib/macro-utils/src/lib.rs b/gui/src/rust/lib/macro-utils/src/lib.rs
similarity index 100%
rename from gui/lib/macro-utils/src/lib.rs
rename to gui/src/rust/lib/macro-utils/src/lib.rs
diff --git a/gui/lib/optics/Cargo.toml b/gui/src/rust/lib/optics/Cargo.toml
similarity index 100%
rename from gui/lib/optics/Cargo.toml
rename to gui/src/rust/lib/optics/Cargo.toml
diff --git a/gui/lib/optics/src/lib.rs b/gui/src/rust/lib/optics/src/lib.rs
similarity index 100%
rename from gui/lib/optics/src/lib.rs
rename to gui/src/rust/lib/optics/src/lib.rs
diff --git a/gui/lib/prelude/Cargo.toml b/gui/src/rust/lib/prelude/Cargo.toml
similarity index 100%
rename from gui/lib/prelude/Cargo.toml
rename to gui/src/rust/lib/prelude/Cargo.toml
diff --git a/gui/lib/prelude/src/collections.rs b/gui/src/rust/lib/prelude/src/collections.rs
similarity index 100%
rename from gui/lib/prelude/src/collections.rs
rename to gui/src/rust/lib/prelude/src/collections.rs
diff --git a/gui/lib/prelude/src/lib.rs b/gui/src/rust/lib/prelude/src/lib.rs
similarity index 100%
rename from gui/lib/prelude/src/lib.rs
rename to gui/src/rust/lib/prelude/src/lib.rs
diff --git a/gui/lib/prelude/src/macros.rs b/gui/src/rust/lib/prelude/src/macros.rs
similarity index 100%
rename from gui/lib/prelude/src/macros.rs
rename to gui/src/rust/lib/prelude/src/macros.rs
diff --git a/gui/lib/prelude/src/option.rs b/gui/src/rust/lib/prelude/src/option.rs
similarity index 100%
rename from gui/lib/prelude/src/option.rs
rename to gui/src/rust/lib/prelude/src/option.rs
diff --git a/gui/lib/prelude/src/phantom.rs b/gui/src/rust/lib/prelude/src/phantom.rs
similarity index 100%
rename from gui/lib/prelude/src/phantom.rs
rename to gui/src/rust/lib/prelude/src/phantom.rs
diff --git a/gui/lib/prelude/src/reference.rs b/gui/src/rust/lib/prelude/src/reference.rs
similarity index 100%
rename from gui/lib/prelude/src/reference.rs
rename to gui/src/rust/lib/prelude/src/reference.rs
diff --git a/gui/lib/prelude/src/std_reexports.rs b/gui/src/rust/lib/prelude/src/std_reexports.rs
similarity index 100%
rename from gui/lib/prelude/src/std_reexports.rs
rename to gui/src/rust/lib/prelude/src/std_reexports.rs
diff --git a/gui/lib/prelude/src/string.rs b/gui/src/rust/lib/prelude/src/string.rs
similarity index 100%
rename from gui/lib/prelude/src/string.rs
rename to gui/src/rust/lib/prelude/src/string.rs
diff --git a/gui/lib/prelude/src/tp.rs b/gui/src/rust/lib/prelude/src/tp.rs
similarity index 100%
rename from gui/lib/prelude/src/tp.rs
rename to gui/src/rust/lib/prelude/src/tp.rs
diff --git a/gui/lib/prelude/src/wrapper.rs b/gui/src/rust/lib/prelude/src/wrapper.rs
similarity index 100%
rename from gui/lib/prelude/src/wrapper.rs
rename to gui/src/rust/lib/prelude/src/wrapper.rs
diff --git a/gui/lib/shapely/impl/Cargo.toml b/gui/src/rust/lib/shapely/impl/Cargo.toml
similarity index 100%
rename from gui/lib/shapely/impl/Cargo.toml
rename to gui/src/rust/lib/shapely/impl/Cargo.toml
diff --git a/gui/lib/shapely/impl/src/cartesian.rs b/gui/src/rust/lib/shapely/impl/src/cartesian.rs
similarity index 100%
rename from gui/lib/shapely/impl/src/cartesian.rs
rename to gui/src/rust/lib/shapely/impl/src/cartesian.rs
diff --git a/gui/lib/shapely/impl/src/generator.rs b/gui/src/rust/lib/shapely/impl/src/generator.rs
similarity index 100%
rename from gui/lib/shapely/impl/src/generator.rs
rename to gui/src/rust/lib/shapely/impl/src/generator.rs
diff --git a/gui/lib/shapely/impl/src/lib.rs b/gui/src/rust/lib/shapely/impl/src/lib.rs
similarity index 100%
rename from gui/lib/shapely/impl/src/lib.rs
rename to gui/src/rust/lib/shapely/impl/src/lib.rs
diff --git a/gui/lib/shapely/impl/src/shared.rs b/gui/src/rust/lib/shapely/impl/src/shared.rs
similarity index 100%
rename from gui/lib/shapely/impl/src/shared.rs
rename to gui/src/rust/lib/shapely/impl/src/shared.rs
diff --git a/gui/lib/shapely/impl/src/singleton.rs b/gui/src/rust/lib/shapely/impl/src/singleton.rs
similarity index 100%
rename from gui/lib/shapely/impl/src/singleton.rs
rename to gui/src/rust/lib/shapely/impl/src/singleton.rs
diff --git a/gui/lib/shapely/impl/tests/derivation.rs b/gui/src/rust/lib/shapely/impl/tests/derivation.rs
similarity index 100%
rename from gui/lib/shapely/impl/tests/derivation.rs
rename to gui/src/rust/lib/shapely/impl/tests/derivation.rs
diff --git a/gui/lib/shapely/macros/Cargo.toml b/gui/src/rust/lib/shapely/macros/Cargo.toml
similarity index 100%
rename from gui/lib/shapely/macros/Cargo.toml
rename to gui/src/rust/lib/shapely/macros/Cargo.toml
diff --git a/gui/lib/shapely/macros/src/derive_iterator.rs b/gui/src/rust/lib/shapely/macros/src/derive_iterator.rs
similarity index 100%
rename from gui/lib/shapely/macros/src/derive_iterator.rs
rename to gui/src/rust/lib/shapely/macros/src/derive_iterator.rs
diff --git a/gui/lib/shapely/macros/src/lib.rs b/gui/src/rust/lib/shapely/macros/src/lib.rs
similarity index 100%
rename from gui/lib/shapely/macros/src/lib.rs
rename to gui/src/rust/lib/shapely/macros/src/lib.rs
diff --git a/gui/lib/shapely/macros/src/overlappable.rs b/gui/src/rust/lib/shapely/macros/src/overlappable.rs
similarity index 100%
rename from gui/lib/shapely/macros/src/overlappable.rs
rename to gui/src/rust/lib/shapely/macros/src/overlappable.rs
diff --git a/gui/lib/system/web/Cargo.toml b/gui/src/rust/lib/system/web/Cargo.toml
similarity index 97%
rename from gui/lib/system/web/Cargo.toml
rename to gui/src/rust/lib/system/web/Cargo.toml
index be36d8cfa74..4e0bbc623c3 100644
--- a/gui/lib/system/web/Cargo.toml
+++ b/gui/src/rust/lib/system/web/Cargo.toml
@@ -1,5 +1,5 @@
[package]
-name = "basegl-system-web"
+name = "ensogl-system-web"
version = "0.1.0"
authors = ["Enso Team "]
edition = "2018"
diff --git a/gui/lib/system/web/js/intersection_observer.js b/gui/src/rust/lib/system/web/js/intersection_observer.js
similarity index 100%
rename from gui/lib/system/web/js/intersection_observer.js
rename to gui/src/rust/lib/system/web/js/intersection_observer.js
diff --git a/gui/lib/system/web/js/resize_observer.js b/gui/src/rust/lib/system/web/js/resize_observer.js
similarity index 100%
rename from gui/lib/system/web/js/resize_observer.js
rename to gui/src/rust/lib/system/web/js/resize_observer.js
diff --git a/gui/lib/system/web/src/closure.rs b/gui/src/rust/lib/system/web/src/closure.rs
similarity index 100%
rename from gui/lib/system/web/src/closure.rs
rename to gui/src/rust/lib/system/web/src/closure.rs
diff --git a/gui/lib/system/web/src/closure/storage.rs b/gui/src/rust/lib/system/web/src/closure/storage.rs
similarity index 100%
rename from gui/lib/system/web/src/closure/storage.rs
rename to gui/src/rust/lib/system/web/src/closure/storage.rs
diff --git a/gui/lib/system/web/src/lib.rs b/gui/src/rust/lib/system/web/src/lib.rs
similarity index 100%
rename from gui/lib/system/web/src/lib.rs
rename to gui/src/rust/lib/system/web/src/lib.rs
diff --git a/gui/lib/system/web/src/resize_observer.rs b/gui/src/rust/lib/system/web/src/resize_observer.rs
similarity index 100%
rename from gui/lib/system/web/src/resize_observer.rs
rename to gui/src/rust/lib/system/web/src/resize_observer.rs
diff --git a/gui/lib/web-test-proc-macro/Cargo.toml b/gui/src/rust/lib/web-test-proc-macro/Cargo.toml
similarity index 100%
rename from gui/lib/web-test-proc-macro/Cargo.toml
rename to gui/src/rust/lib/web-test-proc-macro/Cargo.toml
diff --git a/gui/lib/web-test-proc-macro/src/lib.rs b/gui/src/rust/lib/web-test-proc-macro/src/lib.rs
similarity index 95%
rename from gui/lib/web-test-proc-macro/src/lib.rs
rename to gui/src/rust/lib/web-test-proc-macro/src/lib.rs
index 11ac34f6b32..d63c99bbd29 100644
--- a/gui/lib/web-test-proc-macro/src/lib.rs
+++ b/gui/src/rust/lib/web-test-proc-macro/src/lib.rs
@@ -22,7 +22,7 @@ use quote::quote;
/// ```rust,compile_fail
/// use web_test::web_test;
/// use web_test::web_configure;
-/// use basegl::system::web::get_element_by_id;
+/// use ensogl::system::web::get_element_by_id;
///
/// web_configure!(run_in_browser);
///
@@ -67,8 +67,8 @@ pub fn web_test(_args:TokenStream, input:TokenStream) -> TokenStream {
/// ```rust,compile_fail
/// use web_test::web_bench;
/// use web_test::web_configure;
-/// use basegl::system::web::get_element_by_id;
-/// use basegl::system::web::dyn_into;
+/// use ensogl::system::web::get_element_by_id;
+/// use ensogl::system::web::dyn_into;
/// use web_sys::HtmlElement;
///
/// web_configure!(run_in_browser);
diff --git a/gui/lib/web-test/Cargo.toml b/gui/src/rust/lib/web-test/Cargo.toml
similarity index 52%
rename from gui/lib/web-test/Cargo.toml
rename to gui/src/rust/lib/web-test/Cargo.toml
index 40b6b9ecb97..6d1a124210c 100644
--- a/gui/lib/web-test/Cargo.toml
+++ b/gui/src/rust/lib/web-test/Cargo.toml
@@ -8,14 +8,14 @@ edition = "2018"
[dependencies]
web-test-proc-macro = { version = "0.1.0" , path = "../web-test-proc-macro" }
-basegl = { version = "0.1.0" , path = "../core" }
-enso-prelude = { version = "0.1.0" , path = "../prelude" }
-basegl-system-web = { version = "0.1.0" , path = "../system/web" }
+ensogl = { version = "0.1.0" , path = "../../ensogl" }
+enso-prelude = { version = "0.1.0" , path = "../prelude" }
+ensogl-system-web = { version = "0.1.0" , path = "../system/web" }
-wasm-bindgen = { version = "=0.2.58", features = ["nightly"] }
-wasm-bindgen-test = { version = "0.3.8" }
-js-sys = { version = "0.3.28" }
-shrinkwraprs = { version = "0.3.0" }
+wasm-bindgen = { version = "=0.2.58", features = ["nightly"] }
+wasm-bindgen-test = { version = "0.3.8" }
+js-sys = { version = "0.3.28" }
+shrinkwraprs = { version = "0.3.0" }
[dependencies.web-sys]
version = "0.3.4"
diff --git a/gui/lib/web-test/src/bench_container.rs b/gui/src/rust/lib/web-test/src/bench_container.rs
similarity index 100%
rename from gui/lib/web-test/src/bench_container.rs
rename to gui/src/rust/lib/web-test/src/bench_container.rs
diff --git a/gui/lib/web-test/src/bencher.rs b/gui/src/rust/lib/web-test/src/bencher.rs
similarity index 98%
rename from gui/lib/web-test/src/bencher.rs
rename to gui/src/rust/lib/web-test/src/bencher.rs
index dbf3ac94412..7d88fc46832 100644
--- a/gui/lib/web-test/src/bencher.rs
+++ b/gui/src/rust/lib/web-test/src/bencher.rs
@@ -2,8 +2,8 @@ use crate::prelude::*;
use super::BenchContainer;
use crate::system::web;
-use basegl::control::EventLoop;
-use basegl::control::callback::CallbackHandle;
+use ensogl::control::EventLoop;
+use ensogl::control::callback::CallbackHandle;
use wasm_bindgen::prelude::Closure;
use wasm_bindgen::JsCast;
diff --git a/gui/lib/web-test/src/container.rs b/gui/src/rust/lib/web-test/src/container.rs
similarity index 100%
rename from gui/lib/web-test/src/container.rs
rename to gui/src/rust/lib/web-test/src/container.rs
diff --git a/gui/lib/web-test/src/group.rs b/gui/src/rust/lib/web-test/src/group.rs
similarity index 100%
rename from gui/lib/web-test/src/group.rs
rename to gui/src/rust/lib/web-test/src/group.rs
diff --git a/gui/lib/web-test/src/lib.rs b/gui/src/rust/lib/web-test/src/lib.rs
similarity index 93%
rename from gui/lib/web-test/src/lib.rs
rename to gui/src/rust/lib/web-test/src/lib.rs
index 856784a2ffb..5f2f912809e 100644
--- a/gui/lib/web-test/src/lib.rs
+++ b/gui/src/rust/lib/web-test/src/lib.rs
@@ -4,7 +4,7 @@
#![warn(missing_debug_implementations)]
mod system {
- pub use basegl_system_web as web;
+ pub use ensogl_system_web as web;
}
use enso_prelude as prelude;
diff --git a/gui/build/rust/Cargo.lock b/gui/src/rust/test/Cargo.lock
similarity index 100%
rename from gui/build/rust/Cargo.lock
rename to gui/src/rust/test/Cargo.lock
diff --git a/gui/build/rust/Cargo.toml b/gui/src/rust/test/Cargo.toml
similarity index 56%
rename from gui/build/rust/Cargo.toml
rename to gui/src/rust/test/Cargo.toml
index 1d517a7121c..1b2f82b07a3 100644
--- a/gui/build/rust/Cargo.toml
+++ b/gui/src/rust/test/Cargo.toml
@@ -1,10 +1,10 @@
[package]
name = "build-scripts"
version = "0.1.0"
-authors = ["Adam Obuchowicz "]
+authors = ["Enso Team "]
edition = "2018"
[workspace]
[dependencies]
-toml="0.5.5"
\ No newline at end of file
+toml="0.5.5"
diff --git a/gui/build/rust/src/bin/test-all.rs b/gui/src/rust/test/src/bin/test_all.rs
similarity index 93%
rename from gui/build/rust/src/bin/test-all.rs
rename to gui/src/rust/test/src/bin/test_all.rs
index 2e9e18bc45a..59d2d9c1d32 100644
--- a/gui/build/rust/src/bin/test-all.rs
+++ b/gui/src/rust/test/src/bin/test_all.rs
@@ -6,8 +6,8 @@ use std::path::Path;
/// List of workspace members that should not be tested by wasm-pack test.
/// (e.g. because they do not target wasm at all)
const PACKAGE_BLACKLIST:[&str;2] = [
- "build/utilities",
- "lib/ide/file-manager/mock-server"
+ "build",
+ "ide/file-manager/mock-server"
];
/// Lists members of given Cargo.toml workspace.
@@ -55,9 +55,8 @@ fn get_proc_macro(cargo_toml:toml::Value) -> Option {
/// Call wasm-pack test for each workspace member
///
-/// This function reads workspace members list from `Cargo.toml` in current
-/// directory, and call `wasm-pack test` each member. All script arguments
-/// are passed to `wasm-pack` process.
+/// This function reads workspace members list from `Cargo.toml` in current directory, and call
+/// `wasm-pack test` each member. All script arguments are passed to `wasm-pack` process.
fn main() {
let wasm_pack_args = std::env::args().skip(1).collect::>();
let cargo_toml_root = parse_toml("Cargo.toml");