RFC for ArgumentCompleter base class
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- powershell
- Ambito
- cli
Direzione di ricerca
Inizia leggendo l’issue di riferimento #269 e l’esempio di ArgumentCompleter proposto in questo RFC. Esamina i comportamenti comuni richiesti — citazione degli argomenti, corrispondenza con WordToComplete e ordinamento dei risultati — e definisci l’API della classe base e la semantica del completamento. Il lavoro è completo quando l’RFC contiene un design definito per gli ArgumentCompleter personalizzati e un comportamento di completamento coerente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
#269
Provide a base class, ArgumentCompleter, to simplify writing custom argument completers
Some common tasks need to be done almost every time a completer is written.
Things like quoting arguments if they contain spaces, matching against WordToComplete, and ensuring that the results are sorted is another such task.
Motivation
As a Developer,
I can use the base class when writing custom argument completers,
so that results are achieved faster, with high quality, and
so that users get a consistent completion experience.
User Experience
using namespace System.Management.Automation;
public class GetCommitCompleter : ArgumentCompleter
{
// override simplified completer
protected override CompletionResultSortKind AddCompletionsFor(string commandName, string parameterName, IDictionary fakeBoundParameters)
{
switch (parameterName)
{
case nameof(GitRebaseCommand.CommitHash):
CompleteGitCommitHash();
break;
}
return CompletionResultSortKind.Sorted;
}
private void CompleteGitCommitHash()
{
var user = GetFakeBoundParameter<string>("User");
foreach(var commit in GitExe.Log())
{
if (user is { } u && commit.User != u){
continue;
}
// use a function to complete if the text or tooltip matches WordToComplete
CompleteMatching(text: commit.Hash, tooltip: $"{commit.User}\r\n{commit.Description}}": CompletionMatch.AnyContainsWithWordToComplete);
}
}
}
- Lingua principale
- PowerShell
- Stelle
- 468
- Fork
- 143
- Merge medio
- 9m
- PR unite (30g)
- 1
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di PowerShell/PowerShell-RFC
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
PowerShell/PowerShell-RFC#404 · 1 commento ·
-
PowerShell/PowerShell-RFC#407 · 1 commento · 1 assegnatario ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
PowerShell/PowerShell-RFC#396 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
PowerShell/PowerShell-RFC#334 · 2 reazioni ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
PowerShell/PowerShell-RFC#327 · 28 commenti · 31 reazioni ·
Tutte le issue di PowerShell/PowerShell-RFC
Issue simili
-
triage
Difficoltà 1/5 1-3 ore Idoneità per principianti 88/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
app bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
-
Broadcast Documentation Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
kovidgoyal/kitty#10516 ·