List of usage examples for com.intellij.openapi.fileEditor OpenFileDescriptor getRangeMarker
@Nullable
public RangeMarker getRangeMarker()
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; }