[PATCH] gnu: Add emacs-nim-mode

  • Done
  • quality assurance status badge
Details
5 participants
  • Björn Höfling
  • Ludovic Courtès
  • Nicolas Goaziou
  • Maxime Devos
  • (unmatched-parenthesis
Owner
unassigned
Submitted by
(unmatched-parenthesis
Severity
normal
(
(
(unmatched-parenthesis wrote on 23 Jan 2022 14:38
(address . guix-patches@gnu.org)(name . (unmatched-parenthesis)(address . paren@disroot.org)
20220123133837.1035-1-paren@disroot.org
* gnu/packages/emacs-xyz.scm(emacs-nim-mode): New variable.
---
gnu/packages/emacs-xyz.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (46 lines)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 8edbfc5a3d..d2508748a9 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,31 @@ (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-nim-mode
+ ;; The last tag was 0.4.1 in 2017. There have been many more commits since then.
+ (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 version)))
+ (sha256
+ (base32 "0dwas3ivhxdyw6njkcadc8c17cirq325cmby04qls8zkmrvlil1w"))))
+ (build-system emacs-build-system)
+ (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+))))
--
2.34.0
M
M
Maxime Devos wrote on 23 Jan 2022 17:21
e6f821f04f1c61aed725233ac97cc9499ae91010.camel@telenet.be
(unmatched-parenthesis via Guix-patches via schreef op zo 23-01-2022 om
13:38 [+0000]:
Toggle quote (8 lines)
> +      (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 version)))

I don't think there's a tag by the name "0.4.1-23.744e076"
in the git repo. Try (git-reference ... (commit commit)) instead.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYe2AdxccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7neKAQCxU5JqJ6NoYsGei/WtgMvRkosQ
w1nNQE+39ryBb6LoEQEAyY4u0hHor6gJ4iqmMyfjSxZRqT2f6qNVeJpz9UUBDQM=
=tc9N
-----END PGP SIGNATURE-----


P
(name . Maxime Devos)(address . maximedevos@telenet.be)(address . 53472@debbugs.gnu.org)
976be05a828735584d209ae9862d7532@disroot.org
Toggle quote (3 lines)
> I don't think there's a tag by the name "0.4.1-23.744e076"
> in the git repo. Try (git-reference ... (commit commit)) instead.

Oops! I automatically wrote (commit version) out of habit :)
One moment...
(
(
(unmatched-parenthesis wrote on 24 Jan 2022 19:40
[PATCH v2] gnu: Add emacs-nim-mode
(address . 53472@debbugs.gnu.org)(name . (unmatched-parenthesis)(address . paren@disroot.org)
20220124184037.21204-1-paren@disroot.org
Sorry about that!

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

Toggle diff (45 lines)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 8edbfc5a3d..34ac0d4dae 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,30 @@ (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-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 "0dwas3ivhxdyw6njkcadc8c17cirq325cmby04qls8zkmrvlil1w"))))
+ (build-system emacs-build-system)
+ (home-pace "https://github.com/nim-lang/nim-mode")
+ (synosis "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+))))
--
2.34.0
(
(
(unmatched-parenthesis wrote on 24 Jan 2022 20:00
[PATCH v3] gnu: Add emacs-nim-mode
(address . 53472@debbugs.gnu.org)(name . (unmatched-parenthesis)(address . paren@disroot.org)
20220124190058.21503-1-paren@disroot.org
Aren't typos fun.

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

Toggle diff (45 lines)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 8edbfc5a3d..e7a7edbd14 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,30 @@ (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-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 "0dwas3ivhxdyw6njkcadc8c17cirq325cmby04qls8zkmrvlil1w"))))
+ (build-system emacs-build-system)
+ (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+))))
--
2.34.0
(
(
(unmatched-parenthesis wrote on 24 Jan 2022 21:12
[PATCH v4] gnu: Add emacs-nim-mode
(address . 53472@debbugs.gnu.org)(name . (unmatched-parenthesis)(address . paren@disroot.org)
20220124201247.30159-1-paren@disroot.org
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(+)

Toggle diff (63 lines)
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+))))
--
2.34.0
N
N
Nicolas Goaziou wrote on 28 Jan 2022 08:55
(name . (unmatched-parenthesis via Guix-patches via)(address . guix-patches@gnu.org)
877dakxpjl.fsf@nicolasgoaziou.fr
Hello,

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

Toggle quote (2 lines)
> * 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?
Toggle quote (2 lines)
> + (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.

Toggle quote (6 lines)
> + (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"

Toggle quote (2 lines)
> + (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}."

Toggle quote (4 lines)
> +(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?

Toggle quote (2 lines)
> + (synopsis "Major mode for editing Nim source code")

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

Toggle quote (9 lines)
> + (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.
Toggle quote (2 lines)
> + (license license:gpl3+))))

Could you send an updated patch?

Regards,
--
Nicolas Goaziou
L
L
Ludovic Courtès wrote on 7 Mar 2022 21:51
Re: bug#53472: [PATCH] gnu: Add emacs-nim-mode
(address . paren@disroot.org)
87zgm1a3lg.fsf_-_@gnu.org
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?


TIA,
Ludo’.

Nicolas Goaziou <mail@nicolasgoaziou.fr> skribis:

Toggle quote (67 lines)
> 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,
B
B
Björn Höfling wrote on 25 Sep 2022 23:03
Re: [bug#53472] [PATCH] gnu: Add emacs-nim-mode
(name . Ludovic Courtès)(address . ludo@gnu.org)
20220925230341.72e2b069@alma-ubu.fritz.box
On Mon, 07 Mar 2022 21:51:23 +0100
Ludovic Courtès <ludo@gnu.org> wrote:

Toggle quote (7 lines)
> 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:


Björn
-----BEGIN PGP SIGNATURE-----

iF0EAREKAB0WIQQiGUP0np8nb5SZM4K/KGy2WT5f/QUCYzDCLgAKCRC/KGy2WT5f
/RSUAJ97fgijPAs+PyySNquTpNvyuSzVdgCfWUUAdzUprIp9NQkA+FTrKNYjmHs=
=dx2a
-----END PGP SIGNATURE-----


Closed
(
CN64G4KGTVQ2.3DHBH9UCLRLVQ@guix-aspire
On Sun Sep 25, 2022 at 10:03 PM BST, Björn Höfling wrote:
Toggle quote (2 lines)
> Closing, because this patchset has unresolved issues

Thank you :)

-- (
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 53472@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 53472
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch