diff --git a/users/richie/home/vscode/default.nix b/users/richie/home/vscode/default.nix index 16aec61..443e658 100644 --- a/users/richie/home/vscode/default.nix +++ b/users/richie/home/vscode/default.nix @@ -3,7 +3,7 @@ let vscode_dir = "/home/richie/projects/nix-dotfiles/users/richie/home/vscode"; in { - # mutable symlinks to keybinds and settings + # mutable symlinks to key binds and settings xdg.configFile."Code/User/settings.json".source = config.lib.file.mkOutOfStoreSymlink "${vscode_dir}/settings.json"; xdg.configFile."Code/User/keybindings.json".source = config.lib.file.mkOutOfStoreSymlink "${vscode_dir}/keybindings.json"; @@ -12,39 +12,6 @@ in programs.vscode = { enable = true; package = pkgs.vscode; - extensions = with pkgs.vscode-extensions; [ - # vscode - ms-vscode-remote.remote-ssh - ms-vscode-remote.remote-containers - ms-azuretools.vscode-docker - ms-vsliveshare.vsliveshare - ms-vscode.hexeditor - oderwat.indent-rainbow - usernamehw.errorlens - streetsidesoftware.code-spell-checker - github.copilot - # git - eamodio.gitlens - codezombiech.gitignore - # python - charliermarsh.ruff - ms-python.python - ms-python.vscode-pylance - # rust - rust-lang.rust-analyzer - # MD - yzhang.markdown-all-in-one - # congigs - tamasfe.even-better-toml - redhat.vscode-yaml - # shell - timonwong.shellcheck - foxundermoon.shell-format - # nix - jnoortheen.nix-ide - # other - esbenp.prettier-vscode - mechatroner.rainbow-csv - ]; + mutableExtensionsDir = true; }; } diff --git a/users/richie/home/vscode/extension_installer.py b/users/richie/home/vscode/extension_installer.py new file mode 100644 index 0000000..b5ffd29 --- /dev/null +++ b/users/richie/home/vscode/extension_installer.py @@ -0,0 +1,45 @@ +from subprocess import run + + +def main(): + extensions = ( + # vscode + "ms-vscode-remote.remote-ssh", + "ms-vscode-remote.remote-containers", + "ms-azuretools.vscode-docker", + "ms-vsliveshare.vsliveshare", + "ms-vscode.hexeditor", + "oderwat.indent-rainbow", + "usernamehw.errorlens", + "streetsidesoftware.code-spell-checker", + "github.copilot", + # git + "eamodio.gitlens", + "codezombiech.gitignore", + # python + "charliermarsh.ruff", + "ms-python.python", + "ms-python.vscode-pylance", + # rust + "rust-lang.rust-analyzer", + # MD + "yzhang.markdown-all-in-one", + # configs + "tamasfe.even-better-toml", + "redhat.vscode-yaml", + # shell + "timonwong.shellcheck", + "foxundermoon.shell-format", + # nix + "jnoortheen.nix-ide", + # other + "esbenp.prettier-vscode", + "mechatroner.rainbow-csv", + ) + + for extension in extensions: + run(f"code --install-extension {extension} --force".split(), check=True) + + +if __name__ == "__main__": + main()