Conversation
Adds a 'no-terminal' build argument (npm run build paid dev apk no-terminal) that skips the proot plugin, so the heavy per-arch terminal rootfs (~90MB with Ubuntu) is never copied into the APK. For developers on capped/metered connections and fast fork CI iteration when testing non-terminal features; the terminal is unavailable in such builds. Follows the existing fdroid plugin add/remove pattern; a subsequent normal build re-adds the plugin automatically. Runtime $FDROID handling is untouched. Fixes Acode-Foundation#2897
|
| if (editorManager.activeFile === file) { | ||
| // Await the formatter so the write below captures the | ||
| // formatted document. A failed format aborts the save; | ||
| // `null` means no formatter is configured, which is not | ||
| // a failure. | ||
| const formatted = await acode.exec("format", false); | ||
| if (formatted === false) return false; |
There was a problem hiding this comment.
If file A starts format-on-save and the user switches the same pane to file B while formatting is still running, the formatter later applies A's formatted output through the pane's reused editor. The document listener assigns that update to file B because B is active by then. This can replace B's in-memory content, mark or autosave B as edited, and save stale unformatted content for A. Re-check the file identity before applying formatter changes, or bind formatting to A's document instead of the pane's mutable active editor.
Knowledge Base Used:
9f01cc3 to
7d828e9
Compare
|
Thanks for the review! One correction: the "Tab switch corrupts content" finding doesn't apply to this branch as it exists now. It was written against commit |
Problem
Fixes #2897.
With the Alpine → Ubuntu terminal migration (#2699), the embedded rootfs payload grows from ~15MB to ~90MB, pushing test APKs to ~113MB. For developers on capped/metered connections, every fork-test build is a heavy download, and the F-Droid build workaround targets legacy API 28 — unsuitable for testing modern behavior.
Change
Adds a
no-terminalargument to the build script:When set, the build skips the
com.foxdebug.acode.rk.exec.prootplugin (which bundles the per-archalpine.rootfsassets), so the rootfs is never copied into the APK. This follows the exact pattern thefdroidflag already uses for plugin add/remove, and a subsequent normal build re-adds the plugin automatically — no manual cleanup.Deliberately untouched:
$FDROIDhandling — ano-terminalbuild behaves like a normal build at runtime; the terminal simply fails fast on open (existing extract-asset error path) since its payload isn't bundled.fdroidflag semantics — combining both flags still works (fdroid wins on runtime behavior).Testing
bash -nsyntax check passes.cordovaacross all four states:no-terminal+ plugin present → plugin removed, notice printedno-terminal+ plugin absent → no-opfdroidhas used in this script.