Skip to content
Open
Show file tree
Hide file tree
Changes from 148 commits
Commits
Show all changes
174 commits
Select commit Hold shift + click to select a range
cfee4a0
Prototype the Web IDE
chengluyu Dec 10, 2025
6fd2eb9
Move web IDE to apps and create a runner for apps
chengluyu Dec 16, 2025
1630ee5
Add path resolution logic
chengluyu Dec 18, 2025
f88984a
Support module resolution
chengluyu Dec 18, 2025
7e14585
Commit the unstable `uid` changes to make CI happy
chengluyu Dec 18, 2025
a98cf1c
Specify files that need to be vendored
chengluyu Dec 19, 2025
c2d564a
Integrate hkmc2 updates into web-ide
chengluyu May 9, 2026
479e8f6
Split package tests from app tests
chengluyu May 9, 2026
ed2c319
Implement package vendoring prototype
chengluyu May 9, 2026
1204cb9
Validate package graph vendoring
chengluyu May 10, 2026
9f8b64a
Display relative paths when building packages
chengluyu May 10, 2026
abcef1e
Get rid of unnecessary imports
chengluyu May 10, 2026
12b3f7c
Make parser preprocessing stack-safe for Scala.js
chengluyu May 10, 2026
0827dff
Harden Web IDE browser compiler path
chengluyu May 10, 2026
fbf47aa
Rewrite Web IDE filesystem in MLscript
chengluyu May 10, 2026
496edd6
Port Web IDE execution runner to MLscript
chengluyu May 10, 2026
b310812
Port Web IDE compiler to MLscript
chengluyu May 12, 2026
d3028b7
Support import clauses in codegen
chengluyu May 16, 2026
74b9c8c
Support URL module imports
chengluyu May 16, 2026
42d065d
Port Web IDE file tooltip to MLscript
chengluyu May 16, 2026
8b0d04f
Use declared globals in Web IDE MLscript
chengluyu May 16, 2026
aa6efa4
Merge 'origin/hkmc2' into web-ide
chengluyu May 16, 2026
e1704ee
Document Web IDE rewrite workflow
chengluyu May 16, 2026
b4eae77
Port Web IDE panel persistence to MLscript
chengluyu May 16, 2026
2270d4b
Port Web IDE resize handle to MLscript
chengluyu May 16, 2026
321207c
Port Web IDE console panel to MLscript
chengluyu May 16, 2026
467255e
Port Web IDE toolbar panel to MLscript
chengluyu May 16, 2026
2d80c7e
Port Web IDE tree node to MLscript
chengluyu May 16, 2026
c7eac27
Port Web IDE file explorer to MLscript
chengluyu May 16, 2026
1bb4cbb
Port Web IDE reserved panel to MLscript
chengluyu May 16, 2026
d4c2f50
Port Web IDE editor factory to MLscript
chengluyu May 16, 2026
eeb3efb
Port Web IDE editor panel to MLscript
chengluyu May 16, 2026
02f6cbc
Port Web IDE execution worker to MLscript
chengluyu May 16, 2026
f91f1fa
Port Web IDE main bootstrap to MLscript
chengluyu May 16, 2026
0d14ffa
Fix BrowserCompiler construction on Java 17
chengluyu May 17, 2026
79a9b8d
Fix clean CI generated compile inputs
chengluyu May 17, 2026
ec10b01
Import Term source in QQImport test
chengluyu May 17, 2026
d7d3d86
Share worksheet import prefix
chengluyu May 17, 2026
3076312
Use object literals in Web IDE MLscript
chengluyu May 17, 2026
1036309
Use UCS idioms in Web IDE MLscript
chengluyu May 17, 2026
964feb2
Use of-call idioms in Web IDE MLscript
chengluyu May 17, 2026
4bd21aa
Use split-let idioms in Web IDE MLscript
chengluyu May 17, 2026
d630193
Fix Files collapse after resize
chengluyu May 17, 2026
44d3dc1
Fix Diagnostics collapse after resize
chengluyu May 17, 2026
eb8b222
Ignore non-MLscript compile requests
chengluyu May 17, 2026
b071bac
Center toolbar status indicator
chengluyu May 17, 2026
302ead3
Restore editor syntax highlighting
chengluyu May 17, 2026
0d56863
Make std files editable
chengluyu May 17, 2026
eb60bc9
Normalize HTML title metadata
chengluyu May 17, 2026
1ca9efc
Expand console when executing
chengluyu May 17, 2026
95a3cff
Add sidebar activity rails
chengluyu May 17, 2026
9ca9104
Use not idioms in Web IDE MLscript
chengluyu May 17, 2026
d0f90f2
Use action do idioms in Web IDE MLscript
chengluyu May 17, 2026
7f31c7d
Use quoted identifier object idioms in Web IDE MLscript
chengluyu May 17, 2026
d9a8b30
Use indentation object idioms in Web IDE MLscript
chengluyu May 17, 2026
2720c75
Use of-call idioms selectively in Web IDE MLscript
chengluyu May 17, 2026
fb08b5e
Inline editor theme rule specs
chengluyu May 17, 2026
e3129e9
Apply idiomatic MLscript Web IDE rewrites
chengluyu May 17, 2026
4ff9c86
Deploy Web IDE to Cloudflare Workers
chengluyu May 17, 2026
5d23d00
Add Web IDE branch preview deployments
chengluyu May 17, 2026
9c19ef5
Document additional idiomatic MLscript rules
chengluyu May 18, 2026
09298c0
Complete negated constructor wildcard pass
chengluyu May 18, 2026
b7810f3
Use present-case do for optional effects
chengluyu May 18, 2026
5eaf7a4
Use quoted field selection in Web IDE
chengluyu May 18, 2026
84a02ad
Drop unnecessary end-of-line commas
chengluyu May 18, 2026
855bff2
Drop unnecessary selection parentheses
chengluyu May 18, 2026
033f6fd
Use variable fallbacks for complement patterns
chengluyu May 18, 2026
f6eb16f
Add IDE workbench shell
chengluyu May 19, 2026
e120c9b
Add IDE visual foundation
chengluyu May 19, 2026
cb58cf7
Add mock left activity panels
chengluyu May 19, 2026
0e26d36
Add diagnostics inspector framework
chengluyu May 19, 2026
83c708d
Add bottom panel framework
chengluyu May 19, 2026
5d74556
Add editor workbench chrome
chengluyu May 19, 2026
9dd2157
Add native command dialogs
chengluyu May 19, 2026
cdec27e
Integrate IDE workbench shell
chengluyu May 19, 2026
083a731
Implement workspace search panel
chengluyu May 20, 2026
3f915f2
Group workspace search results
chengluyu May 20, 2026
ee355aa
Fix grouped search sidebar layout
chengluyu May 20, 2026
01c4650
Refine search result occurrences
chengluyu May 20, 2026
10932ed
Extract real search panel
chengluyu May 20, 2026
45fd1f9
Remove diagnostics status toggle
chengluyu May 20, 2026
176b3d4
Fix output tab icon
chengluyu May 20, 2026
f0d8782
Refine output clear feedback
chengluyu May 20, 2026
5eb2d47
Remove diagnostic panel mocks
chengluyu May 20, 2026
ec5e5ce
Center native dialogs
chengluyu May 20, 2026
12310d5
Refine native dialogs
chengluyu May 20, 2026
9b2a39a
Restore share dialog title
chengluyu May 20, 2026
c3516d7
Dismiss dialogs from backdrop clicks
chengluyu May 20, 2026
6fd034c
Stabilize command palette navigation
chengluyu May 20, 2026
642fbb1
Anchor command palette input
chengluyu May 20, 2026
a9d48a2
Disable run actions without active file
chengluyu May 20, 2026
245a842
Add filtered workspace downloads
chengluyu May 20, 2026
b7c0ebf
Move Problems to right rail
chengluyu May 20, 2026
f2a7f2f
Hide Generated panel
chengluyu May 20, 2026
f6ce773
Fix collapsed sidebar tracks after resize
chengluyu May 20, 2026
558b230
Add web IDE outline analysis
chengluyu May 20, 2026
74e18d9
Improve narrow Problems panel layout
chengluyu May 20, 2026
311d53d
Fix outline row layout
chengluyu May 20, 2026
ffaf6c7
Keep outline empty without active file
chengluyu May 20, 2026
a822f32
Send queued outline analysis changes
chengluyu May 20, 2026
f8914a7
Refresh outline analysis module
chengluyu May 21, 2026
69e8213
Expand refreshed outline symbols
chengluyu May 21, 2026
04ac7b5
Separate outline caret toggles
chengluyu May 21, 2026
4c6444e
Color outline symbol kinds
chengluyu May 21, 2026
923e296
Add centralized Web IDE logging panel
chengluyu May 21, 2026
922aab2
Compact Web IDE log entries
chengluyu May 21, 2026
6a24209
Tune log entry column widths
chengluyu May 21, 2026
3b56613
Toggle bottom panel from active tab
chengluyu May 21, 2026
fd69ae4
Remove bottom panel collapse button
chengluyu May 21, 2026
3301471
Add logging filters and auto scroll
chengluyu May 21, 2026
14861c9
Move right rail active indicator
chengluyu May 21, 2026
8061afb
Add command palette symbol navigation
chengluyu May 21, 2026
f11d9ef
Merge outline view feature
chengluyu May 21, 2026
84a4af5
Remove outline mock fallback
chengluyu May 21, 2026
1c5e7ad
Fix outline symbol kind badges
chengluyu May 21, 2026
db19400
Refine outline tree indentation
chengluyu May 21, 2026
519fde1
Tighten outline row presentation
chengluyu May 21, 2026
0592f77
Document Web IDE agent workflow
chengluyu May 21, 2026
16eeb96
Hide examples panel
chengluyu May 21, 2026
21ffb39
Enable toolbar actions for std files
chengluyu May 21, 2026
fd0d647
Show workspace diagnostics
chengluyu May 21, 2026
96337c7
Redesign problems panel
chengluyu May 21, 2026
f9e8173
Clarify problems toggle states
chengluyu May 21, 2026
13136d7
Surface fatal compiler errors
chengluyu May 21, 2026
d293da1
Surface runtime execution errors
chengluyu May 21, 2026
5be4cfa
Document Web IDE error surfacing
chengluyu May 21, 2026
1723333
Skip Web IDE preview deploy without secrets
chengluyu May 21, 2026
e03d00a
Trigger Web IDE preview
chengluyu May 21, 2026
e7ac2d3
Document fork preview secrets
chengluyu May 21, 2026
ad5b12b
Use full optimized Web IDE build
chengluyu May 21, 2026
17b8c21
Merge remote-tracking branch 'origin/hkmc2' into web-ide
chengluyu May 21, 2026
9b12870
Update golden outputs after hkmc2 merge
chengluyu May 21, 2026
3e7175a
Compile active import closure in Web IDE
chengluyu May 21, 2026
8e8502e
Merge remote-tracking branch 'origin/hkmc2' into web-ide
chengluyu May 21, 2026
f107700
Fix tokenizer end-of-line handling
chengluyu May 21, 2026
45249c4
Keep tab indentation inside editor
chengluyu May 21, 2026
60bd62b
Fix compile completion status text
chengluyu May 21, 2026
33d0c4a
Support project-level web IDE persistence
chengluyu May 26, 2026
2d65139
Add Web IDE project switcher UI and switch logic
chengluyu May 26, 2026
886aac3
Polish project switcher: rename, brand, fixed height
chengluyu May 26, 2026
d17654a
Add project export, import, and file preview to switcher
chengluyu May 26, 2026
ae51ee4
Reinitialize analysis worker after project switch
chengluyu May 26, 2026
10777ef
Show folder rows in project preview tree
chengluyu May 26, 2026
5173c82
Merge remote-tracking branch 'origin/hkmc2' into web-ide
chengluyu May 26, 2026
dcf012e
Update golden outputs after hkmc2 merge
chengluyu May 26, 2026
525d1a8
Stop emitting top-level return in module JS output
chengluyu May 27, 2026
ae2048f
Make project preview folders collapsible and fix .mjs icon
chengluyu May 27, 2026
c5de083
Use CodeMirror for project preview and show mtime in header
chengluyu May 27, 2026
f3f2032
Treat the default project as a normal project
chengluyu May 27, 2026
d84a802
Export projects as ZIP with manifest, shared with Share dialog
chengluyu May 27, 2026
50967b6
Merge `hkmc2` in
chengluyu May 27, 2026
73600fd
Polish web IDE UI details
chengluyu Jun 30, 2026
0c6010a
Enhance web IDE CodeMirror editor
chengluyu Jun 30, 2026
eebc3d4
Merge `hkmc2` in
chengluyu Jun 30, 2026
d5b608a
Fix multi-line operator alternation syntax after hkmc2 merge
chengluyu Jun 30, 2026
da0ec95
Stabilize web IDE package build
chengluyu Jul 1, 2026
f0cf4d3
Polish web IDE editor status
chengluyu Jul 1, 2026
ba63cb7
Expand web IDE command actions
chengluyu Jul 1, 2026
9641580
Enable web IDE examples panel
chengluyu Jul 1, 2026
05d0abb
Add web IDE settings foundation
chengluyu Jul 1, 2026
c4f9f38
Wire web IDE editor settings
chengluyu Jul 1, 2026
ab90d7f
Add web IDE settings details
chengluyu Jul 1, 2026
774e8bb
Add advanced web IDE settings
chengluyu Jul 1, 2026
ef5be58
Update web IDE polish docs
chengluyu Jul 1, 2026
96372d1
Auto-scroll web IDE output
chengluyu Jul 1, 2026
a458bb0
Document web IDE polish audit
chengluyu Jul 1, 2026
f837383
Fix web IDE dialog and new file focus
chengluyu Jul 1, 2026
e8a2616
Scale web IDE line numbers with editor font
chengluyu Jul 1, 2026
9761a44
Surface web IDE compiler diagnostics
chengluyu Jul 1, 2026
42af968
Tune web IDE editor gutter styling
chengluyu Jul 1, 2026
8d8adbf
Persist web IDE editor state and add Markdown support
chengluyu Jul 1, 2026
3430991
Polish web IDE settings controls
chengluyu Jul 1, 2026
d638e65
Polish web IDE editor settings and status UI
chengluyu Jul 1, 2026
8471aa6
Add transitions to web IDE dialogs
chengluyu Jul 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions .github/workflows/nix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@main
- uses: rrbutani/use-nix-shell-action@v1
Expand All @@ -30,3 +32,37 @@ jobs:
- name: Fail if tests failed
if: steps.run_test.outcome == 'failure'
run: exit 1
- name: Check Web IDE deploy changes
if: github.event_name == 'push' && github.ref == 'refs/heads/hkmc2'
id: web_ide_changes
run: |
before="${{ github.event.before }}"
after="${{ github.sha }}"
if [ "$before" = "0000000000000000000000000000000000000000" ]; then
changed=true
elif git diff --quiet "$before" "$after" -- wrangler.toml hkmc2/shared/src/test/mlscript-packages/web-ide/; then
changed=false
else
diff_status=$?
if [ "$diff_status" -eq 1 ]; then
changed=true
else
exit "$diff_status"
fi
fi
echo "changed=${changed}" >> "$GITHUB_OUTPUT"
- name: Build Web IDE deploy assets
if: github.event_name == 'push' && github.ref == 'refs/heads/hkmc2' && steps.web_ide_changes.outputs.changed == 'true'
run: |
sbt -J-Xmx4096M -J-Xss8M hkmc2JS/fullOptJS
rm -rf hkmc2/shared/src/test/mlscript-packages/web-ide/build
mkdir -p hkmc2/shared/src/test/mlscript-packages/web-ide/build
cp -R hkmc2/js/target/scala-*/hkmc2-opt/. hkmc2/shared/src/test/mlscript-packages/web-ide/build/
- name: Deploy Web IDE to Cloudflare Workers
if: github.event_name == 'push' && github.ref == 'refs/heads/hkmc2' && steps.web_ide_changes.outputs.changed == 'true'
uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
wranglerVersion: "4.29.0"
command: deploy --config wrangler.toml
79 changes: 79 additions & 0 deletions .github/workflows/web-ide-preview.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: Web IDE Preview

