PowerShell / PowerShell/PowerShellEditorServices

Debugger relies on case-insensitive paths

Abierto
#2,047 3 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Area-Debugging Issue-Bug
Lenguaje dominante
C#
Estrellas
767
Forks
266
Merge medio
3 d 16 h
PR fusionados (30 d)
1

Descripción

This odd behavior was first noticed in a test:

https://github.com/PowerShell/PowerShellEditorServices/blob/bfe334df7e4bdd4b92c5c0319655e40444e185ff/test/PowerShellEditorServices.Test/Debugging/DebugServiceTests.cs#L140-L141

It turns out that the URIs and paths we're receiving "over the wire" (in the raw LSP requests themselves) are mostly cased correctly, with the exception of driver letters being lower case. Because of this, when https://github.com/PowerShell/PowerShell/issues/20057 was temporarily fixed by making PowerShell's debugger's _pendingBreakpoints collection case-sensitive, it broke the extension's debugger https://github.com/PowerShell/vscode-powershell/issues/4668.

We need to figure out why those drive letters are coming over lower-case, as the rest of the Windows ecosystem doesn't expect drive letters to be lowercase. Worst case scenario is that we fix the casing as we handle the request, but I'd like to see where the issue originates (thinking perhaps in the LSP client library...) and try to fix it there. Though technically c:/ is valid, and it's mostly PowerShell that's caring about it not being C:/.

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con test/PowerShellEditorServices.Test/Debugging/DebugServiceTests.cs alrededor de las líneas 140-141 y reproduce el comportamiento de las mayúsculas y minúsculas. Rastrea cómo se gestionan las solicitudes LSP sin procesar y las rutas con letras de unidad, incluida la biblioteca cliente LSP referenciada. Se considera terminado cuando se haya identificado el origen de las letras de unidad en minúsculas y el comportamiento del depurador esté cubierto por una prueba de regresión o una corrección adecuada.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
csharp, powershell, vscode
Área
devtools, tooling
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.