public/Uninstall-VSCodeExtension.ps1

function Uninstall-VSCodeExtension {
    <#
.SYNOPSIS
    Uninstalls a VS Code extension using the Code CLI.

.DESCRIPTION
    Calls the VS Code CLI with --uninstall-extension to remove the specified
    extension. The extension is identified by its qualified name in
    publisher.extensionname format (e.g. 'eamodio.gitlens').

.PARAMETER Extension
    One or more qualified extension names to uninstall, in publisher.extensionname format
    (e.g. 'eamodio.gitlens'). Accepts multiple values and pipeline input by property name,
    mapping the Name property returned by Get-VSCodeExtension.

.PARAMETER CodeExecutable
    Path to the VS Code CLI executable (e.g. code.exe or code-insiders.exe).

.EXAMPLE
    Uninstall-VSCodeExtension -Extension 'eamodio.gitlens'

    Uninstalls the GitLens extension from VS Code.

.EXAMPLE
    Get-VSCodeExtension -ExtensionId 'eamodio.gitlens' | Uninstall-VSCodeExtension

    Retrieves the installed GitLens extension object and pipes it directly to
    Uninstall-VSCodeExtension to remove it.

.EXAMPLE
    Get-VSCodeExtension | Where-Object Name -like 'ms-python.*' | Uninstall-VSCodeExtension

    Uninstalls all installed extensions whose publisher is ms-python.
#>

    [CmdletBinding(HelpUri = 'https://steviecoaster.github.io/vscodemarketplace/VSCodeMarketplace/Uninstall-VSCodeExtension/')]
    Param(
        [Parameter(Mandatory, ValueFromPipelineByPropertyName)]
        [Alias('Name')]
        [String[]]
        $Extension,

        [Parameter()]
        [String]
        $CodeExecutable = ((Get-Command code).Source)
    )
    
    process {
        foreach ($ext in $Extension) {
            $Statements = @('--uninstall-extension', $ext)
            & $CodeExecutable @Statements
        }
    }
}