Skip to content

CodeAssist 3.9.7

Choose a tag to compare

@tyron12233 tyron12233 released this 19 Aug 16:56
· 90 commits to main since this release

馃殌 CodeAssist 3.9.7

SWING AND AWT

  • Write and run desktop Swing programs on your phone. CodeAssist ships its own java.awt and javax.swing for 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 JOptionPane and JDialog.
  • 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 object or companion object are 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 nested object reached through with(Inner) { } resolves.
  • Typing fun now 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, and vararg, 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 @AndroidEntryPoint compiles.
  • 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