Rust 和生成的代码的好处在于它可以存在于目标目录中,而 rust-analyzer 可以很容易地查看那里有什么。但是在 OCaml 中,使用沙丘,如果我有生成一些代码的规则,例如:
(rule
(target kimchi.ml)
(deps
Cargo.toml
rust-toolchain.toml
../../../../.ocamlformat
(source_tree src)
(source_tree binding_generation)
(source_tree ../../proof-systems))
(action
(chdir
binding_generation
(progn
(run rm -rf ./target)
(run rm -f ./Cargo.lock)
(run cargo run ../kimchi.ml)
(run ocamlformat --impl -i ../kimchi.ml)))))
在不知道确切路径的情况下,它生成的文件似乎无法从 vscode 中的 ocaml-lsp 访问。所以我能做的是添加:
(mode promote)
但现在,我冒着手动覆盖生成文件的风险。构建是否会再次覆盖我的手动更改?