13 # Language dependencies
71 # codeium-nvim dependencies
73 # codesnap-nvim dependencies
76 # command-t dependencies
79 # cornelis dependencies
86 # LanguageClient-neovim dependencies
89 # nvim-treesitter dependencies
91 # Preview-nvim dependencies
93 # sg.nvim dependencies
97 gobject-introspection,
100 # sniprun dependencies
108 # sg-nvim dependencies
111 # vim-agda dependencies
113 # vim-go dependencies
134 # must be lua51Packages
137 # typst-preview dependencies
143 luaPackages = neovim-unwrapped.lua.pkgs;
146 alpha-nvim = super.alpha-nvim.overrideAttrs {
147 nvimRequireCheck = "alpha";
150 advanced-git-search-nvim = super.advanced-git-search-nvim.overrideAttrs {
151 dependencies = with super; [
156 nvimRequireCheck = "advanced_git_search.utils";
159 animation-nvim = super.animation-nvim.overrideAttrs {
160 dependencies = with self; [ middleclass ];
161 nvimRequireCheck = "animation";
164 autosave-nvim = super.autosave-nvim.overrideAttrs {
165 dependencies = with super; [ plenary-nvim ];
166 nvimRequireCheck = "autosave";
169 avante-nvim = super.avante-nvim.overrideAttrs (
172 avante-nvim-lib = rustPlatform.buildRustPackage {
173 pname = "avante-nvim-lib";
174 inherit (oldAttrs) version src;
176 cargoHash = "sha256-Hh7qAmGtxfWtkBBsNq0iVTruUSe0duE4tXaajDIt8zQ=";
178 nativeBuildInputs = [
186 buildFeatures = [ "luajit" ];
189 # Disabled because they access the network.
191 "--skip=test_public_url"
192 "--skip=test_roundtrip"
197 dependencies = with self; [
206 ext = stdenv.hostPlatform.extensions.sharedLibrary;
210 ln -s ${avante-nvim-lib}/lib/libavante_repo_map${ext} $out/build/avante_repo_map${ext}
211 ln -s ${avante-nvim-lib}/lib/libavante_templates${ext} $out/build/avante_templates${ext}
212 ln -s ${avante-nvim-lib}/lib/libavante_tokenizers${ext} $out/build/avante_tokenizers${ext}
215 doInstallCheck = true;
216 nvimRequireCheck = "avante";
219 description = "Neovim plugin designed to emulate the behaviour of the Cursor AI IDE";
220 homepage = "https://github.com/yetone/avante.nvim";
221 license = lib.licenses.asl20;
222 maintainers = with lib.maintainers; [
230 barbecue-nvim = super.barbecue-nvim.overrideAttrs {
231 dependencies = with self; [
236 description = "VS Code like winbar for Neovim";
237 homepage = "https://github.com/utilyre/barbecue.nvim";
238 license = lib.licenses.mit;
239 maintainers = with lib.maintainers; [ lightquantum ];
241 nvimRequireCheck = "barbecue";
244 # The GitHub repository returns 404, which breaks the update script
245 bitbake-vim = buildVimPlugin {
246 pname = "bitbake.vim";
247 version = "2021-02-06";
248 src = fetchFromGitHub {
249 owner = "sblumentritt";
250 repo = "bitbake.vim";
251 rev = "faddca1e8768b10c80ee85221fb51a560df5ba45";
252 sha256 = "1hfly2vxhhvjdiwgfz58hr3523kf9z71i78vk168n3kdqp5vkwrp";
254 meta.homepage = "https://github.com/sblumentritt/bitbake.vim/";
257 blink-cmp = callPackage ./blink-cmp { };
259 chadtree = super.chadtree.overrideAttrs {
263 passthru.python3Dependencies =
270 # We need some patches so it stops complaining about not being in a venv
271 patches = [ ./patches/chadtree/emulate-venv.patch ];
272 nvimRequireCheck = "chadtree";
275 ChatGPT-nvim = super.ChatGPT-nvim.overrideAttrs {
276 dependencies = with self; [
281 nvimRequireCheck = "chatgpt";
284 clang_complete = super.clang_complete.overrideAttrs {
285 # In addition to the arguments you pass to your compiler, you also need to
286 # specify the path of the C++ std header (if you are using C++).
287 # These usually implicitly set by cc-wrapper around clang (pkgs/build-support/cc-wrapper).
288 # The linked ruby code shows generates the required '.clang_complete' for cmake based projects
289 # https://gist.github.com/Mic92/135e83803ed29162817fce4098dec144
292 substituteInPlace "$out"/plugin/clang_complete.vim \
293 --replace "let g:clang_library_path = ''
296 " "let g:clang_library_path='${llvmPackages.libclang.lib}/lib/libclang.so'"
298 substituteInPlace "$out"/plugin/libclang.py \
299 --replace "/usr/lib/clang" "${llvmPackages.clang.cc}/lib/clang"
303 clighter8 = super.clighter8.overrideAttrs {
305 sed "/^let g:clighter8_libclang_path/s|')$|${llvmPackages.clang.cc.lib}/lib/libclang.so')|" \
306 -i "$out"/plugin/clighter8.vim
310 clipboard-image-nvim = super.clipboard-image-nvim.overrideAttrs {
312 sed -i -e 's/require "health"/vim.health/' lua/clipboard-image/health.lua
314 nvimRequireCheck = "clipboard-image";
317 cmake-tools-nvim = super.cmake-tools-nvim.overrideAttrs {
318 dependencies = with self; [ plenary-nvim ];
319 nvimRequireCheck = "cmake-tools";
322 cmp-ai = super.cmp-ai.overrideAttrs {
323 dependencies = with self; [
327 nvimRequireCheck = "cmp_ai";
330 cmp-clippy = super.cmp-clippy.overrideAttrs {
331 dependencies = with self; [
335 nvimRequireCheck = "cmp_clippy";
338 cmp-copilot = super.cmp-copilot.overrideAttrs {
339 dependencies = with self; [
343 nvimRequireCheck = "cmp_copilot";
346 cmp-ctags = super.cmp-ctags.overrideAttrs {
347 dependencies = with self; [ nvim-cmp ];
348 nvimRequireCheck = "cmp_ctags";
351 cmp-dap = super.cmp-dap.overrideAttrs {
352 dependencies = with self; [
356 nvimRequireCheck = "cmp_dap";
359 cmp-dictionary = super.cmp-dictionary.overrideAttrs {
360 dependencies = with self; [ nvim-cmp ];
361 nvimRequireCheck = "cmp_dictionary";
364 cmp-digraphs = super.cmp-digraphs.overrideAttrs {
365 dependencies = with self; [ nvim-cmp ];
366 nvimRequireCheck = "cmp_digraphs";
369 cmp-fish = super.cmp-fish.overrideAttrs {
370 dependencies = with self; [ nvim-cmp ];
371 nvimRequireCheck = "cmp_fish";
374 cmp-fuzzy-buffer = super.cmp-fuzzy-buffer.overrideAttrs {
375 dependencies = with self; [
379 nvimRequireCheck = "cmp_fuzzy_buffer";
382 cmp-fuzzy-path = super.cmp-fuzzy-path.overrideAttrs {
383 dependencies = with self; [
387 nvimRequireCheck = "cmp_fuzzy_path";
390 cmp-git = super.cmp-git.overrideAttrs {
391 dependencies = with self; [
395 nvimRequireCheck = "cmp_git";
398 cmp-greek = super.cmp-greek.overrideAttrs {
399 dependencies = with self; [ nvim-cmp ];
400 nvimRequireCheck = "cmp_greek";
403 cmp-look = super.cmp-look.overrideAttrs {
404 dependencies = with self; [ nvim-cmp ];
405 nvimRequireCheck = "cmp_look";
408 cmp-neosnippet = super.cmp-neosnippet.overrideAttrs {
409 dependencies = with self; [
413 nvimRequireCheck = "cmp_neosnippet";
416 cmp-nixpkgs-maintainers = super.cmp-nixpkgs-maintainers.overrideAttrs {
417 dependencies = with self; [ nvim-cmp ];
418 nvimRequireCheck = "cmp_nixpkgs_maintainers";
421 cmp-npm = super.cmp-npm.overrideAttrs {
422 dependencies = with self; [
426 nvimRequireCheck = "cmp-npm";
429 cmp-nvim-lsp-signature-help = super.cmp-nvim-lsp-signature-help.overrideAttrs {
430 dependencies = with self; [ nvim-cmp ];
431 nvimRequireCheck = "cmp_nvim_lsp_signature_help";
434 cmp-nvim-tags = super.cmp-nvim-tags.overrideAttrs {
435 dependencies = with self; [ nvim-cmp ];
436 nvimRequireCheck = "cmp_nvim_tags";
439 cmp-pandoc-nvim = super.cmp-pandoc-nvim.overrideAttrs {
440 dependencies = with self; [
444 nvimRequireCheck = "cmp_pandoc";
447 cmp-rg = super.cmp-rg.overrideAttrs {
448 dependencies = with self; [ nvim-cmp ];
449 nvimRequireCheck = "cmp-rg";
452 cmp-snippy = super.cmp-snippy.overrideAttrs {
453 dependencies = with self; [
457 nvimRequireCheck = "cmp_snippy";
460 cmp-tabby = super.cmp-tabby.overrideAttrs {
461 dependencies = with self; [ nvim-cmp ];
462 nvimRequireCheck = "cmp_tabby";
465 cmp-tabnine = super.cmp-tabnine.overrideAttrs {
466 buildInputs = [ tabnine ];
467 dependencies = with self; [ nvim-cmp ];
470 mkdir -p $target/binaries/${tabnine.version}
471 ln -s ${tabnine}/bin/ $target/binaries/${tabnine.version}/${tabnine.passthru.platform}
473 nvimRequireCheck = "cmp_tabnine";
476 cmp-tmux = super.cmp-tmux.overrideAttrs {
477 dependencies = with self; [
481 nvimRequireCheck = "cmp_tmux";
484 cmp-vim-lsp = super.cmp-vim-lsp.overrideAttrs {
485 dependencies = with self; [
491 cmp-vimwiki-tags = super.cmp-vimwiki-tags.overrideAttrs {
492 dependencies = with self; [
496 nvimRequireCheck = "cmp_vimwiki_tags";
499 cmp-zsh = super.cmp-zsh.overrideAttrs {
500 dependencies = with self; [
504 nvimRequireCheck = "cmp_zsh";
507 coc-clangd = buildVimPlugin {
508 inherit (coc-clangd) pname version meta;
509 src = "${coc-clangd}/lib/node_modules/coc-clangd";
512 coc-css = buildVimPlugin {
513 inherit (coc-css) pname version meta;
514 src = "${coc-css}/lib/node_modules/coc-css";
517 coc-diagnostic = buildVimPlugin {
518 inherit (coc-diagnostic) pname version meta;
519 src = "${coc-diagnostic}/lib/node_modules/coc-diagnostic";
522 coc-pyright = buildVimPlugin {
523 pname = "coc-pyright";
524 inherit (coc-pyright) version meta;
525 src = "${coc-pyright}/lib/node_modules/coc-pyright";
528 coc-nginx = buildVimPlugin {
530 inherit (nodePackages."@yaegassy/coc-nginx") version meta;
531 src = "${nodePackages."@yaegassy/coc-nginx"}/lib/node_modules/@yaegassy/coc-nginx";
536 # Update according to https://github.com/Exafunction/codeium.nvim/blob/main/lua/codeium/versions.json
537 codeiumVersion = "1.20.9";
539 x86_64-linux = "sha256-IeNK7UQtOhqC/eQv7MAya4jB1WIGykSR7IgutZatmHM=";
540 aarch64-linux = "sha256-ujTFki/3V79El2WCkG0PJhbaMT0knC9mrS9E7Uv9HD4=";
541 x86_64-darwin = "sha256-r2KloEQsUku9sk8h76kwyQuMTHcq/vwfTSK2dkiXDzE=";
542 aarch64-darwin = "sha256-1jNH0Up8mAahDgvPF6g42LV+RVDVsPqDM54lE2KYY48=";
545 codeium' = codeium.overrideAttrs rec {
546 version = codeiumVersion;
550 inherit (stdenv.hostPlatform) system;
551 throwSystem = throw "Unsupported system: ${system}";
555 x86_64-linux = "linux_x64";
556 aarch64-linux = "linux_arm";
557 x86_64-darwin = "macos_x64";
558 aarch64-darwin = "macos_arm";
560 .${system} or throwSystem;
562 hash = codeiumHashes.${system} or throwSystem;
565 name = "codeium-${version}.gz";
566 url = "https://github.com/Exafunction/codeium/releases/download/language-server-v${version}/language_server_${platform}.gz";
572 super.codeium-nvim.overrideAttrs {
573 dependencies = with self; [
578 cat << EOF > lua/codeium/installation_defaults.lua
581 language_server = "${codeium'}/bin/codeium_language_server"
588 checkInputs = [ jq ];
592 expected_codeium_version=$(jq -r '.version' lua/codeium/versions.json)
593 actual_codeium_version=$(${codeium'}/bin/codeium_language_server --version)
595 expected_codeium_stamp=$(jq -r '.stamp' lua/codeium/versions.json)
596 actual_codeium_stamp=$(${codeium'}/bin/codeium_language_server --stamp | grep STABLE_BUILD_SCM_REVISION | cut -d' ' -f2)
598 if [ "$actual_codeium_stamp" != "$expected_codeium_stamp" ]; then
600 The version of codeium patched in vimPlugins.codeium-nvim is incorrect.
601 Expected stamp: $expected_codeium_stamp
602 Actual stamp: $actual_codeium_stamp
604 Expected codeium version: $expected_codeium_version
605 Actual codeium version: $actual_codeium_version
607 Please, update 'codeiumVersion' in pkgs/applications/editors/vim/plugins/overrides.nix accordingly to:
608 https://github.com/Exafunction/codeium.nvim/blob/main/lua/codeium/versions.json
615 nvimRequireCheck = "codeium";
621 src = fetchFromGitHub {
623 repo = "codesnap.nvim";
624 rev = "refs/tags/v${version}";
625 hash = "sha256-OmSgrTYDtNb2plMyzjVvxGrfXB/lGKDpUQhpRqKfAMA=";
627 codesnap-lib = rustPlatform.buildRustPackage {
628 pname = "codesnap-lib";
631 sourceRoot = "${src.name}/generator";
633 cargoHash = "sha256-6n37n8oHIHrz3S1+40nuD0Ud3l0iNgXig1ZwrgsnYTI=";
635 nativeBuildInputs = [
637 rustPlatform.bindgenHook
644 ++ lib.optionals stdenv.hostPlatform.isDarwin [
645 darwin.apple_sdk.frameworks.AppKit
650 pname = "codesnap.nvim";
653 # - Remove the shipped pre-built binaries
654 # - Copy the resulting binary from the codesnap-lib derivation
655 # Note: the destination should be generator.so, even on darwin
656 # https://github.com/mistricky/codesnap.nvim/blob/main/scripts/build_generator.sh
659 extension = if stdenv.hostPlatform.isDarwin then "dylib" else "so";
663 cp ${codesnap-lib}/lib/libgenerator.${extension} $out/lua/generator.so
666 doInstallCheck = true;
667 nvimRequireCheck = "codesnap";
670 homepage = "https://github.com/mistricky/codesnap.nvim/";
671 changelog = "https://github.com/mistricky/codesnap.nvim/releases/tag/v${version}";
675 command-t = super.command-t.overrideAttrs {
676 nativeBuildInputs = [
681 substituteInPlace lua/wincent/commandt/lib/Makefile \
682 --replace '/bin/bash' 'bash' \
685 rm ruby/command-t/ext/command-t/*.o
687 nvimRequireCheck = "wincent.commandt";
690 competitest-nvim = super.competitest-nvim.overrideAttrs {
691 dependencies = [ self.nui-nvim ];
693 doInstallCheck = true;
694 nvimRequireCheck = "competitest";
697 compe-tabnine = super.compe-tabnine.overrideAttrs {
698 buildInputs = [ tabnine ];
701 mkdir -p $target/binaries/${tabnine.version}
702 ln -s ${tabnine}/bin/ $target/binaries/${tabnine.version}/${tabnine.passthru.platform}
706 compiler-explorer-nvim = super.compiler-explorer-nvim.overrideAttrs {
707 dependencies = with self; [ plenary-nvim ];
708 nvimRequireCheck = "compiler-explorer";
711 compiler-nvim = super.compiler-nvim.overrideAttrs {
712 dependencies = [ self.overseer-nvim ];
713 nvimRequireCheck = "compiler";
716 completion-buffers = super.completion-buffers.overrideAttrs {
717 dependencies = with self; [ completion-nvim ];
718 nvimRequireCheck = "completion_buffers";
721 completion-tabnine = super.completion-tabnine.overrideAttrs {
722 dependencies = with self; [ completion-nvim ];
723 buildInputs = [ tabnine ];
725 mkdir -p $target/binaries
726 ln -s ${tabnine}/bin/TabNine $target/binaries/TabNine_$(uname -s)
730 completion-treesitter = super.completion-treesitter.overrideAttrs {
731 dependencies = with self; [
737 CopilotChat-nvim = super.CopilotChat-nvim.overrideAttrs {
738 dependencies = with self; [
742 nvimRequireCheck = "CopilotChat";
745 copilot-lualine = super.copilot-lualine.overrideAttrs {
746 dependencies = with self; [
750 doInstallCheck = true;
751 nvimRequireCheck = "copilot-lualine";
754 copilot-vim = super.copilot-vim.overrideAttrs (old: {
756 substituteInPlace $out/autoload/copilot/client.vim \
757 --replace " let node = get(g:, 'copilot_node_command', ''\'''\')" \
758 " let node = get(g:, 'copilot_node_command', '${nodejs}/bin/node')"
762 license = lib.licenses.unfree;
766 coq_nvim = super.coq_nvim.overrideAttrs {
767 passthru.python3Dependencies =
774 # We need some patches so it stops complaining about not being in a venv
775 patches = [ ./patches/coq_nvim/emulate-venv.patch ];
776 nvimRequireCheck = "coq";
781 version = "0-unstable-2024-09-26";
782 src = fetchFromGitHub {
785 rev = "a26b00d58c42174aadf975917b49cec67650545f";
786 hash = "sha256-jUxBvWnj0+axuw2SZ2zLzlhZS0tu+Bk8+wHtXENofkw=";
788 extension = if stdenv.hostPlatform.isDarwin then "dylib" else "so";
789 rustPackage = rustPlatform.buildRustPackage {
790 pname = "cord.nvim-rust";
793 cargoHash = "sha256-M5mTdBACTaUVZhPpMOf1KQ3BcQpEoD2isAKRn+iAWjc=";
797 cargoTarget = stdenv.hostPlatform.rust.cargoShortTarget;
800 install -D target/${cargoTarget}/release/libcord.${extension} $out/lib/cord.${extension}
808 nativeBuildInputs = [
813 install -D ${rustPackage}/lib/cord.${extension} cord.${extension}
817 install -D cord $out/lua/cord.${extension}
820 doInstallCheck = true;
821 nvimRequireCheck = "cord";
824 homepage = "https://github.com/vyfor/cord.nvim";
828 cornelis = super.cornelis.overrideAttrs {
829 dependencies = with self; [ vim-textobj-user ];
830 opt = with self; [ vim-which-key ];
831 # Unconditionally use the cornelis binary provided by the top-level package:
832 patches = [ ./patches/cornelis/0001-Unconditionally-use-global-binary.patch ];
834 substituteInPlace $out/ftplugin/agda.vim \
835 --subst-var-by CORNELIS "${lib.getBin cornelis}/bin/cornelis"
839 cpsm = super.cpsm.overrideAttrs {
840 nativeBuildInputs = [ cmake ];
854 crates-nvim = super.crates-nvim.overrideAttrs {
855 dependencies = with self; [ plenary-nvim ];
856 nvimRequireCheck = "crates";
859 ctrlp-cmatcher = super.ctrlp-cmatcher.overrideAttrs {
860 # drop Python 2 patches
861 # https://github.com/JazzCore/ctrlp-cmatcher/pull/44
864 name = "drop_python2_pt1.patch";
865 url = "https://github.com/JazzCore/ctrlp-cmatcher/commit/3abad6ea155a7f6e138e1de3ac5428177bfb0254.patch";
866 sha256 = "sha256-fn2puqYeJdPTdlTT4JjwVz7b3A+Xcuj/xtP6TETlB1U=";
869 name = "drop_python2_pt2.patch";
870 url = "https://github.com/JazzCore/ctrlp-cmatcher/commit/385c8d02398dbb328b1a943a94e7109fe6473a08.patch";
871 sha256 = "sha256-yXKCq8sqO0Db/sZREuSeqKwKO71cmTsAvWftoOQehZo=";
874 buildInputs = with python3.pkgs; [
884 ddc-filter-matcher_head = super.ddc-filter-matcher_head.overrideAttrs {
885 dependencies = with self; [ ddc-vim ];
888 ddc-source-lsp = super.ddc-source-lsp.overrideAttrs {
889 dependencies = with self; [ ddc-vim ];
890 nvimRequireCheck = "ddc_source_lsp";
893 ddc-vim = super.ddc-vim.overrideAttrs {
894 dependencies = with self; [ denops-vim ];
897 ddc-filter-sorter_rank = super.ddc-filter-sorter_rank.overrideAttrs {
898 dependencies = with self; [ ddc-vim ];
901 ddc-ui-native = super.ddc-ui-native.overrideAttrs {
902 dependencies = with self; [ ddc-vim ];
905 ddc-ui-pum = super.ddc-ui-pum.overrideAttrs {
906 dependencies = with self; [
912 defx-nvim = super.defx-nvim.overrideAttrs {
913 dependencies = with self; [ nvim-yarp ];
916 denops-vim = super.denops-vim.overrideAttrs {
918 # Use Nix's Deno instead of an arbitrary install
919 substituteInPlace ./autoload/denops.vim --replace "call denops#_internal#conf#define('denops#deno', 'deno')" "call denops#_internal#conf#define('denops#deno', '${deno}/bin/deno')"
923 deoplete-fish = super.deoplete-fish.overrideAttrs {
924 dependencies = with self; [
930 deoplete-go = super.deoplete-go.overrideAttrs {
931 nativeBuildInputs = [ (python3.withPackages (ps: with ps; [ setuptools ])) ];
933 pushd ./rplugin/python3/deoplete/ujson
934 python3 setup.py build --build-base=$PWD/build --build-lib=$PWD/build
936 find ./rplugin/ -name "ujson*.so" -exec mv -v {} ./rplugin/python3/ \;
940 deoplete-khard = super.deoplete-khard.overrideAttrs {
941 dependencies = with self; [ deoplete-nvim ];
942 passthru.python3Dependencies = ps: [ (ps.toPythonModule khard) ];
944 description = "Address-completion for khard via deoplete";
945 homepage = "https://github.com/nicoe/deoplete-khard";
946 license = lib.licenses.mit;
947 maintainers = with lib.maintainers; [ jorsn ];
951 diagram-nvim = super.diagram-nvim.overrideAttrs {
952 dependencies = with self; [ image-nvim ];
953 nvimRequireCheck = "diagram";
956 diffview-nvim = super.diffview-nvim.overrideAttrs {
957 dependencies = with self; [ plenary-nvim ];
959 doInstallCheck = true;
960 nvimRequireCheck = "diffview";
963 direnv-vim = super.direnv-vim.overrideAttrs (old: {
967 substituteInPlace $out/autoload/direnv.vim \
968 --replace "let s:direnv_cmd = get(g:, 'direnv_cmd', 'direnv')" \
969 "let s:direnv_cmd = get(g:, 'direnv_cmd', '${lib.getBin direnv}/bin/direnv')"
973 elixir-tools-nvim = super.elixir-tools-nvim.overrideAttrs {
974 dependencies = with self; [ plenary-nvim ];
976 patchShebangs $(find $out/bin/ -type f -not -name credo-language-server)
978 nvimRequireCheck = "elixir";
981 executor-nvim = super.executor-nvim.overrideAttrs {
982 dependencies = with self; [ nui-nvim ];
983 nvimRequireCheck = "executor";
986 fcitx-vim = super.fcitx-vim.overrideAttrs {
987 passthru.python3Dependencies = ps: with ps; [ dbus-python ];
989 description = "Keep and restore fcitx state when leaving/re-entering insert mode or search mode";
990 license = lib.licenses.mit;
994 flit-nvim = super.flit-nvim.overrideAttrs {
995 dependencies = with self; [ leap-nvim ];
996 nvimRequireCheck = "flit";
999 forms = super.forms.overrideAttrs {
1000 dependencies = [ self.self ];
1005 # until https://github.com/NixOS/nixpkgs/pull/67878 is merged, there's no better way to install nim libraries with nix
1006 nimpy = fetchFromGitHub {
1009 rev = "4840d1e438985af759ddf0923e7a9250fd8ea0da";
1010 sha256 = "0qqklvaajjqnlqm3rkk36pwwnn7x942mbca7nf2cvryh36yg4q5k";
1012 binaryheap = fetchFromGitHub {
1013 owner = "bluenote10";
1015 rev = "c38039309cb11391112571aa332df9c55f625b54";
1016 sha256 = "05xdy13vm5n8dw2i366ppbznc4cfhq23rdcklisbaklz2jhdx352";
1019 super.fruzzy.overrideAttrs (old: {
1020 buildInputs = [ nim1 ];
1023 src = ./patches/fruzzy/get_version.patch;
1024 inherit (old) version;
1028 substituteInPlace Makefile \
1031 "nim c --nimcache:$TMP --path:${nimpy} --path:${binaryheap}"
1038 fuzzy-nvim = super.fuzzy-nvim.overrideAttrs {
1039 dependencies = with self; [ telescope-fzf-native-nvim ];
1040 nvimRequireCheck = "fuzzy_nvim";
1043 fzf-checkout-vim = super.fzf-checkout-vim.overrideAttrs {
1044 # The plugin has a makefile which tries to run tests in a docker container.
1051 fzf-hoogle-vim = super.fzf-hoogle-vim.overrideAttrs (oa: {
1052 # add this to your lua config to prevent the plugin from trying to write in the
1054 # vim.g.hoogle_fzf_cache_file = vim.fn.stdpath('cache')..'/hoogle_cache.json'
1055 propagatedBuildInputs = [
1059 dependencies = with self; [ fzf-vim ];
1060 passthru = oa.passthru // {
1062 initLua = "vim.g.hoogle_fzf_cache_file = vim.fn.stdpath('cache')..'/hoogle_cache.json";
1066 fzf-lua = super.fzf-lua.overrideAttrs {
1067 propagatedBuildInputs = [ fzf ];
1068 # FIXME: address already in use
1069 # nvimRequireCheck = "fzf-lua";
1072 fzf-vim = super.fzf-vim.overrideAttrs {
1073 dependencies = with self; [ fzfWrapper ];
1076 # Mainly used as a dependency for fzf-vim. Wraps the fzf program as a vim
1077 # plugin, since part of the fzf vim plugin is included in the main fzf
1079 fzfWrapper = buildVimPlugin {
1080 inherit (fzf) src version;
1083 ln -s ${fzf}/bin/fzf $target/bin/fzf
1087 ghcid = super.ghcid.overrideAttrs {
1088 configurePhase = "cd plugins/nvim";
1091 gitlinker-nvim = super.gitlinker-nvim.overrideAttrs {
1092 dependencies = with self; [ plenary-nvim ];
1093 nvimRequireCheck = "gitlinker";
1096 gitsigns-nvim = super.gitsigns-nvim.overrideAttrs {
1097 dependencies = with self; [ plenary-nvim ];
1098 nvimRequireCheck = "gitsigns";
1101 git-worktree-nvim = super.git-worktree-nvim.overrideAttrs {
1102 dependencies = with super; [ plenary-nvim ];
1103 nvimRequireCheck = "git-worktree";
1106 guard-nvim = super.guard-nvim.overrideAttrs {
1107 dependencies = with self; [ guard-collection ];
1108 nvimRequireCheck = "guard";
1111 hardhat-nvim = super.hardhat-nvim.overrideAttrs {
1112 dependencies = with self; [
1117 doInstallCheck = true;
1118 nvimRequireCheck = "hardhat";
1121 harpoon = super.harpoon.overrideAttrs {
1122 dependencies = with self; [ plenary-nvim ];
1123 nvimRequireCheck = "harpoon";
1126 harpoon2 = super.harpoon2.overrideAttrs {
1127 dependencies = with self; [ plenary-nvim ];
1128 nvimRequireCheck = "harpoon";
1131 haskell-snippets-nvim = super.haskell-snippets-nvim.overrideAttrs {
1132 dependencies = [ self.luasnip ];
1133 nvimRequireCheck = "haskell-snippets";
1136 haskell-scope-highlighting-nvim = super.haskell-scope-highlighting-nvim.overrideAttrs {
1137 dependencies = with self; [ nvim-treesitter ];
1138 nvimRequireCheck = "haskell-scope-highlighting";
1141 haskell-tools-nvim = neovimUtils.buildNeovimPlugin {
1142 luaAttr = luaPackages.haskell-tools-nvim;
1143 nvimRequireCheck = "haskell-tools";
1146 hex-nvim = super.hex-nvim.overrideAttrs {
1148 substituteInPlace lua/hex.lua --replace xxd ${xxd}/bin/xxd
1150 nvimRequireCheck = "hex";
1153 himalaya-vim = super.himalaya-vim.overrideAttrs {
1154 buildInputs = [ himalaya ];
1155 src = fetchFromSourcehut {
1157 repo = "himalaya-vim";
1158 rev = "v${himalaya.version}";
1159 sha256 = "W+91hnNeS6WkDiR9r1s7xPTK9JlCWiVkI/nXVYbepY0=";
1163 hunk-nvim = super.hunk-nvim.overrideAttrs {
1164 dependencies = with self; [ nui-nvim ];
1165 nvimRequireCheck = "hunk";
1169 hurl = buildVimPlugin {
1171 version = hurl.version;
1172 # dontUnpack = true;
1174 src = "${hurl.src}/contrib/vim";
1177 idris2-nvim = super.idris2-nvim.overrideAttrs {
1178 dependencies = with self; [
1183 doInstallCheck = true;
1184 nvimRequireCheck = "idris2";
1187 image-nvim = super.image-nvim.overrideAttrs {
1188 dependencies = with self; [
1190 nvim-treesitter-parsers.markdown_inline
1191 nvim-treesitter-parsers.norg
1194 # Add magick to package.path
1195 patches = [ ./patches/image-nvim/magick.patch ];
1198 substituteInPlace lua/image/magick.lua \
1199 --replace @nix_magick@ ${luajitPackages.magick}
1202 nvimRequireCheck = "image";
1205 jedi-vim = super.jedi-vim.overrideAttrs {
1206 # checking for python3 support in vim would be neat, too, but nobody else seems to care
1207 buildInputs = [ python3.pkgs.jedi ];
1209 description = "code-completion for python using python-jedi";
1210 license = lib.licenses.mit;
1214 jellybeans-nvim = super.jellybeans-nvim.overrideAttrs {
1215 dependencies = with self; [ lush-nvim ];
1218 jupytext-nvim = super.jupytext-nvim.overrideAttrs {
1219 passthru.python3Dependencies = ps: [ ps.jupytext ];
1220 nvimRequireCheck = "jupytext";
1223 kulala-nvim = super.kulala-nvim.overrideAttrs {
1224 dependencies = with self; [
1226 nvim-treesitter-parsers.http
1228 buildInputs = [ curl ];
1230 substituteInPlace lua/kulala/config/init.lua \
1231 --replace 'curl_path = "curl"' 'curl_path = "${lib.getExe curl}"'
1233 nvimRequireCheck = "kulala";
1236 LanguageClient-neovim =
1238 version = "0.1.161";
1239 LanguageClient-neovim-src = fetchFromGitHub {
1241 repo = "LanguageClient-neovim";
1243 sha256 = "Z9S2ie9RxJCIbmjSV/Tto4lK04cZfWmK3IAy8YaySVI=";
1245 LanguageClient-neovim-bin = rustPlatform.buildRustPackage {
1246 pname = "LanguageClient-neovim-bin";
1248 src = LanguageClient-neovim-src;
1250 cargoHash = "sha256-H34UqJ6JOwuSABdOup5yKeIwFrGc83TUnw1ggJEx9o4=";
1251 buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ CoreServices ];
1253 # FIXME: Use impure version of CoreFoundation because of missing symbols.
1254 # Undefined symbols for architecture x86_64: "_CFURLResourceIsReachable"
1255 preConfigure = lib.optionalString stdenv.hostPlatform.isDarwin ''
1256 export NIX_LDFLAGS="-F${CoreFoundation}/Library/Frameworks -framework CoreFoundation $NIX_LDFLAGS"
1261 pname = "LanguageClient-neovim";
1263 src = LanguageClient-neovim-src;
1265 propagatedBuildInputs = [ LanguageClient-neovim-bin ];
1268 substituteInPlace "$out"/autoload/LanguageClient.vim \
1269 --replace "let l:path = s:root . '/bin/'" "let l:path = '${LanguageClient-neovim-bin}' . '/bin/'"
1273 lazy-lsp-nvim = super.lazy-lsp-nvim.overrideAttrs {
1274 dependencies = with self; [ nvim-lspconfig ];
1275 nvimRequireCheck = "lazy-lsp";
1278 lazy-nvim = super.lazy-nvim.overrideAttrs {
1279 patches = [ ./patches/lazy-nvim/no-helptags.patch ];
1280 nvimRequireCheck = "lazy";
1283 lean-nvim = super.lean-nvim.overrideAttrs {
1284 dependencies = with self; [
1288 nvimRequireCheck = "lean";
1291 LeaderF = super.LeaderF.overrideAttrs {
1292 nativeBuildInputs = [ python3.pkgs.setuptools ];
1293 buildInputs = [ python3 ];
1294 # rm */build/ to prevent dependencies on gcc
1295 # strip the *.so to keep files small
1299 rm autoload/leaderf/fuzzyMatch_C/build/ -r
1301 stripDebugList = [ "autoload/leaderf/python" ];
1304 leap-ast-nvim = super.leap-ast-nvim.overrideAttrs {
1305 dependencies = with self; [
1309 nvimRequireCheck = "leap-ast";
1312 leetcode-nvim = super.leetcode-nvim.overrideAttrs {
1313 dependencies = with self; [
1319 doInstallCheck = true;
1320 nvimRequireCheck = "leetcode";
1323 lens-vim = super.lens-vim.overrideAttrs {
1324 # remove duplicate g:lens#animate in doc/lens.txt
1325 # https://github.com/NixOS/nixpkgs/pull/105810#issuecomment-740007985
1326 # https://github.com/camspiers/lens.vim/pull/40/files
1329 src = ./patches/lens-vim/remove_duplicate_g_lens_animate.patch;
1330 inherit languagetool;
1335 lf-vim = super.lf-vim.overrideAttrs {
1336 dependencies = with self; [ vim-floaterm ];
1339 lir-nvim = super.lir-nvim.overrideAttrs {
1340 dependencies = with self; [ plenary-nvim ];
1341 nvimRequireCheck = "lir";
1344 lsp-progress-nvim = neovimUtils.buildNeovimPlugin {
1345 luaAttr = luaPackages.lsp-progress-nvim;
1346 nvimRequireCheck = "lsp-progress";
1349 luasnip = super.luasnip.overrideAttrs {
1350 dependencies = [ luaPackages.jsregexp ];
1351 nvimRequireCheck = "luasnip";
1354 lz-n = neovimUtils.buildNeovimPlugin {
1355 luaAttr = luaPackages.lz-n;
1356 nvimRequireCheck = "lz.n";
1359 lze = neovimUtils.buildNeovimPlugin {
1360 luaAttr = luaPackages.lze;
1361 nvimRequireCheck = "lze";
1364 lzn-auto-require = neovimUtils.buildNeovimPlugin {
1365 luaAttr = luaPackages.lzn-auto-require;
1366 nvimRequireCheck = "lzn-auto-require.loader";
1369 magma-nvim = super.magma-nvim.overrideAttrs {
1370 passthru.python3Dependencies =
1384 markdown-preview-nvim =
1386 # We only need its dependencies `node-modules`.
1387 nodeDep = mkYarnModules rec {
1388 inherit (super.markdown-preview-nvim) pname version;
1389 packageJSON = ./markdown-preview-nvim/package.json;
1390 yarnLock = "${super.markdown-preview-nvim.src}/yarn.lock";
1391 offlineCache = fetchYarnDeps {
1393 hash = "sha256-kzc9jm6d9PJ07yiWfIOwqxOTAAydTpaLXVK6sEWM8gg=";
1397 super.markdown-preview-nvim.overrideAttrs {
1400 src = ./markdown-preview-nvim/fix-node-paths.patch;
1401 node = "${nodejs}/bin/node";
1405 ln -s ${nodeDep}/node_modules $out/app
1408 nativeBuildInputs = [ nodejs ];
1409 doInstallCheck = true;
1410 installCheckPhase = ''
1411 node $out/app/index.js --version
1415 mason-lspconfig-nvim = super.mason-lspconfig-nvim.overrideAttrs {
1416 dependencies = with self; [
1420 nvimRequireCheck = "mason-lspconfig";
1423 mason-tool-installer-nvim = super.mason-tool-installer-nvim.overrideAttrs {
1424 dependencies = with self; [ mason-nvim ];
1425 nvimRequireCheck = "mason-tool-installer";
1428 meson = buildVimPlugin {
1429 inherit (meson) pname version src;
1430 preInstall = "cd data/syntax-highlighting/vim";
1431 meta.maintainers = with lib.maintainers; [ vcunat ];
1434 middleclass = neovimUtils.buildNeovimPlugin {
1435 luaAttr = luaPackages.middleclass;
1436 nvimRequireCheck = "middleclass";
1439 minimap-vim = super.minimap-vim.overrideAttrs {
1441 substituteInPlace $out/plugin/minimap.vim \
1442 --replace "code-minimap" "${code-minimap}/bin/code-minimap"
1443 substituteInPlace $out/bin/minimap_generator.sh \
1444 --replace "code-minimap" "${code-minimap}/bin/code-minimap"
1447 doInstallCheck = true;
1448 vimCommandCheck = "MinimapToggle";
1451 minsnip-nvim = buildVimPlugin {
1452 pname = "minsnip.nvim";
1453 version = "2022-01-04";
1454 src = fetchFromGitHub {
1455 owner = "jose-elias-alvarez";
1456 repo = "minsnip.nvim";
1457 rev = "6ae2f3247b3a2acde540ccef2e843fdfcdfebcee";
1458 sha256 = "1db5az5civ2bnqg7v3g937mn150ys52258c3glpvdvyyasxb4iih";
1460 meta.homepage = "https://github.com/jose-elias-alvarez/minsnip.nvim/";
1465 version = "2024-07-25";
1466 src = fetchFromGitHub {
1468 repo = "moveline.nvim";
1469 rev = "9f67f4b9e752a87eea8205f0279f261a16c733d8";
1470 sha256 = "sha256-B4t5+Q4Urx5bGm8glNpYkHhpp/rAhz+lDd2EpWFUYoY=";
1472 moveline-lib = rustPlatform.buildRustPackage {
1473 inherit src version;
1474 pname = "moveline-lib";
1475 cargoHash = "sha256-e9QB4Rfm+tFNrLAHN/nYUQ5PiTET8knQQIQkMH3UFkU=";
1479 inherit src version;
1480 pname = "moveline-nvim";
1483 ln -s ${moveline-lib}/lib/libmoveline.so lua/moveline.so
1486 description = "Neovim plugin for moving lines up and down";
1487 homepage = "https://github.com/willothy/moveline.nvim";
1488 license = lib.licenses.mit;
1489 maintainers = with lib.maintainers; [ redxtech ];
1495 nvimRequireCheck = "moveline";
1498 multicursors-nvim = super.multicursors-nvim.overrideAttrs {
1499 dependencies = with self; [
1503 nvimRequireCheck = "multicursors";
1506 ncm2 = super.ncm2.overrideAttrs {
1507 dependencies = with self; [ nvim-yarp ];
1508 nvimRequireCheck = "ncm2";
1511 ncm2-jedi = super.ncm2-jedi.overrideAttrs {
1512 dependencies = with self; [
1516 passthru.python3Dependencies = ps: with ps; [ jedi ];
1519 ncm2-neoinclude = super.ncm2-neoinclude.overrideAttrs {
1520 dependencies = with self; [ neoinclude-vim ];
1523 ncm2-neosnippet = super.ncm2-neosnippet.overrideAttrs {
1524 dependencies = with self; [ neosnippet-vim ];
1527 ncm2-syntax = super.ncm2-syntax.overrideAttrs {
1528 dependencies = with self; [ neco-syntax ];
1531 ncm2-ultisnips = super.ncm2-ultisnips.overrideAttrs {
1532 dependencies = with self; [ ultisnips ];
1535 neogit = super.neogit.overrideAttrs {
1536 dependencies = with self; [ plenary-nvim ];
1537 nvimRequireCheck = "neogit";
1540 neorg = neovimUtils.buildNeovimPlugin {
1541 luaAttr = luaPackages.neorg;
1543 doInstallCheck = true;
1544 nvimRequireCheck = "neorg";
1547 neotest = super.neotest.overrideAttrs {
1548 dependencies = with self; [
1552 nvimRequirecheck = "neotest";
1555 neotest-gradle = super.neotest-gradle.overrideAttrs {
1556 dependencies = with self; [ plenary-nvim ];
1557 nvimRequirecheck = "neotest-gradle";
1560 neotest-gtest = super.neotest-gtest.overrideAttrs {
1561 dependencies = [ self.plenary-nvim ];
1562 nvimRequirecheck = "neotest-gtest";
1565 neotest-playwright = super.neotest-playwright.overrideAttrs {
1566 dependencies = [ self.telescope-nvim ];
1567 nvimRequirecheck = "neotest-playwright";
1570 neotest-golang = super.neotest-golang.overrideAttrs {
1571 dependencies = [ self.nvim-dap-go ];
1572 nvimRequirecheck = "neotest-golang";
1575 neo-tree-nvim = super.neo-tree-nvim.overrideAttrs {
1576 dependencies = with self; [
1580 nvimRequirecheck = "neo-tree";
1583 noice-nvim = super.noice-nvim.overrideAttrs {
1584 dependencies = with self; [ nui-nvim ];
1585 nvimRequirecheck = "noice";
1588 none-ls-nvim = super.none-ls-nvim.overrideAttrs {
1589 dependencies = [ self.plenary-nvim ];
1590 nvimRequireCheck = "null-ls";
1593 NotebookNavigator-nvim = super.NotebookNavigator-nvim.overrideAttrs {
1594 nvimRequireCheck = "notebook-navigator";
1597 null-ls-nvim = super.null-ls-nvim.overrideAttrs {
1598 dependencies = with self; [ plenary-nvim ];
1599 nvimRequireCheck = "null-ls";
1602 nvim-coverage = super.nvim-coverage.overrideAttrs {
1603 dependencies = with self; [ plenary-nvim ];
1604 nvimRequireCheck = "coverage";
1607 nvim-dap-python = super.nvim-dap-python.overrideAttrs {
1608 dependencies = with self; [ nvim-dap ];
1609 nvimRequireCheck = "dap-python";
1612 nvim-dap-rego = super.nvim-dap-rego.overrideAttrs {
1613 dependencies = with self; [ nvim-dap ];
1614 nvimRequireCheck = "dap-rego";
1617 nvim-dap-ui = super.nvim-dap-ui.overrideAttrs {
1618 dependencies = with self; [
1623 doInstallCheck = true;
1624 nvimRequireCheck = "dapui";
1627 nvim-dap-rr = super.nvim-dap-rr.overrideAttrs {
1628 dependencies = [ self.nvim-dap ];
1629 nvimRequireCheck = "nvim-dap-rr";
1632 nvim-genghis = super.nvim-genghis.overrideAttrs {
1633 dependencies = [ self.dressing-nvim ];
1635 doInstallCheck = true;
1636 nvimRequireCheck = "genghis";
1639 nvim-lsputils = super.nvim-lsputils.overrideAttrs {
1640 dependencies = with self; [ popfix ];
1641 nvimRequireCheck = "lsputil.codeAction";
1644 nvim-metals = super.nvim-metals.overrideAttrs {
1645 dependencies = with self; [ plenary-nvim ];
1647 nvimRequireCheck = "metals";
1650 nvim-navbuddy = super.nvim-navbuddy.overrideAttrs {
1651 dependencies = with self; [
1656 nvimRequireCheck = "nvim-navbuddy";
1659 vim-mediawiki-editor = super.vim-mediawiki-editor.overrideAttrs {
1660 passthru.python3Dependencies = [ python3.pkgs.mwclient ];
1663 nvim-dbee = super.nvim-dbee.overrideAttrs (
1666 dbee-go = buildGoModule {
1668 src = "${oa.src}/dbee";
1669 vendorHash = "sha256-U/3WZJ/+Bm0ghjeNUILsnlZnjIwk3ySaX3Rd4L9Z62A=";
1677 dependencies = [ self.nui-nvim ];
1679 # nvim-dbee looks for the go binary in paths returned bu M.dir() and M.bin() defined in lua/dbee/install/init.lua
1681 substituteInPlace lua/dbee/install/init.lua \
1682 --replace-fail 'return vim.fn.stdpath("data") .. "/dbee/bin"' 'return "${dbee-go}/bin"'
1687 ln -s ${dbee-go}/bin/dbee $target/bin/dbee
1690 meta.platforms = lib.platforms.linux;
1691 nvimRequireCheck = "dbee";
1695 nvim-navic = super.nvim-navic.overrideAttrs {
1696 dependencies = [ self.nvim-lspconfig ];
1697 nvimRequireCheck = "nvim-navic";
1700 nvim-spectre = super.nvim-spectre.overrideAttrs (
1703 spectre_oxi = rustPlatform.buildRustPackage {
1704 pname = "spectre_oxi";
1705 inherit (old) version src;
1706 sourceRoot = "${old.src.name}/spectre_oxi";
1708 cargoHash = "sha256-yYUbfqkICsGDKexYjfhXfpIoT1+QrZQJPpKzk+gwm+s=";
1715 # Flaky test (https://github.com/nvim-pack/nvim-spectre/issues/244)
1716 "--skip=tests::test_replace_simple"
1721 dependencies = with self; [ plenary-nvim ];
1723 ln -s ${spectre_oxi}/lib/libspectre_oxi.* $out/lua/spectre_oxi.so
1725 nvimRequireCheck = "spectre";
1729 nvim-scissors = super.nvim-scissors.overrideAttrs {
1730 nvimRequireCheck = "scissors";
1733 nvim-teal-maker = super.nvim-teal-maker.overrideAttrs {
1735 substituteInPlace lua/tealmaker/init.lua \
1736 --replace cyan ${luaPackages.cyan}/bin/cyan
1738 vimCommandCheck = "TealBuild";
1741 nvim-treesitter = super.nvim-treesitter.overrideAttrs (
1742 callPackage ./nvim-treesitter/overrides.nix { } self super
1745 nvim-treesitter-parsers = lib.recurseIntoAttrs self.nvim-treesitter.grammarPlugins;
1747 nvim-treesitter-sexp = super.nvim-treesitter-sexp.overrideAttrs {
1748 nvimRequireCheck = "treesitter-sexp";
1751 nvim-ufo = super.nvim-ufo.overrideAttrs {
1752 dependencies = with self; [ promise-async ];
1753 nvimRequireCheck = "ufo";
1756 obsidian-nvim = super.obsidian-nvim.overrideAttrs {
1757 dependencies = with self; [ plenary-nvim ];
1758 nvimRequireCheck = "obsidian";
1761 octo-nvim = super.octo-nvim.overrideAttrs {
1762 dependencies = with self; [
1766 nvimRequireCheck = "octo";
1769 ollama-nvim = super.ollama-nvim.overrideAttrs {
1770 dependencies = [ self.plenary-nvim ];
1771 nvimRequireCheck = "ollama";
1774 onehalf = super.onehalf.overrideAttrs {
1775 configurePhase = "cd vim";
1778 # The plugin depends on either skim-vim or fzf-vim, but we don't want to force the user so we
1779 # avoid choosing one of them and leave it to the user
1780 openscad-nvim = super.openscad-nvim.overrideAttrs {
1787 # FIXME: cant find plugin root dir
1788 # nvimRequireCheck = "openscad";
1791 src = ./patches/openscad.nvim/program_paths.patch;
1792 htop = lib.getExe htop;
1793 openscad = lib.getExe openscad;
1794 zathura = lib.getExe zathura;
1799 orgmode = super.orgmode.overrideAttrs {
1800 dependencies = with self; [ (nvim-treesitter.withPlugins (p: [ p.org ])) ];
1801 nvimRequireCheck = "orgmode";
1804 otter-nvim = super.otter-nvim.overrideAttrs {
1805 dependencies = [ self.nvim-lspconfig ];
1806 nvimRequirecheck = "otter";
1809 overseer-nvim = super.overseer-nvim.overrideAttrs {
1814 plugins=.testenv/data/nvim/site/pack/plugins/start
1816 ln -s ${self.plenary-nvim} "$plugins/plenary.nvim"
1822 nvimRequireCheck = "overseer";
1825 inherit parinfer-rust;
1827 phpactor = buildVimPlugin {
1835 substituteInPlace plugin/phpactor.vim \
1836 --replace "g:phpactorpath = expand('<sfile>:p:h') . '/..'" "g:phpactorpath = '${phpactor}'"
1840 playground = super.playground.overrideAttrs {
1841 dependencies = with self; [
1842 # we need the 'query' grammer to make
1843 (nvim-treesitter.withPlugins (p: [ p.query ]))
1845 nvimRequireCheck = "nvim-treesitter-playground";
1848 plenary-nvim = super.plenary-nvim.overrideAttrs {
1850 sed -Ei lua/plenary/curl.lua \
1851 -e 's@(command\s*=\s*")curl(")@\1${curl}/bin/curl\2@'
1854 doInstallCheck = true;
1855 nvimRequireCheck = "plenary";
1858 Preview-nvim = super.Preview-nvim.overrideAttrs {
1861 src = ./patches/preview-nvim/hardcode-mdt-binary-path.patch;
1862 mdt = lib.getExe md-tui;
1867 range-highlight-nvim = super.range-highlight-nvim.overrideAttrs {
1868 dependencies = with self; [ cmd-parser-nvim ];
1869 nvimRequireCheck = "range-highlight";
1872 ranger-nvim = super.ranger-nvim.overrideAttrs {
1873 patches = [ ./patches/ranger.nvim/fix-paths.patch ];
1876 substituteInPlace lua/ranger-nvim.lua --replace '@ranger@' ${ranger}/bin/ranger
1878 nvimRequireCheck = "ranger-nvim";
1881 aider-nvim = super.aider-nvim.overrideAttrs {
1882 patches = [ ./patches/aider.nvim/fix-paths.patch ];
1885 substituteInPlace lua/aider.lua --replace '@aider@' ${aider-chat}/bin/aider
1886 substituteInPlace lua/helpers.lua --replace '@aider@' ${aider-chat}/bin/aider
1888 nvimRequireCheck = "aider";
1891 refactoring-nvim = super.refactoring-nvim.overrideAttrs {
1892 dependencies = with self; [
1896 nvimRequireCheck = "refactoring";
1899 # needs "http" and "json" treesitter grammars too
1900 rest-nvim = super.rest-nvim.overrideAttrs {
1901 dependencies = with self; [
1903 (nvim-treesitter.withPlugins (p: [
1908 nvimRequireCheck = "rest-nvim";
1911 rocks-nvim = neovimUtils.buildNeovimPlugin {
1912 luaAttr = luaPackages.rocks-nvim;
1913 nvimRequireCheck = "rocks";
1916 rocks-config-nvim = neovimUtils.buildNeovimPlugin {
1917 luaAttr = luaPackages.rocks-config-nvim;
1918 nvimRequireCheck = "rocks-config";
1921 roslyn-nvim = super.roslyn-nvim.overrideAttrs {
1922 dependencies = with self; [ nvim-lspconfig ];
1923 nvimRequireCheck = "roslyn";
1926 rtp-nvim = neovimUtils.buildNeovimPlugin {
1927 luaAttr = luaPackages.rtp-nvim;
1928 nvimRequireCheck = "rtp_nvim";
1931 rustaceanvim = neovimUtils.buildNeovimPlugin {
1932 luaAttr = luaPackages.rustaceanvim;
1933 nvimRequireCheck = "rustaceanvim";
1936 scretch-nvim = super.scretch-nvim.overrideAttrs {
1937 nvimRequireCheck = "scretch";
1940 sg-nvim = super.sg-nvim.overrideAttrs (
1943 sg-nvim-rust = rustPlatform.buildRustPackage {
1944 pname = "sg-nvim-rust";
1945 inherit (old) version src;
1947 cargoHash = "sha256-7Bo0DSRqxA7kgNuyuWw24r3PsP92y9h98SHFtIhG+Gs=";
1949 nativeBuildInputs = [ pkg-config ];
1953 ++ lib.optionals stdenv.hostPlatform.isDarwin [
1954 darwin.apple_sdk.frameworks.Security
1955 darwin.apple_sdk.frameworks.SystemConfiguration
1959 rm .cargo/config.toml
1962 env.OPENSSL_NO_VENDOR = true;
1964 cargoBuildFlags = [ "--workspace" ];
1971 dependencies = with self; [ plenary-nvim ];
1973 mkdir -p $out/target/debug
1974 ln -s ${sg-nvim-rust}/{bin,lib}/* $out/target/debug
1976 nvimRequireCheck = "sg";
1980 skim = buildVimPlugin {
1982 inherit (skim) version;
1986 skim-vim = super.skim-vim.overrideAttrs {
1987 dependencies = [ self.skim ];
1990 smart-open-nvim = super.smart-open-nvim.overrideAttrs {
1991 dependencies = with self; [
2000 src = fetchFromGitHub {
2003 rev = "refs/tags/v${version}";
2004 hash = "sha256-2rVeBUkdLXUiHkd8slyiLTYQBKwgMQvIi/uyCToVBYA=";
2006 sniprun-bin = rustPlatform.buildRustPackage {
2007 pname = "sniprun-bin";
2008 inherit version src;
2010 buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
2011 darwin.apple_sdk.frameworks.Security
2014 cargoHash = "sha256-eZcWS+DWec0V9G6hBnZRUNcb3uZeSiBhn4Ed9KodFV8=";
2016 nativeBuildInputs = [ makeWrapper ];
2019 wrapProgram $out/bin/sniprun \
2037 inherit version src;
2039 patches = [ ./patches/sniprun/fix-paths.patch ];
2041 substituteInPlace lua/sniprun.lua --replace '@sniprun_bin@' ${sniprun-bin}
2044 propagatedBuildInputs = [ sniprun-bin ];
2047 homepage = "https://github.com/michaelb/sniprun/";
2048 changelog = "https://github.com/michaelb/sniprun/blob/v${version}/CHANGELOG.md";
2049 maintainers = with lib.maintainers; [ GaetanLepage ];
2051 nvimRequireCheck = "sniprun";
2054 # The GitHub repository returns 404, which breaks the update script
2055 Spacegray-vim = buildVimPlugin {
2056 pname = "Spacegray.vim";
2057 version = "2021-07-06";
2058 src = fetchFromGitHub {
2059 owner = "ackyshake";
2060 repo = "Spacegray.vim";
2061 rev = "c699ca10ed421c462bd1c87a158faaa570dc8e28";
2062 sha256 = "0ma8w6p5jh6llka49x5j5ql8fmhv0bx5hhsn5b2phak79yqg1k61";
2064 meta.homepage = "https://github.com/ackyshake/Spacegray.vim/";
2067 sqlite-lua = super.sqlite-lua.overrideAttrs (
2070 libsqlite = "${sqlite.out}/lib/libsqlite3${stdenv.hostPlatform.extensions.sharedLibrary}";
2074 substituteInPlace lua/sqlite/defs.lua \
2075 --replace-fail "path = vim.g.sqlite_clib_path" "path = vim.g.sqlite_clib_path or '${lib.escapeShellArg libsqlite}'"
2078 passthru = oa.passthru // {
2079 initLua = ''vim.g.sqlite_clib_path = "${libsqlite}"'';
2081 nvimRequireCheck = "sqlite";
2085 ssr = super.ssr-nvim.overrideAttrs {
2086 dependencies = with self; [ nvim-treesitter ];
2087 nvimRequireCheck = "ssr";
2090 startup-nvim = super.startup-nvim.overrideAttrs {
2091 dependencies = with super; [ plenary-nvim ];
2092 nvimRequireCheck = "startup";
2095 statix = buildVimPlugin rec {
2096 inherit (statix) pname src meta;
2099 # check that version is up to date
2100 grep 'pname = "statix-vim"' -A 1 flake.nix \
2101 | grep -F 'version = "${version}"'
2104 substituteInPlace ftplugin/nix.vim --replace statix ${statix}/bin/statix
2105 substituteInPlace plugin/statix.vim --replace statix ${statix}/bin/statix
2109 stylish-nvim = super.stylish-nvim.overrideAttrs {
2111 substituteInPlace lua/stylish/common/mouse_hover_handler.lua --replace xdotool ${xdotool}/bin/xdotool
2112 substituteInPlace lua/stylish/components/menu.lua --replace xdotool ${xdotool}/bin/xdotool
2113 substituteInPlace lua/stylish/components/menu.lua --replace xwininfo ${xorg.xwininfo}/bin/xwininfo
2115 nvimRequireCheck = "stylish";
2120 # we put the script in its own derivation to benefit the magic of wrapGAppsHook3
2121 svedbackend = stdenv.mkDerivation {
2122 name = "svedbackend-${super.sved.name}";
2123 inherit (super.sved) src;
2124 nativeBuildInputs = [
2126 gobject-introspection
2130 (python3.withPackages (
2138 preferLocalBuild = true;
2140 install -Dt $out/bin ftplugin/evinceSync.py
2143 # the vim plugin expects evinceSync.py to be a python file, but it is a C wrapper
2145 writeText "evinceSync-wrapper.py" # python
2147 #!${python3}/bin/python3
2150 os.execv("${svedbackend}/bin/evinceSync.py", sys.argv)
2153 super.sved.overrideAttrs {
2154 preferLocalBuild = true;
2156 rm ftplugin/evinceSync.py
2157 install -m 544 ${pythonWrapper} ftplugin/evinceSync.py
2160 description = "synctex support between vim/neovim and evince";
2164 syntax-tree-surfer = super.syntax-tree-surfer.overrideAttrs {
2165 dependencies = with self; [ nvim-treesitter ];
2166 meta.maintainers = with lib.maintainers; [ callumio ];
2167 nvimRequireCheck = "syntax-tree-surfer";
2170 taskwarrior3 = buildVimPlugin {
2171 inherit (taskwarrior3) version pname;
2172 src = "${taskwarrior3.src}/scripts/vim";
2175 taskwarrior2 = buildVimPlugin {
2176 inherit (taskwarrior2) version pname;
2177 src = "${taskwarrior2.src}/scripts/vim";
2180 telekasten-nvim = super.telekasten-nvim.overrideAttrs {
2181 dependencies = with self; [
2185 nvimRequireCheck = "telekasten";
2188 telescope-cheat-nvim = super.telescope-cheat-nvim.overrideAttrs {
2189 dependencies = with self; [
2195 telescope-frecency-nvim = super.telescope-frecency-nvim.overrideAttrs {
2196 dependencies = with self; [
2202 telescope-fzf-native-nvim = super.telescope-fzf-native-nvim.overrideAttrs {
2203 dependencies = with self; [ telescope-nvim ];
2204 buildPhase = "make";
2205 meta.platforms = lib.platforms.all;
2208 telescope-fzf-writer-nvim = super.telescope-fzf-writer-nvim.overrideAttrs {
2209 dependencies = with self; [ telescope-nvim ];
2212 telescope-fzy-native-nvim = super.telescope-fzy-native-nvim.overrideAttrs (old: {
2213 dependencies = with self; [ telescope-nvim ];
2216 fzy-lua-native-path = "deps/fzy-lua-native";
2217 fzy-lua-native = stdenv.mkDerivation {
2218 name = "fzy-lua-native";
2219 src = "${old.src}/${fzy-lua-native-path}";
2220 # remove pre-compiled binaries
2221 preBuild = "rm -rf static/*";
2223 install -Dm 444 -t $out/static static/*
2224 install -Dm 444 -t $out/lua lua/*
2229 rm -rf $target/${fzy-lua-native-path}/*
2230 ln -s ${fzy-lua-native}/static $target/${fzy-lua-native-path}/static
2231 ln -s ${fzy-lua-native}/lua $target/${fzy-lua-native-path}/lua
2233 meta.platforms = lib.platforms.all;
2236 telescope-git-conflicts-nvim = super.telescope-git-conflicts-nvim.overrideAttrs {
2237 dependencies = with self; [ telescope-nvim ];
2240 telescope-media-files-nvim = super.telescope-media-files-nvim.overrideAttrs {
2241 dependencies = with self; [
2248 telescope-nvim = super.telescope-nvim.overrideAttrs {
2249 dependencies = with self; [ plenary-nvim ];
2252 telescope-symbols-nvim = super.telescope-symbols-nvim.overrideAttrs {
2253 dependencies = with self; [ telescope-nvim ];
2256 telescope-undo-nvim = super.telescope-undo-nvim.overrideAttrs {
2257 dependencies = with self; [ telescope-nvim ];
2260 telescope-z-nvim = super.telescope-z-nvim.overrideAttrs {
2261 dependencies = with self; [ telescope-nvim ];
2264 telescope-zoxide = super.telescope-zoxide.overrideAttrs {
2265 dependencies = with self; [ telescope-nvim ];
2267 buildInputs = [ zoxide ];
2270 substituteInPlace lua/telescope/_extensions/zoxide/config.lua \
2271 --replace "zoxide query -ls" "${zoxide}/bin/zoxide query -ls"
2275 todo-comments-nvim = super.todo-comments-nvim.overrideAttrs {
2276 dependencies = [ self.plenary-nvim ];
2277 nvimRequireCheck = "todo-comments";
2280 tssorter-nvim = super.tssorter-nvim.overrideAttrs {
2281 dependencies = with self; [ nvim-treesitter ];
2282 nvimRequireCheck = "tssorter";
2287 # Based on the comment at the top of https://github.com/gittup/tup/blob/master/contrib/syntax/tup.vim
2288 ftdetect = builtins.toFile "tup.vim" ''
2289 au BufNewFile,BufRead Tupfile,*.tup setf tup
2293 inherit (tup) pname version src;
2295 mkdir -p vim-plugin/syntax vim-plugin/ftdetect
2296 cp contrib/syntax/tup.vim vim-plugin/syntax/tup.vim
2297 cp "${ftdetect}" vim-plugin/ftdetect/tup.vim
2300 meta.maintainers = with lib.maintainers; [ enderger ];
2303 typescript-tools-nvim = super.typescript-tools-nvim.overrideAttrs {
2304 dependencies = with self; [
2308 nvimRequireCheck = "typescript-tools";
2313 unicode-data = fetchurl {
2314 url = "http://www.unicode.org/Public/UNIDATA/UnicodeData.txt";
2315 sha256 = "16b0jzvvzarnlxdvs2izd5ia0ipbd87md143dc6lv6xpdqcs75s9";
2318 super.unicode-vim.overrideAttrs (oa: {
2319 # redirect to /dev/null else changes terminal color
2321 cp "${unicode-data}" autoload/unicode/UnicodeData.txt
2322 echo "Building unicode cache"
2323 ${vim}/bin/vim --cmd ":set rtp^=$PWD" -c 'ru plugin/unicode.vim' -c 'UnicodeCache' -c ':echohl Normal' -c ':q' > /dev/null
2326 passthru = oa.passthru // {
2328 initLua = ''vim.g.Unicode_data_directory="${self.unicode-vim}/autoload/unicode"'';
2332 unison = super.unison.overrideAttrs {
2333 # Editor stuff isn't at top level
2334 postPatch = "cd editor-support/vim";
2337 vCoolor-vim = super.vCoolor-vim.overrideAttrs {
2338 # on linux can use either Zenity or Yad.
2339 propagatedBuildInputs = [ zenity ];
2341 description = "Simple color selector/picker plugin";
2342 license = lib.licenses.publicDomain;
2346 vim-addon-actions = super.vim-addon-actions.overrideAttrs {
2347 dependencies = with self; [
2353 vim-addon-async = super.vim-addon-async.overrideAttrs {
2354 dependencies = with self; [ vim-addon-signs ];
2357 vim-addon-background-cmd = super.vim-addon-background-cmd.overrideAttrs {
2358 dependencies = with self; [ vim-addon-mw-utils ];
2361 vim-addon-completion = super.vim-addon-completion.overrideAttrs {
2362 dependencies = with self; [ tlib_vim ];
2365 vim-addon-goto-thing-at-cursor = super.vim-addon-goto-thing-at-cursor.overrideAttrs {
2366 dependencies = with self; [ tlib_vim ];
2369 vim-addon-manager = super.vim-addon-manager.overrideAttrs {
2370 buildInputs = lib.optional stdenv.hostPlatform.isDarwin Cocoa;
2373 vim-addon-mru = super.vim-addon-mru.overrideAttrs {
2374 dependencies = with self; [
2380 vim-addon-nix = super.vim-addon-nix.overrideAttrs {
2381 dependencies = with self; [
2382 vim-addon-completion
2383 vim-addon-goto-thing-at-cursor
2384 vim-addon-errorformats
2391 vim-addon-sql = super.vim-addon-sql.overrideAttrs {
2392 dependencies = with self; [
2393 vim-addon-completion
2394 vim-addon-background-cmd
2399 vim-addon-syntax-checker = super.vim-addon-syntax-checker.overrideAttrs {
2400 dependencies = with self; [
2406 vim-addon-toggle-buffer = super.vim-addon-toggle-buffer.overrideAttrs {
2407 dependencies = with self; [
2413 vim-addon-xdebug = super.vim-addon-xdebug.overrideAttrs {
2414 dependencies = with self; [
2422 vim-agda = super.vim-agda.overrideAttrs {
2424 substituteInPlace "$out"/autoload/agda.vim \
2425 --replace "jobstart(['agda'" "jobstart(['${agda}/bin/agda'"
2429 vim-bazel = super.vim-bazel.overrideAttrs {
2430 dependencies = with self; [ vim-maktaba ];
2433 vim-beancount = super.vim-beancount.overrideAttrs {
2434 passthru.python3Dependencies = ps: with ps; [ beancount ];
2437 vim-clap = callPackage ./vim-clap { };
2439 vim-codefmt = super.vim-codefmt.overrideAttrs {
2440 dependencies = with self; [ vim-maktaba ];
2443 # Due to case-sensitivety issues, the hash differs on Darwin systems, see:
2444 # https://github.com/NixOS/nixpkgs/issues/157609
2445 vim-colorschemes = super.vim-colorschemes.overrideAttrs (old: {
2446 src = old.src.overrideAttrs (srcOld: {
2448 (srcOld.postFetch or "")
2449 + lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
2450 rm $out/colors/darkBlue.vim
2455 vim-dadbod-ui = super.vim-dadbod-ui.overrideAttrs {
2456 dependencies = with self; [ vim-dadbod ];
2459 vim-dasht = super.vim-dasht.overrideAttrs {
2461 substituteInPlace $out/autoload/dasht.vim \
2462 --replace "['dasht']" "['${dasht}/bin/dasht']"
2466 vim-easytags = super.vim-easytags.overrideAttrs {
2467 dependencies = with self; [ vim-misc ];
2470 # https://github.com/xolox/vim-easytags/pull/170 fix version detection for universal-ctags
2471 url = "https://github.com/xolox/vim-easytags/commit/46e4709500ba3b8e6cf3e90aeb95736b19e49be9.patch";
2472 sha256 = "0x0xabb56xkgdqrg1mpvhbi3yw4d829n73lsnnyj5yrxjffy4ax4";
2477 vim-fzf-coauthorship = super.vim-fzf-coauthorship.overrideAttrs {
2478 dependencies = with self; [ fzf-vim ];
2481 # change the go_bin_path to point to a path in the nix store. See the code in
2483 # https://github.com/fatih/vim-go/blob/155836d47052ea9c9bac81ba3e937f6f22c8e384/autoload/go/path.vim#L154-L159
2486 binPath = lib.makeBinPath [
2491 go-tools # contains staticcheck, keyify
2500 gotools # contains guru, gorename
2507 super.vim-go.overrideAttrs {
2509 sed -i autoload/go/config.vim -Ee 's@"go_bin_path", ""@"go_bin_path", "${binPath}"@g'
2513 vim-gist = super.vim-gist.overrideAttrs {
2514 dependencies = with self; [ webapi-vim ];
2517 vim-grammarous = super.vim-grammarous.overrideAttrs {
2518 # use `:GrammarousCheck` to initialize checking
2519 # In neovim, you also want to use set
2520 # let g:grammarous#show_first_error = 1
2521 # see https://github.com/rhysd/vim-grammarous/issues/39
2524 src = ./patches/vim-grammarous/set_default_languagetool.patch;
2525 inherit languagetool;
2530 vim-hexokinase = super.vim-hexokinase.overrideAttrs (old: {
2533 hexokinase = buildGoModule {
2534 name = "hexokinase";
2535 src = old.src + "/hexokinase";
2540 ln -s ${hexokinase}/bin/hexokinase $target/hexokinase/hexokinase
2543 meta.platforms = lib.platforms.all;
2546 vim-hier = super.vim-hier.overrideAttrs {
2547 buildInputs = [ vim ];
2550 vim-isort = super.vim-isort.overrideAttrs {
2552 substituteInPlace ftplugin/python_vimisort.vim \
2553 --replace 'import vim' 'import vim; import sys; sys.path.append("${python3.pkgs.isort}/${python3.sitePackages}")'
2557 vim-markdown-composer =
2559 vim-markdown-composer-bin = rustPlatform.buildRustPackage {
2560 pname = "vim-markdown-composer-bin";
2561 inherit (super.vim-markdown-composer) src version;
2562 cargoHash = "sha256-Vie8vLTplhaVU4E9IohvxERfz3eBpd62m8/1Ukzk8e4=";
2563 # tests require network access
2567 super.vim-markdown-composer.overrideAttrs {
2569 substituteInPlace "$out"/after/ftplugin/markdown/composer.vim \
2570 --replace "s:plugin_root . '/target/release/markdown-composer'" \
2571 "'${vim-markdown-composer-bin}/bin/markdown-composer'"
2575 vim-metamath = super.vim-metamath.overrideAttrs {
2576 preInstall = "cd vim";
2579 vim-pluto = super.vim-pluto.overrideAttrs {
2580 dependencies = with self; [ denops-vim ];
2583 # The GitHub repository returns 404, which breaks the update script
2584 vim-pony = buildVimPlugin {
2586 version = "2018-07-27";
2587 src = fetchFromGitHub {
2590 rev = "b26f01a869000b73b80dceabd725d91bfe175b75";
2591 sha256 = "0if8g94m3xmpda80byfxs649w2is9ah1k8v3028nblan73zlc8x8";
2593 meta.homepage = "https://github.com/jakwings/vim-pony/";
2596 vim-sensible = super.vim-sensible.overrideAttrs {
2597 patches = [ ./patches/vim-sensible/fix-nix-store-path-regex.patch ];
2600 vim-snipmate = super.vim-snipmate.overrideAttrs {
2601 dependencies = with self; [
2607 vim-speeddating = super.vim-speeddating.overrideAttrs {
2608 dependencies = with self; [ vim-repeat ];
2611 vim-stylish-haskell = super.vim-stylish-haskell.overrideAttrs (old: {
2615 substituteInPlace ftplugin/haskell/stylish-haskell.vim --replace \
2616 'g:stylish_haskell_command = "stylish-haskell"' \
2617 'g:stylish_haskell_command = "${stylish-haskell}/bin/stylish-haskell"'
2621 vim-surround = super.vim-surround.overrideAttrs {
2622 dependencies = with self; [ vim-repeat ];
2625 vim-tabby = super.vim-tabby.overrideAttrs {
2626 nvimRequirecheck = "tabby";
2629 vim-textobj-entire = super.vim-textobj-entire.overrideAttrs {
2630 dependencies = with self; [ vim-textobj-user ];
2631 meta.maintainers = with lib.maintainers; [ farlion ];
2634 vim-unimpaired = super.vim-unimpaired.overrideAttrs {
2635 dependencies = with self; [ vim-repeat ];
2638 vim-wakatime = super.vim-wakatime.overrideAttrs {
2639 buildInputs = [ python3 ];
2641 substituteInPlace plugin/wakatime.vim \
2642 --replace 'autocmd BufEnter,VimEnter' \
2643 'autocmd VimEnter' \
2644 --replace 'autocmd CursorMoved,CursorMovedI' \
2645 'autocmd CursorMoved,CursorMovedI,BufEnter'
2649 vim-xdebug = super.vim-xdebug.overrideAttrs {
2653 vim-xkbswitch = super.vim-xkbswitch.overrideAttrs {
2655 substituteInPlace plugin/xkbswitch.vim \
2656 --replace /usr/local/lib/libxkbswitch.so ${xkb-switch}/lib/libxkbswitch.so
2658 buildInputs = [ xkb-switch ];
2661 vim-yapf = super.vim-yapf.overrideAttrs {
2663 substituteInPlace ftplugin/python_yapf.vim \
2664 --replace '"yapf"' '"${python3.pkgs.yapf}/bin/yapf"'
2668 vim2nix = buildVimPlugin {
2672 dependencies = with self; [ vim-addon-manager ];
2675 vimacs = super.vimacs.overrideAttrs {
2677 substituteInPlace bin/vim \
2678 --replace '/usr/bin/vim' 'vim' \
2679 --replace '/usr/bin/gvim' 'gvim'
2680 # remove unnecessary duplicated bin wrapper script
2684 description = "Vim-Improved eMACS: Emacs emulation plugin for Vim";
2685 homepage = "http://algorithm.com.au/code/vimacs";
2686 license = licenses.gpl2Plus;
2687 maintainers = with lib.maintainers; [ millerjason ];
2691 # The GitHub repository returns 404, which breaks the update script
2692 VimCompletesMe = buildVimPlugin {
2693 pname = "VimCompletesMe";
2694 version = "2022-02-18";
2695 src = fetchFromGitHub {
2696 owner = "ackyshake";
2697 repo = "VimCompletesMe";
2698 rev = "9adf692d7ae6424038458a89d4a411f0a27d1388";
2699 sha256 = "1sndgb3291dyifaa8adri2mb8cgbinbar3nw1fnf67k9ahwycaz0";
2701 meta.homepage = "https://github.com/ackyshake/VimCompletesMe/";
2704 vimsence = super.vimsence.overrideAttrs {
2706 description = "Discord rich presence for Vim";
2707 homepage = "https://github.com/hugolgst/vimsence";
2708 maintainers = with lib.maintainers; [ hugolgst ];
2712 vimproc-vim = super.vimproc-vim.overrideAttrs {
2713 buildInputs = [ which ];
2716 substituteInPlace autoload/vimproc.vim \
2717 --replace vimproc_mac.so vimproc_unix.so \
2718 --replace vimproc_linux64.so vimproc_unix.so \
2719 --replace vimproc_linux32.so vimproc_unix.so
2720 make -f make_unix.mak
2724 vimshell-vim = super.vimshell-vim.overrideAttrs {
2725 dependencies = with self; [ vimproc-vim ];
2728 vim-zettel = super.vim-zettel.overrideAttrs {
2729 dependencies = with self; [
2735 windows-nvim = super.windows-nvim.overrideAttrs {
2736 dependencies = with self; [
2740 nvimRequireCheck = "windows";
2743 wtf-nvim = super.wtf-nvim.overrideAttrs {
2744 dependencies = with self; [ nui-nvim ];
2745 nvimRequireCheck = "wtf";
2748 YankRing-vim = super.YankRing-vim.overrideAttrs {
2752 yazi-nvim = super.yazi-nvim.overrideAttrs {
2753 dependencies = with self; [ plenary-nvim ];
2754 nvimRequireCheck = "yazi";
2757 YouCompleteMe = super.YouCompleteMe.overrideAttrs {
2759 substituteInPlace plugin/youcompleteme.vim \
2760 --replace "'ycm_path_to_python_interpreter', '''" \
2761 "'ycm_path_to_python_interpreter', '${python3}/bin/python3'"
2763 rm -r third_party/ycmd
2764 ln -s ${ycmd}/lib/ycmd third_party
2768 description = "Code-completion engine for Vim";
2769 homepage = "https://github.com/Valloric/YouCompleteMe";
2770 license = licenses.gpl3;
2771 maintainers = with maintainers; [
2775 platforms = platforms.unix;
2779 zoxide-vim = super.zoxide-vim.overrideAttrs {
2780 buildInputs = [ zoxide ];
2783 substituteInPlace autoload/zoxide.vim \
2784 --replace "'zoxide_executable', 'zoxide'" "'zoxide_executable', '${zoxide}/bin/zoxide'"
2788 typst-preview-nvim = super.typst-preview-nvim.overrideAttrs {
2790 substituteInPlace lua/typst-preview/config.lua \
2791 --replace-fail "['tinymist'] = nil," "tinymist = '${lib.getExe tinymist}'," \
2792 --replace-fail "['websocat'] = nil," "websocat = '${lib.getExe websocat}',"
2795 nvimRequireCheck = "typst-preview";
2800 nodePackageNames = [
2843 nodePackage2VimPackage =
2847 inherit (nodePackages.${name}) version meta;
2848 src = "${nodePackages.${name}}/lib/node_modules/${name}";
2851 lib.genAttrs nodePackageNames nodePackage2VimPackage