# 配置迁移设置

## 使用场景

当你准备执行 C→Rust 迁移，希望先设置根符号、禁用库、附加说明和 FFI 导出验证选项时，可以先配置迁移设置，供后续迁移流水线直接使用。

## 操作步骤

1. 在终端中输入 `jc2r config`，并按需补充参数。
2. 你可以通过以下方式准备根符号：

   - 从头文件或源文件中自动提取函数名，例如：`jc2r config --files bzlib.h`
   - 从文本文件按行导入函数名，例如：`jc2r config --files roots.txt`
   - 直接在命令行中输入逗号分隔的根符号列表，例如：`jc2r config --root-list-syms "func1,func2,func3"`

3. 如有需要，再设置禁用库列表，例如：`jc2r config --disabled-libs "libc,libm"`
4. 如有特殊迁移要求，可填写附加说明，例如：`jc2r config --additional-notes "所有函数必须处理错误情况，避免 panic"`
5. 根据需要启用或禁用 FFI 导出验证，例如：`jc2r config --enable-ffi-export-validation` 或 `jc2r config --disable-ffi-export-validation`
6. 如果你只想检查当前配置，可运行：`jc2r config --show`
7. 如果你想恢复默认值，可运行：`jc2r config --clear`
8. 修改完成后，配置会保存到本地 `.jarvis/c2rust/config.json`，供后续 `jc2r run` 直接读取。

## 你会看到的提示与反馈

- 查看模式下，系统会显示当前配置文件路径和完整配置内容。
- 清空配置后，系统会提示配置已清空。
- 从头文件或源文件提取函数名时，系统会提示提取过程和提取数量。
- 如果同一个根符号被重复导入，最终会自动去重。
- 找不到输入文件时，系统会给出明确提示。

## 注意事项

- 这是命令行入口，配置结果会保存到本地配置文件中，供后续流水线读取。
- 非源码/头文件输入时，只接受 `.txt` 文本文件作为符号列表来源。
- 附加说明支持清空，适合在迁移策略变化时重新整理。
- 迁移主流程不会在 `run` 命令里重新录入这些内容，因此建议先把配置准备好。
