dispose method

Future<void> dispose()

Releases resources: fails any in-flight requests and closes diagnostics. Does not itself send shutdown/exit — call those first for a clean stop.

Implementation

Future<void> dispose() async {
  if (_closed) return;
  _closed = true;
  for (final completer in _pending.values) {
    if (!completer.isCompleted) {
      completer.completeError(StateError('LspClient disposed'));
    }
  }
  _pending.clear();
  await _diagnostics.close();
}