PrestoSoft Blog :: Home

Sunday, November 26, 2023

ExamDiff Pro 15.0: Tree Mode in Directory Comparison

ExamDiff Pro 15.0 will introduce perhaps our biggest-ever change to directory comparison, as well as one of our most requested features ever: a Tree Mode in which comparison results are displayed recursively in a tree view, with subdirectories that can be expanded and collapsed (just like in Windows Explorer). This is in contrast to ExamDiff Pro's old behavior, in which subdirectories were either ignored or had all of their contents displayed all together (we now call this Flat Mode).

Starting with version 15.0, Tree Mode will be the default mode for directory comparison, but Flat Mode will continue to be available as an option (with all of its various subdirectory handling modes working exactly as before). We think you'd prefer Tree Mode in most circumstances, though!

Let's illustrate Tree Mode with an example. Here's a directory comparison session in the old Flat Mode (with recursive comparison enabled). Note that all files in all subdirectories within this comparison session are displayed together, with a Relative Path column indicating the path (relative to root) of each nested file:

Now let's see what it looks like in Tree Mode. We can switch modes either with the View | Toggle Tree Mode command or in the new Directory comparison mode section of the Options | Directory Comparison panel:

After switching to Tree Mode, here's what the comparison looks like. It's more like the way Windows Explorer displays directories, with collapsed folders that can be expanded to show the contents within:

Let's expand a few folders (by clicking the triangles to the left of them):

Note that when you expand a directory, you can also see a count of how many items within it are hidden either by comparison filters (that prevent certain files and directories from being compared) or view filters (that filter out what items are displayed). You can always see the total number of items filtered out by clicking on the filter icon(s) at the bottom of the comparison panes. You can also dig deeper into what items are being filtered out in a given directory by double-clicking on the "X item(s) are hidden by comparison/view filters" message, which opens out the Filtered Out Files and Directories dialog:

Expanding and collapsing directories in Tree Mode works as you would expect, and the expanded/collapsed state of directories is synchronized between the two panes (so expanding a directory in one pane will also expand it in the other pane). There are also handy Expand All and Collapse All commands, that are pretty self-explanatory, as well as a neat Expand to Differences command, that expands directories just enough so that all differences are visible, and no further.

The left diff bar displays only those diff blocks that are visible (in other words, both their start and end points are visible and not hidden inside a collapsed directory). Meanwhile, the diff combo box at the top shows all diff blocks, including ones that may not be visible in the current state – clicking on a diff block to navigate to it will expand directories appropriately so that it is visible. Likewise, the right color ("minimap") bars represent the fully-expanded view, and clicking anywhere within the color bars will navigate to that location within the directory pane and expand directories as needed so that the chosen location is visible.

All file operations work the same in Tree Mode as in Flat Mode, so you can copy over files and directories, delete items, etc, to your heart's content. Basically, aside from the nested tree view of directories, every other feature of directory comparison should work exactly the same way that you're used to.

Tree Mode even has support for interactive HTML diff reports. So when we create an HTML diff report now (from Directories | Report | Save HTML Diff Report...), it will also display results in a nested tree view, with directories that you can expand and collapse:

Labels: , ,

Saturday, August 12, 2023

ExamDiff Pro 14.0 Released!

We are pleased to announce that we've released ExamDiff Pro 14.0.

Here's what's new in this version:
  • Ability to match file structures (functions, classes, etc.) for text file comparison
  • Ability to detect programming language for files without supported extensions and clipboard contents
  • Portable version
  • Language support for Typescript
  • Language support for JSON
  • Document Type pane in the text comparison/merge status bar
  • Show preview of clipboard contents on mouseover in the Compare dialog
  • Ability to switch between different code pages to display byte codes in binary comparison
  • Option to not show Compare dialog on startup
  • Text comparison/merge status bar usability improvements
  • The width of the address column in binary comparison views is based on file sizes
  • More intuitive behavior of the "Run in new instance" option in the Compare dialog
  • Better support of Unicode characters in text comparison
  • Better syntax tree parsing performance for large files
  • When "Retain file/directory pair" in Options | Global is used, files/directories are now populated for all three modes: file and directory comparison and file merge
  • Better startup and comparison performance
You can find more details about ExamDiff Pro 14.0, as well as a download link, here, and the complete list of changes here.

Labels: , ,

Friday, April 21, 2023

ExamDiff Pro 14.0 Beta

