about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/editors/kakoune/plugins/overrides.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/editors/kakoune/plugins/overrides.nix')
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/plugins/overrides.nix161
1 files changed, 161 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/plugins/overrides.nix b/nixpkgs/pkgs/applications/editors/kakoune/plugins/overrides.nix
new file mode 100644
index 000000000000..2ca24cf661a0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/kakoune/plugins/overrides.nix
@@ -0,0 +1,161 @@
+{ lib, stdenv, fetchFromGitHub, fetchFromGitLab, fetchgit
+, buildKakounePluginFrom2Nix
+, kak-lsp, parinfer-rust, rep
+, fzf, git, guile, kakoune-unwrapped, lua5_3, plan9port
+}:
+
+self: super: {
+  inherit kak-lsp parinfer-rust rep;
+
+  case-kak = buildKakounePluginFrom2Nix {
+    pname = "case-kak";
+    version = "2020-04-06";
+    src = fetchFromGitLab {
+      owner = "FlyingWombat";
+      repo = "case.kak";
+      rev = "6f1511820aa3abfa118e0f856118adc8113e2185";
+      sha256 = "002njrlwgakqgp74wivbppr9qyn57dn4n5bxkr6k6nglk9qndwdp";
+    };
+    meta.homepage = "https://gitlab.com/FlyingWombat/case.kak";
+  };
+
+  fzf-kak = super.fzf-kak.overrideAttrs(oldAttrs: rec {
+    preFixup = ''
+      if [[ -x "${fzf}/bin/fzf" ]]; then
+        fzfImpl='${fzf}/bin/fzf'
+      else
+        fzfImpl='${fzf}/bin/sk'
+      fi
+
+      substituteInPlace $out/share/kak/autoload/plugins/fzf-kak/rc/fzf.kak \
+        --replace \'fzf\' \'"$fzfImpl"\'
+    '';
+  });
+
+  kak-ansi = stdenv.mkDerivation rec {
+    pname = "kak-ansi";
+    version = "0.2.3";
+
+    src = fetchFromGitHub {
+      owner = "eraserhd";
+      repo = "kak-ansi";
+      rev = "v${version}";
+      sha256 = "pO7M3MjKMJQew9O20KALEvsXLuCKPYGGTtuN/q/kj8Q=";
+    };
+
+    installPhase = ''
+      mkdir -p $out/bin $out/share/kak/autoload/plugins/
+      cp kak-ansi-filter $out/bin/
+      # Hard-code path of filter and don't try to build when Kakoune boots
+      sed '
+        /^declare-option.* ansi_filter /i\
+declare-option -hidden str ansi_filter %{'"$out"'/bin/kak-ansi-filter}
+        /^declare-option.* ansi_filter /,/^}/d
+      ' rc/ansi.kak >$out/share/kak/autoload/plugins/ansi.kak
+    '';
+
+    meta = with lib; {
+      description = "Kakoune support for rendering ANSI code";
+      homepage = "https://github.com/eraserhd/kak-ansi";
+      license = licenses.unlicense;
+      maintainers = with maintainers; [ eraserhd ];
+      platforms = platforms.all;
+    };
+  };
+
+  kak-plumb = stdenv.mkDerivation rec {
+    pname = "kak-plumb";
+    version = "0.1.1";
+
+    src = fetchFromGitHub {
+      owner = "eraserhd";
+      repo = "kak-plumb";
+      rev = "v${version}";
+      sha256 = "1rz6pr786slnf1a78m3sj09axr4d2lb5rg7sfa4mfg1zcjh06ps6";
+    };
+
+    installPhase = ''
+      mkdir -p $out/bin $out/share/kak/autoload/plugins/
+      substitute rc/plumb.kak $out/share/kak/autoload/plugins/plumb.kak \
+        --replace '9 plumb' '${plan9port}/bin/9 plumb'
+      substitute edit-client $out/bin/edit-client \
+        --replace '9 9p' '${plan9port}/bin/9 9p' \
+        --replace 'kak -p' '${kakoune-unwrapped}/bin/kak -p'
+      chmod +x $out/bin/edit-client
+    '';
+
+    meta = with lib; {
+      description = "Kakoune integration with the Plan 9 plumber";
+      homepage = "https://github.com/eraserhd/kak-plumb";
+      license = licenses.unlicense;
+      maintainers = with maintainers; [ eraserhd ];
+      platforms = platforms.all;
+    };
+  };
+
+  kakoune-rainbow = super.kakoune-rainbow.overrideAttrs(oldAttrs: rec {
+    preFixup = ''
+      mkdir -p $out/bin
+      mv $out/share/kak/autoload/plugins/kakoune-rainbow/bin/kak-rainbow.scm $out/bin
+      substituteInPlace $out/bin/kak-rainbow.scm \
+        --replace '/usr/bin/env -S guile' '${guile}/bin/guile'
+      substituteInPlace $out/share/kak/autoload/plugins/kakoune-rainbow/rainbow.kak \
+        --replace '%sh{dirname "$kak_source"}' "'$out'"
+    '';
+  });
+
+  kakoune-state-save = buildKakounePluginFrom2Nix {
+    pname = "kakoune-state-save";
+    version = "2020-02-09";
+
+    src = fetchFromGitLab {
+      owner = "Screwtapello";
+      repo = "kakoune-state-save";
+      rev = "ab7c0c765326a4a80af78857469ee8c80814c52a";
+      sha256 = "AAOCG0TY3G188NnkkwMCSbkkNe487F4gwiFWwG9Yo+A=";
+    };
+
+    meta = with lib; {
+      description = "Help Kakoune save and restore state between sessions";
+      homepage = "https://gitlab.com/Screwtapello/kakoune-state-save";
+      license = licenses.mit;
+      maintainers = with maintainers; [ Flakebi ];
+      platforms = platforms.all;
+    };
+  };
+
+  powerline-kak = super.powerline-kak.overrideAttrs(oldAttrs: rec {
+    preFixup = ''
+      substituteInPlace $out/share/kak/autoload/plugins/powerline-kak/rc/modules/git.kak \
+        --replace ' git ' ' ${git}/bin/git '
+    '';
+  });
+
+  quickscope-kak = buildKakounePluginFrom2Nix rec {
+    pname = "quickscope-kak";
+    version = "1.0.0";
+
+    src = fetchgit {
+      url = "https://git.sr.ht/~voroskoi/quickscope.kak";
+      rev = "v${version}";
+      sha256 = "0y1g3zpa2ql8l9rl5i2w84bka8a09kig9nq9zdchaff5pw660mcx";
+    };
+
+    buildInputs = [ lua5_3 ];
+
+    installPhase = ''
+      mkdir -p $out/share/kak/autoload/plugins/
+      cp quickscope.* $out/share/kak/autoload/plugins/
+      # substituteInPlace does not like the pipe
+      sed -e 's,[|] *lua,|${lua5_3}/bin/lua,' quickscope.kak >$out/share/kak/autoload/plugins/quickscope.kak
+    '';
+
+    meta = with lib; {
+      description = "Highlight f and t jump positions";
+      homepage = "https://sr.ht/~voroskoi/quickscope.kak/";
+      license = licenses.unlicense;
+      maintainers = with maintainers; [ eraserhd ];
+      platforms = platforms.all;
+    };
+  };
+}