Automatyczne uzupełnianie za pomocą klawisza Tab (winget)

Narzędzie wiersza polecenia winget oferuje polecenie complete, aby zapewnić kontekstowe uzupełnianie tabulatorów. Obsługuje uzupełnianie nazw poleceń, nazw argumentów i wartości argumentów zależnych od bieżącego stanu wiersza polecenia.

Włącz uzupełnianie kart.

Aby włączyć uzupełnianie karty przy użyciu zestawu narzędzi winget, należy dodać następujący skrypt do $PROFILE w programie PowerShell.

  1. Otwórz program PowerShell i wprowadź następujące polecenie, aby otworzyć $PROFILE w Notatniku: notepad.exe $PROFILE

  2. Skopiuj i wklej następujący skrypt do pliku, który został otwarty w Notatniku $PROFILE :

    Register-ArgumentCompleter -Native -CommandName winget -ScriptBlock {
        param($wordToComplete, $commandAst, $cursorPosition)
            [Console]::InputEncoding = [Console]::OutputEncoding = $OutputEncoding = [System.Text.Utf8Encoding]::new()
            $Local:word = $wordToComplete.Replace('"', '""')
            $Local:ast = $commandAst.ToString().Replace('"', '""')
            winget complete --word="$Local:word" --commandline "$Local:ast" --position $cursorPosition | ForEach-Object {
                [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
            }
    }
    
  3. Zapisz $PROFILE przy użyciu skryptu. Następnie zamknij i otwórz ponownie program PowerShell. Po ponownym otwarciu programu PowerShell zostanie włączone uzupełnianie tabulatorem dla winget.

Przykłady uzupełniania przez tabulację

Powtarzające się naciśnięcia klawisza Tab () będą powodować przeglądanie możliwych wartości.

Dane wejściowe Wynik Powód
winget ⇥ winget install install jest pierwszym poleceniem bezpośrednio pod katalogiem głównym
winget sh⇥ winget show show jest pierwszym poleceniem rozpoczynającym się od sh
winget source l⇥ winget source list list jest pierwszym podrzędnym poleceniem źródła rozpoczynającym się od l
winget -⇥ winget --version --version jest pierwszym argumentem zdefiniowanym dla katalogu głównego
winget install power⇥ winget install "Power Toys" "Power Toys" to pierwszy pakiet, którego identyfikator, nazwa lub moniker zaczyna się od power
winget install "Power Toys" --version ⇥ winget install "Power Toys" --version 0.19.2 0.19.2 to najwyższa wersja usługi Power Toys w momencie pisania

Dokumentacja poleceń

Pełne polecenie przyjmuje 3 wymagane argumenty:

Argumentacja Opis
--word Bieżące słowo, które jest w trakcie ukończenia; token, w którym znajduje się kursor. Może być pusty, aby wskazać brak bieżącej wartości na kursorze, ale jeśli zostanie podana, musi ona być wyświetlana jako podciąg w wierszu polecenia.
--commandline Cały bieżący wiersz polecenia, w tym winget. Zapoznaj się z powyższymi przykładami; wszystko oprócz znaku tabulacji () powinno zostać przekazane temu argumentowi.
--position Bieżąca pozycja kursora w wierszu polecenia. Może być większa niż długość ciągu wiersza polecenia, aby wskazywać na koniec.

Gdy zostanie podana wartość słowa, dopełnianie działa w trybie zamiany. Zaproponuje ukończenia, które będą prawidłowo pasować w tym miejscu i również zaczynać się od podanej wartości słowa.

Jeśli wartość słowa nie jest podana (pusta wartość jest podana dla wyrazu, np. --word=), uzupełnianie działa w trybie wstawiania. Sugeruje on ukończenia, które pasują do nowej wartości w lokalizacji kursora.

Na podstawie argumentów sugerowane uzupełnianie może być jednym z następujących elementów:

  1. Subpolecenie :: Kursor znajduje się tuż po poleceniu i dostępne są podpolecenia.
  2. Specyfikator argumentu :: Kursor nie jest umieszczony po specyfikatorze argumentu, który oczekuje wartości, i istnieją dostępne argumenty.
  3. Wartość argumentu: Kursor jest umieszczony po specyfikatorze argumentu, który oczekuje wartości, lub oczekiwany jest argument pozycyjny.

Po dokonaniu oceny wszystkich tych przypadków wynikiem są potencjalne zakończenia, po jednym na każdy wiersz. Jeśli ciąg ukończenia zawiera spację, jest ujęty w cudzysłów.