nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 nodejs,
6 pnpm_9,
7 fetchPnpmDeps,
8 pnpmConfigHook,
9 nix-update-script,
10}:
11stdenv.mkDerivation (finalAttrs: {
12 pname = "tailwindcss-language-server";
13 version = "0.14.28";
14
15 src = fetchFromGitHub {
16 owner = "tailwindlabs";
17 repo = "tailwindcss-intellisense";
18 tag = "v${finalAttrs.version}";
19 hash = "sha256-jds6Wq4rcR4wXonZ1v9JITiEc4gflT0sTc3KUSBCMFc=";
20 };
21
22 pnpmDeps = fetchPnpmDeps {
23 inherit (finalAttrs)
24 pname
25 version
26 src
27 pnpmWorkspaces
28 ;
29 pnpm = pnpm_9;
30 fetcherVersion = 1;
31 hash = "sha256-1F4DeqJWJs3L1hDzNn7PJr9sSBv2TcN8QfV8/pwAKuU=";
32 };
33
34 nativeBuildInputs = [
35 pnpmConfigHook
36 pnpm_9
37 ];
38
39 buildInputs = [
40 nodejs
41 ];
42
43 pnpmWorkspaces = [
44 "@tailwindcss/language-server..."
45 ];
46
47 # Must build the "@tailwindcss/language-service" package. Dependency is linked via workspace by "pnpm"
48 # https://github.com/tailwindlabs/tailwindcss-intellisense/blob/v0.14.24/pnpm-lock.yaml#L71
49 buildPhase = ''
50 runHook preBuild
51
52 pnpm --filter "@tailwindcss/language-server..." build
53
54 runHook postBuild
55 '';
56
57 installPhase = ''
58 runHook preInstall
59
60 mkdir -p $out/{bin,lib/tailwindcss-language-server}
61 cp -r {packages,node_modules} $out/lib/tailwindcss-language-server
62 chmod +x $out/lib/tailwindcss-language-server/packages/tailwindcss-language-server/bin/tailwindcss-language-server
63 ln -s $out/lib/tailwindcss-language-server/packages/tailwindcss-language-server/bin/tailwindcss-language-server $out/bin/tailwindcss-language-server
64
65 runHook postInstall
66 '';
67
68 passthru.updateScript = nix-update-script { };
69
70 meta = {
71 description = "Tailwind CSS Language Server";
72 homepage = "https://github.com/tailwindlabs/tailwindcss-intellisense";
73 changelog = "https://github.com/tailwindlabs/tailwindcss-intellisense/releases/tag/v${finalAttrs.version}";
74 license = lib.licenses.mit;
75 maintainers = with lib.maintainers; [ happysalada ];
76 mainProgram = "tailwindcss-language-server";
77 platforms = nodejs.meta.platforms;
78 };
79})