rossmacarthur/sheldon

What kind of error message is this?

ktavabi opened this issue · 3 comments

error: failed to load config file
due to: failed to deserialize contents as TOML
due to: invalid type: map, expected a string for key templates.defer at line 63 column 9

And why refactor in the first place?

Please see the release notes for the breaking changes in 0.7.x

https://github.com/rossmacarthur/sheldon/blob/trunk/RELEASES.md#breaking-changes

Please see the release notes for the breaking changes in 0.7.x

https://github.com/rossmacarthur/sheldon/blob/trunk/RELEASES.md#breaking-changes

I did. I had to reinstall Sheldon, set up all the plugins again, and re-link the toml file in an XDG (~/.config) directory. FYI I did not have any luck setting SHELDON_CONFIG_DIR & SHELDON_DATA_DIR environment variables to revert to the old behavior.

The breaking changes relevant to you is this line

Only apply templates per plugin. This effectively removes the each field from the template configuration. Any templates that are applied to each file in a plugin need to now use a for loop. For example:

So basically the templates fields can no longer take the form

[templates]
defer = { value = 'zsh-defer source "{{ file }}"', each = true }

You must now use

[templates]
defer = """{% for file in files %}
zsh-defer source "{{ file }}"
{% endfor %}"""

I will update the RELEASE notes to explain this better.