tools/DuplicateThemes.py (105 lines of code) (raw):

import json import logging def copyTheme(src: str, dest: str, name: str = None, scheme: str = None): source = None try: source = open(src, "r", encoding = "UTF-8", newline = "") destination = open(dest, mode = "w", encoding = "UTF-8", newline = "") theme = json.load(source) if name: theme["name"] = name if scheme: theme["editorScheme"] = scheme json.dump( {"commentary": "This document is auto-generated, do not edit manually", **theme}, destination, indent = 2) except IOError as e: if source: print("'{0}': {1} (I/O error({2}))".format(dest, e.strerror, e.errno)) else: print("'{0}': {1} (I/O error({2}))".format(src, e.strerror, e.errno)) except json.JSONDecodeError: logging.warning(src + " is not a valid JSON file") pass if __name__ == "__main__": # Old UI # Rider -> Rider Melon # Separate theme only for convenience in switching copyTheme( src = "RiderLight.theme.json", dest = "RiderMelonLight.theme.json", name = "Rider Melon Light", scheme = "Rider Melon Light") copyTheme( src = "RiderDark.theme.json", dest = "RiderMelonDark.theme.json", name = "Rider Melon Dark", scheme = "Rider Melon Dark") # Rider -> Visual Studio # For now, they look the same but later VS should become a separate theme copyTheme( src = "RiderLight.theme.json", dest = "VisualStudioLight.theme.json", name = "Visual Studio Light", scheme = "Visual Studio Light") copyTheme( src = "RiderDark.theme.json", dest = "VisualStudioDark.theme.json", name = "Visual Studio Dark", scheme = "Visual Studio Dark") # Visual Studio -> ReSharper # Separate theme only for convenience in switching copyTheme( src = "VisualStudioLight.theme.json", dest = "ReSharperLight.theme.json", name = "ReSharper Light", scheme = "ReSharper Light") copyTheme( src = "VisualStudioDark.theme.json", dest = "ReSharperDark.theme.json", name = "ReSharper Dark", scheme = "ReSharper Dark") # Visual Studio -> Visual Assist # Separate theme only for convenience in switching copyTheme( src = "VisualStudioLight.theme.json", dest = "VisualAssistLight.theme.json", name = "Visual Assist Light", scheme = "Visual Assist Light") copyTheme( src = "VisualStudioDark.theme.json", dest = "VisualAssistDark.theme.json", name = "Visual Assist Dark", scheme = "Visual Assist Dark") ############## New UI ############################## # Rider -> Rider Melon # Separate theme only for convenience in switching copyTheme( src = "RiderDay.theme.json", dest = "RiderMelonDay.theme.json", name = "Rider Melon Day", scheme = "Rider Melon Light") copyTheme( src = "RiderNight.theme.json", dest = "RiderMelonNight.theme.json", name = "Rider Melon Night", scheme = "Rider Melon Dark") # Rider -> Visual Studio # For now, they look the same but later VS should become a separate theme copyTheme( src = "RiderDay.theme.json", dest = "VisualStudioDay.theme.json", name = "Visual Studio Day", scheme = "Visual Studio Light") copyTheme( src = "RiderNight.theme.json", dest = "VisualStudioNight.theme.json", name = "Visual Studio Night", scheme = "Visual Studio Dark") # Visual Studio -> ReSharper # Separate theme only for convenience in switching copyTheme( src = "VisualStudioDay.theme.json", dest = "ReSharperDay.theme.json", name = "ReSharper Day", scheme = "ReSharper Light") copyTheme( src = "VisualStudioNight.theme.json", dest = "ReSharperNight.theme.json", name = "ReSharper Night", scheme = "ReSharper Dark") # Visual Studio -> Visual Assist # Separate theme only for convenience in switching copyTheme( src = "VisualStudioDay.theme.json", dest = "VisualAssistDay.theme.json", name = "Visual Assist Day", scheme = "Visual Assist Light") copyTheme( src = "VisualStudioNight.theme.json", dest = "VisualAssistNight.theme.json", name = "Visual Assist Night", scheme = "Visual Assist Dark")