CodeAssist 3.9.1
π CodeAssist 3.9.1
SYMBOLS & MACROS (new)
- New Settings βΈ Symbols & Macros editor for customizing the editor to how you type.
- Keyboard symbol bar: add, remove, and reorder keys; pin the ones you reach for most; edit the built-in action keys (
Tab, line comment, move line up/down, duplicate line); apply presets (Java/Kotlin, XML); and let it suggest symbols from the open file. A live preview shows the bar exactly as you configure it. - Live-template macros: type an abbreviation and expand it into a full snippet with tab stops (
$1,$2,$END$) and variables that fill in at expansion time:$FILE$,$CLASS$,$EXPR$(the current expression),$SELECTION$,$LINE$,$DATE$,$TIME$,$USER$,$UUID$, and more. The template editor highlights the tokens and shows a live preview. - Editable built-ins: the shipped templates (
sout,fori,psvm,main,fun,for,try, and the rest) can now be edited or disabled, not just used as is. - Type-scoped macros: limit a macro to a specific type so it only appears after a matching receiver, for example a
java.lang.String. Instance macros work postfix (text.abbrev) and are subtype aware; static macros trigger after the type name (String.abbrev). - Everything saves per user (global) or per project, so a project can carry its own symbol bar and macros. Any set can be copied out and pasted back as JSON.
AI AGENT
- Expanded the coding agent's tool set for more capable, multi-step edits.
- Added OpenRouter as a provider (and removed Antigravity).
- Local AI providers now work: cleartext HTTP to
localhostis permitted, so a model server on your device or LAN connects.
IMPORT & DEPENDENCIES
- Import an existing Gradle project by picking its folder, on device and on desktop.
- Dependency downloads now show real byte-level progress instead of an indeterminate spinner.
EDITOR
- Live templates now advance on Enter and when you accept a completion, not only via Tab.
- The lightbulb (quick-fix affordance) pops in with a small animation when actions are available.
- Dialogs stay above the soft keyboard, and there is a new tab overflow menu to jump to any open file when the tabs overflow.
- A horizontal swipe near the edge no longer gets committed as a tap that pops the keyboard open.
- Smarter indentation: the editor dedents correctly after a completed expression-body continuation.
CODE ANALYSIS (Java & Kotlin)
- Flags a bare function name used as a value ("Function invocation expected").
- Flags calls that only resolve through an unimported extension, and offers to add the import.
- Flags unimported cross-package Kotlin types as unresolved.
- Flags an empty property delegate such as
by remember { }(a Unit/Nothing delegate). - Stops offering a private top-level declaration as an auto-import candidate.
- Correctly colors a same-file top-level backing-property read.
BUILD & TOOLING
- App logs are now forwarded to the console when your program runs in the isolated
:buildprocess. - KSP source generation now fails when a processor logs an error rather than silently continuing.
- KSP: patches
trySetAccessibleout of processor jars before on-device dexing, so more processors run on ART.
MONETIZATION
- Added AdMob mediation (Meta, Pangle, Mintegral) with UMP consent.
- Native ad main media now renders through a placement-aware
MediaView.
STABILITY
- Fixed a native crash in the Compose preview by closing the
ImageReaderon the frame thread. - The Learn Compose preview no longer crashes on an unresolved helper.
Full changelog: https://github.com/tyron12233/CodeAssist/releases/tag/v3.9.1