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;
      Debug.Assert(spanLength <= extractLength);
      var prefixLength = Math.Min(spanStart - lineStart, maxTextExtent - spanLength);
      Debug.Assert(prefixLength >= 0);
      var suffixLength = Math.Min(lineEnd - spanEnd ,maxTextExtent - spanLength - prefixLength);
      Debug.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 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
              };
        }
Exemple #3
0
 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 FilePositionViewModel(ICodeSearchController controller, FileEntryViewModel parentFile, FilePositionSpan matchPosition)
   : base(controller, parentFile, false) {
   _parentFile = parentFile;
   _matchPosition = matchPosition;
 }
 public FilePositionViewModel(ISourceExplorerViewModelHost host, FileEntryViewModel parentFile, FilePositionSpan position)
     : base(host, parentFile, false)
 {
     _parentFile = parentFile;
       _position = position;
 }
 public FileExtract FilePositionSpanToFileExtract(FilePositionSpan filePositionSpan, int maxTextExtent) {
   return _impl.FilePositionSpanToFileExtract(filePositionSpan, maxTextExtent);
 }
Exemple #7
0
 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;
 }