[bug#77349] gnu: Add emacs-yari.

Message ID f2bdfca3e1d17940d011bcfe44e261de011d718d.1743210033.git.gemmaro.dev@gmail.com
State New
Headers
Series [bug#77349] gnu: Add emacs-yari. |

Commit Message

gemmaro March 29, 2025, 1 a.m. UTC
  * gnu/packages/emacs-xyz.scm (emacs-yari): New variable.

Change-Id: I16a5be5ceef46a4d8cb036e1c06994d1b5513a33
---
 gnu/packages/emacs-xyz.scm | 41 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)


base-commit: c31662f7294b194663bc521358b01c3a7d7e4e27
  

Comments

Ian Eure March 29, 2025, 2:49 p.m. UTC | #1
Hi gemmaro,

gemmaro <gemmaro.dev@gmail.com> writes:

> * gnu/packages/emacs-xyz.scm (emacs-yari): New variable.
>
> Change-Id: I16a5be5ceef46a4d8cb036e1c06994d1b5513a33
> ---
>  gnu/packages/emacs-xyz.scm | 41 
>  ++++++++++++++++++++++++++++++++++++++
>  1 file changed, 41 insertions(+)
>
> diff --git a/gnu/packages/emacs-xyz.scm 
> b/gnu/packages/emacs-xyz.scm
> index 72f8a8f415..39ac71dc07 100644
> --- a/gnu/packages/emacs-xyz.scm
> +++ b/gnu/packages/emacs-xyz.scm
> @@ -17295,6 +17295,47 @@ (define-public emacs-yaml-mode
>  behavior very similar to that of Python mode.")
>      (license license:gpl3+)))
>  
> +(define-public emacs-yari
> +  (let ((revision "0")
> +        (commit "de61285ceb21f56c29f4be12e2e65b2aa2bccf56"))
> +    (package
> +      (name "emacs-yari")
> +      (version (git-version "0.8" revision commit))
> +      (source
> +       (origin
> +         (method git-fetch)
> +         (uri (git-reference
> +               (url "https://github.com/hron/yari.el")
> +               (commit commit)))
> +         (file-name (git-file-name name version))
> +         (sha256
> +          (base32 
> "0sik21rifw0q1rw4wrffnnwynsmgrv6w323gz3fw89cz6n8kqsgn"))))
> +      (build-system emacs-build-system)
> +      (arguments
> +       (list
> +        #:tests? #t
> +        #:test-command #~(list "ert-runner")
> +        #:phases
> +        #~(modify-phases %standard-phases
> +            (add-after 'unpack 'set-program-names
> +              (lambda* (#:key inputs #:allow-other-keys)
> +                (let* ((package (assoc-ref inputs "ruby"))
> +                       (ri (string-append package "/bin/ri"))
> +                       (ruby (string-append package 
> "/bin/ruby")))
> +                  (emacs-substitute-variables "yari.el"
> +                    ("yari-ri-program-name" ri)
> +                    ("yari-ruby-program-name" ruby))))))))

Please remove the let and use `search-input-file' here.  ex.

    (emacs-substitute-variables "yari.el"
      ("yari-ri-program-name" (search-input-files "ri"))
      ("yari-ruby-program-name" (search-input-files 
      "ruby")))))))))

> +      (native-inputs (list emacs-ert-runner))
> +      (inputs (list ruby))
> +      (home-page "https://github.com/hron/yari.el")
> +      (synopsis "Yet Another RI interface for Emacs")
> +      (description
> +       "@samp{yari.el} provides an Emacs frontend...

@file is probably better than @sampe here, but I’d go with "This 
package provides..."


> +     ...to Ruby's @samp{ri}

Should be @code, not @samp.


> +documentation tool, and offers lookup and completion.  The main
> +function you should use as interface to @samp{ri} is @samp{M-x 
> yari}.

Same feedback about @samp{ri} here.  @samp is correct for "M-x 
yari".

> +@samp{yari-helm} is a variant using Helm input framework.")

Are you intending to package yari-helm?  If not, please remove the 
mention of it.

Thanks,

  -- Ian
  
Ian Eure March 30, 2025, 12:12 a.m. UTC | #2
Hi gemmaro,

Pushed as 953ec15324.

Thanks,

  -- Ian
  

Patch

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 72f8a8f415..39ac71dc07 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -17295,6 +17295,47 @@  (define-public emacs-yaml-mode
 behavior very similar to that of Python mode.")
     (license license:gpl3+)))
 
+(define-public emacs-yari
+  (let ((revision "0")
+        (commit "de61285ceb21f56c29f4be12e2e65b2aa2bccf56"))
+    (package
+      (name "emacs-yari")
+      (version (git-version "0.8" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/hron/yari.el")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0sik21rifw0q1rw4wrffnnwynsmgrv6w323gz3fw89cz6n8kqsgn"))))
+      (build-system emacs-build-system)
+      (arguments
+       (list
+        #:tests? #t
+        #:test-command #~(list "ert-runner")
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-after 'unpack 'set-program-names
+              (lambda* (#:key inputs #:allow-other-keys)
+                (let* ((package (assoc-ref inputs "ruby"))
+                       (ri (string-append package "/bin/ri"))
+                       (ruby (string-append package "/bin/ruby")))
+                  (emacs-substitute-variables "yari.el"
+                    ("yari-ri-program-name" ri)
+                    ("yari-ruby-program-name" ruby))))))))
+      (native-inputs (list emacs-ert-runner))
+      (inputs (list ruby))
+      (home-page "https://github.com/hron/yari.el")
+      (synopsis "Yet Another RI interface for Emacs")
+      (description
+       "@samp{yari.el} provides an Emacs frontend to Ruby's @samp{ri}
+documentation tool, and offers lookup and completion.  The main
+function you should use as interface to @samp{ri} is @samp{M-x yari}.
+@samp{yari-helm} is a variant using Helm input framework.")
+      (license license:gpl3+))))
+
 (define-public emacs-gitlab-ci-mode
   (package
     (name "emacs-gitlab-ci-mode")