on:
push:
branches-ignore:
- hkmc2
paths:
- .github/workflows/web-ide-preview.yml
- wrangler.toml
- hkmc2/shared/src/test/mlscript-packages/web-ide/**

jobs:
preview:
runs-on: ubuntu-latest
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
steps:
- uses: actions/checkout@v3
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@main
- uses: rrbutani/use-nix-shell-action@v1
with:
devShell: .#default
- name: Install npm dependencies (TypeScript, Binaryen, etc.)
run: npm ci
- name: Run Web IDE package test
run: |
sbt -J-Xmx4096M -J-Xss8M hkmc2JVM/test "hkmc2PackagesTest/testOnly hkmc2.PackageTestRunner -- -z web-ide"
- name: Check no changes
run: |
git update-index -q --refresh
git diff-files -p --exit-code
- name: Build Web IDE deploy assets
run: |
sbt -J-Xmx4096M -J-Xss8M hkmc2JS/fullOptJS
rm -rf hkmc2/shared/src/test/mlscript-packages/web-ide/build
mkdir -p hkmc2/shared/src/test/mlscript-packages/web-ide/build
cp -R hkmc2/js/target/scala-*/hkmc2-opt/. hkmc2/shared/src/test/mlscript-packages/web-ide/build/
- name: Compute preview alias
id: preview_alias
run: |
node <<'NODE'
const fs = require("fs");
const workerName = "mlscript-web-ide";
const maxAliasLength = 63 - workerName.length - 1;
const branchName = process.env.GITHUB_REF_NAME || "preview";
let alias = branchName
.toLowerCase()
.replace(/[^a-z0-9-]+/g, "-")
.replace(/-+/g, "-")
.replace(/^-+|-+$/g, "");
if (!alias) alias = "preview";
if (!/^[a-z]/.test(alias)) alias = `branch-${alias}`;
if (alias.length > maxAliasLength) {
alias = alias.slice(0, maxAliasLength).replace(/-+$/g, "");
}
fs.appendFileSync(process.env.GITHUB_OUTPUT, `alias=${alias}\n`);
console.log(`Preview alias: ${alias}`);
NODE
- name: Enable Web IDE preview URLs
if: env.CLOUDFLARE_API_TOKEN != '' && env.CLOUDFLARE_ACCOUNT_ID != ''
run: |
curl --fail -X POST \
-H "Authorization: Bearer ${CLOUDFLARE_API_TOKEN}" \
-H "Content-Type: application/json" \
--data '{"enabled":false,"previews_enabled":true}' \
"https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/workers/scripts/mlscript-web-ide/subdomain"
- name: Upload Web IDE preview to Cloudflare Workers
if: env.CLOUDFLARE_API_TOKEN != '' && env.CLOUDFLARE_ACCOUNT_ID != ''
uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
wranglerVersion: "4.29.0"
command: versions upload --preview-alias ${{ steps.preview_alias.outputs.alias }} --config wrangler.toml
- name: Skip Web IDE preview upload
if: env.CLOUDFLARE_API_TOKEN == '' || env.CLOUDFLARE_ACCOUNT_ID == ''
run: echo "Cloudflare preview secrets are not configured; skipping preview upload."
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,8 @@ and then use one of the following commands.
- `hkmc2DiffTests/test` for running only the main diff-tests, in `hkmc2/shared/src/test/mlscript`.
- `hkmc2MainTests/test` for running the above two.
- `hkmc2AppsTests/test` for running the applications compile and diff tests.
- `hkmc2PackagesTest/test` for compiling the packages in `hkmc2/shared/src/test/mlscript-packages`.
Each folder represents a package, which can be imported directly using its name.
- `hkmc2NofibTests/test` for running the nofib compile and diff tests.
- `hkmc2WasmTests/test` for running the wasm compile and diff tests.
- `hkmc2LlirTests/test` for running the llir diff tests.
Expand Down Expand Up @@ -224,4 +226,3 @@ Links to the individual paper artifact repositories are provided at the correspo




