Search in sources :

Example 6 with IErlSelection

use of org.erlide.wrangler.refactoring.selection.IErlSelection in project erlide_eclipse by erlang.

the class MergeForAllRefactoring method checkFinalConditions.

@Override
public RefactoringStatus checkFinalConditions(final IProgressMonitor pm) throws CoreException, OperationCanceledException {
    final IErlSelection sel = GlobalParameters.getWranglerSelection();
    final IRefactoringRpcMessage message = run(sel);
    if (message.isSuccessful()) {
        changedFiles = message.getRefactoringChangeset();
        return new RefactoringStatus();
    }
    return RefactoringStatus.createFatalErrorStatus(message.getMessageString());
}
Also used : IRefactoringRpcMessage(org.erlide.wrangler.refactoring.backend.IRefactoringRpcMessage) RefactoringStatus(org.eclipse.ltk.core.refactoring.RefactoringStatus) IErlSelection(org.erlide.wrangler.refactoring.selection.IErlSelection)

Example 7 with IErlSelection

use of org.erlide.wrangler.refactoring.selection.IErlSelection in project erlide_eclipse by erlang.

the class MoveFunctionRefactoring method checkFinalConditions.

@Override
public RefactoringStatus checkFinalConditions(final IProgressMonitor pm) throws CoreException, OperationCanceledException {
    final IErlSelection sel = GlobalParameters.getWranglerSelection();
    IRefactoringRpcMessage message = run(sel);
    if (message.isSuccessful()) {
        changedFiles = message.getRefactoringChangeset();
        return new RefactoringStatus();
    } else if (message.getRefactoringState() == RefactoringState.QUESTION) {
        message = run2(sel);
        if (message.isSuccessful()) {
            changedFiles = message.getRefactoringChangeset();
            return new RefactoringStatus();
        }
        return RefactoringStatus.createFatalErrorStatus(message.getMessageString());
    } else {
        return RefactoringStatus.createFatalErrorStatus(message.getMessageString());
    }
}
Also used : IRefactoringRpcMessage(org.erlide.wrangler.refactoring.backend.IRefactoringRpcMessage) RefactoringStatus(org.eclipse.ltk.core.refactoring.RefactoringStatus) IErlSelection(org.erlide.wrangler.refactoring.selection.IErlSelection)

Example 8 with IErlSelection

use of org.erlide.wrangler.refactoring.selection.IErlSelection in project erlide_eclipse by erlang.

the class ProcessRelatedRefactoring method checkFinalConditions.

@Override
public RefactoringStatus checkFinalConditions(final IProgressMonitor pm) throws CoreException, OperationCanceledException {
    final IErlSelection sel = GlobalParameters.getWranglerSelection();
    final ProcessRpcMessage msg = checkUndecidables((IErlMemberSelection) sel);
    if (msg.isSuccessful()) {
        changedFiles = msg.getRefactoringChangeset();
        return new RefactoringStatus();
    } else if (msg.hasUndecidables()) {
        undecidables = msg.getMessageString();
        final IRefactoringRpcMessage message = run(sel);
        changedFiles = message.getRefactoringChangeset();
        return RefactoringStatus.createWarningStatus(getUndecidableWarningMessage());
    } else {
        return RefactoringStatus.createFatalErrorStatus(msg.getMessageString());
    }
}
Also used : IRefactoringRpcMessage(org.erlide.wrangler.refactoring.backend.IRefactoringRpcMessage) RefactoringStatus(org.eclipse.ltk.core.refactoring.RefactoringStatus) IErlSelection(org.erlide.wrangler.refactoring.selection.IErlSelection) ProcessRpcMessage(org.erlide.wrangler.refactoring.backend.internal.ProcessRpcMessage)

Example 9 with IErlSelection

use of org.erlide.wrangler.refactoring.selection.IErlSelection in project erlide_eclipse by erlang.

the class ExtractFunctionRefactoring method getWorkflowController.

