Differon

Version 0.7.30
Build Date: June 4, 2025

Project Information

Author: Ron Thomas
Email: [email protected]
GitHub: https://github.com/wolfdenpublishing/differon

Table of Contents

Overview

Differon is a specialized file comparison tool designed specifically for comparing written text documents such as prose, articles, stories, and other natural language content. Unlike traditional diff tools that are optimized for source code, Differon uses natural language processing techniques to provide meaningful comparisons that respect the structure and flow of written text.

Key Features:

Getting Started

Interface Overview

The Differon interface consists of several key components:

Main interface showing all major components

The main window is divided into:

Loading Documents

There are several ways to load documents into Differon:

Document loading buttons in the toolbar
  1. Click the folder icon in either the left or right pane's toolbar
  2. Drag and drop files directly onto either document pane
  3. Paste from clipboard: Use Ctrl+V to paste text content as a new document
  4. Use keyboard shortcuts:
    • Ctrl+O to open in the left pane
    • Ctrl+Shift+O to open in the right pane

Document Types

Differon distinguishes between two types of documents, indicated by icons in the tab:

Icon Document Type Description
File Document File Document A document loaded from a file on disk
Pasted Document Pasted Document A document created from clipboard content
Tip: Pasted documents can have their titles edited by clicking on the document title. This is useful for organizing multiple clipboard comparisons.
Tip: Differon remembers your open documents and their positions when you close the application, so you can pick up right where you left off.

Comparing Documents

Differon provides two levels of comparison that can be used independently or together:

Compare and Clear buttons with diff level checkboxes

Paragraph-Level Differences

When paragraph-level diff is enabled, Differon identifies which paragraphs have been added, deleted, or modified between the two documents.

Document showing paragraph change bars

Visual indicators:

Sentence-Level Differences

Sentence-level diff provides fine-grained comparison within paragraphs, using natural language processing to identify sentence boundaries.

Document showing sentence-level highlighting

How it works:

  1. Select paragraphs by clicking on them (they'll show a selection highlight)
  2. Enable "Sentence Diff" in the control panel
  3. Click "Compare" to analyze differences
  4. Changed sentences appear with stronger highlighting
  5. For fuzzy-matched sentences, only the differing words are highlighted

Fuzzy Matching

Fuzzy matching allows Differon to identify content that has been modified but remains similar.

Fuzzy matching threshold sliders

Each diff level has its own fuzziness control:

Note: Higher fuzziness values may result in false matches. Start with lower values (20-40%) and adjust as needed.

Diff Algorithms

Differon offers multiple algorithms for both paragraph and sentence comparison, each optimized for different scenarios:

Paragraph Algorithms

Thomas Algorithm

Best for: Sequential text with minimal reordering

Characteristics:

  • Fast and efficient
  • Preserves document order
  • Good for version comparisons

With fuzzy matching: Identifies similar paragraphs even with minor edits

Patience Algorithm

Best for: Documents with structural changes

Characteristics:

  • Better at handling moved content
  • Identifies unique anchors first
  • More accurate for reorganized text

With fuzzy matching: Finds relocated paragraphs with modifications

Sentence Algorithms

Algorithm Best Use Case Fuzzy Matching Behavior
Thomas Line-by-line edits within paragraphs Shows word-level differences in similar sentences
Patience Reordered sentences within paragraphs Matches moved sentences with edits
Levenshtein Heavy editing with insertions/deletions Calculates edit distance for similarity
Character Precise character-level comparison Shows exact character changes

Click-to-Sync

Click-to-sync allows you to quickly navigate between corresponding sections in both documents.

Demonstration of click-to-sync feature

How to use:

  1. Click on any matched paragraph or sentence
  2. The opposite pane automatically scrolls to the corresponding content
  3. Both sections are temporarily highlighted for easy identification

Synchronized Scrolling

While Differon doesn't enforce synchronized scrolling, the click-to-sync feature helps maintain alignment between documents as you navigate.

Document Management

Working with Tabs

Differon supports multiple documents through its tab interface:

Multiple document tabs open in both panes

Tab Reordering

Tabs can be reordered by dragging:

Dragging a tab to reorder
  1. Click and hold on a tab
  2. Drag left or right within the same pane
  3. Drop to reorder
Note: Tabs cannot be dragged between left and right panes. Use the tab management buttons to move documents between panes.

Tab Management Controls

Differon provides several buttons for managing tabs and documents:

Icon Function Description
New Tab New Tab Opens a new empty tab or loads a new document
Reload Reload File Reloads the current file from disk (file tabs only)
Move Right Move to Revised Moves the current document from Original to Revised pane
Move Left Move to Original Moves the current document from Revised to Original pane
Tip: The reload button is particularly useful when working with documents that may be modified by external programs while Differon is open.

Text Operations

Copying Text

Differon provides intelligent text copying features:

Copy and append buttons in the interface

Copy methods:

Editing Documents

Note: Document editing is not currently supported in Differon. This feature may be included in a future release.

Differon is currently focused on providing powerful insight into how the text of two documents differ. While editing capabilities are not available in the current version, the application excels at:

Customization

Color Settings

Customize highlighting colors for better visibility:

Color customization dialog

Available color settings:

Zoom Controls

Adjust the display size for comfortable reading:

Keyboard Shortcuts

Action Shortcut Description
Open Left Ctrl+O Open file in left pane
Open Right Ctrl+Shift+O Open file in right pane
Save Ctrl+S Save current document
Close Tab Ctrl+W Close active tab
Compare F5 Run comparison
Clear Esc Clear all highlights
Copy Ctrl+C Copy selected text
Select All Ctrl+A Select entire document
Find Ctrl+F Find in document
Zoom In Ctrl++ Increase zoom level
Zoom Out Ctrl+- Decrease zoom level
Reset Zoom Ctrl+0 Reset to 100%
Next Tab Ctrl+Tab Switch to next tab
Previous Tab Ctrl+Shift+Tab Switch to previous tab

Example Files

Differon includes example files to help you explore its features. In the examples/ folder, you'll find three versions of the first chapter of Charles Dickens' "A Tale of Two Cities" (now in the public domain):

Included Example Files:

These files contain various types of differences that demonstrate Differon's capabilities:

Try These Exercises:

  1. Basic comparison: Load tale1.txt (Original) and tale3.txt (Revised), run a paragraph diff with Thomas algorithm to see spelling corrections
  2. Multiple document comparison: Add tale2.txt as a new tab on the Original side, then compare it to tale3.txt to see more substantial changes
  3. Explore paragraph algorithms: Try both Thomas and Patience algorithms on tale2.txt vs tale3.txt to see how they handle relocated content differently
  4. Sentence-level analysis: Select changed paragraphs and enable sentence diff to see word-level changes within sentences
  5. Fuzzy matching exploration: Adjust the paragraph fuzziness slider to 30-40% when comparing tale2.txt and tale3.txt to see how relocated content gets matched
  6. Interface navigation: Practice click-to-sync between matched paragraphs and sentences
  7. Algorithm granularity: Try the Character algorithm for sentence diff to see the most detailed character-by-character comparison

Tips & Tricks

For Best Results:

Performance Considerations: