Make Print\ Classes.py language inspecific

This commit is contained in:
Out Of Ideas 2024-05-21 21:21:08 -05:00
parent 02aa6c282e
commit f095f230e3

View file

@ -1,38 +1,35 @@
from pygments.lexers import get_all_lexers, get_lexer_by_name
from pygments.formatters import HtmlFormatter
import re
def get_class_definitions(language):
def get_class_definitions():
try:
formatter = HtmlFormatter()
class_definitions = formatter.get_style_defs(f".{language}")
return class_definitions
style_defs = formatter.get_style_defs()
return style_defs
except Exception as e:
print(f"Error: {e}")
def parse_class_definitions(class_definitions):
class_colors = {}
pattern = r'\s*\.(.*?) {.*?color: (.*?);'
pattern = r'\s*\.(.*?) {.*?color: (.*?);.*?/\* (.*?) \*/'
matches = re.findall(pattern, class_definitions)
for match in matches:
class_name, color = match
class_name, color, comment = match
if not class_name.startswith("linenos"):
class_name = class_name.replace("c .", "")
class_colors[class_name] = color
class_colors[class_name] = (color, comment.strip())
return class_colors
def main():
language = input("Enter the language: ")
class_definitions = get_class_definitions(language)
class_definitions = get_class_definitions()
if class_definitions:
class_colors = parse_class_definitions(class_definitions)
print("# Define colors for different classes (modify as needed)")
print(f"class_colors_{language} = {{")
for class_name, color in class_colors.items():
print(f" \"{class_name}\": \"{color}\",")
print("class_colors = {")
for class_name, (color, comment) in class_colors.items():
print(f" \"{class_name}\": \"{color}\", # {comment}")
print("}")
else:
print(f"No class definitions found for language '{language}'.")
print("No class definitions found.")
if __name__ == "__main__":
main()