2025-07-26 11:39:35 +02:00

79 lines
1.6 KiB
Nix

{
lib,
fetchFromGitHub,
nix-update-script,
openssl,
pkg-config,
rustPlatform,
vimPlugins,
vimUtils,
}:
let
version = "1.1.0-unstable-2025-01-21";
src = fetchFromGitHub {
owner = "sourcegraph";
repo = "sg.nvim";
rev = "775f22b75a9826eabf69b0094dd1d51d619fe552";
hash = "sha256-i5g+pzxB8pAORLbr1wlYWUTsrJJmVj9UwlCg8pU3Suw=";
};
sg-nvim-rust = rustPlatform.buildRustPackage {
pname = "sg-nvim-rust";
inherit version src;
cargoHash = "sha256-yY/5w2ztmTKJAYDxBJND8itCOwRNi1negiFq3PyFaSM=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ];
prePatch = ''
rm .cargo/config.toml
'';
env.OPENSSL_NO_VENDOR = true;
cargoBuildFlags = [ "--workspace" ];
# tests are broken
doCheck = false;
};
in
vimUtils.buildVimPlugin {
pname = "sg.nvim";
inherit version src;
checkInputs = with vimPlugins; [
telescope-nvim
nvim-cmp
];
dependencies = [ vimPlugins.plenary-nvim ];
postInstall = ''
mkdir -p $out/target/debug
ln -s ${sg-nvim-rust}/{bin,lib}/* $out/target/debug
'';
nvimSkipModules = [
# Dependent on active fuzzy search state
"sg.cody.fuzzy"
];
passthru = {
updateScript = nix-update-script {
extraArgs = [ "--version=branch" ];
attrPath = "vimPlugins.sg-nvim.sg-nvim-rust";
};
# needed for the update script
inherit sg-nvim-rust;
};
meta = {
description = "Neovim plugin designed to emulate the behaviour of the Cursor AI IDE";
homepage = "https://github.com/sourcegraph/sg.nvim/";
license = lib.licenses.asl20;
};
}