Skip to content

Merge main into feature/agenticChat #443

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: feature/agenticChat
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@ telemetry/bin
bin
package-lock.json
telemetry/
plugin/.settings
117 changes: 97 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,110 @@
## Amazon Q for Eclipse

Amazon Q Developer helps users build faster across the entire software development lifecycle by providing tailored responses and code recommendations that conform to their team's internal libraries, proprietary algorithmic techniques, and enterprise code style.
Amazon Q Developer is an advanced AI-powered coding assistant designed to enhance developer productivity and streamline software development processes.

### Getting Started
### Key Features

* **Free Tier** - create or log in with an AWS Builder ID (a personal profile from AWS).
* **Pro Tier** - if your organization is on the Amazon Q Developer Pro tier, log in with single sign-on.
1. **Intelligent Code Generation & Assistance**
- Explains code and answers software development questions
- Generates real-time code suggestions from snippets to full functions
- Provides inline code suggestions based on your comments and existing code
- Supports contextual conversations about your code

### Features
2. **AI-Powered Development Agents**
- Automates complex, multistep tasks including:
- Unit testing
- Documentation
- Code reviews
- Assists with implementing features, documenting code, and bootstrapping new projects
- Achieved highest scores on the SWE-Bench Leaderboard and Leaderboard Lite

* Code faster with inline code suggestions - Amazon Q Developer generates real-time code suggestions ranging from snippets to full functions based on your comments and existing code. It also supports CLI completions and natural language–to-bash translation in the command line.
* Get assistance - Amazon Q Developer can generate code, explain code, and provide answers about software development.
* Customize code recommendations - Securely connect Amazon Q Developer to your private repositories to generate even more relevant code recommendations, ask questions about your company code, and understand your internal code bases faster.
* Code reference log - Attribute code from Amazon Q that is similar to training data. When code suggestions similar to training data are accepted, they will be added to the code reference log.
3. **Secure Private Repository Integration**
- Connects securely to your private repositories
- Customizes and generates more relevant code recommendations
- Enables querying about your company-specific code
- Accelerates understanding of internal code bases

### How to install
* **Step 1:** Inside Eclipse, select `Help -> Install New Software...`.
<img width="200" alt="image" src="https://github.com/user-attachments/assets/f67acea2-ca55-4811-83ab-2ee5aa712039">
4. **Code Reference Log**
- Attributes code suggestions that are similar to training data
- Automatically logs accepted code suggestions that match training data
- Maintains transparency in AI-generated code origins

* **Step 2:** Add the Amazon Q for Eclipse update site URL `https://amazonq.eclipsetoolkit.amazonwebservices.com/` and select the plugin before continuing.
<img width="600" alt="Screenshot 2024-11-26 at 9 24 55 AM" src="https://github.com/user-attachments/assets/7ba66f83-6853-4d57-a0f3-bb07c042d14b">
Amazon Q Developer is designed to be your intelligent coding companion, helping you write better code faster and understand complex codebases more efficiently.

* **Step 3:** Review the installation and license details and continue through to install the plugin. Upon completion you will be prompted to restart the IDE to finish the installation.
<img width="400" alt="image" src="https://github.com/user-attachments/assets/a586cb2d-9f16-4314-8555-b09d03d01af7">
### Available Plans

