RFC for ArgumentCompleter base class
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 35/100
- Issue-Typ
- Feature
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- powershell
- Bereich
- cli
Rechercherichtung
Beginne mit dem Lesen des referenzierten Issues #269 und des vorgeschlagenen ArgumentCompleter-Beispiels in diesem RFC. Arbeite die angeforderten allgemeinen Verhaltensweisen durch – das Zitieren von Argumenten, das Abgleichen von WordToComplete und das Sortieren von Ergebnissen – und definiere die API der Basisklasse sowie die Abschlusssemantik. Als erledigt gilt die Aufgabe, wenn der RFC ein festgelegtes Design für benutzerdefinierte ArgumentCompleter und ein konsistentes Abschlussverhalten enthält.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
#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);
}
}
}
- Vorherrschende Sprache
- PowerShell
- Sterne
- 468
- Forks
- 143
- Ø Merge
- 9 Min.
- Gemergte PRs (30 T.)
- 1
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus PowerShell/PowerShell-RFC
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
PowerShell/PowerShell-RFC#404 · 1 Kommentar ·
-
PowerShell/PowerShell-RFC#407 · 1 Kommentar · 1 zugewiesene Person ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
PowerShell/PowerShell-RFC#396 ·
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 20/100
PowerShell/PowerShell-RFC#334 · 2 Reaktionen ·
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
PowerShell/PowerShell-RFC#327 · 28 Kommentare · 31 Reaktionen ·
Alle Issues in PowerShell/PowerShell-RFC
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
vercel-labs/just-bash#464 ·
-
looksLikeSlug() is ASCII-only, so non-Latin entity slugs (e.g. Korean) skip exact match and collapse Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
bug
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
vercel-labs/skills#2291 ·
-
setup tools wizard offers no GitHub auth path, and setup summary doesn't recognize `gh` CLI auth Offenarea/auth comp/cli P3 tool/skills type/bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
NousResearch/hermes-agent#121131 ·