{ lib, config, pkgs, ... }: lib.optionalAttrs (lib.elem "nvim::lsp::python" config.machine.pkgs) { pyright = { cmd = [ "${pkgs.pyright}/bin/pyright-langserver" "--stdio" ]; settings = { pyright = { disableOrganizeImports = true; }; python = { # analysis = { # ignore = { '*' }, # }, }; }; }; ruff = { cmd = [ "${pkgs.ruff}/bin/ruff" "server" "--preview" ]; init_options = { settings = { # Modification to any of these settings has no effect. enable = true; ignoreStandardLibrary = true; organizeImports = true; fixAll = true; lineLength = 120; lint = { enable = true; run = "onType"; }; }; }; on_attach = _: # lua '' function(client, bufnr) if client.name == 'ruff' then client.server_capabilities.hoverProvider = false; end end''; }; }