PowerShell / PowerShell/PowerShellEditorServices

Debugger relies on case-insensitive paths

Aperta
#2,047 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Area-Debugging Issue-Bug
Lingua principale
C#
Stelle
767
Fork
266
Merge medio
3g 16h
PR unite (30g)
1

Descrizione

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:/.

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia da test/PowerShellEditorServices.Test/Debugging/DebugServiceTests.cs intorno alle righe 140-141 e riproduci il comportamento relativo alla distinzione tra maiuscole e minuscole. Traccia come vengono gestite le richieste LSP raw e i percorsi con lettere di unità, inclusa la libreria client LSP a cui si fa riferimento. Il lavoro è completato quando viene identificata l’origine delle lettere di unità convertite in minuscolo e il comportamento del debugger è coperto da un test di regressione o da una correzione appropriata.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
csharp, powershell, vscode
Ambito
devtools, tooling
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.