Skip to content

Commit 9da3f15

Browse files
authored
Support quick fix for Gradle JPMS projects (#2773)
Signed-off-by: Shi Chen <[email protected]>
1 parent a5a061f commit 9da3f15

File tree

4 files changed

+10
-13
lines changed

4 files changed

+10
-13
lines changed

src/commands.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@ export namespace Commands {
291291

292292
export const GET_WORKSPACE_PATH = '_java.workspace.path';
293293

294-
export const UPGRADE_GRADLE_WRAPPER = '_java.gradle.upgradeWrapper';
294+
export const UPGRADE_GRADLE_WRAPPER = 'java.project.upgradeGradle';
295295

296296
export const LOMBOK_CONFIGURE = "java.lombokConfigure";
297297

src/gradle/gradleCodeActionProvider.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,6 @@ const GRADLE_INVALID_TYPE_CODE_ID = GRADLE_PROBLEM_ID + 1;
1313

1414
export class GradleCodeActionProvider implements CodeActionProvider<CodeAction> {
1515

16-
constructor(context: ExtensionContext) {
17-
context.subscriptions.push(commands.registerCommand(Commands.UPGRADE_GRADLE_WRAPPER, (projectUri: string) => {
18-
upgradeGradle(projectUri);
19-
}));
20-
}
21-
2216
public provideCodeActions(document: TextDocument, range: Range | Selection, context: CodeActionContext, token: CancellationToken): ProviderResult<(CodeAction | Command)[]> {
2317
if (context?.diagnostics?.length && context.diagnostics[0].source === "Java") {
2418
return this.provideGradleCodeActions(document, context.diagnostics);

src/standardLanguageClient.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -581,6 +581,10 @@ export class StandardLanguageClient {
581581
}
582582
}));
583583

584+
context.subscriptions.push(commands.registerCommand(Commands.UPGRADE_GRADLE_WRAPPER, (projectUri: string, version?: string) => {
585+
upgradeGradle(projectUri, version);
586+
}));
587+
584588
languages.registerCodeActionsProvider({
585589
language: "xml",
586590
scheme: "file",
@@ -590,7 +594,7 @@ export class StandardLanguageClient {
590594
languages.registerCodeActionsProvider({
591595
scheme: "file",
592596
pattern: "**/{gradle/wrapper/gradle-wrapper.properties,build.gradle,build.gradle.kts,settings.gradle,settings.gradle.kts}"
593-
}, new GradleCodeActionProvider(context), gradleCodeActionMetadata);
597+
}, new GradleCodeActionProvider(), gradleCodeActionMetadata);
594598

595599
if (languages.registerInlayHintsProvider) {
596600
context.subscriptions.push(languages.registerInlayHintsProvider(JAVA_SELECTOR, new JavaInlayHintsProvider(this.languageClient)));

src/standardLanguageClientUtils.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -133,15 +133,14 @@ export async function upgradeGradle(projectUri: string, version?: string): Promi
133133
title: "Upgrading Gradle wrapper...",
134134
cancellable: true,
135135
}, (_progress, token) => {
136-
return commands.executeCommand(Commands.EXECUTE_WORKSPACE_COMMAND, "java.project.upgradeGradle", projectUri, version, token);
136+
return commands.executeCommand<string>(Commands.EXECUTE_WORKSPACE_COMMAND, Commands.UPGRADE_GRADLE_WRAPPER, projectUri, version, token);
137137
});
138138
if (result) {
139-
const propertiesFile = path.join(Uri.parse(projectUri).fsPath, "gradle", "wrapper", "gradle-wrapper.properties");
140-
if (fse.pathExists(propertiesFile)) {
141-
const content = await fse.readFile(propertiesFile);
139+
if (await fse.pathExists(result)) {
140+
const content = await fse.readFile(result);
142141
const offset = content.toString().indexOf("distributionUrl");
143142
if (offset >= 0) {
144-
const document = await workspace.openTextDocument(propertiesFile);
143+
const document = await workspace.openTextDocument(result);
145144
const position = document.positionAt(offset);
146145
const distributionUrlRange = document.getWordRangeAtPosition(position);
147146
window.showTextDocument(document, {selection: new Range(distributionUrlRange.start, new Position(distributionUrlRange.start.line + 1, 0))});

0 commit comments

Comments
 (0)