unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#60029] [PATCH core-updates 0/4] vim-build-system
@ 2022-12-13  0:38 Jonathan Scoresby
  2022-12-13  8:34 ` [bug#60029] [PATCH 1/4] guix: copy-build-system: allow install plan directives to specify output Jonathan Scoresby
                   ` (5 more replies)
  0 siblings, 6 replies; 19+ messages in thread
From: Jonathan Scoresby @ 2022-12-13  0:38 UTC (permalink / raw)
  To: 60029; +Cc: Jonathan Scoresby

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





^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2023-11-08 10:16 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-12-13  0:38 [bug#60029] [PATCH core-updates 0/4] vim-build-system Jonathan Scoresby
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

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