@Override
	public void addToVSCodeWorkspace(File workspaceFile, File projectDir) throws IOException {

		File installDir = Application.getInstallationDirectory().getFile(false);
		Map<String, String> classpathSourceMap = getClasspathSourceMap();
		JsonObject settings =
			createSettings(installDir, projectDir, classpathSourceMap, List.of("."), null);
		JsonObject launch = createLaunch(installDir, projectDir, classpathSourceMap, null);
		
		JsonObject workspace;
		if (workspaceFile.isFile()) {
			String str = FileUtils.readFileToString(workspaceFile, StandardCharsets.UTF_8);
			JsonElement element = JsonParser.parseString(str);
			if (!(element instanceof JsonObject json)) {
				throw new IOException("'%s' was not a JsonObject".formatted(workspaceFile));
			}
			workspace = addToExistingWorkspace(projectDir, json, settings, launch);
		}
		else {
			workspace = addToExistingWorkspace(projectDir, createNewWorkspace(settings, launch),
				settings, launch);
		}

		if (!FileUtilities.mkdirs(workspaceFile.getParentFile())) {
			throw new IOException("Failed to create: " + workspaceFile.getParentFile());
		}
		FileUtils.writeStringToFile(workspaceFile, gson.toJson(workspace), StandardCharsets.UTF_8);
	}
Present the user with a dialog that allows them to select a name and location for their new
Visual Studio Code Module Project
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/vscode/VSCodeIntegrationPlugin.java