Как я могу установить расширение vscode?
Это вопрос для начинающих. Так что есть пакет vscode-with-extensions
, Пакет говорит:
Набор расширений vscode для установки вместе с редактором. Вот пример:
vscode-with-extensions.override {
# When the extension is already available in the default extensions set.
vscodeExtensions = with vscode-extensions; [
bbenoist.Nix
]
# Concise version from the vscode market place when not available in the default set.
++ vscode-utils.extensionsFromVscodeMarketplace [
{
name = "code-runner";
publisher = "formulahendry";
version = "0.6.33";
sha256 = "166ia73vrcl5c9hm4q1a73qdn56m0jc7flfsk5p5q41na9f10lb0";
}
];
}
В которой configuration.nix
я должен поставить это выражение? у меня уже есть
environment.systemPackages = with pkgs; [
wget
vim
vscode-with-extensions
];
в нем.
3 ответа
Вы должны использовать его как непосредственно в файле configuration.nix, как, например,
environment.systemPackages = with pkgs; [
wget
vim
(vscode-with-extensions.override {
# When the extension is already available in the default extensions set.
vscodeExtensions = with vscode-extensions; [
bbenoist.Nix
]
# Concise version from the vscode market place when not available in the default set.
++ vscode-utils.extensionsFromVscodeMarketplace [
{
name = "code-runner";
publisher = "formulahendry";
version = "0.6.33";
sha256 = "166ia73vrcl5c9hm4q1a73qdn56m0jc7flfsk5p5q41na9f10lb0";
}
];
})
];
Или в более читаемой версии:
enviornment.systemPackages = with pkgs;
let
vcsodeWithExtension = vscode-with-extensions.override {
# When the extension is already available in the default extensions set.
vscodeExtensions = with vscode-extensions; [
bbenoist.Nix
]
# Concise version from the vscode market place when not available in the default set.
++ vscode-utils.extensionsFromVscodeMarketplace [
{
name = "code-runner";
publisher = "formulahendry";
version = "0.6.33";
sha256 = "166ia73vrcl5c9hm4q1a73qdn56m0jc7flfsk5p5q41na9f10lb0";
}
];
})
in
[
wget
vim
vcsodeWithExtension
];
Таким образом, по-видимому, это может идти прямо в environment.systemPackages
, но требует скобок:
environment.systemPackages = with pkgs; [
wget
vim
(vscode-with-extensions.override {
vscodeExtensions = with vscode-extensions; [
bbenoist.Nix
];
})
];
Я только начал использовать nix... установил nixos. Я также столкнулся с этой проблемой (пытаясь установить vscode с помощью этого механизма расширений, но с немного другим набором расширений и не желая загрязнять мою базовую машину установкой vscode). Решение, которое сработало для меня, с помощью команды через консоль терминала для создания воспроизводимой среды. После запускаnix-shell
командаcode .
успешно запущен vscode:
- нужно создать файл config.nix в каталоге
~/.config/nixpkgs/
с содержимым:
{ allowUnfree = true; }
- в консоли, в каталоге с
shell.nix
файл со следующим кодом, который настраивает vscode с использованием этого механизма расширений:
{ pkgs ? import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/50c23cd4ff6c8344e0b4d438b027b3afabfe58dd.tar.gz") {} }:
let vscodeWithExtension = (pkgs.vscode-with-extensions.override {
vscodeExtensions = with pkgs.vscode-extensions; [
bbenoist.nix
ms-python.python
ms-azuretools.vscode-docker
ms-vscode-remote.remote-ssh
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
{
name = "remote-ssh-edit";
publisher = "ms-vscode-remote";
version = "0.47.2";
sha256 = "1hp6gjh4xp2m1xlm1jsdzxw9d8frkiidhph6nvl24d0h8z34w49g";
}
];
}
);
in
pkgs.mkShell {
buildInputs = [
pkgs.git
pkgs.ghc
pkgs.ghcid
vscodeWithExtension
];
shellHook = ''
echo hello ghc
'';
MY_ENVIRONMENT_VARIABLE = "world";
}