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

From: Ricardo Wurmus <[email-masked]>
Date: Mon, 27 Jan 2020 23:28:20 +0100

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"))

-- 
Ricardo