@@ -47,11 +47,18 @@ local M = {}
4747-- @field verbose string|boolean Enable verbose logging with full turn-by-turn output
4848-- Additional options can be added as needed
4949
50+ --- ClaudeCodeShell class for shell configuration
51+ -- @table ClaudeCodeShell
52+ -- @field separator string Command separator used in shell commands (e.g., '&&', ';', '|')
53+ -- @field pushd_cmd string Command to push directory onto stack (e.g., 'pushd' for bash/zsh)
54+ -- @field popd_cmd string Command to pop directory from stack (e.g., 'popd' for bash/zsh)
55+
5056--- ClaudeCodeConfig class for main configuration
5157-- @table ClaudeCodeConfig
5258-- @field window ClaudeCodeWindow Terminal window settings
5359-- @field refresh ClaudeCodeRefresh File refresh settings
5460-- @field git ClaudeCodeGit Git integration settings
61+ -- @field shell ClaudeCodeShell Shell-specific configuration
5562-- @field command string Command used to launch Claude Code
5663-- @field command_variants ClaudeCodeCommandVariants Command variants configuration
5764-- @field keymaps ClaudeCodeKeymaps Keymaps configuration
@@ -81,6 +88,12 @@ M.default_config = {
8188 use_git_root = true , -- Set CWD to git root when opening Claude Code (if in git project)
8289 multi_instance = true , -- Use multiple Claude instances (one per git root)
8390 },
91+ -- Shell-specific settings
92+ shell = {
93+ separator = ' &&' , -- Command separator used in shell commands
94+ pushd_cmd = ' pushd' , -- Command to push directory onto stack
95+ popd_cmd = ' popd' , -- Command to pop directory from stack
96+ },
8497 -- Command settings
8598 command = ' claude' , -- Command used to launch Claude Code
8699 -- Command variants
@@ -179,6 +192,23 @@ local function validate_config(config)
179192 return false , ' git.multi_instance must be a boolean'
180193 end
181194
195+ -- Validate shell settings
196+ if type (config .shell ) ~= ' table' then
197+ return false , ' shell config must be a table'
198+ end
199+
200+ if type (config .shell .separator ) ~= ' string' then
201+ return false , ' shell.separator must be a string'
202+ end
203+
204+ if type (config .shell .pushd_cmd ) ~= ' string' then
205+ return false , ' shell.pushd_cmd must be a string'
206+ end
207+
208+ if type (config .shell .popd_cmd ) ~= ' string' then
209+ return false , ' shell.popd_cmd must be a string'
210+ end
211+
182212 -- Validate command settings
183213 if type (config .command ) ~= ' string' then
184214 return false , ' command must be a string'
0 commit comments