From: Jonathan Scoresby <me@jonscoresby.com>
To: 60029@debbugs.gnu.org
Cc: Jonathan Scoresby <me@jonscoresby.com>
Subject: [bug#60029] [PATCH core-updates 0/4] vim-build-system
Date: Mon, 12 Dec 2022 17:38:26 -0700 [thread overview]
Message-ID: <cover.1670891520.git.me@jonscoresby.com> (raw)
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
next reply other threads:[~2022-12-13 14:33 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-13 0:38 Jonathan Scoresby [this message]
2022-12-13 8:34 ` [bug#60029] [PATCH 1/4] guix: copy-build-system: allow install plan directives to specify output Jonathan Scoresby
2022-12-13 19:05 ` ( via Guix-patches via
2022-12-13 8:34 ` [bug#60029] [PATCH 2/4] gnu: vim: add relevant locations to 'package-path' instead of 'runtime-path' Jonathan Scoresby
2022-12-13 19:06 ` ( via Guix-patches via
2022-12-13 22:10 ` Jonathan Scoresby
2022-12-14 6:56 ` ( via Guix-patches via
2022-12-13 8:34 ` [bug#60029] [PATCH 3/4] guix: add vim-build-system Jonathan Scoresby
2022-12-13 8:34 ` [bug#60029] [PATCH 4/4] gnu: have vim packages use vim-build-system Jonathan Scoresby
2022-12-14 21:01 ` [bug#60029] [PATCH v2 1/4] guix: copy-build-system: allow install plan directives to specify output Jonathan Scoresby
2022-12-14 21:02 ` [bug#60029] [PATCH v2 2/4] gnu: vim: add relevant locations to 'package-path' instead of 'runtime-path' Jonathan Scoresby
2022-12-14 21:14 ` ( via Guix-patches via
2022-12-14 21:02 ` [bug#60029] [PATCH v2 3/4] guix: add vim-build-system Jonathan Scoresby
2022-12-14 21:02 ` [bug#60029] [PATCH v2 4/4] gnu: have vim packages use vim-build-system Jonathan Scoresby
2023-10-16 9:15 ` [bug#60029] [PATCH v3 0/3] Add vim-build-system Efraim Flashner
2023-10-16 9:15 ` [bug#60029] [PATCH v3 1/3] gnu: vim: Add vim packages to 'package-path' instead of 'runtime-path' Efraim Flashner
2023-10-16 9:15 ` [bug#60029] [PATCH v3 2/3] build-system: Add vim-build-system Efraim Flashner
2023-10-16 9:15 ` [bug#60029] [PATCH v3 3/3] gnu: Have vim packages use vim-build-system Efraim Flashner
2023-11-08 10:16 ` bug#60029: [PATCH v3 0/3] Add vim-build-system Efraim Flashner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1670891520.git.me@jonscoresby.com \
--to=me@jonscoresby.com \
--cc=60029@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).