;;; GNU Guix --- Functional package management for GNU
;;;
;;; Copyright © 2022 (unmatched parenthesis <paren@disroot.org>
;;;
;;; This file is not part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (guixrus packages vim)
#:use-module (guix build-system copy)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (gnu packages vim))
(define-public neovim-mini
(let ((commit "14960b8c392fba3b6b53ec05ee379f5d8ea62156")
(revision "1"))
(package
(name "neovim-mini")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/echasnovski/mini.nvim")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0fgiacic4hdrr2rg3jcjii9afcw8g575fm3sqsp6qkd4bd4gzia8"))))
(build-system copy-build-system)
(arguments
`(#:install-plan
'(("colors" "share/nvim/site/pack/guix/start/mini/")
("doc" "share/nvim/site/pack/guix/start/mini/")
("lua" "share/nvim/site/pack/guix/start/mini/"))))
(home-page "https://github.com/echasnovski/mini.nvim")
(synopsis "A set of small, self contained addons for Neovim")
(description "mini is a collection of small, high quality Neovim modules written in Lua.")
(license license:expat))))
(define-public vim-gas
(let ((commit "2ca95211b465be8e2871a62ee12f16e01e64bd98")
(revision "0"))
(package
(name "vim-gas")
(version (git-version "0.16" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Shirk/vim-gas")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1lc75g9spww221n64pjxwmill5rw5vix21nh0lhlaq1rl2y89vd6"))))
(build-system copy-build-system)
(arguments
`(#:install-plan
'(("syntax" "share/vim/vimfiles/"))))
(home-page "https://github.com/Shirk/vim-gas")
(synopsis "GNU Assembler syntax files for Vim")
(description "This Vim plugin provides syntax highlighting and indentation support for
the GNU Assembler (@code{gas}.)")
(license license:bsd-3))))
(define-public vim-gas-for-neovim
(package/inherit vim-gas
(name "vim-gas-for-neovim")
(arguments
`(#:install-plan
'(("syntax" "share/nvim/site/pack/guix/start/gas/"))))))
(define-public vim-riscv
(let ((commit "887f1def18e6b7f09ca9be31ec3ac27da9d1ac37")
(revision "0"))
(package
(name "vim-riscv")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/kylelaker/riscv.vim")
(commit commit)))
(sha256
(base32 "0f1z2c71qjjj14kwkjilw3qlmsm5qhvrjfcgdy8ax7qs8kd53gaq"))))
(build-system copy-build-system)
(arguments
`(#:install-plan
'(("ftdetect" "share/vim/vimfiles/")
("syntax" "share/vim/vimfiles/"))))
(home-page "https://github.com/kylelaker/riscv.vim")
(synopsis "RISC-V syntax highlighting for Vim")
(description "This package provides RISC-V assembly syntax highlighting for the
Vim text editor.")
(license license:expat))))
(define-public vim-riscv-for-neovim
(package/inherit vim-riscv
(name "vim-riscv-for-neovim")
(arguments
`(#:install-plan
'(("ftdetect" "share/nvim/site/pack/guix/start/riscv/")
("syntax" "share/nvim/site/pack/guix/start/riscv/"))))))
(define-public vim-editorconfig-for-neovim
(package/inherit editorconfig-vim
(name "vim-editorconfig-for-neovim")
(arguments
`(#:install-plan
'(("autoload" "share/nvim/site/pack/guix/start/editorconfig/")
("doc" "share/nvim/site/pack/guix/start/editorconfig/")
("plugin" "share/nvim/site/pack/guix/start/editorconfig/"))))))
(define-public vim-bats
(let ((commit "3e64c95d7a55feb33492717d101c9eb92a8d0a9a")
(revision "0"))
(package
(name "vim-bats")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/rosstimson/bats.vim")
(commit commit)))
(sha256
(base32 "1laz1jx754h1lvz9h50qassyxw78kd1ah6v66dxnrxdv5b7z31d0"))))
(build-system copy-build-system)
(arguments
`(#:install-plan
'(("after" "share/vim/vimfiles/")
("ftdetect" "share/vim/vimfiles/"))))
(home-page "https://github.com/rosstimson/bats.vim")
(synopsis "Vim support for the Bats testing framework")
(description "This Vim plugin extends the built-in `sh.vim` to support the Bats
(Bash Automated Testing Framework) testing framework's syntax.")
(license license:expat))))
(define-public vim-bats-for-neovim
(package/inherit vim-bats
(name "vim-bats-for-neovim")
(arguments
`(#:install-plan
'(("after" "share/nvim/site/pack/guix/start/bats/")
("ftdetect" "share/nvim/site/pack/guix/start/bats/"))))))
(define-public vim-hare
(let ((commit "22e2b66129c6c65025274159dc975d3ca865d57b")
(revision "0"))
(package
(name "vim-hare")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://git.sr.ht/~sircmpwn/hare.vim")
(commit commit)))
(sha256
(base32
"11df3ch5smdgbkgafz3w3bpq5ddlb9pwwll3kwyqyspwa5vp30qd"))))
(build-system copy-build-system)
(arguments
`(#:install-plan
'(("compiler" "share/vim/vimfiles/")
("ftdetect" "share/vim/vimfiles/")
("ftplugin" "share/vim/vimfiles/")
("indent" "share/vim/vimfiles/")
("syntax" "share/vim/vimfiles/"))))
(home-page "https://sr.ht/~sircmpwn/hare.vim")
(synopsis "Vim support for Hare")
(description "This package provides syntax highlighting and indentation in Vim
for the Hare programming language.")
(license license:vim))))
(define-public vim-hare-for-neovim
(package/inherit vim-hare
(name "vim-hare-for-neovim")
(arguments
`(#:install-plan
'(("compiler" "share/nvim/site/pack/guix/start/hare/")
("ftdetect" "share/nvim/site/pack/guix/start/hare/")
("ftplugin" "share/nvim/site/pack/guix/start/hare/")
("indent" "share/nvim/site/pack/guix/start/hare/")
("syntax" "share/nvim/site/pack/guix/start/hare/"))))))
(define-public neovim-luasnip
(let ((commit "6b67cb12747225a6412d8263bb97d6d2b8d9366a")
(revision "1"))
(package
(name "neovim-luasnip")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/L3MON4D3/LuaSnip")
(commit commit)))
(sha256
(base32 "08a1kk8z3mcq65dh0hi44188dxkqjfg3yilr8viamyni1kwy7gf3"))))
(build-system copy-build-system)
(arguments
`(#:install-plan
'(("doc" "share/nvim/site/pack/guix/start/markdown/")
("ftdetect" "share/nvim/site/pack/guix/start/markdown/")
("ftplugin" "share/nvim/site/pack/guix/start/markdown/")
("lua" "share/nvim/site/pack/guix/start/markdown/")
("plugin" "share/nvim/site/pack/guix/start/markdown/")
("syntax" "share/nvim/site/pack/guix/start/markdown/"))))
(home-page "https://github.com/L3MON4D3/LuaSnip")
(synopsis "A snippets plugin for Neovim written in Lua")
(description "This Neovim plugin provides a code snippet engine written in Lua.")
(license license:asl2.0))))
(define-public neovim-cmp
(let ((commit "b5433f901ebffc9e01b82ae13da9a92d49569205")
(revision "1"))
(package
(name "neovim-cmp")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hrsh7th/nvim-cmp")
(commit commit)))
(sha256
(base32 "03m369gqyz2yrnspvp3w5q93hd09hfdg9dv8748yqh0bb30lrk49"))))
(build-system copy-build-system)
(arguments
`(#:install-plan
'(("autoload" "share/nvim/site/pack/guix/start/cmp/")
("doc" "share/nvim/site/pack/guix/start/cmp/")
("lua" "share/nvim/site/pack/guix/start/cmp/")
("plugin" "share/nvim/site/pack/guix/start/cmp/"))))
(home-page "https://github.com/hrsh7th/nvim-cmp")
(synopsis "Autocompletion for Neovim")
(description "A completion engine for neovim written in Lua. Completion
sources are installed from external repositories and 'sourced'.")
(license license:expat))))
(define-public neovim-cmp-lsp
(let ((commit "ebdfc204afb87f15ce3d3d3f5df0b8181443b5ba")
(revision "0"))
(package
(name "neovim-cmp-lsp")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hrsh7th/cmp-nvim-lsp")
(commit commit)))
(sha256
(base32 "0kmaxxdxlp1s5w36khnw0sdrbv1lr3p5n9r90h6h7wv842n4mnca"))))
(build-system copy-build-system)
(arguments
`(#:install-plan
'(("after" "share/nvim/site/pack/guix/start/cmp-lsp/")
("lua" "share/nvim/site/pack/guix/start/cmp-lsp/"))))
(home-page "https://github.com/hrsh7th/cmp-nvim-lsp")
(synopsis "LSP source for @code{neovim-cmp}")
(description "This plugin provides an LSP backend for the Neovim @code{cmp} plugin.")
(license license:expat))))
(define-public neovim-cmp-luasnip
(let ((commit "b10829736542e7cc9291e60bab134df1273165c9")
(revision "1"))
(package
(name "neovim-cmp-luasnip")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/saadparwaiz1/cmp_luasnip")
(commit commit)))
(sha256
(base32 "1qygdas99m7py98rqxyza88lmk2as8yi9khjac603x6anxmq766l"))))
(build-system copy-build-system)
(arguments
`(#:install-plan
'(("after" "share/nvim/site/pack/guix/start/cmp-luasnip/")
("lua" "share/nvim/site/pack/guix/start/cmp-luasnip/"))))
(propagated-inputs (list neovim-cmp neovim-luasnip))
(home-page "https://github.com/saadparwaiz1/cmp_luasnip")
(synopsis "Luasnip source for neovim-cmp")
(description "This Neovim plugin adds a LuaSnip source for the cmp completion engine.")
(license license:asl2.0))))
(define-public vim-markdown
(let ((commit "c031a3e65c50d6aa0bfc81f8be9d248f9644426d")
(revision "1"))
(package
(name "vim-markdown")
(version (git-version "2.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/preservim/vim-markdown")
(commit commit)))
(sha256
(base32 "0l8ginadb4jxnrggd1lvia8kan397x02jf3v6sgkcyxawwpgfl0x"))))
(build-system copy-build-system)
(arguments
`(#:install-plan
'(("after" "share/vim/vimfiles/")
("doc" "share/vim/vimfiles/")
("ftdetect" "share/vim/vimfiles/")
("ftplugin" "share/vim/vimfiles/")
("indent" "share/vim/vimfiles/")
("syntax" "share/vim/vimfiles/"))))
(home-page "https://github.com/preservim/vim-markdown")
(synopsis "Better Markdown support for Vim")
(description "This Vim plugin provides better syntax highlighting, indentation, and
interactions (folding, concealing, keymaps, etc.) for editing Markdown.")
(license license:expat))))
(define-public vim-markdown-for-neovim
(package/inherit vim-markdown
(name "vim-markdown-for-neovim")
(arguments
`(#:install-plan
'(("after" "share/nvim/site/pack/guix/start/markdown/")
("doc" "share/nvim/site/pack/guix/start/markdown/")
("ftdetect" "share/nvim/site/pack/guix/start/markdown/")
("ftplugin" "share/nvim/site/pack/guix/start/markdown/")
("indent" "share/nvim/site/pack/guix/start/markdown/")
("syntax" "share/nvim/site/pack/guix/start/markdown/"))))))
(define-public vim-janet
(let ((commit "294538bab12a56129b8c8433ef7d23b18d05f2e9")
(revision "0"))
(package
(name "vim-janet")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/janet-lang/janet.vim")
(commit commit)))
(sha256
(base32 "1x81n4sdxza5hx3fg2pnzkj4f1sv87i7spldg8rsqpglx7da4clx"))))
(build-system copy-build-system)
(arguments
`(#:install-plan
'(("ftdetect" "share/vim/vimfiles/")
("ftplugin" "share/vim/vimfiles/")
("indent" "share/vim/vimfiles/")
("syntax" "share/vim/vimfiles/"))))
(home-page "https://github.com/janet-lang/janet.vim")
(synopsis "Vim syntax files for Janet")
(description "Vim syntax files for the Janet programming language.")
(license license:expat))))
(define-public vim-janet-for-neovim
(package/inherit vim-janet
(name "vim-janet-for-neovim")
(arguments
`(#:install-plan
'(("ftdetect" "share/nvim/site/pack/guix/start/janet/")
("ftplugin" "share/nvim/site/pack/guix/start/janet/")
("indent" "share/nvim/site/pack/guix/start/janet/")
("syntax" "share/nvim/site/pack/guix/start/janet/"))))))
(define-public vim-solarized8
(let ((commit "0760564a5147378cf779ef71ba9aee90aff5f43d")
(revision "0"))
(package
(name "vim-solarized8")
(version (git-version "1.4.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/lifepillar/vim-solarized8")
(commit commit)))
(sha256
(base32 "0rmn98cmwrs00h2dnk8yxyf457gjz71mjj84d9rnhgxjswgxvm99"))))
(build-system copy-build-system)
(arguments
`(#:install-plan
'(("colors" "share/vim/vimfiles/")
("doc" "share/vim/vimfiles/"))))
(home-page "https://github.com/lifepillar/solarized8")
(synopsis "Optimized Solarized colorschemes for Vim")
(description "Solarized8 contains optimized Solarized colorschemes for Vim. Best served with
true-color terminals.")
(license license:expat))))
(define-public vim-solarized8-for-neovim
(package/inherit vim-solarized8
(name "vim-solarized8-for-neovim")
(arguments
`(#:install-plan
'(("colors" "share/nvim/site/pack/guix/start/solarized8/")
("doc" "share/nvim/site/pack/guix/start/solarized8/"))))))
;; TODO: Latest version requires `neovim@0.7`.
(define-public neovim-lspconfig
(package
(name "neovim-lspconfig")
(version "0.1.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/neovim/nvim-lspconfig")
(commit (string-append "v" version))))
(sha256
(base32 "1i1yjk939pxfk9dpv4rh229srx02yxklzwk051a9qprq3hjhwl6v"))))
(build-system copy-build-system)
(arguments
`(#:install-plan
'(("doc" "share/nvim/site/pack/guix/start/lspconfig/")
("lua" "share/nvim/site/pack/guix/start/lspconfig/")
("plugin" "share/nvim/site/pack/guix/start/lspconfig/"))))
(home-page "https;//github.com/neovim/nvim-lspconfig")
(synopsis "Default language server configurations for Neovim")
(description "This Neovim package provides the canonical configurations for the Neovim builtin LSP
client.")
(license license:asl2.0)))
(define-public neovim-lspsaga
(let ((commit "5309d75bd90ce5b1708331df3af1e971fa83a2b9")
(revision "1"))
(package
(name "neovim-lspsaga")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tami5/lspsaga.nvim")
(commit commit)))
(sha256
(base32 "0xvlpjv69wf18nw5hbmmgbhs8ws4gfq5ny2vrncqaxcikr3gdmms"))))
(build-system copy-build-system)
(arguments
`(#:install-plan
'(("lua" "share/nvim/site/pack/guix/start/lspsaga/")
("plugin" "share/nvim/site/pack/guix/start/lspsaga/"))))
(home-page "https://github.com/tami5/lspsaga.nvim")
(synopsis "A UI for Neovim LSP")
(description "LSPSaga provides a client UI for the Neovim language server protocol client.")
(license license:expat))))
(define-public neovim-autopairs
(let ((commit "38d486a1c47ae2722a78cf569008de0a64f4b153")
(revision "1"))
(package
(name "neovim-autopairs")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/windwp/nvim-autopairs")
(commit commit)))
(sha256
(base32 "0qka37c8ikcqvbjq0n0kxgm8l30jy3aixs5i00a25wcwxj40kzxv"))))
(build-system copy-build-system)
(arguments
`(#:install-plan
'(("doc" "share/nvim/site/pack/guix/start/autopairs/")
("lua" "share/nvim/site/pack/guix/start/autopairs/"))))
(home-page "https://github.com/windwp/nvim-autopairs")
(synopsis "An autopairs plugin for Neovim")
(description "A super powerful autopairs plugin for Neovim supporting multiple characters.")
(license license:expat))))
(define-public neovim-autosave
(let ((commit "3d342d6fcebeede15b6511b13a38a522c6f33bf8")
(revision "0"))
(package
(name "neovim-autosave")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Pocco81/AutoSave.nvim")
(commit commit)))
(sha256
(base32 "0wkr350z4ihrc1s3hfgmxcrxdp4bb7c9zg6iv036i11zvsfiil6n"))))
(build-system copy-build-system)
(arguments
`(#:install-plan
'(("doc" "share/nvim/site/pack/guix/start/autosave/")
("lua" "share/nvim/site/pack/guix/start/autosave/")
("plugin" "share/nvim/site/pack/guix/start/autosave/"))))
(home-page "https://github.com/Pocco81/AutoSave.nvim")
(synopsis "A Neovim plugin for automatically saving your work")
(description "A Neovim plugin for saving your work before the world collapses or you type
@code{:qa!}.")
(license license:gpl3))))
(define-public vim-paredit-for-neovim
(package/inherit vim-paredit
(name "vim-paredit-for-neovim")
(arguments
`(#:install-plan
'(("doc" "share/nvim/site/pack/guix/start/paredit/")
("plugin" "share/nvim/site/pack/guix/start/paredit/"))))))
(define-public vim-sexp
(let ((commit "14464d4580af43424ed8f2614d94e62bfa40bb4d")
(revision "0"))
(package
(name "vim-sexp")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/guns/vim-sexp")
(commit commit)))
(sha256
(base32 "139krxpjhbyypbl6v2jik1rms2fxl3dkqrl4rb7sms6c3p5764qx"))))
(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/guns/vim-sexp")
(synopsis "Precision editing for s-expressions in Vim")
(description
"This Vim plugin provides Paredit-like facilities for editing
Lisp s-expressions.")
(license license:expat))))
(define-public vim-sexp-for-neovim
(package/inherit vim-sexp
(name "vim-sexp-for-neovim")
(arguments
`(#:install-plan
'(("autoload" "share/nvim/site/pack/guix/start/sexp/")
("doc" "share/nvim/site/pack/guix/start/sexp/")
("plugin" "share/nvim/site/pack/guix/start/sexp/"))))))