diff --git a/pkgs/modules/default.nix b/pkgs/modules/default.nix index c10b3d33..cd53da1b 100644 --- a/pkgs/modules/default.nix +++ b/pkgs/modules/default.nix @@ -49,6 +49,8 @@ let (import ./python-with-prybar) (import ./pyright-extended) + (import ./pyright) + (import ./ruff) (import ./nodejs { nodejs = pkgs.nodejs-18_x; diff --git a/pkgs/modules/pyright/default.nix b/pkgs/modules/pyright/default.nix new file mode 100644 index 00000000..bfb538f3 --- /dev/null +++ b/pkgs/modules/pyright/default.nix @@ -0,0 +1,19 @@ +{ pkgs, lib, ... }: +{ + id = "pyright"; + name = "pyright LSP"; + displayVersion = pkgs.pyright.version; + description = '' + Pyright is a full-featured, standards-based static type checker for Python. It is designed for high performance and can be used with large Python source bases. + ''; + replit.dev.languageServers.pyright = { + name = "pyright"; + displayVersion = pkgs.pyright.version; + language = "python3"; + start = "${pkgs.pyright}/bin/pyright-langserver --stdio"; + }; + + replit.env = { + PATH = "${pkgs.pyright}/bin"; + }; +} diff --git a/pkgs/modules/python-base/default.nix b/pkgs/modules/python-base/default.nix index e6922895..f4279e6d 100644 --- a/pkgs/modules/python-base/default.nix +++ b/pkgs/modules/python-base/default.nix @@ -16,6 +16,10 @@ let sitecustomize = pkgs.callPackage ../python/sitecustomize.nix { }; + binary-wrapped-python = pkgs.callPackage ../../python-wrapped { + inherit pkgs python python-ld-library-path; + }; + in { id = "python-base-${pythonVersion}"; @@ -28,6 +32,7 @@ in ''; replit.packages = [ + binary-wrapped-python pypkgs.pip pkgs.poetry pkgs.uv diff --git a/pkgs/modules/ruff/default.nix b/pkgs/modules/ruff/default.nix new file mode 100644 index 00000000..59c7122a --- /dev/null +++ b/pkgs/modules/ruff/default.nix @@ -0,0 +1,21 @@ +{ pkgs, lib, ... }: +{ + id = "ruff"; + name = "ruff LSP"; + displayVersion = pkgs.ruff.version; + description = '' + A Language Server Protocol implementation for Ruff, an extremely fast Python linter and code formatter, written in Rust. + + Ruff can be used to replace Flake8 (plus dozens of plugins), Black, isort, pyupgrade, and more, all while executing tens or hundreds of times faster than any individual tool. + ''; + replit.dev.languageServers.ruff = { + name = "ruff"; + displayVersion = pkgs.ruff.version; + language = "python3"; + start = "${pkgs.ruff}/bin/ruff server"; + }; + + replit.env = { + PATH = "${pkgs.ruff}/bin"; + }; +}