RFC for ArgumentCompleter base class
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- powershell
- Área
- cli
Línea de trabajo
Empieza leyendo el issue referenciado #269 y el ejemplo propuesto de ArgumentCompleter en este RFC. Revisa los comportamientos comunes solicitados —entrecomillado de argumentos, coincidencia con WordToComplete y ordenación de resultados— y define la API de la clase base y la semántica de completado. Se considera terminado cuando el RFC tenga un diseño establecido para los ArgumentCompleter personalizados y un comportamiento de completado coherente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
#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);
}
}
}
- Lenguaje dominante
- PowerShell
- Estrellas
- 468
- Forks
- 143
- Merge medio
- 9 min
- PR fusionados (30 d)
- 1
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de PowerShell/PowerShell-RFC
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
PowerShell/PowerShell-RFC#404 · 1 comentario ·
-
PowerShell/PowerShell-RFC#407 · 1 comentario · 1 asignado ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
PowerShell/PowerShell-RFC#396 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
PowerShell/PowerShell-RFC#334 · 2 reacciones ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
PowerShell/PowerShell-RFC#327 · 28 comentarios · 31 reacciones ·
Todos los issues de PowerShell/PowerShell-RFC
Issues similares
-
triage
Dificultad 1/5 1-3 horas Aptitud para principiantes 88/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
app bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
-
Broadcast Documentation Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
kovidgoyal/kitty#10516 ·