Ich möchte einen PHP- lesbaren Linter vorstellen . Es enthält jetzt 16 Regeln, die die Lesbarkeit des Codes verbessern sollen. Die Hauptvorteile sind:
- Geschwindigkeit - weniger als eine Sekunde pro 1000 Dateien
- Grundeinstellung - Sie können nicht alle Fehler im Projekt gleichzeitig beheben, sondern eine Konfiguration mit aktuellen Fehlern erstellen. Und ignoriere sie, aber reagiere auf neue.
- Regeln sind einfacher zu schreiben als Analoga (subjektiv)
Zwei wichtige Haftungsausschlüsse :
- Ich bin der Hauptverantwortliche, also kann ich subjektiv sein. Readable wurde ursprünglich für den belgischen Firmenbeamten geschrieben . Sie verwenden es seit einiger Zeit intern und haben beschlossen, ein Open-Source-Projekt lesbar zu machen.
- Es ist in JS geschrieben.
Installation und Start
lesbar wird über npm installiert:
$ npm install @officient/readable --save-dev
Nach der Installation müssen Sie eine Konfigurationsdatei erstellen:
$ npx readable --init
Und du kannst rennen:
$ npx readable
Regeln
Derzeit sind 16 Regeln lesbar:
- Namespace-Max-Dateien - Maximale Anzahl von Dateien im Namespace
- argument-override - Verbietet das Ändern des Werts von Funktionsargumenten
- file-max-size - Die maximale Anzahl von Zeilen in der Datei
- empty-catch —
catch
- class-comment — - ,
- forbidden-functions — (
eval
,print_r
...) - missing-braces —
if
,for
... - variable-length — (
$id
,$i
) - function-max-size —
- loop-max-size —
- forbidden-function-prefix — . ,
checkSomething
— , ? - if-assigment —
if
- complex-if —
&&
||
if
- ternary-max-length —
- loop-max-nest —
- max-nest —
readable , . — . , - , :
- readable . , .
- . , .
Nehmen wir als Beispiel die Regel für die maximale Größe der Schleife . Sein ganzer Code:
const loops = ['for', 'foreach'];
module.exports = {
check(maxLines, tokens, report) {
tokens.matchAll(loops, (token) => {
const end = token.copy().step().stepToClosing(); // skip ()
end.step().stepToClosing();
const lines = (end.current().line - token.current().line);
if (lines > maxLines) {
report(`Loop is longer than ${maxLines} lines [${lines}].`, token.current());
}
});
},
};
Die Regel lautet:
- finde alles
for
undforeach
. - Nehmen Sie das nächste Zeichen
.step()
, es wird eine offene Klammer sein(
. Gehen Sie zur schließenden Klammer.stepToClosing()
. - Wiederholen Sie den zweiten Schritt bis auf den Körper der Schleife (
{
und}
). - Überprüfen Sie die Länge des Fahrradkörpers.
Anstelle einer Schlussfolgerung
Ich verwende Readable in meinen Projekten als zusätzlichen Linter für Code. Ich mag alles, besonders die Grundlinie (fairerweise hat Psalm dies auch). Er hat die Möglichkeit, die Nische des Hilfsliners zu besetzen.