✨ feat(vscode): 设置可关新开终端分屏

This commit is contained in:
cruldra committed 2026-09-01 17:38:06 +08:00
1 parent 7463113170
commit ffae9ce2b8
11 files changed
+66 -7

No files matched your search

@@ -36,6 +36,7 @@ interface SubmitValues {
worktreePreRemoveScript: string
implTabPreCreateScript: string
implTabPostCloseScript: string
splitNewTerminals: boolean
conflictResolutionProfilePath: string
commitProfilePath: string
prDiffSummaryProfilePath: string
@@ -85,6 +86,7 @@ export interface SettingsModalProps {
initialWorktreePreRemoveScript: string
initialImplTabPreCreateScript: string
initialImplTabPostCloseScript: string
initialSplitNewTerminals: boolean
initialConflictResolutionProfilePath: string
initialCommitProfilePath: string
initialPrDiffSummaryProfilePath: string
@@ -170,6 +172,7 @@ export function SettingsModal({
initialWorktreePreRemoveScript,
initialImplTabPreCreateScript,
initialImplTabPostCloseScript,
initialSplitNewTerminals,
initialConflictResolutionProfilePath,
initialCommitProfilePath,
initialPrDiffSummaryProfilePath,
@@ -207,6 +210,7 @@ export function SettingsModal({
const [worktreePreRemoveScript, setWorktreePreRemoveScript] = useState(initialWorktreePreRemoveScript)
const [implTabPreCreateScript, setImplTabPreCreateScript] = useState(initialImplTabPreCreateScript)
const [implTabPostCloseScript, setImplTabPostCloseScript] = useState(initialImplTabPostCloseScript)
const [splitNewTerminals, setSplitNewTerminals] = useState(initialSplitNewTerminals)
const [conflictResolutionProfilePath, setConflictResolutionProfilePath] = useState(initialConflictResolutionProfilePath)
const [commitProfilePath, setCommitProfilePath] = useState(initialCommitProfilePath)
const [prDiffSummaryProfilePath, setPrDiffSummaryProfilePath] = useState(initialPrDiffSummaryProfilePath)
@@ -246,6 +250,7 @@ export function SettingsModal({
setWorktreePreRemoveScript(initialWorktreePreRemoveScript)
setImplTabPreCreateScript(initialImplTabPreCreateScript)
setImplTabPostCloseScript(initialImplTabPostCloseScript)
setSplitNewTerminals(initialSplitNewTerminals)
setConflictResolutionProfilePath(initialConflictResolutionProfilePath)
setCommitProfilePath(initialCommitProfilePath)
setPrDiffSummaryProfilePath(initialPrDiffSummaryProfilePath)
@@ -336,6 +341,7 @@ export function SettingsModal({
worktreePreRemoveScript: worktreePreRemoveScript.trim(),
implTabPreCreateScript: implTabPreCreateScript.trim(),
implTabPostCloseScript: implTabPostCloseScript.trim(),
splitNewTerminals,
// 冲突解决 profile:空串 = 用 DEFAULT_PROFILE_PATH
conflictResolutionProfilePath: conflictResolutionProfilePath.trim(),
// 提交代码 profile:空串 = 未配置 → 提交严格失败
@@ -910,6 +916,19 @@ export function SettingsModal({
{activeGroup === 'hooks' && (
<>
<Field
label="新开终端分屏"
hint="关掉后,会话终端和看板在同一组里只加标签,不再劈成左右两栏。小屏建议关。"
>
<label className="inline-flex cursor-pointer items-center gap-2 text-xs">
<input
type="checkbox"
checked={splitNewTerminals}
onChange={e => setSplitNewTerminals(e.target.checked)}
/>
<span className="opacity-80">分到右侧一栏</span>
</label>
</Field>
<Field
label="工作树目录"
hint={(