`dotnet-suggest list` truncates dotted global tool names
Mantenedores costumam responder em até 3 dias
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 76/100
Direção de pesquisa
Comece por FileEnumerator.EnumerateFilesWithoutExtension em FileEnumerator.cs e SuggestionDispatcher.ShellPrefixesToMatch em SuggestionDispatcher.cs; acompanhe como cada um trata os nomes de executáveis do Linux e verifique os testes relacionados. Execute os testes relevantes e, em seguida, verifique se dotnet-suggest list preserva os nomes completos das ferramentas com pontos para que o shim do PowerShell possa registrar completadores para elas.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
The tool names below are anonymized. They retain the same number of dotted segments as the original names.
Environment
- OS: Linux
dotnet-suggest: 3.0.0- Shell: PowerShell
Steps to reproduce
- Install a .NET global tool with a dotted command name, for example
Example.Tools.StatusMonitor.Console. - Verify that
dotnet tool list -gshows the full name in the Commands column. - Run
dotnet-suggest list.
Expected behavior
The list contains Example.Tools.StatusMonitor.Console, so the PowerShell shim can register a completer for the full command name.
Actual behavior
The list shows Example.Tools. A second tool, SampleUi.Automation.TestClient, appears as SampleUi.
Tab completion for the full name fails with the standard PowerShell shim. Passing the full executable path directly returns the expected options:
$name = 'Example.Tools.StatusMonitor.Console'
$exe = (Get-Command $name -CommandType Application).Source
$line = "$name --"
dotnet-suggest get -e $exe --position $line.Length -- $line
Explicitly registering the full name with Register-ArgumentCompleter -Native restores tab completion.
Likely cause
In v3.0.0, global-tool discovery calls Path.GetFileNameWithoutExtension in FileEnumerator.EnumerateFilesWithoutExtension, removing .Console from the Linux executable name. SuggestionDispatcher.ShellPrefixesToMatch calls the same method again when producing list output, removing .StatusMonitor. The PowerShell shim uses the resulting name to register the completer.
- FileEnumerator.cs in v3.0.0
- SuggestionDispatcher.cs in v3.0.0
- Related app-side registration issue #2316
Background
We use the same name for a C# project, its assembly, and its installed command. This makes it easier to trace a command in a deployment script or log back to the project that builds it. Our project names follow the dotted naming convention we use across our C# codebase, so preserving the dots in the command name is important to us.
- Linguagem predominante
- C#
- Estrelas
- 3.7k
- Forks
- 439
- Merge médio
- 4d 8h
- PRs com merge (30d)
- 9
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o 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 dotnet/command-line-api
-
German localization is incompleteTalvez já em andamento @b-v-d-e-v assumiu há 43 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
dotnet/command-line-api#2852 ·
Mantenedores costumam responder em até 3 dias
-
Incomplete French (fr) translation: RequiredOptionWasNotProvided not translatedTalvez já em andamento @JPBlanc assumiu há 141 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
dotnet/command-line-api#2822 · 1 comentário ·
Mantenedores costumam responder em até 3 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
dotnet/command-line-api#2792 · 2 comentários · 17 reações ·
Mantenedores costumam responder em até 3 dias
-
`Argument.Arity` modify internal state on first get access.Talvez já em andamento @zjdangge assumiu há 27 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
dotnet/command-line-api#2704 ·
Mantenedores costumam responder em até 3 dias
-
GetCompletions should check exit code of invoked applicationTalvez já em andamento @baradgur assumiu há 1312 dias. AbertaArea-Completions bug help wanted
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
dotnet/command-line-api#2137 · 1 comentário · 3 reações ·
Mantenedores costumam responder em até 3 dias
Todas as issues de dotnet/command-line-api
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
-
area:repo elsa 3 prio low triaged type:bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
elsa-workflows/elsa-core#9258 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 90/100
iokode/OpinionatedFramework#140 ·
-
accessibility effort: small enhancement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
pedersebastian/CustomBossChallenge#185 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100