用途:在 Rider 打开的解决方案中执行语义级重构,覆盖 .NET/C#、F#、VB、C++、Unity、Unreal Engine、XAML、Razor 等。工具通过 IDE 索引解析目标并一次性改写所有引用(nameof、<see cref>、XAML/Razor 绑定、C++/Unreal),因此应优先使用工具而非文本编辑,grep 替换会静默漏改并破坏解决方案。
主要能力与调用:通过 execute_tool 调用,首个 token 为工具名,后接 --flag value。rename_refactoring 需 --filePath --symbolName --newName;change_api_signature 需 --filePath --methodName --parameters;move_type_to_namespace 需 --filePath --typeName --targetNamespace;reorganize_namespaces 需 --scope;safe_delete 需 --filePath --symbolName;extract_interface 需 --filePath --typeName --interfaceName --members;extract_base_class 需 --filePath --typeName --baseClassName --members;extract_method(仅 C#)需 --filePath --startLine --endLine --methodName。所有工具支持 --preview true 仅分析不写入,公开 API 或调用点较多时先预览再正式执行。
用法要点:--symbolName/--typeName 接受 Name 或 Type.Member。change_api_signature 首次调用应传裸 --methodName 与 --declaringType <完全限定类型>;--parameters 为单引号 JSON 数组,表示完整新参数列表,省略即删除,新增需带类型及可选 defaultValue;用 --currentSignature 区分重载。--members 为单引号 JSON 数组。多步请求按步骤逐个调用,不合并。
限制:库或外部符号无法重构,需上游修改。conflicts 非空表示未改动文件(reorganize_namespaces 除外,其冲突为提示性)。ambiguous/candidates 表示名称匹配多个符号,需用 Type.Member 或当前重载类型缩小范围。成功信号即 touched/affects/files 计数,无需再验证或构建,除非用户明确要求。参数缺失、工具名错误、冲突或歧义均属可修正的输入错误,应改参数重试;仅在 execute_tool 不可用或调用确实无法通过改参数解决时才回退文本编辑。