Search in sources :

Example 1 with CompilerErrorItem

use of com.facebook.buck.intellij.ideabuck.ui.utils.CompilerErrorItem in project buck by facebook.

the class BuckEventsConsumer method buildTargetErrorNode.

private BuckTreeNodeTarget buildTargetErrorNode(String target, List<String> errorMessages) {
    BuckTreeNodeTarget targetNode = new BuckTreeNodeTarget(mCurrentBuildRootElement, target);
    for (String currentError : errorMessages) {
        ErrorExtractor errorExtractor = new ErrorExtractor(currentError);
        ImmutableList<CompilerErrorItem> errorItems = errorExtractor.getErrors();
        BuckTreeNodeFileError currentFileErrorNode = null;
        String currentFilePath = "";
        for (CompilerErrorItem currentErrorItem : errorItems) {
            if (!currentErrorItem.getFilePath().equals(currentFilePath)) {
                if (currentFileErrorNode != null) {
                    // Add to parent
                    targetNode.addFileError(currentFileErrorNode);
                }
                // Create the new node, for the new file
                currentFileErrorNode = new BuckTreeNodeFileError(targetNode, currentErrorItem.getFilePath(), currentErrorItem);
                currentFilePath = currentErrorItem.getFilePath();
            } else {
                currentFileErrorNode.addError(currentErrorItem);
            }
        }
        if (currentFileErrorNode != null) {
            // Add the leftovers
            targetNode.addFileError(currentFileErrorNode);
        }
    }
    return targetNode;
}
Also used : CompilerErrorItem(com.facebook.buck.intellij.ideabuck.ui.utils.CompilerErrorItem) ErrorExtractor(com.facebook.buck.intellij.ideabuck.ui.utils.ErrorExtractor) BuckTreeNodeFileError(com.facebook.buck.intellij.ideabuck.ui.tree.BuckTreeNodeFileError) BuckTreeNodeTarget(com.facebook.buck.intellij.ideabuck.ui.tree.BuckTreeNodeTarget)

Example 2 with CompilerErrorItem

use of com.facebook.buck.intellij.ideabuck.ui.utils.CompilerErrorItem in project buck by facebook.

the class BuckEventsConsumer method consumeBuildEnd.

@Override
public void consumeBuildEnd(final long timestamp) {
    mMainBuildEndTimestamp = timestamp;
    float duration = (mMainBuildEndTimestamp - mMainBuildStartTimestamp) / 1000;
    final String message = "Build ended, took " + duration + " seconds!";
    int errors = 0;
    int warnings = 0;
    for (String cTarget : mErrors.keySet()) {
        List<String> currentErrorMessages = mErrors.get(cTarget);
        for (String currentErrorMessage : currentErrorMessages) {
            ErrorExtractor errorExtractor = new ErrorExtractor(currentErrorMessage);
            for (CompilerErrorItem currentErrorItem : errorExtractor.getErrors()) {
                if (currentErrorItem.getType() == CompilerErrorItem.Type.ERROR) {
                    errors++;
                } else {
                    warnings++;
                }
            }
        }
    }
    String errorsMessage = "";
    if (errors != 0) {
        errorsMessage = "Found " + errors + " errors";
    }
    if (warnings != 0) {
        if (errors != 0) {
            errorsMessage += " and " + warnings + " warnings";
        } else {
            errorsMessage = "Found " + warnings + " warnings";
        }
    }
    if (errorsMessage.length() > 0) {
        errorsMessage += "!";
    }
    final String errorsMessageToUse = errorsMessage;
    //set progress to 100%
    consumeBuckBuildProgressUpdate(timestamp, 1f);
    if (errorsMessageToUse.length() > 0) {
        clearDisplay();
        BuckTreeNodeDetail errorsMessageNode = new BuckTreeNodeDetail(BuckEventsConsumer.this.mCurrentBuildRootElement, BuckTreeNodeDetail.DetailType.ERROR, errorsMessageToUse);
        BuckEventsConsumer.this.mCurrentBuildRootElement.addChild(errorsMessageNode);
        // Display errors
        BuckEventsConsumer.this.displayErrors();
    }
    BuckEventsConsumer.this.mBuildProgress.setDetail(message);
    ApplicationManager.getApplication().invokeLater(new Runnable() {

        @Override
        public void run() {
            BuckEventsConsumer.this.mTreeModel.reload();
        }
    });
}
Also used : CompilerErrorItem(com.facebook.buck.intellij.ideabuck.ui.utils.CompilerErrorItem) ErrorExtractor(com.facebook.buck.intellij.ideabuck.ui.utils.ErrorExtractor) BuckTreeNodeDetail(com.facebook.buck.intellij.ideabuck.ui.tree.BuckTreeNodeDetail)

Aggregations

CompilerErrorItem (com.facebook.buck.intellij.ideabuck.ui.utils.CompilerErrorItem)2 ErrorExtractor (com.facebook.buck.intellij.ideabuck.ui.utils.ErrorExtractor)2 BuckTreeNodeDetail (com.facebook.buck.intellij.ideabuck.ui.tree.BuckTreeNodeDetail)1 BuckTreeNodeFileError (com.facebook.buck.intellij.ideabuck.ui.tree.BuckTreeNodeFileError)1 BuckTreeNodeTarget (com.facebook.buck.intellij.ideabuck.ui.tree.BuckTreeNodeTarget)1