Subject: [bug#53472] [PATCH] gnu: Add emacs-nim-mode

From: Ludovic Courtès <[email-masked]>
Date: Mon, 07 Mar 2022 21:51:23 +0100

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 <[email-masked]> skribis:

> Hello,
>
> "(unmatched-parenthesis via Guix-patches" via <[email-masked]>
> 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,