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