We are pleased to announce a public beta program for ExamDiff Pro 14.0.
You can download ExamDiff Pro 14.0 Beta for 32-bit Windows and for 64-bit Windows. The upgrade is free for all users who purchased ExamDiff Pro less than 12 months before this release (or more, depending on the number of maintenance years purchased).

Here's what's new in ExamDiff Pro 14.0 (as compared to 13.0):

Matching File Structures for Comparison

ExamDiff Pro 14.0 introduces a new advanced option: the ability to match file structures in text comparison. With this option turned on, ExamDiff Pro will automatically create links between the start and end lines of structures such as functions, classes, etc, that match between the two files, using a heuristic based on the structure "signature" (i.e. function signature, class signature, and so on) to determine whether two structures are "matching".

For more information, see our blog entry about structure comparison.

Automatic Programming Language Detection

Another much-requested feature is automatically detecting document types based on file content. In other words, ExamDiff Pro will now automatically detect programming languages for source code files, in turn enabling features like syntax highlighting and the scope bar. This feature recognizes all built-in document types in ExamDiff Pro and is powered by the open-source Guesslang machine-learning library.

For more information, see our blog entry about programming language detection.

Portable Version

> Version 14.0 introduces the ability to run ExamDiff Pro as a portable application. This means that you'll be able to run it without installing it, and without modifying your Windows configuration in any way (i.e. without moving any files anywhere or making any changes to your Windows Registry). Portable mode can be useful in situations in which you want to run ExamDiff Pro on a computer that is not yours, if you want to run ExamDiff Pro off a USB drive, etc..

For more information, see our blog entry about programming the portable version.

Other Additions In ExamDiff Pro 14.0
  • Language support for Typescript
  • Language support for JSON
  • Document Type pane in the text comparison/merge status bar
  • Show preview of clipboard contents on mouseover in the Compare dialog
  • Ability to switch between different code pages to display byte codes in binary comparison
  • Text comparison/merge status bar usability improvements
  • The width of the address column in binary comparison views is based on file sizes
  • More intuitive behavior of the "Run in new instance" option in the Compare dialog
  • Multiple bug fixes

Labels: , ,

Friday, January 06, 2023

ExamDiff Pro 14.0: Portable Version

Version 14.0 will introduce the ability to run ExamDiff Pro as a portable application. This means that you'll be able to run it without installing it, and without modifying your Windows configuration in any way (i.e. without moving any files anywhere or making any changes to your Windows Registry). Portable mode can be useful in situations in which you want to run ExamDiff Pro on a computer that is not yours, if you want to run ExamDiff Pro off a USB drive, etc.

The portable version of ExamDiff Pro will be a separate ZIP file that you download separately from the regular, non-portable version. Here's what the contents of this ZIP file look like:

The portable version of ExamDiff Pro supports all of the same features as the regular version of ExamDiff Pro except for the Windows Explorer Shell extension, which requires installation to function.

You can tell if you are currently running the portable version of ExamDiff Pro from the Help | About dialog:

Labels: , ,

Wednesday, January 04, 2023

ExamDiff Pro 14.0: Automatic Programming Language Detection

ExamDiff Pro 14.0 will introduce a much-requested feature: automatically detecting document types based on file content. In other words, ExamDiff Pro will now automatically detect programming languages for source code files, in turn enabling features like syntax highlighting and the scope bar. This feature works for all built-in document types in ExamDiff Pro and is powered by the the open-source Guesslang machine-learning library.

Automatic document type detection is turned on by default and can be toggled in Options | Document types:

Now, if we paste some TypeScript code into a blank comparison window and it will automatically get detected as TypeScript, with syntax highlighting and scope bar features enabled:

More precisely, auto-detection will happen in the following situations (when the Automatically detect file type for unknown extensions option is enabled):
  • a file is compared either without a extension or with an extension that doesn't correspond to any known ExamDiff Pro doctype
  • a comparison is initiated from clipboard contents
  • text is pasted into a comparison window from the clipboard
Note that plain-text files (or any other files that Guesslang isn't sure about) will be auto-detected as the Default/Plain Text doctype, which disables features like syntax highlighting. This means that for files that aren't source code, ExamDiff Pro will continue to work as usual even with doctype auto-detection turned on.

Even if you have disabled the Automatically detect file type for unknown extensions option, you can also manually trigger doctype auto-detection at any time by selecting Set Document Type | Auto Detect from the context menu.

Lastly, note that this feature is already enabled in DiffNow, our free online file comparison tool powered by ExamDiff Pro. Simply paste any source code into it and DiffNow will auto-detect the doctype during comparison.

Labels: , , ,