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
}
        });
        applyDialogFont(dialogArea);
        return dialogArea;
    }
    /**
     */
    private void filterResources() {
        String oldPattern = patternString;
        patternString = adjustPattern();
        if (patternString.equals(oldPattern))
            return;
        updateFilterThread.stop = true;
        stringMatcher = new StringMatcher(patternString, true, false);
        UpdateFilterThread oldThread = updateFilterThread;
        updateFilterThread = new UpdateFilterThread();
        if (patternString.equals("")) { 
            updateFilterThread.firstMatch = 0;
            updateFilterThread.lastMatch = -1;
            updateFilterThread.start();
            return;
        }
        if (oldPattern != null && (oldPattern.length() != 0)
                && oldPattern.endsWith("*") && patternString.endsWith("*")) { 
            int matchLength = oldPattern.length() - 1;
            if (patternString.regionMatches(0, oldPattern, 0, matchLength)) {
                 
                
                updateFilterThread.firstMatch = oldThread.firstMatch;
                updateFilterThread.lastMatch = oldThread.lastMatch;