;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
-;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 HiPhish <hiphish@posteo.de>
;;; Copyright © 2019 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2019, 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020 Jack Hill <jackhill@jackhill.us>
+;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
(define-public vim
(package
(name "vim")
- (version "8.2.0343")
+ (version "8.2.2689")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "063i52h8v7f87zamrw2ph057f0x2nzwf1s0izrm2psy41cyf4wa3"))))
+ "0l0hkr8cw7fdsfc5zzcxx3q1wmv9k3hrgalvffq0l69lviqdgh0p"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
#:parallel-tests? #f
+ ;; Fix test_signals.vim. https://github.com/vim/vim/issues/7402
+ #:make-flags (list "CFLAGS=-D_REENTRANT")
#:phases
(modify-phases %standard-phases
- (add-after 'configure 'patch-config-files
+ (add-after 'configure 'patch-absolute-paths
(lambda _
(substitute* "runtime/tools/mve.awk"
(("/usr/bin/nawk") (which "gawk")))
(substitute* '("src/testdir/Makefile"
"src/testdir/test_normal.vim"
- "src/testdir/test_terminal.vim")
+ "src/testdir/test_popupwin.vim"
+ "src/testdir/test_system.vim"
+ "src/testdir/test_terminal.vim"
+ "src/testdir/test_terminal2.vim")
(("/bin/sh") (which "sh")))
+ (substitute* "src/testdir/test_autocmd.vim"
+ (("/bin/kill") (which "kill")))
#t))
- (add-before 'check 'set-TZDIR
+ (add-before 'check 'set-environment-variables
(lambda* (#:key inputs #:allow-other-keys)
;; One of the tests tests timezone-dependent functions.
(setenv "TZDIR"
(string-append (assoc-ref inputs "tzdata")
"/share/zoneinfo"))
+
+ ;; Make sure the TERM environment variable is set for the tests
+ (setenv "TERM" "xterm")
#t))
- (add-before 'check 'skip-failing-tests
+ (add-before 'check 'skip-or-fix-failing-tests
(lambda _
;; This test assumes that PID 1 is run as root and that the user
;; running the test suite does not have permission to kill(1, 0)
(substitute* "src/testdir/test_swap.vim"
(("if !IsRoot\\(\\)") "if 0"))
- ;; This test checks how the terminal looks after executing some
+ ;; These tests check how the terminal looks after executing some
;; actions. The path of the bash binary is shown, which results in
;; a difference being detected. Patching the expected result is
;; non-trivial due to the special format used, so skip the test.
(substitute* "src/testdir/test_terminal.vim"
+ ((".*Test_open_term_from_cmd.*" line)
+ (string-append line "return\n"))
((".*Test_terminal_postponed_scrollback.*" line)
+ (string-append line "return\n"))
+ ((".*Test_combining_double_width.*" line)
(string-append line "return\n")))
- #t)))))
+ (substitute* "src/testdir/test_popupwin.vim"
+ ((".*Test_popup_drag_termwin.*" line)
+ (string-append line "return\n")))
+ #t))
+ (add-after 'install 'install-guix.vim
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((vimdir (string-append (assoc-ref outputs "out") "/share/vim")))
+ (mkdir-p vimdir)
+ (copy-file (assoc-ref inputs "guix.vim")
+ (string-append vimdir "/vimrc"))
+ #t))))))
(inputs
`(("gawk" ,gawk)
("ncurses" ,ncurses)
("tcsh" ,tcsh))) ; For runtime/tools/vim32
(native-inputs
`(("libtool" ,libtool)
+ ("guix.vim" ,(search-auxiliary-file "guix.vim"))
;; For tests.
("tzdata" ,tzdata-for-tests)))
(package (inherit vim)
(name "xxd")
(arguments
- `(#:make-flags '("CC=gcc")
+ `(#:make-flags (list ,(string-append "CC=" (cc-for-target)))
#:tests? #f ; there are none
#:phases
(modify-phases %standard-phases
"--enable-xim"
"--disable-selinux"
"--enable-gui")
- ;; This flag fixes the following error:
- ;; .../libpython3.7m.a(pyexpat.o): undefined reference to symbol 'XML_FreeContentModel'
- ;; .../libexpat.so.1: error adding symbols: DSO missing from command line
- #:make-flags '("LDFLAGS=-lexpat")
,@(substitute-keyword-arguments (package-arguments vim)
+ ;; This flag fixes the following error:
+ ;; .../libpython3.7m.a(pyexpat.o): undefined reference to symbol 'XML_FreeContentModel'
+ ;; .../libexpat.so.1: error adding symbols: DSO missing from command line
+ ((#:make-flags flags)
+ `(append
+ (list "LDFLAGS=-lexpat")
+ (delete "CFLAGS=-D_REENTRANT" ,flags)))
((#:phases phases)
`(modify-phases ,phases
- (add-before 'check 'skip-previewpopup
- ;; This test fails when the path to the source is long. See:
- ;; https://github.com/vim/vim/issues/5615
- (lambda _
- (substitute* "src/testdir/test_popupwin.vim"
- ((".*Test_previewpopup.*" line)
- (string-append line "return\n")))))
- (add-before 'check 'skip-test87
- ;; This test fails for unknown reasons after switching
- ;; to a git checkout.
- (lambda _
- (delete-file "src/testdir/test87.ok")
- (delete-file "src/testdir/test87.in")
- (substitute* '("src/Makefile"
- "src/testdir/Make_vms.mms")
- (("test87") ""))
- (substitute* "src/testdir/Make_all.mak"
- (("test86.out \\\\") "test86")
- (("test87.out") ""))
- #t))
(add-before 'check 'start-xserver
(lambda* (#:key inputs #:allow-other-keys)
;; Some tests require an X server, but does not start one.
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/tpope/vim-fugitive.git")
+ (url "https://github.com/tpope/vim-fugitive")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
'(#:install-plan
'(("autoload" "share/vim/vimfiles/")
("doc" "share/vim/vimfiles/")
- ("plugin" "share/vim/vimfiles/")
- ("t" "share/vim/vimfiles/"))))
+ ("plugin" "share/vim/vimfiles/"))))
(synopsis "Statusline for Vim")
(description
"@code{vim-airline} is an extensible statusline for Vim.
(define-public editorconfig-vim
(package
(name "editorconfig-vim")
- (version "0.3.3")
+ (version "1.1.1")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/editorconfig/editorconfig-vim.git")
+ (url "https://github.com/editorconfig/editorconfig-vim")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
- "0vssfl1wjq0mv0p30c3dszwrh4yy90vwxmmdgqaxf5rykik7bdfd"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- (delete-file-recursively "plugin/editorconfig-core-py") #t))))
+ "0mp80bi2m56bb93szw87vy6q5s85yk9g91sl4pr51316rgdv5kkv"))))
(build-system copy-build-system)
(arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-editorconfig-path
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((editorconfig (assoc-ref inputs "editorconfig-core")))
- (substitute* "plugin/editorconfig.vim"
- (("/opt") editorconfig))
- #t))))
- #:install-plan
+ '(#:install-plan
'(("autoload" "share/vim/vimfiles/")
("doc" "share/vim/vimfiles/")
("plugin" "share/vim/vimfiles/"))))
- (inputs
- `(("editorconfig-core" ,editorconfig-core-c)))
(home-page "https://editorconfig.org/")
(synopsis "EditorConfig plugin for Vim")
(description "EditorConfig makes it easy to maintain the correct coding
(define-public neovim
(package
(name "neovim")
- (version "0.4.3")
+ (version "0.4.4")
(source
(origin
(method git-fetch)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "03p7pic7hw9yxxv7fbgls1f42apx3lik2k6mpaz1a109ngyc5kaj"))))
+ (base32 "11zyj6jvkwas3n6w1ckj3pk6jf81z1g7ngg4smmwm7c27y2a6f2m"))))
(build-system cmake-build-system)
(arguments
`(#:modules ((srfi srfi-26)
(define-public vifm
(package
(name "vifm")
- (version "0.10.1")
+ (version "0.11")
(source
(origin
(method url-fetch)
"vifm-" version ".tar.bz2")))
(sha256
(base32
- "0fyhxh7ndjn8fyjhj14ymkr3pjcs3k1xbs43g7xvvq85vdb6y04r"))))
+ "0rqyd424y0g5b5basw2ybb60r9gar4f40d1xgzr3c2dsy4jpwvyh"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--disable-build-timestamp")
(define-public python-pynvim
(package
(name "python-pynvim")
- (version "0.3.2")
+ (version "0.4.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "pynvim" version))
(sha256
(base32
- "01dybk4vs452pljn1q3il5z2sd313ki0lgiglc0xmjc6wp290r6g"))))
+ "13qgwkqbx012j5spis1aw8rb120rw0zphgjy1j58irax8r6j1ikb"))))
(build-system python-build-system)
(propagated-inputs
`(("python-greenlet" ,python-greenlet)
through its msgpack-rpc API.")
(license license:asl2.0)))
-(define-public python2-pynvim
- (package-with-python2 python-pynvim))
-
(define-public vim-guix-vim
(package
(name "vim-guix-vim")
- (version "0.1")
+ (version "0.1.1")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "1f8h8m96fqh3f9hy87spgh9kdqzyxl11n9s3rywvyq5xhn489bnk"))))
+ "10bfy0dgwizxr56b4272b7sqajpr6lnz332pzx055dis2zzjap8z"))))
(build-system copy-build-system)
(arguments
'(#:install-plan
(define-public vim-asyncrun
(package
(name "vim-asyncrun")
- (version "2.6.5")
+ (version "2.8.5")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "1n0yzv8psskhx8h4g7dz64h2llm9mnljhvl4hrnsjx6znkni8vwp"))))
+ "0mxsmjv497h6w8dxw0zvqginlx0yvrvrx4z3jhq2x3y2dfvpcm41"))))
(build-system copy-build-system)
(arguments
'(#:install-plan
NeoVim) to enable you to run shell commands in background and read output in the
quickfix window in realtime.")
(license license:expat)))
+
+(define-public vim-dispatch
+ (package
+ (name "vim-dispatch")
+ (version "1.8")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tpope/vim-dispatch")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1m8b5mn2zqlphzs6xfwykwmghf6p0wabrhpjmh7vav35jgcxc4wl"))))
+ (build-system copy-build-system)
+ (arguments
+ '(#:install-plan
+ '(("autoload" "share/vim/vimfiles/")
+ ("doc" "share/vim/vimfiles/")
+ ("plugin" "share/vim/vimfiles/"))))
+ (home-page "https://github.com/tpope/vim-dispatch")
+ (synopsis "Asynchronous build and test dispatcher")
+ (description "Leverage the power of Vim's compiler plugins without being
+bound by synchronicity. Kick off builds and test suites using one of several
+asynchronous adapters (including tmux, screen, and a headless mode), and when
+the job completes, errors will be loaded and parsed automatically.")
+ (license license:vim)))
+
+(define-public vim-eunuch
+ (let ((commit "33e875b31c8b811a0a47908884a5e2339106bbe8")
+ (revision "1"))
+ (package
+ (name "vim-eunuch")
+ (version (git-version "1.2" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/tpope/vim-eunuch")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1xadb22kd40swmww0qxmmkcpcq6viy8l167pjck5q32hfngll5d3"))))
+ (build-system copy-build-system)
+ (arguments
+ '(#:install-plan
+ '(("doc" "share/vim/vimfiles/")
+ ("plugin" "share/vim/vimfiles/"))))
+ (home-page "https://github.com/tpope/vim-eunuch")
+ (synopsis "Vim sugar for the UNIX shell commands")
+ (description "Vim sugar for the UNIX shell commands that need it the most.
+This package includes commands such as @code{SudoWrite} and @code{SudoEdit} and
+help working on Vim buffers and the files they reference with one command.")
+ (license license:vim))))