我正在使用 IntelliJ 的 rust 插件(版本 0.2.0.2114-182)和 IDEA(2018.2.3)。
我的编辑器窗口顶部有一个黄色栏,上面写着“不能在没有 rustup 的情况下自动附加 stdlib 源”。这并不奇怪,因为 gentoo 不使用 rustup。它从源代码编译 Rust。
有一个选项可以“手动附加”,但我不知道它要我选择哪个目录;甚至我应该寻找什么来找出正确的目录是什么;而且我什至不确定 gentoo ebuild 创建了一个包含必要 stdlib 源的目录。
如何以与 gentoo 的包管理系统兼容的方式向 rust 插件提供 stdlib 源代码?这似乎是如何为 IntelliJ IDEA 的 Rust 项目提供标准库源的答案?绕过 gentoo 的 ebuild,可能会导致 cruft 随着时间的推移而积累。
小智 6
在DEV-郎/锈的Gentoo包具有rls
使用标志(静置锈语言服务器),其具有安装锈病源的副作用到/usr/lib/rustlib/src
:
$ equery files dev-lang/rust | grep lib.rs
/usr/lib/rustlib/src/rust/src/libcore/lib.rs
/usr/lib/rustlib/src/rust/src/libstd/lib.rs
(...)
Run Code Online (Sandbox Code Playgroud)
因此,解决方案是启用rls
使用标志,然后将 Intellij IDEA 指向/usr/lib/rustlib/src/rust/src
:
我相信这是 Gentoo 上比绕过 portage 和/或使用 rustup 更惯用的解决方案。
请注意,dev-lang/rust-bin包目前没有rls
use-flag,我还没有找到用它安装 Rust lib 源代码的方法。
Gentoo 中有关 dev-lang/rust use-flags(及其文档)的贡献可能会受到赞赏。
有同样的问题。我选择的解决方案是使用 rustup 并从我的系统中删除 portage 的 rust。然后,您可以告诉 portage 假设 rust 是通过使用 /etc/portage/package.provided 提供的,以使 firefox 之类的程序能够与 rustup 的版本一起工作。
这是一篇描述该过程的简短文章:https://laumann.xyz/gentoo/2018/05/01/gentoo-package-provided.html
Iirc 你不需要他最后放入 bash.profile 中的所有内容,但现在我无法告诉你到底可以省略什么