anchor.diff:      " ycmd/__main__.py
   
       mkdir -p $out/lib/ycmd
  -    cp -r ycmd/ CORE_VERSION libclang.so.* libclang.dylib* ycm_core.so $out/lib/ycmd/
  +    cp -r ycmd/ CORE_VERSION *.so* *.dylib* $out/lib/ycmd/
   
       mkdir -p $out/bin
       ln -s $out/lib/ycmd/ycmd/__main__.py $out/bin/ycmd
  
positive.code: { stdenv, lib, fetchFromGitHub, cmake, llvmPackages, boost, python
  , withGocode ? true, gocode
  , withGodef ? true, godef
  , withGotools? true, gotools
  , withTypescript ? true, nodePackages
  , fixDarwinDylibNames, Cocoa
  }:
  
  stdenv.mkDerivation {
    pname = "ycmd";
    version = "unstable-2020-02-22";
    disabled = !python.isPy3k;
  
    # required for third_party directory creation
    src = fetchFromGitHub {
      owner = "Valloric";
      repo = "ycmd";
      rev = "9a6b86e3a156066335b678c328f226229746bae5";
      sha256 = "sha256-xzLELjp4DsG6mkzaFqpuquSa0uoaZWrYLrKr/mzrqrA=";
      fetchSubmodules = true;
    };
  
    nativeBuildInputs = [ cmake ]
      ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
    buildInputs = [ boost llvmPackages.libclang ]
      ++ lib.optional stdenv.isDarwin Cocoa;
  
    buildPhase = ''
      export EXTRA_CMAKE_ARGS=-DPATH_TO_LLVM_ROOT=${llvmPackages.clang-unwrapped}
      ${python.interpreter} build.py --system-libclang --clang-completer --system-boost
    '';
  
    dontConfigure = true;
  
negative.code:   # python won't be thrown off by argv[0]
    postFixup = ''
      substituteInPlace $out/lib/ycmd/ycmd/__main__.py \
        --replace __file__ "'$out/lib/ycmd/ycmd/__main__.py'"
    '';
  
    meta = with lib; {
      description = "A code-completion and comprehension server";
      homepage = "https://github.com/ycm-core/ycmd";
      license = licenses.gpl3;
      maintainers = with maintainers; [ rasendubi cstrahan lnl7 siriobalmelli ];
      platforms = platforms.all;
    };
  }
  