mirror of
https://github.com/rwinkhart/MUTN.git
synced 2026-09-03 07:37:23 -04:00
Save and restore space indices for new PowerShell sessions (fixes up arrow commands)
This commit is contained in:
@@ -3,6 +3,21 @@ $global:cliMUTN_entriesToSpaceIndicesMap = @{}
|
|||||||
if (!$IsWindows) {
|
if (!$IsWindows) {
|
||||||
# since the executable has the same name as the completion function (on non-Windows platforms), its path must be stored before the function is registered
|
# since the executable has the same name as the completion function (on non-Windows platforms), its path must be stored before the function is registered
|
||||||
$MUTNExecutablePath = (Get-Command mutn).Path
|
$MUTNExecutablePath = (Get-Command mutn).Path
|
||||||
|
$spaceIndicesFilePath = '~/.config/libmutton/psCompletionsCache.json'
|
||||||
|
} else {
|
||||||
|
$spaceIndicesFilePath = '~\AppData\Local\libmutton\psCompletionsCache.json'
|
||||||
|
}
|
||||||
|
|
||||||
|
function cliMUTN-loadSpaceIndices {
|
||||||
|
if (Test-Path $global:spaceIndicesFilePath) {
|
||||||
|
$jsonContent = Get-Content -Path $global:spaceIndicesFilePath -Raw
|
||||||
|
$global:cliMUTN_entriesToSpaceIndicesMap = ConvertFrom-Json -InputObject $jsonContent -AsHashtable
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function cliMUTN-saveSpaceIndices {
|
||||||
|
$jsonContent = $global:cliMUTN_entriesToSpaceIndicesMap | ConvertTo-Json -Compress
|
||||||
|
$jsonContent | Set-Content -Path $global:spaceIndicesFilePath
|
||||||
}
|
}
|
||||||
|
|
||||||
function cliMUTN-getSpaceIndices {
|
function cliMUTN-getSpaceIndices {
|
||||||
@@ -59,8 +74,9 @@ function cliMUTN-entryCompleter {
|
|||||||
$spaceIndices = cliMUTN-getSpaceIndices -inputString $_
|
$spaceIndices = cliMUTN-getSpaceIndices -inputString $_
|
||||||
$replacedEntry = $_ -replace ' ', '_'
|
$replacedEntry = $_ -replace ' ', '_'
|
||||||
$replacedEntry
|
$replacedEntry
|
||||||
$cliMUTN_entriesToSpaceIndicesMap[$replacedEntry] = $spaceIndices
|
$global:cliMUTN_entriesToSpaceIndicesMap[$replacedEntry] = $spaceIndices
|
||||||
}
|
}
|
||||||
|
cliMUTN-saveSpaceIndices
|
||||||
}
|
}
|
||||||
$trimmedPaths | Where-Object { $_ -like "$wordToComplete*" }
|
$trimmedPaths | Where-Object { $_ -like "$wordToComplete*" }
|
||||||
}
|
}
|
||||||
@@ -106,6 +122,8 @@ function mutn {
|
|||||||
if ($IsWindows) {
|
if ($IsWindows) {
|
||||||
Invoke-Expression -Command ('mutn.exe ' + $escapedEntry, $argument, $option).Trim()
|
Invoke-Expression -Command ('mutn.exe ' + $escapedEntry, $argument, $option).Trim()
|
||||||
} else {
|
} else {
|
||||||
Invoke-Expression -Command ($MUTNExecutablePath + ' ' + $escapedEntry, $argument, $option).Trim()
|
Invoke-Expression -Command ($global:MUTNExecutablePath + ' ' + $escapedEntry, $argument, $option).Trim()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cliMUTN-loadSpaceIndices
|
||||||
|
|||||||
Reference in New Issue
Block a user