summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/default.nix2
-rw-r--r--pkgs/youcompleteme.nix32
2 files changed, 34 insertions, 0 deletions
diff --git a/pkgs/default.nix b/pkgs/default.nix
index 5df7bc8..07ca87c 100644
--- a/pkgs/default.nix
+++ b/pkgs/default.nix
@@ -2,4 +2,6 @@
 
 {
   common = with pkgs; lib.recurseIntoAttrs (callPackage ./common.nix { });
+
+  youcompleteme = pkgs.callPackage ./youcompleteme.nix { };
 }
diff --git a/pkgs/youcompleteme.nix b/pkgs/youcompleteme.nix
new file mode 100644
index 0000000..190e4b5
--- /dev/null
+++ b/pkgs/youcompleteme.nix
@@ -0,0 +1,32 @@
+{
+  ycmd,
+  vimPlugins,
+  gopls,
+  ...
+}:
+
+let
+  ycmd-go = ycmd.overrideAttrs (
+    final: prev: {
+      pname = prev.pname + "-go";
+
+      installPhase =
+        prev.installPhase
+        + ''
+          TARGET=$out/lib/ycmd/third_party/go/bin
+          mkdir -p $TARGET
+          ln -sf ${gopls}/bin/gopls $TARGET
+        '';
+    }
+  );
+in
+vimPlugins.YouCompleteMe.overrideAttrs (
+  final: prev: {
+    buildPhase =
+      prev.buildPhase
+      + ''
+        rm third_party/ycmd
+        ln -s ${ycmd-go}/lib/ycmd third_party
+      '';
+  }
+)