diff --git a/modules/home/zed/extra-packages.nix b/modules/home/zed/extra-packages.nix index 2461d5e..93f0219 100644 --- a/modules/home/zed/extra-packages.nix +++ b/modules/home/zed/extra-packages.nix @@ -5,5 +5,8 @@ nixd alejandra opencode + uv + python314 + ruff ]; } diff --git a/modules/home/zed/user-settings/languages.nix b/modules/home/zed/user-settings/languages.nix index cc5ea2b..295444e 100644 --- a/modules/home/zed/user-settings/languages.nix +++ b/modules/home/zed/user-settings/languages.nix @@ -4,7 +4,17 @@ _: { "nixd" "!nil" ]; - Python.language_servers = ["!basedpyright"]; + Python = { + format_on_save = "on"; + formatter.language_server.name = "ruff"; + code_actions_on_format."source.organizeImports.ruff" = true; + language_servers = [ + "ruff" + "!ty" + "!basedpyright" + ]; + tab_size = 4; + }; YAML.tab_size = 2; JavaScript = { formatter.language_server.name = "biome"; diff --git a/modules/home/zed/user-settings/lsp.nix b/modules/home/zed/user-settings/lsp.nix index 1d43b08..0702cda 100644 --- a/modules/home/zed/user-settings/lsp.nix +++ b/modules/home/zed/user-settings/lsp.nix @@ -72,5 +72,27 @@ }; }; }; + ruff = { + binary = { + path = lib.getExe pkgs.bash; + arguments = [ + "-c" + "if [ -e flake.nix ]; then nix develop --command ruff server; else ruff server; fi" + ]; + }; + initialization_options = { + check.command = "ruff check ."; + inlayHints = { + maxLength = null; + lifetimeElisionHints = { + enable = "skip_trivial"; + useParameterNames = true; + }; + closureReturnTypeHints = { + enable = "always"; + }; + }; + }; + }; }; }