async def METHOD_NAME() -> Settings:
    yml = safe_load(decode(CONFIG_YML.read_bytes()))
    user_config = cast(Any, (await Nvim.vars.get(NoneType, SETTINGS_VAR)) or {})
    u_conf = hydrate(user_config)
    if isinstance(u_conf, Mapping):
        if isinstance(display := u_conf.get("display"), Mapping):
            if isinstance(icons := display.get("icons"), Mapping):
                yml_icons = yml["display"]["icons"]
                if (aliases := icons.get("aliases")) is not None:
                    yml_icons["aliases"] = aliases
                if (mappings := icons.get("mappings")) is not None:
                    yml_icons["mappings"] = mappings
    merged = merge(yml, u_conf, replace=True)
    config = new_decoder[Settings](Settings)(merged)
    if config.match.max_results <= 0:
        raise ValidationError("match.max_results <= 0")
    return config