IntelliJ IDEA是Java语言开发的集成环境,IntelliJ在业界被公认为优秀的Java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、 创新的GUI设计等方面的功能可以说是超常的。
像C/C++和其他本地语言一样,Rust包括对条件编译的支持。指示编译器在编译过程中是包含还是忽略一段代码的最常见方法是添加一个带有所需条件的cfg属性。例如,您可以使用这种机制来检查目标架构,并根据操作系统在编译时切换代码块。
IntelliJ Rust会检测您项目中的条件禁用块,并将其从代码库中排除。这意味着名称解析和分析会忽略这些块,所以你不会在它们里面得到错误和警告,而且在自动完成中不会有该代码的项目出现在其他地方。另外,该插件在编辑器中把禁用的块灰化了。
这个级别的cfg支持在插件中已经有很长一段时间了,但是缺少了一些东西。条件选项可以包含Cargo功能。以前,IntelliJ Rust只支持项目依赖中声明的特性,但现在你的工作空间特性也被支持了。
我们已经实现了一个智能UI,使您的工作与特性更加透明:您可以直接在Cargo.toml文件中启用或禁用工作空间的任何特定特性。名称解析和代码洞察力会考虑到这一点。
让我们详细研究一下IntelliJ Rust如何处理Cargo特性,当它们在不同级别的依赖关系中使用时。
Library
最简单的情况是,