diff --git a/pkgs/by-name/vt/vtsls/package.nix b/pkgs/by-name/vt/vtsls/package.nix index 7cd84da104b5..7fac88f81b36 100644 --- a/pkgs/by-name/vt/vtsls/package.nix +++ b/pkgs/by-name/vt/vtsls/package.nix @@ -5,23 +5,25 @@ nodejs-slim_22, gitMinimal, gitSetupHook, - pnpm_8, + pnpm_11, fetchPnpmDeps, pnpmConfigHook, nix-update-script, + vtsls, + runCommand, }: let - pnpm' = pnpm_8.override { nodejs-slim = nodejs-slim_22; }; + pnpm' = pnpm_11.override { nodejs-slim = nodejs-slim_22; }; in stdenv.mkDerivation (finalAttrs: { pname = "vtsls"; - version = "0.2.9"; + version = "0.3.0"; src = fetchFromGitHub { owner = "yioneko"; repo = "vtsls"; tag = "server-v${finalAttrs.version}"; - hash = "sha256-vlw84nigvQqRB9OQBxOmrR9CClU9M4dNgF/nrvGN+sk="; + hash = "sha256-RuxaT3u9OOUMbDN6A2biIeUC+Z4leELF3OhKXxmCqbM="; fetchSubmodules = true; }; @@ -36,7 +38,11 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ nodejs-slim_22 ]; - pnpmWorkspaces = [ "@vtsls/language-server" ]; + pnpmWorkspaces = [ + "@vtsls/language-server" + "@vtsls/language-service" + "@vtsls/vscode-fuzzy" + ]; pnpmDeps = fetchPnpmDeps { inherit (finalAttrs) @@ -46,8 +52,8 @@ stdenv.mkDerivation (finalAttrs: { version ; pnpm = pnpm'; - fetcherVersion = 3; - hash = "sha256-1P2ph8ZX6/KptkLP4wk0dZzuvnYCLOWorM1b9+otKsE="; + fetcherVersion = 4; + hash = "sha256-jYh79MtcfW/p6twuDM1JDwukSnn2/TJQYvHBlut0QnE="; }; # Patches to get submodule sha from file instead of 'git submodule status' @@ -90,6 +96,25 @@ stdenv.mkDerivation (finalAttrs: { passthru = { updateScript = nix-update-script { }; + + tests.smoke = + runCommand "vtsls-smoke-test" + { + } + '' + INIT_REQUEST='{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"processId":null,"rootUri":"file:///tmp","workspaceFolders":[{"uri":"file:///tmp","name":"test"}],"capabilities":{}}}' + CONTENT_LENGTH=''${#INIT_REQUEST} + + RESPONSE=$( + { + printf "Content-Length: %d\r\n\r\n%s" "$CONTENT_LENGTH" "$INIT_REQUEST" + sleep 1 + } | timeout 3 ${lib.getExe vtsls} --stdio 2>&1 | head -c 1000 + ) || true + + echo "$RESPONSE" | grep -q '"capabilities"' + touch $out + ''; }; meta = {