private static string ExtractFileText(FullPath filepath, FilePositionSpan filePositionSpan) { var path = filepath.Value; if (!File.Exists(path)) { return(string.Format("File not found: {0}", path)); } var text = File.ReadAllText(path); var offset = filePositionSpan.Position; var length = Math.Min(80, filePositionSpan.Length); if (offset < 0) { return("<Invalid offset>"); } if (length < 0) { return("<Invalid length>"); } if (offset + length > text.Length) { return("<Invalid span>"); } var extract = text.Substring(offset, length); return(extract); }
public FileExtract FilePositionSpanToFileExtract(FilePositionSpan filePositionSpan, int maxTextExtent) { maxTextExtent = Math.Max(maxTextExtent, filePositionSpan.Length); var spanStart = filePositionSpan.Position; var spanEnd = spanStart + filePositionSpan.Length; var lineStart = GetLineStart(spanStart, maxTextExtent); var lineEnd = GetLineEnd(spanEnd, maxTextExtent); // prefix - span - suffix var extractLength = lineEnd - lineStart; var spanLength = filePositionSpan.Length; Invariants.Assert(spanLength <= extractLength); var prefixLength = Math.Min(spanStart - lineStart, maxTextExtent - spanLength); Invariants.Assert(prefixLength >= 0); var suffixLength = Math.Min(lineEnd - spanEnd, maxTextExtent - spanLength - prefixLength); Invariants.Assert(suffixLength >= 0); lineStart = spanStart - prefixLength; lineEnd = spanEnd + suffixLength; var text = GetText(lineStart, lineEnd - lineStart); var lineCol = GetLineColumn(spanStart); return(new FileExtract { Text = text, Offset = lineStart, Length = lineEnd - lineStart, LineNumber = lineCol.Item1, ColumnNumber = lineCol.Item2 }); }
public FlatFilePositionViewModel( ICodeSearchController controller, TreeViewItemViewModel parentViewModel, DirectoryEntry directoryEntry, FileEntry fileEntry, FilePositionSpan matchPosition) : base(controller, parentViewModel, fileEntry.Data != null) { _directoryEntry = directoryEntry; _fileEntry = fileEntry; _matchPosition = matchPosition; }
public FileExtract FilePositionSpanToFileExtract(FilePositionSpan filePositionSpan, int maxTextExtent) { var lineStart = GetLineStart(filePositionSpan.Position, maxTextExtent); var lineEnd = GetLineEnd(filePositionSpan.Position + filePositionSpan.Length, maxTextExtent); var text = GetText(lineStart, lineEnd - lineStart); var lineCol = GetLineColumn(filePositionSpan.Position); return(new FileExtract { Text = text, Offset = lineStart, Length = lineEnd - lineStart, LineNumber = lineCol.Item1, ColumnNumber = lineCol.Item2 }); }
public FilePositionViewModel(ISourceExplorerViewModelHost host, FileEntryViewModel parentFile, FilePositionSpan position) : base(host, parentFile, false) { _parentFile = parentFile; _position = position; }
public FilePositionViewModel(ICodeSearchController controller, FileEntryViewModel parentFile, FilePositionSpan matchPosition) : base(controller, parentFile, false) { _parentFile = parentFile; _matchPosition = matchPosition; }
private static string ExtractFileText(DirectoryEntry chromiumEntry, FileSystemEntry fileSystemEntry, FilePositionSpan filePositionSpan) { var path = PathHelpers.CombinePaths(chromiumEntry.Name, fileSystemEntry.Name); if (!File.Exists(path)) { return(string.Format("File not found: {0}", path)); } var text = File.ReadAllText(path); var offset = filePositionSpan.Position; var length = Math.Min(80, filePositionSpan.Length); if (offset < 0) { return("<Invalid offset>"); } if (length < 0) { return("<Invalid length>"); } if (offset + length > text.Length) { return("<Invalid span>"); } var extract = text.Substring(offset, length); return(extract); }
public FileExtract FilePositionSpanToFileExtract(FilePositionSpan filePositionSpan, int maxTextExtent) { return(_impl.FilePositionSpanToFileExtract(filePositionSpan, maxTextExtent)); }