Skip to content

Commit 3943dc0

Browse files
committed
Add claude-code-ide
1 parent f78a2a4 commit 3943dc0

2 files changed

Lines changed: 46 additions & 39 deletions

File tree

modules/common/setup/emacs/default.el

Lines changed: 39 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,7 @@
270270
(call-interactively 'fancy-narrow-to-region))))
271271

272272
(use-package eglot
273+
:demand
273274
:bind (("C-c C-l s" . eglot)
274275
(:map eglot-mode-map
275276
("C-c C-l f" . eglot-format)
@@ -319,37 +320,43 @@
319320
(go-ts-mode . eglot-ensure)))
320321

321322
(use-package eglot-booster
323+
:ensure t
322324
:after eglot
323325
:config (eglot-booster-mode))
324326

325-
(use-package claude-code
327+
(use-package claude-code-ide
326328
:ensure t
327-
:after (:all envrc inheritenv vterm transient)
329+
:after (:all transient envrc inheritenv vterm)
330+
:bind ("C-c c" . claude-code-transient)
328331
:config
329-
(claude-code-mode)
330-
(defun claude-code--vterm-no-window-delete (backend buffer-name program &optional switches)
331-
"vterm backend without window deletion issues."
332-
(claude-code--ensure-vterm)
333-
(let* ((vterm-shell (if switches
334-
(concat program " " (mapconcat #'identity switches " "))
335-
program))
336-
(vterm-environment (append (list "TERM_PROGRAM=emacs" "FORCE_CODE_TERMINAL=true")
337-
vterm-environment))
338-
(buffer (get-buffer-create buffer-name)))
339-
(with-current-buffer buffer
340-
(pop-to-buffer buffer)
341-
(vterm-mode)
342-
;; Remove the delete-window call that causes the error
343-
buffer)))
344-
345-
(advice-add 'claude-code--term-make :override #'claude-code--vterm-no-window-delete)
346-
(setq claude-code-terminal-backend 'vterm)
347-
(setq claude-code-enable-notifications t)
348-
(setq claude-code-notification-function #'peel/claude-notify)
349-
:bind-keymap ("C-c c" . claude-code-command-map))
350-
351-
(use-package eat :ensure t)
352-
(use-package transient :ensure t)
332+
(transient-define-prefix claude-code-transient ()
333+
"Claude Code IDE Commands"
334+
:transient-suffix 'transient--do-stay
335+
:transient-non-suffix 'transient--do-exit
336+
[
337+
["Session Management"
338+
("s" "Start Claude Code" claude-code-ide)
339+
("r" "Resume session" claude-code-ide-resume)
340+
("S" "Stop Claude Code" claude-code-ide-stop)
341+
("b" "Switch to buffer" claude-code-ide-switch-to-buffer)
342+
("l" "List sessions" claude-code-ide-list-sessions)]
343+
344+
["Interaction"
345+
("i" "Insert at mentioned" claude-code-ide-insert-at-mentioned)
346+
("e" "Send escape" claude-code-ide-send-escape)
347+
("n" "Insert newline" claude-code-ide-insert-newline)]
348+
349+
["Debug & Status"
350+
("c" "Check status" claude-code-ide-check-status)
351+
("d" "Show debug" claude-code-ide-show-debug)
352+
("D" "Clear debug" claude-code-ide-clear-debug)]
353+
354+
["Quit"
355+
("q" "Quit" transient-quit-one)]]))
356+
357+
(use-package transient
358+
:demand
359+
:ensure t)
353360

354361
;; ..................................................................... Haskell
355362
(use-package haskell-mode
@@ -390,15 +397,15 @@
390397
:demand
391398
:ensure t
392399
:diminish
393-
:config
394-
;; Apply inheritenv to key commands that start processes
400+
:init
395401
(inheritenv-add-advice 'shell-command)
396402
(inheritenv-add-advice 'shell-command-to-string)
397403
(inheritenv-add-advice 'async-shell-command)
398404
(inheritenv-add-advice 'compile)
399405
(inheritenv-add-advice 'project-compile)
400406
(inheritenv-add-advice 'claude-code--term-make)
401-
(inheritenv-add-advice 'claude-code-vterm))
407+
(inheritenv-add-advice 'claude-code-vterm)
408+
(inheritenv-add-advice 'claude-code-ide--create-vterm-session))
402409

403410
;; ....................................................................... dhall
404411
(use-package dhall-mode
@@ -597,9 +604,9 @@
597604
:ensure t
598605
:custom
599606
(auth-source-1password-vault "Private")
600-
(auth-source-1password-executable "op")
601-
:init
602-
(auth-source-1password-enable))
607+
(auth-source-1password-executable "op"))
608+
;; :init
609+
;; (auth-source-1password-enable))
603610

604611
(use-package gnuplot
605612
:ensure t

modules/common/setup/emacs/default.nix

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,17 @@ pkgs.emacsWithPackagesFromUsePackage {
2929
rev = "5db1374a5c9129be35f8466d53d103fb520c20c6";
3030
sha256 = "sha256-8oe/hVh0+fLyupBYaqxT7H8RHLlkN1l+7+CJIBYqFvA=";
3131
}) "readwise";
32-
claude-code = elisp (pkgs.fetchFromGitHub {
33-
owner = "stevemolitor";
34-
repo = "claude-code.el";
35-
rev = "6b91861794b3963bdee199166202be6886a350e1";
36-
sha256 = "sha256-DbWEX4OZVagTVMon+A88q9XvK/5e2i3FUrOQYCsMQC4=";
37-
}) "claude-code";
32+
claude-code-ide = elisp (pkgs.fetchFromGitHub {
33+
owner = "manzaltu";
34+
repo = "claude-code-ide.el";
35+
rev = "940f2d147f027309539d0f9f382e5300546d9303";
36+
sha256 = "sha256-SkNKQ/vN9HJBdvxQozbmqVJNgAxKReZbJA72D8bJhIA=";
37+
}) "claude-code-ide";
3838
};
3939
extraEmacsPackages = epkgs: with epkgs; [
4040
eglot-booster
4141
readwise
42-
claude-code
42+
claude-code-ide
4343
auth-source-1password
4444
my-config
4545
];

0 commit comments

Comments
 (0)