Example usage for com.intellij.openapi.fileEditor OpenFileDescriptor getRangeMarker

List of usage examples for com.intellij.openapi.fileEditor OpenFileDescriptor getRangeMarker

Introduction

In this page you can find the example usage for com.intellij.openapi.fileEditor OpenFileDescriptor getRangeMarker.

Prototype

@Nullable
    public RangeMarker getRangeMarker() 

Source Link

Usage

From source file:org.eclipse.xtext.idea.execution.TraceBasedExceptionFilter.java

License:Open Source License

@Override
public Filter.Result applyFilter(final String line, final int textEndOffset) {
    final Filter.Result result = super.applyFilter(line, textEndOffset);
    boolean _equals = Objects.equal(result, null);
    if (_equals) {
        return null;
    }/*from  w w  w  .  ja  va  2 s.  c  o m*/
    List<Filter.ResultItem> _resultItems = result.getResultItems();
    final Function1<Filter.ResultItem, Boolean> _function = (Filter.ResultItem it) -> {
        HyperlinkInfo _hyperlinkInfo = it.getHyperlinkInfo();
        return Boolean.valueOf((!Objects.equal(_hyperlinkInfo, null)));
    };
    final Filter.ResultItem resultItem = IterableExtensions.<Filter.ResultItem>findFirst(_resultItems,
            _function);
    final HyperlinkInfo hyperlinkInfo = resultItem.getHyperlinkInfo();
    if ((hyperlinkInfo instanceof FileHyperlinkInfo)) {
        final OpenFileDescriptor descriptor = ((FileHyperlinkInfo) hyperlinkInfo).getDescriptor();
        boolean _notEquals = (!Objects.equal(descriptor, null));
        if (_notEquals) {
            VirtualFile _file = descriptor.getFile();
            Project _project = descriptor.getProject();
            final VirtualFileInProject fileInProject = new VirtualFileInProject(_file, _project);
            boolean _isGenerated = this.traceProvider.isGenerated(fileInProject);
            if (_isGenerated) {
                final IIdeaTrace trace = this.traceProvider.getTraceToSource(fileInProject);
                final RangeMarker rangeMarker = descriptor.getRangeMarker();
                if (((!Objects.equal(trace, null)) && (!Objects.equal(rangeMarker, null)))) {
                    Application _application = ApplicationManager.getApplication();
                    final Computable<Integer> _function_1 = () -> {
                        int _xblockexpression = (int) 0;
                        {
                            FileDocumentManager _instance = FileDocumentManager.getInstance();
                            VirtualFile _file_1 = descriptor.getFile();
                            final Document document = _instance.getDocument(_file_1);
                            int _startOffset = rangeMarker.getStartOffset();
                            final int lineNumber = document.getLineNumber(_startOffset);
                            _xblockexpression = DocumentUtil.getFirstNonSpaceCharOffset(document, lineNumber);
                        }
                        return Integer.valueOf(_xblockexpression);
                    };
                    final Integer nonSpaceCharOffset = _application.<Integer>runReadAction(_function_1);
                    TextRegion _textRegion = new TextRegion((nonSpaceCharOffset).intValue(), 0);
                    final ILocationInVirtualFile location = trace.getBestAssociatedLocation(_textRegion);
                    boolean _notEquals_1 = (!Objects.equal(location, null));
                    if (_notEquals_1) {
                        VirtualFileInProject _platformResource = location.getPlatformResource();
                        Project _project_1 = _platformResource.getProject();
                        VirtualFileInProject _platformResource_1 = location.getPlatformResource();
                        VirtualFile _file_1 = _platformResource_1.getFile();
                        ITextRegionWithLineInformation _textRegion_1 = location.getTextRegion();
                        int _lineNumber = _textRegion_1.getLineNumber();
                        final OpenFileDescriptor sourceFileDescriptor = new OpenFileDescriptor(_project_1,
                                _file_1, _lineNumber, 0);
                        final OpenFileHyperlinkInfo linkInfo = new OpenFileHyperlinkInfo(sourceFileDescriptor);
                        int _highlightStartOffset = resultItem.getHighlightStartOffset();
                        int _highlightEndOffset = resultItem.getHighlightEndOffset();
                        TextAttributes _highlightAttributes = resultItem.getHighlightAttributes();
                        return new Filter.Result(_highlightStartOffset, _highlightEndOffset, linkInfo,
                                _highlightAttributes);
                    }
                }
            }
        }
    }
    return result;
}