public void SetInputSource(string path, ISourceLineStatistics line, ISourceLinesQueryResult lines) { Caption = $"Hot Lines - {Path.GetFileName(path)}"; ClearEditor(); CreateEditor(path); _textView.SetCaretPos((int)line.StartLine, (int)line.StartColumn); _windowControl.View.Content = _textViewHost; new HotLineAdornment(_textViewHost.TextView, line, lines); }
public HotLineAdornment(IWpfTextView view, ISourceLineStatistics line, ISourceLinesQueryResult queryResult) { _view = view ?? throw new ArgumentNullException(nameof(view)); Foo(line, queryResult); _layer = view.GetAdornmentLayer("HotLineAdornment"); _view.LayoutChanged += OnLayoutChanged; _pen = new Pen(Brushes.Blue, 0.5); _pen.Freeze(); }
public void ShowSourceFile(ISession session, ISourceLineStatistics line, ISourceLinesQueryResult lines) { var path = session.GetSourceFilePath(line.SourceFileId); if (string.IsNullOrEmpty(path)) { ShowMessage(MessageDialogType.Warning, "Source file is missing"); return; } if (!File.Exists(Path.GetFullPath(path))) { if (ShowMessage(MessageDialogType.Question, "Source file not found. Would you like to locate it yourself?") == 6) // Yes { var fileName = Path.GetFileName(path); using (var openFileDialog = new OpenFileDialog { Filter = $"{fileName}|{fileName}" }) { if (openFileDialog.ShowDialog() == DialogResult.OK) { path = openFileDialog.FileName; session.SetSourceFilePath(line.SourceFileId, path); } else { return; } } } else { return; } } var x = GetToolWindow <HotLinesToolWindow>(); x.SetInputSource(path, line, lines); x.Show(); }
private void Foo(ISourceLineStatistics lineToShow, ISourceLinesQueryResult queryResult) { var fileId = lineToShow.SourceFileId; _linesToAdorn = new List <LineData>(); foreach (var line in queryResult.Lines.Where(l => l.SourceFileId == fileId)) { var exists = false; foreach (var ld in _linesToAdorn) { if (ld.EndColumn == line.EndColumn && ld.EndLine == line.EndLine && ld.StartColumn == line.StartColumn && ld.StartLine == line.StartLine) { exists = true; ld.Value += GetValue(queryResult.StatisticsType, queryResult.Inclusive, line); break; } } if (exists == false) { _linesToAdorn.Add(new LineData { StartLine = line.StartLine, StartColumn = line.StartColumn, EndLine = line.EndLine, EndColumn = line.EndColumn, Value = GetValue(queryResult.StatisticsType, queryResult.Inclusive, line) }); } } var maxValue = _linesToAdorn.Max(data => data.Value); foreach (var ld in _linesToAdorn) { ld.Intensity = ld.Value * 100.0 / maxValue; } }