Skip to content

Commit 406a4ca

Browse files
authored
Merge pull request #36 from coder/feat/auto-terminal-provider
2 parents 09b231d + 2d672d1 commit 406a4ca

File tree

3 files changed

+12
-4
lines changed

3 files changed

+12
-4
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ See [DEVELOPMENT.md](./DEVELOPMENT.md) for build instructions and development gu
199199
terminal = {
200200
split_side = "right",
201201
split_width_percentage = 0.3,
202-
provider = "snacks", -- or "native"
202+
provider = "auto", -- "auto" (default), "snacks", or "native"
203203
auto_close = true, -- Auto-close terminal after command completion
204204
},
205205

lua/claudecode/init.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ M.state = {
7474
---@alias ClaudeCode.TerminalOpts { \
7575
--- split_side?: "left"|"right", \
7676
--- split_width_percentage?: number, \
77-
--- provider?: "snacks"|"native", \
77+
--- provider?: "auto"|"snacks"|"native", \
7878
--- show_native_term_exit_tip?: boolean }
7979
---
8080
---@alias ClaudeCode.SetupOpts { \

lua/claudecode/terminal.lua

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ local claudecode_server_module = require("claudecode.server.init")
1818
local config = {
1919
split_side = "right",
2020
split_width_percentage = 0.30,
21-
provider = "snacks",
21+
provider = "auto",
2222
show_native_term_exit_tip = true,
2323
terminal_cmd = nil,
2424
auto_close = true,
@@ -48,7 +48,15 @@ end
4848
local function get_provider()
4949
local logger = require("claudecode.logger")
5050

51-
if config.provider == "snacks" then
51+
if config.provider == "auto" then
52+
-- Try snacks first, then fallback to native silently
53+
local snacks_provider = load_provider("snacks")
54+
if snacks_provider and snacks_provider.is_available() then
55+
logger.debug("terminal", "Auto-detected snacks terminal provider")
56+
return snacks_provider
57+
end
58+
-- Fall through to native provider
59+
elseif config.provider == "snacks" then
5260
local snacks_provider = load_provider("snacks")
5361
if snacks_provider and snacks_provider.is_available() then
5462
return snacks_provider

0 commit comments

Comments
 (0)