CodeAssist 3.9.7
馃殌 CodeAssist 3.9.7
SWING AND AWT
- Write and run desktop Swing programs on your phone. CodeAssist ships its own
java.awtandjavax.swingfor the device, so a windowed program compiles against the real API and runs in the preview process. - Windows appear in the Run pane with full touch and keyboard input, sized to your content pane.
- Widgets covered so far: labels and text fields, buttons and toggles, lists, scroll panes, borders, progress indicators, and modal dialogs including
JOptionPaneandJDialog. - Two new project templates: Swing Desktop App and Swing Custom Painting.
- A GUI run stays alive until its last window closes, and a resized window repaints instead of showing a stale picture.
AI AND TOOLS
- An in-app MCP server (Streamable HTTP) plus an FTP asset server, so an external agent or a desktop tool can reach your project on the device. The HTTP server listens on loopback only, bodies are byte framed, and the FTP data port can be forwarded.
KOTLIN
- Extension functions declared inside an
objectorcompanion objectare now seen and suggested. Completion offers them on a matching receiver and adds the import for you (import util.StringUtils.twice) when you accept one. - A
companion object's extension no longer reads as an unresolved reference inside its own class, in a property initializer, or in a subclass, and a nestedobjectreached throughwith(Inner) { }resolves. - Typing
funnow suggests type names for a receiver, so an extension function can be declared straight from the popup, with the import added on accept. - Implement members keeps
suspend, the type parameters with their bounds, andvararg, so the stub it writes compiles. - A missing import is flagged for a generated or project type used as a receiver.
- A renamed variable's leftover usages are flagged in receiver position too, not only in plain references.
JAVA
- Control flow is judged per method or initializer instead of per file, which clears three kinds of false error on valid code.
BUILD AND STABILITY
- Builds are back to full speed. The library dex warm added in 3.9.6 could double build times on the very projects it was meant to help. It now runs only where it can actually hit the cache, takes a single worker so it cannot starve a real build, and is opt-in.
- Far fewer crash reports on smaller devices. The forked build VM asked for more heap than some phones can reserve, and the abort that followed was filed as an app crash. The heap ladder is now bounded by device RAM, and a forked tool VM's abort is no longer reported as an IDE crash.
- Hilt projects build: the Gradle plugin's half of Hilt is now supplied on device, so
@AndroidEntryPointcompiles. - Compose preview: a call whose receiver lives in a non-exported package is bridged instead of failing.
UNDER THE HOOD
- The Java PSI host is handed the registry keys IntelliJ's Java support expects, so Java code intelligence stands up reliably.
- App and screen state is hoisted out of the composables, which keeps the UI layer easier to change.
- The on-device build benchmark follows the importer sync path again.
Full changelog: https://github.com/tyron12233/CodeAssist/releases/tag/v3.9.7