diff --git a/lib/removecom.py b/lib/removecom.py deleted file mode 100644 index 1a9058f..0000000 --- a/lib/removecom.py +++ /dev/null @@ -1,83 +0,0 @@ -import os -import sys -import re - -def clean_comments_in_file(filepath): - """ - Supprime le reste de la ligne à partir de '//' dans un fichier donné, - en essayant d'éviter les URL. Gère aussi les commentaires /* ... */. - """ - try: - with open(filepath, 'r', encoding='utf-8') as f_read: - content = f_read.read() - - # Première passe : supprimer les commentaires /* ... */ - # Utilise re.DOTALL pour que . corresponde aussi aux retours à la ligne - # et non-greedy quantifier *? - content = re.sub(r'/\*.*?\*/', '', content, flags=re.DOTALL) - - cleaned_lines = [] - for line in content.splitlines(): - # Vérifie si la ligne contient une URL avant de chercher un commentaire - if re.search(r'https?://', line): - # Si une URL est trouvée, nous sommes très prudents. - # Nous ne supprimons les commentaires que s'ils sont CLAIREMENT après une URL et non mélangés - # Cela reste une heuristique et n'est pas parfait. - comment_index = line.find('//') - if comment_index != -1 and not re.search(r'["\']https?://.*?//', line): # Évite les // dans les URLs entre guillemets - # On tente de voir si le commentaire est vraiment à la fin de la ligne, - # après d'éventuelles guillemets. - # Ceci est une simplification et peut encore échouer. - if comment_index > line.rfind('"') and comment_index > line.rfind("'"): - cleaned_lines.append(line[:comment_index].rstrip()) - else: - cleaned_lines.append(line) # Conserve la ligne si le // est potentiellement dans une chaîne/URL - else: - cleaned_lines.append(line) - else: - # Si pas d'URL, on peut être plus agressif avec les // - if '//' in line: - index = line.find('//') - cleaned_lines.append(line[:index].rstrip()) - else: - cleaned_lines.append(line) - - # Rejoindre les lignes avec des retours à la ligne. - # Ajoute un retour à la ligne final si le fichier en avait un. - final_content = '\n'.join(cleaned_lines) - if content.endswith('\n') and not final_content.endswith('\n'): - final_content += '\n' - - with open(filepath, 'w', encoding='utf-8') as f_write: - f_write.write(final_content) - print(f"Commentaires nettoyés dans : {filepath}") - except Exception as e: - print(f"Erreur lors du traitement de {filepath} : {e}") - -def main(): - if len(sys.argv) < 2: - print("Usage: python clean_comments.py ") - print("Exemple: python clean_comments.py ./mon_projet_flutter") - sys.exit(1) - - target_directory = sys.argv[1] - - if not os.path.isdir(target_directory): - print(f"Erreur : Le chemin '{target_directory}' n'est pas un répertoire valide.") - sys.exit(1) - - print(f"Nettoyage des commentaires '//' et '/* ... */' dans le répertoire : {target_directory}") - print("-" * 70) - - for root, _, files in os.walk(target_directory): - for file in files: - filepath = os.path.join(root, file) - # Filtrez les types de fichiers que vous souhaitez traiter - if filepath.endswith(('.dart', '.js', '.ts', '.java', '.cpp', '.c', '.h', '.py')): - clean_comments_in_file(filepath) - - print("-" * 70) - print("Nettoyage terminé.") - -if __name__ == "__main__": - main()