#error-chain #debian-package #apt #stub #hack #dumb #massive

error-chain-for-dumb-ides

Faux的Debian包管理器apt

1个不稳定版本

使用旧的Rust 2015

0.1.0 2018年1月20日

#575操作系统


用于 fapt-pkg

CC0 许可证

5KB

错误链-for-笨拙的IDEs

这个库包含了一个重大的hack,使得某些IDE在处理重量级的error-chain代码时能够表现更好。

什么意思?

error-chain 是 Rust的错误处理库。如果你没有使用它,那你就做错了。

然而,它大量使用了Rust的宏系统,这对一些IDE来说理解起来并不容易。

这个库提供了一套stub,使IDE稍微不那么笨拙,因此你的体验也会稍微好一些。

没有它,像这样的代码的补全会失败

let a = foo().chain_err(|| "foo failed :(")?;
a. // <-- here.

之后,它就成功了!

如何实现?

  1. 将这个crate作为依赖项添加。使用 dev-dependencies 是可以的

    [dev-dependencies.error-chain-for-dumb-ides]
    git = "https://github.com/FauxFaux/error-chain-for-dumb-ides"
    

    由于crates.io软件包的依赖项不能来自git仓库,你可以使用crates.io发布的版本。我不打算维护对旧版本的支持,甚至在git HEAD中也不行。为此,请使用以下片段

    [dev-dependencies.error-chain-for-dumb-ides]
    version = "0"
    
  2. 导入crate。您可以在一个无意义的 cfg 后面这样做,因为这个配置在IDE中被完全忽略,代码仍然会被执行

    #[cfg(intellij_type_hinting)]
    extern crate error_chain_for_dumb_ides;
    
  3. 在您的 mod errors {} 中,导入crate的内容

    #[cfg(intellij_type_hinting)]
    pub use error_chain_for_dumb_ides::stubs::*;
    

就是这样!现在,补全突然开始工作。

这里有一个在真实项目中实现此操作的例子

许可证

CC0.

想象一下“公共领域”,不保留任何权利。鉴于这个库很简单,并且永远不会成为你的生产代码库的一部分,任何许可证实际上都是无关紧要的。

没有运行时依赖