CodeAssist 3.9.5
馃殌 CodeAssist 3.9.5
A stability and editor-quality patch: local functions finally resolve like real declarations, Java parameter names are visible from Kotlin again, big files scroll smoothly, and the top on-device crashers are closed.
KOTLIN
- Local functions work properly. A
fun helper()declared inside another function used to light up with errors on code that compiles fine: any call with arguments was flaggedToo many arguments (expected 0), named arguments were rejected, and a recursive call reportedUnresolved reference. Local extension functions (fun String.twice()) could not be called on their receiver at all, and a local no longer loses to a top-level function of the same name. - The same fixes reach the Compose preview and console Run, where local functions were silently returning wrong values: a defaulted parameter (
fun g(a: Int = 3)) came back as null when omitted,varargtook only one value, and named arguments bound in the wrong order. Local extensions and::localFunctionreferences now run too. - Java parameter names are visible from Kotlin. They had degraded to
p0,p1everywhere. Names are now recovered from the bytecode itself where the library ships them, from attached sources otherwise, and from a live parse for your own.javafiles. - Parameter name hints at Kotlin call sites. Literal arguments now show which parameter they fill, matching the Java side.
- A missing import is finally reported.
viewModelScopeandwithContextused to sit unmarked in a file that would not compile, with no import quick-fix offered. Both now flag and offer the import. A companion object in the class no longer silences every other missing import. - Import lines are colored. An imported
withContextreads as the suspend function it is, instead of plain white text. - Go to Declaration follows your imports. In a file importing
androidx.compose.material3.Text, clickingText("...")landed onorg.w3c.dom.Text, an unrelated class from android.jar. Hover and quick doc followed it there too.
JAVA
import static Type.now completes the class's static methods and fields, not just nested types, and stops offering private ones.- Full record support: component accessors in completion, resolution, go-to-definition, hover, and arity checking on the canonical constructor.
- Fixed a hang in the diagnostics pass on an unqualified unresolved reference.
EDITOR
- Large files scroll and open much faster. Soft-wrapped scrolling no longer rebuilds its whole line map every frame, opening a file no longer tokenizes the entire buffer up front, and the indent guides, sticky headers and draw palette stopped redoing per-frame work.
- The auto-import lightbulb stayed hidden until you undid something (#1495). It now reappears as soon as the analysis lands.
- Horizontal scrolling near the right edge was stolen by the tool-window swipe area (#1493). Swiping now scrolls your long lines and only opens the drawer once there is nothing left to reveal.
- Diagnostic chips froze scrolling when your finger started on one, and a chip past the longest line could not be scrolled to.
- Reformat on save no longer drags the caret to the start of the line.
PROJECT
- Moving or copying a source file rewrites its package to match the new folder, and updates every file that imported it. Kotlin was previously not handled at all.
- New inspection for a package that does not match the file's location, with a "Set package to ..." quick-fix.
- A project whose module manifests are damaged now opens instead of failing.
STABILITY
- Fixed the top crash on device: a repeated key in the editor tab strip took the whole editor down. Tabs now carry their own identity, so a duplicate path can no longer crash the strip.
- Fixed the same class of crash in the Dependencies pane, where one coordinate can legitimately appear twice.
- Fixed a crash from layout-attribute completion when the caret moved back while the popup was still catching up.
- Closing a project could take the whole app down through a build or permission screen. It now degrades quietly.
- The real view preview could crash the app from its render thread instead of just failing the preview.
- The Dependencies screen no longer reports every declared dependency as unresolved when you leave it mid-resolve.
ANDROID BUILD
- Fixed "There was a problem while parsing the package" on install for apps using Play Services Ads or Play Billing. Distinct
<queries><intent>entries were being merged into one malformed element. - KSP now loads a processor's own Dagger runtime instead of the app's.
OTHER
- Crash reports now carry the OS tombstone for native crashes and the peak heap from editor sessions, so the remaining native and out-of-memory crashes can actually be investigated.
- The show-ads toggle asks again once per update. Turning ads off is still free and still sticks until the next version.
Full changelog: https://github.com/tyron12233/CodeAssist/releases/tag/v3.9.5