code: def get_tidy_invocation(f, clang_tidy_binary, checks, tmpdir, build_path,
                          header_filter, extra_arg, extra_arg_before, quiet,
                          config):
    
    start = [clang_tidy_binary]
    if header_filter is not None:
      start.append('-header-filter=' + header_filter)
    else:
      # Show warnings in all in-project headers by default.
      start.append('-header-filter=^' + build_path + '/.*')
    if checks:
      start.append('-checks=' + checks)
    if tmpdir is not None:
      start.append('-export-fixes')
      # Get a temporary file. We immediately close the handle so clang-tidy can
      # overwrite it.
      (handle, name) = tempfile.mkstemp(suffix='.yaml', dir=tmpdir)
      os.close(handle)
      start.append(name)
    for arg in extra_arg:
        start.append('-extra-arg=%s' % arg)
    for arg in extra_arg_before:
        start.append('-extra-arg-before=%s' % arg)
    start.append('-p=' + build_path)
    if quiet:
        start.append('-quiet')
    if config:
        start.append('-config=' + config)
    start.append(f)
    return start
docs: Gets a command line for clang-tidy.