protected final void addAdjustedTypeCompletion(String name, String completion, int start, int end, int relevance, ImageDescriptor descriptor, String fullyQualifiedName) { JavaTypeCompletionProposal javaCompletionProposal= new JavaTypeCompletionProposal( fullyQualifiedName == null || completion.length() == 0 ? completion : fullyQualifiedName, null, start - fOffsetReduction, end - start, getImage(descriptor), name, relevance, completion); javaCompletionProposal.setTriggerCharacters(TRIGGER_CHARACTERS); fProposals.add(javaCompletionProposal); }
public void apply(IDocument document, char trigger, int offset) { try { ImportRewrite impRewrite= null; if (fCompilationUnit != null && allowAddingImports()) { impRewrite= StubUtility.createImportRewrite(fCompilationUnit, true); } boolean importAdded= updateReplacementString(document, trigger, offset, impRewrite); if (importAdded) setCursorPosition(getReplacementString().length()); super.apply(document, trigger, offset); if (importAdded && impRewrite != null) { int oldLen= document.getLength(); impRewrite.rewriteImports(new NullProgressMonitor()).apply(document, TextEdit.UPDATE_REGIONS); setReplacementOffset(getReplacementOffset() + document.getLength() - oldLen); } } catch (CoreException e) { JavaPlugin.log(e); } catch (BadLocationException e) { JavaPlugin.log(e); } }
protected boolean updateReplacementString(IDocument document, char trigger, int offset, ImportRewrite impRewrite) throws CoreException, BadLocationException { // avoid adding imports when inside imports container if (impRewrite != null && fFullyQualifiedTypeName != null) { String replacementString= getReplacementString(); String qualifiedType= fFullyQualifiedTypeName; if (qualifiedType.indexOf('.') != -1 && replacementString.startsWith(qualifiedType) && !replacementString.endsWith(String.valueOf(';'))) { IType[] types= impRewrite.getCompilationUnit().getTypes(); if (types.length > 0 && types[0].getSourceRange().getOffset() <= offset) { // ignore positions above type. setReplacementString(impRewrite.addImport(getReplacementString())); return true; } } } return false; }
@Override public void apply(IDocument document, char trigger, int offset) { try { ImportRewrite impRewrite= null; if (fCompilationUnit != null && allowAddingImports()) { impRewrite= StubUtility.createImportRewrite(fCompilationUnit, true); } boolean updateCursorPosition= updateReplacementString(document, trigger, offset, impRewrite); if (updateCursorPosition) setCursorPosition(getReplacementString().length()); super.apply(document, trigger, offset); if (impRewrite != null) { int oldLen= document.getLength(); impRewrite.rewriteImports(new NullProgressMonitor()).apply(document, TextEdit.UPDATE_REGIONS); setReplacementOffset(getReplacementOffset() + document.getLength() - oldLen); } } catch (CoreException e) { JavaPlugin.log(e); } catch (BadLocationException e) { JavaPlugin.log(e); } }
/** * Updates the replacement string. * * @param document the document * @param trigger the trigger * @param offset the offset * @param impRewrite the import rewrite * @return <code>true</code> if the cursor position should be updated, <code>false</code> otherwise * @throws BadLocationException if accessing the document fails * @throws CoreException if something else fails */ protected boolean updateReplacementString(IDocument document, char trigger, int offset, ImportRewrite impRewrite) throws CoreException, BadLocationException { // avoid adding imports when inside imports container if (impRewrite != null && fFullyQualifiedTypeName != null) { String replacementString= getReplacementString(); String qualifiedType= fFullyQualifiedTypeName; if (qualifiedType.indexOf('.') != -1 && replacementString.startsWith(qualifiedType) && !replacementString.endsWith(String.valueOf(';'))) { IType[] types= impRewrite.getCompilationUnit().getTypes(); if (types.length > 0 && types[0].getSourceRange().getOffset() <= offset) { // ignore positions above type. setReplacementString(impRewrite.addImport(getReplacementString())); return true; } } } return false; }
@Override public void apply(IDocument document, char trigger, int offset) { try { ImportRewrite impRewrite= null; if (fCompilationUnit != null && allowAddingImports()) { impRewrite= StubUtility.createImportRewrite(fCompilationUnit, true); } boolean updateCursorPosition= updateReplacementString(document, trigger, offset, impRewrite); if (updateCursorPosition) setCursorPosition(getReplacementString().length()); super.apply(document, trigger, offset); if (impRewrite != null) { int oldLen= document.getLength(); impRewrite.rewriteImports(new NullProgressMonitor()).apply(document, TextEdit.UPDATE_REGIONS); setReplacementOffset(getReplacementOffset() + document.getLength() - oldLen); } } catch (CoreException e) { JavaPlugin.log(e); } catch (BadLocationException e) { JavaPlugin.log(e); } }
protected final void addAdjustedTypeCompletion(String name, String completion, int start, int end, int relevance, ImageDescriptor descriptor, String fullyQualifiedName) { String replacementString= fullyQualifiedName == null || completion.length() == 0 ? completion : fullyQualifiedName; int replacementOffset= start - fOffsetReduction; int replacementLength= end - start; JavaTypeCompletionProposal javaCompletionProposal= new JavaTypeCompletionProposal( replacementString, null, replacementOffset, replacementLength, getImage(descriptor), new StyledString(name), relevance, fullyQualifiedName); javaCompletionProposal.setTriggerCharacters(TRIGGER_CHARACTERS); fProposals.add(javaCompletionProposal); }
/** * Updates the replacement string. * * @param document the document * @param trigger the trigger * @param offset the offset * @param impRewrite the import rewrite * @return <code>true</code> if the cursor position should be updated, <code>false</code> otherwise * @throws BadLocationException if accessing the document fails * @throws CoreException if something else fails */ protected boolean updateReplacementString(IDocument document, char trigger, int offset, ImportRewrite impRewrite) throws CoreException, BadLocationException { // avoid adding imports when inside imports container if (impRewrite != null && fFullyQualifiedTypeName != null) { String replacementString= getReplacementString(); String qualifiedType= fFullyQualifiedTypeName; if (qualifiedType.indexOf('.') != -1 && replacementString.startsWith(qualifiedType) && !replacementString.endsWith(String.valueOf(';'))) { IType[] types= impRewrite.getCompilationUnit().getTypes(); if (types.length > 0 && types[0].getSourceRange().getOffset() <= offset) { // ignore positions above type. setReplacementString(impRewrite.addImport(getReplacementString())); return true; } } } return false; }
protected final void addAdjustedTypeCompletion(String name, String completion, int start, int end, int relevance, ImageDescriptor descriptor, String fullyQualifiedName) { String replacementString= fullyQualifiedName == null || completion.length() == 0 ? completion : fullyQualifiedName; int replacementOffset= start - fOffsetReduction; int replacementLength= end - start; JavaTypeCompletionProposal javaCompletionProposal= new JavaTypeCompletionProposal( replacementString, null, replacementOffset, replacementLength, getImage(descriptor), new StyledString(name), relevance, fullyQualifiedName); javaCompletionProposal.setTriggerCharacters(TRIGGER_CHARACTERS); fProposals.add(javaCompletionProposal); }