SearchEngine engine = new SearchEngine();
//IProject[] projects = DLTKSearchScopeFactory.getInstance().getProjects(scope);
IDLTKLanguageToolkit toolkit = scope.getLanguageToolkit();
SearchPattern searchPattern = null;
// element search
if(file != null && offset != null && length != null){
IFile ifile = ProjectUtils.getFile(project, file);
ISourceModule src = DLTKCore.createSourceModuleFrom(ifile);
IModelElement[] elements = getElements(
src, getOffset(commandLine), Integer.parseInt(length));
IModelElement element = null;
if(elements != null && elements.length > 0){
element = elements[0];
}
//ScriptModelUtil.reconcile(src);
if (element != null && element.exists()) {
searchPattern = SearchPattern.createPattern(
element, context, SearchUtils.GENERICS_AGNOSTIC_MATCH_RULE, toolkit);
}
}else{
int mode = getMode(pattern) | SearchPattern.R_ERASURE_MATCH;
boolean caseSensitive =
!commandLine.hasOption(Options.CASE_INSENSITIVE_OPTION);
if (caseSensitive){
mode |= SearchPattern.R_CASE_SENSITIVE;
}
if (type == IDLTKSearchConstants.UNKNOWN){
SearchPattern byType = SearchPattern.createPattern(
pattern, IDLTKSearchConstants.TYPE, context, mode, toolkit);
SearchPattern byMethod = SearchPattern.createPattern(
pattern, IDLTKSearchConstants.METHOD, context, mode, toolkit);
SearchPattern byField = SearchPattern.createPattern(
pattern, IDLTKSearchConstants.FIELD, context, mode, toolkit);
searchPattern = SearchPattern.createOrPattern(
byType, SearchPattern.createOrPattern(byMethod, byField));
}else{
searchPattern = SearchPattern.createPattern(