mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
no camelhump matching in live template tree speed search (IDEA-169197)
This commit is contained in:
+18
-1
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user