connect method

Future<void> connect(
  1. String workspacePath
)

Connect to VS Code extension host for the given workspace.

Implementation

Future<void> connect(String workspacePath) async {
  _workspacePath = workspacePath;

  final handshake = BridgeHandshake(
    clientName: 'neomage',
    clientVersion: BridgeProtocolVersion.current,
    capabilities: {
      BridgeCapability.fileEdit,
      BridgeCapability.diagnostics,
      BridgeCapability.completion,
      BridgeCapability.hover,
      BridgeCapability.definition,
      BridgeCapability.references,
      BridgeCapability.formatting,
      BridgeCapability.terminal,
      BridgeCapability.notifications,
      BridgeCapability.chat,
      BridgeCapability.statusBar,
      BridgeCapability.codeActions,
    },
    workspacePaths: [workspacePath],
    pid: 0, // Dart does not expose pid easily; filled by caller if needed.
  );

  final response = await _protocol.initialize(handshake);
  if (response.isError) {
    throw response.error!;
  }

  // Request initial theme if available.
  if (_protocol.hasCapability(BridgeCapability.statusBar)) {
    _requestTheme();
  }

  _connected = true;
}