def METHOD_NAME(evaluation: Evaluation):
    definitions = evaluation.definitions
    setting_names = sorted(definitions.get_matching_names("Settings`*"))
    user_settings = {}
    evaluation.stopped = False
    for setting_name in setting_names:
        rule = evaluation.parse(setting_name)
        value = rule.evaluate(evaluation).to_python()
        setting_usage_expr = evaluation.parse(setting_name + "::usage")
        setting_usage = setting_usage_expr.evaluate(evaluation).to_python(
            string_quotes=False
        )
        user_settings[setting_name] = {
            "value": value,
            "usage": setting_usage,
            "is_boolean": type(value) is bool,
            "boolean_value": value,
        }
    return user_settings