68 lines
2.0 KiB
Nix
68 lines
2.0 KiB
Nix
{
|
|
lib,
|
|
vscode-utils,
|
|
icu,
|
|
python3,
|
|
# When `true`, the python default setting will be fixed to specified.
|
|
# Use version from `PATH` for default setting otherwise.
|
|
# Defaults to `false` as we expect it to be project specific most of the time.
|
|
pythonUseFixed ? false,
|
|
# For updateScript
|
|
vscode-extension-update-script,
|
|
}:
|
|
|
|
vscode-utils.buildVscodeMarketplaceExtension rec {
|
|
mktplcRef = {
|
|
name = "python";
|
|
publisher = "ms-python";
|
|
version = "2025.8.0";
|
|
hash = "sha256-v+MjJmiFMStbVRmh1I7hJp1Fq262QwRyRt9m2f3yF0o=";
|
|
};
|
|
|
|
buildInputs = [ icu ];
|
|
|
|
nativeBuildInputs = [ python3.pkgs.wrapPython ];
|
|
|
|
propagatedBuildInputs = with python3.pkgs; [
|
|
debugpy
|
|
jedi-language-server
|
|
];
|
|
|
|
postPatch =
|
|
''
|
|
# remove bundled python deps and use libs from nixpkgs
|
|
rm -r python_files/lib
|
|
mkdir -p python_files/lib/python/
|
|
ln -s ${python3.pkgs.debugpy}/lib/*/site-packages/debugpy python_files/lib/python/
|
|
buildPythonPath "$propagatedBuildInputs"
|
|
for i in python_files/*.py; do
|
|
patchPythonScript "$i"
|
|
done
|
|
''
|
|
+ lib.optionalString pythonUseFixed ''
|
|
# Patch `packages.json` so that nix's *python* is used as default value for `python.pythonPath`.
|
|
substituteInPlace "./package.json" \
|
|
--replace-fail "\"default\":\"python\"" "\"default\":\"${python3.interpreter}\""
|
|
'';
|
|
|
|
passthru.updateScript = vscode-extension-update-script { };
|
|
|
|
meta = {
|
|
description = "Visual Studio Code extension with rich support for the Python language";
|
|
downloadPage = "https://marketplace.visualstudio.com/items?itemName=ms-python.python";
|
|
homepage = "https://github.com/Microsoft/vscode-python";
|
|
changelog = "https://github.com/microsoft/vscode-python/releases";
|
|
license = lib.licenses.mit;
|
|
platforms = [
|
|
"aarch64-linux"
|
|
"x86_64-linux"
|
|
"aarch64-darwin"
|
|
"x86_64-darwin"
|
|
];
|
|
maintainers = [
|
|
lib.maintainers.jraygauthier
|
|
lib.maintainers.jfchevrette
|
|
];
|
|
};
|
|
}
|