protected final void addAdjustedCompletion(String name, String completion, int start, int end, int relevance, ImageDescriptor descriptor) { JavaCompletionProposal javaCompletionProposal= new JavaCompletionProposal(completion, start - fOffsetReduction, end - start, getImage(descriptor), name, relevance); javaCompletionProposal.setTriggerCharacters(TRIGGER_CHARACTERS); fProposals.add(javaCompletionProposal); }
protected ProcessableJavaFieldWithCastedReceiverCompletionProposal(CompletionProposal coreProposal, JavaCompletionProposal uiProposal, JavaContentAssistInvocationContext context) throws JavaModelException { super(uiProposal.getDisplayString(), uiProposal.getReplacementOffset(), uiProposal.getReplacementLength(), uiProposal.getImage(), uiProposal.getStyledDisplayString(), uiProposal.getRelevance(), true, context, coreProposal); this.coreProposal = coreProposal; }
protected ProcessableJavaCompletionProposal(CompletionProposal coreProposal, JavaCompletionProposal uiProposal, JavaContentAssistInvocationContext context) throws JavaModelException { super(uiProposal.getReplacementString(), coreProposal.getReplaceStart(), uiProposal.getReplacementLength(), uiProposal.getImage(), uiProposal.getStyledDisplayString(), uiProposal.getRelevance(), true, context); this.coreProposal = coreProposal; }
/** * Creates a new completion proposal. All fields are initialized based on the provided * information. * * @param replacementString the actual string to be inserted into the document * @param replacementOffset the offset of the text to be replaced * @param replacementLength the length of the text to be replaced * @param image the image to display for this proposal * @param displayString the string to be displayed for the proposal If set to <code>null</code>, * the replacement string will be taken as display string. * @param relevance the relevance * @param inJavadoc <code>true</code> for a javadoc proposal * @param invocationContext the invocation context of this completion proposal or <code>null</code> not available * @since 3.3 */ public JavaCompletionProposal(String replacementString, int replacementOffset, int replacementLength, Image image, String displayString, int relevance, boolean inJavadoc, JavaContentAssistInvocationContext invocationContext) { super(invocationContext); Assert.isNotNull(replacementString); Assert.isTrue(replacementOffset >= 0); Assert.isTrue(replacementLength >= 0); setReplacementString(replacementString); setReplacementOffset(replacementOffset); setReplacementLength(replacementLength); setImage(image); setDisplayString(displayString == null ? replacementString : displayString); setRelevance(relevance); setCursorPosition(replacementString.length()); setInJavadoc(inJavadoc); setSortString(displayString == null ? replacementString : displayString); }
@Override public ICompletionProposal[] computeCompletionProposals(IContentAssistSubjectControl contentAssistSubjectControl, int documentOffset) { ArrayList<JavaCompletionProposal> proposals= new ArrayList<>(); String input= contentAssistSubjectControl.getDocument().get(); String prefix= input.substring(0, documentOffset).trim(); for (String name : fNames) { if (input.isEmpty() || name.startsWith(prefix)) { JavaCompletionProposal proposal= new JavaCompletionProposal(name, 0, input.length(), fImage, name, 0); proposals.add(proposal); } } return proposals.toArray(new ICompletionProposal[proposals.size()]); } }
private IJavaCompletionProposal createFieldProposal(CompletionProposal proposal) { String completion= String.valueOf(proposal.getCompletion()); int start= proposal.getReplaceStart(); int length= getLength(proposal); String label= fLabelProvider.createLabel(proposal); Image image= getImage(fLabelProvider.createFieldImageDescriptor(proposal)); int relevance= computeRelevance(proposal); JavaCompletionProposal javaProposal= new JavaCompletionProposal(completion, start, length, image, label, relevance, getContext().isInJavadoc(), getInvocationContext()); if (fJavaProject != null) javaProposal.setProposalInfo(new FieldProposalInfo(fJavaProject, proposal)); javaProposal.setTriggerCharacters(VAR_TRIGGER); return javaProposal; }
protected boolean isValidPrefix(String prefix) { String word= getDisplayString(); if (isInJavadoc()) { int idx = word.indexOf("{@link "); //$NON-NLS-1$ if (idx==0) { word = word.substring(7); } else { idx = word.indexOf("{@value "); //$NON-NLS-1$ if (idx==0) { word = word.substring(8); } } } else if (word.indexOf("this.") != -1) { //$NON-NLS-1$ word= word.substring(word.indexOf("this.") + 5); //$NON-NLS-1$ } return isPrefix(prefix, word); }
@Override public StyledString getStyledDisplayString(IDocument document, int offset, BoldStylerProvider boldStylerProvider) { StyledString styledDisplayString= new StyledString(); styledDisplayString.append(getStyledDisplayString()); String displayString= styledDisplayString.getString(); if (isInJavadoc() && displayString.indexOf('<') == 0) { displayString= displayString.substring(1); boolean isClosing= displayString.indexOf('/') == 0; displayString= displayString.substring(1); String pattern= getPatternToEmphasizeMatch(document, offset); if (pattern != null && pattern.length() > 0) { if (pattern.indexOf('<') == 0) { int patternMatchRule= getPatternMatchRule(pattern, displayString); int[] matchingRegions= SearchPattern.getMatchingRegions(pattern, displayString, patternMatchRule); if (matchingRegions != null) {
private IJavaCompletionProposal createAnnotationAttributeReferenceProposal(CompletionProposal proposal) { StyledString displayString= fLabelProvider.createLabelWithTypeAndDeclaration(proposal); ImageDescriptor descriptor= fLabelProvider.createMethodImageDescriptor(proposal); String completion= String.valueOf(proposal.getCompletion()); JavaCompletionProposal javaProposal= new JavaCompletionProposal(completion, proposal.getReplaceStart(), getLength(proposal), getImage(descriptor), displayString, computeRelevance(proposal)); if (fJavaProject != null) javaProposal.setProposalInfo(new AnnotationAtttributeProposalInfo(fJavaProject, proposal)); return javaProposal; }
public ProcessableAnonymousTypeCompletionProposal(CompletionProposal coreProposal, JavaCompletionProposal uiProposal, JavaContentAssistInvocationContext context) throws JavaModelException { super(context.getProject(), context.getCompilationUnit(), context, coreProposal.getReplaceStart(), uiProposal .getReplacementLength(), String.valueOf(coreProposal.getCompletion()), uiProposal .getStyledDisplayString(), String.valueOf(coreProposal.getDeclarationSignature()), (IType) context .getProject().findElement(String.valueOf(coreProposal.getDeclarationKey()), null), uiProposal .getRelevance()); this.coreProposal = coreProposal; }
/** * Creates the Java completion proposal for the JDT Core * {@link CompletionProposal#FIELD_REF_WITH_CASTED_RECEIVER} proposal. * * @param proposal the JDT Core proposal * @return the Java completion proposal * @since 3.4 */ private IJavaCompletionProposal createFieldWithCastedReceiverProposal(CompletionProposal proposal) { String completion= String.valueOf(proposal.getCompletion()); completion= CodeFormatterUtil.format(CodeFormatter.K_EXPRESSION, completion, 0, "\n", fJavaProject); //$NON-NLS-1$ int start= proposal.getReplaceStart(); int length= getLength(proposal); StyledString label= fLabelProvider.createStyledLabel(proposal); Image image= getImage(fLabelProvider.createFieldImageDescriptor(proposal)); int relevance= computeRelevance(proposal); JavaCompletionProposal javaProposal= new JavaFieldWithCastedReceiverCompletionProposal(completion, start, length, image, label, relevance, getContext().isInJavadoc(), getInvocationContext(), proposal); if (fJavaProject != null) javaProposal.setProposalInfo(new FieldProposalInfo(fJavaProject, proposal)); javaProposal.setTriggerCharacters(VAR_TRIGGER); return javaProposal; }
position.setLength(argument.length()); if (proposal instanceof JavaCompletionProposal) // handle the "unknown" case where we only insert a proposal. ((JavaCompletionProposal) proposal).setReplacementOffset(replacementOffset + buffer.length()); buffer.append(argument);
public CharSequence getPrefixCompletionText(IDocument document, int completionOffset) { String string= getReplacementString(); int pos= string.indexOf('('); if (pos > 0) return string.subSequence(0, pos); else if (string.startsWith("this.")) //$NON-NLS-1$ return string.substring(5); else return string; } }
@Override public boolean isPrefix(final String prefix, final String completion) { lastPrefix = prefix; if (mgr.prefixChanged(prefix)) { return true; } return super.isPrefix(prefix, completion); }
@Override public StyledString getStyledDisplayString() { final StyledString origin = super.getStyledDisplayString(); return subwordsContext.getStyledDisplayString(origin); }
@Override protected boolean isValidPrefix(String prefix) { return super.isValidPrefix(prefix) || isPrefix(prefix, fUnqualifiedTypeName) || isPrefix(prefix, fFullyQualifiedTypeName); }
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); } }
/** * Creates a new completion proposal. All fields are initialized based on the provided * information. * * @param replacementString the actual string to be inserted into the document * @param replacementOffset the offset of the text to be replaced * @param replacementLength the length of the text to be replaced * @param image the image to display for this proposal * @param displayString the string to be displayed for the proposal If set to <code>null</code>, * the replacement string will be taken as display string. * @param relevance the relevance * @param inJavadoc <code>true</code> for a javadoc proposal * @param invocationContext the invocation context of this completion proposal or <code>null</code> not available */ public JavaCompletionProposal(String replacementString, int replacementOffset, int replacementLength, Image image, StyledString displayString, int relevance, boolean inJavadoc, JavaContentAssistInvocationContext invocationContext) { super(invocationContext); Assert.isNotNull(replacementString); Assert.isTrue(replacementOffset >= 0); Assert.isTrue(replacementLength >= 0); setReplacementString(replacementString); setReplacementOffset(replacementOffset); setReplacementLength(replacementLength); setImage(image); setStyledDisplayString(displayString == null ? new StyledString(replacementString) : displayString); setRelevance(relevance); setCursorPosition(replacementString.length()); setInJavadoc(inJavadoc); setSortString(displayString == null ? replacementString : displayString.getString()); }
@Override public ICompletionProposal[] computeCompletionProposals(IContentAssistSubjectControl contentAssistSubject, int documentOffset) { if (fTempNameProposals.length == 0) return null; String input= contentAssistSubject.getDocument().get(); ArrayList<JavaCompletionProposal> proposals= new ArrayList<>(); String prefix= input.substring(0, documentOffset); Image image= fImageRegistry.get(fProposalImageDescriptor); for (int i= 0; i < fTempNameProposals.length; i++) { String tempName= fTempNameProposals[i]; if (tempName.length() == 0 || ! tempName.startsWith(prefix)) continue; JavaCompletionProposal proposal= new JavaCompletionProposal(tempName, 0, input.length(), image, tempName, 0); proposals.add(proposal); } fErrorMessage= proposals.size() > 0 ? null : JavaUIMessages.JavaEditor_codeassist_noCompletions; return proposals.toArray(new ICompletionProposal[proposals.size()]); }
private IJavaCompletionProposal createFieldProposal(CompletionProposal proposal) { String completion= String.valueOf(proposal.getCompletion()); int start= proposal.getReplaceStart(); int length= getLength(proposal); StyledString label= fLabelProvider.createStyledLabel(proposal); Image image= getImage(fLabelProvider.createFieldImageDescriptor(proposal)); int relevance= computeRelevance(proposal); JavaCompletionProposal javaProposal= new JavaCompletionProposal(completion, start, length, image, label, relevance, getContext().isInJavadoc(), getInvocationContext()); if (fJavaProject != null) javaProposal.setProposalInfo(new FieldProposalInfo(fJavaProject, proposal)); javaProposal.setTriggerCharacters(VAR_TRIGGER); return javaProposal; }