询问moonbit-ide的包配置中的import的包名,能否在目录名更改时,自动跟随改名

假设有一个模块目录结构如下图所示,
image
h01_浦东,模块的moon.mod.json文件内容如下,

{
  "name": "pudong",
  "version": "0.1.0",
  "readme": "README.md",
  "repository": "",
  "license": "Apache-2.0",
  "keywords": [],
  "description": ""
}

包/app/moon.pkg.json文件内容如下,

{
  "is_main": true,
  "import": [
    "pudong/app/a01/b01",
    "pudong/app/a02"
  ]
}

包app/app_main.mbt文件内容如下,

fn main {
  println("this is app")
  println(@b01.txt)
  }

包app/a01/b01/b01_main.mbt文件内容如下,

pub let txt="this is b01_txt"


fn main {
  println(txt)
}

请问ide什么时候,能做到,当我更改目录b01名称时,相应的文件中涉及到b01的地方都跟随改变。

例如更改b01为b01_xxx时,
包/app/moon.pkg.json文件内容自动改动如下,

{
  "is_main": true,
  "import": [
    "pudong/app/a01/b01_xxx",
    "pudong/app/a02"
  ]
}

包app/app_main.mbt文件内容自动更改如下,

fn main {
  println("this is app")
  println(@b01_xxx.txt)
  }

另外,我还想问一下,是否在每个目录下都必须要有一个moon.pkg.json文件?,是否可以这样理解,在moonbit中,每个moon.pkg.json就是一个最小的程序单元,因为在import导入到底就是目录,在程序中引用也是@pkg_dir_name,所以目录包就是最小的程序单元,在moonbit中的一个包,是不是大概就相当于java中的一个class。

1 个赞

感谢您的建议,这个功能我们未来会支持的。
MoonBit里moon.pkg.json对应的包是最小的程序单元,包内的.mbt文件处在同一个命名空间里。