idea搭建rust开发环境,解决不识别rust工程的解决办法(代码片段)

跨链技术践行者 跨链技术践行者     2022-12-19     300

关键词:

Rust 是一个由Mozilla主导开发的通用编译型编译语言。它的设计准则为"安全,并发,实用",支持函数式,并发式,过程式以及面向对象的编程风格。

Rust插件的主要特性如下:

  1. 导航特性:Go to Class、Go to Symbol、Go to Super Module、Structure、Go to Definition。
  2. 编辑器特性:代码自动完成、格式化(计划支持rustfmt)、合并行、智能按键(如自动插入匹配的符号)、自动填充后缀、基本的Intention和重构(如引入变量、重命名等)。
  3. 支持Cargo,提供了一个UI用于运行测试用例和应用程序,不过这要求在Cargo端进行一些配置

IntelliJ 是最好的使用的Java IDE之一 ,它支持各种插件,其中intellij-rust就是Rust在IntelliJ上的插件,可以使用该插件在IntelliJ上面进行Rust开发,下面就简单介绍下如何安装Rust并使用IntelliJ做为其IDE。

安装Rust

安装Rust不要直接Rust语言本身,例如使用brew install rust就只是安装了rust语言本身而已,应该安装的是rustup,rustup是rust官方版本的管理工具,是安装rust的首选。它的主要特点是:

  • 管理Rust二进制文件
  • 配置Rust工具链
  • 管理Rust相关组件
  • 只依赖bash,curl和常见的unix工具
  • 支持多平台

在使用Rust开发过程中常常是用到的工具有rustc,rust-src,cargo,这些都可以使用rustup进行管理。
其中cargo是Rust项目管理的工具,提供了一系列的工具,从项目的建立,构建到测试,运行到部署,都为Rust项目的管理提供尽可能完成的手段。
rustc是rust语言的编译器。
rust-src是rust标准库。

安装rustup:

1

curl https://sh.rustup.rs -sSf | sh

安装过程中会让选择安装方式,使用默认方式安装即可,默认安装cargo。安装之后需要设置两个目录到PATH变量中:

  • $HOME/.cargo/bin,cargo的bin目录
  • $HOME/.cargo/env,为shell配置的目录

通过rustup help可以看到rustup的相关命令,上述的默认按照并不包含组件rust-src的安装,需要单独安装组件rust-src:

1

rustup component add rust-src

这样Rust的环境安装都已经完成,在使用IntelliJ做为Rust的IDE中要用的组件包括:rustc,cargorust-src

安装IntelliJ插件

需要安装两个插件 intellij-rustintellij-tomlintellij-rust是Rust语言插件,intellij-toml是为Toml语言的插件,是为cargo的配置文件cargo.toml使用。

安装方式:Perferences.. -> Plugins 在Marketplact中直接搜索Rust

同样方式搜索toml并安装。

安装完插件之后就可以新建一个项目选择Rust:

可以看到 Toolchain location 是配置的$HOME/.cargo/bin,而Standard library是之前安装的rust-src的目录。

创建项目成功可以看到一个完整的rust项目:

解决rust无法识别目录 :

 

环境:windows10 ,已经安装rust语言插件

问题:Idea打开Rust项目目录不识别Rust工程,代码不能跳转

解决办法:修改.iml文件的内容如下,然后保存,idea会自动生成sourceFolder等相关的源码路径配置。如果Idea报找不到Cargo.toml文件,则根据提示找到项目的根Cargo.toml文件。

注意,module type 要设置为RUST_MODULE 而不是JAVA_MODULE。

<?xml version="1.0" encoding="UTF-8"?>
<module type="RUST_MODULE" version="4">
  <component name="NewModuleRootManager" inherit-compiler-output="true">
    <exclude-output />
    <content url="file://$MODULE_DIR$"/>
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
  </component>
</module>
配置完成后,打开rust工程的目录,idea会自动将其识别为Rust工程,然后代码就可以跳转了。

下图是配置完成后xxx.iml文件的内容,其中xxx是项目的名称。

<?xml version="1.0" encoding="UTF-8"?>
<module type="RUST_MODULE" version="4">
  <component name="NewModuleRootManager" inherit-compiler-output="true">
    <exclude-output />
    <content url="file://$MODULE_DIR$">
      <sourceFolder url="file://$MODULE_DIR$/dir-xxx/src" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/dir-xxx/examples" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/dir-xxx/tests" isTestSource="true" />
      <sourceFolder url="file://$MODULE_DIR$/dir-xxx/benches" isTestSource="true" />
      <excludeFolder url="file://$MODULE_DIR$/dir-xxx/target" />
      <excludeFolder url="file://$MODULE_DIR$/target" />
     </content>
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
  </component>
</module>
配置完成xxx.iml文件后,会自动更新modules.xml misc.xml vcs.xml  workspace.xml等相关的配置文件。

modules.xml文件内容示例如下。

<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="ProjectModuleManager">
    <modules>
      <module fileurl="file://$PROJECT_DIR$/.idea/xxx.iml" filepath="$PROJECT_DIR$/.idea/xxx.iml" />
    </modules>
  </component>
</project>
备注:

xxx.iml文件的位置可能是在.idea目录下,也可能是在工程根目录下

