use of org.eclipse.jdt.core.IBuffer in project che by eclipse.
the class SearchManager method getDocument.
private IDocument getDocument(ICompilationUnit ancestor) throws JavaModelException {
IDocument document;
IBuffer buffer = ancestor.getBuffer();
if (buffer instanceof org.eclipse.jdt.internal.ui.javaeditor.DocumentAdapter) {
document = ((org.eclipse.jdt.internal.ui.javaeditor.DocumentAdapter) buffer).getDocument();
} else {
document = new DocumentAdapter(buffer);
}
return document;
}
use of org.eclipse.jdt.core.IBuffer in project che by eclipse.
the class CompletionJavadocTest method computeProposals.
private static List<ICompletionProposal> computeProposals(ICompilationUnit compilationUnit, int offset) throws JavaModelException {
IBuffer buffer = compilationUnit.getBuffer();
IDocument document;
if (buffer instanceof org.eclipse.jdt.internal.ui.javaeditor.DocumentAdapter) {
document = ((org.eclipse.jdt.internal.ui.javaeditor.DocumentAdapter) buffer).getDocument();
} else {
document = new DocumentAdapter(buffer);
}
TextViewer viewer = new TextViewer(document, new Point(offset, 0));
JavaContentAssistInvocationContext context = new JavaContentAssistInvocationContext(viewer, offset, compilationUnit);
List<ICompletionProposal> proposals = new ArrayList<>();
proposals.addAll(new JavaAllCompletionProposalComputer().computeCompletionProposals(context, null));
// proposals.addAll(new TemplateCompletionProposalComputer().computeCompletionProposals(context, null));
Collections.sort(proposals, new RelevanceSorter());
return proposals;
}
use of org.eclipse.jdt.core.IBuffer in project flux by eclipse.
the class QuickAssistService method applyProposals.
private JSONObject applyProposals(int offset, int length, boolean applyFix, ICompilationUnit liveEditUnit, IProblemLocation problem) throws CoreException, JavaModelException, JSONException {
IInvocationContext context = new AssistContext(liveEditUnit, offset, length);
QuickFixProcessor processor = new QuickFixProcessor();
IJavaCompletionProposal[] proposals = processor.getCorrections(context, new IProblemLocation[] { problem });
if (proposals == null || proposals.length == 0) {
return null;
}
if (applyFix) {
IBuffer buffer = liveEditUnit.getBuffer();
if (buffer != null) {
IDocument document = buffer instanceof IDocument ? (IDocument) buffer : new DocumentAdapter(buffer);
if (proposals[0] instanceof CUCorrectionProposal) {
CUCorrectionProposal proposal = (CUCorrectionProposal) proposals[0];
String preview = proposal.getPreviewContent();
System.out.println(document.getLength());
System.out.println(preview.length());
try {
document.addDocumentListener(this.documentListener);
document.replace(0, preview.length(), preview);
//proposal.apply(document);
liveEditUnit.getBuffer().setContents(proposal.getPreviewContent());
liveEditUnit.reconcile(ICompilationUnit.NO_AST, true, null, null);
} catch (BadLocationException e) {
e.printStackTrace();
}
}
}
return null;
} else {
List<JSONObject> jsonProposals = new ArrayList<JSONObject>(proposals.length);
for (IJavaCompletionProposal proposal : proposals) {
JSONObject jsonDescription = getDescription(proposal);
JSONObject jsonProposal = new JSONObject();
jsonProposal.put("description", jsonDescription);
jsonProposal.put("relevance", proposal.getRelevance());
jsonProposals.add(jsonProposal);
}
JSONObject result = new JSONObject();
result.put("quickfix", jsonProposals);
return result;
}
}
use of org.eclipse.jdt.core.IBuffer in project flux by eclipse.
the class JavaDocService method getJavadocFromSourceElement.
public String getJavadocFromSourceElement(IMember member) {
JavaDocCommentReader reader = null;
try {
IBuffer buffer = member.getOpenable().getBuffer();
if (buffer == null) {
return null;
}
ISourceRange javadocRange = member.getJavadocRange();
if (javadocRange != null) {
reader = new JavaDocCommentReader(buffer, javadocRange.getOffset(), javadocRange.getOffset() + javadocRange.getLength() - 1);
StringBuffer buf = new StringBuffer();
char[] charBuffer = new char[1024];
int count;
try {
while ((count = reader.read(charBuffer)) != -1) buf.append(charBuffer, 0, count);
} catch (IOException e) {
return null;
}
return buf.toString();
}
} catch (JavaModelException e) {
e.printStackTrace();
} finally {
if (reader != null)
reader.close();
}
return null;
}
use of org.eclipse.jdt.core.IBuffer in project che by eclipse.
the class JavadocContentAccess method internalGetContentReader.
/**
* Gets a reader for an IMember's Javadoc comment content from the source attachment.
* The content does contain only the text from the comment without the Javadoc leading star characters.
* Returns <code>null</code> if the member does not contain a Javadoc comment or if no source is available.
*
* @param member
* The member to get the Javadoc of.
* @return Returns a reader for the Javadoc comment content or <code>null</code> if the member
* does not contain a Javadoc comment or if no source is available
* @throws org.eclipse.jdt.core.JavaModelException
* is thrown when the elements javadoc can not be accessed
* @since 3.4
*/
private static Reader internalGetContentReader(IMember member) throws JavaModelException {
IBuffer buf = member.getOpenable().getBuffer();
if (buf == null) {
// no source attachment found
return null;
}
ISourceRange javadocRange = member.getJavadocRange();
if (javadocRange != null) {
JavaDocCommentReader reader = new JavaDocCommentReader(buf, javadocRange.getOffset(), javadocRange.getOffset() + javadocRange.getLength() - 1);
if (!containsOnlyInheritDoc(reader, javadocRange.getLength())) {
reader.reset();
return reader;
}
}
return null;
}
Aggregations