github tyron12233/CodeAssist ALPHA-0.2.3
CodeAssist V0.2.3 ALPHA

latest releases: ALPHA-0.2.9, ALPHA-0.2.8.2, ALPHA-0.2.8.1...
pre-release2 years ago

What's new

XML Code Completions

Android Manifest

  • Complete android manifest tag attributes and values.
  • Long press the manifest tag to automatically add permissions (#151)

Android Layouts

  • Completion of attributes based on the current view and its parent. Example if a view has a a parent of ConstraintLayout then it the code completions will have attributes for ConstraintLayout aswell.
  • External libraries defined in a app/libs or in the Library Manager is now included in code completion.

Layout Editor

  • The layout editor attributes dialog will now have drop down code completions based on the current attribute.

Dynamic Vector Drawable Preview

  • Vector drawables found in res/drawable will now be visible on the layout editor.

Realtime Error Highlighting for XML

  • Writing code in xml will now have real time error highlighting based on the diagnostics given by AAPT2. Although it is limited to the whole line as AAPT2 does not provide information about the column at which the error is located in.

Actions API

  • A new API to easily add menus to CodeAssist, see Actions API for more information on how to add custom actions.

FIle Editor API

  • An API to easily add a file editor on CodeAssist based on the current file. A documentation is being written for it.
  • When there are multiple FileEditors for a specific file, there will be a dialog asking for the user which editor to use.

Select All Semantically (Java)

  • Using the java parse tree, CodeAssist now supports selecting the code based on the tree. To invoke it, long press on a java code and press the Select All action. (example, pressing the action on a method will select the whole method, pressing it on a class will select the whole class declaration)

Java Completions

  • Better completion cancellation. Before, if the user is typing quickly all the completions will stack up and will wait for each other to complete, wasting resources. Now completions will be canceled before each completion request is invoked.
  • When typing in a parameterized tree (inside a the <> in Map<String, String>) only class names will be shown as methods are not applicable there.
  • Better fuzzy search, prefix does not need to exactly match for it to show on the completion list.
  • Better error highlighting.
  • Improved generic type inference of method return types.

Excluding dependencies

  • The common issue most users of CodeAssist face is the duplicate class issue with R8/D8. To help prevent this, a new feature has been added which lets users exclude dependencies from a library. There is no UI for it yet but it can be achieved by editing the libaries.json file. Example of using the feature:
{
  "groupId": "com.my.dependency",
  "artifactId": "dependency",
  "versionName": "1.4.0",
  "excludes": [
    {
      "groupId": "com.excluded.dependency",
      "artifactId": "excluded"
    }
  ]
}

WIth the above example, the app will ignore all the dependencies of com.my.dependency that matches the dependencies that are listed in excludes.

Better Duplicate Class Error Report

  • To help with excluding dependencies, the app will now also display from which class/jar/dependency the duplicate files are found.

Adding libraries from build.gradle

  • You can now get the libaries defined in the build.gradle file from the library manager.

Misc

  • Added highlight support for JSON.

Known Issues

  • Building with Android App Bundles (AAB) does not currently work. This is due to the change from using AAPT2 binaries to invoking it through JNI. A fix is in progress.

Don't miss a new CodeAssist release

NewReleases is sending notifications on new releases.