ForNeVeR / ForNeVeR/TruePath

Relative-only paths

Offen
#23 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

enhancement good first issue help wanted
Vorherrschende Sprache
C#
Sterne
104
Forks
18
Ø Merge
9 Min.
Gemergte PRs (30 T.)
2

Beschreibung

Currently, we have the following two types for paths:

  • AbsolutePath for, well, absolute paths,
  • LocalPath for any paths.

We lack a separate type to specify a relative-only type, so let's get one. @PaGrom makes a good argument on its existence, see https://github.com/ForNeVeR/TruePath/issues/1#issuecomment-1113823321.

I propose the following design:

struct RelativePath
{
  public RelativePath(string path, bool trimLeadingSlash = false) { … }
}

Examples:

new RelativePath("foo/bar") // => foo/bar
new RelativePath("/foo/bar", trimLeadingSlash = true) // => foo/bar
new RelativePath("/foo/bar"); // exception

Whether trimLeadingSlash should be true or false by default I am not sure. @PaGrom, what do you think? I would lean towards more strict behavior by default.

See TODO[#23] in the project sources when implementing this.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Finde TODO[#23] in den Projektquellen und untersuche zuerst die vorhandenen Typen AbsolutePath und LocalPath. Leite das Verhalten von RelativePath aus den Beispielen ab, einschließlich der Ablehnung oder des Entfernens eines führenden Schrägstrichs, und kläre den nicht angegebenen Standardwert für trimLeadingSlash. Erledigt ist die Aufgabe, wenn der neue Typ ausschließlich relative Pfade erzwingt und sich konsistent in die vorhandenen Pfadtypen integriert.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
csharp
Bereich
devtools
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
38/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.