;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
-;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
+;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
#:use-module (gnu packages acl)
#:use-module (gnu packages admin) ; For GNU hostname
#:use-module (gnu packages attr)
+ #:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gawk)
#:use-module (gnu packages serialization)
#:use-module (gnu packages shells)
#:use-module (gnu packages tcl)
+ #:use-module (gnu packages text-editors)
#:use-module (gnu packages terminals)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xorg))
(define-public vim
(package
(name "vim")
- (version "8.1.0551")
+ (version "8.1.0644")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/vim/vim/archive/v"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/vim/vim")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1wi6j9w04wg3hxsch3izl2mxb0065vpvxscz19zjn5ypkfypnm8n"))))
+ "1xksb2v8rw1zgrd5fwqvrh44lf277k85sad2y4ia1z17y7i8j2fl"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
("ncurses" ,ncurses)
("perl" ,perl)
("tcsh" ,tcsh))) ; For runtime/tools/vim32
- (home-page "http://www.vim.org/")
+ (native-inputs
+ `(("libtool" ,libtool)))
+ (home-page "https://www.vim.org/")
(synopsis "Text editor based on vi")
(description
"Vim is a highly configurable text editor built to enable efficient text
(install-file "xxd" bin)
#t))))))
(inputs `())
+ (native-inputs `())
(synopsis "Hexdump utility from vim")
(description "This package provides the Hexdump utility xxd that comes
with the editor vim.")))
,@(substitute-keyword-arguments (package-arguments vim)
((#:phases phases)
`(modify-phases ,phases
+ (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.
display " &")))))))))))
(native-inputs
`(("pkg-config" ,pkg-config)
- ("xorg-server" ,xorg-server)))
+ ("xorg-server" ,xorg-server)
+ ,@(package-native-inputs vim)))
(inputs
`(("acl" ,acl)
("atk" ,atk)
(define-public vim-fugitive
(package
(name "vim-fugitive")
- (version "2.3")
+ (version "2.5")
(source
(origin
(method git-fetch)
(file-name (git-file-name name version))
(sha256
(base32
- "17s94a8g5z0lrs7yy4nyqyvp9ykys5ws2ar3m3c0bjsn0iazd7m3"))))
+ "17yz7gxn7a49jzndr4z5vnk1y4a6c22qss3mwxzmq4m46fni0k8q"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(vimfiles (string-append out "/share/vim/vimfiles"))
+ (autoload (string-append vimfiles "/autoload"))
(doc (string-append vimfiles "/doc"))
+ (ftdetect (string-append vimfiles "/ftdetect"))
(plugin (string-append vimfiles "/plugin")))
+ (copy-recursively "autoload" autoload)
(copy-recursively "doc" doc)
+ (copy-recursively "ftdetect" ftdetect)
(copy-recursively "plugin" plugin)
#t))))))
(home-page "https://github.com/tpope/vim-fugitive")
(define-public vim-airline
(package
(name "vim-airline")
- (version "0.9")
+ (version "0.10")
(source
(origin
(method git-fetch)
(file-name (git-file-name name version))
(sha256
(base32
- "0hq3304rhakx7x1v7wll7gxinmfz6561bq97qpj8jrk19rhcab75"))))
+ "0k3c6p3xy6514n1n347ci4q9xjm9wwqirpdysam6f7r39crgmfhd"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f
(home-page "https://github.com/vim-syntastic/syntastic")
(license license:wtfpl2)))
+(define-public editorconfig-vim
+ (package
+ (name "editorconfig-vim")
+ (version "0.3.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/editorconfig/editorconfig-vim.git")
+ (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))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f ; tests require ruby and plugin-test repository
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'build)
+ (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)))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (vimfiles (string-append out "/share/vim/vimfiles"))
+ (doc (string-append vimfiles "/doc"))
+ (plugin (string-append vimfiles "/plugin"))
+ (autoload (string-append vimfiles "/autoload")))
+ (copy-recursively "doc" doc)
+ (copy-recursively "autoload" autoload)
+ (copy-recursively "plugin" plugin)
+ #t))))))
+ (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
+style when switching between different text editors and between different
+projects. The EditorConfig project maintains a file format and plugins for
+various text editors which allow this file format to be read and used by those
+editors.")
+ (license license:bsd-2)))
+
(define-public neovim-syntastic
(package
(inherit vim-syntastic)
(define-public neovim
(package
(name "neovim")
- (version "0.2.0")
+ (version "0.3.4")
(source
(origin
(method url-fetch)
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1db27zm6cldm1aw0570vii1bxc16a34x8lissl1h9rizsbwn7qkj"))))
+ "03mwfhr9rq86p8lypbdfyl7c7xyn6nzv2ipd8jc33bxzvs5i0hd6"))))
(build-system cmake-build-system)
(arguments
`(#:modules ((srfi srfi-26)
(guix build cmake-build-system)
(guix build utils))
+ #:configure-flags '("-DPREFER_LUA:BOOL=YES")
#:phases
(modify-phases %standard-phases
+ ;; TODO: remove 'patch-tic on update
+ ;; see: https://github.com/neovim/neovim/issues/9687
+ (add-after 'unpack 'patch-tic
+ (lambda _
+ (substitute* "src/nvim/tui/tui.c"
+ (("value != NULL") "value != NULL && value != (char *)-1"))
+ #t))
(add-after 'unpack 'set-lua-paths
(lambda* (#:key inputs #:allow-other-keys)
(let* ((lua-version "5.2")
`(("pkg-config" ,pkg-config)
("gettext" ,gettext-minimal)
("gperf" ,gperf)))
- (home-page "http://neovim.io")
+ (home-page "https://neovim.io")
(synopsis "Fork of vim focused on extensibility and agility")
(description "Neovim is a project that seeks to aggressively
refactor Vim in order to: