ghosttyTerminalResolveTap<PositionT, SelectionT> function

GhosttyTerminalTapResolution ghosttyTerminalResolveTap<PositionT, SelectionT>({
  1. required GhosttyTerminalSelectionSession<SelectionT> session,
  2. required SelectionT? selection,
  3. required PositionT? position,
  4. required String? resolveUri(
    1. PositionT position
    ),
})

Resolves the shared tap behavior for a terminal view.

This centralizes the common decision tree used by both terminal widgets: a tap may be ignored after word selection, may open a hyperlink, or may clear the current selection.

Implementation

GhosttyTerminalTapResolution ghosttyTerminalResolveTap<PositionT, SelectionT>({
  required GhosttyTerminalSelectionSession<SelectionT> session,
  required SelectionT? selection,
  required PositionT? position,
  required String? Function(PositionT position) resolveUri,
}) {
  if (session.consumeIgnoreNextTapClear()) {
    return (clearSelection: false, hyperlink: null);
  }
  final hyperlink = ghosttyTerminalResolveHyperlinkAt<PositionT>(
    position,
    resolveUri: resolveUri,
  );
  return (
    clearSelection: hyperlink == null && selection != null,
    hyperlink: hyperlink,
  );
}