diff --git a/pkgs/development/tools/language-servers/pylyzer/default.nix b/pkgs/development/tools/language-servers/pylyzer/default.nix new file mode 100644 index 000000000000..3e5dabbf9bff --- /dev/null +++ b/pkgs/development/tools/language-servers/pylyzer/default.nix @@ -0,0 +1,62 @@ +{ lib +, stdenv +, rustPlatform +, fetchFromGitHub +, git +, python3 +, makeWrapper +, darwin +}: + +rustPlatform.buildRustPackage rec { + pname = "pylyzer"; + version = "0.0.26"; + + src = fetchFromGitHub { + owner = "mtshiba"; + repo = "pylyzer"; + rev = "v${version}"; + hash = "sha256-ZEmTSSYHQWk0IVJXlrtGb+j2hbb9ZtDLCtajOR7BMoU="; + }; + + cargoHash = "sha256-/QMzPvLcAjpai2YX58+YM/+KhYZRuK59hPYAEHeTTa4="; + + nativeBuildInputs = [ + git + python3 + makeWrapper + ]; + + buildInputs = [ + python3 + ] ++ lib.optionals stdenv.isDarwin [ + darwin.apple_sdk.frameworks.Security + ]; + + preBuild = '' + export HOME=$TMPDIR + ''; + + postInstall = '' + mkdir -p $out/lib + cp -r $HOME/.erg/ $out/lib/erg + ''; + + checkFlags = [ + # this test causes stack overflow + # > thread 'exec_import' has overflowed its stack + "--skip=exec_import" + ]; + + postFixup = '' + wrapProgram $out/bin/pylyzer --set ERG_PATH $out/lib/erg + ''; + + meta = with lib; { + description = "A fast static code analyzer & language server for Python"; + homepage = "https://github.com/mtshiba/pylyzer"; + changelog = "https://github.com/mtshiba/pylyzer/releases/tag/v${version}"; + license = licenses.mit; + maintainers = with maintainers; [ natsukium ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0bfebbf56bd3..b908cfc67fd2 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -17419,6 +17419,8 @@ with pkgs; nil = callPackage ../development/tools/language-servers/nil { }; + pylyzer = callPackage ../development/tools/language-servers/pylyzer { }; + rnix-lsp = callPackage ../development/tools/language-servers/rnix-lsp { }; svls = callPackage ../development/tools/language-servers/svls { };