diff mbox series

[bug#54221,v6,1/2] gnu: vim: Use native-search-paths to search for plugins.

Message ID 81321483b3ea03870a94a5fce3931ba176269f73.1653352914.git.seerlite@nixnet.email
State New
Headers show
Series [bug#54221,v6,1/2] gnu: vim: Use native-search-paths to search for plugins. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

SeerLite May 24, 2022, 12:41 a.m. UTC
Previously a hardcoded list of directories was used, which albeit quite
accurate during normal use, didn't fully respect the active Guix environment
and didn't make use of Guix's search-paths feature.

* gnu/packages/aux-files/guix.vim: Use 'GUIX_VIMRUNTIME' to set the runtimepath.
* gnu/packages/vim.scm (vim)[native-search-paths]: Add search path
specification for 'GUIX_VIMRUNTIME'.
[phases]: Search for tzdata files in the correct input fields.
---
 gnu/packages/aux-files/guix.vim | 11 ++++-------
 gnu/packages/vim.scm            | 10 ++++++++--
 2 files changed, 12 insertions(+), 9 deletions(-)

Comments

SeerLite May 24, 2022, 1:52 a.m. UTC | #1
The last patches were broken. I did not realize I had done a "make 
clean" inside my Guix repo and that made ./pre-inst-env guix use my 
profile channel instead of the repo. Sorry about that:)

Now both build fine and work correctly. I also tested cross-compilation 
(guix build --target=x86_64-linux-gnu and also 
--target=aarch64-linux-gnu) but both fail. Note however that that was 
also the case before my patches, and I've got no idea how to get it 
working myself.

SeerLite
diff mbox series

Patch

diff --git a/gnu/packages/aux-files/guix.vim b/gnu/packages/aux-files/guix.vim
index 9397c53701..3c13a16b7d 100644
--- a/gnu/packages/aux-files/guix.vim
+++ b/gnu/packages/aux-files/guix.vim
@@ -1,10 +1,7 @@ 
-" This appends all of the vim plugins to the end of Vim's runtimepath.
-for directory in ["/run/current-system/profile", $HOME . "/.guix-profile", $HOME ."/.guix-home/profile", $GUIX_PROFILE, $GUIX_ENVIRONMENT]
-    let vimplugins = directory . "/share/vim/vimfiles"
-    if isdirectory(vimplugins)
-        let &rtp = join([&rtp,vimplugins], ',')
-    endif
-endfor
+if !empty($GUIX_VIMRUNTIME)
+    set rtp+=$GUIX_VIMRUNTIME
+endif
+
 " Unconditionally add */after directories last, as intended by upstream
 " TODO: Remove duplicate */after directories
 for directory in [$VIM . "/vimfiles", $HOME ."/.vim"]
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index caf9ea85b3..791aecbb83 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -13,6 +13,7 @@ 
 ;;; Copyright © 2021 Tissevert <tissevert+guix@marvid.fr>
 ;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
 ;;; Copyright © 2022 Luis Henrique Gomes Higino <luishenriquegh2701@gmail.com>
+;;; Copyright © 2022 SeerLite <seerlite@nixnet.email>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -108,10 +109,10 @@  (define-public vim
              (substitute* "src/testdir/test_autocmd.vim"
                (("/bin/kill") (which "kill")))))
          (add-before 'check 'set-environment-variables
-           (lambda* (#:key inputs #:allow-other-keys)
+           (lambda* (#:key native-inputs inputs #:allow-other-keys)
              ;; One of the tests tests timezone-dependent functions.
              (setenv "TZDIR"
-                     (search-input-directory inputs "share/zoneinfo"))
+                     (search-input-directory (or native-inputs inputs) "share/zoneinfo"))
 
              ;; Make sure the TERM environment variable is set for the tests
              (setenv "TERM" "xterm")))
@@ -147,6 +148,11 @@  (define-public vim
                (mkdir-p vimdir)
                (copy-file (assoc-ref inputs "guix.vim")
                           (string-append vimdir "/vimrc"))))))))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "GUIX_VIMRUNTIME")
+            (separator ",")
+            (files (list "share/vim/vimfiles")))))
     (inputs
      (list gawk ncurses perl tcsh))                 ; For runtime/tools/vim32
     (native-inputs