File: powershell.j2

package info (click to toggle)
click-completion 0.5.2-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 140 kB
  • sloc: python: 442; makefile: 4
file content (26 lines) | stat: -rw-r--r-- 1,051 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
if ((Test-Path Function:\TabExpansion) -and -not (Test-Path Function:\{{prog_name}}TabExpansionBackup)) {
    Rename-Item Function:\TabExpansion {{prog_name}}TabExpansionBackup
}

function TabExpansion($line, $lastWord) {
    $lastBlock = [regex]::Split($line, '[|;]')[-1].TrimStart()
    $aliases = @("{{prog_name}}") + @(Get-Alias | where { $_.Definition -eq "{{prog_name}}" } | select -Exp Name)
    $aliasPattern = "($($aliases -join '|'))"
    if($lastBlock -match "^$aliasPattern ") {
        $Env:{{complete_var}} = "complete-powershell"
        $Env:COMMANDLINE = "$lastBlock"
{%- for k, v in extra_env.items() %}
        $Env:{{k}} = "{{v}}"
{%- endfor %}
        ({{prog_name}}) | ? {$_.trim() -ne "" }
        Remove-Item Env:{{complete_var}}
        Remove-Item Env:COMMANDLINE
{%- for k in extra_env.keys() %}
        Remove-Item $Env:{{k}}
{%- endfor %}
    }
    elseif (Test-Path Function:\{{prog_name}}TabExpansionBackup) {
        # Fall back on existing tab expansion
        {{prog_name}}TabExpansionBackup $line $lastWord
    }
}