(define-public vim
(package
(name "vim")
- (version "8.2.4701")
+ (version "9.0.0719")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "0yqqzai3ihfjjjjmn50pxlcqllpkmlrf5z59ma5rn0gv8wwwdw7h"))))
+ "1fmy2yf83w9429dp3hyx2l24mffjqmaxqcabdyyjcvmgx7zp3bii"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
(modify-phases %standard-phases
(add-after 'configure 'patch-absolute-paths
(lambda _
- (substitute* "runtime/tools/mve.awk"
- (("/usr/bin/nawk") (which "gawk")))
(substitute* '("src/testdir/Makefile"
"src/testdir/test_filetype.vim"
"src/testdir/test_normal.vim"
"src/testdir/test_popupwin.vim"
+ "src/testdir/test_prompt_buffer.vim"
"src/testdir/test_shell.vim"
"src/testdir/test_suspend.vim"
"src/testdir/test_terminal.vim"
(substitute* "src/testdir/test_writefile.vim"
(("!has\\('bsd'\\)") "0")))
- ;; 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)
- ;; it. This is not true in the build container, where both PID 1
- ;; and the test suite are run as the same user. Skip the test.
- ;; An alternative fix would be to patch the PID used to a random
- ;; 32-bit value and hope it never shows up in the test environment.
- (substitute* "src/testdir/test_swap.vim"
- (("if !IsRoot\\(\\)") "if 0"))
-
;; 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_messages.vim"
+ ((".*Test_echo_verbose_system.*" line)
+ (string-append line "return\n")))
(substitute* "src/testdir/test_terminal.vim"
((".*Test_open_term_from_cmd.*" line)
(string-append line "return\n"))
(define-public vim-fugitive
(package
(name "vim-fugitive")
- (version "3.6")
+ (version "3.7")
(source
(origin
(method git-fetch)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "17c3wzqkbzbf0nmlxpgk90yyv3d09209fqxqysand8bzb1cbfwzn"))))
+ (base32 "138290g2aph1jjhaza6biky5qi4ka6435s01bwxivllgb53g3irc"))))
(build-system copy-build-system)
(arguments
'(#:install-plan
editors.")
(license license:bsd-2)))
+(define-public neovim-packer
+ (let ((commit "3a9f9801f683946b9f1047d8f4bf9946c29e927d")
+ (revision "0"))
+ (package
+ (name "neovim-packer")
+ (version (git-version "0.0.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/wbthomason/packer.nvim")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1xn08z3a21mgfvp5i1nv57jnldwxwnl5nkryiff3zc99b1mizigp"))))
+ (build-system copy-build-system)
+ (arguments
+ (list #:install-plan
+ #~'(("lua" "share/nvim/site/pack/guix/start/packer.nvim/")
+ ("doc" "share/nvim/site/pack/guix/start/packer.nvim/"))))
+ (home-page "https://github.com/wbthomason/packer.nvim")
+ (synopsis "Plugin manager for Neovim")
+ (description
+ "This package provides a plugin manager for Neovim, inspired by Emacs's
+@code{use-package}. It's written in Lua, supports Luarocks dependencies, and
+is based on Vim's builtin plugin support.")
+ (license license:expat))))
+
(define-public neovim-syntastic
(package
(inherit vim-syntastic)
(define-public neovim
(package
(name "neovim")
- (version "0.6.1")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/neovim/neovim")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "10p6lg5yv9n6wcwdprwvvi56dfcm4wsj54nm0invyx3mhf7374lx"))))
+ (version "0.8.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/neovim/neovim")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0hkd49wkxfi6k1xa92hdd4b9z356r32hbpr78z1cigcln1wr0z7j"))))
(build-system cmake-build-system)
(arguments
- `(#:modules ((srfi srfi-26)
- (guix build cmake-build-system)
- (guix build utils))
- #:configure-flags
- (list ,@(if (member (if (%current-target-system)
- (gnu-triplet->nix-system (%current-target-system))
- (%current-system))
- (package-supported-systems luajit))
- '()
- '("-DPREFER_LUA:BOOL=YES")))
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'set-lua-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (let* ((lua-version "5.1")
- (lua-cpath-spec
- (lambda (prefix)
- (let ((path (string-append prefix "/lib/lua/" lua-version)))
- (string-append path "/?.so;" path "/?/?.so"))))
- (lua-path-spec
- (lambda (prefix)
- (let ((path (string-append prefix "/share/lua/" lua-version)))
- (string-append path "/?.lua;" path "/?/?.lua"))))
- (lua-inputs (map (cute assoc-ref inputs <>)
- '("lua"
- "lua-luv"
- "lua-lpeg"
- "lua-bitop"
- "lua-libmpack"))))
- (setenv "LUA_PATH"
- (string-join (map lua-path-spec lua-inputs) ";"))
- (setenv "LUA_CPATH"
- (string-join (map lua-cpath-spec lua-inputs) ";"))
- #t)))
- (add-after 'unpack 'prevent-embedding-gcc-store-path
- (lambda _
- ;; nvim remembers its build options, including the compiler with
- ;; its complete path. This adds gcc to the closure of nvim, which
- ;; doubles its size. We remove the refirence here.
- (substitute* "cmake/GetCompileFlags.cmake"
- (("\\$\\{CMAKE_C_COMPILER\\}") "/gnu/store/.../bin/gcc"))
- #t)))))
- (inputs
- `(("libuv" ,libuv)
- ("msgpack" ,msgpack)
- ("libtermkey" ,libtermkey)
- ("libvterm" ,libvterm)
- ("unibilium" ,unibilium)
- ("jemalloc" ,jemalloc)
- ("lua" ,(if (member (if (%current-target-system)
- (gnu-triplet->nix-system (%current-target-system))
- (%current-system))
- (package-supported-systems luajit))
- luajit
- lua-5.1))
- ("lua-luv" ,lua5.1-luv)
- ("lua-lpeg" ,lua5.1-lpeg)
- ("lua-bitop" ,lua5.1-bitop)
- ("lua-libmpack" ,lua5.1-libmpack)
- ("tree-sitter" ,tree-sitter)))
- (native-inputs
- `(("pkg-config" ,pkg-config)
- ("gettext" ,gettext-minimal)
- ("gperf" ,gperf)))
+ (list #:modules
+ '((srfi srfi-26) (guix build cmake-build-system)
+ (guix build utils))
+ #:configure-flags
+ #~(list #$@(if (member (if (%current-target-system)
+ (gnu-triplet->nix-system (%current-target-system))
+ (%current-system))
+ (package-supported-systems luajit))
+ '()
+ '("-DPREFER_LUA:BOOL=YES")))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'set-lua-paths
+ (lambda* _
+ (let* ((lua-version "5.1")
+ (lua-cpath-spec (lambda (prefix)
+ (let ((path (string-append
+ prefix
+ "/lib/lua/"
+ lua-version)))
+ (string-append
+ path
+ "/?.so;"
+ path
+ "/?/?.so"))))
+ (lua-path-spec (lambda (prefix)
+ (let ((path (string-append prefix
+ "/share/lua/"
+ lua-version)))
+ (string-append path "/?.lua;"
+ path "/?/?.lua"))))
+ (lua-inputs (list (or #$(this-package-input "lua")
+ #$(this-package-input "luajit"))
+ #$lua5.1-luv
+ #$lua5.1-lpeg
+ #$lua5.1-bitop
+ #$lua5.1-libmpack)))
+ (setenv "LUA_PATH"
+ (string-join (map lua-path-spec lua-inputs) ";"))
+ (setenv "LUA_CPATH"
+ (string-join (map lua-cpath-spec lua-inputs) ";"))
+ #t)))
+ (add-after 'unpack 'prevent-embedding-gcc-store-path
+ (lambda _
+ ;; nvim remembers its build options, including the compiler with
+ ;; its complete path. This adds gcc to the closure of nvim, which
+ ;; doubles its size. We remove the refirence here.
+ (substitute* "cmake/GetCompileFlags.cmake"
+ (("\\$\\{CMAKE_C_COMPILER\\}") "/gnu/store/.../bin/gcc"))
+ #t)))))
+ (inputs (list libuv-for-luv
+ msgpack
+ libtermkey
+ libvterm
+ unibilium
+ jemalloc
+ (if (member (if (%current-target-system)
+ (gnu-triplet->nix-system (%current-target-system))
+ (%current-system))
+ (package-supported-systems luajit))
+ luajit
+ lua-5.1)
+ lua5.1-luv
+ lua5.1-lpeg
+ lua5.1-bitop
+ lua5.1-libmpack
+ tree-sitter))
+ (native-inputs (list pkg-config gettext-minimal gperf))
(home-page "https://neovim.io")
(synopsis "Fork of vim focused on extensibility and agility")
- (description "Neovim is a project that seeks to aggressively
+ (description
+ "Neovim is a project that seeks to aggressively
refactor Vim in order to:
@itemize
@item Split the work between multiple developers
@item Enable advanced external UIs without modifications to the core
@item Improve extensibility with a new plugin architecture
-@end itemize\n")
+@end itemize
+")
;; Neovim is licensed under the terms of the Apache 2.0 license,
;; except for parts that were contributed under the Vim license.
(license (list license:asl2.0 license:vim))))
(define-public vifm
(package
(name "vifm")
- (version "0.12")
+ (version "0.12.1")
(source
(origin
(method url-fetch)
"vifm-" version ".tar.bz2")))
(sha256
(base32
- "1h5j4y704nciyzg3aaav8sl3r5h9mpwq8f28cj65nnxk6a7n3a9k"))))
+ "122ncp319xisxjxcy33bshjib6905bb0aaz0xjdfkkycplz83qlg"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--disable-build-timestamp")
(("/bin/bash") (which "bash")))
;; This test segfaults
(substitute* "tests/Makefile"
- (("misc") ""))
- #t))
+ (("misc") ""))))
(add-after 'install 'install-vim-plugin-files
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(copy-recursively (string-append vifm "/vim")
vimfiles)
(delete-file-recursively (string-append vifm "/colors"))
- (delete-file-recursively (string-append vifm "/vim")))
- #t)))))
+ (delete-file-recursively (string-append vifm "/vim"))))))))
(native-inputs
(list groff)) ; for the documentation
(inputs
(license license:wtfpl2)))
(define-public vim-nerdcommenter
- (let ((commit "a65465d321f2f8a74b2ffa540b9b87563f7e12e8")
- (revision "1"))
- (package
- (name "vim-nerdcommenter")
- (version (git-version "2.5.2" revision commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/preservim/nerdcommenter")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "00ir65iv8jfbgzjmj7332fmydh0qhabbhx8zbvd3j6pgfxqpaafw"))))
- (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/preservim/nerdcommenter")
- (synopsis "Vim plugin for easy commenting of code")
- (description
- "NERD commenter is a Vim plugin that provides many different commenting
+ (package
+ (name "vim-nerdcommenter")
+ (version "2.6.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/preservim/nerdcommenter")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1ka2rqn7rby55aps3iblh1dcqxm7m7qx72mpkz6y2aaj8mkj0zyd"))))
+ (build-system copy-build-system)
+ (arguments
+ (list
+ #:install-plan
+ #~`(("autoload" "share/vim/vimfiles/")
+ ("doc" "share/vim/vimfiles/")
+ ("plugin" "share/vim/vimfiles/"))))
+ (home-page "https://github.com/preservim/nerdcommenter")
+ (synopsis "Vim plugin for easy commenting of code")
+ (description
+ "NERD commenter is a Vim plugin that provides many different commenting
operations and styles which are invoked via key mappings and a menu. These
operations are available for most filetypes.")
- (license license:cc0))))
+ (license license:cc0)))