~ruther/guix-local

f4c22e4d6e11fe462185c1bcd86d4c51b6cedc33 — Roman Scherer 6 months ago 8b092ce
gnu: Add emacs-claude-code-ide.

* gnu/packages/emacs-xyz.scm (emacs-claude-code-ide): New variable.

Change-Id: If52f00acdb621667603f0d821a762e8ea478b557
Signed-off-by: jgart <jgart@dismail.de>
1 files changed, 55 insertions(+), 0 deletions(-)

M gnu/packages/emacs-xyz.scm
M gnu/packages/emacs-xyz.scm => gnu/packages/emacs-xyz.scm +55 -0
@@ 16331,6 16331,61 @@ circumstances, and leaves the keys untouched outside of those situations,
allowing unprefixed keys to insert their respective characters as expected.")
      (license license:gpl3+))))

(define-public emacs-claude-code-ide
  ;; XXX: Upstream does not tag version bumps. Commit below matches latest
  ;; version bump.
  (let ((commit "c5e2de1a343bc6c0444789e0a99ad822cd56cfbe"))
    (package
      (name "emacs-claude-code-ide")
      (version "0.2.5")
      (source
       (origin
         (method git-fetch)
         (uri (git-reference
               (url "https://github.com/manzaltu/claude-code-ide.el")
               (commit commit)))
         (file-name (git-file-name name version))
         (sha256
          (base32 "17rha7rvv72r75lpa2hz65mphrjrzkfn4pz3xf9lfvivg7fc7n0d"))))
      (build-system emacs-build-system)
      (arguments
       (list
        #:phases
        #~(modify-phases %standard-phases
            (add-before 'check 'set-home
              (lambda _
                (setenv "HOME" (getenv "TMPDIR")))))
        #:test-command
        #~(list "emacs" "-batch"
                "-L" "."
                "-l" "ert"
                "-l" "claude-code-ide-tests.el"
                "--eval"
                ;; Exclude failing test (uncaught throw)
                (string-append
                 "(ert-run-tests-batch-and-exit "
                 "'(not claude-code-ide-mcp-server-test-ws-send-fix))"))))
      (propagated-inputs
       (list emacs-flycheck
             emacs-transient
             emacs-vterm
             emacs-web-server
             emacs-websocket))
      (home-page "https://github.com/manzaltu/claude-code-ide.el")
      (synopsis "Claude Code IDE integration for Emacs")
      (description
       "This package provides native integration with Claude Code
@acronym{CLI, command-line interface} through the @acronym{MCP, Model
Context Protocol}.  It creates a bidirectional bridge between Claude and
Emacs, enabling Claude to leverage Emacs features including @acronym{LSP,
Language Server Protocol}, project management, tree-sitter, and custom
Elisp functions.  Features include automatic project detection and
session management, terminal integration with @code{vterm} or @code{eat},
diagnostic integration with Flycheck and Flymake, advanced diff viewing
with ediff, and an extensible MCP tools server for accessing Emacs
commands such as xref and imenu.")
      (license license:gpl3+))))

(define-public emacs-clojure-mode
  (package
    (name "emacs-clojure-mode")