class Steep::Services::CompletionProvider

def items_for_following_keyword_arguments(text, index:, line:, column:, items:)

def items_for_following_keyword_arguments(text, index:, line:, column:, items:)
  return if text[index - 1] !~ /[a-zA-Z0-9]/
  text = text.dup
  argname = [] #: Array[String]
  while text[index - 1] =~ /[a-zA-Z0-9]/
    argname.unshift(text[index - 1] || '')
    source_text[index - 1] = " "
    index -= 1
  end
  begin
    type_check!(source_text, line: line, column: column)
  rescue Parser::SyntaxError
    return
  end
  if nodes = source.find_nodes(line: line, column: column)
    if (send_node, block_node = deconstruct_sendish_and_block_nodes(*nodes))
      position = Position.new(line: line, column: column)
      keyword_argument_items_for_method(
        call_node: block_node || send_node,
        send_node: send_node,
        position: position,
        prefix: argname.join,
        items: items
      )
    end
  end
end