Explaining code
watsonx Code Assistant
Use generative AI to analyze and summarize your code to understand what the code does.
The following table lists the type of explanation for each plan.
Plan | Explanation | Description |
---|---|---|
Trial plan Essentials plan | Basic | Uses generative AI to provide a basic explanation. No extra code analysis is required. |
Standard plan | Enhanced | Requires a built application, and uses a code analysis and generative AI to provide an enhanced code explanation for Java methods/classes and enterprise Java applications. |
Eclipse IDE only: For best results with a multimodule Java application, ensure that you import the aggregator module and each submodule as separate projects within the Eclipse workspace. Watsonx Code Assistant is unlikely to successfully introspect your project if you import the top-level directory as a single project.
Language support
Code explanation is available for the following languages:
- C
- C++
- Go
- Java
- JavaScript
- Python
- TypeScript
Time required to analyze your code
The amount of time to analyze your application varies. The following times are typical.
Time | Application details |
---|---|
Seconds to a few minutes | Fewer than 100 classes |
2 to 10 minutes | 20,000 to 50,000 lines of code |
10 or more minutes | 300,000 lines of code |
Using a chat command to explain code
You can use the /explain
command in chat to explain code for a referenced class, file, function, or method in the active workspace.
Use this syntax:
/explain <code reference> [additional instructions]
For <code reference>
, type the @
symbol to see a list of classes, files, functions, and methods from your workspace. Use one class, file, function, or method reference at a time.
The [additional instructions]
are optional. Add instructions if you want specific details.
Example prompts:
/explain @file.java
/explain @method1
Using the CodeLens in the editor to explain code
In the IDE editor, the CodeLens shows a line of generative AI options that precedes code blocks and snippets.
Known issue If you are using the watsonx Code Assistant for Enterprise Java Applications extension, upon startup it might take a few seconds for the enhanced Java capabilities to be available from the CodeLens.
-
Click the Explain option that immediately precedes a code block to generate an explanation.
In the following code example, the
Explain | Document | Unit Test
options immediately precede theprotected void
keywords.CodeLens example -
The watsonx Code Assistant chat window opens, displays the
/explain @<*item name*>
command, runs the command, and displays the explanation.
Explaining Java applications
Standard plan Application explanation is only available with the watsonx Code Assistant for Enterprise Java Applications extension.
Application explanation is only supported for Java applications that contain one or more classes that extend javax.servlet.http.HttpServlet
. These classes need to implement any one of the following methods: doGet
, doPost
,
or doPut
.
To request and view an explanation for an application:
-
In your IDE, right-click on any item in the hierarchy in the directory of the application that you want to explain, and then click Explain Application.
In the Eclipse IDE, if you have a multimodule application with a peer multimodule root, the application explanation applies only to the selected module.
-
Watsonx Code Assistant scans the application to generate an overview and a list of main services with a description of functions for each method.
-
Click Save to retain a copy, or the explanation is discarded.
-
Click Open explanation and review, and then you can click Save application explanation to store in a local file.