{ config, pkgs, ... }:
let
sage-lsp-src = pkgs.fetchFromGitHub {
owner = "SeanDictionary";
repo = "sage-lsp";
rev = "main";
sha256 = "sha256-HfpqTSLHvmEpBlwjTxBvxGek5dTbSrtOpHyhg+XMSXk=";
};
sage-lsp-pkg = pkgs.python3Packages.buildPythonPackage rec {
pname = "sage-lsp";
version = "1.1.0";
src = sage-lsp-src;
pyproject = true;
build-system = with pkgs.python313Packages; [
setuptools
];
pythonRelaxDeps = [
"pygls"
"platformdirs"
];
dependencies = with pkgs.python313Packages; [
pygls_2
pluggy
platformdirs
pycodestyle
autopep8
pyflakes
jedi
docstring-to-markdown
];
doCheck = false;
};
sage-lsp = pkgs.writeShellScriptBin "sage-lsp" ''
export PATH="${pkgs.sage}/bin:${sage-lsp-pkg}/bin:$PATH"
export PYTHONPATH="${sage-lsp-pkg}/${pkgs.python313.sitePackages}:$PYTHONPATH"
exec ${sage-lsp-pkg}/bin/sagelsp "$@"
'';
in
{
home.packages = with pkgs; [
sage
sagetex
sage-lsp
sage-lsp-pkg
];
programs.direnv.enable = true;
programs.direnv.nix-direnv.enable = true;
}