Со временем мной был накоплен хороший такой багаж расширений в 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.