async function getProjectRuntimesFromPM()

in src/java-runtime/index.ts [250:275]


async function getProjectRuntimesFromPM(): Promise<ProjectRuntimeEntry[]> {
  const ret: ProjectRuntimeEntry[] = [];
  const projectManagerExt = vscode.extensions.getExtension("vscjava.vscode-java-dependency");
  if (vscode.workspace.workspaceFolders && projectManagerExt && projectManagerExt.isActive) {
    let projects: any[] = [];
    for (const wf of vscode.workspace.workspaceFolders) {
      try {
        projects = await vscode.commands.executeCommand("java.execute.workspaceCommand", "java.project.list", wf.uri.toString()) || [];
      } catch (error) {
        console.error(error);
      }

      for (const project of projects) {
        const runtimeSpec = await getRuntimeSpec(project.uri);
        const projectType: ProjectType = await getProjectType(vscode.Uri.parse(project.uri).fsPath);
        ret.push({
          name: project.displayName || project.name,
          rootPath: project.uri,
          projectType,
          ...runtimeSpec
        });
      }
    }
  }
  return ret;
}