From 53174f5deecbd48b15d428c840476580801b4b37 Mon Sep 17 00:00:00 2001 From: Shi Chen Date: Fri, 24 Jun 2022 11:20:15 +0800 Subject: [PATCH] chore: Add debug plugin config (#1220) --- .vscode/launch.json | 22 ++++++++++++++++++- .vscode/tasks.json | 7 ------ CONTRIBUTING.md | 7 ++++++ .../gradle/handlers/GetBuildHandler.java | 7 +++++- 4 files changed, 34 insertions(+), 9 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 16f3f95e..62a1bbdc 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -49,6 +49,26 @@ "hidden": true } }, + { + "name": "Debug Extension & Gradle Plugin", + "type": "extensionHost", + "request": "launch", + "runtimeExecutable": "${execPath}", + "args": [ + "--extensionDevelopmentPath=${workspaceFolder}/extension" + ], + "outFiles": [ + "${workspaceFolder}/extension/dist/**/*.js" + ], + "preLaunchTask": "Gradle: Build", + "env": { + "VSCODE_DEBUG_PLUGIN": "true" + }, + "presentation": { + "group": "debug", + "order": 2 + } + }, { "name": "Debug Language Server: Launch Extension", "type": "extensionHost", @@ -86,7 +106,7 @@ }, { "type": "java", - "name": "Debug Gradle Plugin", + "name": "Attach to Gradle Plugin", "request": "attach", "hostName": "localhost", "projectName": "gradle-plugin", diff --git a/.vscode/tasks.json b/.vscode/tasks.json index fb631985..301e7c76 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -11,15 +11,8 @@ }, "args": [ "build", - "extension:buildDev", - "-x", - "extension:buildProd", "-x", "test", - "-x", - "npm-package:build", - "-x", - "extension:buildTest" ], "presentation": { "reveal": "always" diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1b2f06ef..7c30f165 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -17,6 +17,13 @@ Start by opening an issue using one of the issue templates, or propose a change Running the build for the first time can take a bit of time, but subsequent builds should be fast. +## Debugging Gradle plugin + +The extension uses a Gradle plugin (`com.microsoft.gradle.GradlePlugin`) to get a lot of information from your project's Gradle build. If you want to debug the Gradle plugin, you can follow these steps: + +1. Run vscode launch configuration `Debug Extension & Gradle Plugin` +2. Run vscode launch configuration `Attach to Gradle Plugin` + ## Development Workflow Open the root of the project in VS Code. diff --git a/gradle-server/src/main/java/com/github/badsyntax/gradle/handlers/GetBuildHandler.java b/gradle-server/src/main/java/com/github/badsyntax/gradle/handlers/GetBuildHandler.java index 101bb400..5202d921 100644 --- a/gradle-server/src/main/java/com/github/badsyntax/gradle/handlers/GetBuildHandler.java +++ b/gradle-server/src/main/java/com/github/badsyntax/gradle/handlers/GetBuildHandler.java @@ -102,7 +102,12 @@ public class GetBuildHandler { return; } File initScript = PluginUtils.createInitScript(); - List arguments = Arrays.asList("--init-script", initScript.getAbsolutePath()); + List arguments = new ArrayList<>(); + String debugPlugin = System.getenv("VSCODE_DEBUG_PLUGIN"); + if ("true".equals(debugPlugin)) { + arguments.add("-Dorg.gradle.debug=true"); + } + arguments.addAll(Arrays.asList("--init-script", initScript.getAbsolutePath())); String jvmArguments = req.getGradleConfig().getJvmArguments(); if (!Strings.isNullOrEmpty(jvmArguments)) { arguments.addAll(Arrays.stream(jvmArguments.split(" ")).filter(e -> e != null && !e.isEmpty())