/** * Workaround for https://bugs.eclipse.org/bugs/show_bug.cgi?id=130161 * (Java Model returns ISourceRanges [-1, 0] if source not available). * * @param range a source range, can be <code>null</code> * @return <code>true</code> iff range is not null and range.getOffset() is not -1 */ public static boolean isAvailable(ISourceRange range) { return range != null && range.getOffset() != -1; } }
private boolean accept(int offset, IMember member) throws JavaModelException { ISourceRange nameRange = member.getNameRange(); if (nameRange == null) { return false; } int srcOffset = nameRange.getOffset(); return srcOffset > offset; }
/** * @see ISourceReference */ @Override public ISourceRange getSourceRange() throws JavaModelException { IJavaElement[] imports= getChildren(); ISourceRange firstRange= ((ISourceReference)imports[0]).getSourceRange(); ISourceRange lastRange= ((ISourceReference)imports[imports.length - 1]).getSourceRange(); SourceRange range= new SourceRange(firstRange.getOffset(), lastRange.getOffset() + lastRange.getLength() - firstRange.getOffset()); return range; } /**
private static int getLineNumber(IJavaElement element, IDocument document) throws JavaModelException, BadLocationException { ISourceRange r= ((ISourceReference) element).getNameRange(); int offset= r.getOffset(); return document.getLineOfOffset(offset); }
public int getInsertOffset() throws JavaModelException { IJavaElement elementPosition= getElementPosition(); if (elementPosition instanceof ISourceReference) { return ((ISourceReference) elementPosition).getSourceRange().getOffset(); } return -1; }
private void doListSelectionChanged(int page, ISourceRange[] ranges, JavaEditor editor) { if (editor != null && ranges != null && page >= 0 && page < ranges.length) { ISourceRange range= ranges[page]; editor.selectAndReveal(range.getOffset(), range.getLength()); } }
private static int getOffset(IMember iMember) throws JavaModelException { //special case if (iMember.getElementType() == IJavaElement.INITIALIZER) return firstOpeningBraceOffset((IInitializer)iMember); if (iMember.getNameRange() != null && iMember.getNameRange().getOffset() >= 0) return iMember.getNameRange().getOffset(); return iMember.getSourceRange().getOffset(); }
public StubTypeContext getStubTypeContext() { try { if (fContextCuStartEnd == null) fContextCuStartEnd= TypeContextChecker.createStubTypeContext(getCu(), fBaseCuRewrite.getRoot(), fMethod.getSourceRange().getOffset()); } catch (CoreException e) { //cannot do anything here throw new RuntimeException(e); } return fContextCuStartEnd; }
private static ASTNode findNode(ISourceRange range, CompilationUnit cuNode){ NodeFinder nodeFinder= new NodeFinder(cuNode, range.getOffset(), range.getLength()); ASTNode coveredNode= nodeFinder.getCoveredNode(); if (coveredNode != null) { return coveredNode; } else { return nodeFinder.getCoveringNode(); } }
private static Integer[] createOffsetArray(IType[] types) throws JavaModelException { List result= new ArrayList(); for (int i= 0; i < types.length; i++) { IType iType= types[i]; addOffset(result, iType.getNameRange().getOffset()); addOffset(result, iType.getSourceRange().getOffset() + iType.getSourceRange().getLength()); addMemberOffsetList(result, iType.getMethods()); addMemberOffsetList(result, iType.getFields()); addMemberOffsetList(result, iType.getInitializers()); } return (Integer[]) result.toArray(new Integer[result.size()]); }
@Override public final void run() { ITextSelection selection= getTextSelection(); ISourceRange newRange= getNewSelectionRange(createSourceRange(selection), null); // Check if new selection differs from current selection if (selection.getOffset() == newRange.getOffset() && selection.getLength() == newRange.getLength()) return; fEditor.selectAndReveal(newRange.getOffset(), newRange.getLength()); }
@Override public String toString() { return super.toString() + " [" + fRange.getSourceRange().getOffset() + '+' + fRange.getSourceRange().getLength() + ']'; //$NON-NLS-1$ } }
public final void run() { ITextSelection selection= getTextSelection(); ISourceRange newRange= getNewSelectionRange(createSourceRange(selection), null); // Check if new selection differs from current selection if (selection.getOffset() == newRange.getOffset() && selection.getLength() == newRange.getLength()) return; fEditor.selectAndReveal(newRange.getOffset(), newRange.getLength()); }
private static ASTNode findNode(ISourceRange range, CompilationUnit cuNode){ NodeFinder nodeFinder= new NodeFinder(range.getOffset(), range.getLength()); cuNode.accept(nodeFinder); ASTNode coveredNode= nodeFinder.getCoveredNode(); if (coveredNode != null) return coveredNode; else return nodeFinder.getCoveringNode(); }
private CodeLens getCodeLens(String type, IJavaElement element, ITypeRoot typeRoot) throws JavaModelException { ISourceRange r = ((ISourceReference) element).getNameRange(); if (r == null) { return null; } CodeLens lens = new CodeLens(); final Range range = JDTUtils.toRange(typeRoot, r.getOffset(), r.getLength()); lens.setRange(range); String uri = ResourceUtils.toClientUri(JDTUtils.toUri(typeRoot)); lens.setData(Arrays.asList(uri, range.getStart(), type)); return lens; }
private void addDeclarationUpdate() throws CoreException { ISourceRange nameRange= fField.getNameRange(); TextEdit textEdit= new ReplaceEdit(nameRange.getOffset(), nameRange.getLength(), getNewElementName()); ICompilationUnit cu= fField.getCompilationUnit(); String groupName= RefactoringCoreMessages.RenameFieldRefactoring_Update_field_declaration; addTextEdit(fChangeManager.get(cu), groupName, textEdit); }
public void run(IStructuredSelection selection) { try { Assert.isTrue(RefactoringAvailabilityTester.isInlineConstantAvailable(selection)); Object first= selection.getFirstElement(); Assert.isTrue(first instanceof IField); IField field= (IField) first; run(field.getNameRange().getOffset(), field.getNameRange().getLength(), field.getCompilationUnit()); } catch (JavaModelException e) { ExceptionHandler.handle(e, getShell(), RefactoringMessages.InlineConstantAction_dialog_title, RefactoringMessages.InlineConstantAction_unexpected_exception); } }