guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#60029] [PATCH core-updates 0/4] vim-build-system


From: Jonathan Scoresby
Subject: [bug#60029] [PATCH core-updates 0/4] vim-build-system
Date: Mon, 12 Dec 2022 17:38:26 -0700

Hey guix! I know there have been attempts to do this in the past, and I
know that emacs is the thing to use in the guix world, but I made a
build system for vim plugins. I had a few goals in this attempt:

1. Better understand Guile Scheme and Guix, as I am new to both
2. Make help tags available on vim plugins installed with guix
   (see issues 51540 30385)
3. Take advantage of vim's built-in package manager
4. Make installing plugins for vim and neovim as easy as possible

There are a lot of plugin managers for vim, but I figured that if guix
is such a great package manager, you shouldn't need third party
solutions.

I thought of a lot of ways to separate vim and neovim plugins. It's
not neccesarily a trivial problem because:
        1. neovim can use vim plugins, but not usually vice-versa. 
        2. I wanted to use vim to generate helptags for vim plugins and
        neovim to generate helptags for neovim plugins as the 
        implemenations are slightly different and I wanted avoid any 
        possible errors, but I also didn't want to have to include 
        neovim as an input when unneccesary.
        3. I wanted there to be as much code reuse as possible.

For these reasons, I decided that for plugins that are compatible with
both, a package would specify a neovim output. For both vim and neovim, 
all plugins are installed to the "pack" folder where neovim and vim both
look for packages automatically. By default, plugins are installed to 
the "start" folder, but that can be changed for a specific package using 
the "mode" keyword.  

I based this off of 'core-updates' just because I made a slight change
to the copy-build-system so that files could potentially be installed to
an output other than "out." I believe this causes a lot of packages to
rebuild even though it doesn't have any actuall effects. If this
doesn't belong in core-updates, let me know.

Jonathan Scoresby (4):
  guix: copy-build-system: allow install plan directives to specify
    output
  gnu: vim: add relevant locations to 'package-path' instead of
    'runtime-path'
  guix: add vim-build-system
  gnu: have vim packages use vim-build-system

 gnu/packages/aux-files/guix.vim  |  10 +-
 gnu/packages/vim.scm             | 234 +++++--------------------------
 guix/build-system/vim.scm        | 160 +++++++++++++++++++++
 guix/build/copy-build-system.scm |  12 +-
 guix/build/vim-build-system.scm  | 137 ++++++++++++++++++
 5 files changed, 345 insertions(+), 208 deletions(-)
 create mode 100644 guix/build-system/vim.scm
 create mode 100644 guix/build/vim-build-system.scm


base-commit: 6454208222d6e7760daa964b590f35ea75ffe0e5
-- 
2.38.1






reply via email to

[Prev in Thread] Current Thread [Next in Thread]