FlutterDiffViewerController class
Controls a FlutterDiffViewer widget's navigation, scrolling, and collapse state.
Provides programmatic access to change navigation, scrolling to specific lines, and expanding/collapsing unchanged sections.
final controller = FlutterDiffViewerController();
// Navigate changes
controller.nextChange();
controller.previousChange();
controller.goToChange(2);
// Collapse all unchanged sections
controller.collapseAll();
// Remember to dispose
controller.dispose();
Lifecycle note: If you create a FlutterDiffViewerController yourself, you are responsible for calling dispose. The FlutterDiffViewer widget will NOT dispose externally provided controllers.
- Inheritance
-
- Object
- ChangeNotifier
- FlutterDiffViewerController
Constructors
- FlutterDiffViewerController()
- Creates a FlutterDiffViewerController.
Properties
-
changes
→ List<
DiffChange> -
The ordered list of navigable change blocks in the current diff.
no setter
-
collapsedLineIndices
→ Set<
int> -
Set of line indices that are currently in a collapsed state.
no setter
- currentChange → DiffChange?
-
The currently selected DiffChange, or
null.no setter - currentChangeIndex → int
-
The 0-based index of the currently highlighted change.
no setter
- error → Object?
-
The error from the last failed diff calculation, or
null.no setter - hashCode → int
-
The hash code for this object.
no setterinherited
- hasListeners → bool
-
Whether any listeners are currently registered.
no setterinherited
- hasNextChange → bool
-
Whether there is a next change to navigate to.
no setter
- hasPreviousChange → bool
-
Whether there is a previous change to navigate to.
no setter
- leftScrollController → ScrollController
-
The left panel scroll controller (side-by-side view).
no setter
- primaryScrollController → ScrollController
-
The primary vertical scroll controller (unified/stacked view).
no setter
- result → DiffResult?
-
The most recently calculated diff result.
no setter
- rightScrollController → ScrollController
-
The right panel scroll controller (side-by-side view).
no setter
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- state → FlutterDiffViewerState
-
The current state of the diff viewer.
no setter
- totalChanges → int
-
The total number of navigable changes in the current diff.
no setter
Methods
-
addListener(
VoidCallback listener) → void -
Register a closure to be called when the object changes.
inherited
-
collapseAll(
) → void - Collapses all unchanged line sections.
-
dispose(
) → void -
Discards any resources used by the object.
override
-
expandAll(
) → void - Expands all collapsed unchanged line sections.
-
expandSection(
int lineIndex) → void -
Expands the collapsed section containing the line at
lineIndex. -
goToChange(
int index) → void -
Navigates to the change at the given
index. -
isLineCollapsed(
int lineIndex) → bool -
Returns
trueif the line atlineIndexis currently collapsed. -
nextChange(
) → void - Navigates to the next change in the diff.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
notifyListeners(
) → void -
Call all the registered listeners.
inherited
-
previousChange(
) → void - Navigates to the previous change in the diff.
-
removeListener(
VoidCallback listener) → void -
Remove a previously registered closure from the list of closures that are
notified when the object changes.
inherited
-
scrollToLine(
int lineIndex) → void -
Scrolls the diff view to the line at
lineIndex(0-based). -
setError(
Object error) → void - Transitions to the error state.
-
setLoading(
) → void - Transitions to the loading state.
-
setResult(
DiffResult result) → void - Updates the controller with a new diff result.
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited