diff mbox series

[bug#53472,v4] gnu: Add emacs-nim-mode

Message ID 20220124201247.30159-1-paren@disroot.org
State Accepted
Headers show
Series [bug#53472,v4] gnu: Add emacs-nim-mode | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

\( Jan. 24, 2022, 8:12 p.m. UTC
Well, that was embarrassing... the package was completely wrong and `guix package -i emacs-nim-mode` would have actually installed `emacs-fennel-mode`... Always test things, I guess.

* gnu/packages/emacs-xyz.scm(emacs-nim-mode): New variable.
---
 gnu/packages/emacs-xyz.scm | 46 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

Comments

Nicolas Goaziou Jan. 28, 2022, 7:55 a.m. UTC | #1
Hello,

"(unmatched-parenthesis via Guix-patches" via <guix-patches@gnu.org>
writes:

> * gnu/packages/emacs-xyz.scm(emacs-nim-mode): New variable.

Thank you.

You add both emacs-nim-mode and emacs-commenter. Could you split the
patch into two parts?
> +       (uri (string-append "https://github.com/yuutayamada/commenter/archive/refs/tags/v" version ".tar.gz"))

These URI are not stable. You should use git-fetch with commit
(string-append "v" version) instead.

> +       (sha256
> +        (base32 "1n9m8f4gflb0c3nh98nkmsqzscyf5d1p1gcz8apskkmf7z0z0q2j"))))
> +    (build-system emacs-build-system)
> +    (home-page "https://github.com/yuutayamada/commenter")
> +    (synopsis "Allows you to set both single and multi line comment variables like @code{comment-start} or @code{comment-end} etc.")

The synopsis is too long:

  "Set both single- and multi-line comment variables in Emacs"

> +    (description "This package allows you to set both single and multi line comment variables like @code{comment-start} or @code{comment-end} etc.")

I suggest to drop the "etc." since there is "like" before.

  "This Emacs package sets both single- and multi-line comment variables like @code{comment-start} or @code{comment-end}."

> +(define-public emacs-nim-mode
> +  (let ((commit "744e076f0bea1c5ddc49f92397d9aa98ffa7eff8")
> +        (revision "0"))

Since you're not using a tagged commit, could you put a comment above
the let binding explaining why?

> +      (synopsis "Major mode for editing Nim source code")

I would add "Emacs": "Emacs major mode for editing Nim source code"

> +      (description "This package provides major modes for Nim:
> ++@itemize
> ++@item Syntax highlighting for Nim code, Nimble configuration files, and nim.cfg
> ++@item `M-x nim-compile`, which can also be invoked with `C-c C-c` inside a Nim source file
> ++@item File outline by procedures
> ++@item Indentation and line breaking (alpha)
> ++@item Integration with nimsuggest, the Nim linting and completion server (alpha, both nimsuggest-mode and nimsuggest itself are currently VERY unstable and may make emacs much less responsive)
> ++@end itemize")

I suggest:

  This package includes major modes for Nim. In particular, it provides
  syntax highlighting for Nim code, Nimble configuration files, and
  @file{nim.cfg}, outlining features, a dedicated compilation command,
  indentation and line breaking.

  It also implements integration with @code{nimsuggest}, the Nim linting
  and completion server, although this is currently unstable.
 
> +      (license license:gpl3+))))

Could you send an updated patch?

Regards,
Ludovic Courtès March 7, 2022, 8:51 p.m. UTC | #2
Hi unmatched-parenthesis,

I know it’s been a while already, but did you have a chance to look into
making the changes Nicolas suggested?

  https://issues.guix.gnu.org/53472

TIA,
Ludo’.

Nicolas Goaziou <mail@nicolasgoaziou.fr> skribis:

> Hello,
>
> "(unmatched-parenthesis via Guix-patches" via <guix-patches@gnu.org>
> writes:
>
>> * gnu/packages/emacs-xyz.scm(emacs-nim-mode): New variable.
>
> Thank you.
>
> You add both emacs-nim-mode and emacs-commenter. Could you split the
> patch into two parts?
>> +       (uri (string-append "https://github.com/yuutayamada/commenter/archive/refs/tags/v" version ".tar.gz"))
>
> These URI are not stable. You should use git-fetch with commit
> (string-append "v" version) instead.
>
>> +       (sha256
>> +        (base32 "1n9m8f4gflb0c3nh98nkmsqzscyf5d1p1gcz8apskkmf7z0z0q2j"))))
>> +    (build-system emacs-build-system)
>> +    (home-page "https://github.com/yuutayamada/commenter")
>> +    (synopsis "Allows you to set both single and multi line comment variables like @code{comment-start} or @code{comment-end} etc.")
>
> The synopsis is too long:
>
>   "Set both single- and multi-line comment variables in Emacs"
>
>> +    (description "This package allows you to set both single and multi line comment variables like @code{comment-start} or @code{comment-end} etc.")
>
> I suggest to drop the "etc." since there is "like" before.
>
>   "This Emacs package sets both single- and multi-line comment variables like @code{comment-start} or @code{comment-end}."
>
>> +(define-public emacs-nim-mode
>> +  (let ((commit "744e076f0bea1c5ddc49f92397d9aa98ffa7eff8")
>> +        (revision "0"))
>
> Since you're not using a tagged commit, could you put a comment above
> the let binding explaining why?
>
>> +      (synopsis "Major mode for editing Nim source code")
>
> I would add "Emacs": "Emacs major mode for editing Nim source code"
>
>> +      (description "This package provides major modes for Nim:
>> ++@itemize
>> ++@item Syntax highlighting for Nim code, Nimble configuration files, and nim.cfg
>> ++@item `M-x nim-compile`, which can also be invoked with `C-c C-c` inside a Nim source file
>> ++@item File outline by procedures
>> ++@item Indentation and line breaking (alpha)
>> ++@item Integration with nimsuggest, the Nim linting and completion server (alpha, both nimsuggest-mode and nimsuggest itself are currently VERY unstable and may make emacs much less responsive)
>> ++@end itemize")
>
> I suggest:
>
>   This package includes major modes for Nim. In particular, it provides
>   syntax highlighting for Nim code, Nimble configuration files, and
>   @file{nim.cfg}, outlining features, a dedicated compilation command,
>   indentation and line breaking.
>
>   It also implements integration with @code{nimsuggest}, the Nim linting
>   and completion server, although this is currently unstable.
>  
>> +      (license license:gpl3+))))
>
> Could you send an updated patch?
>
> Regards,
Björn Höfling Sept. 25, 2022, 9:03 p.m. UTC | #3
On Mon, 07 Mar 2022 21:51:23 +0100
Ludovic Courtès <ludo@gnu.org> wrote:

