# File lib/hammer_cli/completer.rb, line 120
    def param_to_complete(cmd, line)
      params = cmd.parameters.select do |p|
        (p.attribute_name != 'subcommand_name') and (p.attribute_name != 'subcommand_arguments')
      end

      return [nil, nil] if params.empty?

      # select param candidates
      param_candidates = []
      line.reverse.each do |word|
        break if word.start_with?('-')
        param_candidates.unshift(word)
      end

      param = nil

      if line.complete?
        # "--option " or "--option xx " or "xx "
        value = nil
        param_index = param_candidates.size
      else
        # "--opt" or "--option xx" or "xx yy"
        value = param_candidates.last
        param_index = param_candidates.size - 1
      end

      if param_index >= 0
        if params.size > param_index
          param = params[param_index]
        elsif params.last.multivalued?
          param = params.last
        end
      end

      return [param, value]
    end