def temporary_setting(settings: sublime.Settings, key: str, val: Any) -> Generator[None, None, None]: prev_val = None has_prev_val = settings.has(key) if has_prev_val: prev_val = settings.get(key) settings.set(key, val) yield settings.erase(key) if has_prev_val and settings.get(key) != prev_val: settings.set(key, prev_val)
def _migrate_obsolete_settings(self, settings: sublime.Settings): """ Migrates setting with a root `client` key to flattened structure. Receives a `sublime.Settings` object. Returns True if settings were migrated. """ client = settings.get('client') # type: Dict if client: settings.erase('client') # Migrate old keys for key, value in client.items(): settings.set(key, value) return True return False