Code on the Go release notes – 26.31

Share This Post

New search, filter, and share options for build output and logs

We’ve made it easier to read, search, filter, and share content in the Build Output, App Logs, and IDE Logs panels.

  • A persistent toolbar is now displayed at the top of these panel with options to search, filter, share, or clear the log output.
  • A word wrap toggle switches long lines between wrapping to fit the panel width and staying on one line, scrollable horizontally.

Kotlin code actions

The following code actions are now available for Kotlin:
  • Null safety fix: For an unsafe access receiver.selector, the action presents the following options
    • Assert non-null: Rewrites it to receiver!!.selector. Use this when you’re confident the value can’t actually be null at this point, and a NullPointerException is OK if that assumption is ever wrong.
    • Safe call: Rewrites it to receiver?.selector. Instead of crashing, the whole expression becomes null if receiver is null. Use this when skipping it is a reasonable action.
    • Elvis fallback: Rewrites it to (receiver ?: TODO()).selector. Use this when null needs an explicit default value instead of skipping the call. The generated TODO() is a placeholder you’re expected to replace with a real fallback expression.
  • Surround with try-catch: This code action wraps selected code in a try { } catch (e: Exception) { } block, matching your file’s indentation and line endings.
  • Import class(es): On an unresolved symbol, this code action automatically inserts the matching import statement, or lets you pick from multiple candidates if the class name is ambiguous.

Other features and fixes

  • The Kotlin LSP now prioritizes code completion tasks over code analysis tasks.
  • In the plugin manager:
    • The system back arrow now correctly cancels the restart dialog box.
    • Text displayed when no plugins are installed can now be localized. (Thanks, w3lld1, for providing the Indonesian translation!)
  • Changes to templates include:
    • The new Template Manager plugin lets you browse, add, and remove .cgt project and template files. See a complete list of plugins.
    • Templates now receive the full path to the .cgt file and the directory name in the .cgt file as two separate variables, which allows a template function to extract other assets in the .cgt file. (Suggested names are COGO_CGT_PATH for the location of the .cgt file and COGO_CGT_DIRECTORY for the directory.)
  • Multiple behind-the-scenes changes to reduce APK size.

Prevent CoGo-built apps from stopping on Android 16

Some users report that apps built in CoGo repeatedly stop on devices running Android 16. This issue is a result of Android blocking background processes. Instructions to prevent this issue can be in found in our knowledge base.

New Chinese translations

All strings.xml text has been translated to Chinese. Thanks to dxyme later, who translated the strings.xml file, and to Telegram user D (@dawnyyds), who sent screenshots with translation proposals.

❤️ Support our work ❤️

Thank you for being a part of our community!

App Dev for All is a philanthropic venture driven by a simple mission: to provide powerful, accessible tools to developers everywhere. Because of this commitment, our software is and always will be free and open source.

To maintain our independence, we rely entirely on private funding and the generosity of users like you. If our software adds value to your workflow, please consider supporting our mission. Your contributions directly fund ongoing development, maintenance, and future innovations.

Let us know what you think

If you have any problems or suggestions, please let us know! You can reach us the following ways:

Thank you for helping us keep CoGo open and accessible!

Our story

If you’re wondering why we’re building an IDE that runs on phones (including 32-bit devices) and doesn’t require internet access, our one-minute video sums it up.