在 Gentoo 上的 IntelliJ IDEA 中,由于 gentoo 不使用 rustup,我该如何附加 rust stdlib 源代码?

Mut*_*Bob 6 gentoo rust

我正在使用 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

将 Intellij IDEA Rust 标准库指向 /usr/lib/rustlib/src/rust/src

我相信这是 Gentoo 上比绕过 portage 和/或使用 rustup 更惯用的解决方案。

请注意,dev-lang/rust-bin包目前没有rlsuse-flag,我还没有找到用它安装 Rust lib 源代码的方法。

Gentoo 中有关 dev-lang/rust use-flags(及其文档)的贡献可能会受到赞赏。

  • 在版本 1.47.0 中,路径似乎是 `/usr/lib/rustlib/src/rust/library`。 (3认同)

Sve*_*ven 1

有同样的问题。我选择的解决方案是使用 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 中的所有内容,但现在我无法告诉你到底可以省略什么