microsoft / vscode-java-debug

Java Debugger for Visual Studio Code.
Other
529 stars 339 forks source link

Populate mainClass only from source folders #418

Open andxu opened 6 years ago

andxu commented 6 years ago

List main class from third-party jars is time-consuming and not very useful, consider to remove the logic like

      int constraints = IJavaSearchScope.SOURCES;
        constraints |= IJavaSearchScope.APPLICATION_LIBRARIES;
        IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
        List<IJavaElement> ret = new ArrayList<IJavaElement>();
        for(IProject proj : root.getProjects()) {
            IJavaProject javaProject = JavaCore.create(proj);
            try {
                IPackageFragmentRoot[] packageFragmentRoot = javaProject.getPackageFragmentRoots();

                for (int i = 0; i < packageFragmentRoot.length; i++) {
                    if (packageFragmentRoot[i].getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT && packageFragmentRoot[i].getKind() == IPackageFragmentRoot.K_SOURCE)
                        ret.add(packageFragmentRoot[i]);
                }
            } catch (JavaModelException e) {
                // ignore
            }

        }

        IJavaSearchScope scope = SearchEngine.createJavaSearchScope(ret.toArray(new IJavaElement[0]), constraints);
andxu commented 6 years ago

https://github.com/Microsoft/java-debug/pull/228