rust之旅linux下rust环境搭建

...种少有的兼顾开发效率和执行效率的语言。首先我们需要搭建好开发环境,本次选用linux作为服务器系统,也是为以后项目环境做考虑。毕竟windows作为服务器系统还是过于小众。如果您曾经安装过rustup,可以执行rustupupdate来升级... 查看详情

[rust]使用msvc工具链和vscode搭建rust环境

本文介绍Rust在Windows下开发环境的安装以及配置。1安装适用于MSVCABI的工具链在VS2019C/C++工具链官方网站出下载生成工具,并勾选VisualStudio生成工具进行下载安装即可注意:这个工具没有安装VisualStudio,仅仅安装了MSVC的工具链。2... 查看详情

.net番外篇rust环境搭建+基础开发入门+rust与.net6c++的基础运算性能比较

前言:突然想打算把Rust作为将来自己主要的副编程语言。当然,主语言还是C#,毕竟.NET平台这么强大,写起来就是爽。缘起:之前打算一些新的产品或者新的要开发的东西,由于没有历史包袱,就想重... 查看详情

rust机器学习之tch-rs(代码片段)

...为tch-rs是Rust版的PyTorch。本文将带领大家学习如何用tch-rs搭建深度神经网络识别MNIST数据集中的手写数字。本文是“Rust替代Python进行机器学习”系列文章的第五篇,其他教程请参考下面表格目录:Python库Rust替代方案教程nu... 查看详情

【rust_basic】rustforlinux环境搭建

参考技术ARust提供简单的一键安装,命令如下:rustup是Rust官方的版本管理工具,安装前首先配置国内镜像加速更新工具链:运行以下命令进行安装:安装后工具链会被安装到$HOME/.cargo/bin目录,.cargo/bin目录会被添加到系统的$PATH... 查看详情

rust实战|开发环境介绍(代码片段)

Rust开发环境介绍安装rustup使用在线执行环境|playground安装VSCode插件认识Rust的工具链小结安装rustupWindows本地安装下载Windows安装包:https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe如果开发跨平台程序,而不仅仅在Windo... 查看详情

rust开发快速入门(代码片段)

为什么用Rust避免C++应用内存漏洞多问题Rust没有GC,实时性和高性能堪比C++运行库小,编译二进制文件比Go还要小很多Rust官方网站RustProgrammingLanguageLinux安装Rust系统环境:UBuntu18安装Rustsudoaptinstallrustc查看rust... 查看详情

rust开发快速入门(代码片段)

为什么用Rust避免C++应用内存漏洞多问题Rust没有GC,实时性和高性能堪比C++运行库小,编译二进制文件比Go还要小很多Rust官方网站RustProgrammingLanguageLinux安装Rust系统环境:UBuntu18安装Rustsudoaptinstallrustc查看rust... 查看详情

rust开发工具(vscode)(代码片段)

介绍支持Rust开发最好的开发工具有VSCODE,SUBLIMETEXT3,ATOM,INTELLIJIDEA,ECLIPSE,VIM,EMACS,GEANY,Clion,以下只是介绍VSCode.安装安装VSCode下载&安装安装VisualC++在MicrosoftVisualStudio下载选择下载编译工具,并安装安装Rustrustup.rs在Linux或是macOSc... 查看详情

rust开发快速入门(代码片段)

...Rustup:Rust安装和管理工具Cargo:Rust包管理工具Rust开发快速入门为什么用Rust避免C++应用内存漏洞多问题Rust没有GC,实时性和高性能堪比C++运行库小,编译二进制文件比Go还要小很多https://blog.oxings.com/arti... 查看详情

rust环境设置

vscode断点调试rust https://learnku.com/rust/t/36706 查看详情

rust学习之旅一,rust编程环境相关

Macrust环境rust安装:curl--proto‘=https‘--tlsv1.2-sSfhttps://sh.rustup.rs|sh rust更新:rustupupdate rust卸载:rustupselfuninstall rust检查:rustc--version rust文档:rustupdochttps://doc.rust-lang.o 查看详情

rust编程语言〇

Rust编程语言〇Rust官方:rust官方支持的环境我这里使用idea进行配置idea安装Rust插件需要安装两个插件intellij-rust和intellij-toml,intellij-rust是Rust语言插件,intellij-toml是为Toml语言的插件,是为cargo的配置文件cargo.toml使用。... 查看详情

rust环境设置

vscode断点调试rust https://learnku.com/rust/t/36706 查看详情

rust环境设置

vscode断点调试rust https://learnku.com/rust/t/36706 查看详情

rust环境设置

vscode断点调试rust https://learnku.com/rust/t/36706 查看详情

rust入坑指南:坑主驾到(代码片段)

...级语言是一对矛盾体。Rust想要挑战这一现状,它尝试为开发者提供更好的体验的同时给予开发者控制底层细节的权限(比如内存使用)。低级语言在开发过程中很容易出现各种细微的错误,它们难以发现但是可能影响巨大。其... 查看详情

rust学习1(代码片段)

...理由,想看看怎么保证内存安全与线程安全的 1.环境搭建去网站下载对应的rustup-init   https://forge.rust-lang.org/infra/other-installation-methods.html然后按照操作步骤来就行了2.第一个rust程序(工具会自动准备好的) 查看详情