import json import os
FILENAME = "snippets.json"
def load_snippets(): if os.path.exists(FILENAME): with open(FILENAME, "r", encoding="utf-8") as f: return json.load(f) return []
def save_snippets(snippets): with open(FILENAME, "w", encoding="utf-8") as f: json.dump(snippets, f, indent=4, ensure_ascii=False)
def add_snippet(snippets): print("\nβ Add a New Code Snippet") title = input("π§ Title: ").strip() language = input("π» Language (e.g. Python, JS, HTML): ").strip().capitalize() description = input("π Description: ").strip() code = [] print("π¬ Enter your code (type 'END' to finish):") while True: line = input() if line.strip().upper() == "END": break code.append(line) snippet = { "title": title, "language": language, "description": description, "code": "\n".join(code) } snippets.append(snippet) save_snippets(snippets) print("β Snippet saved successfully!")
def view_snippets(snippets): if not snippets: print("π No snippets saved yet.") return print("\n=== πΎ Your Code Snippets ===") for i, s in enumerate(snippets, 1): print(f"{i}. [{s['language']}] {s['title']} β {s['description']}")
def search_snippets(snippets): keyword = input("π Search by keyword or language: ").strip().lower() results = [s for s in snippets if keyword in s["title"].lower() or keyword in s["language"].lower() or keyword in s["description"].lower()]
if not results:
print("β No matching snippets found.")
return
print("\n=== π Search Results ===")
for s in results:
print(f"\nπ {s['title']} ({s['language']})")
print(f"π {s['description']}")
print(f"π» Code:\n{s['code']}")
print("-" * 40)
def main(): snippets = load_snippets() while True: print("\n=== CODE SNIPPET MANAGER ===") print("1οΈβ£ Add new snippet") print("2οΈβ£ View all snippets") print("3οΈβ£ Search snippets") print("4οΈβ£ Exit")
choice = input("π Choose an option: ").strip()
if choice == "1":
add_snippet(snippets)
elif choice == "2":
view_snippets(snippets)
elif choice == "3":
search_snippets(snippets)
elif choice == "4":
print("π Goodbye! Keep coding smart!")
break
else:
print("β οΈ Invalid choice.")
if name == "main": main()