Search in sources :

Example 1 with DocumentAdapter

use of org.eclipse.jdt.internal.core.DocumentAdapter 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;
}
Also used : DocumentAdapter(org.eclipse.jdt.internal.core.DocumentAdapter) IDocument(org.eclipse.jface.text.IDocument) IBuffer(org.eclipse.jdt.core.IBuffer)

Example 2 with DocumentAdapter

use of org.eclipse.jdt.internal.core.DocumentAdapter 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;
}
Also used : JavaContentAssistInvocationContext(org.eclipse.jdt.ui.text.java.JavaContentAssistInvocationContext) ArrayList(java.util.ArrayList) DocumentAdapter(org.eclipse.jdt.internal.core.DocumentAdapter) Point(org.eclipse.swt.graphics.Point) RelevanceSorter(org.eclipse.jdt.internal.ui.text.java.RelevanceSorter) IBuffer(org.eclipse.jdt.core.IBuffer) TextViewer(org.eclipse.che.jdt.javaeditor.TextViewer) ICompletionProposal(org.eclipse.che.jface.text.contentassist.ICompletionProposal) JavaAllCompletionProposalComputer(org.eclipse.jdt.internal.ui.text.java.JavaAllCompletionProposalComputer) IDocument(org.eclipse.jface.text.IDocument)

Example 3 with DocumentAdapter

use of org.eclipse.jdt.internal.core.DocumentAdapter 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;
    }
}
Also used : AssistContext(org.eclipse.jdt.internal.ui.text.correction.AssistContext) QuickFixProcessor(org.eclipse.jdt.internal.ui.text.correction.QuickFixProcessor) ArrayList(java.util.ArrayList) DocumentAdapter(org.eclipse.jdt.internal.core.DocumentAdapter) IInvocationContext(org.eclipse.jdt.ui.text.java.IInvocationContext) IJavaCompletionProposal(org.eclipse.jdt.ui.text.java.IJavaCompletionProposal) IBuffer(org.eclipse.jdt.core.IBuffer) CUCorrectionProposal(org.eclipse.jdt.ui.text.java.correction.CUCorrectionProposal) JSONObject(org.json.JSONObject) IDocument(org.eclipse.jface.text.IDocument) BadLocationException(org.eclipse.jface.text.BadLocationException)

Example 4 with DocumentAdapter

use of org.eclipse.jdt.internal.core.DocumentAdapter in project che by eclipse.

the class CodeAssist method computeProposals.

public Proposals computeProposals(IJavaProject project, String fqn, int offset, final String content) throws JavaModelException {
    WorkingCopyOwner copyOwner = new WorkingCopyOwner() {

        @Override
        public IBuffer createBuffer(ICompilationUnit workingCopy) {
            return new org.eclipse.jdt.internal.ui.javaeditor.DocumentAdapter(workingCopy, workingCopy.getPath(), content);
        }
    };
    ICompilationUnit compilationUnit;
    IType type = project.findType(fqn);
    if (type == null) {
        return null;
    }
    if (type.isBinary()) {
        compilationUnit = type.getClassFile().getWorkingCopy(copyOwner, null);
    } else {
        compilationUnit = type.getCompilationUnit().getWorkingCopy(copyOwner, null);
    }
    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 convertProposals(offset, compilationUnit, viewer, proposals);
}
Also used : ICompilationUnit(org.eclipse.jdt.core.ICompilationUnit) JavaContentAssistInvocationContext(org.eclipse.jdt.ui.text.java.JavaContentAssistInvocationContext) TemplateCompletionProposalComputer(org.eclipse.jdt.internal.ui.text.java.TemplateCompletionProposalComputer) ArrayList(java.util.ArrayList) DocumentAdapter(org.eclipse.jdt.internal.core.DocumentAdapter) Point(org.eclipse.swt.graphics.Point) RelevanceSorter(org.eclipse.jdt.internal.ui.text.java.RelevanceSorter) IBuffer(org.eclipse.jdt.core.IBuffer) IType(org.eclipse.jdt.core.IType) TextViewer(org.eclipse.che.jdt.javaeditor.TextViewer) WorkingCopyOwner(org.eclipse.jdt.core.WorkingCopyOwner) ICompletionProposal(org.eclipse.che.jface.text.contentassist.ICompletionProposal) JavaAllCompletionProposalComputer(org.eclipse.jdt.internal.ui.text.java.JavaAllCompletionProposalComputer) IDocument(org.eclipse.jface.text.IDocument)

Aggregations

IBuffer (org.eclipse.jdt.core.IBuffer)4 DocumentAdapter (org.eclipse.jdt.internal.core.DocumentAdapter)4 IDocument (org.eclipse.jface.text.IDocument)4 ArrayList (java.util.ArrayList)3 TextViewer (org.eclipse.che.jdt.javaeditor.TextViewer)2 ICompletionProposal (org.eclipse.che.jface.text.contentassist.ICompletionProposal)2 JavaAllCompletionProposalComputer (org.eclipse.jdt.internal.ui.text.java.JavaAllCompletionProposalComputer)2 RelevanceSorter (org.eclipse.jdt.internal.ui.text.java.RelevanceSorter)2 JavaContentAssistInvocationContext (org.eclipse.jdt.ui.text.java.JavaContentAssistInvocationContext)2 Point (org.eclipse.swt.graphics.Point)2 ICompilationUnit (org.eclipse.jdt.core.ICompilationUnit)1 IType (org.eclipse.jdt.core.IType)1 WorkingCopyOwner (org.eclipse.jdt.core.WorkingCopyOwner)1 AssistContext (org.eclipse.jdt.internal.ui.text.correction.AssistContext)1 QuickFixProcessor (org.eclipse.jdt.internal.ui.text.correction.QuickFixProcessor)1 TemplateCompletionProposalComputer (org.eclipse.jdt.internal.ui.text.java.TemplateCompletionProposalComputer)1 IInvocationContext (org.eclipse.jdt.ui.text.java.IInvocationContext)1 IJavaCompletionProposal (org.eclipse.jdt.ui.text.java.IJavaCompletionProposal)1 CUCorrectionProposal (org.eclipse.jdt.ui.text.java.correction.CUCorrectionProposal)1 BadLocationException (org.eclipse.jface.text.BadLocationException)1