no camelhump matching in live template tree speed search (IDEA-169197)

This commit is contained in:
peter
2017-03-20 11:53:11 +01:00
parent 3baaa12522
commit 8bef891658
@@ -22,9 +22,11 @@ import com.intellij.openapi.actionSystem.DataProvider;
import com.intellij.openapi.actionSystem.PlatformDataKeys;
import com.intellij.openapi.ide.CopyPasteManager;
import com.intellij.openapi.util.JDOMUtil;
import com.intellij.openapi.util.TextRange;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.ui.CheckboxTree;
import com.intellij.ui.CheckedTreeNode;
import com.intellij.ui.SpeedSearchComparator;
import com.intellij.ui.TreeSpeedSearch;
import com.intellij.util.JdomKt;
import com.intellij.util.SystemProperties;
@@ -36,6 +38,7 @@ import org.jetbrains.annotations.Nullable;
import javax.swing.tree.DefaultMutableTreeNode;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.util.Collections;
import java.util.Set;
/**
@@ -72,7 +75,7 @@ class LiveTemplateTree extends CheckboxTree implements DataProvider, CopyProvide
template.getTemplateText();
}
return "";
}, true);
}, true).setComparator(new SubstringSpeedSearchComparator());
}
@Nullable
@@ -143,4 +146,18 @@ class LiveTemplateTree extends CheckboxTree implements DataProvider, CopyProvide
catch (Exception ignore) {
}
}
private static class SubstringSpeedSearchComparator extends SpeedSearchComparator {
@Override
public int matchingDegree(String pattern, String text) {
return matchingFragments(pattern, text) != null ? 1 : 0;
}
@Nullable
@Override
public Iterable<TextRange> matchingFragments(@NotNull String pattern, @NotNull String text) {
int index = StringUtil.indexOfIgnoreCase(text, pattern, 0);
return index >= 0 ? Collections.singleton(TextRange.from(index, pattern.length())) : null;
}
}
}