private void addResult(String name, DartElement element, SearchListener listener) throws DartModelException { SourceRange range = null; switch (element.getElementType()) { case DartElement.FIELD: case DartElement.METHOD: SourceReference method = (SourceReference) element; range = method.getNameRange(); break; default: return; } SearchMatch match = new SearchMatch(MatchQuality.EXACT, element, range); listener.matchFound(match); }
private void searchForReferences( SearchEngine engine, DartElement element, SearchScope scope, SearchFilter filter, SearchListener collector, IProgressMonitor monitor) throws SearchException { switch (element.getElementType()) { case DartElement.METHOD: engine.searchReferences((Method) element, scope, filter, collector, monitor); break; case DartElement.CLASS_TYPE_ALIAS: engine.searchReferences((DartClassTypeAlias) element, scope, filter, collector, monitor); break; case DartElement.FUNCTION_TYPE_ALIAS: engine.searchReferences((DartFunctionTypeAlias) element, scope, filter, collector, monitor); break; case DartElement.FIELD: engine.searchReferences((Field) element, scope, filter, collector, monitor); break; case DartElement.FUNCTION: engine.searchReferences((DartFunction) element, scope, filter, collector, monitor); break; case DartElement.TYPE: engine.searchReferences((Type) element, scope, filter, collector, monitor); break; case DartElement.IMPORT: engine.searchReferences((DartImport) element, scope, filter, collector, monitor); break; case DartElement.VARIABLE: engine.searchReferences( (DartVariableDeclaration) element, scope, filter, collector, monitor); break; default: throw new UnsupportedOperationException( "unsupported search type: " + element.getClass()); // $NON-NLS-1$ } }
private void searchForDeclarations( SearchEngine engine, DartElement element, SearchScope scope, SearchFilter filter, SearchResultCollector listener, IProgressMonitor monitor) throws CoreException, SearchException { switch (element.getElementType()) { case DartElement.CLASS_TYPE_ALIAS: case DartElement.FUNCTION_TYPE_ALIAS: case DartElement.FUNCTION: case DartElement.IMPORT: case DartElement.TYPE: case DartElement.TYPE_PARAMETER: case DartElement.VARIABLE: { SourceRange range = ((SourceReference) element).getSourceRange(); SearchMatch match = new SearchMatch(MatchQuality.EXACT, element, range); if (filter == null || filter.passes(match)) { listener.matchFound(match); } break; } case DartElement.FIELD: case DartElement.METHOD: { // There's no way to tell which hierarchy an untyped reference might refer to, so find all // declarations. DartIdentifier identifier = new DartIdentifier(element.getElementName()); searchForDeclarations(engine, identifier, scope, filter, listener, monitor); break; } default: throw new UnsupportedOperationException( "unsupported search type: " + element.getClass()); // $NON-NLS-1$ } }
private void searchForOverrides( SearchEngine engine, DartElement element, SearchScope scope, SearchFilter filter, SearchResultCollector listener, IProgressMonitor monitor) throws CoreException { switch (element.getElementType()) { case DartElement.CLASS_TYPE_ALIAS: case DartElement.FUNCTION_TYPE_ALIAS: case DartElement.FUNCTION: case DartElement.FIELD: case DartElement.IMPORT: case DartElement.TYPE: case DartElement.TYPE_PARAMETER: case DartElement.VARIABLE: { break; } case DartElement.METHOD: { MemberDeclarationsReferences memberInfo; memberInfo = RenameAnalyzeUtil.findDeclarationsReferences((Method) element, monitor); for (TypeMember member : memberInfo.declarations) { SearchMatch match = new SearchMatch(MatchQuality.EXACT, member, member.getSourceRange()); listener.matchFound(match); } break; } default: throw new UnsupportedOperationException( "unsupported search type: " + element.getClass()); // $NON-NLS-1$ } }
private RenameSupport undoAndCreateRenameSupport(String newName) throws CoreException { // Assumption: the linked mode model should be shut down by now. final ISourceViewer viewer = fEditor.getViewer(); try { if (!fOriginalName.equals(newName)) { fEditor .getSite() .getWorkbenchWindow() .run( false, true, new IRunnableWithProgress() { @Override public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { if (viewer instanceof ITextViewerExtension6) { IUndoManager undoManager = ((ITextViewerExtension6) viewer).getUndoManager(); if (undoManager instanceof IUndoManagerExtension) { IUndoManagerExtension undoManagerExtension = (IUndoManagerExtension) undoManager; IUndoContext undoContext = undoManagerExtension.getUndoContext(); IOperationHistory operationHistory = OperationHistoryFactory.getOperationHistory(); while (undoManager.undoable()) { if (fStartingUndoOperation != null && fStartingUndoOperation.equals( operationHistory.getUndoOperation(undoContext))) { return; } undoManager.undo(); } } } } }); } } catch (InvocationTargetException e) { throw new CoreException( new Status( IStatus.ERROR, DartToolsPlugin.getPluginId(), ReorgMessages.RenameLinkedMode_error_saving_editor, e)); } catch (InterruptedException e) { // canceling is OK return null; } finally { DartModelUtil.reconcile(getCompilationUnit()); } viewer.setSelectedRange(fOriginalSelection.x, fOriginalSelection.y); if (newName.length() == 0) { return null; } switch (fDartElement.getElementType()) { case DartElement.FUNCTION: return RenameSupport.create((DartFunction) fDartElement, newName); case DartElement.FUNCTION_TYPE_ALIAS: return RenameSupport.create((DartFunctionTypeAlias) fDartElement, newName); case DartElement.TYPE: return RenameSupport.create((Type) fDartElement, newName); case DartElement.TYPE_PARAMETER: return RenameSupport.create((DartTypeParameter) fDartElement, newName); case DartElement.FIELD: return RenameSupport.create((Field) fDartElement, newName); case DartElement.METHOD: return RenameSupport.create((Method) fDartElement, newName); case DartElement.VARIABLE: return RenameSupport.create((DartVariableDeclaration) fDartElement, newName); default: return null; } }