import re
import sys

def revert_file(filepath):
    with open(filepath, 'r', encoding='utf-8') as f:
        content = f.read()

    # 1. Remove AddRange statements for our columns
    # Example: dgv_dashboard.Columns.AddRange(new DataGridViewColumn[] { ... col_dgv_ ... });
    pattern1 = r'\s*dgv_\w+\.Columns\.AddRange\(new DataGridViewColumn\[\] \{[^}]*col_dgv_[^}]*\}\);'
    content = re.sub(pattern1, '', content, flags=re.MULTILINE)

    # 2. Remove all lines referencing col_dgv_ (declarations, instantiations, property assignments)
    # Be careful not to remove lines that just accidentally match. We'll match lines that start with whitespace and have col_dgv_
    lines = content.splitlines()
    new_lines = []
    skip = False
    for line in lines:
        if "col_dgv_" in line:
            continue
        if line.strip() == "//" and new_lines and new_lines[-1].strip() == "//":
            # Might be part of our property comment block // \n // col_name \n //
            # Wait, easier to just strip empty trailing // later.
            pass
        new_lines.append(line)

    content = "\n".join(new_lines)

    # 3. Clean up empty comment blocks
    content = re.sub(r'\s*// \s*\n\s*// \s*\n\s*// \s*\n', '\n', content)

    with open(filepath, 'w', encoding='utf-8') as f:
        f.write(content)

    print("Reverted.")

if __name__ == '__main__':
    revert_file(sys.argv[1])
