class Steep::Project::CompletionProvider

def items_for_dot(position:)

def items_for_dot(position:)
  # foo. ←
  shift_pos = position-1
  node, *parents = source.find_nodes(line: shift_pos.line, column: shift_pos.column)
  node ||= source.node
  return [] unless node
  if at_end?(shift_pos, of: node.loc)
    context = typing.context_at(line: position.line, column: position.column)
    receiver_type = case (type = typing.type_of(node: node))
                    when AST::Types::Self
                      context.self_type
                    else
                      type
                    end
    items = []
    method_items_for_receiver_type(receiver_type,
                                   include_private: false,
                                   prefix: "",
                                   position: position,
                                   items: items)
    items
  else
    []
  end
end