def _placeholders(self, value, placeholders): """ Applies a set of placeholders to the given settings recursively See http://sublimetext.info/docs/en/reference/build_systems.html#variables """ if isinstance(value, str) and "$" in value: value = Template(value).safe_substitute(placeholders) elif isinstance(value, dict): for key, val in value.items(): value[key] = self._placeholders(val, placeholders) elif isinstance(value, list): value = [self._placeholders(x, placeholders) for x in value] return value