> Hi unmatched-parenthesis,
> 
> I know it’s been a while already, but did you have a chance to look
> into making the changes Nicolas suggested?
> 
>   https://issues.guix.gnu.org/53472

Closing, because this patchset has unresolved issues, and original
reporter has no longer interest in it, as stated here:

https://debbugs.gnu.org/cgi/bugreport.cgi?bug=54310#11

Björn
\( Sept. 26, 2022, 6:33 a.m. UTC | #4
On Sun Sep 25, 2022 at 10:03 PM BST, Björn Höfling wrote:
> Closing, because this patchset has unresolved issues

Thank you :)

    -- (
diff mbox series

Patch

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 8edbfc5a3d..78650d0c52 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -107,6 +107,7 @@ 
 ;;; Copyright © 2021 Brian Kubisiak <brian@kubisiak.com>
 ;;; Copyright © 2021, 2022 Taiju HIGASHI <higashi@taiju.info>
 ;;; Copyright © 2022 Brandon Lucas <br@ndon.dk>
+;;; Copyright © 2022 (unmatched parenthesis <paren@disroot.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -29837,3 +29838,48 @@  (define-public emacs-fennel-mode
      "Fennel mode provides font-lock, indentation, navigation, and REPL for
  Fennel code within Emacs.")
     (license license:gpl3+)))
+
+(define-public emacs-commenter
+  (package
+    (name "emacs-commenter")
+    (version "0.5.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/yuutayamada/commenter/archive/refs/tags/v" version ".tar.gz"))
+       (sha256
+        (base32 "1n9m8f4gflb0c3nh98nkmsqzscyf5d1p1gcz8apskkmf7z0z0q2j"))))
+    (build-system emacs-build-system)
+    (home-page "https://github.com/yuutayamada/commenter")
+    (synopsis "Allows you to set both single and multi line comment variables like @code{comment-start} or @code{comment-end} etc.")
+    (description "This package allows you to set both single and multi line comment variables like @code{comment-start} or @code{comment-end} etc.")
+    (license license:gpl3+)))
+
+(define-public emacs-nim-mode
+  (let ((commit "744e076f0bea1c5ddc49f92397d9aa98ffa7eff8")
+        (revision "0"))
+    (package
+      (name "emacs-nim-mode")
+      (version (git-version "0.4.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/nim-lang/nim-mode")
+               (commit commit)))
+         (sha256
+          (base32 "0jjrjsks3q8qpipxcqdkm8pi3pjnkcxcydspbf0rkvy3x6i5mwkv"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       (list emacs-commenter emacs-epc))
+      (home-page "https://github.com/nim-lang/nim-mode")
+      (synopsis "Major mode for editing Nim source code")
+      (description "This package provides major modes for Nim:
++@itemize
++@item Syntax highlighting for Nim code, Nimble configuration files, and nim.cfg
++@item `M-x nim-compile`, which can also be invoked with `C-c C-c` inside a Nim source file
++@item File outline by procedures
++@item Indentation and line breaking (alpha)
++@item Integration with nimsuggest, the Nim linting and completion server (alpha, both nimsuggest-mode and nimsuggest itself are currently VERY unstable and may make emacs much less responsive)
++@end itemize")
+      (license license:gpl3+))))