diff options
Diffstat (limited to 'gnu/packages/vim.scm')
-rw-r--r-- | gnu/packages/vim.scm | 344 |
1 files changed, 311 insertions, 33 deletions
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index 4cc8b4a75f..642384adfc 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2020, 2021 Jack Hill <jackhill@jackhill.us> ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com> ;;; Copyright © 2021 Tissevert <tissevert+guix@marvid.fr> +;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -43,6 +44,7 @@ #:use-module (gnu packages attr) #:use-module (gnu packages autotools) #:use-module (gnu packages base) + #:use-module (gnu packages code) #:use-module (gnu packages enlightenment) #:use-module (gnu packages fontutils) #:use-module (gnu packages gawk) @@ -73,7 +75,7 @@ (define-public vim (package (name "vim") - (version "8.2.2689") + (version "8.2.3487") (source (origin (method git-fetch) (uri (git-reference @@ -82,7 +84,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "0l0hkr8cw7fdsfc5zzcxx3q1wmv9k3hrgalvffq0l69lviqdgh0p")))) + "1s09jvr1vv9zjk352vbfidfy5fidbf83kz2vk0kk6zv24j1yck24")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -98,6 +100,7 @@ (substitute* '("src/testdir/Makefile" "src/testdir/test_normal.vim" "src/testdir/test_popupwin.vim" + "src/testdir/test_shell.vim" "src/testdir/test_system.vim" "src/testdir/test_terminal.vim" "src/testdir/test_terminal2.vim") @@ -153,10 +156,7 @@ (string-append vimdir "/vimrc")) #t)))))) (inputs - `(("gawk" ,gawk) - ("ncurses" ,ncurses) - ("perl" ,perl) - ("tcsh" ,tcsh))) ; For runtime/tools/vim32 + (list gawk ncurses perl tcsh)) ; For runtime/tools/vim32 (native-inputs `(("libtool" ,libtool) ("guix.vim" ,(search-auxiliary-file "guix.vim")) @@ -244,9 +244,8 @@ with the editor vim."))) (zero? (system (string-append xorg-server "/bin/Xvfb " display " &"))))))))))) (native-inputs - `(("pkg-config" ,pkg-config) - ("xorg-server" ,xorg-server-for-tests) - ,@(package-native-inputs vim))) + (modify-inputs (package-native-inputs vim) + (prepend pkg-config xorg-server-for-tests))) (inputs `(("acl" ,acl) ("atk" ,atk) @@ -389,32 +388,32 @@ trouble using them, because you do not have to remember each snippet name.") (license license:expat)))) (define-public vim-scheme - (let ((commit "93827987c10f2d5dc519166a761f219204926d5f") - (revision "1")) + (let ((commit "e22fc8e199ef52f2efacd08e71c3add90d83b375") + (revision "3")) (package (name "vim-scheme") - (version (string-append "0.0.0-" revision "." (string-take commit 7))) + (version (git-version "0.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference - (url "http://git.foldling.org/vim-scheme.git") + (url "https://git.foldling.org/vim-scheme.git") (commit commit))) - (file-name (string-append name "-" version "-checkout")) + (file-name (git-file-name name version)) (sha256 (base32 - "1ynjr1109dxgj0lz261gmzz3wf5ap1m6j6hnvl3lcyv66a4y8pjv")))) + "04h946vr4f8wxap3wzqs69y2v8n50g2zbk22jsg2kxr4c01z5cbw")))) (build-system copy-build-system) (arguments '(#:install-plan - '(("after" "share/vim/vimfiles/") - ("ftplugin" "share/vim/vimfiles/") + '(("ftplugin" "share/vim/vimfiles/") + ("indent" "share/vim/vimfiles/") ("syntax" "share/vim/vimfiles/")))) (synopsis "Scheme syntax for Vim") (description "@code{vim-scheme} provides Scheme support for Vim (R7RS and CHICKEN).") (home-page "https://foldling.org/git/vim-scheme.git/") - (license license:public-domain)))) + (license license:unlicense)))) (define-public vim-luna (let ((commit "633619953dcf8577168e255230f96b05f28d6371") @@ -473,7 +472,7 @@ trouble using them, because you do not have to remember each snippet name.") (define-public vim-fugitive (package (name "vim-fugitive") - (version "3.3") + (version "3.6") (source (origin (method git-fetch) @@ -482,14 +481,14 @@ trouble using them, because you do not have to remember each snippet name.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 - "1ybmy2dk9zsmd3kyyj40qn20gzgd16n5p77sjxp8bspx3zb7km5y")))) + (base32 "17c3wzqkbzbf0nmlxpgk90yyv3d09209fqxqysand8bzb1cbfwzn")))) (build-system copy-build-system) (arguments '(#:install-plan '(("autoload" "share/vim/vimfiles/") ("doc" "share/vim/vimfiles/") ("ftdetect" "share/vim/vimfiles/") + ("ftplugin" "share/vim/vimfiles/") ("plugin" "share/vim/vimfiles/") ("syntax" "share/vim/vimfiles/")))) (home-page "https://github.com/tpope/vim-fugitive") @@ -780,11 +779,9 @@ refactor Vim in order to: (add-before 'build 'set-home (lambda _ (setenv "HOME" "/tmp")))))) (native-inputs - `(("pkg-config" ,pkg-config))) + (list pkg-config)) (inputs - `(("efl" ,efl) - ("msgpack" ,msgpack) - ("neovim" ,neovim))) + (list efl msgpack neovim)) (home-page "https://github.com/jeanguyomarch/eovim/") (synopsis "EFL GUI for Neovim") (description "Graphical Neovim interface based on the @acronym{EFL, Enlightenment @@ -795,7 +792,7 @@ and support for fonts with ligatures.") (define-public vifm (package (name "vifm") - (version "0.11") + (version "0.12") (source (origin (method url-fetch) @@ -806,7 +803,7 @@ and support for fonts with ligatures.") "vifm-" version ".tar.bz2"))) (sha256 (base32 - "0rqyd424y0g5b5basw2ybb60r9gar4f40d1xgzr3c2dsy4jpwvyh")))) + "1h5j4y704nciyzg3aaav8sl3r5h9mpwq8f28cj65nnxk6a7n3a9k")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--disable-build-timestamp") @@ -836,11 +833,9 @@ and support for fonts with ligatures.") (delete-file-recursively (string-append vifm "/vim"))) #t))))) (native-inputs - `(("groff" ,groff))) ; for the documentation + (list groff)) ; for the documentation (inputs - `(("libx11" ,libx11) - ("ncurses" ,ncurses) - ("perl" ,perl))) + (list libx11 ncurses perl)) (home-page "https://vifm.info/") (synopsis "Flexible vi-like file manager using ncurses") (description "Vifm is a file manager providing a @command{vi}-like usage @@ -885,8 +880,7 @@ With the package comes a plugin to use vifm as a vim file selector.") "13qgwkqbx012j5spis1aw8rb120rw0zphgjy1j58irax8r6j1ikb")))) (build-system python-build-system) (propagated-inputs - `(("python-greenlet" ,python-greenlet) - ("python-msgpack" ,python-msgpack))) + (list python-greenlet python-msgpack)) (arguments `(#:tests? #f)) (home-page "https://github.com/neovim/pynvim") @@ -1065,3 +1059,287 @@ your code every time you make a change. @code{Vim-slime} is an attempt at getting some of these features into Vim. It works with any REPL and isn't tied to Lisp.") (license license:expat)))) + +(define-public vim-paredit + ;; The last tagged version is from August 2013. + (let ((commit "97d51d099523b37bb35cbcf3564cbfb46e66e4ec") + (revision "1")) + (package + (name "vim-paredit") + (version (git-version "0.9.11" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kovisoft/paredit") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "07d5s20r0ssd7rir45vy0fqlci44gha1a81rcilgar227f3nw328")))) + (build-system copy-build-system) + (arguments + '(#:install-plan + '(("doc" "share/vim/vimfiles/") + ("plugin" "share/vim/vimfiles/")))) + (home-page "https://github.com/kovisoft/paredit") + (synopsis "Vim plugin for structured editing of Lisp S-expressions") + (description + "Paredit performs structured editing of Lisp S-expressions in Vim. +@code{Paredit.vim} is similar to @code{paredit.el} for Emacs.") + ;; License listed in plugin/paredit.vim. + (license license:public-domain)))) + +(define-public vim-surround + (package + (name "vim-surround") + (version "2.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tpope/vim-surround") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1b0bd5m5lv1p4d299mrwjfs2gk0zqwyaqdaid9hs9yqlxnr8s5nf")))) + (build-system copy-build-system) + (arguments + '(#:install-plan + '(("doc" "share/vim/vimfiles/") + ("plugin" "share/vim/vimfiles/")))) + (home-page "https://github.com/tpope/vim-surround") + (synopsis "Vim plugin for easy quoting and parenthesizing") + (description + "Surround.vim is all about \"surroundings\": parentheses, brackets, +quotes, XML tags, and more. The plugin provides mappings to easily delete, +change and add such surroundings in pairs.") + (license license:vim))) + +(define-public vim-ctrlp + (package + (name "vim-ctrlp") + (version "1.81") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ctrlpvim/ctrlp.vim") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0n68hg59h4rjn0ziqbsh5pr03l3kr98zk54659ny6vq107af1w96")))) + (build-system copy-build-system) + (arguments + '(#:install-plan + '(("autoload" "share/vim/vimfiles/") + ("doc" "share/vim/vimfiles/") + ("plugin" "share/vim/vimfiles/")))) + (home-page "https://ctrlpvim.github.io/ctrlp.vim/") + (synopsis "Fuzzy file, buffer, mru, tag, etc. finder for Vim") + (description + "CtrlP features: +@itemize +@item Written in pure Vimscript for MacVim, gVim and Vim 7.0+. +@item Full support for Vim's regexp as search patterns. +@item Built-in @acronym{Most Recently Used, MRU} files monitoring and search. +@item Built-in project's root finder. +@item Open multiple files at once. +@item Create new files and directories. +@item Execute Ex commands on an opening file (jump to a line, to a string or do +anything). +@item Optional cross-session caching and history allow for fast initialization. +@item Mappings and usage conform to Vim's conventions. +@end itemize") + (license license:vim))) + +(define-public vim-mucomplete + (package + (name "vim-mucomplete") + (version "1.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lifepillar/vim-mucomplete") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "054g80n09mmxxlh8xaic29bn8bgn3clvv732rymljdyvbj1mlhwd")))) + (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/lifepillar/vim-mucomplete") + (synopsis "MUcomplete is a minimalist autocompletion plugin for Vim") + (description + "MUcomplete is an implementation of chained (fallback) completion, +whereby several completion methods are attempted one after another until a +result is returned.") + (license license:expat))) + +(define-public vim-gitgutter + (let ((commit "256702dd1432894b3607d3de6cd660863b331818") + (revision "1")) + (package + (name "vim-gitgutter") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/airblade/vim-gitgutter") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0zpa7cs59a8sq0k3frlf9flpf30jcn239yrpmv40r7nqvxzglbpl")))) + (build-system copy-build-system) + (arguments + '(#:install-plan + '(("autoload" "share/vim/vimfiles/") + ("doc" "share/vim/vimfiles/") + ("plugin" "share/vim/vimfiles/")))) + (synopsis "Vim plugin which shows a git diff in the sign column") + (description + "A Vim plugin which shows a git diff in the sign column. It shows which +lines have been added, modified, or removed. You can also preview, stage, and +undo individual hunks; and stage partial hunks. The plugin also provides a hunk +text object. The signs are always up to date and the plugin never saves your +buffer.") + (home-page "https://github.com/airblade/vim-gitgutter") + (license license:expat)))) + +(define-public vim-characterize + (package + (name "vim-characterize") + (version "1.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tpope/vim-characterize") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0ppsbsd696ih40d9f76mdl9sd9y7p2pvm65qmvq4b2zhkv4xbpxz")))) + (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-characterize") + (synopsis "Vim plugin for showing Unicode character metadata") + (description + "In Vim, pressing @code{ga} on a character reveals its representation in +decimal, octal, and hex. Characterize.vim modernizes this with the following +additions: +@itemize +@item Unicode character names: @code{U+00A9 COPYRIGHT SYMBOL} +@item Vim digraphs (type after @code{<C-K>} to insert the character): +@code{Co}, @code{cO} +@item Emoji codes: @code{:copyright:} +@item HTML entities: @code{©} +@end itemize") + (license license:vim))) + +(define-public vim-tagbar + (package + (name "vim-tagbar") + (version "3.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/preservim/tagbar") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1fqfs8msmr6d4kpvxqp14sdjvp5fj52q5w5kz71myzcd4kqzmirp")))) + (build-system copy-build-system) + (arguments + '(#:install-plan + '(("autoload" "share/vim/vimfiles/") + ("doc" "share/vim/vimfiles/") + ("plugin" "share/vim/vimfiles/") + ("syntax" "share/vim/vimfiles/")) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'link-univerisal-ctags + (lambda* (#:key inputs #:allow-other-keys) + (let ((ctags (assoc-ref inputs "universal-ctags"))) + (substitute* "autoload/tagbar.vim" + (("(.*)universal-ctags']" all leader) + (string-append all "\n" + leader ctags "/bin/ctags']"))))))))) + (inputs + (list universal-ctags)) + (home-page "https://github.com/preservim/tagbar") + (synopsis "Vim plugin that displays tags in a window, ordered by scope") + (description + "Tagbar is a Vim plugin that provides an easy way to browse the tags of +the current file and get an overview of its structure. It does this by creating +a sidebar that displays the ctags-generated tags of the current file, ordered +by their scope. This means that for example methods in C++ are displayed under +the class they are defined in.") + (license license:vim))) + +(define-public vim-nerdtree + (package + (name "vim-nerdtree") + (version "6.10.16") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/preservim/nerdtree") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1si8qla86ng8cffbmfrk9gss0i3912yw0f1ph4bsiq0kk837lccp")))) + (build-system copy-build-system) + (arguments + '(#:install-plan + '(("autoload" "share/vim/vimfiles/") + ("doc" "share/vim/vimfiles/") + ("lib" "share/vim/vimfiles/") + ("nerdtree_plugin" "share/vim/vimfiles/") + ("plugin" "share/vim/vimfiles/") + ("syntax" "share/vim/vimfiles/")))) + (home-page "https://github.com/preservim/nerdtree") + (synopsis "Tree explorer plugin for Vim") + (description + "The NERDTree is a file system explorer for the Vim editor. Using this +plugin, users can visually browse complex directory hierarchies, quickly open +files for reading or editing, and perform basic file system operations.") + (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 +operations and styles which are invoked via key mappings and a menu. These +operations are available for most filetypes.") + (license license:cc0)))) |