---
name: watsonx-code-assistant-wca-explain
title: Explaining code
description: Use generative AI to analyze and summarize your code to understand what the code does.
last-updated: 2025-10-27
---

> ## Documentation Index
> The table of contents for this documentation set is at https://cloud.ibm.com/docs/watsonx-code-assistant?format=markdown
> The index for all IBM Cloud docs is at: https://cloud.ibm.com/docs/llms.txt
> Use these files to discover more information as needed.

# Explaining code
{: #wca-explain}

[watsonx Code Assistant]{: tag-blue}

Use generative AI to analyze and summarize your code to understand what the code does.
{: shortdesc}

The following table lists the type of explanation for each plan.

| Plan | Explanation | Description |
| --- | --- | --- |
| [Trial plan]{: tag-magenta} [Essentials plan]{: tag-green} | Basic | Uses generative AI to provide a basic explanation. No extra code analysis is required. |
| [Standard plan]{: tag-purple} | 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. |
{: caption="Explanation types" caption-side="bottom"}

{{site.data.content.eclipse-multimodule}}

## Language support 
{: #wca-explain-languages} 

Code explanation is available for the following languages:

When you reference a method, or use CodeLens on a method, watsonx Code Assistant supports certain code languages. Referencing a full file works for all languages. For more information, see [Language support when you work with methods](https://cloud.ibm.com/docs/watsonx-code-assistant?topic=watsonx-code-assistant-wca-reference-methods-language&format=markdown).

When you reference a file, the size limit is 50 KB. If you reach this limit, split the file into individual functions and reference each function. Or, split the file at 49 KB, taking care of function boundaries, and reference the file at each split. With either approach, you need to merge the results.

## Using a chat command to explain code
{: #wca-explain-command}

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]`

- Make sure to start the prompt with `/explain`, followed by the rest of the syntax.

- 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.

**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.
{: note}

## Using the CodeLens in the editor to explain code
{: #wca-explain-option}

In the IDE editor, the CodeLens shows a line of generative AI options that precedes code blocks and snippets.  

Watsonx Code Assistant uses the aggregator `pom.xml` file to build and manage the entire multi-module Maven project. When watsonx Code Assistant attempts to do builds and other Maven-related activity, it uses the multi-module root (MMR) to locate the aggregator `pom.xml` file. 
* The MMR first searches the highest level project directory for the aggregator `pom.xml` file. 
* If the MMR doesn't find the file, it searches through the project directory by going from the next highest to the next highest directory structure, and so on, until it finds an aggregator `pom.xml` file. 
* If the MMR again does not find an aggregator `pom.xml` file, it searches through the project directory by going from the highest to the next highest directory structure, and so on, until it finds a regular `pom.xml` file. A regular `pom.xml` file indicates that the Maven project is a single module project instead of a mult-module project.

1. 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 the `protected void` keywords.

   ![CodeLens example](images/codelens.png){: caption="CodeLens example"}

1. The watsonx Code Assistant chat window opens, displays the `/explain @<*item name*>` command, runs the command, and displays the explanation. 

### Disabling CodeLens
{: #wca-explain-disable-codelens}

If you want to disable the CodeLens options, you can change the setting for the extension or plug-in.

In Visual Studio Code:

1. Open the settings for the extension.

1. Clear the `Enable CodeLens` setting.

In Eclipse:

1. Open the settings for the Eclipse IDE.

1. In the **watsonx Code Assistant Settings** entry, clear the `Enable CodeLens` setting.

1. Click **Apply and close**. 

## Using the explorer to explain code
{: #wca-explain-context-menu}

To generate an explanation from the Explorer (Visual Studio Code) or Project Explorer (Eclipse):

1. Expand your application to the code for which you want to generate an explanation.

1. Right-click the code, click **watsonx Code Assistant**, then click **Explain**.

1. The watsonx Code Assistant chat displays the `/explain` command for the code that you selected. The following syntax is used in the command:

   `/explain <code syntax>`

1. Watsonx Code Assistant processes the request and in the chat displays the explanation for the code that you selected. 



## Explaining Java applications
{: #wca-explain-apps}

[Standard plan]{: tag-purple} 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`.
{: note}

For large applications, the explanation considers the 40 entry points with the [highest cyclomatic complexity](https://en.wikipedia.org/wiki/Cyclomatic_complexity){: external}. If the application exceeds 40 entry points, the explanation contains the section `The following methods were not considered:` that provides details about which entry points were not considered.
{: note}

To request and view an explanation for an application:

1. In your IDE, right-click 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.
   {: note}

1. Watsonx Code Assistant scans the application to generate an overview and a list of main services with a description of functions for each method.
1. Click **Save** to retain a copy, or the explanation is discarded.
1. Click **Open explanation** and review, and then you can click **Save application explanation** to store in a local file.