RFC for ArgumentCompleter base class
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 35/100
- Tipo de issue
- Funcionalidade
- Clareza
- Razoavelmente clara
- Status de atividade
- Estagnada
- Stack de tecnologia
- powershell
- Domínio
- cli
Direção de pesquisa
Comece lendo a issue referenciada #269 e o exemplo de ArgumentCompleter proposto neste RFC. Analise os comportamentos comuns solicitados — colocar argumentos entre aspas, corresponder a WordToComplete e ordenar os resultados — e defina a API da classe base e a semântica de conclusão. O trabalho estará concluído quando o RFC tiver um design definido para ArgumentCompleter personalizados e um comportamento de conclusão consistente.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
#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);
}
}
}
- Linguagem predominante
- PowerShell
- Estrelas
- 468
- Forks
- 143
- Merge médio
- 9min
- PRs com merge (30d)
- 1
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de PowerShell/PowerShell-RFC
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
PowerShell/PowerShell-RFC#404 · 1 comentário ·
-
PowerShell/PowerShell-RFC#407 · 1 comentário · 1 responsável ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
PowerShell/PowerShell-RFC#396 ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 20/100
PowerShell/PowerShell-RFC#334 · 2 reações ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
PowerShell/PowerShell-RFC#327 · 28 comentários · 31 reações ·
Todas as issues de PowerShell/PowerShell-RFC
Issues semelhantes
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
stephrobert/dsoxlab#238 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
sublimehq/package_control#1779 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
nwg-piotr/nwg-displays#145 ·
-
Bob Shell support Abertaenhancement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100