Create navi.plugin.psm1

Moves the file to the base folder, removed cmdlets handlers and related options. Still needs modifications.
This commit is contained in:
Alexis Opolka 2025-03-07 19:44:12 +01:00 committed by GitHub
parent cc1187e259
commit 7a2108cb20
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

30
shell/navi.plugin.psm1 Normal file
View file

@ -0,0 +1,30 @@
### Initial code from @lurebat (https://github.com/lurebat/)
### See #570 (https://github.com/denisidoro/navi/issues/570) for its original contribution
function Invoke-NaviWidget {
$ast = $tokens = $errors = $cursor = $null
[Microsoft.PowerShell.PSConsoleReadLine]::GetBufferState([ref] $ast, [ref] $tokens, [ref] $errors, [ref] $cursor)
$line = $ast.ToString().Trim()
$output = $null
if ([String]::IsNullOrEmpty($line)) {
$output = navi --print
}
else {
$best_match = (navi --print --best-match --query $line | Out-String).Trim()
if ([String]::IsNullOrEmpty($best_match)) {
$output = (navi --print --query "$line" | Out-String).Trim()
}
else {
$output = $best_match
}
}
[Microsoft.PowerShell.PSConsoleReadLine]::RevertLine()
### Handling the case when the user escapes without selecting any entry
if (-Not([String]::IsNullOrEmpty($output))) {
[Microsoft.PowerShell.PSConsoleReadLine]::Insert([String]$output)
}
}