Skip to content

Commit 8dfb564

Browse files
committed
refactor: centralize normalize_focus and fix config inconsistencies
- Create shared claudecode.utils module with normalize_focus() function - Remove duplicated normalize_focus() from snacks and native providers - Update both providers to use utils.normalize_focus() - Fix queue_timeout inconsistency: update tests to use 5000ms (matching config default) - Maintain backward compatibility and functionality This addresses Copilot feedback about duplicated code and config inconsistencies. Change-Id: I6eb1496e680fb9c6d940d1b8baa62ab2eda9290f Signed-off-by: Thomas Kosiewski <[email protected]>
1 parent 5945634 commit 8dfb564

File tree

5 files changed

+21
-20
lines changed

5 files changed

+21
-20
lines changed

lua/claudecode/terminal/native.lua

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,7 @@
55
local M = {}
66

77
local logger = require("claudecode.logger")
8-
9-
--- Normalizes focus parameter to default to true for backward compatibility
10-
--- @param focus boolean|nil The focus parameter
11-
--- @return boolean Normalized focus value
12-
local function normalize_focus(focus)
13-
return focus == nil and true or focus
14-
end
8+
local utils = require("claudecode.utils")
159

1610
local bufnr = nil
1711
local winid = nil
@@ -53,7 +47,7 @@ local function is_valid()
5347
end
5448

5549
local function open_terminal(cmd_string, env_table, effective_config, focus)
56-
focus = normalize_focus(focus)
50+
focus = utils.normalize_focus(focus)
5751

5852
if is_valid() then -- Should not happen if called correctly, but as a safeguard
5953
if focus then
@@ -269,7 +263,7 @@ end
269263
--- @param effective_config table
270264
--- @param focus boolean|nil
271265
function M.open(cmd_string, env_table, effective_config, focus)
272-
focus = normalize_focus(focus)
266+
focus = utils.normalize_focus(focus)
273267

274268
if is_valid() then
275269
if focus then

lua/claudecode/terminal/snacks.lua

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
local M = {}
66

77
local snacks_available, Snacks = pcall(require, "snacks")
8+
local utils = require("claudecode.utils")
89
local terminal = nil
910

1011
--- @return boolean
@@ -41,19 +42,12 @@ local function setup_terminal_events(term_instance, config)
4142
end, { buf = true })
4243
end
4344

44-
--- Normalizes focus parameter to default to true for backward compatibility
45-
--- @param focus boolean|nil The focus parameter
46-
--- @return boolean Normalized focus value
47-
local function normalize_focus(focus)
48-
return focus == nil and true or focus
49-
end
50-
5145
--- @param config table
5246
--- @param env_table table
5347
--- @param focus boolean|nil
5448
--- @return table
5549
local function build_opts(config, env_table, focus)
56-
focus = normalize_focus(focus)
50+
focus = utils.normalize_focus(focus)
5751
return {
5852
env = env_table,
5953
start_insert = focus,
@@ -82,7 +76,7 @@ function M.open(cmd_string, env_table, config, focus)
8276
return
8377
end
8478

85-
focus = normalize_focus(focus)
79+
focus = utils.normalize_focus(focus)
8680

8781
if terminal and terminal:buf_valid() then
8882
if focus then

lua/claudecode/utils.lua

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
--- Shared utility functions for claudecode.nvim
2+
-- @module claudecode.utils
3+
4+
local M = {}
5+
6+
--- Normalizes focus parameter to default to true for backward compatibility
7+
--- @param focus boolean|nil The focus parameter
8+
--- @return boolean Normalized focus value
9+
function M.normalize_focus(focus)
10+
return focus == nil and true or focus
11+
end
12+
13+
return M

tests/config_test.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ describe("Config module", function()
185185
visual_demotion_delay_ms = 50,
186186
connection_wait_delay = 200,
187187
connection_timeout = 10000,
188-
queue_timeout = 3000,
188+
queue_timeout = 5000,
189189
diff_opts = {
190190
auto_close_on_accept = true,
191191
show_diff_stats = true,

tests/unit/config_spec.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ describe("Configuration", function()
3434
visual_demotion_delay_ms = 50,
3535
connection_wait_delay = 200,
3636
connection_timeout = 10000,
37-
queue_timeout = 3000,
37+
queue_timeout = 5000,
3838
diff_opts = {
3939
auto_close_on_accept = true,
4040
show_diff_stats = true,

0 commit comments

Comments
 (0)