Tslint: Verbesserungen bei Einzugsregeln

Erstellt am 19. Aug. 2015  ·  37Kommentare  ·  Quelle: palantir/tslint

Ähnlich wie bei ESLint sollten wir in der Lage sein, Einrückungen mit 2 oder 4 Leerzeichen durch Optionen wie diese zu erzwingen:

  • [x] [true, "spaces", 2]
  • [x] [true, "spaces", 4]

Außerdem wäre es schön, eine Option "detect" (wie in Nr. 122 vorgeschlagen) zu haben, die versucht, den Einrückungsstil in einer Datei zu erraten und die Konsistenz zu erzwingen:

  • [ ] [true, "detect"]
P1 Fixed Enhancement

Hilfreichster Kommentar

@dimitriy-k #2723 gerade zusammengeführt, es wird in der nächsten Version sein.

Alle 37 Kommentare

+1

+1 für die Durchsetzung der Anzahl von Leerzeichen.

+1

Würde dies nur funktionieren, wenn der Einzug durch die Anzahl der konfigurierten Leerzeichen teilbar ist?

{
    theObject.something()
             .more(); // 13 spaces.
}

Die obige Methode (Ausrichten der Punkte) wird nicht unterstützt?

@glen-84 Ich sehe zwei Möglichkeiten:

  • Eine zeilenweise Überprüfung der Einrückung (wo Ihr Beispiel nicht zulässig wäre)
  • Eine Anweisungs-für-Anweisungs-Prüfung des Einzugs. Da in Ihrem Beispiel theObject.something().more() nur eine Anweisung ist, wird nur die Einrückungsebene am Anfang überprüft.

Ich denke, sie haben beide Vor- und Nachteile, aber die zweite wird hier wahrscheinlich bevorzugt.

:+1:

+1
@JKillian -> Ich würde für Option 2 stimmen, bei der Aussagen überprüft werden, nicht jede Zeile.

+1 Option 2, Anweisung für Anweisung prüfen

@JKillian Danke. Die zweite Möglichkeit sieht gut aus. =)

Edit: Ich habe meine Meinung geändert .

+1 Möglichkeit 1

Ein guter Weg ist der von ESLINT http://eslint.org/docs/rules/indent

+9000 SSJ3
Bitte Leute, implementiert die 4-Leerzeichen-Einrückungsoption so schnell wie möglich. Ich habe viel mit Schreibmaschinenprogrammierung angefangen und der 2-Leerzeichen-Standardeinzug fühlt sich für mich so schlecht an. Für manche Leute ist es wirklich schwer, die Einrückungsebene eines Codes mit nur 2 Leerzeichen zu sehen ...

@radarsu Vielleicht möchten Sie vorerst .editorconfig verwenden .

@radarsu Im Moment ermittelt die Einrückungsregel nur, ob Sie einen Einrückungsfehler haben, basierend darauf, wie Ihr Code mit der vorherigen Anweisung ausgerichtet ist. Sie können vier Leerzeichen einrücken und die Regel glücklich machen (tatsächlich macht das der TSLint-Quellcode).

@JKillian hast du eine Ahnung, wie schwer das zu bewältigen wäre? Ich würde gerne anfangen, die Einzugsgröße durchzusetzen. Ich bin offen dafür, es zu hacken, wenn es nicht zu viel Zeit kostet (habe nur so viel Zeit in der nächsten Woche).

Schwer zu sagen, wie schwierig es sein würde - ich denke, es wäre zumindest nicht einfach, haha. Mach es aber auf jeden Fall!

@mcriss @strike-sbolel Bitte hör auf, +1 Kommentare hinzuzufügen.

Es sieht so aus, als würden hier ähnliche Bemühungen unternommen https://github.com/buzinas/tslint-eslint-rules/issues/74

Ich habe meine Meinung geändert , da Option 2 Code wie folgt zulassen würde:

{
    theObject.something()
             .more() // 13 spaces.
           .wrong()
                    .moreWrong();
}

In einer idealen Welt würden wir Option 1 mit einer Einstellung verwenden, um zuzulassen (oder zu erzwingen), dass "umbrochene" Zeilen unter dem letzten Punkt in der vorherigen Zeile positioniert werden.

{
    theObject.something()
             .more()  // 13 spaces.
             .right() // Must be the same as above now, because the previous line used this indentation mode.
             .moreRight();
}

Oder:

{
    theObject.something()
        .more() // (4 x 2) spaces.
        .right()
        .moreRight();
}

Können wir bitte ein Update veröffentlichen?

@owais die Verbesserungen wurden noch nicht in Core TSLint implementiert. Dieser Link führt zu einem externen Repository mit benutzerdefinierten Regeln.

Oh. Mir war nicht klar, dass ich mir ein anderes Repo angesehen habe. :) Danke für den Link. Ich denke, das könnte ich gebrauchen.

@adidahiya Ist das immer noch etwas Herausragendes und lohnt es sich, eine PR zu eröffnen? Oder wäre es besser, die benutzerdefinierten Regeln zu verwenden, mit denen Sie verknüpft sind?

@pudgeball würde sich auf

Beachten Sie, dass #2723 dieses Problem nicht behebt. Es behebt Tabs -> x Leerzeichen und x Leerzeichen -> Tabs, aber nicht x Leerzeichen -> y Leerzeichen

immer noch keine Updates zur Einzugsgröße?... Anfrage ist von 2015

@dimitriy-k #2723 gerade zusammengeführt, es wird in der nächsten Version sein.

Wie wird diese Regel heißen? 😄

@dolanmiu es ist keine neue Regel. Es ist genau so implementiert, wie in der ursprünglichen Problembeschreibung angegeben. Klicken Sie sich einfach durch zu der von mir verlinkten PR.

@adidahiya Ich verwende die aktuellste Version von tslint 5.3.2

Und folgendes verwenden:

    "indent": [
      true,
      "spaces",
      4
    ],

Ich habe eine Datei mit 2 alle 2 Leerzeichen, aber sie wurde nicht erkannt! Mache ich etwas falsch oder liegt ein Bug vor?

@dolanmiu ja, das sieht nach einem neuen Problem aus, mir ist auch aufgefallen, dass #2723 nicht so funktioniert hat, wie ich es erwartet hatte. Ich habe https://github.com/palantir/tslint/issues/2814 eingereicht

irgendwelche Updates?

"indent": [true, "spaces", 4] funktioniert bei mir nicht

@liul85 versuche tslint-eslint-rules zu installieren und verwende die terIndentRule

@leocaseiro danke fürs teilen, ich werde es versuchen.

Funktioniert immer noch nicht in tslint 5.11.0

"indent": [true, "spaces", 4] funktioniert immer noch nicht...

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen