configure method
void
configure({
- bool? showLineNumbers,
- bool? wrapLines,
- bool? zeroPadLineNumbers,
- DiffViewMode? viewMode,
- DiffStyles? styles,
- List<
DiffCommentLineHighlight> ? commentHighlights,
Configures display options.
When rendering-relevant options change (viewMode, showLineNumbers, wrapLines, zeroPadLineNumbers, styles), the diff lines are re-rendered automatically.
Implementation
void configure({
bool? showLineNumbers,
bool? wrapLines,
bool? zeroPadLineNumbers,
DiffViewMode? viewMode,
DiffStyles? styles,
List<DiffCommentLineHighlight>? commentHighlights,
}) {
if (TuiTrace.enabled) {
TuiTrace.event(
'git_diff.configure',
tag: TraceTag.general,
fields: <String, Object?>{
'showLineNumbers': showLineNumbers,
'wrapLines': wrapLines,
'zeroPadLineNumbers': zeroPadLineNumbers,
'viewMode': viewMode?.name,
'stylesChanged': styles != null,
'commentHighlights': commentHighlights?.length,
},
);
}
final needsRerender =
(viewMode != null && viewMode != _model.viewMode) ||
(showLineNumbers != null &&
showLineNumbers != _model.showLineNumbers) ||
(wrapLines != null && wrapLines != _model.wrapLines) ||
(zeroPadLineNumbers != null &&
zeroPadLineNumbers != _model.zeroPadLineNumbers) ||
(styles != null && styles != _model.styles) ||
(commentHighlights != null &&
!_sameCommentHighlights(
commentHighlights,
_model.commentHighlights,
));
if (!needsRerender) return;
_model = _model.copyWith(
showLineNumbers: showLineNumbers,
wrapLines: wrapLines,
zeroPadLineNumbers: zeroPadLineNumbers,
viewMode: viewMode,
styles: styles,
commentHighlights: commentHighlights,
);
_model = _model.rerender();
_notifyListeners();
}