PowerShell · 22.08.2025

Расширения в кармане

Со временем мной был накоплен хороший такой багаж расширений в VSCodium, который совсем не хотелось бы терять при миграции или во время каких-либо сбоев.

Немного покопавшись в документации редактора кода, я написал вот такой скрипт:

## Заголовок консоли ##
[System.Console]::Title = "Перенос расширений VSCodium"

## Блок переменных ##
$extfile = "vscodium_extensions.backup"

## Получение списка расширений ##
function ExtBackup 
{
    try 
    {
        codium --list-extensions | Out-File $extfile
        Write-Host -ForegroundColor Green "Список расширений успешно сохранён в $extfile."
        return $true
    }
    catch 
    {
        Write-Host -ForegroundColor Red "Не удалось сохранить список расширений."
        return $false
    }
}

## Восстановление расширений ##
function ExtRecovery 
{
    try 
    {
        $exts = Get-Content -Path $extfile | Where-Object {$_ -ne ""}
        if ($exts.Count -eq 0) 
        {
            Write-Host -ForegroundColor Yellow "Файл $extfile пуст."
            return $false
        }
        
        foreach ($ext in $exts) 
        { 
            codium --install-extension $ext --force
            Write-Host -ForegroundColor Green "Расширение $ext восстановлено."
        }
        return $true
    }
    catch 
    {
        Write-Host -ForegroundColor Red "Во время восстановления расширений произошла ошибка."
        return $false
    }
}

## Копирование или восстановление расширений VSCodium ##
$exists = Test-Path -Path $extfile -PathType Leaf
if ($exists) 
{ 
    if (ExtRecovery) { Write-Host -ForegroundColor Green "Восстановление завершено!" } 
    else { Write-Host -ForegroundColor Red "Во время извлечения списка расширений что-то пошло не так..." }
}
else 
{ 
    if (ExtBackup) { Write-Host -ForegroundColor Green "Файл $extfile успешно создан." }
}

Write-Host
Read-Host "Работа скрипта завершена..."

Логика скрипта максимально проста — если рядом со скриптом нет файла vscodium_extensions.backup (переменная $extfile), то скрипт обращается к команде codium с атрибутом list-extensions и сохраняет вывод перечня расширений в текстовый файл.

А если файл со списком расширений найден — codium запускается с атрибутом install-extension и ключом принудительной установки force.

Таким образом с помощью данного скрипта можно зарезервировать и восстановить все установленные расширения в текущий экземпляр VSCodium.

Я не тестировал этот скрипт на Linux, но, думаю, в крайнем случае, его можно с легкостью перевести на Python или Bash. Главное, чтобы операционная система знала о команде codium.