Bug 73557 [Dialogs] Pattern matching changes Open Resource type-ahead behaviour
If I use the "Open Resource" dialog (Ctrl-Shift-r) and being typing, it lists matches as though there is an implicit '*' at the end. E.g. if I being typing "MyF", it will show "MyFunClass.java", "MyFoobar.java", etc. But if I add a '*' at the beginning, and start typing e.g. "*F", it doesn't show the same list of files. Instead, only anything ending with 'F' is shown. I've tried this with a couple of other expressions, and it seems that if any regular expression is used, the behaviour of the dialog changes -- there is no longer considered to be a '*' at the end. I think this is confusing behaviour. If I add a manually add a '*' at the end of my expression, and then begin typing before the '*', I get the behaviour that I would expect.
bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/dialogs/ResourceListSelectionDialog.java
for (int i = 0; i < resources.length; i++) {
                    IResource r = resources[i];
                    ResourceDescriptor d = new ResourceDescriptor();
                    
                    d.label = r.getName();
                    d.resources.add(r);
                    descriptors[i] = d;
                }
                Arrays.sort(descriptors);
                descriptorsSize = descriptors.length;
                
                int index = 0;
                if (descriptorsSize < 2)
                    return;
                ResourceDescriptor current = descriptors[index];
                IResource currentResource = (IResource) current.resources
                        .get(0);
                for (int i = 1; i < descriptorsSize; i++) {
                    ResourceDescriptor next = descriptors[i];
                    IResource nextResource = (IResource) next.resources.get(0);
                    if (nextResource.getType() == currentResource.getType()
                            && next.label.equals(current.label)) {
                        current.resources.add(nextResource);
                    } else {
                        if (current.resources.size() > 1) {
                            current.resourcesSorted = false;
                        }
                        descriptors[index + 1] = descriptors[i];
                        index++;
                        current = descriptors[index];