InteractiveShellController constructor

InteractiveShellController({
  1. required ShellSessionPort session,
  2. required void onOutput(
    1. List<int> output
    ),
  3. required void onPrompt(
    1. ShellPromptState state
    ),
  4. required void onPassthrough(
    1. bool active
    ),
  5. void onStderr(
    1. List<int> bytes
    )?,
  6. void onExit(
    1. int code
    )?,
  7. bool resumedInAltScreen = false,
  8. bool interactive = true,
  9. CwdMarker? marker,
})

Creates a controller over session. marker defaults to one seeded from the session id (so a resumed session reuses the original completion token).

Implementation

InteractiveShellController({
  required ShellSessionPort session,
  required this.onOutput,
  required this.onPrompt,
  required this.onPassthrough,
  this.onStderr,
  this.onExit,
  bool resumedInAltScreen = false,
  bool interactive = true,
  CwdMarker? marker,
}) : _session = session,
     _marker = marker ?? CwdMarker(session.id?.value),
     _dialect = ShellDialect.forFamily(session.shellFamily),
     _resumedInAltScreen = resumedInAltScreen,
     _interactive = interactive,
     _pendingResumeCwd = resumedInAltScreen;