getHover method

Future<Hover?> getHover({
  1. required String filePath,
  2. required Position position,
})

Returns hover information for the given position.

Implementation

Future<Hover?> getHover({
  required String filePath,
  required Position position,
}) async {
  final result = await _sourceLoader.resolveFile(filePath);
  if (result == null) return null;

  final unit = result.unit;
  final offset = _positionToOffset(unit, position);
  if (offset == null) return null;

  // Find the node at the position
  final node = _findNodeAtOffset(unit, offset);
  if (node == null) return null;

  // Find containing function or method
  final function = _findContainingFunction(node);
  if (function != null) {
    return _createFunctionHover(unit, function);
  }

  // Find containing class
  final classDecl = _findContainingClass(node);
  if (classDecl != null) {
    return _createClassHover(unit, classDecl);
  }

  return null;
}