chipsenkbeil / vimwiki-rs

Rust library and tooling to parse, render, and modify vimwiki text and files.
56 stars 2 forks source link

`the following packages contain code that will be rejected by a future version of Rust: nom v6.1.2` #146

Open epage opened 1 year ago

epage commented 1 year ago

vimwiki appears to use an older version of nom that has a future-incompat warning. I see this when building cobalt.

If open to alternatives to nom, I can offer my biased opinion that winnow is great

chipsenkbeil commented 1 year ago

@epage what is the advantage of winnow over nom? I'll need to see what is breaking when it comes to updating the nom dependency as well.

Is there a migration guide for using winnow? I have no particular reason why I'm using one parser combinator library over another, so if either is an easier path to pursue, I'll go in that direction.

epage commented 1 year ago

what is the advantage of winnow over nom?

https://epage.github.io/blog/2023/02/winnow-toml-edit-combine-nom/#winnow discusses the differences from nom (and the rest covers motivation). Currently, the main advantage is readability improvements but I'm working towards improving handling and performance of more complex text processing cases, like error recovery.

Is there a migration guide for using winnow? I have no particular reason why I'm using one parser combinator library over another, so if either is an easier path to pursue, I'll go in that direction.

  1. Upgrade to nom v7
  2. Switch the dependency and imports to winnow v0.3 (very few changes needed, if any)
  3. Resolve deprecations
  4. Upgrade to winnow 0.4