diff mbox series

[bug#39311] gnu: Add guix-vim.

Message ID 20200127172032.25825-1-efraim@flashner.co.il
State Accepted
Headers show
Series [bug#39311] gnu: Add guix-vim. | expand

Checks

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

Commit Message

Efraim Flashner Jan. 27, 2020, 5:20 p.m. UTC
* gnu/packages/vim.scm (guix-vim): New variable.
---
 gnu/packages/vim.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

Comments

Ricardo Wurmus Jan. 27, 2020, 10:28 p.m. UTC | #1
Hi Efraim,

> * gnu/packages/vim.scm (guix-vim): New variable.
> ---
>  gnu/packages/vim.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 42 insertions(+)
>
> diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
> index b5952e3e21..a2d715dc1c 100644
> --- a/gnu/packages/vim.scm
> +++ b/gnu/packages/vim.scm
> @@ -938,3 +938,45 @@ through its msgpack-rpc API.")
>  
>  (define-public python2-pynvim
>    (package-with-python2 python-pynvim))
> +
> +(define-public guix-vim

Looks like we usually prefix vim extensions with “vim-”, so should this
be “vim-guix” instead…?

> +         (replace 'install
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (let* ((out (assoc-ref outputs "out"))
> +                    (vimfiles (string-append out "/share/vim/vimfiles"))
> +                    (compiler (string-append vimfiles "/compiler"))
> +                    (doc      (string-append vimfiles "/doc"))
> +                    (indent   (string-append vimfiles "/indent"))
> +                    (ftdetect (string-append vimfiles "/ftdetect"))
> +                    (ftplugin (string-append vimfiles "/ftplugin"))
> +                    (syntax   (string-append vimfiles "/syntax")))
> +               (copy-recursively "compiler" compiler)
> +               (copy-recursively "doc" doc)
> +               (copy-recursively "indent" indent)
> +               (copy-recursively "ftdetect" ftdetect)
> +               (copy-recursively "ftplugin" ftplugin)
> +               (copy-recursively "syntax" syntax)
> +               #t))))))

The repetition here tickles me a little.  How about this instead…?

(for-each (lambda (dir)
           (copy-recursively dir (string-append vimfiles "/" dir)))
          '("compiler" "doc" "indent" "ftdetect" "ftplugin" "syntax"))
Efraim Flashner Jan. 28, 2020, 7:43 a.m. UTC | #2
On Mon, Jan 27, 2020 at 11:28:20PM +0100, Ricardo Wurmus wrote:
> 
> Hi Efraim,
> 
> > * gnu/packages/vim.scm (guix-vim): New variable.
> > ---
> >  gnu/packages/vim.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
> >  1 file changed, 42 insertions(+)
> >
> > diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
> > index b5952e3e21..a2d715dc1c 100644
> > --- a/gnu/packages/vim.scm
> > +++ b/gnu/packages/vim.scm
> > @@ -938,3 +938,45 @@ through its msgpack-rpc API.")
> >  
> >  (define-public python2-pynvim
> >    (package-with-python2 python-pynvim))
> > +
> > +(define-public guix-vim
> 
> Looks like we usually prefix vim extensions with “vim-”, so should this
> be “vim-guix” instead…?

Good call

> 
> > +         (replace 'install
> > +           (lambda* (#:key outputs #:allow-other-keys)
> > +             (let* ((out (assoc-ref outputs "out"))
> > +                    (vimfiles (string-append out "/share/vim/vimfiles"))
> > +                    (compiler (string-append vimfiles "/compiler"))
> > +                    (doc      (string-append vimfiles "/doc"))
> > +                    (indent   (string-append vimfiles "/indent"))
> > +                    (ftdetect (string-append vimfiles "/ftdetect"))
> > +                    (ftplugin (string-append vimfiles "/ftplugin"))
> > +                    (syntax   (string-append vimfiles "/syntax")))
> > +               (copy-recursively "compiler" compiler)
> > +               (copy-recursively "doc" doc)
> > +               (copy-recursively "indent" indent)
> > +               (copy-recursively "ftdetect" ftdetect)
> > +               (copy-recursively "ftplugin" ftplugin)
> > +               (copy-recursively "syntax" syntax)
> > +               #t))))))
> 
> The repetition here tickles me a little.  How about this instead…?
> 
> (for-each (lambda (dir)
>            (copy-recursively dir (string-append vimfiles "/" dir)))
>           '("compiler" "doc" "indent" "ftdetect" "ftplugin" "syntax"))

This will also be good if we ever get around to making a
vim-build-system.
diff mbox series

Patch

diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index b5952e3e21..a2d715dc1c 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -938,3 +938,45 @@  through its msgpack-rpc API.")
 
 (define-public python2-pynvim
   (package-with-python2 python-pynvim))
+
+(define-public guix-vim
+  (package
+    (name "guix-vim")
+    (version "0.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://gitlab.com/Efraim/guix.vim")
+                     (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1f8h8m96fqh3f9hy87spgh9kdqzyxl11n9s3rywvyq5xhn489bnk"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (delete 'build)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (vimfiles (string-append out "/share/vim/vimfiles"))
+                    (compiler (string-append vimfiles "/compiler"))
+                    (doc      (string-append vimfiles "/doc"))
+                    (indent   (string-append vimfiles "/indent"))
+                    (ftdetect (string-append vimfiles "/ftdetect"))
+                    (ftplugin (string-append vimfiles "/ftplugin"))
+                    (syntax   (string-append vimfiles "/syntax")))
+               (copy-recursively "compiler" compiler)
+               (copy-recursively "doc" doc)
+               (copy-recursively "indent" indent)
+               (copy-recursively "ftdetect" ftdetect)
+               (copy-recursively "ftplugin" ftplugin)
+               (copy-recursively "syntax" syntax)
+               #t))))))
+    (home-page "https://gitlab.com/Efraim/guix.vim")
+    (synopsis "Guix integration in Vim")
+    (description "This package provides support for GNU Guix in Vim.")
+    (license license:vim)))