### Screenshots
![login](https://github.com/user-attachments/assets/5345e2fb-fa43-469f-92b6-b388577077a6)
![inline](https://github.com/user-attachments/assets/e7a684f9-c568-4c63-a510-1fb85bef52e3)
![chat](https://github.com/user-attachments/assets/459592ac-2bef-416c-8430-28584a6d709f)
1. [Free Tier](https://aws.amazon.com/q/developer/getting-started/)
- Code faster with code suggestions in the IDE
- Review code licenses with reference tracking
- Limited monthly access to advanced features:
- Chat, debug code, add tests, and more in your IDE (50 interactions/month)
- Amazon Q Developer agents for software development (10 uses/month)
- Amazon Q Developer Agent for code transformation (1,000 lines of submitted code/month)
- Answers about your AWS account resources (25 queries/month)

2. [Pro Tier](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/q-pro-tier-setting-up-access.html)
- Manage users and policies with enterprise access controls
- Customize Amazon Q to your code base for enhanced suggestions
- Increased limits on advanced features:
- Unlimited chat, debugging, and testing in your IDE
- Unlimited use of Amazon Q Developer agents for software development
- Unlimited answers about your AWS account resources
- Additional enterprise-grade features

Both tiers continue to receive updates and improvements.

### Installation Instructions

#### Option 1: Install via Eclipse Marketplace (Recommended)
1. **Open Eclipse Marketplace**
- Launch Eclipse IDE
- Navigate to `Help > Eclipse Marketplace...`
- Search for "Amazon Q"
- Click "Install" on the Amazon Q plugin

2. **Complete Installation**
- Review the installation details
- Accept the license agreement
- Click "Finish"
- When prompted, restart Eclipse to complete the installation

![Install-Using-Marketplace](https://github.com/user-attachments/assets/dcb77afd-4ee0-4da7-adb0-dbc22cd80f70)

#### Option 2: Install via Update Site
1. **Open Install Dialog**
- Launch Eclipse IDE
- Navigate to `Help > Install New Software...`

2. **Add Amazon Q Repository**
- Click "Add..." button
- Enter the following details:
- Name: `Amazon Q for Eclipse`
- URL: `https://amazonq.eclipsetoolkit.amazonwebservices.com/`
- Click "Add"
- Select "software.aws.toolkits.eclipse" from the available software list
- Click "Next"

3. **Complete Installation**
- Review the installation details
- Accept the license agreement
- Click "Finish"
- When prompted, restart Eclipse to complete the installation

![Install-Using-Update-Site](https://github.com/user-attachments/assets/3d8e0667-a405-4daf-9736-dbcc254a3344)

### Demos & Examples

#### Code Context
![Explaining-A-Class](https://github.com/user-attachments/assets/86ff704b-8be1-41e0-be91-fc172b40478f)

#### Generate Tests
![Test-Generation](https://github.com/user-attachments/assets/8f3edc09-6981-4bb2-b0bd-0201e6b73cf1)

#### Create Documentation
![Inline-Chat](https://github.com/user-attachments/assets/ee867bcf-ef62-4468-86d3-1df53ddabf1b)

#### Code Completion
![Code-Completion-Example](https://github.com/user-attachments/assets/30b76708-1cd4-4cd1-9abe-22c9a4a6a8bc)

## License

Expand Down
4 changes: 2 additions & 2 deletions feature/feature.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<feature
id="software.aws.toolkits.eclipse.amazonq.feature"
label="Amazon Q for Eclipse"
version="1.1.0.qualifier">
version="2.0.0.qualifier">

<description>
Amazon Q Developer helps users build faster across the entire software development lifecycle by providing tailored responses and code recommendations that conform to their team's internal libraries, proprietary algorithmic techniques, and enterprise code style.
Expand Down Expand Up @@ -198,6 +198,6 @@ https://github.com/aws/amazon-q-eclipse/blob/main/attribution.xml
id="amazon-q-eclipse"
download-size="11000"
install-size="0"
version="1.1.0.qualifier"
version="2.0.0.qualifier"
unpack="false"/>
</feature>
2 changes: 1 addition & 1 deletion feature/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<parent>
<groupId>software.aws.toolkits.eclipse</groupId>
<artifactId>amazon-q-eclipse-group</artifactId>
<version>1.1.0-SNAPSHOT</version>
<version>2.0.0-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>

Expand Down
4 changes: 3 additions & 1 deletion plugin/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,15 @@ Bundle-Name: Amazon Q for Eclipse
Bundle-Provider: Amazon Web Services
Bundle-RequiredExecutionEnvironment: JavaSE-17
Bundle-SymbolicName: amazon-q-eclipse;singleton:=true
Bundle-Version: 1.1.0.qualifier
Bundle-Version: 2.0.0.qualifier
Automatic-Module-Name: amazon.q.eclipse
Bundle-ActivationPolicy: lazy
Bundle-Activator: software.aws.toolkits.eclipse.amazonq.plugin.Activator
Require-Bundle: org.eclipse.core.runtime;bundle-version="3.31.0",
org.tukaani.xz;bundle-version="1.9.0",
org.eclipse.ui;bundle-version="3.205.100",
org.eclipse.core.resources;bundle-version="3.20.100",
org.eclipse.core.filesystem;bundle-version="1.10.400.v20240426-1040",
org.eclipse.jface.text;bundle-version="3.25.100",
org.eclipse.jdt.ui;bundle-version="3.32.100",
org.eclipse.ui.genericeditor;bundle-version="1.3.400",
Expand All @@ -28,6 +29,7 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="3.31.0",
org.apache.commons.logging;bundle-version="1.2.0",
slf4j.api;bundle-version="2.0.13",
org.apache.commons.lang3;bundle-version="3.14.0",
org.apache.commons.text;bundle-version="1.10.0",
org.eclipse.core.expressions;bundle-version="3.9.400",
org.eclipse.jgit;bundle-version="6.10.0"
Bundle-Classpath: .,
Expand Down
6 changes: 6 additions & 0 deletions plugin/checkstyle.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,12 @@
<property name="optional" value="true"/>
</module>

<module name="Header">
<property name="headerFile" value="plugin/copyright-header.txt"/>
<property name="fileExtensions" value="java"/>
<property name="ignoreLines" value="2"/>
</module>

<module name="NewlineAtEndOfFile"/>
<module name="Translation"/>
<module name="FileLength"/>
Expand Down
2 changes: 2 additions & 0 deletions plugin/copyright-header.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
20 changes: 19 additions & 1 deletion plugin/plugin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,14 @@
</view>
</perspectiveExtension>
</extension>
<extension point="org.eclipse.core.contenttype.contentTypes">
<content-type
id="software.aws.toolkits.eclipse.amazonq.abap"
name="ABAP Source"
base-type="org.eclipse.core.runtime.text"
file-extensions="abap">
</content-type>
</extension>
<extension
point="org.eclipse.lsp4e.languageServer">
<server
Expand All @@ -176,6 +184,11 @@
id="software.aws.toolkits.eclipse.amazonq.qlanguageserver"
languageId="java">
</contentTypeMapping>
<contentTypeMapping
contentType="software.aws.toolkits.eclipse.amazonq.abap"
id="software.aws.toolkits.eclipse.amazonq.qlanguageserver"
languageId="abap">
</contentTypeMapping>
<contentTypeMapping
contentType="org.eclipse.core.runtime.text"
id="software.aws.toolkits.eclipse.amazonq.qlanguageserver">
Expand All @@ -196,6 +209,10 @@
class="org.eclipse.lsp4e.ConnectDocumentToLanguageServerSetupParticipant"
contentTypeId="org.eclipse.wst.jsdt.core.jsSource">
</participant>
<participant
class="org.eclipse.lsp4e.ConnectDocumentToLanguageServerSetupParticipant"
contentTypeId="software.aws.toolkits.eclipse.amazonq.abap">
</participant>
</extension>

<extension point="org.eclipse.ui.commands">
Expand Down Expand Up @@ -550,7 +567,8 @@
<equals value="org.eclipse.ui.DefaultTextEditor"/>
<equals value="org.eclipse.jdt.ui.CompilationUnitEditor"/>
<equals value="org.eclipse.ui.genericeditor.GenericEditor"/>
<equals value="software.aws.toolkits.eclipse.amazonq.views.AmazonQViewContainer"/>
<equals value="software.aws.toolkits.eclipse.amazonq.views.AmazonQViewContainer"/>
<equals value="com.sap.adt.programs.ui.AdtProgramEditor"/>
</or>
</with>
</and>
Expand Down
35 changes: 20 additions & 15 deletions plugin/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,20 @@
<parent>
<groupId>software.aws.toolkits.eclipse</groupId>
<artifactId>amazon-q-eclipse-group</artifactId>
<version>1.1.0-SNAPSHOT</version>
<version>2.0.0-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>

<artifactId>amazon-q-eclipse</artifactId>
<packaging>eclipse-plugin</packaging>

<properties>
<aws.java.sdk.version>2.28.26</aws.java.sdk.version>
<aws.java.sdk.version>2.31.41</aws.java.sdk.version>
<node.version>v20.9.0</node.version>
<npm.version>10.1.0</npm.version>
<jackson.version>2.17.3</jackson.version>
<maven.compiler.release>17</maven.compiler.release>
<junit.version>5.11.3</junit.version>
<junit.version>5.11.4</junit.version>
</properties>

<dependencyManagement>
Expand All @@ -45,7 +45,7 @@
<dependency>
<groupId>io.reactivex.rxjava3</groupId>
<artifactId>rxjava</artifactId>
<version>3.1.5</version>
<version>3.1.10</version>
</dependency>
<dependency>
<groupId>jakarta.inject</groupId>
Expand All @@ -61,10 +61,15 @@
<artifactId>httpclient</artifactId>
<version>4.5.14</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>1.10.0</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.17.1</version>
<version>1.17.2</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
Expand Down Expand Up @@ -123,10 +128,10 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.github.java-diff-utils</groupId>
<artifactId>java-diff-utils</artifactId>
<version>4.15</version>
</dependency>
<groupId>io.github.java-diff-utils</groupId>
<artifactId>java-diff-utils</artifactId>
<version>4.15</version>
</dependency>
</dependencies>

<build>
Expand Down Expand Up @@ -166,7 +171,7 @@
</plugin>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.8.0</version>
<version>3.8.1</version>
<executions>
<execution>
<id>copy-dependencies</id>
Expand Down Expand Up @@ -257,7 +262,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.5.1</version>
<version>3.5.3</version>
<executions>
<execution>
<phase>test</phase>
Expand All @@ -273,7 +278,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.13.0</version>
<version>3.14.0</version>
<executions>
<execution>
<id>compiletests</id>
Expand All @@ -287,12 +292,12 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.5.0</version>
<version>3.6.0</version>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>10.18.2</version>
<version>10.23.1</version>
</dependency>
</dependencies>
<configuration>
Expand All @@ -314,7 +319,7 @@
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.12</version>
<version>0.8.13</version>
<executions>
<execution>
<id>default-prepare-agent</id>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

package software.aws.toolkits.eclipse.amazonq.broker.events;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0

package software.aws.toolkits.eclipse.amazonq.broker.events;

public enum QDeveloperProfileState {
NOT_APPLICABLE, SELECTED, AVAILABLE
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@
import software.aws.toolkits.eclipse.amazonq.lsp.auth.model.AuthState;

public record ViewRouterPluginState(AuthState authState, AmazonQLspState lspState, BrowserCompatibilityState browserCompatibilityState,
ChatWebViewAssetState chatWebViewAssetState, ToolkitLoginWebViewAssetState toolkitLoginWebViewAssetState) {
ChatWebViewAssetState chatWebViewAssetState, ToolkitLoginWebViewAssetState toolkitLoginWebViewAssetState,
QDeveloperProfileState qDeveloperProfileState) {
}
Loading
Loading