1. 程式人生 > >Windows10環境下Idea開啟Rust專案目錄不識別Rust工程的解決辦法

Windows10環境下Idea開啟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目錄下,也可能是在工程根目錄下