Subject: [bug#60549] [PATCH 2/5] gnu: Add emacs-citre.

From: Feng Shu <[email-masked]>
Date: Sat, 07 Jan 2023 15:16:06 +0800

Nicolas Goaziou <[email-masked]> writes:

Hello: 

emacs-citre now get the wrong ctags path, for emacs has ctags too. :-)

>From 9b69ed1524cbe3aa3cb75b44fcb7453b43ee06c2 Mon Sep 17 00:00:00 2001
From: Feng Shu <[email-masked]>
Date: Sat, 7 Jan 2023 15:07:14 +0800
Subject: [PATCH] gnu: emacs-cire: Search proper ctags program

* gnu/packages/emacs-xyz.scm (emacs-citre) [arguments]<#:phases>: Do not use
search-input-file to search ctags, for it will get ctags of emacs-minimal
instead of universal-ctags.
---
 gnu/packages/emacs-xyz.scm | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index b6024925ec..4e7aa568ea 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -34170,7 +34170,11 @@ (define-public emacs-citre
             (lambda* (#:key inputs #:allow-other-keys)
               (emacs-substitute-variables "citre-ctags.el"
                 ("citre-ctags-program"
-                 (search-input-file inputs "/bin/ctags")))
+                 ;; NOTE: Do not use search-input-file in this place, for it
+                 ;; will get ctags of emacs-minimal instead of
+                 ;; universal-ctags.
+                 (string-append (assoc-ref inputs "universal-ctags")
+                                "/bin/ctags")))
               (emacs-substitute-variables "citre-readtags.el"
                 ("citre-readtags-program"
                  (search-input-file inputs "/bin/readtags")))
-- 
2.38.1

> Hello,
>
> [email-masked] writes:
>
>> * gnu/packages/emacs-xyz.scm (emacs-citre): New variable.
>
> Applied, with the changes detailed below. Thank you.
>
>> +      #~(modify-phases %standard-phases
>> +          (add-after 'unpack 'patch-citre-ctags-program
>> +            (lambda* (#:key inputs #:allow-other-keys)
>> +              (emacs-substitute-sexps "citre-ctags.el"
>> +                ("defcustom citre-ctags-program"
>> +                 (string-append (assoc-ref inputs "universal-ctags")
>> +                                "/bin/ctags")))))
>> +          (add-after 'unpack 'patch-citre-readtags-program
>> +            (lambda* (#:key inputs #:allow-other-keys)
>> +              (emacs-substitute-sexps "citre-readtags.el"
>> +                ("defcustom citre-readtags-program"
>> +                 (string-append (assoc-ref inputs "universal-ctags")
>> +                                "/bin/readtags")))))
>> +          (add-after 'unpack 'patch-citre-gtags-program
>> +            (lambda* (#:key inputs #:allow-other-keys)
>> +              (emacs-substitute-sexps "citre-global.el"
>> +                ("defcustom citre-gtags-program"
>> +                 (string-append (assoc-ref inputs "global")
>> +                                "/bin/gtags")))))
>> +          (add-after 'unpack 'patch-citre-global-program
>> +            (lambda* (#:key inputs #:allow-other-keys)
>> +              (emacs-substitute-sexps "citre-global.el"
>> +                ("defcustom citre-global-program"
>> +                 (string-append (assoc-ref inputs "global")
>> +                                "/bin/global"))))))))
>
> I merged everything into a single phase and used more specific
> `emacs-substitute-variables' instead of `emacs-substitute-sexps'.
>
>> +    (inputs (list global universal-ctags))
>> +    (home-page "https://github.com/universal-ctags/citre")> +    (synopsis "Ctags IDE on the True Editor")
>> +    (description
>> +     "Citre is an advanced Ctags (or actually, readtags) frontend for
>> +Emacs. It offers:
>> +
>> +@itemize
>> +@item completion-at-point, xref and imenu integration.
>> +@item citre-jump: A completing-read UI for jumping to definition.
>> +@item citre-peek: A powerful code reading tool that lets you go down the
>> +rabbit hole without leaving current buffer.
>> +@end itemize\n")
>
> I reworded the description.
>
> Regards,

--