@Override
public RefactoringWorkflowController getWorkflowController(final Shell shell) {
    return new RefactoringWorkflowController(shell) {

        @Override
        public void doRefactoring() {
            final IErlSelection sel = GlobalParameters.getWranglerSelection();
            IRefactoringRpcMessage message = run(sel);
            if (message.isSuccessful()) {
                changedFiles = message.getRefactoringChangeset();
                status = new RefactoringStatus();
            } else if (message.getRefactoringState() == RefactoringState.WARNING) {
                final boolean answer = !ask("Warning", message.getMessageString());
                if (answer) {
                    message = runAlternative(sel);
                    if (message.getRefactoringState() == RefactoringState.OK) {
                        status = new RefactoringStatus();
                    } else {
                        status = RefactoringStatus.createFatalErrorStatus(message.getMessageString());
                    }
                } else {
                    stop();
                }
            } else {
                status = RefactoringStatus.createFatalErrorStatus(message.getMessageString());
            }
        }
    };
}
Also used : IRefactoringRpcMessage(org.erlide.wrangler.refactoring.backend.IRefactoringRpcMessage) RefactoringWorkflowController(org.erlide.wrangler.refactoring.core.RefactoringWorkflowController) RefactoringStatus(org.eclipse.ltk.core.refactoring.RefactoringStatus) IErlSelection(org.erlide.wrangler.refactoring.selection.IErlSelection)

Example 10 with IErlSelection

use of org.erlide.wrangler.refactoring.selection.IErlSelection in project erlide_eclipse by erlang.

the class FoldLocalExpressionRefactoring method checkInitialConditions.

/**
 * Preprocessing the file(s), and finding the candidates to fold.
 */
@Override
public RefactoringStatus checkInitialConditions(final IProgressMonitor pm) throws CoreException, OperationCanceledException {
    final IErlSelection selection = GlobalParameters.getWranglerSelection();
    if (!(selection instanceof IErlMemberSelection && (selection.getKind() == SelectionKind.FUNCTION || selection.getKind() == SelectionKind.FUNCTION_CLAUSE))) {
        return RefactoringStatus.createFatalErrorStatus("Please select an expression!");
    }
    final IErlMemberSelection sel = (IErlMemberSelection) selection;
    ExpressionPosRpcMessage m = new ExpressionPosRpcMessage();
    m = (ExpressionPosRpcMessage) WranglerBackendManager.getRefactoringBackend().callWithParser(m, "fold_expr_by_loc_eclipse", "siixi", sel.getFilePath(), sel.getMemberRange().getStartLine(), sel.getMemberRange().getStartCol(), sel.getSearchPath(), GlobalParameters.getTabWidth());
    if (m.isSuccessful()) {
        syntaxTree = m.getSyntaxTree();
        positions = m.getPositionDefinitions(sel.getDocument());
        selectedPositions = new ArrayList<>();
    } else {
        return RefactoringStatus.createFatalErrorStatus(m.getMessageString());
    }
    return new RefactoringStatus();
}
Also used : IErlMemberSelection(org.erlide.wrangler.refactoring.selection.IErlMemberSelection) RefactoringStatus(org.eclipse.ltk.core.refactoring.RefactoringStatus) IErlSelection(org.erlide.wrangler.refactoring.selection.IErlSelection) ExpressionPosRpcMessage(org.erlide.wrangler.refactoring.backend.internal.ExpressionPosRpcMessage)

Aggregations

IErlSelection (org.erlide.wrangler.refactoring.selection.IErlSelection)22 RefactoringStatus (org.eclipse.ltk.core.refactoring.RefactoringStatus)19 IRefactoringRpcMessage (org.erlide.wrangler.refactoring.backend.IRefactoringRpcMessage)14 RefactoringWorkflowController (org.erlide.wrangler.refactoring.core.RefactoringWorkflowController)5 IErlMemberSelection (org.erlide.wrangler.refactoring.selection.IErlMemberSelection)5 ExpressionPosRpcMessage (org.erlide.wrangler.refactoring.backend.internal.ExpressionPosRpcMessage)4 OtpErlangTuple (com.ericsson.otp.erlang.OtpErlangTuple)2 WranglerException (org.erlide.wrangler.refactoring.exception.WranglerException)2 OtpErlangBoolean (com.ericsson.otp.erlang.OtpErlangBoolean)1 OtpErlangList (com.ericsson.otp.erlang.OtpErlangList)1 OtpErlangLong (com.ericsson.otp.erlang.OtpErlangLong)1 OtpErlangObject (com.ericsson.otp.erlang.OtpErlangObject)1 OtpErlangString (com.ericsson.otp.erlang.OtpErlangString)1 File (java.io.File)1 IOException (java.io.IOException)1 ArrayList (java.util.ArrayList)1 ExecutionException (org.eclipse.core.commands.ExecutionException)1 IFile (org.eclipse.core.resources.IFile)1 CoreException (org.eclipse.core.runtime.CoreException)1 Shell (org.eclipse.swt.widgets.Shell)1