设置
{/* ── 编辑器管理 ── */}
编辑器
{editors.length === 0 ? (
) : (
{editors.map((e) => {
const checked = activeIds.includes(e.id);
return (
{/* 多选 checkbox */}
toggleActive(e.id)}
className="w-4 h-4 rounded accent-blue-600 shrink-0 cursor-pointer"
/>
{/* 信息 */}
toggleActive(e.id)}>
{e.name}
{checked && (
已启用
)}
{e.path}
{/* 操作 */}
);
})}
)}
勾选的编辑器会在项目卡片上各显示一个按钮,可同时启用多个。
{/* ── WSL ── */}
WSL 配置
{/* 检测按钮 */}
{wslDistros.length > 0 && (
✓ 检测到 {wslDistros.length} 个发行版
)}
{wslError && (
{wslError}
)}
{/* 发行版选择 */}
{wslDistros.length > 0 ? (
) : (
setWslDistro(e.target.value)}
placeholder="Ubuntu"
/>
)}
路径前缀:
\\wsl.localhost\{wslDistro}\
{/* 编辑器启动方式 */}
{([
{
value: "wsl_internal",
label: "从 WSL 内部启动(推荐)",
desc: `wsl -d ${wslDistro} --
`,
},
{
value: "remote_flag",
label: "Remote WSL 参数",
desc: ` --remote wsl+${wslDistro} `,
},
{
value: "unc_path",
label: "Windows UNC 路径(不走 Remote)",
desc: ` \\\\wsl.localhost\\${wslDistro}\\`,
},
] as const).map(({ value, label, desc }) => (
))}
{/* ── MCP 服务 ── */}
MCP 服务
{mcpChecking ? (
检测中…
) : mcpHealth ? (
mcpHealth.ok ? (
运行中 {mcpHealth.latency_ms}ms
) : (
端口未响应
)
) : null}
产品组 MCP Server,为组内项目的 Claude 提供跨项目上下文能力。配置好产品组成员后,每个项目的
{" "}.claude/settings.json{" "}
会自动注入对应的 MCP 连接。
{/* 编辑器表单弹窗 */}
{formTarget !== undefined && (
setFormTarget(undefined)}
onSave={handleSaveEditor}
/>
)}
);
}
/* ── 蓝图规则批量同步区块 ────────────────────────────────────────────────────── */
interface SyncRow {
name: string;
path: string;
status: "pending" | "ok" | "error";
result?: SyncResult;
error?: string;
}
function BatchSyncSection() {
const [rows, setRows] = useState