Java 类org.eclipse.ui.dialogs.SearchPattern 实例源码
项目:bts
文件:IXtextEObjectSearch.java
protected Predicate<IEObjectDescription> getSearchPredicate(final String stringPattern,
final String typeStringPattern) {
final Collection<String> namespaceDelimiters = IXtextSearchFilter.Registry.allNamespaceDelimiters();
final SearchPattern searchPattern = new SearchPattern();
searchPattern.setPattern(stringPattern);
final SearchPattern typeSearchPattern = new SearchPattern();
typeSearchPattern.setPattern(typeStringPattern);
final Collection<IXtextSearchFilter> registeredFilters = IXtextSearchFilter.Registry.allFilters();
return new Predicate<IEObjectDescription>() {
public boolean apply(IEObjectDescription input) {
if (isNameMatches(searchPattern, input, namespaceDelimiters)
&& typeSearchPattern.matches(input.getEClass().getName())) {
for (IXtextSearchFilter xtextSearchFilter : registeredFilters) {
if (xtextSearchFilter.reject(input)) {
return false;
}
}
return true;
}
return false;
}
};
}
项目:gwt-eclipse-plugin
文件:ModuleSelectionDialog.java
public ModuleItemsFilter() {
super(new ModuleSearchPattern());
/*
* If there is no filter pattern present, initialize the pattern to '*'.
* This has the nice property of pre-populating the dialog list with all
* possible matches when it is first shown.
*/
if (patternMatcher.getPattern() == null
|| patternMatcher.getPattern().length() == 0) {
patternMatcher.setPattern("*");
}
// If a package pattern is present in the filter text, then set up
// a packageMatcher to do matching based on the module's package.
String stringPackage = ((ModuleSearchPattern) patternMatcher).getPackagePattern();
if (stringPackage != null) {
packageMatcher = new SearchPattern();
packageMatcher.setPattern(stringPackage);
} else {
packageMatcher = null;
}
}
项目:eclipse-silverstripedt
文件:FilteredTypesSelectionDialog.java
private void refreshSearchIndices(IProgressMonitor monitor)
throws InvocationTargetException {
try {
new SearchEngine().searchAllTypeNames(
null,
0,
// make sure we search a concrete name. This is faster
// according to Kent
"_______________".toCharArray(), //$NON-NLS-1$
SearchPattern.RULE_EXACT_MATCH
| SearchPattern.RULE_CASE_SENSITIVE,
IDLTKSearchConstants.TYPE, SearchEngine
.createWorkspaceScope(tookit.getCoreToolkit()),
new NopTypeNameRequestor(),
IDLTKSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
monitor);
} catch (ModelException e) {
throw new InvocationTargetException(e);
}
}
项目:eclipse-silverstripedt
文件:FilteredTypesSelectionDialog.java
/**
* Creates instance of TypeItemsFilter
*
* @param scope
* @param elementKind
* @param extension
*/
public TypeItemsFilter(IDLTKSearchScope scope, int elementKind,
ITypeInfoFilterExtension extension) {
super(new TypeSearchPattern());
fScope = scope;
fIsWorkspaceScope = scope == null ? false : scope
.equals(SearchEngine.createWorkspaceScope(fToolkit));
fElemKind = elementKind;
fFilterExt = extension;
String stringPackage = ((TypeSearchPattern) patternMatcher)
.getPackagePattern();
if (stringPackage != null) {
fPackageMatcher = new SearchPattern();
fPackageMatcher.setPattern(stringPackage);
} else {
fPackageMatcher = null;
}
}
项目:avro-schema-editor
文件:SearchNodeContext.java
protected boolean isTextMatchingSearchPattern(String text, String searchPattern) {
SearchPattern matcher = new SearchPattern(SearchPattern.RULE_PATTERN_MATCH
| SearchPattern.RULE_EXACT_MATCH | SearchPattern.RULE_PREFIX_MATCH
| SearchPattern.RULE_BLANK_MATCH);
matcher.setPattern("*" + searchPattern);
return matcher.matches(text);
}
项目:avro-schema-editor
文件:SchemaRegistryView.java
protected boolean isTextMatchingSearchPattern(String text) {
SearchPattern matcher = new SearchPattern(SearchPattern.RULE_PATTERN_MATCH
| SearchPattern.RULE_EXACT_MATCH | SearchPattern.RULE_PREFIX_MATCH
| SearchPattern.RULE_BLANK_MATCH);
matcher.setPattern("*" + searchPattern);
return matcher.matches(text);
}
项目:avro-schema-editor
文件:SchemaRegistry.java
protected boolean isTextMatchingSearchPattern(String text, String searchPattern) {
SearchPattern matcher = new SearchPattern(SearchPattern.RULE_PATTERN_MATCH
| SearchPattern.RULE_EXACT_MATCH | SearchPattern.RULE_PREFIX_MATCH
| SearchPattern.RULE_BLANK_MATCH);
matcher.setPattern("*" + searchPattern);
return matcher.matches(text);
}
项目:tlaplus
文件:FilteredItemsSelectionDialog.java
/**
* Creates new instance of ItemsFilter.
*
* @param searchPattern
* the pattern to be used when filtering
*/
public ItemsFilter(SearchPattern searchPattern) {
patternMatcher = searchPattern;
String stringPattern = ""; //$NON-NLS-1$
if (pattern != null && !pattern.getText().equals("*")) { //$NON-NLS-1$
stringPattern = pattern.getText();
}
patternMatcher.setPattern(stringPattern);
}
项目:bts
文件:IXtextEObjectSearch.java
protected boolean isNameMatches(SearchPattern searchPattern, IEObjectDescription eObjectDescription, Collection<String> namespaceDelimiters) {
String qualifiedName = qualifiedNameConverter.toString(eObjectDescription.getQualifiedName());
if (qualifiedName!=null) {
if(searchPattern.matches(qualifiedName)) {
return true;
}
for(String namespaceDelimiter : namespaceDelimiters) {
int index = qualifiedName.lastIndexOf(namespaceDelimiter);
if(index!=-1 && searchPattern.matches(qualifiedName.substring(index+1))) {
return true;
}
}
}
return false;
}
项目:Pydev
文件:MatchHelper.java
/**
* Matches according to scopes.
*/
public static boolean matchItem(SearchPattern patternMatcher, IInfo info) {
//We want to match the package name in the beggining too...
String pattern = patternMatcher.getPattern();
List<String> split = StringUtils.splitAndRemoveEmptyTrimmed(pattern, '.');
if (split.size() <= 1) {
if (pattern.endsWith(".")) {
split.add("");
} else {
return patternMatcher.matches(info.getName());
}
}
//Otherwise, we have more things to match... We could match something like:
//django.AAA -- which should match all the modules that start with django and the tokens that have AAA.
String declaringModuleName = info.getDeclaringModuleName();
if (declaringModuleName == null || declaringModuleName.length() == 0) {
return false;
}
List<String> moduleParts = StringUtils.splitAndRemoveEmptyTrimmed(declaringModuleName, '.');
while (split.size() > 1) {
String head = split.remove(0);
SearchPattern headPattern = new SearchPattern();
headPattern.setPattern(head);
if (moduleParts.size() == 0) {
return false; //we cannot match it anymore
}
if (!headPattern.matches(moduleParts.remove(0))) {
return false;
}
}
//if it got here, we've matched the module correctly... let's go on and check the name.
SearchPattern tailPattern = new SearchPattern();
tailPattern.setPattern(split.get(0));
return tailPattern.matches(info.getName());
}
项目:Pydev
文件:MatchHelper.java
/**
* Checks if equals considering scopes.
*/
public static boolean equalsFilter(String thisPattern, String otherPattern) {
return checkPatternSubparts(thisPattern, otherPattern, new ICallback2<Boolean, SearchPattern, SearchPattern>() {
@Override
public Boolean call(SearchPattern thisP, SearchPattern otherP) {
if (!(thisP.equalsPattern(otherP))) {
return false;
}
return true;
}
});
}
项目:Pydev
文件:MatchHelper.java
/**
* Checks if it's a sub-filter considering scopes.
*/
public static boolean isSubFilter(String thisPattern, String otherPattern) {
return checkPatternSubparts(thisPattern, otherPattern, new ICallback2<Boolean, SearchPattern, SearchPattern>() {
@Override
public Boolean call(SearchPattern thisP, SearchPattern otherP) {
if (!(thisP.isSubPattern(otherP))) {
return false;
}
return true;
}
});
}
项目:Pydev
文件:MatchHelper.java
private static boolean checkPatternSubparts(String thisPattern, String otherPattern,
ICallback2<Boolean, SearchPattern, SearchPattern> check) {
boolean thisEndsWithPoint = thisPattern.endsWith(".");
boolean otherEndsWithPoint = otherPattern.endsWith(".");
if (thisEndsWithPoint != otherEndsWithPoint) {
return false;
}
List<String> thisSplit = StringUtils.splitAndRemoveEmptyNotTrimmed(thisPattern, '.');
List<String> otherSplit = StringUtils.splitAndRemoveEmptyNotTrimmed(otherPattern, '.');
if (thisEndsWithPoint) {
thisSplit.add("");
}
if (otherEndsWithPoint) {
otherSplit.add("");
}
if (thisSplit.size() != otherSplit.size()) {
return false;
}
for (int i = 0; i < thisSplit.size(); i++) {
String thisStr = thisSplit.get(i);
String otherStr = otherSplit.get(i);
SearchPattern thisP = new SearchPattern();
thisP.setPattern(thisStr);
SearchPattern otherP = new SearchPattern();
otherP.setPattern(otherStr);
if (!check.call(thisP, otherP)) {
return false;
}
}
return true;
}
项目:angularjs-eclipse
文件:FilteredAngularElementsSelectionDialog.java
private final int[] getMatchingRegions(String pattern, String name, int matchRule) {
if (name == null)
return null;
final int nameLength = name.length();
if (pattern == null) {
return new int[] { 0, nameLength };
}
final int patternLength = pattern.length();
switch (matchRule) {
case SearchPattern.RULE_EXACT_MATCH:
if (patternLength == nameLength && pattern.equalsIgnoreCase(name)) {
return new int[] { 0, patternLength };
}
break;
case SearchPattern.RULE_EXACT_MATCH | SearchPattern.RULE_CASE_SENSITIVE:
if (patternLength == nameLength && pattern.equals(name)) {
return new int[] { 0, patternLength };
}
break;
case SearchPattern.RULE_PREFIX_MATCH:
if (patternLength <= nameLength && name.substring(0, patternLength).equalsIgnoreCase(pattern)) {
return new int[] { 0, patternLength };
}
break;
case SearchPattern.RULE_PREFIX_MATCH | SearchPattern.RULE_CASE_SENSITIVE:
if (name.startsWith(pattern)) {
return new int[] { 0, patternLength };
}
break;
case SearchPattern.RULE_PATTERN_MATCH:
return StringUtils.getPatternMatchingRegions(pattern, 0, patternLength, name, 0, nameLength, false);
case SearchPattern.RULE_PATTERN_MATCH | SearchPattern.RULE_CASE_SENSITIVE:
return StringUtils.getPatternMatchingRegions(pattern, 0, patternLength, name, 0, nameLength, true);
}
return null;
}
项目:google-cloud-eclipse
文件:PipelineOptionsSelectionDialog.java
public PipelineOptionsSelectionFilter() {
super(
new SearchPattern(SearchPattern.RULE_CAMELCASE_MATCH | SearchPattern.RULE_PATTERN_MATCH));
}
项目:turnus
文件:WidgetSelectResource.java
public ResourceFilter() {
super(new SearchPattern(SearchPattern.RULE_PATTERN_MATCH));
String pattern = "*" + patternMatcher.getPattern() + "*";
patternMatcher.setPattern(pattern);
}
项目:tlaplus
文件:FilteredItemsSelectionDialog.java
/**
* Creates new instance of ItemsFilter.
*/
public ItemsFilter() {
this(new SearchPattern());
}
项目:Pydev
文件:GlobalsTwoPanelElementSelector2Test.java
public void testPatternMatch() throws Exception {
SearchPattern patternMatcher = new SearchPattern();
patternMatcher.setPattern("aa");
assertTrue(MatchHelper.matchItem(patternMatcher, new ClassInfo("aa", null, null, null)));
assertTrue(MatchHelper.matchItem(patternMatcher, new ClassInfo("aaa", null, null, null)));
assertFalse(MatchHelper.matchItem(patternMatcher, new ClassInfo("baaa", null, null, null)));
assertTrue(MatchHelper.matchItem(patternMatcher, new ClassInfo("aaa", "coi.foo", null, null)));
patternMatcher.setPattern("xx.aa");
assertFalse(MatchHelper.matchItem(patternMatcher, new ClassInfo("aaa", "invalid.foo", null, null)));
assertTrue(MatchHelper.matchItem(patternMatcher, new ClassInfo("aaa", "xx.foo", null, null)));
patternMatcher.setPattern("xx.foo.aa");
assertTrue(MatchHelper.matchItem(patternMatcher, new ClassInfo("aaa", "xx.foo.bar", null, null)));
patternMatcher.setPattern("xx.foo.bar.aa");
assertTrue(MatchHelper.matchItem(patternMatcher, new ClassInfo("aaa", "xx.foo.bar", null, null)));
patternMatcher.setPattern("xx.foo.bar.aa.aa");
assertFalse(MatchHelper.matchItem(patternMatcher, new ClassInfo("aaa", "xx.foo.bar", null, null)));
patternMatcher.setPattern("xx.foo.ba.aa");
assertTrue(MatchHelper.matchItem(patternMatcher, new ClassInfo("aaa", "xx.foo.bar", null, null)));
patternMatcher.setPattern("xx.fo*o.ba.aa");
assertTrue(MatchHelper.matchItem(patternMatcher, new ClassInfo("aaa", "xx.foo.bar", null, null)));
patternMatcher.setPattern("coi*.intersection");
assertTrue(MatchHelper.matchItem(patternMatcher,
new ClassInfo("Intersection", "coilib50.basic.native", null, null)));
patternMatcher.setPattern("coilib50.intersection");
assertTrue(MatchHelper.matchItem(patternMatcher,
new ClassInfo("Intersection", "coilib50.basic.native", null, null)));
patternMatcher.setPattern("coilib50.");
assertTrue(MatchHelper.matchItem(patternMatcher,
new ClassInfo("Intersection", "coilib50.basic.native", null, null)));
}
项目:eclipse-silverstripedt
文件:FilteredTypesSelectionDialog.java
protected void fillContentProvider(AbstractContentProvider provider,
ItemsFilter itemsFilter, IProgressMonitor progressMonitor)
throws CoreException {
TypeItemsFilter typeSearchFilter = (TypeItemsFilter) itemsFilter;
TypeSearchRequestor requestor = new TypeSearchRequestor(provider,
typeSearchFilter);
String typePattern = itemsFilter.getPattern();
progressMonitor
.setTaskName(DLTKUIMessages.FilteredTypesSelectionDialog_searchJob_taskName);
IType[] types = new ModelAccess().findTypes(typePattern, ModelAccess
.convertSearchRule(itemsFilter.getMatchRule()), 0,
Modifiers.AccNameSpace, typeSearchFilter.getSearchScope(),
progressMonitor);
if (types != null) {
for (IType type : types) {
requestor.acceptTypeNameMatch(new DLTKSearchTypeNameMatch(type,
type.getFlags()));
}
} else {
SearchEngine engine = new SearchEngine((WorkingCopyOwner) null);
String packPattern = typeSearchFilter.getPackagePattern();
/*
* Setting the filter into match everything mode avoids filtering
* twice by the same pattern (the search engine only provides
* filtered matches). For the case when the pattern is a camel case
* pattern with a terminator, the filter is not set to match
* everything mode because jdt.core's SearchPattern does not support
* that case.
*/
int matchRule = typeSearchFilter.getMatchRule();
if (matchRule == SearchPattern.RULE_CAMELCASE_MATCH) {
// If the pattern is empty, the RULE_BLANK_MATCH will be chosen,
// so
// we don't have to check the pattern length
char lastChar = typePattern.charAt(typePattern.length() - 1);
if (lastChar == '<' || lastChar == ' ') {
typePattern = typePattern.substring(0,
typePattern.length() - 1);
} else {
typeSearchFilter.setMatchEverythingMode(true);
}
} else {
typeSearchFilter.setMatchEverythingMode(true);
}
try {
engine.searchAllTypeNames(
packPattern == null ? null : packPattern.toCharArray(),
typeSearchFilter.getPackageFlags(),
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=176017
typePattern.toCharArray(),
matchRule,
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=176017
typeSearchFilter.getElementKind(), typeSearchFilter
.getSearchScope(), requestor,
IDLTKSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
progressMonitor);
} finally {
typeSearchFilter.setMatchEverythingMode(false);
}
}
}
项目:eclipse-silverstripedt
文件:FilteredTypesSelectionDialog.java
public int getPackageFlags() {
if (fPackageMatcher == null)
return SearchPattern.RULE_EXACT_MATCH;
return fPackageMatcher.getMatchRule();
}
项目:tlaplus
文件:FilteredItemsSelectionDialog.java
/**
* Checks whether the pattern's match rule is camel case.
*
* @return <code>true</code> if pattern's match rule is camel case,
* <code>false</code> otherwise
*/
public boolean isCamelCasePattern() {
return patternMatcher.getMatchRule() == SearchPattern.RULE_CAMELCASE_MATCH;
}