Skip to content

Enable text-selection in assembly views#55

Merged
Austin-Lamb merged 5 commits into
microsoft:mainfrom
jonwis:agents/enable-text-selection-diff-viewer
Jul 14, 2026
Merged

Enable text-selection in assembly views#55
Austin-Lamb merged 5 commits into
microsoft:mainfrom
jonwis:agents/enable-text-selection-diff-viewer

Conversation

@jonwis

@jonwis jonwis commented Jun 2, 2026

Copy link
Copy Markdown
Member

Why is this change being made?

Selecting arbitrary text from assembly views is super useful when trying to find where the changes come from.

image

Briefly summarize what changed

Replaced the built-in DiffView.Wpf control with a FlowDocument built from the same diff'd content. Same UI, now with sub-line selection.

Also fixed a number of static analysis warnings.

How was the change tested?

  • Existing tests pass
  • Selfhost walking around various binaries

PR Checklist

  • Contributor License Agreement (CLA) has been signed.
  • Changes have been validated
  • Documentation updated. Please add or update any docs in the repo as necessary.

Jon Wiswall and others added 2 commits June 2, 2026 15:24
Merge microsoft/SizeBench main branch. Resolve conflicts:
- Adopt central package management (Directory.Packages.props)
- Keep DiffPlex (core) instead of DiffPlex.Wpf for FlowDocument diff viewer
- Take upstream's static method and range operator fixes (matching our changes)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@jonwis
jonwis force-pushed the agents/enable-text-selection-diff-viewer branch from ff5c491 to 5ad3cfe Compare June 2, 2026 22:39
jonwis added a commit to jonwis/SizeBench that referenced this pull request Jun 11, 2026
@Austin-Lamb

Copy link
Copy Markdown
Collaborator

I've finally gotten the pipeline clean and am trying this one locally - I see that it results in line wrapping that feels like it degrades the ability to scroll the code, so I'm going to try to tweak that to keep it from wrapping.

Austin-Lamb and others added 3 commits July 13, 2026 16:36
…o elements in it - a gutter with line numbers as well as the FlowDocument with the disassembly text lines.

This way we don't lose the line numbers that DiffPlex.Wpf had, and they also still remain out of the text when copying.
@Austin-Lamb
Austin-Lamb merged commit 8d88486 into microsoft:main Jul 14, 2026
1 check passed
jonwis added a commit to jonwis/SizeBench that referenced this pull request Jul 14, 2026
Brings PR microsoft#56 up to date with main (microsoft#55, microsoft#57, microsoft#58 incl. the DIA update and
net8->net10 upgrade). Conflict resolutions:
- DIAAdapter: keep the loadFromSource delegate (symbol-server path) but route
  the PDB path through main's new prefetching loadDataFromPdbEx on IDiaDataSourceEx2.
- msdia140.dll: keep main's updated checked-in binary (needed for IDiaDataSourceEx2)
  and layer PR microsoft#56's symsrv.dll drop on top for symbol-server support.
- Directory.Packages.props / GUI.csproj: union of both sides, newer versions win.
- IDE0031: use C# 14 null-conditional assignment for _appSettings?.UseSymbolServer.
jonwis added a commit to jonwis/SizeBench that referenced this pull request Jul 14, 2026
Bring the disassembly zoom / selectable-diff QoL branch up to date with main's
.NET 10 upgrade and microsoft#55's new SelectableDiffViewer control.

Conflict resolutions:
- TwoStringsToDiffViewerUIConverter: return main's SelectableDiffViewer but keep
  PR microsoft#54's zoom-percent parsing (values[2]), passing it through a new
  SelectableDiffViewer(oldText, newText, zoomPercent) overload.
- SelectableDiffViewer: honor zoomPercent by scaling the effective font size
  everywhere DiffFontSize was used; expose EffectiveFontSize for unit testing.
- Test files: adopt main's modern MSTest 4 assertions (ThrowsExactly,
  AreSequenceEqual) while preserving PR microsoft#54's FilteredSymbolDiffs coverage and
  the zoom font-size test.

Full solution test suite: 1,110 passed / 0 failed.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: dfd40c62-1c34-4d1e-affc-7c9177d684bf
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants