✨ feat(vscode): 问 AI 和重写注释各用各的 profile,设置里加重写注释默认模型

This commit is contained in:
cruldra committed 2026-10-12 16:30:41 +11:00
1 parent 925f1ed39a
commit b83c445dd0
25 files changed
+363 -111

No files matched your search

@@ -43,6 +43,7 @@ interface SubmitValues {
defaultTestProfilePath: string
defaultPrototypeProfilePath: string
defaultAskProfilePath: string
defaultRewriteProfilePath: string
conflictResolutionProfilePath: string
commitProfilePath: string
prDiffSummaryProfilePath: string
@@ -99,6 +100,7 @@ export interface SettingsModalProps {
initialDefaultTestProfilePath: string
initialDefaultPrototypeProfilePath: string
initialDefaultAskProfilePath: string
initialDefaultRewriteProfilePath: string
initialConflictResolutionProfilePath: string
initialCommitProfilePath: string
initialPrDiffSummaryProfilePath: string
@@ -192,6 +194,7 @@ export function SettingsModal({
initialDefaultTestProfilePath,
initialDefaultPrototypeProfilePath,
initialDefaultAskProfilePath,
initialDefaultRewriteProfilePath,
initialConflictResolutionProfilePath,
initialCommitProfilePath,
initialPrDiffSummaryProfilePath,
@@ -236,6 +239,7 @@ export function SettingsModal({
const [defaultTestProfilePath, setDefaultTestProfilePath] = useState(initialDefaultTestProfilePath)
const [defaultPrototypeProfilePath, setDefaultPrototypeProfilePath] = useState(initialDefaultPrototypeProfilePath)
const [defaultAskProfilePath, setDefaultAskProfilePath] = useState(initialDefaultAskProfilePath)
const [defaultRewriteProfilePath, setDefaultRewriteProfilePath] = useState(initialDefaultRewriteProfilePath)
const [conflictResolutionProfilePath, setConflictResolutionProfilePath] = useState(initialConflictResolutionProfilePath)
const [commitProfilePath, setCommitProfilePath] = useState(initialCommitProfilePath)
const [prDiffSummaryProfilePath, setPrDiffSummaryProfilePath] = useState(initialPrDiffSummaryProfilePath)
@@ -282,6 +286,7 @@ export function SettingsModal({
setDefaultTestProfilePath(initialDefaultTestProfilePath)
setDefaultPrototypeProfilePath(initialDefaultPrototypeProfilePath)
setDefaultAskProfilePath(initialDefaultAskProfilePath)
setDefaultRewriteProfilePath(initialDefaultRewriteProfilePath)
setConflictResolutionProfilePath(initialConflictResolutionProfilePath)
setCommitProfilePath(initialCommitProfilePath)
setPrDiffSummaryProfilePath(initialPrDiffSummaryProfilePath)
@@ -380,6 +385,7 @@ export function SettingsModal({
defaultTestProfilePath: defaultTestProfilePath.trim(),
defaultPrototypeProfilePath: defaultPrototypeProfilePath.trim(),
defaultAskProfilePath: defaultAskProfilePath.trim(),
defaultRewriteProfilePath: defaultRewriteProfilePath.trim(),
// 冲突解决 profile:空串 = 用 DEFAULT_PROFILE_PATH
conflictResolutionProfilePath: conflictResolutionProfilePath.trim(),
// 提交代码 profile:空串 = 未配置 → 提交严格失败
@@ -663,8 +669,8 @@ export function SettingsModal({
</Field>
<Field
label="文件问答默认模型"
hint="代码阅读底部「问这个文件」默认使用此模型,也用于代码块和文件夹问答;留空沿用官方默认。输入框旁可临时切换,不会修改这里的默认值;重启或修改此设置后恢复默认。"
label="问答默认模型"
hint="代码阅读里问 AI 默认使用此模型:代码块下面的问答、预览顶部问这个文件或文件夹、「了解一块代码」都用它;留空沿用官方默认。输入框旁可临时切换,不会修改这里的默认值;重启或修改此设置后恢复默认。"
>
<SelectMenu
value={defaultAskProfilePath}
@@ -682,6 +688,26 @@ export function SettingsModal({
/>
</Field>
<Field
label="重写注释默认模型"
hint="代码阅读里重写注释默认使用此模型:点按钮重写、在输入框里接着说都用它;留空沿用官方默认。输入框旁可临时切换,不会修改这里的默认值;重启或修改此设置后恢复默认。"
>
<SelectMenu
value={defaultRewriteProfilePath}
onChange={setDefaultRewriteProfilePath}
variant="input"
className={inputClass}
options={[
{ value: '', label: '(默认)' },
...profiles.map(p => ({ value: p.path, label: p.name })),
...(defaultRewriteProfilePath
&& !profiles.some(p => p.path === defaultRewriteProfilePath)
? [{ value: defaultRewriteProfilePath, label: `不可用:${defaultRewriteProfilePath}` }]
: []),
]}
/>
</Field>
<Field
label="冲突解决配置文件"
hint={(