def METHOD_NAME(f, internal_name: str, func, display_name: str, default_option: str, outer=False):
    color_options = func()
    if outer:
        color_options.append("Match Inner")
    format_color = lambda color: color.replace(' ', '_').lower()
    color_to_id = {format_color(color): index for index, color in enumerate(color_options)}
    docstring = 'Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code.'
    if outer:
        docstring += ' "match_inner" copies the inner color for this option.'
    f.write(f"class {internal_name}(Choice):\n")
    f.write(f"    \"\"\"{docstring}\"\"\"\n")
    f.write(f"    display_name = \"{display_name}\"\n")
    for color, id in color_to_id.items():
        f.write(f"    option_{color} = {id}\n")
    f.write(f"    default = {color_options.index(default_option)}")
    f.write(f"\n\n\n")