Tools/ripgrep.ps1

# Companion for ripgrep — defines Select-RipgrepResult (frg)
# Dot-sourced by Register-DFTool when ripgrep is registered.

function global:Select-RipgrepResult {
    [CmdletBinding()]
    param(
        [string]$Pattern = '',
        [string]$Path    = '.'
    )

    if (-not $Pattern) { $Pattern = Read-Host 'Search pattern' }

    Invoke-DFPicker `
        -List          { rg --line-number --no-heading --color=always $Pattern $Path 2>$null } `
        -Preview       'bat --color=always --highlight-line {2} {1}' `
        -PreviewWindow 'right:60%' `
        -Delimiter     ':' `
        -Ansi `
        -Header        'Select result [Enter to open in editor]' `
        -Parse         { ($_ -split ':')[0..1] -join ':' } `
        -Action        {
            param($v)
            $parts = $v -split ':'
            $file  = $parts[0]
            & $Env:EDITOR $file
        }
}
Set-Alias -Name frg -Value Select-RipgrepResult -Scope Global -Force