1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 fetchYarnDeps,
6 yarnConfigHook,
7 yarnBuildHook,
8 nodejs,
9 npmHooks,
10}:
11
12stdenv.mkDerivation (finalAttrs: {
13 pname = "vim-language-server";
14 version = "2.3.1";
15
16 src = fetchFromGitHub {
17 owner = "iamcco";
18 repo = "vim-language-server";
19 rev = "v${finalAttrs.version}";
20 hash = "sha256-NfBKNCTvCMIJrSiTlCG+LtVoMBMdCc3rzpDb9Vp2CGM=";
21 };
22
23 offlineCache = fetchYarnDeps {
24 yarnLock = finalAttrs.src + "/yarn.lock";
25 hash = "sha256-mo8urQaWIHu33+r0Y7mL9mJ/aSe/5CihuIetTeDHEUQ=";
26 };
27
28 nativeBuildInputs = [
29 yarnConfigHook
30 yarnBuildHook
31 # Needed for executing package.json scripts
32 nodejs
33 npmHooks.npmInstallHook
34 ];
35 # https://stackoverflow.com/a/69699772/4935114
36 preBuild = ''
37 export NODE_OPTIONS=--openssl-legacy-provider
38 '';
39 # Needed ever since noBrokenSymlinks was introduced
40 postInstall = ''
41 rm $out/lib/node_modules/vim-language-server/node_modules/.bin/node-which
42 '';
43
44 meta = {
45 description = "VImScript language server, LSP for vim script";
46 homepage = "https://github.com/iamcco/vim-language-server";
47 license = lib.licenses.mit;
48 maintainers = with lib.maintainers; [ doronbehar ];
49 mainProgram = "vim-language-server";
50 };
51})