[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