62 changes: 60 additions & 2 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,48 @@ lazy val hkmc2 = crossProject(JSPlatform, JVMPlatform).in(file("hkmc2"))
_.withModuleKind(ModuleKind.ESModule)
.withOutputPatterns(OutputPatterns.fromJSFile("MLscript.mjs"))
},
Compile / sourceGenerators += Def.task {
val rootDir = (ThisBuild / baseDirectory).value
val stdDir = rootDir / "hkmc2" / "shared" / "src" / "test" / "mlscript-compile"
val declsDir = rootDir / "hkmc2" / "shared" / "src" / "test" / "mlscript" / "decls"
val out = (Compile / sourceManaged).value / "hkmc2" / "WebIDEStd.scala"
val preludeFile = declsDir / "Prelude.mls"
val stdFiles = ((stdDir * "*.mls") +++ (stdDir * "*.mjs")).get
.filterNot(_.getName == "Prelude.mls")
.sortBy(_.getName)

def scalaString(value: String): String =
"\"" + value.flatMap {
case '\\' => "\\\\"
case '"' => "\\\""
case '\n' => "\\n"
case '\r' => "\\r"
case '\t' => "\\t"
case c if c.isControl => f"\\u${c.toInt}%04x"
case c => c.toString
} + "\""

val entries = stdFiles.map { file =>
s"""js.Array(${scalaString("/std/" + file.getName)}, ${scalaString(IO.read(file))})"""
}
val source =
s"""|package hkmc2
|
|import scala.scalajs.js
|import scala.scalajs.js.annotation.JSExportTopLevel
|
|object WebIDEStd:
| @JSExportTopLevel("std")
| val std: js.Dynamic = js.Dynamic.literal(
| prelude = ${scalaString(IO.read(preludeFile))},
| files = js.Array(
| ${entries.mkString(",\n ")}
| )
| )
|""".stripMargin
IO.write(out, source)
Seq(out)
}.taskValue,
libraryDependencies += "org.scala-js" %%% "scalajs-dom" % "2.2.0",
)
.dependsOn(core)
Expand Down Expand Up @@ -116,6 +158,20 @@ lazy val hkmc2AppsTests = hkmc2TestSubproject("hkmc2AppsTests", Some("AppsCompil
lazy val hkmc2WasmTests = hkmc2TestSubproject("hkmc2WasmTests", Some("WasmCompileTestRunner"), "WasmDiffTestRunner")
lazy val hkmc2LlirTests = hkmc2TestSubproject("hkmc2LlirTests", None, "LlirDiffTestRunner")

lazy val hkmc2PackagesTest = project.in(file("hkmc2PackagesTest"))
.dependsOn(hkmc2JVM % "compile->compile;test->test")
.settings(
scalaVersion := scala3Version,

libraryDependencies += "org.scalactic" %%% "scalactic" % scalaTestVersion,
libraryDependencies += "org.scalatest" %%% "scalatest" % scalaTestVersion % "test",
libraryDependencies += "com.lihaoyi" %% "ujson" % "4.4.3",

Test / test := (Test / testOnly).toTask(" hkmc2.PackageTestRunner").value,

Test/run/fork := true, // so that CTRL+C actually terminates the watcher
)

lazy val hkmc2MainTests = project.in(file("hkmc2MainTests"))
.settings(
Test / test := (
Expand All @@ -130,19 +186,21 @@ lazy val hkmc2MostTests = project.in(file("hkmc2MostTests"))
(hkmc2DiffTests / Test / test)
.dependsOn(hkmc2NofibTests / Test / test)
.dependsOn(hkmc2AppsTests / Test / test)
.dependsOn(hkmc2PackagesTest / Test / test)
.dependsOn(hkmc2WasmTests / Test / test)
.dependsOn(hkmc2JVM / Test / test)
).value
)

lazy val hkmc2AllTests = project.in(file("hkmc2AllTests"))
.settings(
Test / test := (
Test / test := Def.sequential(
hkmc2JVM / Test / test, // prepares compile-test `.mjs` outputs used by JS tests
(hkmc2DiffTests / Test / test)
.dependsOn(hkmc2NofibTests / Test / test)
.dependsOn(hkmc2AppsTests / Test / test)
.dependsOn(hkmc2PackagesTest / Test / test)
.dependsOn(hkmc2WasmTests / Test / test)
.dependsOn(hkmc2JVM / Test / test)
.dependsOn(hkmc2JS / Test / test)
.dependsOn(hkmc2Benchmarks / Test / compile)
).value
Expand Down
Loading
Loading